.include "constants/gba_constants.s" .include "constants/species_constants.s" .include "asm/macros.s" .syntax unified .text thumb_func_start IsEnoughMoney IsEnoughMoney: @ 80B79A8 push {lr} cmp r0, r1 bcs _080B79B2 movs r0, 0 b _080B79B4 _080B79B2: movs r0, 0x1 _080B79B4: pop {r1} bx r1 thumb_func_end IsEnoughMoney thumb_func_start sub_80B79B8 sub_80B79B8: @ 80B79B8 push {lr} adds r2, r0, 0 ldr r0, [r2] adds r1, r0, r1 cmp r0, r1 bls _080B79CC ldr r0, _080B79C8 @ =0x000f423f b _080B79D4 .align 2, 0 _080B79C8: .4byte 0x000f423f _080B79CC: str r1, [r2] ldr r0, _080B79DC @ =0x000f423f cmp r1, r0 bls _080B79D6 _080B79D4: str r0, [r2] _080B79D6: pop {r0} bx r0 .align 2, 0 _080B79DC: .4byte 0x000f423f thumb_func_end sub_80B79B8 thumb_func_start sub_80B79E0 sub_80B79E0: @ 80B79E0 push {lr} adds r2, r0, 0 ldr r0, [r2] cmp r0, r1 bcs _080B79EE movs r0, 0 b _080B79F0 _080B79EE: subs r0, r1 _080B79F0: str r0, [r2] pop {r0} bx r0 thumb_func_end sub_80B79E0 thumb_func_start sub_80B79F8 sub_80B79F8: @ 80B79F8 push {r4,lr} adds r3, r0, 0 lsls r2, 24 lsrs r4, r2, 24 ldr r0, _080B7A0C @ =0x000f423f cmp r1, r0 bls _080B7A10 movs r2, 0x7 b _080B7A46 .align 2, 0 _080B7A0C: .4byte 0x000f423f _080B7A10: ldr r0, _080B7A1C @ =0x0001869f cmp r1, r0 bls _080B7A20 movs r2, 0x6 b _080B7A46 .align 2, 0 _080B7A1C: .4byte 0x0001869f _080B7A20: ldr r0, _080B7A2C @ =0x00002710 cmp r1, r0 bls _080B7A30 movs r2, 0x5 b _080B7A46 .align 2, 0 _080B7A2C: .4byte 0x00002710 _080B7A30: ldr r0, _080B7A90 @ =0x000003e7 movs r2, 0x4 cmp r1, r0 bhi _080B7A46 movs r2, 0x3 cmp r1, 0x63 bhi _080B7A46 movs r2, 0x1 cmp r1, 0x9 bls _080B7A46 movs r2, 0x2 _080B7A46: movs r0, 0xFC strb r0, [r3] movs r0, 0x14 strb r0, [r3, 0x1] movs r0, 0x6 strb r0, [r3, 0x2] adds r3, 0x3 movs r0, 0 subs r2, r4, r2 cmp r0, r2 bge _080B7A6C movs r4, 0 _080B7A5E: strb r4, [r3] adds r3, 0x1 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, r2 blt _080B7A5E _080B7A6C: movs r0, 0xB7 strb r0, [r3] adds r3, 0x1 adds r0, r3, 0 bl ConvertIntToDecimalString adds r3, r0, 0 movs r0, 0xFC strb r0, [r3] movs r0, 0x14 strb r0, [r3, 0x1] movs r0, 0 strb r0, [r3, 0x2] movs r0, 0xFF strb r0, [r3, 0x3] pop {r4} pop {r0} bx r0 .align 2, 0 _080B7A90: .4byte 0x000003e7 thumb_func_end sub_80B79F8 thumb_func_start sub_80B7A94 sub_80B7A94: @ 80B7A94 push {r4-r7,lr} sub sp, 0x10 adds r4, r0, 0 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r6, r2, 24 lsls r3, 24 lsrs r7, r3, 24 mov r0, sp adds r1, r4, 0 adds r2, r5, 0 bl sub_80B79F8 mov r0, sp bl sub_8072CA4 lsls r0, 24 lsrs r2, r0, 24 adds r0, r5, 0x1 lsls r0, 3 cmp r2, r0 blt _080B7ACE mov r0, sp adds r1, r6, 0 adds r2, r7, 0 bl MenuPrint b _080B7AE4 _080B7ACE: adds r1, r6, 0x1 adds r1, r5 lsls r1, 3 subs r1, r2 lsls r1, 24 lsrs r1, 24 lsls r2, r7, 3 mov r0, sp movs r3, 0x1 bl MenuPrint_PixelCoords _080B7AE4: add sp, 0x10 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80B7A94 thumb_func_start sub_80B7AEC sub_80B7AEC: @ 80B7AEC push {r4-r6,lr} sub sp, 0x20 adds r3, r0, 0 adds r4, r1, 0 adds r5, r2, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 mov r6, sp movs r0, 0xB7 strb r0, [r6] adds r6, 0x1 adds r0, r6, 0 adds r1, r3, 0 bl ConvertIntToDecimalString adds r6, r0, 0 mov r0, sp adds r1, r4, 0 adds r2, r5, 0 bl sub_8072B4C movs r0, 0xFC strb r0, [r6] movs r0, 0x14 strb r0, [r6, 0x1] movs r0, 0 strb r0, [r6, 0x2] movs r0, 0xFF strb r0, [r6, 0x3] add sp, 0x20 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80B7AEC thumb_func_start sub_80B7B34 sub_80B7B34: @ 80B7B34 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 mov r8, r0 adds r5, r1, 0 mov r9, r2 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r5, 24 lsrs r5, 24 mov r1, r9 lsls r1, 8 mov r9, r1 ldr r4, _080B7BD8 @ =gDecoration10000_Gfx adds r0, r1, r4 lsls r6, r5, 4 subs r6, r5 lsls r1, r6, 6 mov r3, r8 adds r3, 0x1 lsls r3, 5 ldr r2, _080B7BDC @ =0x06008000 adds r3, r2 adds r1, r3 movs r2, 0x20 str r3, [sp] bl CpuFastSet adds r4, 0x80 add r9, r4 adds r0, r5, 0x1 lsls r4, r0, 4 subs r4, r0 lsls r1, r4, 6 ldr r3, [sp] adds r1, r3 mov r0, r9 movs r2, 0x20 bl CpuFastSet movs r3, 0 lsls r5, 5 mov r0, r8 adds r7, r5, r0 lsls r6, 1 adds r6, 0x1 add r6, r8 ldr r1, _080B7BE0 @ =0xfffff000 adds r5, r1, 0 ldr r0, _080B7BE4 @ =0x0600f800 mov r12, r0 ldr r1, _080B7BE8 @ =0x0600f840 mov r9, r1 lsls r4, 1 adds r4, 0x1 add r4, r8 _080B7BAA: adds r1, r7, r3 lsls r1, 1 mov r0, r12 adds r2, r1, r0 adds r0, r3, r6 adds r0, r5 strh r0, [r2] add r1, r9 adds r0, r3, r4 adds r0, r5 strh r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x3 bls _080B7BAA add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B7BD8: .4byte gDecoration10000_Gfx _080B7BDC: .4byte 0x06008000 _080B7BE0: .4byte 0xfffff000 _080B7BE4: .4byte 0x0600f800 _080B7BE8: .4byte 0x0600f840 thumb_func_end sub_80B7B34 thumb_func_start sub_80B7BEC sub_80B7BEC: @ 80B7BEC push {r4,lr} adds r4, r1, 0 adds r3, r2, 0 lsls r4, 24 lsls r3, 24 movs r1, 0xC0 lsls r1, 19 adds r4, r1 lsrs r4, 24 movs r1, 0x80 lsls r1, 17 adds r3, r1 lsrs r3, 24 movs r1, 0x6 adds r2, r4, 0 bl sub_80B7A94 pop {r4} pop {r0} bx r0 thumb_func_end sub_80B7BEC thumb_func_start sub_80B7C14 sub_80B7C14: @ 80B7C14 push {r4-r6,lr} mov r6, r8 push {r6} mov r8, r0 adds r4, r1, 0 adds r3, r2, 0 lsls r4, 24 lsls r3, 24 lsrs r6, r4, 24 movs r0, 0xD0 lsls r0, 20 adds r4, r0 lsrs r4, 24 lsrs r5, r3, 24 movs r1, 0xC0 lsls r1, 18 adds r3, r1 lsrs r3, 24 adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 bl MenuDrawTextWindow mov r0, r8 adds r1, r6, 0 adds r2, r5, 0 bl sub_80B7BEC ldr r0, _080B7C88 @ =gUnknown_083CF584 bl LoadCompressedObjectPic ldr r0, _080B7C8C @ =gUnknown_083CF58C bl LoadCompressedObjectPalette ldr r0, _080B7C90 @ =gSpriteTemplate_83CF56C lsls r6, 19 movs r1, 0x98 lsls r1, 13 adds r6, r1 asrs r6, 16 lsls r5, 19 movs r1, 0xB0 lsls r1, 12 adds r5, r1 asrs r5, 16 adds r1, r6, 0 adds r2, r5, 0 movs r3, 0 bl CreateSprite ldr r1, _080B7C94 @ =gUnknown_02038734 strb r0, [r1] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B7C88: .4byte gUnknown_083CF584 _080B7C8C: .4byte gUnknown_083CF58C _080B7C90: .4byte gSpriteTemplate_83CF56C _080B7C94: .4byte gUnknown_02038734 thumb_func_end sub_80B7C14 thumb_func_start RemoveMoneyLabelObject RemoveMoneyLabelObject: @ 80B7C98 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 ldr r0, _080B7CDC @ =gUnknown_02038734 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080B7CE0 @ =gSprites adds r0, r1 bl DestroySpriteAndFreeResources ldr r0, _080B7CE4 @ =0x00002722 bl FreeSpritePaletteByTag adds r2, r4, 0 adds r2, 0xD lsls r2, 24 lsrs r2, 24 adds r3, r5, 0x3 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 adds r1, r5, 0 bl MenuZeroFillWindowRect pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B7CDC: .4byte gUnknown_02038734 _080B7CE0: .4byte gSprites _080B7CE4: .4byte 0x00002722 thumb_func_end RemoveMoneyLabelObject thumb_func_start sub_80B7CE8 sub_80B7CE8: @ 80B7CE8 push {lr} ldr r0, _080B7D04 @ =gSaveBlock1 movs r1, 0x92 lsls r1, 3 adds r0, r1 ldr r0, [r0] ldr r1, _080B7D08 @ =gUnknown_0202E8CE ldrh r1, [r1] bl IsEnoughMoney lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _080B7D04: .4byte gSaveBlock1 _080B7D08: .4byte gUnknown_0202E8CE thumb_func_end sub_80B7CE8 thumb_func_start sub_80B7D0C sub_80B7D0C: @ 80B7D0C push {lr} ldr r0, _080B7D1C @ =gSaveBlock1 + 0x490 ldr r1, _080B7D20 @ =gUnknown_0202E8CE ldrh r1, [r1] bl sub_80B79E0 pop {r0} bx r0 .align 2, 0 _080B7D1C: .4byte gSaveBlock1 + 0x490 _080B7D20: .4byte gUnknown_0202E8CE thumb_func_end sub_80B7D0C thumb_func_start AreMovesContestCombo AreMovesContestCombo: @ 80B7D24 push {r4,lr} sub sp, 0x4 lsls r0, 16 lsls r1, 16 ldr r2, _080B7D78 @ =gContestMoves lsrs r0, 13 adds r0, r2 ldrb r4, [r0, 0x2] mov r3, sp lsrs r1, 13 adds r1, r2 ldrb r0, [r1, 0x3] strb r0, [r3] mov r2, sp ldrb r0, [r1, 0x4] strb r0, [r2, 0x1] ldrb r0, [r1, 0x5] strb r0, [r2, 0x2] mov r0, sp ldrb r1, [r1, 0x6] strb r1, [r0, 0x3] cmp r4, 0 beq _080B7D80 mov r0, sp ldrb r0, [r0] cmp r4, r0 beq _080B7D6E mov r0, sp ldrb r0, [r0, 0x1] cmp r4, r0 beq _080B7D6E mov r0, sp ldrb r0, [r0, 0x2] cmp r4, r0 beq _080B7D6E cmp r4, r1 bne _080B7D80 _080B7D6E: ldr r0, _080B7D7C @ =gComboStarterLookupTable adds r0, r4, r0 ldrb r0, [r0] b _080B7D82 .align 2, 0 _080B7D78: .4byte gContestMoves _080B7D7C: .4byte gComboStarterLookupTable _080B7D80: movs r0, 0 _080B7D82: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end AreMovesContestCombo thumb_func_start ContestEffect_00 ContestEffect_00: @ 80B7D8C bx lr thumb_func_end ContestEffect_00 thumb_func_start ContestEffect_01 ContestEffect_01: @ 80B7D90 push {lr} ldr r3, _080B7DB8 @ =0x020192d0 ldrb r1, [r3, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r1, r3, 0 subs r1, 0x70 adds r0, r1 ldrb r1, [r0, 0x10] movs r2, 0x4 orrs r1, r2 strb r1, [r0, 0x10] ldrb r0, [r3, 0x11] movs r1, 0 bl sub_80B13EC pop {r0} bx r0 .align 2, 0 _080B7DB8: .4byte 0x020192d0 thumb_func_end ContestEffect_01 thumb_func_start ContestEffect_02 ContestEffect_02: @ 80B7DBC push {lr} ldr r3, _080B7DE4 @ =0x020192d0 ldrb r1, [r3, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r1, r3, 0 subs r1, 0x70 adds r0, r1 ldrb r1, [r0, 0x11] movs r2, 0x8 orrs r1, r2 strb r1, [r0, 0x11] ldrb r0, [r3, 0x11] movs r1, 0x1 bl sub_80B13EC pop {r0} bx r0 .align 2, 0 _080B7DE4: .4byte 0x020192d0 thumb_func_end ContestEffect_02 thumb_func_start ContestEffect_03 ContestEffect_03: @ 80B7DE8 push {r4,lr} ldr r3, _080B7E30 @ =0x020192d0 ldrb r1, [r3, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r4, r3, 0 subs r4, 0x70 adds r0, r4 ldrb r1, [r0, 0x10] movs r2, 0x8 orrs r1, r2 strb r1, [r0, 0x10] ldrb r0, [r3, 0x11] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r4 ldrb r2, [r1, 0x15] movs r0, 0x2 negs r0, r0 ands r0, r2 strb r0, [r1, 0x15] ldrb r0, [r3, 0x11] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r4 ldrb r2, [r1, 0xB] movs r0, 0x71 negs r0, r0 ands r0, r2 strb r0, [r1, 0xB] pop {r4} pop {r0} bx r0 .align 2, 0 _080B7E30: .4byte 0x020192d0 thumb_func_end ContestEffect_03 thumb_func_start ContestEffect_04 ContestEffect_04: @ 80B7E34 push {lr} ldr r2, _080B7E58 @ =0x020192d0 ldrb r1, [r2, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r1, r2, 0 subs r1, 0x70 adds r0, r1 movs r1, 0x1 strb r1, [r0, 0x12] ldrb r0, [r2, 0x11] movs r1, 0x2 bl sub_80B13EC pop {r0} bx r0 .align 2, 0 _080B7E58: .4byte 0x020192d0 thumb_func_end ContestEffect_04 thumb_func_start ContestEffect_05 ContestEffect_05: @ 80B7E5C push {lr} ldr r3, _080B7E84 @ =0x020192d0 ldrb r1, [r3, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r1, r3, 0 subs r1, 0x70 adds r0, r1 ldrb r1, [r0, 0x10] movs r2, 0x2 orrs r1, r2 strb r1, [r0, 0x10] ldrb r0, [r3, 0x11] movs r1, 0x3 bl sub_80B13EC pop {r0} bx r0 .align 2, 0 _080B7E84: .4byte 0x020192d0 thumb_func_end ContestEffect_05 thumb_func_start ContestEffect_06 ContestEffect_06: @ 80B7E88 push {lr} ldr r2, _080B7EAC @ =0x020192d0 ldrb r1, [r2, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r1, r2, 0 subs r1, 0x70 adds r0, r1 movs r1, 0x14 strb r1, [r0, 0xF] ldrb r0, [r2, 0x11] movs r1, 0x4 bl sub_80B13EC pop {r0} bx r0 .align 2, 0 _080B7EAC: .4byte 0x020192d0 thumb_func_end ContestEffect_06 thumb_func_start ContestEffect_07 ContestEffect_07: @ 80B7EB0 push {lr} ldr r3, _080B7ED8 @ =0x020192d0 ldrb r1, [r3, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r1, r3, 0 subs r1, 0x70 adds r0, r1 ldrb r1, [r0, 0x10] movs r2, 0x1 orrs r1, r2 strb r1, [r0, 0x10] ldrb r0, [r3, 0x11] movs r1, 0x5 bl sub_80B13EC pop {r0} bx r0 .align 2, 0 _080B7ED8: .4byte 0x020192d0 thumb_func_end ContestEffect_07 thumb_func_start ContestEffect_08 ContestEffect_08: @ 80B7EDC push {r4,lr} movs r2, 0 ldr r3, _080B7F38 @ =0x020192d0 ldrb r0, [r3, 0x11] adds r1, r0, r3 ldrb r0, [r1] cmp r0, 0 beq _080B7F1A subs r0, 0x1 ldrb r4, [r3] cmp r0, r4 beq _080B7F0A adds r4, r3, 0 adds r3, r1, 0 _080B7EF8: adds r2, 0x1 cmp r2, 0x3 bgt _080B7F0A ldrb r0, [r3] subs r0, 0x1 adds r1, r2, r4 ldrb r1, [r1] cmp r0, r1 bne _080B7EF8 _080B7F0A: ldr r1, _080B7F38 @ =0x020192d0 strb r2, [r1, 0x8] movs r0, 0xFF strb r0, [r1, 0x9] bl sub_80B9120 lsls r0, 24 lsrs r2, r0, 24 _080B7F1A: cmp r2, 0 bne _080B7F28 ldr r0, _080B7F38 @ =0x020192d0 ldrb r0, [r0, 0x11] movs r1, 0x36 bl sub_80B1404 _080B7F28: ldr r0, _080B7F38 @ =0x020192d0 ldrb r0, [r0, 0x11] movs r1, 0x30 bl sub_80B13EC pop {r4} pop {r0} bx r0 .align 2, 0 _080B7F38: .4byte 0x020192d0 thumb_func_end ContestEffect_08 thumb_func_start ContestEffect_09 ContestEffect_09: @ 80B7F3C push {r4-r6,lr} movs r2, 0 ldr r1, _080B7F9C @ =0x020192d0 ldrb r0, [r1, 0x11] adds r4, r0, r1 ldrb r0, [r4] cmp r0, 0 beq _080B7F7C movs r3, 0 adds r5, r1, 0 adds r6, r5, 0 adds r6, 0x8 _080B7F54: adds r1, r2, r5 ldrb r0, [r4] ldrb r1, [r1] cmp r0, r1 bls _080B7F64 adds r0, r3, r6 strb r2, [r0] adds r3, 0x1 _080B7F64: adds r2, 0x1 cmp r2, 0x3 ble _080B7F54 ldr r0, _080B7F9C @ =0x020192d0 adds r0, 0x8 adds r0, r3, r0 movs r1, 0xFF strb r1, [r0] bl sub_80B9120 lsls r0, 24 lsrs r2, r0, 24 _080B7F7C: cmp r2, 0 bne _080B7F8A ldr r0, _080B7F9C @ =0x020192d0 ldrb r0, [r0, 0x11] movs r1, 0x36 bl sub_80B1404 _080B7F8A: ldr r0, _080B7F9C @ =0x020192d0 ldrb r0, [r0, 0x11] movs r1, 0x30 bl sub_80B13EC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B7F9C: .4byte 0x020192d0 thumb_func_end ContestEffect_09 thumb_func_start ContestEffect_14 ContestEffect_14: @ 80B7FA0 push {lr} bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 lsls r0, 24 lsrs r0, 24 movs r1, 0x14 cmp r0, 0x1 bls _080B7FC2 movs r1, 0x3C cmp r0, 0x7 bhi _080B7FC2 movs r1, 0x28 _080B7FC2: ldr r0, _080B7FD0 @ =0x020192d0 strh r1, [r0, 0x4] bl ContestEffect_08 pop {r0} bx r0 .align 2, 0 _080B7FD0: .4byte 0x020192d0 thumb_func_end ContestEffect_14 thumb_func_start ContestEffect_15 ContestEffect_15: @ 80B7FD4 push {r4-r7,lr} mov r7, r8 push {r7} movs r7, 0 ldr r0, _080B806C @ =0x020192d0 ldrb r6, [r0, 0x11] adds r1, r6, r0 ldrb r1, [r1] mov r8, r0 cmp r1, 0 beq _080B804A movs r5, 0 mov r4, r8 _080B7FEE: adds r0, r6, r4 adds r1, r5, r4 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bls _080B8044 strb r5, [r4, 0x8] movs r0, 0xFF strb r0, [r4, 0x9] bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 lsls r0, 24 lsrs r0, 24 movs r1, 0 cmp r0, 0 beq _080B8032 movs r1, 0xA cmp r0, 0x2 bls _080B8032 movs r1, 0x14 cmp r0, 0x4 bls _080B8032 movs r1, 0x1E cmp r0, 0x6 bls _080B8032 movs r1, 0x3C cmp r0, 0x8 bhi _080B8032 movs r1, 0x28 _080B8032: strh r1, [r4, 0x4] bl sub_80B9120 lsls r0, 24 cmp r0, 0 beq _080B8044 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 _080B8044: adds r5, 0x1 cmp r5, 0x3 ble _080B7FEE _080B804A: mov r1, r8 ldrb r0, [r1, 0x11] movs r1, 0x30 bl sub_80B13EC cmp r7, 0 bne _080B8062 mov r1, r8 ldrb r0, [r1, 0x11] movs r1, 0x36 bl sub_80B1404 _080B8062: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B806C: .4byte 0x020192d0 thumb_func_end ContestEffect_15 thumb_func_start ContestEffect_16 ContestEffect_16: @ 80B8070 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r0, 0 mov r9, r0 ldr r0, _080B8108 @ =0x020192d0 ldrb r7, [r0, 0x11] adds r1, r7, r0 ldrb r1, [r1] mov r10, r0 cmp r1, 0 beq _080B80E0 movs r6, 0 mov r8, r10 mov r5, r10 subs r5, 0x5B _080B8094: mov r1, r8 adds r0, r7, r1 adds r1, r6, r1 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bls _080B80D8 ldrb r1, [r5] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080B80D8 lsls r0, r6, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_80B90C0 lsls r0, 24 cmp r0, 0 beq _080B80D8 ldrb r0, [r5] movs r2, 0x11 negs r2, r2 adds r1, r2, 0 ands r0, r1 movs r1, 0x20 orrs r0, r1 strb r0, [r5] adds r0, r4, 0 movs r1, 0x8 bl sub_80B13EC movs r0, 0x1 mov r9, r0 _080B80D8: adds r5, 0x1C adds r6, 0x1 cmp r6, 0x3 ble _080B8094 _080B80E0: mov r1, r10 ldrb r0, [r1, 0x11] movs r1, 0x7 bl sub_80B13EC mov r2, r9 cmp r2, 0 bne _080B80FA mov r1, r10 ldrb r0, [r1, 0x11] movs r1, 0x36 bl sub_80B1404 _080B80FA: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B8108: .4byte 0x020192d0 thumb_func_end ContestEffect_16 thumb_func_start ContestEffect_17 ContestEffect_17: @ 80B810C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r0, 0 mov r9, r0 ldr r0, _080B8150 @ =0x020192d0 ldrb r1, [r0, 0x11] mov r8, r1 adds r1, r0 ldrb r1, [r1] adds r6, r0, 0 cmp r1, 0 beq _080B817C movs r5, 0 adds r4, r6, 0 movs r7, 0 _080B812E: mov r2, r8 adds r0, r2, r4 adds r1, r5, r4 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bls _080B8172 adds r0, r6, 0 subs r0, 0x70 adds r0, r7, r0 ldrb r1, [r0, 0x15] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080B8154 movs r0, 0x32 b _080B8156 .align 2, 0 _080B8150: .4byte 0x020192d0 _080B8154: movs r0, 0xA _080B8156: strh r0, [r4, 0x4] strb r5, [r4, 0x8] movs r0, 0xFF strb r0, [r4, 0x9] bl sub_80B9120 lsls r0, 24 cmp r0, 0 beq _080B8172 mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _080B8172: adds r7, 0x1C adds r5, 0x1 ldr r6, _080B81A0 @ =0x020192d0 cmp r5, 0x3 ble _080B812E _080B817C: ldrb r0, [r6, 0x11] movs r1, 0x30 bl sub_80B13EC mov r0, r9 cmp r0, 0 bne _080B8192 ldrb r0, [r6, 0x11] movs r1, 0x36 bl sub_80B1404 _080B8192: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B81A0: .4byte 0x020192d0 thumb_func_end ContestEffect_17 thumb_func_start ContestEffect_18 ContestEffect_18: @ 80B81A4 push {r4,lr} ldr r4, _080B81D0 @ =0x020192d0 ldrb r1, [r4, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r1, r4, 0 subs r1, 0x70 adds r0, r1 ldrb r1, [r0, 0x11] movs r2, 0x4 orrs r1, r2 strb r1, [r0, 0x11] bl ContestEffect_09 ldrb r0, [r4, 0x11] movs r1, 0x30 bl sub_80B13EC pop {r4} pop {r0} bx r0 .align 2, 0 _080B81D0: .4byte 0x020192d0 thumb_func_end ContestEffect_18 thumb_func_start ContestEffect_19 ContestEffect_19: @ 80B81D4 push {r4,lr} ldr r4, _080B8208 @ =0x020192d0 ldrb r1, [r4, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r1, r4, 0 subs r1, 0x70 adds r0, r1 ldrh r0, [r0, 0x6] ldr r1, _080B820C @ =gContestMoves lsls r0, 3 adds r0, r1 ldrb r0, [r0, 0x1] lsls r0, 29 lsrs r0, 29 bl sub_80B9038 ldrb r0, [r4, 0x11] movs r1, 0x30 bl sub_80B13EC pop {r4} pop {r0} bx r0 .align 2, 0 _080B8208: .4byte 0x020192d0 _080B820C: .4byte gContestMoves thumb_func_end ContestEffect_19 thumb_func_start ContestEffect_20 ContestEffect_20: @ 80B8210 push {lr} movs r0, 0 bl sub_80B9038 ldr r0, _080B8228 @ =0x020192d0 ldrb r0, [r0, 0x11] movs r1, 0x30 bl sub_80B13EC pop {r0} bx r0 .align 2, 0 _080B8228: .4byte 0x020192d0 thumb_func_end ContestEffect_20 thumb_func_start ContestEffect_21 ContestEffect_21: @ 80B822C push {lr} movs r0, 0x1 bl sub_80B9038 ldr r0, _080B8244 @ =0x020192d0 ldrb r0, [r0, 0x11] movs r1, 0x30 bl sub_80B13EC pop {r0} bx r0 .align 2, 0 _080B8244: .4byte 0x020192d0 thumb_func_end ContestEffect_21 thumb_func_start ContestEffect_22 ContestEffect_22: @ 80B8248 push {lr} movs r0, 0x2 bl sub_80B9038 ldr r0, _080B8260 @ =0x020192d0 ldrb r0, [r0, 0x11] movs r1, 0x30 bl sub_80B13EC pop {r0} bx r0 .align 2, 0 _080B8260: .4byte 0x020192d0 thumb_func_end ContestEffect_22 thumb_func_start ContestEffect_23 ContestEffect_23: @ 80B8264 push {lr} movs r0, 0x3 bl sub_80B9038 ldr r0, _080B827C @ =0x020192d0 ldrb r0, [r0, 0x11] movs r1, 0x30 bl sub_80B13EC pop {r0} bx r0 .align 2, 0 _080B827C: .4byte 0x020192d0 thumb_func_end ContestEffect_23 thumb_func_start ContestEffect_24 ContestEffect_24: @ 80B8280 push {lr} movs r0, 0x4 bl sub_80B9038 ldr r0, _080B8298 @ =0x020192d0 ldrb r0, [r0, 0x11] movs r1, 0x30 bl sub_80B13EC pop {r0} bx r0 .align 2, 0 _080B8298: .4byte 0x020192d0 thumb_func_end ContestEffect_24 thumb_func_start ContestEffect_25 ContestEffect_25: @ 80B829C push {r4-r7,lr} movs r4, 0 ldr r0, _080B82E0 @ =0x020192d0 ldrb r1, [r0, 0x11] adds r1, r0 ldrb r1, [r1] adds r7, r0, 0 cmp r1, 0x3 beq _080B82F4 movs r5, 0 adds r6, r7, 0 _080B82B2: ldrb r0, [r6, 0x11] adds r0, r6 ldrb r0, [r0] adds r0, 0x1 adds r1, r5, r6 ldrb r1, [r1] cmp r0, r1 bne _080B82EE lsls r0, r5, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_80B90C0 lsls r0, 24 cmp r0, 0 beq _080B82E4 adds r0, r4, 0 bl sub_80B157C adds r0, r4, 0 movs r1, 0xA b _080B82E8 .align 2, 0 _080B82E0: .4byte 0x020192d0 _080B82E4: adds r0, r4, 0 movs r1, 0x3C _080B82E8: bl sub_80B13EC movs r4, 0x1 _080B82EE: adds r5, 0x1 cmp r5, 0x3 ble _080B82B2 _080B82F4: ldrb r0, [r7, 0x11] movs r1, 0x9 bl sub_80B13EC cmp r4, 0 bne _080B8308 ldrb r0, [r7, 0x11] movs r1, 0x36 bl sub_80B1404 _080B8308: pop {r4-r7} pop {r0} bx r0 thumb_func_end ContestEffect_25 thumb_func_start ContestEffect_26 ContestEffect_26: @ 80B8310 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C movs r0, 0 mov r9, r0 movs r1, 0 str r1, [sp, 0x18] mov r0, sp movs r1, 0xFF movs r2, 0x5 bl memset movs r6, 0 movs r4, 0 add r2, sp, 0x10 mov r8, r2 add r3, sp, 0x8 mov r10, r3 ldr r5, _080B8384 @ =0x020192d0 adds r7, r5, 0 subs r7, 0x70 _080B8340: ldrb r0, [r5, 0x11] adds r0, r5 adds r1, r6, r5 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bcs _080B836E ldrb r1, [r7, 0xC] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080B836E lsls r0, r6, 24 lsrs r0, 24 bl sub_80AF59C lsls r0, 24 cmp r0, 0 bne _080B836E mov r1, sp adds r0, r1, r4 strb r6, [r0] adds r4, 0x1 _080B836E: adds r7, 0x1C adds r6, 0x1 cmp r6, 0x3 ble _080B8340 cmp r4, 0x1 bne _080B8388 movs r0, 0x3C mov r2, r8 strh r0, [r2] b _080B83B6 .align 2, 0 _080B8384: .4byte 0x020192d0 _080B8388: cmp r4, 0x2 bne _080B8396 movs r0, 0x1E mov r3, r8 strh r0, [r3] strh r0, [r3, 0x2] b _080B83B6 _080B8396: cmp r4, 0x3 bne _080B83A6 movs r0, 0x14 mov r7, r8 strh r0, [r7] strh r0, [r7, 0x2] strh r0, [r7, 0x4] b _080B83B6 _080B83A6: mov r1, r8 movs r2, 0 mov r0, r8 adds r0, 0x6 _080B83AE: strh r2, [r0] subs r0, 0x2 cmp r0, r1 bge _080B83AE _080B83B6: movs r6, 0 movs r7, 0 mov r4, r10 _080B83BC: ldr r0, _080B83F0 @ =0x02019260 adds r5, r7, r0 ldrb r1, [r5, 0x15] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080B83FC lsls r0, r6, 24 lsrs r0, 24 bl sub_80B214C lsls r0, 24 cmp r0, 0 beq _080B83FC ldr r1, _080B83F4 @ =gContestMoves ldrh r0, [r5, 0x8] lsls r0, 3 adds r0, r1 ldrb r0, [r0, 0x2] ldr r1, _080B83F8 @ =gComboStarterLookupTable adds r0, r1 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 1 b _080B83FE .align 2, 0 _080B83F0: .4byte 0x02019260 _080B83F4: .4byte gContestMoves _080B83F8: .4byte gComboStarterLookupTable _080B83FC: movs r0, 0 _080B83FE: strh r0, [r4] ldr r5, _080B8494 @ =0x02019260 adds r0, r7, r5 ldrb r0, [r0, 0xD] lsls r0, 24 asrs r0, 24 movs r1, 0xA bl __divsi3 lsls r0, 24 asrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 1 ldrh r0, [r4] subs r0, r1 strh r0, [r4] adds r7, 0x1C adds r4, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _080B83BC mov r2, r8 movs r3, 0 ldrsh r0, [r2, r3] cmp r0, 0 beq _080B84CA movs r6, 0 mov r0, sp ldrb r0, [r0] cmp r0, 0xFF beq _080B84CA adds r5, 0x7D mov r4, sp _080B8442: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 lsls r1, r6, 1 add r1, r8 movs r7, 0 ldrsh r2, [r1, r7] ldrb r3, [r4] lsls r1, r3, 1 add r1, r10 movs r7, 0 ldrsh r1, [r1, r7] adds r2, r1 cmp r0, r2 bge _080B8498 adds r0, r3, 0 bl sub_80B90C0 lsls r0, 24 cmp r0, 0 beq _080B84A2 ldrb r0, [r4] bl sub_80B157C ldrb r0, [r4] movs r1, 0xA bl sub_80B13EC mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 b _080B849C .align 2, 0 _080B8494: .4byte 0x02019260 _080B8498: movs r0, 0x1 str r0, [sp, 0x18] _080B849C: ldr r1, [sp, 0x18] cmp r1, 0 beq _080B84B8 _080B84A2: movs r2, 0 str r2, [sp, 0x18] ldrb r0, [r4] movs r1, 0x3C bl sub_80B13EC mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _080B84B8: ldrb r0, [r4] adds r0, r5 movs r1, 0x1 strb r1, [r0] adds r4, 0x1 adds r6, 0x1 ldrb r0, [r4] cmp r0, 0xFF bne _080B8442 _080B84CA: ldr r4, _080B84F4 @ =0x020192d0 ldrb r0, [r4, 0x11] movs r1, 0xB bl sub_80B13EC mov r3, r9 cmp r3, 0 bne _080B84E2 ldrb r0, [r4, 0x11] movs r1, 0x36 bl sub_80B1404 _080B84E2: add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B84F4: .4byte 0x020192d0 thumb_func_end ContestEffect_26 thumb_func_start ContestEffect_27 ContestEffect_27: @ 80B84F8 push {r4-r7,lr} mov r7, r8 push {r7} movs r0, 0 mov r8, r0 movs r6, 0 ldr r7, _080B8580 @ =0x020192d0 adds r5, r7, 0 subs r5, 0x63 _080B850A: ldrb r0, [r7, 0x11] adds r0, r7 adds r1, r6, r7 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bls _080B8556 movs r0, 0 ldrsb r0, [r5, r0] cmp r0, 0 ble _080B8556 lsls r0, r6, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_80B90C0 lsls r0, 24 cmp r0, 0 beq _080B8556 movs r0, 0 strb r0, [r5] ldrb r1, [r5, 0x3] movs r2, 0x31 negs r2, r2 adds r0, r2, 0 ands r1, r0 movs r0, 0x20 orrs r1, r0 strb r1, [r5, 0x3] adds r0, r4, 0 movs r1, 0xD bl sub_80B13EC mov r0, r8 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 _080B8556: adds r5, 0x1C adds r6, 0x1 cmp r6, 0x3 ble _080B850A ldr r4, _080B8580 @ =0x020192d0 ldrb r0, [r4, 0x11] movs r1, 0xC bl sub_80B13EC mov r0, r8 cmp r0, 0 bne _080B8576 ldrb r0, [r4, 0x11] movs r1, 0x39 bl sub_80B1404 _080B8576: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B8580: .4byte 0x020192d0 thumb_func_end ContestEffect_27 thumb_func_start ContestEffect_28 ContestEffect_28: @ 80B8584 push {r4-r7,lr} movs r7, 0 movs r5, 0 ldr r4, _080B85B0 @ =0x020192d0 movs r6, 0 _080B858E: ldrb r0, [r4, 0x11] adds r0, r4 adds r1, r5, r4 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bls _080B85CE adds r0, r4, 0 subs r0, 0x70 adds r0, r6, r0 ldrb r0, [r0, 0xD] lsls r0, 24 asrs r0, 24 cmp r0, 0 ble _080B85B4 movs r0, 0x28 b _080B85B6 .align 2, 0 _080B85B0: .4byte 0x020192d0 _080B85B4: movs r0, 0xA _080B85B6: strh r0, [r4, 0x4] strb r5, [r4, 0x8] movs r0, 0xFF strb r0, [r4, 0x9] bl sub_80B9120 lsls r0, 24 cmp r0, 0 beq _080B85CE adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 _080B85CE: adds r6, 0x1C adds r5, 0x1 cmp r5, 0x3 ble _080B858E ldr r4, _080B85F4 @ =0x020192d0 ldrb r0, [r4, 0x11] movs r1, 0xE bl sub_80B13EC cmp r7, 0 bne _080B85EC ldrb r0, [r4, 0x11] movs r1, 0x39 bl sub_80B1404 _080B85EC: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B85F4: .4byte 0x020192d0 thumb_func_end ContestEffect_28 thumb_func_start ContestEffect_29 ContestEffect_29: @ 80B85F8 push {r4,lr} ldr r0, _080B863C @ =gUnknown_02038696 ldr r4, _080B8640 @ =0x020192d0 ldrb r2, [r4, 0x11] adds r0, r2, r0 ldrb r0, [r0] cmp r0, 0 bne _080B8636 lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r0, r4, 0 subs r0, 0x70 adds r1, r0 ldrh r0, [r1, 0x6] ldr r3, _080B8644 @ =gContestEffects ldr r2, _080B8648 @ =gContestMoves lsls r0, 3 adds r0, r2 ldrb r0, [r0] lsls r0, 2 adds r0, r3 ldrb r0, [r0, 0x1] lsls r0, 1 ldrh r2, [r1, 0x2] adds r0, r2 strh r0, [r1, 0x2] ldrb r0, [r4, 0x11] movs r1, 0xF bl sub_80B13EC _080B8636: pop {r4} pop {r0} bx r0 .align 2, 0 _080B863C: .4byte gUnknown_02038696 _080B8640: .4byte 0x020192d0 _080B8644: .4byte gContestEffects _080B8648: .4byte gContestMoves thumb_func_end ContestEffect_29 thumb_func_start ContestEffect_30 ContestEffect_30: @ 80B864C push {r4,lr} ldr r0, _080B8690 @ =gUnknown_02038696 ldr r4, _080B8694 @ =0x020192d0 ldrb r2, [r4, 0x11] adds r0, r2, r0 ldrb r0, [r0] cmp r0, 0x3 bne _080B868A lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r0, r4, 0 subs r0, 0x70 adds r1, r0 ldrh r0, [r1, 0x6] ldr r3, _080B8698 @ =gContestEffects ldr r2, _080B869C @ =gContestMoves lsls r0, 3 adds r0, r2 ldrb r0, [r0] lsls r0, 2 adds r0, r3 ldrb r0, [r0, 0x1] lsls r0, 1 ldrh r2, [r1, 0x2] adds r0, r2 strh r0, [r1, 0x2] ldrb r0, [r4, 0x11] movs r1, 0x10 bl sub_80B13EC _080B868A: pop {r4} pop {r0} bx r0 .align 2, 0 _080B8690: .4byte gUnknown_02038696 _080B8694: .4byte 0x020192d0 _080B8698: .4byte gContestEffects _080B869C: .4byte gContestMoves thumb_func_end ContestEffect_30 thumb_func_start ContestEffect_31 ContestEffect_31: @ 80B86A0 push {r4-r7,lr} movs r1, 0 movs r3, 0 ldr r4, _080B86EC @ =0x020192d0 ldrb r0, [r4, 0x11] adds r0, r4 ldrb r5, [r0] movs r2, 0 adds r6, r4, 0 subs r6, 0x70 _080B86B4: adds r0, r1, r4 ldrb r0, [r0] cmp r5, r0 bls _080B86C4 adds r0, r2, r6 movs r7, 0x2 ldrsh r0, [r0, r7] adds r3, r0 _080B86C4: adds r2, 0x1C adds r1, 0x1 cmp r1, 0x3 ble _080B86B4 cmp r3, 0 bge _080B86D2 movs r3, 0 _080B86D2: ldr r4, _080B86EC @ =0x020192d0 ldrb r2, [r4, 0x11] adds r0, r2, r4 ldrb r0, [r0] cmp r0, 0 beq _080B86E2 cmp r3, 0 bne _080B86F0 _080B86E2: adds r0, r2, 0 movs r1, 0x12 bl sub_80B13EC b _080B8710 .align 2, 0 _080B86EC: .4byte 0x020192d0 _080B86F0: lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r0, r4, 0 subs r0, 0x70 adds r1, r0 lsrs r0, r3, 31 adds r0, r3, r0 asrs r0, 1 ldrh r2, [r1, 0x2] adds r0, r2 strh r0, [r1, 0x2] ldrb r0, [r4, 0x11] movs r1, 0x11 bl sub_80B13EC _080B8710: ldr r4, _080B873C @ =0x020192d0 ldrb r1, [r4, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r5, r4, 0 subs r5, 0x70 adds r0, r5 movs r7, 0x2 ldrsh r0, [r0, r7] bl sub_80B9224 ldrb r2, [r4, 0x11] lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r5 strh r0, [r1, 0x2] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B873C: .4byte 0x020192d0 thumb_func_end ContestEffect_31 thumb_func_start ContestEffect_32 ContestEffect_32: @ 80B8740 push {r4-r7,lr} movs r6, 0 ldr r0, _080B8794 @ =0x020192d0 ldrb r1, [r0, 0x11] adds r3, r1, r0 ldrb r1, [r3] adds r4, r0, 0 cmp r1, 0 beq _080B8788 movs r2, 0 adds r7, r4, 0 adds r0, r1, 0 subs r1, r0, 0x1 movs r3, 0 adds r5, r4, 0 subs r5, 0x70 _080B8760: adds r0, r2, r7 ldrb r0, [r0] cmp r1, r0 bne _080B876C adds r0, r3, r5 ldrh r6, [r0, 0x2] _080B876C: adds r3, 0x1C adds r2, 0x1 cmp r2, 0x3 ble _080B8760 adds r0, r4, 0 ldrb r2, [r0, 0x11] adds r0, r2, r0 ldrb r0, [r0] cmp r0, 0 beq _080B8788 lsls r0, r6, 16 asrs r3, r0, 16 cmp r3, 0 bgt _080B8798 _080B8788: ldrb r0, [r4, 0x11] movs r1, 0x14 bl sub_80B13EC b _080B87B2 .align 2, 0 _080B8794: .4byte 0x020192d0 _080B8798: lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r0, r4, 0 subs r0, 0x70 adds r1, r0 ldrh r0, [r1, 0x2] adds r0, r3, r0 strh r0, [r1, 0x2] ldrb r0, [r4, 0x11] movs r1, 0x13 bl sub_80B13EC _080B87B2: pop {r4-r7} pop {r0} bx r0 thumb_func_end ContestEffect_32 thumb_func_start ContestEffect_33 ContestEffect_33: @ 80B87B8 push {lr} ldr r0, _080B87D8 @ =0x020192d0 ldrb r2, [r0, 0x11] adds r1, r2, r0 ldrb r3, [r1] mov r12, r0 cmp r3, 0 bne _080B87DC lsls r0, r2, 3 subs r0, r2 lsls r0, 2 mov r1, r12 subs r1, 0x70 adds r0, r1 movs r1, 0xA b _080B87EE .align 2, 0 _080B87D8: .4byte 0x020192d0 _080B87DC: lsls r0, r2, 3 subs r0, r2 lsls r0, 2 mov r1, r12 subs r1, 0x70 adds r0, r1 lsls r1, r3, 2 adds r1, r3 lsls r1, 2 _080B87EE: strh r1, [r0, 0x2] cmp r3, 0 bne _080B8800 mov r1, r12 ldrb r0, [r1, 0x11] movs r1, 0x15 bl sub_80B13EC b _080B882A _080B8800: cmp r3, 0x1 bne _080B8810 mov r1, r12 ldrb r0, [r1, 0x11] movs r1, 0x16 bl sub_80B13EC b _080B882A _080B8810: cmp r3, 0x2 bne _080B8820 mov r1, r12 ldrb r0, [r1, 0x11] movs r1, 0x17 bl sub_80B13EC b _080B882A _080B8820: mov r1, r12 ldrb r0, [r1, 0x11] movs r1, 0x18 bl sub_80B13EC _080B882A: pop {r0} bx r0 thumb_func_end ContestEffect_33 thumb_func_start ContestEffect_34 ContestEffect_34: @ 80B8830 push {r4,lr} bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0x2 bhi _080B885C movs r4, 0xA ldr r0, _080B8858 @ =0x020192d0 ldrb r0, [r0, 0x11] movs r1, 0x1A bl sub_80B13EC b _080B88B0 .align 2, 0 _080B8858: .4byte 0x020192d0 _080B885C: cmp r0, 0x5 bhi _080B8874 movs r4, 0x14 ldr r0, _080B8870 @ =0x020192d0 ldrb r0, [r0, 0x11] movs r1, 0x1B bl sub_80B13EC b _080B88B0 .align 2, 0 _080B8870: .4byte 0x020192d0 _080B8874: cmp r0, 0x7 bhi _080B888C movs r4, 0x28 ldr r0, _080B8888 @ =0x020192d0 ldrb r0, [r0, 0x11] movs r1, 0x1C bl sub_80B13EC b _080B88B0 .align 2, 0 _080B8888: .4byte 0x020192d0 _080B888C: cmp r1, 0x8 bhi _080B88A4 movs r4, 0x3C ldr r0, _080B88A0 @ =0x020192d0 ldrb r0, [r0, 0x11] movs r1, 0x1D bl sub_80B13EC b _080B88B0 .align 2, 0 _080B88A0: .4byte 0x020192d0 _080B88A4: movs r4, 0x50 ldr r0, _080B88C8 @ =0x020192d0 ldrb r0, [r0, 0x11] movs r1, 0x1E bl sub_80B13EC _080B88B0: ldr r0, _080B88C8 @ =0x020192d0 ldrb r2, [r0, 0x11] lsls r1, r2, 3 subs r1, r2 lsls r1, 2 subs r0, 0x70 adds r1, r0 strh r4, [r1, 0x2] pop {r4} pop {r0} bx r0 .align 2, 0 _080B88C8: .4byte 0x020192d0 thumb_func_end ContestEffect_34 thumb_func_start ContestEffect_35 ContestEffect_35: @ 80B88CC push {r4-r7,lr} ldr r1, _080B8940 @ =0x020192d0 ldrb r0, [r1, 0x11] adds r0, r1 movs r2, 0 ldrsb r2, [r0, r2] subs r0, r2, 0x1 lsls r0, 24 lsrs r4, r0, 24 mov r12, r1 cmp r2, 0 beq _080B8994 ldrb r5, [r1] mov r6, r12 subs r6, 0x70 _080B88EA: movs r2, 0 lsls r0, r4, 24 asrs r1, r0, 24 adds r4, r0, 0 cmp r5, r1 beq _080B8910 ldr r3, _080B8940 @ =0x020192d0 _080B88F8: lsls r0, r2, 24 movs r2, 0x80 lsls r2, 17 adds r0, r2 lsrs r2, r0, 24 asrs r0, 24 cmp r0, 0x3 bgt _080B8910 adds r0, r3 ldrb r0, [r0] cmp r0, r1 bne _080B88F8 _080B8910: lsls r2, 24 asrs r1, r2, 24 lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r3, r0, r6 ldrb r1, [r3, 0xB] movs r0, 0x80 ands r0, r1 adds r7, r2, 0 cmp r0, 0 bne _080B8932 ldrb r1, [r3, 0xC] movs r0, 0x7 ands r0, r1 cmp r0, 0 beq _080B8944 _080B8932: movs r1, 0xFF lsls r1, 24 adds r0, r4, r1 lsrs r4, r0, 24 cmp r0, 0 blt _080B8994 b _080B88EA .align 2, 0 _080B8940: .4byte 0x020192d0 _080B8944: mov r2, r12 ldrb r1, [r2, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 mov r3, r12 subs r3, 0x70 adds r5, r0, r3 ldrh r0, [r5, 0x6] ldr r4, _080B899C @ =gContestMoves lsls r0, 3 adds r6, r0, r4 ldrb r2, [r6, 0x1] lsls r2, 29 asrs r1, r7, 24 lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x6] lsls r0, 3 adds r0, r4 ldrb r0, [r0, 0x1] lsls r0, 29 cmp r2, r0 bne _080B8994 ldr r1, _080B89A0 @ =gContestEffects ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x1] lsls r0, 1 ldrh r1, [r5, 0x2] adds r0, r1 strh r0, [r5, 0x2] mov r2, r12 ldrb r0, [r2, 0x11] movs r1, 0x1F bl sub_80B13EC _080B8994: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B899C: .4byte gContestMoves _080B89A0: .4byte gContestEffects thumb_func_end ContestEffect_35 thumb_func_start ContestEffect_36 ContestEffect_36: @ 80B89A4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, _080B8A28 @ =0x020192d0 ldrb r2, [r0, 0x11] adds r1, r2, r0 ldrb r1, [r1] mov r8, r0 cmp r1, 0 beq _080B8A3C lsls r0, r2, 3 subs r0, r2 lsls r0, 2 mov r1, r8 subs r1, 0x70 adds r0, r1 ldrh r0, [r0, 0x6] mov r9, r0 movs r4, 0 mov r6, r8 ldr r0, _080B8A2C @ =gContestMoves mov r12, r0 movs r7, 0 _080B89D4: ldrb r2, [r6, 0x11] adds r0, r2, r6 ldrb r0, [r0] subs r0, 0x1 adds r1, r4, r6 ldrb r1, [r1] cmp r0, r1 bne _080B8A34 mov r1, r9 lsls r0, r1, 3 mov r1, r12 adds r3, r0, r1 ldrb r1, [r3, 0x1] lsls r1, 29 mov r5, r8 subs r5, 0x70 adds r0, r7, r5 ldrh r0, [r0, 0x6] lsls r0, 3 add r0, r12 ldrb r0, [r0, 0x1] lsls r0, 29 cmp r1, r0 beq _080B8A34 lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r5 ldr r2, _080B8A30 @ =gContestEffects ldrb r0, [r3] lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] lsls r0, 1 ldrh r2, [r1, 0x2] adds r0, r2 strh r0, [r1, 0x2] ldrb r0, [r6, 0x11] movs r1, 0x20 bl sub_80B13EC b _080B8A3C .align 2, 0 _080B8A28: .4byte 0x020192d0 _080B8A2C: .4byte gContestMoves _080B8A30: .4byte gContestEffects _080B8A34: adds r7, 0x1C adds r4, 0x1 cmp r4, 0x3 ble _080B89D4 _080B8A3C: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end ContestEffect_36 thumb_func_start ContestEffect_37 ContestEffect_37: @ 80B8A48 push {r4-r7,lr} ldr r1, _080B8A94 @ =0x020192d0 ldrb r0, [r1, 0x11] adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _080B8AB0 movs r5, 0 adds r4, r1, 0 adds r6, r4, 0 subs r6, 0x70 adds r7, r6, 0 _080B8A60: ldrb r2, [r4, 0x11] adds r0, r2, r4 ldrb r0, [r0] subs r0, 0x1 adds r1, r5, r4 ldrb r1, [r1] cmp r0, r1 bne _080B8AA8 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r2, r0, r7 movs r0, 0x2 ldrsh r1, [r2, r0] movs r3, 0x2 ldrsh r0, [r6, r3] cmp r1, r0 ble _080B8A98 adds r0, r1, 0 lsls r0, 1 strh r0, [r2, 0x2] ldrb r0, [r4, 0x11] movs r1, 0x21 bl sub_80B13EC b _080B8AA8 .align 2, 0 _080B8A94: .4byte 0x020192d0 _080B8A98: cmp r1, r0 bge _080B8AA8 movs r0, 0 strh r0, [r2, 0x2] ldrb r0, [r4, 0x11] movs r1, 0x22 bl sub_80B13EC _080B8AA8: adds r6, 0x1C adds r5, 0x1 cmp r5, 0x3 ble _080B8A60 _080B8AB0: pop {r4-r7} pop {r0} bx r0 thumb_func_end ContestEffect_37 thumb_func_start ContestEffect_38 ContestEffect_38: @ 80B8AB8 push {r4,r5,lr} ldr r4, _080B8AFC @ =0x020192d0 ldrb r2, [r4, 0x11] lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r5, r4, 0 subs r5, 0x70 adds r1, r0, r5 ldrb r3, [r1, 0xD] movs r0, 0xD ldrsb r0, [r1, r0] cmp r0, 0x1D bgt _080B8B00 adds r0, r3, 0 adds r0, 0xA strb r0, [r1, 0xD] ldrb r1, [r4, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r5 ldrb r2, [r0, 0x10] movs r1, 0x31 negs r1, r1 ands r1, r2 movs r2, 0x10 orrs r1, r2 strb r1, [r0, 0x10] ldrb r0, [r4, 0x11] movs r1, 0x23 bl sub_80B13EC b _080B8B08 .align 2, 0 _080B8AFC: .4byte 0x020192d0 _080B8B00: adds r0, r2, 0 movs r1, 0x3A bl sub_80B13EC _080B8B08: pop {r4,r5} pop {r0} bx r0 thumb_func_end ContestEffect_38 thumb_func_start ContestEffect_39 ContestEffect_39: @ 80B8B10 push {r4,lr} ldr r3, _080B8B48 @ =0x020192d0 ldrb r1, [r3, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r4, r3, 0 subs r4, 0x70 adds r0, r4 ldrb r1, [r0, 0x11] movs r2, 0x20 orrs r1, r2 strb r1, [r0, 0x11] ldrb r1, [r3, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0xD] lsls r0, 24 asrs r0, 24 cmp r0, 0 beq _080B8B4C adds r0, r1, 0 movs r1, 0x24 bl sub_80B13EC b _080B8B54 .align 2, 0 _080B8B48: .4byte 0x020192d0 _080B8B4C: adds r0, r1, 0 movs r1, 0x3B bl sub_80B13EC _080B8B54: pop {r4} pop {r0} bx r0 thumb_func_end ContestEffect_39 thumb_func_start ContestEffect_40 ContestEffect_40: @ 80B8B5C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 ldr r1, _080B8BE4 @ =0x02019204 ldrb r0, [r1, 0x1] cmp r0, 0x4 bne _080B8B6E b _080B8C76 _080B8B6E: movs r6, 0 adds r7, r1, 0 adds r7, 0xCC adds r3, r1, 0 adds r3, 0x5C _080B8B78: lsls r1, r6, 24 asrs r1, 24 mov r0, sp adds r2, r0, r1 lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r3 ldrb r0, [r0, 0x19] strb r0, [r2] adds r1, 0x1 lsls r1, 24 lsrs r6, r1, 24 asrs r1, 24 cmp r1, 0x3 ble _080B8B78 ldrb r0, [r7, 0x11] mov r2, sp adds r1, r2, r0 movs r0, 0xFF strb r0, [r1] movs r6, 0 mov r12, r7 movs r4, 0x70 negs r4, r4 adds r4, r7 mov r8, r4 _080B8BAE: movs r5, 0 _080B8BB0: lsls r0, r5, 24 asrs r2, r0, 24 mov r0, r12 ldrb r0, [r0, 0x11] cmp r2, r0 beq _080B8BE8 lsls r0, r6, 24 asrs r3, r0, 24 mov r1, sp adds r4, r1, r2 ldrb r0, [r4] cmp r3, r0 bne _080B8BE8 lsls r1, r2, 3 subs r1, r2 lsls r1, 2 add r1, r8 lsls r0, r3, 24 lsrs r0, 24 ldrb r1, [r1, 0x19] cmp r0, r1 bne _080B8BE8 adds r0, r3, 0x1 strb r0, [r4] b _080B8BF8 .align 2, 0 _080B8BE4: .4byte 0x02019204 _080B8BE8: lsls r0, r5, 24 movs r1, 0x80 lsls r1, 17 adds r0, r1 lsrs r5, r0, 24 asrs r0, 24 cmp r0, 0x3 ble _080B8BB0 _080B8BF8: cmp r5, 0x4 beq _080B8C0C lsls r0, r6, 24 movs r2, 0x80 lsls r2, 17 adds r0, r2 lsrs r6, r0, 24 asrs r0, 24 cmp r0, 0x3 ble _080B8BAE _080B8C0C: ldrb r0, [r7, 0x11] mov r4, sp adds r1, r4, r0 movs r0, 0 strb r0, [r1] ldrb r0, [r7, 0x11] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r3, r7, 0 subs r3, 0x70 adds r1, r3 ldrb r2, [r1, 0x10] movs r0, 0x3F ands r0, r2 movs r2, 0x40 orrs r0, r2 strb r0, [r1, 0x10] movs r6, 0 _080B8C32: lsls r1, r6, 24 asrs r1, 24 lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r3 mov r4, sp adds r2, r4, r1 ldrb r2, [r2] strb r2, [r0, 0x19] adds r1, 0x1 lsls r1, 24 lsrs r6, r1, 24 asrs r1, 24 cmp r1, 0x3 ble _080B8C32 ldrb r0, [r7, 0x11] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r0, r7, 0 subs r0, 0x70 adds r1, r0 ldrb r2, [r1, 0x11] movs r0, 0x4 negs r0, r0 ands r0, r2 movs r2, 0x1 orrs r0, r2 strb r0, [r1, 0x11] ldrb r0, [r7, 0x11] movs r1, 0x25 bl sub_80B13EC _080B8C76: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end ContestEffect_40 thumb_func_start ContestEffect_41 ContestEffect_41: @ 80B8C84 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 ldr r1, _080B8D14 @ =0x02019204 ldrb r0, [r1, 0x1] cmp r0, 0x4 bne _080B8C98 b _080B8DA6 _080B8C98: movs r6, 0 adds r7, r1, 0 adds r7, 0xCC adds r3, r1, 0 adds r3, 0x5C _080B8CA2: lsls r1, r6, 24 asrs r1, 24 mov r0, sp adds r2, r0, r1 lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r3 ldrb r0, [r0, 0x19] strb r0, [r2] adds r1, 0x1 lsls r1, 24 lsrs r6, r1, 24 asrs r1, 24 cmp r1, 0x3 ble _080B8CA2 ldrb r0, [r7, 0x11] mov r2, sp adds r1, r2, r0 movs r0, 0xFF strb r0, [r1] movs r6, 0x3 mov r12, r7 movs r4, 0x70 negs r4, r4 adds r4, r7 mov r8, r4 movs r0, 0x1 negs r0, r0 mov r9, r0 _080B8CDE: movs r5, 0 _080B8CE0: lsls r0, r5, 24 asrs r2, r0, 24 mov r1, r12 ldrb r1, [r1, 0x11] cmp r2, r1 beq _080B8D18 lsls r0, r6, 24 asrs r3, r0, 24 mov r0, sp adds r4, r0, r2 ldrb r1, [r4] cmp r3, r1 bne _080B8D18 lsls r1, r2, 3 subs r1, r2 lsls r1, 2 add r1, r8 lsls r0, r3, 24 lsrs r0, 24 ldrb r1, [r1, 0x19] cmp r0, r1 bne _080B8D18 subs r0, r3, 0x1 strb r0, [r4] b _080B8D28 .align 2, 0 _080B8D14: .4byte 0x02019204 _080B8D18: lsls r0, r5, 24 movs r2, 0x80 lsls r2, 17 adds r0, r2 lsrs r5, r0, 24 asrs r0, 24 cmp r0, 0x3 ble _080B8CE0 _080B8D28: cmp r5, 0x4 beq _080B8D3C lsls r0, r6, 24 movs r4, 0xFF lsls r4, 24 adds r0, r4 lsrs r6, r0, 24 asrs r0, 24 cmp r0, r9 bgt _080B8CDE _080B8D3C: ldrb r0, [r7, 0x11] mov r2, sp adds r1, r2, r0 movs r0, 0x3 strb r0, [r1] ldrb r0, [r7, 0x11] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r3, r7, 0 subs r3, 0x70 adds r1, r3 ldrb r2, [r1, 0x10] movs r0, 0x3F ands r0, r2 movs r2, 0x40 orrs r0, r2 strb r0, [r1, 0x10] movs r6, 0 _080B8D62: lsls r1, r6, 24 asrs r1, 24 lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r3 mov r4, sp adds r2, r4, r1 ldrb r2, [r2] strb r2, [r0, 0x19] adds r1, 0x1 lsls r1, 24 lsrs r6, r1, 24 asrs r1, 24 cmp r1, 0x3 ble _080B8D62 ldrb r0, [r7, 0x11] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r0, r7, 0 subs r0, 0x70 adds r1, r0 ldrb r2, [r1, 0x11] movs r0, 0x4 negs r0, r0 ands r0, r2 movs r2, 0x2 orrs r0, r2 strb r0, [r1, 0x11] ldrb r0, [r7, 0x11] movs r1, 0x26 bl sub_80B13EC _080B8DA6: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end ContestEffect_41 thumb_func_start ContestEffect_42 ContestEffect_42: @ 80B8DB4 bx lr thumb_func_end ContestEffect_42 thumb_func_start ContestEffect_43 ContestEffect_43: @ 80B8DB8 push {r4-r7,lr} sub sp, 0x8 ldr r1, _080B8E30 @ =0x02019204 ldrb r0, [r1, 0x1] cmp r0, 0x4 beq _080B8EAE movs r6, 0 add r3, sp, 0x4 adds r5, r1, 0 adds r5, 0x5C adds r4, r3, 0 _080B8DCE: lsls r1, r6, 24 asrs r1, 24 mov r0, sp adds r2, r0, r1 lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r5 ldrb r0, [r0, 0x19] strb r0, [r2] adds r0, r4, r1 strb r6, [r0] adds r1, 0x1 lsls r1, 24 lsrs r6, r1, 24 asrs r1, 24 cmp r1, 0x3 ble _080B8DCE movs r6, 0 adds r7, r3, 0 _080B8DF6: bl Random lsls r0, 16 lsrs r0, 16 lsls r2, r6, 24 asrs r2, 24 movs r1, 0x4 subs r1, r2 bl __modsi3 lsls r0, 24 lsrs r4, r0, 24 movs r1, 0 _080B8E10: lsls r0, r1, 24 asrs r2, r0, 24 adds r3, r7, r2 ldrb r1, [r3] adds r5, r0, 0 cmp r1, 0xFF beq _080B8E3A cmp r4, 0 bne _080B8E34 mov r1, sp adds r0, r1, r2 strb r6, [r0] movs r0, 0xFF strb r0, [r3] b _080B8E48 .align 2, 0 _080B8E30: .4byte 0x02019204 _080B8E34: subs r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _080B8E3A: movs r3, 0x80 lsls r3, 17 adds r0, r5, r3 lsrs r1, r0, 24 asrs r0, 24 cmp r0, 0x3 ble _080B8E10 _080B8E48: lsls r0, r6, 24 movs r1, 0x80 lsls r1, 17 adds r0, r1 lsrs r6, r0, 24 asrs r0, 24 cmp r0, 0x3 ble _080B8DF6 movs r6, 0 ldr r4, _080B8EB8 @ =0x020192d0 adds r7, r4, 0 subs r7, 0x70 movs r3, 0x3F mov r12, r3 movs r5, 0x80 _080B8E66: lsls r2, r6, 24 asrs r2, 24 lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r7 mov r3, sp adds r0, r3, r2 ldrb r0, [r0] strb r0, [r1, 0x19] ldrb r3, [r1, 0x10] mov r0, r12 ands r0, r3 orrs r0, r5 strb r0, [r1, 0x10] adds r2, 0x1 lsls r2, 24 lsrs r6, r2, 24 asrs r2, 24 cmp r2, 0x3 ble _080B8E66 ldrb r1, [r4, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r1, r4, 0 subs r1, 0x70 adds r0, r1 ldrb r1, [r0, 0x11] movs r2, 0x3 orrs r1, r2 strb r1, [r0, 0x11] ldrb r0, [r4, 0x11] movs r1, 0x27 bl sub_80B13EC _080B8EAE: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B8EB8: .4byte 0x020192d0 thumb_func_end ContestEffect_43 thumb_func_start ContestEffect_44 ContestEffect_44: @ 80B8EBC push {lr} ldr r3, _080B8EF0 @ =gContestMoves ldr r1, _080B8EF4 @ =0x020192d0 ldrb r2, [r1, 0x11] lsls r0, r2, 3 subs r0, r2 lsls r0, 2 subs r1, 0x70 adds r2, r0, r1 ldrh r0, [r2, 0x6] lsls r0, 3 adds r0, r3 ldrb r0, [r0, 0x1] lsls r0, 29 ldr r1, _080B8EF8 @ =gUnknown_0203869C lsrs r0, 29 ldrh r1, [r1] cmp r0, r1 beq _080B8EEA ldrb r0, [r2, 0x11] movs r1, 0x10 orrs r0, r1 strb r0, [r2, 0x11] _080B8EEA: pop {r0} bx r0 .align 2, 0 _080B8EF0: .4byte gContestMoves _080B8EF4: .4byte 0x020192d0 _080B8EF8: .4byte gUnknown_0203869C thumb_func_end ContestEffect_44 thumb_func_start ContestEffect_45 ContestEffect_45: @ 80B8EFC push {r4-r7,lr} movs r7, 0 movs r5, 0 ldr r4, _080B8F34 @ =0x020192d0 movs r6, 0 _080B8F06: ldrb r0, [r4, 0x11] adds r0, r4 adds r1, r5, r4 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bls _080B8F52 adds r0, r4, 0 subs r0, 0x70 adds r1, r6, r0 movs r2, 0x2 ldrsh r0, [r1, r2] cmp r0, 0 ble _080B8F38 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 strh r0, [r4, 0x4] movs r1, 0x4 ldrsh r0, [r4, r1] bl sub_80B9268 b _080B8F3A .align 2, 0 _080B8F34: .4byte 0x020192d0 _080B8F38: movs r0, 0xA _080B8F3A: strh r0, [r4, 0x4] strb r5, [r4, 0x8] movs r0, 0xFF strb r0, [r4, 0x9] bl sub_80B9120 lsls r0, 24 cmp r0, 0 beq _080B8F52 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 _080B8F52: adds r6, 0x1C adds r5, 0x1 cmp r5, 0x3 ble _080B8F06 cmp r7, 0 bne _080B8F68 ldr r0, _080B8F78 @ =0x020192d0 ldrb r0, [r0, 0x11] movs r1, 0x36 bl sub_80B1404 _080B8F68: ldr r0, _080B8F78 @ =0x020192d0 ldrb r0, [r0, 0x11] movs r1, 0x30 bl sub_80B13EC pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B8F78: .4byte 0x020192d0 thumb_func_end ContestEffect_45 thumb_func_start ContestEffect_46 ContestEffect_46: @ 80B8F7C push {r4,lr} ldr r0, _080B8F98 @ =0x02019204 movs r1, 0x13 ldrsb r1, [r0, r1] cmp r1, 0 bne _080B8F9C movs r4, 0xA adds r0, 0xCC ldrb r0, [r0, 0x11] movs r1, 0x1A bl sub_80B13EC b _080B8FDE .align 2, 0 _080B8F98: .4byte 0x02019204 _080B8F9C: cmp r1, 0x1 bne _080B8FAE movs r4, 0x14 adds r0, 0xCC ldrb r0, [r0, 0x11] movs r1, 0x1B bl sub_80B13EC b _080B8FDE _080B8FAE: cmp r1, 0x2 bne _080B8FC0 movs r4, 0x1E adds r0, 0xCC ldrb r0, [r0, 0x11] movs r1, 0x1C bl sub_80B13EC b _080B8FDE _080B8FC0: cmp r1, 0x3 bne _080B8FD2 movs r4, 0x32 adds r0, 0xCC ldrb r0, [r0, 0x11] movs r1, 0x1D bl sub_80B13EC b _080B8FDE _080B8FD2: movs r4, 0x3C adds r0, 0xCC ldrb r0, [r0, 0x11] movs r1, 0x1E bl sub_80B13EC _080B8FDE: ldr r0, _080B8FF4 @ =0x020192d0 ldrb r2, [r0, 0x11] lsls r1, r2, 3 subs r1, r2 lsls r1, 2 subs r0, 0x70 adds r1, r0 strh r4, [r1, 0x2] pop {r4} pop {r0} bx r0 .align 2, 0 _080B8FF4: .4byte 0x020192d0 thumb_func_end ContestEffect_46 thumb_func_start ContestEffect_47 ContestEffect_47: @ 80B8FF8 push {lr} ldr r3, _080B9034 @ =0x02019328 ldrb r2, [r3, 0x1] movs r0, 0x1 ands r0, r2 cmp r0, 0 bne _080B902E movs r0, 0x1 orrs r2, r0 movs r0, 0x58 negs r0, r0 adds r0, r3 mov r12, r0 ldrb r1, [r0, 0x11] movs r0, 0x7 ands r0, r1 lsls r0, 1 movs r1, 0xF negs r1, r1 ands r2, r1 orrs r2, r0 strb r2, [r3, 0x1] mov r1, r12 ldrb r0, [r1, 0x11] movs r1, 0x3D bl sub_80B13EC _080B902E: pop {r0} bx r0 .align 2, 0 _080B9034: .4byte 0x02019328 thumb_func_end ContestEffect_47 thumb_func_start sub_80B9038 sub_80B9038: @ 80B9038 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r7, 0 movs r5, 0 ldr r4, _080B907C @ =0x020192d0 ldr r0, _080B9080 @ =gContestMoves mov r9, r0 movs r6, 0 _080B9052: ldrb r0, [r4, 0x11] adds r0, r4 adds r1, r5, r4 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bls _080B909A adds r0, r4, 0 subs r0, 0x70 adds r0, r6, r0 ldrh r0, [r0, 0x6] lsls r0, 3 add r0, r9 ldrb r0, [r0, 0x1] lsls r0, 29 lsrs r0, 29 cmp r8, r0 bne _080B9084 movs r0, 0x28 b _080B9086 .align 2, 0 _080B907C: .4byte 0x020192d0 _080B9080: .4byte gContestMoves _080B9084: movs r0, 0xA _080B9086: strh r0, [r4, 0x4] strb r5, [r4, 0x8] movs r0, 0xFF strb r0, [r4, 0x9] bl sub_80B9120 lsls r0, 24 cmp r0, 0 beq _080B909A adds r7, 0x1 _080B909A: adds r6, 0x1C adds r5, 0x1 cmp r5, 0x3 ble _080B9052 cmp r7, 0 bne _080B90B0 ldr r0, _080B90BC @ =0x020192d0 ldrb r0, [r0, 0x11] movs r1, 0x36 bl sub_80B1404 _080B90B0: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B90BC: .4byte 0x020192d0 thumb_func_end sub_80B9038 thumb_func_start sub_80B90C0 sub_80B90C0: @ 80B90C0 push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r2, _080B90EC @ =0x020192d0 adds r0, r2, 0 adds r0, 0xD adds r0, r3, r0 movs r1, 0x1 strb r1, [r0] lsls r0, r3, 3 subs r0, r3 lsls r0, 2 subs r2, 0x70 adds r2, r0, r2 ldrb r1, [r2, 0x10] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080B90F0 adds r0, r3, 0 movs r1, 0x2D b _080B9116 .align 2, 0 _080B90EC: .4byte 0x020192d0 _080B90F0: ldrb r0, [r2, 0x12] cmp r0, 0 bne _080B910E ldrb r1, [r2, 0xB] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080B911A ldrb r1, [r2, 0xC] movs r0, 0x6 ands r0, r1 cmp r0, 0 bne _080B911A movs r0, 0x1 b _080B911C _080B910E: subs r0, 0x1 strb r0, [r2, 0x12] adds r0, r3, 0 movs r1, 0x2C _080B9116: bl sub_80B13EC _080B911A: movs r0, 0 _080B911C: pop {r1} bx r1 thumb_func_end sub_80B90C0 thumb_func_start sub_80B9120 sub_80B9120: @ 80B9120 push {r4-r7,lr} sub sp, 0xC mov r0, sp movs r1, 0 movs r2, 0x8 bl memset movs r7, 0 ldr r1, _080B918C @ =0x020192d0 ldrb r0, [r1, 0x8] cmp r0, 0xFF beq _080B91D8 adds r5, r1, 0 _080B913A: adds r0, r5, 0 adds r0, 0x8 adds r0, r7, r0 ldrb r4, [r0] adds r6, r4, 0 adds r0, r4, 0 str r1, [sp, 0x8] bl sub_80B90C0 lsls r0, 24 ldr r1, [sp, 0x8] cmp r0, 0 beq _080B91C8 ldrh r0, [r1, 0x4] strh r0, [r1, 0x6] lsls r0, r4, 3 subs r0, r4 lsls r0, 2 subs r1, 0x70 adds r2, r0, r1 ldrb r1, [r2, 0x10] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080B9174 movs r1, 0x6 ldrsh r0, [r5, r1] lsls r0, 1 strh r0, [r5, 0x6] _080B9174: ldrb r0, [r2, 0x10] movs r3, 0x1 ands r3, r0 cmp r3, 0 beq _080B9190 movs r0, 0xA strh r0, [r5, 0x6] adds r0, r4, 0 movs r1, 0x2F bl sub_80B13EC b _080B91C8 .align 2, 0 _080B918C: .4byte 0x020192d0 _080B9190: ldrb r1, [r2, 0xF] ldrh r0, [r5, 0x6] subs r0, r1 adds r1, r0, 0 strh r0, [r5, 0x6] lsls r0, 16 cmp r0, 0 bgt _080B91AC strh r3, [r5, 0x6] adds r0, r4, 0 movs r1, 0x2E bl sub_80B13EC b _080B91C8 _080B91AC: lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 bl sub_80B9200 ldrb r1, [r5, 0x6] adds r0, r6, 0 bl sub_80B141C lsls r0, r6, 1 mov r2, sp adds r1, r2, r0 ldrh r0, [r5, 0x6] strh r0, [r1] _080B91C8: adds r7, 0x1 ldr r1, _080B91E8 @ =0x020192d0 adds r0, r1, 0 adds r0, 0x8 adds r0, r7, r0 ldrb r0, [r0] cmp r0, 0xFF bne _080B913A _080B91D8: movs r7, 0 mov r1, sp _080B91DC: movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 beq _080B91EC movs r0, 0x1 b _080B91F6 .align 2, 0 _080B91E8: .4byte 0x020192d0 _080B91EC: adds r1, 0x2 adds r7, 0x1 cmp r7, 0x3 ble _080B91DC movs r0, 0 _080B91F6: add sp, 0xC pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80B9120 thumb_func_start sub_80B9200 sub_80B9200: @ 80B9200 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, r0, 3 subs r2, r0 lsls r2, 2 ldr r0, _080B9220 @ =0x02019260 adds r2, r0 ldrh r0, [r2, 0x2] subs r0, r1 strh r0, [r2, 0x2] ldrb r0, [r2, 0xE] adds r1, r0 strb r1, [r2, 0xE] bx lr .align 2, 0 _080B9220: .4byte 0x02019260 thumb_func_end sub_80B9200 thumb_func_start sub_80B9224 sub_80B9224: @ 80B9224 push {r4,r5,lr} lsls r0, 16 lsrs r5, r0, 16 asrs r4, r0, 16 adds r0, r4, 0 cmp r4, 0 bge _080B9234 negs r0, r4 _080B9234: movs r1, 0xA bl __modsi3 lsls r0, 16 lsrs r0, 16 cmp r4, 0 bge _080B9252 lsls r0, 16 asrs r1, r0, 16 cmp r1, 0 beq _080B925C adds r0, r4, 0 subs r0, 0xA adds r0, r1, r0 b _080B9258 _080B9252: lsls r0, 16 asrs r0, 16 subs r0, r4, r0 _080B9258: lsls r0, 16 lsrs r5, r0, 16 _080B925C: lsls r0, r5, 16 asrs r0, 16 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80B9224 thumb_func_start sub_80B9268 sub_80B9268: @ 80B9268 push {r4,r5,lr} lsls r0, 16 lsrs r5, r0, 16 asrs r4, r0, 16 adds r0, r4, 0 cmp r4, 0 bge _080B9278 negs r0, r4 _080B9278: movs r1, 0xA bl __modsi3 lsls r0, 16 asrs r1, r0, 16 cmp r1, 0 beq _080B9290 adds r0, r4, 0 adds r0, 0xA subs r0, r1 lsls r0, 16 lsrs r5, r0, 16 _080B9290: lsls r0, r5, 16 asrs r0, 16 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80B9268 thumb_func_start sub_80B929C sub_80B929C: @ 80B929C push {lr} ldr r0, _080B92A8 @ =sub_80B9484 bl sub_8083A84 pop {r0} bx r0 .align 2, 0 _080B92A8: .4byte sub_80B9484 thumb_func_end sub_80B929C thumb_func_start sub_80B92AC sub_80B92AC: @ 80B92AC push {r4-r6,lr} bl sub_80BC300 bl sub_80C045C ldr r6, _080B9364 @ =0x02018000 ldr r0, _080B9368 @ =gUnknown_083D026C ldr r1, [r0] movs r2, 0xC8 lsls r2, 4 adds r0, r6, 0 bl memcpy movs r1, 0xC8 lsls r1, 4 adds r0, r6, r1 ldr r1, _080B936C @ =gUnknown_083D0270 ldr r1, [r1] movs r2, 0xE1 lsls r2, 2 bl memcpy ldr r2, _080B9370 @ =0x00001004 adds r0, r6, r2 ldr r1, _080B9374 @ =gUnknown_083D0274 ldr r1, [r1] movs r2, 0x40 bl memcpy ldr r1, _080B9378 @ =0x00001044 adds r0, r6, r1 ldr r1, _080B937C @ =gUnknown_083D0278 ldr r1, [r1] movs r2, 0x40 bl memcpy ldr r2, _080B9380 @ =0x00001084 adds r0, r6, r2 ldr r1, _080B9384 @ =gUnknown_083D027C ldr r1, [r1] movs r2, 0x28 bl memcpy ldr r5, _080B9388 @ =gUnknown_02038738 ldr r4, _080B938C @ =gSaveBlock1 ldr r0, _080B9390 @ =0x0000303c adds r1, r4, r0 adds r0, r5, 0 movs r2, 0x38 bl memcpy ldr r2, _080B9394 @ =0x00003074 adds r1, r4, r2 adds r0, r5, 0 adds r0, 0x38 movs r2, 0x38 bl memcpy ldr r0, _080B9398 @ =0x00002f9c adds r4, r0 adds r0, r4, 0 adds r1, r5, 0 bl sub_8041324 ldr r1, _080B939C @ =0x000010ac adds r0, r6, r1 ldr r1, _080B93A0 @ =gUnknown_083D0280 ldr r1, [r1] movs r2, 0x78 bl memcpy ldr r2, _080B93A4 @ =0x00001124 adds r0, r6, r2 ldr r1, _080B93A8 @ =gUnknown_083D0284 ldr r1, [r1] movs r2, 0xA4 bl memcpy bl GetMultiplayerId lsls r0, 24 cmp r0, 0 bne _080B935C bl sub_8126338 ldr r2, _080B93AC @ =0x000011c8 adds r1, r6, r2 strh r0, [r1] _080B935C: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B9364: .4byte 0x02018000 _080B9368: .4byte gUnknown_083D026C _080B936C: .4byte gUnknown_083D0270 _080B9370: .4byte 0x00001004 _080B9374: .4byte gUnknown_083D0274 _080B9378: .4byte 0x00001044 _080B937C: .4byte gUnknown_083D0278 _080B9380: .4byte 0x00001084 _080B9384: .4byte gUnknown_083D027C _080B9388: .4byte gUnknown_02038738 _080B938C: .4byte gSaveBlock1 _080B9390: .4byte 0x0000303c _080B9394: .4byte 0x00003074 _080B9398: .4byte 0x00002f9c _080B939C: .4byte 0x000010ac _080B93A0: .4byte gUnknown_083D0280 _080B93A4: .4byte 0x00001124 _080B93A8: .4byte gUnknown_083D0284 _080B93AC: .4byte 0x000011c8 thumb_func_end sub_80B92AC thumb_func_start sub_80B93B0 sub_80B93B0: @ 80B93B0 push {r4-r6,lr} mov r6, r8 push {r6} adds r4, r0, 0 ldr r5, _080B9430 @ =0x02008000 ldr r6, _080B9434 @ =0x00001230 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 adds r1, r6, 0 adds r2, r4, 0 bl sub_80BD674 movs r0, 0xC8 lsls r0, 4 adds r0, r5 mov r8, r0 adds r1, r6, 0 adds r2, r4, 0 bl sub_80BFD44 ldr r1, _080B9438 @ =0x00001004 adds r0, r5, r1 adds r1, r6, 0 adds r2, r4, 0 bl sub_80C0514 ldr r1, _080B943C @ =0x00001044 adds r0, r5, r1 adds r1, r6, 0 adds r2, r4, 0 bl sub_80B9B1C ldr r1, _080B9440 @ =0x00001084 adds r0, r5, r1 adds r1, r6, 0 adds r2, r4, 0 bl sub_80FA4E4 ldr r1, _080B9444 @ =0x000010ac adds r0, r5, r1 adds r1, r6, 0 adds r2, r4, 0 mov r3, r8 bl sub_80B9C6C ldr r1, _080B9448 @ =0x00001124 adds r0, r5, r1 adds r1, r6, 0 adds r2, r4, 0 bl sub_80B9B70 ldr r0, _080B944C @ =0x000011c8 adds r5, r0 adds r0, r5, 0 adds r1, r4, 0 bl sub_80B9F3C pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B9430: .4byte 0x02008000 _080B9434: .4byte 0x00001230 _080B9438: .4byte 0x00001004 _080B943C: .4byte 0x00001044 _080B9440: .4byte 0x00001084 _080B9444: .4byte 0x000010ac _080B9448: .4byte 0x00001124 _080B944C: .4byte 0x000011c8 thumb_func_end sub_80B93B0 thumb_func_start sub_80B9450 sub_80B9450: @ 80B9450 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080B9480 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x32 bne _080B9478 movs r0, 0xE2 bl PlaySE movs r0, 0 strh r0, [r4, 0x8] _080B9478: pop {r4} pop {r0} bx r0 .align 2, 0 _080B9480: .4byte gTasks thumb_func_end sub_80B9450 thumb_func_start sub_80B9484 sub_80B9484: @ 80B9484 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080B94A8 @ =gTasks + 0x8 adds r4, r0, r1 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x5 bls _080B949E b _080B95E6 _080B949E: lsls r0, 2 ldr r1, _080B94AC @ =_080B94B0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080B94A8: .4byte gTasks + 0x8 _080B94AC: .4byte _080B94B0 .align 2, 0 _080B94B0: .4byte _080B94C8 .4byte _080B951C .4byte _080B9550 .4byte _080B9570 .4byte _080B95AC .4byte _080B95C0 _080B94C8: ldr r0, _080B950C @ =gUnknown_0202E8CE ldrb r0, [r0] bl sub_8007270 movs r0, 0x80 lsls r0, 7 movs r1, 0x1 bl VarSet ldr r1, _080B9510 @ =gUnknown_03000718 movs r0, 0 strb r0, [r1] bl sub_80B92AC bl sub_80C71D8 movs r0, 0x1 strh r0, [r4] ldr r0, _080B9514 @ =sub_80B95F0 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x14] ldr r0, _080B9518 @ =sub_80B9450 movs r1, 0x51 bl CreateTask lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1E] b _080B95E6 .align 2, 0 _080B950C: .4byte gUnknown_0202E8CE _080B9510: .4byte gUnknown_03000718 _080B9514: .4byte sub_80B95F0 _080B9518: .4byte sub_80B9450 _080B951C: ldr r2, _080B9548 @ =gTasks movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x4] cmp r0, 0 bne _080B95E6 movs r0, 0x2 strh r0, [r4] ldr r0, _080B954C @ =0x00000834 bl FlagSet bl sub_80C7240 ldrb r0, [r4, 0x1E] bl DestroyTask b _080B95E6 .align 2, 0 _080B9548: .4byte gTasks _080B954C: .4byte 0x00000834 _080B9550: ldr r0, _080B956C @ =sub_80BA00C movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x14] movs r0, 0x3 strh r0, [r4] movs r0, 0xE0 bl PlaySE b _080B95E6 .align 2, 0 _080B956C: .4byte sub_80BA00C _080B9570: ldr r2, _080B95A4 @ =gTasks movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r5, [r0, 0x4] cmp r5, 0 bne _080B95E6 movs r0, 0x4 strh r0, [r4] bl sub_8083664 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x14] bl sub_80720B0 ldr r0, _080B95A8 @ =gOtherText_MixingComplete movs r1, 0x2 movs r2, 0xF bl MenuPrint strh r5, [r4, 0x10] b _080B95E6 .align 2, 0 _080B95A4: .4byte gTasks _080B95A8: .4byte gOtherText_MixingComplete _080B95AC: ldrh r0, [r4, 0x10] adds r0, 0x1 strh r0, [r4, 0x10] lsls r0, 16 asrs r0, 16 cmp r0, 0x3C ble _080B95E6 movs r0, 0x5 strh r0, [r4] b _080B95E6 _080B95C0: ldr r2, _080B95EC @ =gTasks movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x4] cmp r0, 0 bne _080B95E6 bl sub_8055588 bl MenuZeroFillScreen adds r0, r5, 0 bl DestroyTask bl EnableBothScriptContexts _080B95E6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B95EC: .4byte gTasks thumb_func_end sub_80B9484 thumb_func_start sub_80B95F0 sub_80B95F0: @ 80B95F0 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r7, _080B961C @ =gTasks adds r5, r0, r7 movs r0, 0x8 ldrsh r1, [r5, r0] cmp r1, 0x64 beq _080B9678 cmp r1, 0x64 bgt _080B962E cmp r1, 0x1 bne _080B9612 b _080B9734 _080B9612: cmp r1, 0x1 bgt _080B9620 cmp r1, 0 beq _080B9650 b _080B97D6 .align 2, 0 _080B961C: .4byte gTasks _080B9620: cmp r1, 0x2 bne _080B9626 b _080B9760 _080B9626: cmp r1, 0x5 bne _080B962C b _080B97C0 _080B962C: b _080B97D6 _080B962E: cmp r1, 0xC9 beq _080B96D0 cmp r1, 0xC9 bgt _080B963C cmp r1, 0x65 beq _080B9690 b _080B97D6 _080B963C: ldr r0, _080B964C @ =0x0000012d cmp r1, r0 beq _080B9706 adds r0, 0x63 cmp r1, r0 beq _080B971C b _080B97D6 .align 2, 0 _080B964C: .4byte 0x0000012d _080B9650: bl sub_80B9A78 bl MenuDisplayMessageBox ldr r0, _080B9674 @ =gOtherText_MixingRecordsWithFriend movs r1, 0x2 movs r2, 0xF bl MenuPrint movs r0, 0xE1 lsls r0, 3 strh r0, [r5, 0x18] movs r0, 0xC8 lsls r0, 1 strh r0, [r5, 0x8] bl ClearLinkCallback_2 b _080B97D6 .align 2, 0 _080B9674: .4byte gOtherText_MixingRecordsWithFriend _080B9678: ldrh r0, [r5, 0x20] adds r0, 0x1 strh r0, [r5, 0x20] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 bgt _080B9688 b _080B97D6 _080B9688: movs r0, 0 strh r0, [r5, 0x20] movs r0, 0x65 b _080B97D4 _080B9690: bl GetLinkPlayerCount_2 lsls r0, 24 lsrs r4, r0, 24 bl IsLinkMaster lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080B96C2 bl sub_800820C lsls r0, 24 lsrs r0, 24 cmp r4, r0 beq _080B96B2 b _080B97D6 _080B96B2: movs r0, 0x15 bl PlaySE movs r1, 0 movs r0, 0xC9 strh r0, [r5, 0x8] strh r1, [r5, 0x20] b _080B97D6 _080B96C2: movs r0, 0x16 bl PlaySE ldr r0, _080B96CC @ =0x0000012d b _080B97D4 .align 2, 0 _080B96CC: .4byte 0x0000012d _080B96D0: bl sub_800820C adds r4, r0, 0 bl GetLinkPlayerCount_2 lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _080B97D6 ldrh r4, [r5, 0x20] adds r4, 0x1 strh r4, [r5, 0x20] lsls r4, 16 asrs r4, 16 bl GetLinkPlayerCount_2 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 subs r1, r0 lsls r1, 1 cmp r4, r1 ble _080B97D6 bl sub_8007F4C movs r0, 0x1 b _080B97D4 _080B9706: bl sub_800820C adds r4, r0, 0 bl GetLinkPlayerCount_2 lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _080B97D6 movs r0, 0x1 b _080B97D4 _080B971C: ldrh r0, [r5, 0x20] adds r0, 0x1 strh r0, [r5, 0x20] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 ble _080B97D6 movs r0, 0x1 strh r0, [r5, 0x8] movs r0, 0 strh r0, [r5, 0x20] b _080B97D6 _080B9734: ldr r0, _080B9758 @ =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 beq _080B97D6 ldr r4, _080B975C @ =gStringVar1 bl sub_80B9A58 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN movs r0, 0x5 b _080B97D4 .align 2, 0 _080B9758: .4byte gReceivedRemoteLinkPlayers _080B975C: .4byte gStringVar1 _080B9760: bl GetLinkPlayerCount_2 lsls r0, 24 lsrs r0, 24 movs r1, 0 strh r0, [r5, 0x14] strh r1, [r5, 0x8] bl sub_80B9A58 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x12] ldr r0, _080B97B0 @ =sub_80B97DC str r0, [r5] ldr r4, _080B97B4 @ =0x02018000 adds r1, r5, 0 adds r1, 0xC adds r0, r4, 0 bl sub_80B9A50 ldr r0, _080B97B8 @ =sub_80B9890 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x1C] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r0, r1, r7 strh r6, [r0, 0x8] ldr r0, _080B97BC @ =0xffff0000 adds r4, r0 adds r1, r7, r1 adds r1, 0x12 adds r0, r4, 0 bl sub_80B9A50 b _080B97D6 .align 2, 0 _080B97B0: .4byte sub_80B97DC _080B97B4: .4byte 0x02018000 _080B97B8: .4byte sub_80B9890 _080B97BC: .4byte 0xffff0000 _080B97C0: ldrh r0, [r5, 0x1C] adds r0, 0x1 strh r0, [r5, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x3C ble _080B97D6 movs r0, 0 strh r0, [r5, 0x1C] movs r0, 0x2 _080B97D4: strh r0, [r5, 0x8] _080B97D6: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80B95F0 thumb_func_start sub_80B97DC sub_80B97DC: @ 80B97DC push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080B9800 @ =gTasks adds r4, r1, r0 movs r2, 0x8 ldrsh r1, [r4, r2] adds r2, r0, 0 cmp r1, 0x4 bhi _080B9884 lsls r0, r1, 2 ldr r1, _080B9804 @ =_080B9808 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080B9800: .4byte gTasks _080B9804: .4byte _080B9808 .align 2, 0 _080B9808: .4byte _080B981C .4byte _080B9840 .4byte _080B9884 .4byte _080B9852 .4byte _080B986E _080B981C: adds r0, r4, 0 adds r0, 0xC bl sub_80B9A44 adds r1, r0, 0 movs r0, 0x10 ldrsh r2, [r4, r0] movs r0, 0xC8 muls r0, r2 adds r1, r0 ldr r0, _080B983C @ =gBlockSendBuffer movs r2, 0xC8 bl memcpy b _080B9860 .align 2, 0 _080B983C: .4byte gBlockSendBuffer _080B9840: bl GetMultiplayerId lsls r0, 24 cmp r0, 0 bne _080B9860 movs r0, 0x1 bl sub_8007E9C b _080B9860 _080B9852: ldrh r0, [r4, 0x10] adds r0, 0x1 strh r0, [r4, 0x10] lsls r0, 16 lsrs r0, 16 cmp r0, 0x18 bne _080B9868 _080B9860: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080B9884 _080B9868: movs r0, 0 strh r0, [r4, 0x8] b _080B9884 _080B986E: movs r1, 0x1C ldrsh r0, [r4, r1] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrb r0, [r1, 0x4] cmp r0, 0 bne _080B9884 ldr r0, _080B988C @ =sub_80B9A1C str r0, [r4] _080B9884: pop {r4} pop {r0} bx r0 .align 2, 0 _080B988C: .4byte sub_80B9A1C thumb_func_end sub_80B97DC thumb_func_start sub_80B9890 sub_80B9890: @ 80B9890 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 str r0, [sp] lsls r0, 2 ldr r1, [sp] adds r0, r1 lsls r0, 3 ldr r1, _080B98D0 @ =gTasks adds r0, r1 mov r10, r0 bl GetBlockRecievedStatus lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] bl sub_8008198 lsls r0, 24 lsrs r0, 24 ldr r3, [sp, 0x4] cmp r3, r0 bne _080B998A movs r0, 0 b _080B9966 .align 2, 0 _080B98D0: .4byte gTasks _080B98D4: ldr r1, [sp, 0x4] mov r2, r9 asrs r1, r2 movs r0, 0x1 ands r1, r0 movs r3, 0x1 add r3, r9 mov r8, r3 cmp r1, 0 beq _080B9960 mov r0, r10 adds r0, 0x12 bl sub_80B9A44 mov r1, r8 lsls r4, r1, 1 mov r5, r10 adds r5, 0x8 adds r4, r5, r4 movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0xC8 muls r1, r3 adds r0, r1 ldr r7, _080B9930 @ =0x00001230 mov r1, r9 muls r1, r7 adds r6, r0, r1 mov r0, r9 str r3, [sp, 0xC] bl sub_80B9A68 adds r1, r0, 0 movs r0, 0 ldrsh r2, [r4, r0] adds r0, r2, 0x1 ldr r3, [sp, 0xC] muls r0, r3 cmp r0, r7 bls _080B9934 muls r2, r3 subs r2, r7, r2 adds r0, r6, 0 bl memcpy b _080B993C .align 2, 0 _080B9930: .4byte 0x00001230 _080B9934: adds r0, r6, 0 movs r2, 0xC8 bl memcpy _080B993C: mov r0, r9 bl ResetBlockReceivedFlag mov r2, r8 lsls r1, r2, 1 adds r1, r5, r1 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 lsrs r0, 16 cmp r0, 0x18 bne _080B9960 ldr r0, [sp, 0x8] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x8] _080B9960: mov r3, r8 lsls r0, r3, 24 lsrs r0, 24 _080B9966: mov r9, r0 bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r9, r0 bcc _080B98D4 ldr r2, _080B99B0 @ =gTasks mov r0, r10 movs r3, 0x8 ldrsh r1, [r0, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] _080B998A: bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 ldr r1, [sp, 0x8] cmp r1, r0 bne _080B999E ldr r0, [sp] bl DestroyTask _080B999E: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B99B0: .4byte gTasks thumb_func_end sub_80B9890 thumb_func_start sub_80B99B4 sub_80B99B4: @ 80B99B4 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 ldr r2, _080B99E4 @ =gTasks adds r0, r2 movs r4, 0x1C ldrsh r1, [r0, r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x4] cmp r0, 0 bne _080B99DC adds r0, r3, 0 bl DestroyTask _080B99DC: pop {r4} pop {r0} bx r0 .align 2, 0 _080B99E4: .4byte gTasks thumb_func_end sub_80B99B4 thumb_func_start sub_80B99E8 sub_80B99E8: @ 80B99E8 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080B9A10 @ =gTasks adds r1, r0 ldr r0, _080B9A14 @ =sub_80B99B4 str r0, [r1] ldr r0, _080B9A18 @ =gUnknown_03000718 ldrb r0, [r0] cmp r0, 0x1 bne _080B9A0C movs r2, 0x12 ldrsh r0, [r1, r2] bl sub_80B93B0 _080B9A0C: pop {r0} bx r0 .align 2, 0 _080B9A10: .4byte gTasks _080B9A14: .4byte sub_80B99B4 _080B9A18: .4byte gUnknown_03000718 thumb_func_end sub_80B99E8 thumb_func_start sub_80B9A1C sub_80B9A1C: @ 80B9A1C lsls r0, 24 lsrs r0, 24 ldr r2, _080B9A38 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _080B9A3C @ =sub_80B99E8 str r0, [r1] ldr r1, _080B9A40 @ =gUnknown_03000718 movs r0, 0x1 strb r0, [r1] bx lr .align 2, 0 _080B9A38: .4byte gTasks _080B9A3C: .4byte sub_80B99E8 _080B9A40: .4byte gUnknown_03000718 thumb_func_end sub_80B9A1C thumb_func_start sub_80B9A44 sub_80B9A44: @ 80B9A44 adds r1, r0, 0 ldrh r0, [r1] ldrh r1, [r1, 0x2] lsls r1, 16 orrs r0, r1 bx lr thumb_func_end sub_80B9A44 thumb_func_start sub_80B9A50 sub_80B9A50: @ 80B9A50 strh r0, [r1] lsrs r0, 16 strh r0, [r1, 0x2] bx lr thumb_func_end sub_80B9A50 thumb_func_start sub_80B9A58 sub_80B9A58: @ 80B9A58 push {lr} bl GetMultiplayerId lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_80B9A58 thumb_func_start sub_80B9A68 sub_80B9A68: @ 80B9A68 lsls r0, 24 lsrs r0, 16 ldr r1, _080B9A74 @ =gBlockRecvBuffer adds r0, r1 bx lr .align 2, 0 _080B9A74: .4byte gBlockRecvBuffer thumb_func_end sub_80B9A68 thumb_func_start sub_80B9A78 sub_80B9A78: @ 80B9A78 ldr r1, _080B9A80 @ =gUnknown_03005D2C ldr r0, _080B9A84 @ =0x00001230 str r0, [r1] bx lr .align 2, 0 _080B9A80: .4byte gUnknown_03005D2C _080B9A84: .4byte 0x00001230 thumb_func_end sub_80B9A78 thumb_func_start sub_80B9A88 sub_80B9A88: @ 80B9A88 push {r4,lr} adds r4, r0, 0 bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _080B9AC0 cmp r0, 0x3 bhi _080B9AA2 cmp r0, 0x2 beq _080B9AA8 b _080B9B10 _080B9AA2: cmp r0, 0x4 beq _080B9AEC b _080B9B10 _080B9AA8: movs r2, 0 ldr r3, _080B9ABC @ =gUnknown_083D0288 _080B9AAC: adds r0, r4, r2 adds r1, r2, r3 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x1 bls _080B9AAC b _080B9B10 .align 2, 0 _080B9ABC: .4byte gUnknown_083D0288 _080B9AC0: movs r0, 0 bl GetLinkPlayerTrainerId adds r3, r0, 0 movs r0, 0x1 ands r3, r0 movs r2, 0 ldr r1, _080B9AE8 @ =gUnknown_083D028A lsls r0, r3, 1 adds r0, r3 adds r3, r0, r1 _080B9AD6: adds r1, r4, r2 ldrb r0, [r3] strb r0, [r1] adds r3, 0x1 adds r2, 0x1 cmp r2, 0x2 bls _080B9AD6 b _080B9B10 .align 2, 0 _080B9AE8: .4byte gUnknown_083D028A _080B9AEC: movs r0, 0 bl GetLinkPlayerTrainerId movs r1, 0x9 bl __umodsi3 adds r3, r0, 0 movs r2, 0 ldr r1, _080B9B18 @ =gUnknown_083D0290 lsls r0, r3, 2 adds r3, r0, r1 _080B9B02: adds r1, r4, r2 ldrb r0, [r3] strb r0, [r1] adds r3, 0x1 adds r2, 0x1 cmp r2, 0x3 bls _080B9B02 _080B9B10: pop {r4} pop {r0} bx r0 .align 2, 0 _080B9B18: .4byte gUnknown_083D0290 thumb_func_end sub_80B9A88 thumb_func_start sub_80B9B1C sub_80B9B1C: @ 80B9B1C push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x4 adds r5, r0, 0 mov r8, r1 lsls r4, r2, 24 lsrs r4, 24 mov r0, sp bl sub_80B9A88 mov r0, r8 muls r0, r4 adds r0, r5, r0 ldr r1, _080B9B6C @ =gUnknown_083D0278 ldr r6, [r1] adds r1, r6, 0 movs r2, 0x40 bl memcpy mov r1, sp adds r0, r1, r4 ldrb r0, [r0] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r5, r0 adds r0, r6, 0 adds r1, r5, 0 movs r2, 0x40 bl memcpy bl sub_80F7F30 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B9B6C: .4byte gUnknown_083D0278 thumb_func_end sub_80B9B1C thumb_func_start sub_80B9B70 sub_80B9B70: @ 80B9B70 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} adds r6, r0, 0 mov r9, r1 lsls r4, r2, 24 lsrs r4, 24 ldr r0, _080B9BB8 @ =gUnknown_0300071C mov r8, r0 bl sub_80B9A88 mov r5, r9 muls r5, r4 adds r5, r6, r5 add r4, r8 ldrb r0, [r4] mov r1, r9 muls r1, r0 adds r0, r1, 0 adds r6, r0 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0xA4 bl memcpy adds r0, r5, 0 bl sub_8134AC0 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B9BB8: .4byte gUnknown_0300071C thumb_func_end sub_80B9B70 thumb_func_start sub_80B9BBC sub_80B9BBC: @ 80B9BBC ldrh r0, [r0, 0x20] lsls r0, 24 lsrs r0, 24 bx lr thumb_func_end sub_80B9BBC thumb_func_start sub_80B9BC4 sub_80B9BC4: @ 80B9BC4 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0x38 mov r8, r0 mov r10, r1 mov r9, r2 adds r4, r3, 0 ldr r5, [sp, 0x54] lsls r4, 24 lsls r5, 24 lsrs r5, 24 lsrs r4, 23 add r4, r9 ldrb r0, [r4] mov r6, r10 muls r6, r0 add r6, r8 ldrb r0, [r4, 0x1] lsls r1, r0, 3 subs r1, r0 lsls r1, 3 adds r1, r6, r1 mov r0, sp movs r2, 0x38 bl memcpy lsls r5, 1 add r5, r9 ldrb r0, [r5] mov r1, r10 muls r1, r0 adds r0, r1, 0 add r8, r0 ldrb r1, [r4, 0x1] lsls r0, r1, 3 subs r0, r1 lsls r0, 3 adds r6, r0 ldrb r0, [r5, 0x1] lsls r1, r0, 3 subs r1, r0 lsls r1, 3 add r1, r8 adds r0, r6, 0 movs r2, 0x38 bl memcpy ldrb r1, [r5, 0x1] lsls r0, r1, 3 subs r0, r1 lsls r0, 3 add r8, r0 mov r0, r8 mov r1, sp movs r2, 0x38 bl memcpy add sp, 0x38 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80B9BC4 thumb_func_start sub_80B9C4C sub_80B9C4C: @ 80B9C4C push {lr} adds r3, r0, 0 movs r2, 0 movs r1, 0 _080B9C54: adds r0, r3, r1 ldrb r0, [r0] adds r0, r2, r0 lsls r0, 24 lsrs r2, r0, 24 adds r1, 0x1 cmp r1, 0xFF ble _080B9C54 adds r0, r2, 0 pop {r1} bx r1 thumb_func_end sub_80B9C4C thumb_func_start sub_80B9C6C sub_80B9C6C: @ 80B9C6C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x58 str r0, [sp, 0x2C] str r1, [sp, 0x30] str r3, [sp, 0x38] lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x34] bl Random lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x40] ldr r0, _080B9DA8 @ =gLinkPlayers ldrh r0, [r0, 0x4] bl SeedRng bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r3, 0 add r0, sp, 0x1C mov r9, r0 movs r1, 0x1D add r1, sp mov r10, r1 mov r2, sp adds r2, 0xC str r2, [sp, 0x4C] movs r7, 0xFF add r4, sp, 0x8 movs r2, 0 mov r6, r9 mov r5, r10 _080B9CBC: mov r1, sp adds r1, r3 adds r1, 0x4 ldrb r0, [r1] orrs r0, r7 strb r0, [r1] adds r0, r4, r3 strb r2, [r0] lsls r1, r3, 1 adds r0, r6, r1 strb r2, [r0] adds r1, r5, r1 strb r2, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x3 bls _080B9CBC movs r4, 0 str r4, [sp, 0x3C] movs r3, 0 mov r1, r8 lsls r0, r1, 16 lsrs r1, r0, 16 str r0, [sp, 0x50] ldr r4, [sp, 0x30] ldr r0, [sp, 0x34] adds r2, r4, 0 muls r2, r0 str r2, [sp, 0x48] ldr r2, [sp, 0x3C] cmp r2, r1 bcs _080B9D46 mov r8, r1 _080B9D00: ldr r4, [sp, 0x30] adds r0, r4, 0 muls r0, r3 ldr r1, [sp, 0x2C] adds r6, r1, r0 ldr r0, [r6, 0x70] cmp r0, 0 beq _080B9D3C movs r7, 0 cmp r7, r0 bcs _080B9D3C adds r4, r6, 0 adds r4, 0x74 mov r2, r9 lsls r1, r3, 1 movs r5, 0x1 _080B9D20: lsls r0, r7, 1 adds r0, r4, r0 ldrh r0, [r0] cmp r0, 0 bne _080B9D30 adds r0, r7, r1 adds r0, r2, r0 strb r5, [r0] _080B9D30: adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 ldr r0, [r6, 0x70] cmp r7, r0 bcc _080B9D20 _080B9D3C: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r8 bcc _080B9D00 _080B9D46: movs r7, 0 movs r3, 0 ldr r2, [sp, 0x50] cmp r2, 0 beq _080B9E3E mov r4, sp adds r4, 0x24 str r4, [sp, 0x44] movs r0, 0x25 add r0, sp mov r8, r0 _080B9D5C: ldr r1, [sp, 0x30] adds r0, r1, 0 muls r0, r3 ldr r2, [sp, 0x2C] adds r6, r2, r0 lsls r1, r3, 1 mov r4, r9 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0x1 beq _080B9D7C mov r2, r10 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080B9D86 _080B9D7C: ldr r0, [sp, 0x3C] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x3C] _080B9D86: mov r4, r9 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080B9DAC mov r2, r10 adds r0, r2, r1 ldrb r2, [r0] cmp r2, 0 bne _080B9DAC _080B9D9A: lsls r1, r7, 1 ldr r4, [sp, 0x44] adds r0, r4, r1 strb r3, [r0] add r1, r8 strb r2, [r1] b _080B9E2C .align 2, 0 _080B9DA8: .4byte gLinkPlayers _080B9DAC: mov r2, r9 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 bne _080B9DC0 mov r4, r10 adds r0, r4, r1 ldrb r2, [r0] cmp r2, 0x1 beq _080B9D9A _080B9DC0: mov r2, r9 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080B9E32 mov r4, r10 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080B9E32 lsls r5, r7, 1 ldr r1, [sp, 0x44] adds r0, r1, r5 strb r3, [r0] adds r0, r6, 0 str r3, [sp, 0x54] bl sub_80B9BBC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 adds r0, 0x38 bl sub_80B9BBC lsls r0, 24 lsrs r1, r0, 24 ldr r3, [sp, 0x54] cmp r4, 0 bne _080B9E0A cmp r1, 0 beq _080B9E0E mov r2, r8 adds r1, r2, r5 movs r0, 0x1 strb r0, [r1] b _080B9E2C _080B9E0A: cmp r1, 0 beq _080B9E26 _080B9E0E: str r3, [sp, 0x54] bl Random mov r4, r8 adds r2, r4, r5 lsls r0, 16 lsrs r0, 16 movs r1, 0x1 ands r0, r1 strb r0, [r2] ldr r3, [sp, 0x54] b _080B9E2C _080B9E26: mov r2, r8 adds r0, r2, r5 strb r1, [r0] _080B9E2C: adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 _080B9E32: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 ldr r4, [sp, 0x50] cmp r0, r4 bcc _080B9D5C _080B9E3E: movs r3, 0 ldr r1, [sp, 0x48] lsls r0, r1, 4 subs r0, r1 lsls r0, 3 ldr r2, [sp, 0x2C] adds r6, r2, r0 ldr r1, [sp, 0x4C] _080B9E4E: lsls r0, r3, 2 adds r0, r1, r0 str r6, [r0] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x3 bls _080B9E4E ldr r0, [sp, 0x38] bl sub_80B9C4C lsls r0, 24 lsrs r0, 24 movs r1, 0x3 bl __umodsi3 lsls r0, 24 lsrs r1, r0, 24 ldr r4, [sp, 0x3C] cmp r4, 0x3 beq _080B9E9C cmp r4, 0x3 bgt _080B9E82 cmp r4, 0x2 beq _080B9E8A b _080B9EF0 _080B9E82: ldr r0, [sp, 0x3C] cmp r0, 0x4 beq _080B9EBC b _080B9EF0 _080B9E8A: add r2, sp, 0x24 movs r0, 0x1 str r0, [sp] ldr r0, [sp, 0x2C] ldr r1, [sp, 0x30] movs r3, 0 bl sub_80B9BC4 b _080B9EF0 _080B9E9C: ldr r0, _080B9EB8 @ =gUnknown_083D02B4 lsls r1, 1 adds r2, r1, r0 ldrb r3, [r2] adds r0, 0x1 adds r1, r0 ldrb r0, [r1] add r2, sp, 0x24 str r0, [sp] ldr r0, [sp, 0x2C] ldr r1, [sp, 0x30] bl sub_80B9BC4 b _080B9EF0 .align 2, 0 _080B9EB8: .4byte gUnknown_083D02B4 _080B9EBC: add r6, sp, 0x24 ldr r4, _080B9F2C @ =gUnknown_083D02BA lsls r5, r1, 2 adds r0, r5, r4 ldrb r3, [r0] adds r0, r4, 0x1 adds r0, r5, r0 ldrb r0, [r0] str r0, [sp] ldr r0, [sp, 0x2C] ldr r1, [sp, 0x30] adds r2, r6, 0 bl sub_80B9BC4 adds r0, r4, 0x2 adds r0, r5, r0 ldrb r3, [r0] adds r4, 0x3 adds r5, r4 ldrb r0, [r5] str r0, [sp] ldr r0, [sp, 0x2C] ldr r1, [sp, 0x30] adds r2, r6, 0 bl sub_80B9BC4 _080B9EF0: ldr r1, [sp, 0x2C] ldr r2, [sp, 0x48] adds r6, r1, r2 ldr r4, _080B9F30 @ =gSaveBlock1 ldr r1, _080B9F34 @ =0x0000303c adds r0, r4, r1 adds r1, r6, 0 movs r2, 0x38 bl memcpy ldr r2, _080B9F38 @ =0x00003074 adds r4, r2 adds r1, r6, 0 adds r1, 0x38 adds r0, r4, 0 movs r2, 0x38 bl memcpy ldr r0, [sp, 0x40] bl SeedRng add sp, 0x58 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B9F2C: .4byte gUnknown_083D02BA _080B9F30: .4byte gSaveBlock1 _080B9F34: .4byte 0x0000303c _080B9F38: .4byte 0x00003074 thumb_func_end sub_80B9C6C thumb_func_start sub_80B9F3C sub_80B9F3C: @ 80B9F3C push {r4,lr} adds r4, r0, 0 lsls r1, 24 cmp r1, 0 beq _080BA000 ldrh r0, [r4] cmp r0, 0 beq _080BA000 bl sub_80A9670 lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bne _080B9FC8 ldrh r0, [r4] movs r1, 0x1 bl sub_80A92D4 lsls r0, 24 cmp r0, 0 bne _080B9FB8 ldrh r0, [r4] movs r1, 0x1 bl sub_80A9718 lsls r0, 24 cmp r0, 0 bne _080B9FB8 ldrh r0, [r4] movs r1, 0x1 bl sub_80A9424 lsls r0, 24 cmp r0, 0 beq _080B9FB8 ldr r0, _080B9FA4 @ =0x00004001 ldrh r1, [r4] bl VarSet ldr r0, _080B9FA8 @ =gStringVar1 ldr r1, _080B9FAC @ =gLinkPlayers + 0x8 bl StringCopy ldrh r1, [r4] ldr r0, _080B9FB0 @ =0x00000113 cmp r1, r0 bne _080BA000 ldr r0, _080B9FB4 @ =0x00000853 bl FlagSet b _080BA000 .align 2, 0 _080B9FA4: .4byte 0x00004001 _080B9FA8: .4byte gStringVar1 _080B9FAC: .4byte gLinkPlayers + 0x8 _080B9FB0: .4byte 0x00000113 _080B9FB4: .4byte 0x00000853 _080B9FB8: ldr r0, _080B9FC4 @ =0x00004001 movs r1, 0 bl VarSet b _080BA000 .align 2, 0 _080B9FC4: .4byte 0x00004001 _080B9FC8: ldrh r0, [r4] movs r1, 0x1 bl sub_80A9424 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080B9FF8 ldr r0, _080B9FEC @ =0x00004001 ldrh r1, [r4] bl VarSet ldr r0, _080B9FF0 @ =gStringVar1 ldr r1, _080B9FF4 @ =gLinkPlayers + 0x8 bl StringCopy b _080BA000 .align 2, 0 _080B9FEC: .4byte 0x00004001 _080B9FF0: .4byte gStringVar1 _080B9FF4: .4byte gLinkPlayers + 0x8 _080B9FF8: ldr r0, _080BA008 @ =0x00004001 movs r1, 0 bl VarSet _080BA000: pop {r4} pop {r0} bx r0 .align 2, 0 _080BA008: .4byte 0x00004001 thumb_func_end sub_80B9F3C thumb_func_start sub_80BA00C sub_80BA00C: @ 80BA00C push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080BA030 @ =gTasks adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x5 bhi _080BA09C lsls r0, 2 ldr r1, _080BA034 @ =_080BA038 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080BA030: .4byte gTasks _080BA034: .4byte _080BA038 .align 2, 0 _080BA038: .4byte _080BA086 .4byte _080BA086 .4byte _080BA050 .4byte _080BA05A .4byte _080BA074 .4byte _080BA08E _080BA050: bl sub_8047A1C bl sub_8125E2C b _080BA086 _080BA05A: bl sub_8125E6C lsls r0, 24 cmp r0, 0 beq _080BA09C bl sub_8047A34 ldrh r0, [r4, 0x8] adds r0, 0x1 movs r1, 0 strh r0, [r4, 0x8] strh r1, [r4, 0xA] b _080BA09C _080BA074: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0xA ble _080BA09C bl sub_800832C _080BA086: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080BA09C _080BA08E: ldr r0, _080BA0A4 @ =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _080BA09C adds r0, r2, 0 bl DestroyTask _080BA09C: pop {r4} pop {r0} bx r0 .align 2, 0 _080BA0A4: .4byte gReceivedRemoteLinkPlayers thumb_func_end sub_80BA00C thumb_func_start sub_80BA0A8 sub_80BA0A8: @ 80BA0A8 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_80BA0A8 thumb_func_start sub_80BA0C0 sub_80BA0C0: @ 80BA0C0 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer ldr r0, _080BA0E8 @ =gUnknown_020387B0 ldrb r0, [r0] cmp r0, 0 beq _080BA0E2 bl m4aSoundMain bl m4aSoundMain bl m4aSoundMain _080BA0E2: pop {r0} bx r0 .align 2, 0 _080BA0E8: .4byte gUnknown_020387B0 thumb_func_end sub_80BA0C0 thumb_func_start unref_sub_80BA0EC unref_sub_80BA0EC: @ 80BA0EC push {r4-r6,lr} sub sp, 0xC movs r0, 0 bl SetVBlankCallback movs r6, 0x80 lsls r6, 19 movs r5, 0 strh r5, [r6] ldr r0, _080BA20C @ =REG_BG2CNT strh r5, [r0] subs r0, 0x2 strh r5, [r0] subs r0, 0x2 strh r5, [r0] adds r0, 0x10 strh r5, [r0] adds r0, 0x2 strh r5, [r0] subs r0, 0x6 strh r5, [r0] adds r0, 0x2 strh r5, [r0] subs r0, 0x6 strh r5, [r0] adds r0, 0x2 strh r5, [r0] add r0, sp, 0x4 strh r5, [r0] ldr r1, _080BA210 @ =0x040000d4 str r0, [r1] movs r0, 0xC0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _080BA214 @ =0x8100c000 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r4, 0 str r4, [sp, 0x8] add r0, sp, 0x8 str r0, [r1] movs r0, 0xE0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _080BA218 @ =0x85000100 str r0, [r1, 0x8] ldr r0, [r1, 0x8] add r0, sp, 0x4 strh r4, [r0] str r0, [r1] movs r0, 0xA0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _080BA21C @ =0x81000200 str r0, [r1, 0x8] ldr r0, [r1, 0x8] bl ResetPaletteFade bl ResetTasks bl ResetSpriteData ldr r0, _080BA220 @ =gWindowConfig_81E6C3C bl SetUpWindowConfig ldr r0, _080BA224 @ =gWindowConfig_81E6CE4 bl InitMenuWindow movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _080BA228 @ =REG_WIN0H strh r4, [r0] adds r0, 0x4 strh r4, [r0] subs r0, 0x2 strh r4, [r0] adds r0, 0x4 strh r4, [r0] ldr r1, _080BA22C @ =REG_WININ ldr r2, _080BA230 @ =0x00001111 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0x31 strh r0, [r1] adds r1, 0x6 movs r0, 0xE1 strh r0, [r1] ldr r0, _080BA234 @ =REG_BLDALPHA strh r4, [r0] adds r1, 0x4 movs r0, 0x7 strh r0, [r1] ldr r1, _080BA238 @ =0x04000200 movs r2, 0x1 strh r2, [r1] ldrh r0, [r1] orrs r0, r2 strh r0, [r1] ldr r2, _080BA23C @ =REG_DISPSTAT ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r0, _080BA240 @ =sub_80BA0C0 bl SetVBlankCallback ldr r0, _080BA244 @ =sub_80BA0A8 bl SetMainCallback2 ldr r1, _080BA248 @ =0x00007140 adds r0, r1, 0 strh r0, [r6] ldr r0, _080BA24C @ =sub_80BA258 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080BA250 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] strh r4, [r1, 0xA] strh r4, [r1, 0xC] strh r4, [r1, 0xE] ldr r0, _080BA254 @ =gUnknown_020387B0 strb r5, [r0] strh r4, [r1, 0xE] bl m4aSoundInit add sp, 0xC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BA20C: .4byte REG_BG2CNT _080BA210: .4byte 0x040000d4 _080BA214: .4byte 0x8100c000 _080BA218: .4byte 0x85000100 _080BA21C: .4byte 0x81000200 _080BA220: .4byte gWindowConfig_81E6C3C _080BA224: .4byte gWindowConfig_81E6CE4 _080BA228: .4byte REG_WIN0H _080BA22C: .4byte REG_WININ _080BA230: .4byte 0x00001111 _080BA234: .4byte REG_BLDALPHA _080BA238: .4byte 0x04000200 _080BA23C: .4byte REG_DISPSTAT _080BA240: .4byte sub_80BA0C0 _080BA244: .4byte sub_80BA0A8 _080BA248: .4byte 0x00007140 _080BA24C: .4byte sub_80BA258 _080BA250: .4byte gTasks _080BA254: .4byte gUnknown_020387B0 thumb_func_end unref_sub_80BA0EC thumb_func_start sub_80BA258 sub_80BA258: @ 80BA258 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x40 lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r1, _080BA354 @ =gDebugText_SoundCheckJap mov r0, sp movs r2, 0x9 bl memcpy add r7, sp, 0xC ldr r1, _080BA358 @ =gDebugText_BGM adds r0, r7, 0 movs r2, 0x4 bl memcpy add r0, sp, 0x10 mov r8, r0 ldr r1, _080BA35C @ =gDebugText_SE movs r2, 0x4 bl memcpy add r5, sp, 0x14 ldr r1, _080BA360 @ =gUnknown_083D02D9 adds r0, r5, 0 movs r2, 0xD bl memcpy add r4, sp, 0x24 ldr r1, _080BA364 @ =gDebugText_UpDown adds r0, r4, 0 movs r2, 0xC bl memcpy add r6, sp, 0x30 ldr r1, _080BA368 @ =gDebugText_DriverTest adds r0, r6, 0 movs r2, 0xE bl memcpy ldr r0, _080BA36C @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080BA344 movs r0, 0x2 movs r1, 0 movs r2, 0x1B movs r3, 0x3 bl MenuDrawTextWindow movs r0, 0x2 movs r1, 0x5 movs r2, 0x1B movs r3, 0xA bl MenuDrawTextWindow movs r0, 0x2 movs r1, 0xC movs r2, 0x1B movs r3, 0x11 bl MenuDrawTextWindow mov r0, sp movs r1, 0x4 movs r2, 0x1 bl MenuPrint adds r0, r5, 0 movs r1, 0xE movs r2, 0x1 bl MenuPrint adds r0, r7, 0 movs r1, 0x4 movs r2, 0x6 bl MenuPrint adds r0, r4, 0 movs r1, 0xE movs r2, 0x6 bl MenuPrint mov r0, r8 movs r1, 0x4 movs r2, 0xD bl MenuPrint adds r0, r4, 0 movs r1, 0xE movs r2, 0xD bl MenuPrint adds r0, r6, 0 movs r1, 0xE movs r2, 0x12 bl MenuPrint ldr r1, _080BA370 @ =gTasks mov r2, r9 lsls r0, r2, 2 add r0, r9 lsls r0, 3 adds r0, r1 ldr r1, _080BA374 @ =sub_80BA384 str r1, [r0] ldr r1, _080BA378 @ =REG_WIN0H ldr r2, _080BA37C @ =0x000011df adds r0, r2, 0 strh r0, [r1] adds r1, 0x4 ldr r2, _080BA380 @ =0x0000011f adds r0, r2, 0 strh r0, [r1] _080BA344: add sp, 0x40 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BA354: .4byte gDebugText_SoundCheckJap _080BA358: .4byte gDebugText_BGM _080BA35C: .4byte gDebugText_SE _080BA360: .4byte gUnknown_083D02D9 _080BA364: .4byte gDebugText_UpDown _080BA368: .4byte gDebugText_DriverTest _080BA36C: .4byte gPaletteFade _080BA370: .4byte gTasks _080BA374: .4byte sub_80BA384 _080BA378: .4byte REG_WIN0H _080BA37C: .4byte 0x000011df _080BA380: .4byte 0x0000011f thumb_func_end sub_80BA258 thumb_func_start sub_80BA384 sub_80BA384: @ 80BA384 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080BA3EC @ =gTasks lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldrb r0, [r4, 0x8] bl sub_80BA6B8 ldr r1, _080BA3F0 @ =0x0000015d adds r0, r1, 0 ldrh r2, [r4, 0xA] adds r0, r2 lsls r0, 16 lsrs r0, 16 movs r1, 0x7 movs r2, 0x8 bl sub_80BA700 ldr r1, _080BA3F4 @ =gBGMNames movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0xB movs r2, 0x8 bl sub_80BA79C ldrh r0, [r4, 0xC] movs r1, 0x7 movs r2, 0xF bl sub_80BA700 ldr r1, _080BA3F8 @ =gSENames movs r2, 0xC ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0xB movs r2, 0xF bl sub_80BA79C ldr r0, _080BA3FC @ =Task_HandleMainMenuInput str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080BA3EC: .4byte gTasks _080BA3F0: .4byte 0x0000015d _080BA3F4: .4byte gBGMNames _080BA3F8: .4byte gSENames _080BA3FC: .4byte Task_HandleMainMenuInput thumb_func_end sub_80BA384 thumb_func_start sub_80BA400 sub_80BA400: @ 80BA400 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r2, _080BA428 @ =gMain ldrh r1, [r2, 0x2E] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _080BA434 ldr r0, _080BA42C @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080BA430 @ =sub_80BA800 str r0, [r1] b _080BA64C .align 2, 0 _080BA428: .4byte gMain _080BA42C: .4byte gTasks _080BA430: .4byte sub_80BA800 _080BA434: movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _080BA458 ldr r0, _080BA450 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080BA454 @ =sub_80BAF84 str r0, [r1] b _080BA64C .align 2, 0 _080BA450: .4byte gTasks _080BA454: .4byte sub_80BAF84 _080BA458: movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080BA478 ldr r0, _080BA470 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080BA474 @ =sub_80BB25C str r0, [r1] b _080BA64C .align 2, 0 _080BA470: .4byte gTasks _080BA474: .4byte sub_80BB25C _080BA478: movs r6, 0x1 movs r5, 0x1 ands r5, r1 cmp r5, 0 beq _080BA538 ldr r0, _080BA4AC @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r5, r1, r0 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0 beq _080BA4D0 movs r2, 0x10 ldrsh r0, [r5, r2] cmp r0, 0 beq _080BA4BA movs r3, 0xC ldrsh r4, [r5, r3] cmp r4, 0 beq _080BA4B0 ldrh r0, [r5, 0x10] bl m4aSongNumStop b _080BA4C4 .align 2, 0 _080BA4AC: .4byte gTasks _080BA4B0: ldrh r0, [r5, 0x10] bl m4aSongNumStop strh r4, [r5, 0x10] b _080BA64C _080BA4BA: movs r4, 0xC ldrsh r0, [r5, r4] cmp r0, 0 bne _080BA4C4 b _080BA64C _080BA4C4: ldrh r0, [r5, 0xC] bl m4aSongNumStart ldrh r0, [r5, 0xC] strh r0, [r5, 0x10] b _080BA64C _080BA4D0: ldrh r1, [r5, 0xE] movs r2, 0xE ldrsh r0, [r5, r2] cmp r0, 0 beq _080BA514 movs r3, 0xA ldrsh r4, [r5, r3] cmp r4, 0 beq _080BA500 ldr r0, _080BA4FC @ =0x0000015d adds r4, r0, 0 adds r0, r1, r4 lsls r0, 16 lsrs r0, 16 bl m4aSongNumStop ldrh r1, [r5, 0xA] adds r4, r1 lsls r4, 16 lsrs r4, 16 adds r0, r4, 0 b _080BA528 .align 2, 0 _080BA4FC: .4byte 0x0000015d _080BA500: ldr r2, _080BA510 @ =0x0000015d adds r0, r1, r2 lsls r0, 16 lsrs r0, 16 bl m4aSongNumStop strh r4, [r5, 0xE] b _080BA64C .align 2, 0 _080BA510: .4byte 0x0000015d _080BA514: ldrh r1, [r5, 0xA] movs r3, 0xA ldrsh r0, [r5, r3] cmp r0, 0 bne _080BA520 b _080BA64C _080BA520: ldr r4, _080BA534 @ =0x0000015d adds r0, r1, r4 lsls r0, 16 lsrs r0, 16 _080BA528: bl m4aSongNumStart ldrh r0, [r5, 0xA] strh r0, [r5, 0xE] b _080BA64C .align 2, 0 _080BA534: .4byte 0x0000015d _080BA538: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080BA570 movs r0, 0x5 bl m4aSongNumStart movs r0, 0x1 negs r0, r0 str r5, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _080BA568 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080BA56C @ =sub_80BA68C str r1, [r0] b _080BA64C .align 2, 0 _080BA568: .4byte gTasks _080BA56C: .4byte sub_80BA68C _080BA570: ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _080BA582 movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080BA59C _080BA582: ldr r0, _080BA598 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] eors r0, r6 strh r0, [r1, 0x8] _080BA592: movs r0, 0x1 b _080BA64E .align 2, 0 _080BA598: .4byte gTasks _080BA59C: movs r0, 0x10 ands r0, r1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0 beq _080BA5EA ldr r0, _080BA5CC @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 beq _080BA5D6 ldrh r2, [r1, 0xC] movs r3, 0xC ldrsh r0, [r1, r3] cmp r0, 0 ble _080BA5D0 subs r0, r2, 0x1 strh r0, [r1, 0xC] b _080BA592 .align 2, 0 _080BA5CC: .4byte gTasks _080BA5D0: movs r0, 0xF7 strh r0, [r1, 0xC] b _080BA592 _080BA5D6: ldrh r2, [r1, 0xA] movs r4, 0xA ldrsh r0, [r1, r4] cmp r0, 0 ble _080BA5E4 subs r0, r2, 0x1 b _080BA5E6 _080BA5E4: movs r0, 0x75 _080BA5E6: strh r0, [r1, 0xA] b _080BA592 _080BA5EA: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080BA630 ldr r1, _080BA614 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r1 movs r0, 0x8 ldrsh r2, [r1, r0] cmp r2, 0 beq _080BA61C ldrh r2, [r1, 0xC] movs r4, 0xC ldrsh r0, [r1, r4] cmp r0, 0xF6 bgt _080BA618 adds r0, r2, 0x1 strh r0, [r1, 0xC] b _080BA592 .align 2, 0 _080BA614: .4byte gTasks _080BA618: strh r3, [r1, 0xC] b _080BA592 _080BA61C: ldrh r3, [r1, 0xA] movs r4, 0xA ldrsh r0, [r1, r4] cmp r0, 0x74 bgt _080BA62C adds r0, r3, 0x1 strh r0, [r1, 0xA] b _080BA592 _080BA62C: strh r2, [r1, 0xA] b _080BA592 _080BA630: ldrh r1, [r2, 0x2C] movs r0, 0x4 ands r0, r1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _080BA648 ldr r0, _080BA644 @ =gUnknown_020387B0 strb r6, [r0] b _080BA64C .align 2, 0 _080BA644: .4byte gUnknown_020387B0 _080BA648: ldr r0, _080BA658 @ =gUnknown_020387B0 strb r1, [r0] _080BA64C: movs r0, 0 _080BA64E: add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080BA658: .4byte gUnknown_020387B0 thumb_func_end sub_80BA400 thumb_func_start Task_HandleMainMenuInput Task_HandleMainMenuInput: @ 80BA65C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_80BA400 lsls r0, 24 cmp r0, 0 beq _080BA67C ldr r0, _080BA684 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080BA688 @ =sub_80BA384 str r0, [r1] _080BA67C: pop {r4} pop {r0} bx r0 .align 2, 0 _080BA684: .4byte gTasks _080BA688: .4byte sub_80BA384 thumb_func_end Task_HandleMainMenuInput thumb_func_start sub_80BA68C sub_80BA68C: @ 80BA68C push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080BA6B0 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080BA6AA adds r0, r2, 0 bl DestroyTask ldr r0, _080BA6B4 @ =CB2_InitTitleScreen bl SetMainCallback2 _080BA6AA: pop {r0} bx r0 .align 2, 0 _080BA6B0: .4byte gPaletteFade _080BA6B4: .4byte CB2_InitTitleScreen thumb_func_end sub_80BA68C thumb_func_start sub_80BA6B8 sub_80BA6B8: @ 80BA6B8 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080BA6C6 cmp r0, 0x1 beq _080BA6E0 _080BA6C6: ldr r1, _080BA6D4 @ =REG_WIN1H ldr r2, _080BA6D8 @ =0x000011df adds r0, r2, 0 strh r0, [r1] adds r1, 0x4 ldr r2, _080BA6DC @ =0x00002957 b _080BA6EC .align 2, 0 _080BA6D4: .4byte REG_WIN1H _080BA6D8: .4byte 0x000011df _080BA6DC: .4byte 0x00002957 _080BA6E0: ldr r1, _080BA6F4 @ =REG_WIN1H ldr r2, _080BA6F8 @ =0x000011df adds r0, r2, 0 strh r0, [r1] adds r1, 0x4 ldr r2, _080BA6FC @ =0x0000618f _080BA6EC: adds r0, r2, 0 strh r0, [r1] pop {r0} bx r0 .align 2, 0 _080BA6F4: .4byte REG_WIN1H _080BA6F8: .4byte 0x000011df _080BA6FC: .4byte 0x0000618f thumb_func_end sub_80BA6B8 thumb_func_start sub_80BA700 sub_80BA700: @ 80BA700 push {r4-r7,lr} sub sp, 0x8 lsls r0, 16 lsrs r5, r0, 16 lsls r1, 16 lsrs r6, r1, 16 lsls r2, 16 lsrs r7, r2, 16 movs r1, 0 movs r2, 0 _080BA714: mov r3, sp adds r0, r3, r1 strb r2, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x2 bls _080BA714 mov r1, sp movs r0, 0xB0 strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] movs r4, 0 adds r0, r5, 0 movs r1, 0x64 bl __udivsi3 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080BA748 mov r1, sp adds r0, 0xA1 strb r0, [r1] movs r4, 0x1 _080BA748: adds r0, r5, 0 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __udivsi3 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080BA766 cmp r4, 0 beq _080BA76C _080BA766: mov r1, sp adds r0, 0xA1 strb r0, [r1, 0x1] _080BA76C: mov r4, sp adds r0, r5, 0 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 adds r0, 0xA1 strb r0, [r4, 0x2] lsls r1, r6, 24 lsrs r1, 24 lsls r2, r7, 24 lsrs r2, 24 mov r0, sp bl MenuPrint add sp, 0x8 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80BA700 thumb_func_start sub_80BA79C sub_80BA79C: @ 80BA79C push {r4-r6,lr} sub sp, 0xC adds r4, r0, 0 lsls r1, 16 lsrs r6, r1, 16 lsls r2, 16 lsrs r5, r2, 16 movs r3, 0 movs r1, 0 _080BA7AE: mov r2, sp adds r0, r2, r3 strb r1, [r0] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0xA bls _080BA7AE mov r0, sp movs r1, 0xFF strb r1, [r0, 0xA] movs r3, 0 ldrb r0, [r4] lsls r2, r6, 24 lsls r5, 24 cmp r0, 0xFF beq _080BA7EC _080BA7D0: mov r0, sp adds r1, r0, r3 adds r0, r4, r3 ldrb r0, [r0] strb r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 adds r0, r4, r3 ldrb r0, [r0] cmp r0, 0xFF beq _080BA7EC cmp r3, 0x9 bls _080BA7D0 _080BA7EC: lsrs r1, r2, 24 lsrs r2, r5, 24 mov r0, sp bl MenuPrint add sp, 0xC pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80BA79C thumb_func_start sub_80BA800 sub_80BA800: @ 80BA800 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xCC lsls r0, 24 str r0, [sp, 0xB0] lsrs r2, r0, 24 str r2, [sp, 0xAC] ldr r1, _080BA9E8 @ =gUnknown_083D0312 mov r0, sp movs r2, 0xA bl memcpy mov r0, sp adds r0, 0xC str r0, [sp, 0xB4] ldr r1, _080BA9EC @ =gUnknown_083D031C movs r2, 0xB bl memcpy mov r2, sp adds r2, 0x18 str r2, [sp, 0xB8] ldr r1, _080BA9F0 @ =gDebugText_Voice adds r0, r2, 0 movs r2, 0xA bl memcpy mov r0, sp adds r0, 0x24 str r0, [sp, 0xBC] ldr r1, _080BA9F4 @ =gDebugText_Volume movs r2, 0xA bl memcpy mov r2, sp adds r2, 0x30 str r2, [sp, 0xC0] ldr r1, _080BA9F8 @ =gDebugText_Panpot adds r0, r2, 0 movs r2, 0xA bl memcpy mov r0, sp adds r0, 0x3C str r0, [sp, 0xC4] ldr r1, _080BA9FC @ =gDebugText_Pitch movs r2, 0xA bl memcpy mov r2, sp adds r2, 0x48 str r2, [sp, 0xC8] ldr r1, _080BAA00 @ =gDebugText_Length adds r0, r2, 0 movs r2, 0xA bl memcpy add r4, sp, 0x54 ldr r1, _080BAA04 @ =gDebugText_Release adds r0, r4, 0 movs r2, 0xA bl memcpy add r7, sp, 0x60 ldr r1, _080BAA08 @ =gDebugText_Progress adds r0, r7, 0 movs r2, 0xA bl memcpy add r0, sp, 0x6C mov r10, r0 ldr r1, _080BAA0C @ =gDebugText_Chorus movs r2, 0xA bl memcpy add r2, sp, 0x78 mov r9, r2 ldr r1, _080BAA10 @ =gDebugText_Priority mov r0, r9 movs r2, 0xA bl memcpy add r0, sp, 0x84 mov r8, r0 ldr r1, _080BAA14 @ =gUnknown_083D0381 movs r2, 0x9 bl memcpy add r6, sp, 0x90 ldr r1, _080BAA18 @ =gUnknown_083D038A adds r0, r6, 0 movs r2, 0x9 bl memcpy add r5, sp, 0x9C ldr r1, _080BAA1C @ =gUnknown_083D0393 adds r0, r5, 0 movs r2, 0x9 bl memcpy movs r1, 0x80 lsls r1, 19 movs r2, 0xC5 lsls r2, 6 adds r0, r2, 0 strh r0, [r1] movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow mov r0, sp movs r1, 0x13 movs r2, 0x4 bl MenuPrint ldr r0, [sp, 0xB4] movs r1, 0x13 movs r2, 0x2 bl MenuPrint ldr r0, [sp, 0xB8] movs r1, 0x2 movs r2, 0x1 bl MenuPrint ldr r0, [sp, 0xBC] movs r1, 0x2 movs r2, 0x3 bl MenuPrint ldr r0, [sp, 0xC0] movs r1, 0x2 movs r2, 0x5 bl MenuPrint ldr r0, [sp, 0xC4] movs r1, 0x2 movs r2, 0x7 bl MenuPrint ldr r0, [sp, 0xC8] movs r1, 0x2 movs r2, 0x9 bl MenuPrint adds r0, r4, 0 movs r1, 0x2 movs r2, 0xB bl MenuPrint adds r0, r7, 0 movs r1, 0x2 movs r2, 0xD bl MenuPrint mov r0, r10 movs r1, 0x2 movs r2, 0xF bl MenuPrint mov r0, r9 movs r1, 0x2 movs r2, 0x11 bl MenuPrint mov r0, r8 movs r1, 0x13 movs r2, 0x10 bl MenuPrint adds r0, r6, 0 movs r1, 0x13 movs r2, 0xE bl MenuPrint adds r0, r5, 0 movs r1, 0x13 movs r2, 0xC bl MenuPrint ldr r1, _080BAA20 @ =REG_WIN0H movs r0, 0xF0 strh r0, [r1] adds r1, 0x4 movs r0, 0xA0 strh r0, [r1] ldr r0, _080BAA24 @ =gUnknown_020387B3 movs r1, 0 strb r1, [r0] ldr r0, _080BAA28 @ =gUnknown_020387B1 strb r1, [r0] ldr r0, _080BAA2C @ =gUnknown_020387B2 strb r1, [r0] ldr r0, _080BAA30 @ =gUnknown_03005D30 movs r2, 0 str r2, [r0] ldr r0, _080BAA34 @ =gUnknown_020387D8 strb r2, [r0] ldr r1, _080BAA38 @ =gUnknown_020387D9 movs r0, 0x1 strb r0, [r1] ldr r0, _080BAA3C @ =gUnknown_020387B4 str r2, [r0] movs r1, 0x78 str r1, [r0, 0x4] str r2, [r0, 0x8] movs r1, 0xF0 lsls r1, 6 str r1, [r0, 0xC] movs r1, 0xB4 str r1, [r0, 0x10] str r2, [r0, 0x18] str r2, [r0, 0x14] str r2, [r0, 0x1C] movs r1, 0x2 str r1, [r0, 0x20] bl sub_80BAD5C movs r0, 0 movs r1, 0 bl sub_80BAE10 ldr r1, _080BAA40 @ =gTasks ldr r2, [sp, 0xAC] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 ldr r1, _080BAA44 @ =sub_80BAA48 str r1, [r0] add sp, 0xCC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BA9E8: .4byte gUnknown_083D0312 _080BA9EC: .4byte gUnknown_083D031C _080BA9F0: .4byte gDebugText_Voice _080BA9F4: .4byte gDebugText_Volume _080BA9F8: .4byte gDebugText_Panpot _080BA9FC: .4byte gDebugText_Pitch _080BAA00: .4byte gDebugText_Length _080BAA04: .4byte gDebugText_Release _080BAA08: .4byte gDebugText_Progress _080BAA0C: .4byte gDebugText_Chorus _080BAA10: .4byte gDebugText_Priority _080BAA14: .4byte gUnknown_083D0381 _080BAA18: .4byte gUnknown_083D038A _080BAA1C: .4byte gUnknown_083D0393 _080BAA20: .4byte REG_WIN0H _080BAA24: .4byte gUnknown_020387B3 _080BAA28: .4byte gUnknown_020387B1 _080BAA2C: .4byte gUnknown_020387B2 _080BAA30: .4byte gUnknown_03005D30 _080BAA34: .4byte gUnknown_020387D8 _080BAA38: .4byte gUnknown_020387D9 _080BAA3C: .4byte gUnknown_020387B4 _080BAA40: .4byte gTasks _080BAA44: .4byte sub_80BAA48 thumb_func_end sub_80BA800 thumb_func_start sub_80BAA48 sub_80BAA48: @ 80BAA48 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080BAA90 @ =gMain ldrh r2, [r1, 0x2E] movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _080BAAA8 movs r1, 0x80 lsls r1, 19 ldr r2, _080BAA94 @ =0x00007140 adds r0, r2, 0 strh r0, [r1] adds r1, 0x40 ldr r2, _080BAA98 @ =0x000011df adds r0, r2, 0 strh r0, [r1] adds r1, 0x4 ldr r2, _080BAA9C @ =0x0000011f adds r0, r2, 0 strh r0, [r1] movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect ldr r1, _080BAAA0 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080BAAA4 @ =sub_80BA258 str r1, [r0] b _080BACC6 .align 2, 0 _080BAA90: .4byte gMain _080BAA94: .4byte 0x00007140 _080BAA98: .4byte 0x000011df _080BAA9C: .4byte 0x0000011f _080BAAA0: .4byte gTasks _080BAAA4: .4byte sub_80BA258 _080BAAA8: ldrh r1, [r1, 0x30] movs r0, 0x40 ands r0, r1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0 beq _080BAAD0 ldr r1, _080BAACC @ =gUnknown_020387B3 ldrb r2, [r1] subs r0, r2, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 bge _080BAAEA movs r0, 0x8 strb r0, [r1] b _080BAAEA .align 2, 0 _080BAACC: .4byte gUnknown_020387B3 _080BAAD0: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080BAAF8 ldr r1, _080BAAF4 @ =gUnknown_020387B3 ldrb r2, [r1] adds r0, r2, 0x1 strb r0, [r1] lsls r0, 24 asrs r0, 24 cmp r0, 0x8 ble _080BAAEA strb r3, [r1] _080BAAEA: ldrb r1, [r1] adds r0, r2, 0 bl sub_80BAE10 b _080BACC6 .align 2, 0 _080BAAF4: .4byte gUnknown_020387B3 _080BAAF8: movs r0, 0x8 ands r0, r2 cmp r0, 0 beq _080BAB14 ldr r0, _080BAB10 @ =gUnknown_020387D8 ldrb r1, [r0] movs r2, 0x1 eors r1, r2 strb r1, [r0] bl sub_80BAD5C b _080BACC6 .align 2, 0 _080BAB10: .4byte gUnknown_020387D8 _080BAB14: movs r0, 0x4 ands r0, r2 cmp r0, 0 beq _080BAB38 ldr r4, _080BAB34 @ =gUnknown_020387D9 ldrb r0, [r4] movs r1, 0x1 eors r0, r1 strb r0, [r4] bl sub_80BAD5C ldrb r0, [r4] bl SetPokemonCryStereo b _080BACC6 .align 2, 0 _080BAB34: .4byte gUnknown_020387D9 _080BAB38: movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _080BAB46 movs r0, 0xA b _080BAB6E _080BAB46: movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _080BAB56 movs r0, 0xA negs r0, r0 b _080BAB6E _080BAB56: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080BAB64 movs r0, 0x1 negs r0, r0 b _080BAB6E _080BAB64: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080BAB78 movs r0, 0x1 _080BAB6E: bl sub_80BACDC bl sub_80BAD5C b _080BACC6 _080BAB78: movs r0, 0x1 ands r0, r2 cmp r0, 0 bne _080BAB82 b _080BACA2 _080BAB82: ldr r4, _080BABE4 @ =gUnknown_020387B4 ldrb r0, [r4, 0x4] bl SetPokemonCryVolume movs r0, 0x8 ldrsb r0, [r4, r0] bl SetPokemonCryPanpot movs r1, 0xC ldrsh r0, [r4, r1] bl SetPokemonCryPitch ldrh r0, [r4, 0x10] bl SetPokemonCryLength ldr r0, [r4, 0x18] bl SetPokemonCryProgress ldrb r0, [r4, 0x14] bl SetPokemonCryRelease movs r0, 0x1C ldrsb r0, [r4, r0] bl SetPokemonCryChorus ldr r0, [r4, 0x20] lsls r0, 24 lsrs r0, 24 bl SetPokemonCryPriority ldr r4, [r4] adds r0, r4, 0 cmp r4, 0 bge _080BABC8 adds r0, 0x7F _080BABC8: asrs r2, r0, 7 lsls r0, r2, 7 subs r0, r4, r0 lsls r0, 24 lsrs r1, r0, 24 lsls r0, r2, 24 lsrs r0, 24 cmp r0, 0x1 beq _080BAC1C cmp r0, 0x1 bgt _080BABE8 cmp r0, 0 beq _080BABF2 b _080BACA2 .align 2, 0 _080BABE4: .4byte gUnknown_020387B4 _080BABE8: cmp r0, 0x2 beq _080BAC48 cmp r0, 0x3 beq _080BAC74 b _080BACA2 _080BABF2: ldr r0, _080BAC04 @ =gUnknown_020387D8 ldrb r0, [r0] cmp r0, 0 beq _080BAC0C lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _080BAC08 @ =voicegroup_84537C0 b _080BAC98 .align 2, 0 _080BAC04: .4byte gUnknown_020387D8 _080BAC08: .4byte voicegroup_84537C0 _080BAC0C: lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _080BAC18 @ =voicegroup_8452590 b _080BAC98 .align 2, 0 _080BAC18: .4byte voicegroup_8452590 _080BAC1C: ldr r0, _080BAC30 @ =gUnknown_020387D8 ldrb r0, [r0] cmp r0, 0 beq _080BAC38 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _080BAC34 @ =voicegroup_8453DC0 b _080BAC98 .align 2, 0 _080BAC30: .4byte gUnknown_020387D8 _080BAC34: .4byte voicegroup_8453DC0 _080BAC38: lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _080BAC44 @ =voicegroup_8452B90 b _080BAC98 .align 2, 0 _080BAC44: .4byte voicegroup_8452B90 _080BAC48: ldr r0, _080BAC5C @ =gUnknown_020387D8 ldrb r0, [r0] cmp r0, 0 beq _080BAC64 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _080BAC60 @ =voicegroup_84543C0 b _080BAC98 .align 2, 0 _080BAC5C: .4byte gUnknown_020387D8 _080BAC60: .4byte voicegroup_84543C0 _080BAC64: lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _080BAC70 @ =voicegroup_8453190 b _080BAC98 .align 2, 0 _080BAC70: .4byte voicegroup_8453190 _080BAC74: ldr r0, _080BAC88 @ =gUnknown_020387D8 ldrb r0, [r0] cmp r0, 0 beq _080BAC90 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _080BAC8C @ =voicegroup_84549C0 b _080BAC98 .align 2, 0 _080BAC88: .4byte gUnknown_020387D8 _080BAC8C: .4byte voicegroup_84549C0 _080BAC90: lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _080BACCC @ =voicegroup_8453790 _080BAC98: adds r0, r1 bl SetPokemonCryTone ldr r1, _080BACD0 @ =gUnknown_03005D30 str r0, [r1] _080BACA2: ldr r0, _080BACD0 @ =gUnknown_03005D30 ldr r0, [r0] cmp r0, 0 beq _080BACC6 ldr r5, _080BACD4 @ =gUnknown_020387B1 bl IsPokemonCryPlaying strb r0, [r5] ldr r4, _080BACD8 @ =gUnknown_020387B2 lsls r0, 24 lsrs r0, 24 ldrb r2, [r4] cmp r0, r2 beq _080BACC2 bl sub_80BAD5C _080BACC2: ldrb r0, [r5] strb r0, [r4] _080BACC6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BACCC: .4byte voicegroup_8453790 _080BACD0: .4byte gUnknown_03005D30 _080BACD4: .4byte gUnknown_020387B1 _080BACD8: .4byte gUnknown_020387B2 thumb_func_end sub_80BAA48 thumb_func_start sub_80BACDC sub_80BACDC: @ 80BACDC push {r4-r6,lr} sub sp, 0x40 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _080BAD50 @ =gUnknown_083D039C mov r0, sp movs r2, 0x40 bl memcpy ldr r6, _080BAD54 @ =gUnknown_020387B4 ldr r5, _080BAD58 @ =gUnknown_020387B3 movs r1, 0 ldrsb r1, [r5, r1] lsls r1, 2 adds r1, r6 lsls r4, 24 asrs r4, 24 ldr r0, [r1] adds r0, r4 str r0, [r1] movs r2, 0 ldrsb r2, [r5, r2] lsls r0, r2, 2 adds r3, r0, r6 lsls r0, r2, 1 adds r0, 0x1 lsls r0, 2 add r0, sp ldr r1, [r3] ldr r0, [r0] cmp r1, r0 ble _080BAD26 lsls r0, r2, 3 add r0, sp ldr r0, [r0] str r0, [r3] _080BAD26: movs r2, 0 ldrsb r2, [r5, r2] lsls r0, r2, 2 adds r3, r0, r6 lsls r0, r2, 3 add r0, sp ldr r1, [r3] ldr r0, [r0] cmp r1, r0 bge _080BAD46 lsls r0, r2, 1 adds r0, 0x1 lsls r0, 2 add r0, sp ldr r0, [r0] str r0, [r3] _080BAD46: add sp, 0x40 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BAD50: .4byte gUnknown_083D039C _080BAD54: .4byte gUnknown_020387B4 _080BAD58: .4byte gUnknown_020387B3 thumb_func_end sub_80BACDC thumb_func_start sub_80BAD5C sub_80BAD5C: @ 80BAD5C push {r4,lr} ldr r4, _080BAE00 @ =gUnknown_020387B4 ldr r0, [r4] adds r0, 0x1 movs r1, 0xB movs r2, 0x1 movs r3, 0x5 bl sub_80BAE78 ldr r0, [r4, 0x4] movs r1, 0xB movs r2, 0x3 movs r3, 0x5 bl sub_80BAE78 ldr r0, [r4, 0x8] movs r1, 0xB movs r2, 0x5 movs r3, 0x5 bl sub_80BAE78 ldr r0, [r4, 0xC] movs r1, 0xB movs r2, 0x7 movs r3, 0x5 bl sub_80BAE78 ldr r0, [r4, 0x10] movs r1, 0xB movs r2, 0x9 movs r3, 0x5 bl sub_80BAE78 ldr r0, [r4, 0x14] movs r1, 0xB movs r2, 0xB movs r3, 0x5 bl sub_80BAE78 ldr r0, [r4, 0x18] movs r1, 0xB movs r2, 0xD movs r3, 0x5 bl sub_80BAE78 ldr r0, [r4, 0x1C] movs r1, 0xB movs r2, 0xF movs r3, 0x5 bl sub_80BAE78 ldr r0, [r4, 0x20] movs r1, 0xB movs r2, 0x11 movs r3, 0x5 bl sub_80BAE78 ldr r0, _080BAE04 @ =gUnknown_020387B1 ldrb r0, [r0] movs r1, 0x1B movs r2, 0x10 movs r3, 0x1 bl sub_80BAE78 ldr r0, _080BAE08 @ =gUnknown_020387D8 ldrb r0, [r0] movs r1, 0x1B movs r2, 0xE movs r3, 0x1 bl sub_80BAE78 ldr r0, _080BAE0C @ =gUnknown_020387D9 ldrb r0, [r0] movs r1, 0x1B movs r2, 0xC movs r3, 0x1 bl sub_80BAE78 pop {r4} pop {r0} bx r0 .align 2, 0 _080BAE00: .4byte gUnknown_020387B4 _080BAE04: .4byte gUnknown_020387B1 _080BAE08: .4byte gUnknown_020387D8 _080BAE0C: .4byte gUnknown_020387D9 thumb_func_end sub_80BAD5C thumb_func_start sub_80BAE10 sub_80BAE10: @ 80BAE10 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x8 adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 ldr r1, _080BAE6C @ =gUnknown_083D03DC mov r0, sp movs r2, 0x2 bl memcpy add r0, sp, 0x4 mov r8, r0 ldr r1, _080BAE70 @ =gUnknown_083D03DE movs r2, 0x2 bl memcpy ldr r6, _080BAE74 @ =gUnknown_083D0300 lsls r4, 1 adds r0, r4, r6 ldrb r1, [r0] adds r4, 0x1 adds r4, r6 ldrb r2, [r4] mov r0, r8 bl MenuPrint lsls r5, 1 adds r0, r5, r6 ldrb r1, [r0] adds r5, 0x1 adds r5, r6 ldrb r2, [r5] mov r0, sp bl MenuPrint add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BAE6C: .4byte gUnknown_083D03DC _080BAE70: .4byte gUnknown_083D03DE _080BAE74: .4byte gUnknown_083D0300 thumb_func_end sub_80BAE10 thumb_func_start sub_80BAE78 sub_80BAE78: @ 80BAE78 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C mov r8, r0 lsls r1, 16 lsrs r6, r1, 16 lsls r2, 16 lsrs r2, 16 lsls r3, 24 lsrs r7, r3, 24 mov r1, sp ldr r0, _080BAF80 @ =gUnknown_083D03E0 ldm r0!, {r3-r5} stm r1!, {r3-r5} ldm r0!, {r3-r5} stm r1!, {r3-r5} movs r5, 0 add r0, sp, 0x18 mov r9, r0 cmp r5, r7 bgt _080BAEC0 mov r4, r9 movs r3, 0 _080BAEAC: lsls r0, r5, 24 asrs r0, 24 adds r1, r4, r0 strb r3, [r1] adds r0, 0x1 lsls r0, 24 lsrs r5, r0, 24 asrs r0, 24 cmp r0, r7 ble _080BAEAC _080BAEC0: adds r0, r7, 0x1 add r0, r9 movs r1, 0xFF strb r1, [r0] movs r1, 0 mov r3, r8 cmp r3, 0 bge _080BAED6 negs r3, r3 mov r8, r3 movs r1, 0x1 _080BAED6: movs r4, 0 mov r10, r4 cmp r7, 0x1 bne _080BAEE2 movs r5, 0x1 mov r10, r5 _080BAEE2: subs r0, r7, 0x1 lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 24 lsls r6, 24 str r6, [sp, 0x24] lsls r2, 24 str r2, [sp, 0x28] cmp r0, 0 blt _080BAF62 str r1, [sp, 0x20] _080BAEF8: asrs r6, r0, 24 lsls r0, r6, 2 add r0, sp ldr r1, [r0] mov r0, r8 bl __divsi3 lsls r0, 24 lsrs r2, r0, 24 cmp r0, 0 bne _080BAF1A mov r0, r10 cmp r0, 0 bne _080BAF1A lsls r4, r5, 24 cmp r6, 0 bne _080BAF46 _080BAF1A: lsls r4, r5, 24 ldr r3, [sp, 0x20] cmp r3, 0 beq _080BAF34 mov r5, r10 cmp r5, 0 bne _080BAF34 asrs r0, r4, 24 subs r0, r7, r0 subs r0, 0x1 add r0, r9 movs r1, 0xAE strb r1, [r0] _080BAF34: asrs r1, r4, 24 subs r1, r7, r1 add r1, r9 lsls r0, r2, 24 asrs r0, 24 subs r0, 0x5F strb r0, [r1] movs r0, 0x1 mov r10, r0 _080BAF46: asrs r4, 24 lsls r0, r4, 2 add r0, sp ldr r1, [r0] mov r0, r8 bl __modsi3 mov r8, r0 subs r4, 0x1 lsls r4, 24 lsrs r5, r4, 24 lsls r0, r5, 24 cmp r0, 0 bge _080BAEF8 _080BAF62: ldr r3, [sp, 0x24] lsrs r1, r3, 24 ldr r4, [sp, 0x28] lsrs r2, r4, 24 mov r0, r9 bl MenuPrint add sp, 0x2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BAF80: .4byte gUnknown_083D03E0 thumb_func_end sub_80BAE78 thumb_func_start sub_80BAF84 sub_80BAF84: @ 80BAF84 push {r4-r6,lr} sub sp, 0x14 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _080BB01C @ =gOtherText_SE mov r0, sp movs r2, 0x3 bl memcpy add r6, sp, 0x4 ldr r1, _080BB020 @ =gOtherText_Pan adds r0, r6, 0 movs r2, 0x4 bl memcpy add r5, sp, 0x8 ldr r1, _080BB024 @ =gUnknown_083D0381 adds r0, r5, 0 movs r2, 0x9 bl memcpy movs r1, 0x80 lsls r1, 19 movs r2, 0xC5 lsls r2, 6 adds r0, r2, 0 strh r0, [r1] movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow mov r0, sp movs r1, 0x3 movs r2, 0x2 bl MenuPrint adds r0, r6, 0 movs r1, 0x3 movs r2, 0x4 bl MenuPrint adds r0, r5, 0 movs r1, 0x3 movs r2, 0x8 bl MenuPrint ldr r1, _080BB028 @ =REG_WIN0H movs r0, 0xF0 strh r0, [r1] adds r1, 0x4 movs r0, 0xA0 strh r0, [r1] ldr r1, _080BB02C @ =gUnknown_020387B4 movs r0, 0x1 str r0, [r1] movs r0, 0 str r0, [r1, 0x8] str r0, [r1, 0x1C] str r0, [r1, 0x18] str r0, [r1, 0x14] bl sub_80BB1D4 ldr r1, _080BB030 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080BB034 @ =sub_80BB038 str r1, [r0] add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BB01C: .4byte gOtherText_SE _080BB020: .4byte gOtherText_Pan _080BB024: .4byte gUnknown_083D0381 _080BB028: .4byte REG_WIN0H _080BB02C: .4byte gUnknown_020387B4 _080BB030: .4byte gTasks _080BB034: .4byte sub_80BB038 thumb_func_end sub_80BAF84 thumb_func_start sub_80BB038 sub_80BB038: @ 80BB038 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 bl sub_80BB1D4 ldr r2, _080BB058 @ =gUnknown_020387B4 ldr r0, [r2, 0x18] cmp r0, 0 beq _080BB0A2 ldr r0, [r2, 0x14] cmp r0, 0 beq _080BB05C subs r0, 0x1 str r0, [r2, 0x14] b _080BB0A2 .align 2, 0 _080BB058: .4byte gUnknown_020387B4 _080BB05C: ldr r0, _080BB088 @ =gUnknown_083D03F8 ldr r1, [r2, 0x8] adds r1, r0 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 movs r0, 0x80 negs r0, r0 cmp r1, r0 beq _080BB08C cmp r1, 0x7F bne _080BB0A2 ldr r0, [r2, 0x1C] adds r0, 0x2 str r0, [r2, 0x1C] cmp r0, 0x3E bgt _080BB0A2 lsls r0, 24 asrs r0, 24 bl SE12PanpotControl b _080BB0A2 .align 2, 0 _080BB088: .4byte gUnknown_083D03F8 _080BB08C: ldr r0, [r2, 0x1C] subs r1, r0, 0x2 str r1, [r2, 0x1C] movs r0, 0x40 negs r0, r0 cmp r1, r0 ble _080BB0A2 lsls r0, r1, 24 asrs r0, 24 bl SE12PanpotControl _080BB0A2: ldr r1, _080BB0EC @ =gMain ldrh r3, [r1, 0x2E] movs r0, 0x2 ands r0, r3 lsls r0, 16 lsrs r4, r0, 16 adds r7, r1, 0 cmp r4, 0 beq _080BB104 movs r1, 0x80 lsls r1, 19 ldr r2, _080BB0F0 @ =0x00007140 adds r0, r2, 0 strh r0, [r1] adds r1, 0x40 ldr r2, _080BB0F4 @ =0x000011df adds r0, r2, 0 strh r0, [r1] adds r1, 0x4 ldr r2, _080BB0F8 @ =0x0000011f adds r0, r2, 0 strh r0, [r1] movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect ldr r1, _080BB0FC @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _080BB100 @ =sub_80BA258 str r1, [r0] b _080BB1C8 .align 2, 0 _080BB0EC: .4byte gMain _080BB0F0: .4byte 0x00007140 _080BB0F4: .4byte 0x000011df _080BB0F8: .4byte 0x0000011f _080BB0FC: .4byte gTasks _080BB100: .4byte sub_80BA258 _080BB104: movs r6, 0x1 adds r2, r6, 0 ands r2, r3 cmp r2, 0 beq _080BB15E ldr r0, _080BB138 @ =gUnknown_083D03F8 ldr r5, _080BB13C @ =gUnknown_020387B4 ldr r1, [r5, 0x8] adds r1, r0 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 movs r0, 0x80 negs r0, r0 cmp r1, r0 beq _080BB140 cmp r1, 0x7F bne _080BB154 ldrh r0, [r5] movs r4, 0x40 negs r4, r4 adds r1, r4, 0 bl PlaySE12WithPanning str r4, [r5, 0x1C] b _080BB14C .align 2, 0 _080BB138: .4byte gUnknown_083D03F8 _080BB13C: .4byte gUnknown_020387B4 _080BB140: ldrh r0, [r5] movs r1, 0x3F bl PlaySE12WithPanning movs r0, 0x3F str r0, [r5, 0x1C] _080BB14C: str r6, [r5, 0x18] movs r0, 0x1E str r0, [r5, 0x14] b _080BB1C8 _080BB154: ldrh r0, [r5] bl PlaySE12WithPanning str r4, [r5, 0x18] b _080BB1C8 _080BB15E: movs r0, 0x80 lsls r0, 2 ands r0, r3 cmp r0, 0 beq _080BB176 ldr r1, _080BB1AC @ =gUnknown_020387B4 ldr r0, [r1, 0x8] adds r0, 0x1 str r0, [r1, 0x8] cmp r0, 0x4 ble _080BB176 str r2, [r1, 0x8] _080BB176: ldrh r1, [r7, 0x2E] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _080BB192 ldr r1, _080BB1AC @ =gUnknown_020387B4 ldr r0, [r1, 0x8] subs r0, 0x1 str r0, [r1, 0x8] cmp r0, 0 bge _080BB192 movs r0, 0x4 str r0, [r1, 0x8] _080BB192: ldrh r1, [r7, 0x30] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080BB1B0 ldr r1, _080BB1AC @ =gUnknown_020387B4 ldr r0, [r1] adds r0, 0x1 str r0, [r1] cmp r0, 0xF7 ble _080BB1C8 movs r0, 0 b _080BB1C6 .align 2, 0 _080BB1AC: .4byte gUnknown_020387B4 _080BB1B0: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080BB1C8 ldr r1, _080BB1D0 @ =gUnknown_020387B4 ldr r0, [r1] subs r0, 0x1 str r0, [r1] cmp r0, 0 bge _080BB1C8 movs r0, 0xF7 _080BB1C6: str r0, [r1] _080BB1C8: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BB1D0: .4byte gUnknown_020387B4 thumb_func_end sub_80BB038 thumb_func_start sub_80BB1D4 sub_80BB1D4: @ 80BB1D4 push {r4,r5,lr} sub sp, 0x10 ldr r1, _080BB218 @ =gOtherText_LR mov r0, sp movs r2, 0x5 bl memcpy add r5, sp, 0x8 ldr r1, _080BB21C @ =gOtherText_RL adds r0, r5, 0 movs r2, 0x5 bl memcpy ldr r4, _080BB220 @ =gUnknown_020387B4 ldr r0, [r4] movs r1, 0x7 movs r2, 0x2 movs r3, 0x3 bl sub_80BAE78 ldr r1, _080BB224 @ =gUnknown_083D03F8 ldr r0, [r4, 0x8] adds r0, r1 movs r1, 0 ldrsb r1, [r0, r1] movs r0, 0x80 negs r0, r0 cmp r1, r0 beq _080BB228 cmp r1, 0x7F bne _080BB234 mov r0, sp b _080BB22A .align 2, 0 _080BB218: .4byte gOtherText_LR _080BB21C: .4byte gOtherText_RL _080BB220: .4byte gUnknown_020387B4 _080BB224: .4byte gUnknown_083D03F8 _080BB228: adds r0, r5, 0 _080BB22A: movs r1, 0x7 movs r2, 0x4 bl MenuPrint b _080BB240 _080BB234: adds r0, r1, 0 movs r1, 0x7 movs r2, 0x4 movs r3, 0x3 bl sub_80BAE78 _080BB240: bl IsSEPlaying lsls r0, 24 lsrs r0, 24 movs r1, 0xC movs r2, 0x8 movs r3, 0x1 bl sub_80BAE78 add sp, 0x10 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80BB1D4 thumb_func_start sub_80BB25C sub_80BB25C: @ 80BB25C push {r4-r6,lr} sub sp, 0x14 lsls r0, 24 lsrs r6, r0, 24 ldr r0, _080BB374 @ =gWindowConfig_81E6C3C bl SetUpWindowConfig ldr r0, _080BB378 @ =gWindowConfig_81E6CE4 bl InitMenuWindow ldr r1, _080BB37C @ =gUnknown_03005D34 movs r0, 0x1 strh r0, [r1] bl ResetSpriteData bl FreeAllSpritePalettes ldr r1, _080BB380 @ =0xffff0000 ldr r0, [sp, 0x4] ands r0, r1 movs r1, 0x80 lsls r1, 6 orrs r0, r1 ldr r1, _080BB384 @ =0xff00ffff ands r0, r1 movs r1, 0xE8 lsls r1, 13 orrs r0, r1 ldr r1, _080BB388 @ =0x00ffffff ands r0, r1 movs r1, 0xC0 lsls r1, 20 orrs r0, r1 str r0, [sp, 0x4] ldr r1, _080BB38C @ =0xffff00ff ldr r0, [sp, 0x8] ands r0, r1 movs r1, 0xF0 lsls r1, 5 orrs r0, r1 ldr r1, _080BB390 @ =0xffffff00 ands r0, r1 movs r1, 0x4 orrs r0, r1 str r0, [sp, 0x8] movs r1, 0 ldr r0, _080BB394 @ =gUnknown_03005E98 strb r1, [r0] add r4, sp, 0xC _080BB2BE: add r0, sp, 0x4 movs r1, 0x3 bl sub_8119E3C lsls r0, 24 cmp r0, 0 beq _080BB2BE ldr r1, _080BB380 @ =0xffff0000 ldr r0, [sp, 0xC] ands r0, r1 ldr r1, _080BB384 @ =0xff00ffff ands r0, r1 movs r1, 0xF0 lsls r1, 12 orrs r0, r1 ldr r1, _080BB388 @ =0x00ffffff ands r0, r1 movs r1, 0xD0 lsls r1, 20 orrs r0, r1 str r0, [sp, 0xC] ldr r1, _080BB390 @ =0xffffff00 ldr r0, [r4, 0x4] ands r0, r1 movs r1, 0xC orrs r0, r1 ldr r1, _080BB38C @ =0xffff00ff ands r0, r1 movs r1, 0xC0 lsls r1, 4 orrs r0, r1 str r0, [r4, 0x4] movs r1, 0 ldr r0, _080BB394 @ =gUnknown_03005E98 strb r1, [r0] lsls r5, r6, 2 _080BB306: adds r0, r4, 0 movs r1, 0x2 bl sub_811A3CC lsls r0, 24 cmp r0, 0 beq _080BB306 movs r0, 0 movs r1, 0x10 movs r2, 0x5 movs r3, 0x13 bl MenuDrawTextWindow bl sub_80BB494 movs r0, 0x1 negs r0, r0 movs r4, 0 str r4, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _080BB398 @ =REG_BG2HOFS strh r4, [r0] adds r0, 0x2 strh r4, [r0] ldr r1, _080BB39C @ =REG_BG2CNT ldr r2, _080BB3A0 @ =0x00000f01 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080BB3A4 @ =0x00001d03 adds r0, r2, 0 strh r0, [r1] subs r1, 0xE adds r2, 0x3D adds r0, r2, 0 strh r0, [r1] ldr r0, _080BB3A8 @ =gMPlay_BGM movs r1, 0x2 bl m4aMPlayFadeOutTemporarily ldr r1, _080BB3AC @ =gTasks adds r0, r5, r6 lsls r0, 3 adds r0, r1 ldr r1, _080BB3B0 @ =sub_80BB3B4 str r1, [r0] add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BB374: .4byte gWindowConfig_81E6C3C _080BB378: .4byte gWindowConfig_81E6CE4 _080BB37C: .4byte gUnknown_03005D34 _080BB380: .4byte 0xffff0000 _080BB384: .4byte 0xff00ffff _080BB388: .4byte 0x00ffffff _080BB38C: .4byte 0xffff00ff _080BB390: .4byte 0xffffff00 _080BB394: .4byte gUnknown_03005E98 _080BB398: .4byte REG_BG2HOFS _080BB39C: .4byte REG_BG2CNT _080BB3A0: .4byte 0x00000f01 _080BB3A4: .4byte 0x00001d03 _080BB3A8: .4byte gMPlay_BGM _080BB3AC: .4byte gTasks _080BB3B0: .4byte sub_80BB3B4 thumb_func_end sub_80BB25C thumb_func_start sub_80BB3B4 sub_80BB3B4: @ 80BB3B4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 movs r0, 0x3 bl sub_8119F88 ldr r4, _080BB478 @ =gMain ldrh r1, [r4, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080BB3D4 ldr r0, _080BB47C @ =gUnknown_03005D34 ldrh r0, [r0] bl sub_811A050 _080BB3D4: ldrh r1, [r4, 0x2E] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _080BB3E4 bl StopCryAndClearCrySongs _080BB3E4: ldrh r1, [r4, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080BB408 ldr r1, _080BB47C @ =gUnknown_03005D34 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] lsls r0, 16 cmp r0, 0 bne _080BB404 movs r2, 0xC0 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] _080BB404: bl sub_80BB494 _080BB408: ldr r0, _080BB478 @ =gMain ldrh r1, [r0, 0x30] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080BB42E ldr r2, _080BB47C @ =gUnknown_03005D34 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] lsls r0, 16 movs r1, 0xC0 lsls r1, 17 cmp r0, r1 bls _080BB42A movs r0, 0x1 strh r0, [r2] _080BB42A: bl sub_80BB494 _080BB42E: ldr r0, _080BB478 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080BB472 movs r1, 0x80 lsls r1, 19 ldr r2, _080BB480 @ =0x00007140 adds r0, r2, 0 strh r0, [r1] adds r1, 0x40 ldr r2, _080BB484 @ =0x000011df adds r0, r2, 0 strh r0, [r1] adds r1, 0x4 ldr r2, _080BB488 @ =0x0000011f adds r0, r2, 0 strh r0, [r1] movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect ldr r1, _080BB48C @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _080BB490 @ =sub_80BA258 str r1, [r0] bl sub_811A4F8 _080BB472: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BB478: .4byte gMain _080BB47C: .4byte gUnknown_03005D34 _080BB480: .4byte 0x00007140 _080BB484: .4byte 0x000011df _080BB488: .4byte 0x0000011f _080BB48C: .4byte gTasks _080BB490: .4byte sub_80BA258 thumb_func_end sub_80BB3B4 thumb_func_start sub_80BB494 sub_80BB494: @ 80BB494 push {lr} ldr r0, _080BB4A8 @ =gUnknown_03005D34 ldrh r0, [r0] movs r1, 0x1 movs r2, 0x11 movs r3, 0x3 bl sub_80BAE78 pop {r0} bx r0 .align 2, 0 _080BB4A8: .4byte gUnknown_03005D34 thumb_func_end sub_80BB494 thumb_func_start sub_80BB4AC sub_80BB4AC: @ 80BB4AC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r3, r0, 0 movs r0, 0 strb r0, [r3] movs r2, 0 adds r4, r3, 0x2 movs r5, 0xFF _080BB4C4: adds r0, r4, r2 ldrb r1, [r0] orrs r1, r5 strb r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x6 bls _080BB4C4 movs r2, 0 adds r5, r3, 0 adds r5, 0x12 adds r6, r3, 0 adds r6, 0x22 adds r7, r3, 0 adds r7, 0x4C adds r0, r3, 0 adds r0, 0x34 str r0, [sp] adds r1, r3, 0 adds r1, 0x9A str r1, [sp, 0x4] movs r0, 0x7C adds r0, r3 mov r10, r0 movs r1, 0x88 adds r1, r3 mov r9, r1 movs r0, 0x94 adds r0, r3 mov r8, r0 adds r1, r3, 0 adds r1, 0x9 movs r4, 0 _080BB508: adds r0, r1, r2 strb r4, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x3 bls _080BB508 movs r0, 0 movs r1, 0 strh r1, [r3, 0xE] strb r0, [r3, 0x10] strb r0, [r3, 0x11] movs r0, 0 strb r0, [r3, 0x1] movs r2, 0 adds r4, r5, 0 adds r3, r6, 0 _080BB52A: adds r0, r4, r2 strb r1, [r0] adds r0, r3, r2 strb r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0xF bls _080BB52A movs r2, 0 mov r12, r7 movs r5, 0 _080BB542: movs r1, 0 adds r7, r2, 0x1 lsls r4, r2, 2 lsls r6, r2, 1 adds r3, r4, 0 _080BB54C: adds r0, r3, r1 lsls r0, 1 add r0, r12 strh r5, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x3 bls _080BB54C ldr r1, [sp] adds r0, r1, r4 str r5, [r0] ldr r1, [sp, 0x4] adds r0, r1, r2 strb r5, [r0] mov r1, r10 adds r0, r1, r6 strh r5, [r0] mov r1, r9 adds r0, r1, r6 strh r5, [r0] mov r1, r8 adds r0, r1, r2 strb r5, [r0] lsls r0, r7, 16 lsrs r2, r0, 16 cmp r2, 0x5 bls _080BB542 add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80BB4AC thumb_func_start sub_80BB594 sub_80BB594: @ 80BB594 push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 2 adds r0, r1 lsls r0, 5 ldr r1, _080BB5B0 @ =gSaveBlock1 + 0x1A08 adds r0, r1 bl sub_80BB4AC pop {r0} bx r0 .align 2, 0 _080BB5B0: .4byte gSaveBlock1 + 0x1A08 thumb_func_end sub_80BB594 thumb_func_start sub_80BB5B4 sub_80BB5B4: @ 80BB5B4 push {r4,lr} movs r4, 0 _080BB5B8: lsls r0, r4, 24 lsrs r0, 24 bl sub_80BB594 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x13 bls _080BB5B8 pop {r4} pop {r0} bx r0 thumb_func_end sub_80BB5B4 thumb_func_start sub_80BB5D0 sub_80BB5D0: @ 80BB5D0 ldr r0, _080BB5DC @ =gUnknown_020387DC ldr r1, _080BB5E0 @ =gUnknown_0202E8CC ldrh r1, [r1] strb r1, [r0] bx lr .align 2, 0 _080BB5DC: .4byte gUnknown_020387DC _080BB5E0: .4byte gUnknown_0202E8CC thumb_func_end sub_80BB5D0 thumb_func_start sub_80BB5E4 sub_80BB5E4: @ 80BB5E4 push {r4,lr} ldr r0, _080BB5F4 @ =gScriptResult movs r1, 0 strh r1, [r0] movs r3, 0 adds r4, r0, 0 b _080BB5FE .align 2, 0 _080BB5F4: .4byte gScriptResult _080BB5F8: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 _080BB5FE: cmp r3, 0x13 bhi _080BB626 ldr r2, _080BB62C @ =gUnknown_020387DC ldr r1, _080BB630 @ =gSaveBlock1 lsls r0, r3, 2 adds r0, r3 lsls r0, 5 adds r0, r1 ldr r1, _080BB634 @ =0x00001a08 adds r0, r1 ldrb r1, [r2] ldrb r0, [r0] cmp r1, r0 bne _080BB5F8 movs r0, 0x1 strh r0, [r4] ldr r0, _080BB638 @ =0x00004054 adds r1, r3, 0 bl VarSet _080BB626: pop {r4} pop {r0} bx r0 .align 2, 0 _080BB62C: .4byte gUnknown_020387DC _080BB630: .4byte gSaveBlock1 _080BB634: .4byte 0x00001a08 _080BB638: .4byte 0x00004054 thumb_func_end sub_80BB5E4 thumb_func_start sub_80BB63C sub_80BB63C: @ 80BB63C push {lr} ldr r0, _080BB654 @ =gSaveBlock1 ldr r1, _080BB658 @ =0x00001a08 adds r0, r1 ldrb r1, [r0] cmp r1, 0 beq _080BB660 ldr r1, _080BB65C @ =gScriptResult movs r0, 0x1 strh r0, [r1] b _080BB664 .align 2, 0 _080BB654: .4byte gSaveBlock1 _080BB658: .4byte 0x00001a08 _080BB65C: .4byte gScriptResult _080BB660: ldr r0, _080BB668 @ =gScriptResult strh r1, [r0] _080BB664: pop {r0} bx r0 .align 2, 0 _080BB668: .4byte gScriptResult thumb_func_end sub_80BB63C thumb_func_start sub_80BB66C sub_80BB66C: @ 80BB66C push {r4,lr} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt adds r1, r0, 0 ldr r2, _080BB6A4 @ =0x00000fff adds r0, r2, 0 ands r1, r0 adds r0, r1, 0 subs r0, 0x90 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _080BB6A8 movs r0, 0x1 b _080BB702 .align 2, 0 _080BB6A4: .4byte 0x00000fff _080BB6A8: adds r0, r1, 0 subs r0, 0x92 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _080BB6B8 movs r0, 0x2 b _080BB702 _080BB6B8: adds r0, r1, 0 subs r0, 0x9A lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _080BB6C8 movs r0, 0x3 b _080BB702 _080BB6C8: adds r0, r1, 0 subs r0, 0x94 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _080BB6D8 movs r0, 0x4 b _080BB702 _080BB6D8: adds r0, r1, 0 subs r0, 0x96 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _080BB6EC cmp r1, 0x9C beq _080BB6EC cmp r1, 0x9D bne _080BB6F0 _080BB6EC: movs r0, 0x5 b _080BB702 _080BB6F0: adds r0, r1, 0 subs r0, 0x98 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _080BB700 movs r0, 0 b _080BB702 _080BB700: movs r0, 0x6 _080BB702: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_80BB66C thumb_func_start sub_80BB70C sub_80BB70C: @ 80BB70C push {r4,lr} ldr r4, _080BB720 @ =gUnknown_0202E8D2 bl sub_80BB66C lsls r0, 24 lsrs r0, 24 strh r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080BB720: .4byte gUnknown_0202E8D2 thumb_func_end sub_80BB70C thumb_func_start unref_sub_80BB724 unref_sub_80BB724: @ 80BB724 push {r4-r6,lr} adds r4, r0, 0 lsls r1, 24 movs r2, 0 ldr r6, _080BB748 @ =0x00000fff lsrs r3, r1, 24 ldr r5, _080BB74C @ =0x000001ff _080BB732: lsls r0, r2, 1 adds r0, r4 ldrh r1, [r0] adds r0, r6, 0 ands r0, r1 cmp r0, r3 bne _080BB750 lsls r0, r2, 16 asrs r0, 16 b _080BB75E .align 2, 0 _080BB748: .4byte 0x00000fff _080BB74C: .4byte 0x000001ff _080BB750: adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, r5 bls _080BB732 movs r0, 0x1 negs r0, r0 _080BB75E: pop {r4-r6} pop {r1} bx r1 thumb_func_end unref_sub_80BB724 thumb_func_start sub_80BB764 sub_80BB764: @ 80BB764 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 mov r9, r0 mov r10, r1 lsls r2, 16 lsrs r2, 16 mov r8, r2 movs r0, 0 mov r12, r0 ldr r1, _080BB7C8 @ =gMapHeader ldr r0, [r1] ldr r3, [r0, 0x4] cmp r12, r3 bge _080BB7EE ldr r0, [r0] str r0, [sp, 0x4] str r3, [sp] _080BB78E: movs r2, 0 mov r1, r12 lsls r7, r1, 16 ldr r0, [sp, 0x4] cmp r2, r0 bge _080BB7DC ldr r0, _080BB7C8 @ =gMapHeader ldr r1, [r0] asrs r0, r7, 16 ldr r4, [r1] adds r6, r0, 0 muls r6, r4 ldr r5, [r1, 0xC] _080BB7A8: lsls r0, r2, 16 asrs r3, r0, 16 adds r0, r6, r3 lsls r0, 1 adds r0, r5 ldrh r1, [r0] ldr r0, _080BB7CC @ =0x000003ff ands r0, r1 cmp r0, r8 bne _080BB7D0 mov r1, r9 strh r2, [r1] mov r1, r12 mov r0, r10 strh r1, [r0] b _080BB7EE .align 2, 0 _080BB7C8: .4byte gMapHeader _080BB7CC: .4byte 0x000003ff _080BB7D0: adds r0, r3, 0x1 lsls r0, 16 lsrs r2, r0, 16 asrs r0, 16 cmp r0, r4 blt _080BB7A8 _080BB7DC: movs r1, 0x80 lsls r1, 9 adds r0, r7, r1 lsrs r1, r0, 16 mov r12, r1 asrs r0, 16 ldr r1, [sp] cmp r0, r1 blt _080BB78E _080BB7EE: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80BB764 thumb_func_start sub_80BB800 sub_80BB800: @ 80BB800 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridGetMetatileIdAt movs r5, 0 mov r12, r4 lsls r0, 16 asrs r3, r0, 16 ldr r1, _080BB84C @ =gUnknown_083D1358 mov r8, r1 adds r7, r0, 0 mov r4, sp mov r6, r12 _080BB834: ldr r0, _080BB84C @ =gUnknown_083D1358 lsls r1, r5, 2 adds r2, r1, r0 ldrh r0, [r2] cmp r0, r3 bne _080BB850 movs r3, 0 ldrsh r0, [r4, r3] movs r5, 0 ldrsh r1, [r6, r5] ldrh r3, [r2, 0x2] b _080BB878 .align 2, 0 _080BB84C: .4byte gUnknown_083D1358 _080BB850: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x6 bls _080BB834 movs r5, 0 mov r4, sp mov r6, r12 _080BB860: lsls r0, r5, 2 mov r1, r8 adds r3, r0, r1 ldrh r1, [r3, 0x2] asrs r0, r7, 16 cmp r1, r0 bne _080BB892 movs r2, 0 ldrsh r0, [r4, r2] movs r5, 0 ldrsh r1, [r6, r5] ldrh r3, [r3] _080BB878: movs r5, 0xC0 lsls r5, 4 adds r2, r5, 0 orrs r2, r3 bl MapGridSetMetatileIdAt movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0 ldrsh r1, [r6, r2] bl CurrentMapDrawMetatileAt b _080BB89C _080BB892: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x6 bls _080BB860 _080BB89C: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80BB800 thumb_func_start sub_80BB8A8 sub_80BB8A8: @ 80BB8A8 push {lr} adds r2, r0, 0 movs r1, 0 _080BB8AE: adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0xFF bne _080BB8BA adds r0, r1, 0 b _080BB8C6 _080BB8BA: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x6 bls _080BB8AE movs r0, 0x7 _080BB8C6: pop {r1} bx r1 thumb_func_end sub_80BB8A8 thumb_func_start sub_80BB8CC sub_80BB8CC: @ 80BB8CC push {r4-r6,lr} ldr r2, _080BB948 @ =gSaveBlock1 ldr r0, _080BB94C @ =gUnknown_020387DC ldrb r1, [r0] ldr r3, _080BB950 @ =0x00001a08 adds r0, r2, r3 strb r1, [r0] movs r3, 0 ldr r0, _080BB954 @ =0x00001a11 adds r2, r0 ldr r4, _080BB958 @ =gSaveBlock2 + 0xA _080BB8E2: adds r1, r3, r2 adds r0, r3, r4 ldrb r0, [r0] strb r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x3 bls _080BB8E2 ldr r0, _080BB95C @ =0x00004054 movs r1, 0 bl VarSet ldr r6, _080BB960 @ =gSaveBlock2 adds r0, r6, 0 bl sub_80BB8A8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _080BB964 @ =gSaveBlock1 + 0x1A0A adds r0, r5, 0 movs r1, 0xFF movs r2, 0x7 bl memset adds r0, r5, 0 adds r1, r6, 0 adds r2, r4, 0 bl StringCopyN ldrb r0, [r6, 0x8] subs r5, 0x1 movs r1, 0x1 ands r1, r0 lsls r1, 4 ldrb r2, [r5] movs r0, 0x11 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5] ldr r0, _080BB968 @ =0x00004026 ldr r1, _080BB96C @ =gMapHeader ldrb r1, [r1, 0x14] bl VarSet pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BB948: .4byte gSaveBlock1 _080BB94C: .4byte gUnknown_020387DC _080BB950: .4byte 0x00001a08 _080BB954: .4byte 0x00001a11 _080BB958: .4byte gSaveBlock2 + 0xA _080BB95C: .4byte 0x00004054 _080BB960: .4byte gSaveBlock2 _080BB964: .4byte gSaveBlock1 + 0x1A0A _080BB968: .4byte 0x00004026 _080BB96C: .4byte gMapHeader thumb_func_end sub_80BB8CC thumb_func_start sub_80BB970 sub_80BB970: @ 80BB970 push {r4-r7,lr} adds r5, r0, 0 movs r2, 0 b _080BBA06 _080BB978: ldr r0, [r5, 0x10] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r3, r1, r0 ldrb r0, [r3, 0x5] adds r7, r2, 0x1 cmp r0, 0x8 bne _080BBA02 movs r2, 0 ldr r4, _080BB9E0 @ =gSaveBlock1 adds r6, r1, 0 _080BB990: lsls r0, r2, 2 adds r0, r2 lsls r0, 5 adds r0, r4 ldr r1, _080BB9E4 @ =0x00001a08 adds r0, r1 ldrb r1, [r0] ldr r0, [r3, 0x8] cmp r1, r0 bne _080BB9F8 ldrh r0, [r3] adds r0, 0x7 ldrh r1, [r3, 0x2] adds r1, 0x7 bl MapGridGetMetatileIdAt movs r3, 0 lsls r0, 16 asrs r4, r0, 16 _080BB9B6: ldr r0, _080BB9E8 @ =gUnknown_083D1358 lsls r1, r3, 2 adds r2, r1, r0 ldrh r0, [r2] cmp r0, r4 bne _080BB9EC ldr r1, [r5, 0x10] adds r1, r6, r1 ldrh r0, [r1] adds r0, 0x7 ldrh r1, [r1, 0x2] adds r1, 0x7 ldrh r3, [r2, 0x2] movs r4, 0xC0 lsls r4, 4 adds r2, r4, 0 orrs r2, r3 bl MapGridSetMetatileIdAt b _080BBA02 .align 2, 0 _080BB9E0: .4byte gSaveBlock1 _080BB9E4: .4byte 0x00001a08 _080BB9E8: .4byte gUnknown_083D1358 _080BB9EC: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x6 bls _080BB9B6 b _080BBA02 _080BB9F8: adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x13 bls _080BB990 _080BBA02: lsls r0, r7, 16 lsrs r2, r0, 16 _080BBA06: ldrb r0, [r5, 0x3] cmp r2, r0 bcc _080BB978 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80BB970 thumb_func_start sub_80BBA14 sub_80BBA14: @ 80BBA14 push {lr} ldr r0, _080BBA40 @ =gUnknown_020387DC ldrb r0, [r0] movs r1, 0xA bl __udivsi3 ldr r2, _080BBA44 @ =gUnknown_083D1374 lsls r0, 26 asrs r0, 24 adds r1, r0, r2 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 adds r0, 0x1 adds r0, r2 movs r2, 0 ldrsb r2, [r0, r2] movs r0, 0x19 bl warp1_set_2 pop {r0} bx r0 .align 2, 0 _080BBA40: .4byte gUnknown_020387DC _080BBA44: .4byte gUnknown_083D1374 thumb_func_end sub_80BBA14 thumb_func_start sub_80BBA48 sub_80BBA48: @ 80BBA48 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080BBA6C @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r1 movs r1, 0x8 ldrsh r0, [r2, r1] cmp r0, 0x1 beq _080BBA7C cmp r0, 0x1 bgt _080BBA70 cmp r0, 0 beq _080BBA76 b _080BBAD0 .align 2, 0 _080BBA6C: .4byte gTasks _080BBA70: cmp r0, 0x2 beq _080BBA94 b _080BBAD0 _080BBA76: movs r0, 0x1 strh r0, [r2, 0x8] b _080BBAD0 _080BBA7C: ldr r0, _080BBA90 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080BBAD0 movs r0, 0x2 strh r0, [r2, 0x8] b _080BBAD0 .align 2, 0 _080BBA90: .4byte gPaletteFade _080BBA94: ldr r0, _080BBAD8 @ =0x00004054 bl VarGet lsls r0, 16 lsrs r0, 16 ldr r2, _080BBADC @ =gSaveBlock1 lsls r1, r0, 2 adds r1, r0 lsls r1, 5 adds r1, r2 ldr r0, _080BBAE0 @ =0x00001a18 adds r1, r0 ldrb r0, [r1] cmp r0, 0xFE bhi _080BBAB6 adds r0, 0x1 strb r0, [r1] _080BBAB6: bl sub_80BBA14 bl warp_in ldr r0, _080BBAE4 @ =gUnknown_0300485C ldr r1, _080BBAE8 @ =sub_8080990 str r1, [r0] ldr r0, _080BBAEC @ =CB2_LoadMap bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _080BBAD0: pop {r4} pop {r0} bx r0 .align 2, 0 _080BBAD8: .4byte 0x00004054 _080BBADC: .4byte gSaveBlock1 _080BBAE0: .4byte 0x00001a18 _080BBAE4: .4byte gUnknown_0300485C _080BBAE8: .4byte sub_8080990 _080BBAEC: .4byte CB2_LoadMap thumb_func_end sub_80BBA48 thumb_func_start sub_80BBAF0 sub_80BBAF0: @ 80BBAF0 push {lr} ldr r0, _080BBB1C @ =sub_80BBA48 movs r1, 0 bl CreateTask movs r0, 0x1 movs r1, 0 bl fade_screen ldr r0, _080BBB20 @ =gSaveBlock1 movs r1, 0x4 ldrsb r1, [r0, r1] movs r2, 0x5 ldrsb r2, [r0, r2] movs r3, 0x1 negs r3, r3 movs r0, 0 bl saved_warp2_set pop {r0} bx r0 .align 2, 0 _080BBB1C: .4byte sub_80BBA48 _080BBB20: .4byte gSaveBlock1 thumb_func_end sub_80BBAF0 thumb_func_start sub_80BBB24 sub_80BBB24: @ 80BBB24 push {lr} ldr r0, _080BBB40 @ =gMapHeader ldrb r0, [r0, 0x17] cmp r0, 0x9 bne _080BBB48 ldr r0, _080BBB44 @ =0x00004097 bl VarGet lsls r0, 16 cmp r0, 0 bne _080BBB48 movs r0, 0 b _080BBB4A .align 2, 0 _080BBB40: .4byte gMapHeader _080BBB44: .4byte 0x00004097 _080BBB48: movs r0, 0x1 _080BBB4A: pop {r1} bx r1 thumb_func_end sub_80BBB24 thumb_func_start sub_80BBB50 sub_80BBB50: @ 80BBB50 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080BBB88 @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080BBB8C @ =gMapObjects adds r0, r1 movs r1, 0x2 bl FieldObjectTurn bl sub_807D770 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080BBB80 bl EnableBothScriptContexts adds r0, r4, 0 bl DestroyTask _080BBB80: pop {r4} pop {r0} bx r0 .align 2, 0 _080BBB88: .4byte gPlayerAvatar _080BBB8C: .4byte gMapObjects thumb_func_end sub_80BBB50 thumb_func_start sub_80BBB90 sub_80BBB90: @ 80BBB90 push {r4,lr} sub sp, 0x4 bl ScriptContext2_Enable bl HideMapNamePopUpWindow mov r4, sp adds r4, 0x2 movs r2, 0x88 lsls r2, 2 mov r0, sp adds r1, r4, 0 bl sub_80BB764 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] adds r0, 0x7 movs r2, 0 ldrsh r1, [r4, r2] adds r1, 0x7 movs r2, 0xE2 lsls r2, 4 bl MapGridSetMetatileIdAt mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] adds r0, 0x7 movs r2, 0 ldrsh r1, [r4, r2] adds r1, 0x7 bl CurrentMapDrawMetatileAt bl pal_fill_black ldr r0, _080BBBE8 @ =sub_80BBB50 movs r1, 0 bl CreateTask add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080BBBE8: .4byte sub_80BBB50 thumb_func_end sub_80BBB90 thumb_func_start sub_80BBBEC sub_80BBBEC: @ 80BBBEC push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r0, _080BBC5C @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080BBC52 ldr r0, _080BBC60 @ =gUnknown_020387DC ldrb r0, [r0] movs r1, 0xA bl __udivsi3 ldr r1, _080BBC64 @ =gSaveBlock1 movs r5, 0x4 ldrsb r5, [r1, r5] ldrb r1, [r1, 0x5] lsls r1, 24 asrs r1, 24 movs r2, 0x1 negs r2, r2 ldr r4, _080BBC68 @ =gUnknown_083D1374 lsls r0, 26 asrs r0, 24 adds r3, r0, 0x2 adds r3, r4 ldrb r3, [r3] lsls r3, 24 asrs r3, 24 adds r0, 0x3 adds r0, r4 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 str r0, [sp] adds r0, r5, 0 bl warp1_set bl warp_in ldr r1, _080BBC6C @ =gUnknown_0300485C ldr r0, _080BBC70 @ =sub_80BBB90 str r0, [r1] ldr r0, _080BBC74 @ =CB2_LoadMap bl SetMainCallback2 adds r0, r6, 0 bl DestroyTask _080BBC52: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BBC5C: .4byte gPaletteFade _080BBC60: .4byte gUnknown_020387DC _080BBC64: .4byte gSaveBlock1 _080BBC68: .4byte gUnknown_083D1374 _080BBC6C: .4byte gUnknown_0300485C _080BBC70: .4byte sub_80BBB90 _080BBC74: .4byte CB2_LoadMap thumb_func_end sub_80BBBEC thumb_func_start sub_80BBC78 sub_80BBC78: @ 80BBC78 push {lr} ldr r0, _080BBCA0 @ =sub_80BBBEC movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080BBCA4 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r0, [r1, 0x8] movs r0, 0x1 movs r1, 0 bl fade_screen pop {r0} bx r0 .align 2, 0 _080BBCA0: .4byte sub_80BBBEC _080BBCA4: .4byte gTasks thumb_func_end sub_80BBC78 thumb_func_start CurrentMapIsSecretBase CurrentMapIsSecretBase: @ 80BBCA8 push {lr} ldr r1, _080BBCC0 @ =gSaveBlock1 movs r0, 0x4 ldrsb r0, [r1, r0] cmp r0, 0x19 bne _080BBCC4 ldrb r0, [r1, 0x5] cmp r0, 0x17 bhi _080BBCC4 movs r0, 0x1 b _080BBCC6 .align 2, 0 _080BBCC0: .4byte gSaveBlock1 _080BBCC4: movs r0, 0 _080BBCC6: pop {r1} bx r1 thumb_func_end CurrentMapIsSecretBase thumb_func_start sub_80BBCCC sub_80BBCCC: @ 80BBCCC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r8, r0 bl CurrentMapIsSecretBase lsls r0, 24 cmp r0, 0 beq _080BBDBC ldr r0, _080BBD70 @ =0x00004054 bl VarGet lsls r0, 16 lsrs r5, r0, 16 movs r1, 0 mov r0, sp strh r1, [r0] ldr r6, _080BBD74 @ =gSaveBlock1 mov r4, sp ldr r0, _080BBD78 @ =0x00001a2a adds r7, r6, r0 _080BBCFC: lsls r0, r5, 2 adds r0, r5 lsls r0, 5 ldrh r1, [r4] adds r2, r0, r1 ldr r1, _080BBD7C @ =0x00001a1a adds r0, r6, r1 adds r1, r2, r0 ldrb r0, [r1] subs r0, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x77 bhi _080BBD3A ldr r0, _080BBD80 @ =gDecorations ldrb r3, [r1] lsls r1, r3, 5 adds r1, r0 ldrb r0, [r1, 0x11] cmp r0, 0x4 beq _080BBD3A adds r0, r2, r7 ldrb r2, [r0] lsrs r0, r2, 4 adds r0, 0x7 movs r1, 0xF ands r1, r2 adds r1, 0x7 adds r2, r3, 0 bl sub_80FF394 _080BBD3A: ldrh r0, [r4] adds r0, 0x1 lsls r0, 16 lsrs r0, 16 strh r0, [r4] cmp r0, 0xF bls _080BBCFC cmp r5, 0 beq _080BBD88 mov r4, sp adds r4, 0x2 movs r2, 0x88 lsls r2, 2 mov r0, sp adds r1, r4, 0 bl sub_80BB764 mov r0, sp ldrh r0, [r0] adds r0, 0x7 ldrh r1, [r4] adds r1, 0x7 ldr r2, _080BBD84 @ =0x00000e21 bl MapGridSetMetatileIdAt b _080BBDBC .align 2, 0 _080BBD70: .4byte 0x00004054 _080BBD74: .4byte gSaveBlock1 _080BBD78: .4byte 0x00001a2a _080BBD7C: .4byte 0x00001a1a _080BBD80: .4byte gDecorations _080BBD84: .4byte 0x00000e21 _080BBD88: mov r0, r8 cmp r0, 0x1 bne _080BBDBC ldr r0, _080BBDC8 @ =0x00004089 bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bne _080BBDBC mov r4, sp adds r4, 0x2 movs r2, 0x88 lsls r2, 2 mov r0, sp adds r1, r4, 0 bl sub_80BB764 mov r0, sp ldrh r0, [r0] adds r0, 0x7 ldrh r1, [r4] adds r1, 0x7 ldr r2, _080BBDCC @ =0x00000e0a bl MapGridSetMetatileIdAt _080BBDBC: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BBDC8: .4byte 0x00004089 _080BBDCC: .4byte 0x00000e0a thumb_func_end sub_80BBCCC thumb_func_start sub_80BBDD0 sub_80BBDD0: @ 80BBDD0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 ldr r0, _080BBE00 @ =0x00004054 bl VarGet lsls r0, 16 lsrs r4, r0, 16 bl CurrentMapIsSecretBase lsls r0, 24 cmp r0, 0 bne _080BBE08 ldr r0, _080BBE04 @ =gSaveBlock1 + 0x2688 str r0, [sp, 0x4] adds r0, 0xC str r0, [sp, 0x8] movs r1, 0xC str r1, [sp, 0xC] b _080BBE1E .align 2, 0 _080BBE00: .4byte 0x00004054 _080BBE04: .4byte gSaveBlock1 + 0x2688 _080BBE08: lsls r1, r4, 2 adds r1, r4 lsls r1, 5 ldr r0, _080BBF7C @ =gSaveBlock1 + 0x1A1A adds r2, r1, r0 str r2, [sp, 0x4] adds r0, 0x10 adds r1, r0 str r1, [sp, 0x8] movs r3, 0x10 str r3, [sp, 0xC] _080BBE1E: movs r6, 0 ldr r4, [sp, 0xC] cmp r6, r4 bcc _080BBE28 b _080BBF6C _080BBE28: ldr r5, _080BBF80 @ =gSaveBlock1 mov r10, r5 _080BBE2C: ldr r1, [sp, 0x4] adds r0, r1, r6 ldrb r1, [r0] mov r9, r0 adds r2, r6, 0x1 str r2, [sp, 0x10] cmp r1, 0 bne _080BBE3E b _080BBF5E _080BBE3E: ldrb r0, [r0] lsls r0, 5 ldr r3, _080BBF84 @ =gDecorations adds r0, r3 ldrb r0, [r0, 0x11] cmp r0, 0x4 beq _080BBE4E b _080BBF5E _080BBE4E: movs r5, 0 ldr r0, _080BBF88 @ =gMapHeader ldr r2, [r0, 0x4] ldrb r3, [r2] mov r8, r0 cmp r5, r3 bcs _080BBE8E ldr r0, [r2, 0x4] ldrh r1, [r0, 0x14] ldr r4, _080BBF8C @ =gUnknown_0202E8CC ldrh r0, [r4] adds r0, 0xAE adds r7, r4, 0 cmp r1, r0 beq _080BBE8E adds r4, r2, 0 adds r2, r3, 0 _080BBE70: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, r2 bcs _080BBE8E ldr r1, [r4, 0x4] lsls r0, r5, 1 adds r0, r5 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x14] ldrh r0, [r7] adds r0, 0xAE cmp r1, r0 bne _080BBE70 _080BBE8E: mov r1, r8 ldr r0, [r1, 0x4] ldrb r0, [r0] cmp r5, r0 beq _080BBF5E ldr r7, _080BBF90 @ =gUnknown_0202E8D0 ldr r2, [sp, 0x8] adds r1, r2, r6 ldrb r0, [r1] lsrs r0, 4 strh r0, [r7] ldr r6, _080BBF94 @ =gUnknown_0202E8D2 ldrb r1, [r1] movs r0, 0xF ands r0, r1 strh r0, [r6] ldrh r0, [r7] adds r0, 0x7 ldrh r1, [r6] adds r1, 0x7 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_80572D8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080BBEDA adds r0, r4, 0 bl sub_80572EC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080BBF5E _080BBEDA: mov r3, r8 ldr r0, [r3, 0x4] ldr r1, [r0, 0x4] lsls r4, r5, 1 adds r4, r5 lsls r4, 3 adds r1, r4, r1 ldr r5, _080BBF98 @ =0x00003f20 adds r0, r5, 0 ldrb r1, [r1, 0x1] adds r0, r1 ldr r1, _080BBF9C @ =gScriptResult strh r0, [r1] ldrh r0, [r1] mov r2, r9 ldrb r1, [r2] lsls r1, 5 ldr r3, _080BBFA0 @ =gDecorations + 0x1C adds r1, r3 ldr r1, [r1] ldrh r1, [r1] bl VarSet mov r5, r8 ldr r0, [r5, 0x4] ldr r0, [r0, 0x4] adds r4, r0 ldrb r0, [r4] ldr r1, _080BBF9C @ =gScriptResult strh r0, [r1] ldr r2, _080BBF8C @ =gUnknown_0202E8CC ldrh r0, [r2] adds r0, 0xAE lsls r0, 16 lsrs r0, 16 bl FlagReset ldr r3, _080BBF9C @ =gScriptResult ldrb r0, [r3] mov r4, r10 ldrb r1, [r4, 0x5] ldrb r2, [r4, 0x4] bl show_sprite ldr r5, _080BBF9C @ =gScriptResult ldrb r0, [r5] ldrb r1, [r4, 0x5] ldrb r2, [r4, 0x4] movs r4, 0 ldrsh r3, [r7, r4] movs r5, 0 ldrsh r4, [r6, r5] str r4, [sp] bl sub_805C0F8 ldr r1, _080BBF9C @ =gScriptResult ldrb r0, [r1] mov r2, r10 ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] bl sub_805C78C ldr r3, _080BBF8C @ =gUnknown_0202E8CC ldrh r0, [r3] adds r0, 0x1 strh r0, [r3] _080BBF5E: ldr r4, [sp, 0x10] lsls r0, r4, 24 lsrs r6, r0, 24 ldr r5, [sp, 0xC] cmp r6, r5 bcs _080BBF6C b _080BBE2C _080BBF6C: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BBF7C: .4byte gSaveBlock1 + 0x1A1A _080BBF80: .4byte gSaveBlock1 _080BBF84: .4byte gDecorations _080BBF88: .4byte gMapHeader _080BBF8C: .4byte gUnknown_0202E8CC _080BBF90: .4byte gUnknown_0202E8D0 _080BBF94: .4byte gUnknown_0202E8D2 _080BBF98: .4byte 0x00003f20 _080BBF9C: .4byte gScriptResult _080BBFA0: .4byte gDecorations + 0x1C thumb_func_end sub_80BBDD0 thumb_func_start sub_80BBFA4 sub_80BBFA4: @ 80BBFA4 push {r4,r5,lr} ldr r0, _080BBFCC @ =0x00004054 bl VarGet ldr r5, _080BBFD0 @ =0x0000401f ldr r4, _080BBFD4 @ =gUnknown_083D13EC lsls r0, 24 lsrs r0, 24 bl sub_80BCCA4 lsls r0, 24 lsrs r0, 24 adds r0, r4 ldrb r1, [r0] adds r0, r5, 0 bl VarSet pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BBFCC: .4byte 0x00004054 _080BBFD0: .4byte 0x0000401f _080BBFD4: .4byte gUnknown_083D13EC thumb_func_end sub_80BBFA4 thumb_func_start sub_80BBFD8 sub_80BBFD8: @ 80BBFD8 push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 movs r3, 0 ldrb r0, [r4, 0x3] cmp r3, r0 bge _080BC030 ldr r6, _080BC01C @ =gUnknown_020387DC _080BBFE8: lsls r3, 16 asrs r1, r3, 16 ldr r2, [r4, 0x10] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r2, r0, r2 ldrb r0, [r2, 0x5] cmp r0, 0x8 bne _080BC020 movs r0, 0 ldrsh r1, [r5, r0] ldrh r0, [r2] adds r0, 0x7 cmp r1, r0 bne _080BC020 movs r0, 0x2 ldrsh r1, [r5, r0] ldrh r0, [r2, 0x2] adds r0, 0x7 cmp r1, r0 bne _080BC020 ldr r0, [r2, 0x8] strb r0, [r6] b _080BC030 .align 2, 0 _080BC01C: .4byte gUnknown_020387DC _080BC020: movs r1, 0x80 lsls r1, 9 adds r0, r3, r1 lsrs r3, r0, 16 asrs r0, 16 ldrb r1, [r4, 0x3] cmp r0, r1 blt _080BBFE8 _080BC030: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80BBFD8 thumb_func_start sub_80BC038 sub_80BC038: @ 80BC038 push {lr} bl sub_80BBFD8 bl sub_80BB5E4 ldr r0, _080BC04C @ =gUnknown_081A2E14 bl ScriptContext1_SetupScript pop {r0} bx r0 .align 2, 0 _080BC04C: .4byte gUnknown_081A2E14 thumb_func_end sub_80BC038 thumb_func_start sub_80BC050 sub_80BC050: @ 80BC050 push {lr} bl sub_80BB5D0 bl sub_80BB5E4 ldr r0, _080BC068 @ =gScriptResult ldrh r0, [r0] cmp r0, 0x1 beq _080BC06C movs r0, 0x1 b _080BC06E .align 2, 0 _080BC068: .4byte gScriptResult _080BC06C: movs r0, 0 _080BC06E: pop {r1} bx r1 thumb_func_end sub_80BC050 thumb_func_start sub_80BC074 sub_80BC074: @ 80BC074 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080BC098 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080BC0AC cmp r0, 0x1 bgt _080BC09C cmp r0, 0 beq _080BC0A2 b _080BC0E4 .align 2, 0 _080BC098: .4byte gTasks _080BC09C: cmp r0, 0x2 beq _080BC0C4 b _080BC0E4 _080BC0A2: bl ScriptContext2_Enable movs r0, 0x1 strh r0, [r4, 0x8] b _080BC0E4 _080BC0AC: ldr r0, _080BC0C0 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080BC0E4 movs r0, 0x2 strh r0, [r4, 0x8] b _080BC0E4 .align 2, 0 _080BC0C0: .4byte gPaletteFade _080BC0C4: movs r0, 0x7E bl copy_saved_warp2_bank_and_enter_x_to_warp1 bl warp_in ldr r0, _080BC0EC @ =gUnknown_0300485C ldr r1, _080BC0F0 @ =mapldr_default str r1, [r0] ldr r0, _080BC0F4 @ =CB2_LoadMap bl SetMainCallback2 bl ScriptContext2_Disable adds r0, r5, 0 bl DestroyTask _080BC0E4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BC0EC: .4byte gUnknown_0300485C _080BC0F0: .4byte mapldr_default _080BC0F4: .4byte CB2_LoadMap thumb_func_end sub_80BC074 thumb_func_start sub_80BC0F8 sub_80BC0F8: @ 80BC0F8 push {lr} ldr r0, _080BC110 @ =sub_80BC074 movs r1, 0 bl CreateTask movs r0, 0x1 movs r1, 0 bl fade_screen pop {r0} bx r0 .align 2, 0 _080BC110: .4byte sub_80BC074 thumb_func_end sub_80BC0F8 thumb_func_start sub_80BC114 sub_80BC114: @ 80BC114 push {lr} ldr r0, _080BC12C @ =gSaveBlock1 ldr r1, _080BC130 @ =0x00001a08 adds r0, r1 ldr r1, _080BC134 @ =gUnknown_020387DC ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 beq _080BC13C ldr r1, _080BC138 @ =gScriptResult movs r0, 0x1 b _080BC140 .align 2, 0 _080BC12C: .4byte gSaveBlock1 _080BC130: .4byte 0x00001a08 _080BC134: .4byte gUnknown_020387DC _080BC138: .4byte gScriptResult _080BC13C: ldr r1, _080BC148 @ =gScriptResult movs r0, 0 _080BC140: strh r0, [r1] pop {r0} bx r0 .align 2, 0 _080BC148: .4byte gScriptResult thumb_func_end sub_80BC114 thumb_func_start sub_80BC14C sub_80BC14C: @ 80BC14C push {r4,r5,lr} lsls r0, 24 lsrs r3, r0, 24 movs r2, 0 ldr r5, _080BC174 @ =gSaveBlock1 ldr r4, _080BC178 @ =0x00001a08 _080BC158: lsls r0, r2, 16 asrs r1, r0, 16 lsls r0, r1, 2 adds r0, r1 lsls r0, 5 adds r0, r5 adds r0, r4 ldrb r0, [r0] cmp r0, r3 bne _080BC17C lsls r0, r2, 24 lsrs r0, 24 b _080BC18A .align 2, 0 _080BC174: .4byte gSaveBlock1 _080BC178: .4byte 0x00001a08 _080BC17C: adds r0, r1, 0x1 lsls r0, 16 lsrs r2, r0, 16 asrs r0, 16 cmp r0, 0x13 ble _080BC158 movs r0, 0 _080BC18A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80BC14C thumb_func_start sub_80BC190 sub_80BC190: @ 80BC190 push {r4,r5,lr} adds r5, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r4, r1, 2 adds r4, r1 lsls r4, 5 ldr r0, _080BC1C8 @ =gSaveBlock1 + 0x1A0A adds r4, r0 adds r0, r4, 0 bl sub_80BB8A8 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r5, 0 adds r1, r4, 0 bl StringCopyN movs r1, 0xFF strb r1, [r0] ldr r1, _080BC1CC @ =gOtherText_PlayersBase adds r0, r5, 0 bl StringAppend pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080BC1C8: .4byte gSaveBlock1 + 0x1A0A _080BC1CC: .4byte gOtherText_PlayersBase thumb_func_end sub_80BC190 thumb_func_start GetSecretBaseMapName GetSecretBaseMapName: @ 80BC1D0 push {r4-r6,lr} mov r6, r8 push {r6} mov r8, r0 ldr r6, _080BC214 @ =gUnknown_020387DC ldr r5, _080BC218 @ =gSaveBlock1 ldr r4, _080BC21C @ =0x00004054 adds r0, r4, 0 bl VarGet lsls r0, 16 lsrs r0, 16 lsls r1, r0, 2 adds r1, r0 lsls r1, 5 adds r1, r5 ldr r0, _080BC220 @ =0x00001a08 adds r1, r0 ldrb r0, [r1] strb r0, [r6] adds r0, r4, 0 bl VarGet adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r8 bl sub_80BC190 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080BC214: .4byte gUnknown_020387DC _080BC218: .4byte gSaveBlock1 _080BC21C: .4byte 0x00004054 _080BC220: .4byte 0x00001a08 thumb_func_end GetSecretBaseMapName thumb_func_start sub_80BC224 sub_80BC224: @ 80BC224 push {r4,r5,lr} ldr r0, _080BC25C @ =0x00004054 bl VarGet lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 5 ldr r0, _080BC260 @ =gSaveBlock1 + 0x1A0A adds r4, r0 ldr r5, _080BC264 @ =gStringVar1 adds r0, r4, 0 bl sub_80BB8A8 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r5, 0 adds r1, r4, 0 bl StringCopyN movs r1, 0xFF strb r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BC25C: .4byte 0x00004054 _080BC260: .4byte gSaveBlock1 + 0x1A0A _080BC264: .4byte gStringVar1 thumb_func_end sub_80BC224 thumb_func_start sub_80BC268 sub_80BC268: @ 80BC268 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080BC288 @ =gSaveBlock1 lsls r1, r0, 2 adds r1, r0 lsls r1, 5 adds r1, r2 ldr r0, _080BC28C @ =0x00001a09 adds r1, r0 ldrb r0, [r1] lsrs r0, 6 cmp r0, 0 bne _080BC290 movs r0, 0 b _080BC292 .align 2, 0 _080BC288: .4byte gSaveBlock1 _080BC28C: .4byte 0x00001a09 _080BC290: movs r0, 0x1 _080BC292: pop {r1} bx r1 thumb_func_end sub_80BC268 thumb_func_start sub_80BC298 sub_80BC298: @ 80BC298 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x1A bl GetMonData adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 movs r1, 0x1B bl GetMonData adds r4, r0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 movs r1, 0x1C bl GetMonData adds r4, r0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 movs r1, 0x1D bl GetMonData adds r4, r0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 movs r1, 0x1E bl GetMonData adds r4, r0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 movs r1, 0x1F bl GetMonData adds r4, r0 lsls r4, 16 lsrs r4, 16 adds r0, r4, 0 movs r1, 0x6 bl __udivsi3 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80BC298 thumb_func_start sub_80BC300 sub_80BC300: @ 80BC300 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC movs r0, 0 mov r10, r0 movs r6, 0 mov r9, r6 _080BC314: movs r4, 0 lsls r3, r6, 2 lsls r2, r6, 1 ldr r7, _080BC424 @ =gPlayerParty adds r1, r6, 0x1 str r1, [sp] adds r1, r3, 0 _080BC322: adds r0, r1, r4 lsls r0, 1 ldr r5, _080BC428 @ =gSaveBlock1 + 0x1A54 adds r0, r5, r0 mov r5, r9 strh r5, [r0] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x3 bls _080BC322 ldr r1, _080BC42C @ =gSaveBlock1 + 0x1A84 adds r0, r1, r2 strh r5, [r0] ldr r5, _080BC430 @ =gSaveBlock1 + 0x1A90 adds r0, r5, r2 mov r1, r9 strh r1, [r0] ldr r2, _080BC434 @ =gSaveBlock1 + 0x1A9C adds r0, r2, r6 mov r5, r9 strb r5, [r0] ldr r1, _080BC438 @ =gSaveBlock1 + 0x1A3C adds r0, r1, r3 mov r2, r9 str r2, [r0] ldr r3, _080BC43C @ =gSaveBlock1 + 0x1AA2 adds r0, r3, r6 strb r2, [r0] movs r0, 0x64 adds r5, r6, 0 muls r5, r0 adds r4, r5, r7 adds r0, r4, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _080BC408 adds r0, r4, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _080BC408 movs r4, 0 mov r0, r10 lsls r0, 2 mov r8, r0 mov r1, r10 lsls r7, r1, 1 adds r1, 0x1 str r1, [sp, 0x4] ldr r2, _080BC424 @ =gPlayerParty _080BC38E: adds r1, r4, 0 adds r1, 0xD adds r0, r5, r2 str r2, [sp, 0x8] bl GetMonData mov r3, r8 adds r1, r3, r4 lsls r1, 1 ldr r3, _080BC428 @ =gSaveBlock1 + 0x1A54 adds r1, r3, r1 strh r0, [r1] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 ldr r2, [sp, 0x8] cmp r4, 0x3 bls _080BC38E movs r0, 0x64 adds r4, r6, 0 muls r4, r0 ldr r0, _080BC424 @ =gPlayerParty adds r4, r0 adds r0, r4, 0 movs r1, 0xB bl GetMonData ldr r5, _080BC42C @ =gSaveBlock1 + 0x1A84 adds r1, r5, r7 strh r0, [r1] adds r0, r4, 0 movs r1, 0xC bl GetMonData ldr r2, _080BC430 @ =gSaveBlock1 + 0x1A90 adds r1, r2, r7 strh r0, [r1] adds r0, r4, 0 movs r1, 0x38 bl GetMonData ldr r1, _080BC434 @ =gSaveBlock1 + 0x1A9C add r1, r10 strb r0, [r1] adds r0, r4, 0 movs r1, 0 bl GetMonData ldr r1, _080BC438 @ =gSaveBlock1 + 0x1A3C add r1, r8 str r0, [r1] adds r0, r4, 0 bl sub_80BC298 ldr r1, _080BC43C @ =gSaveBlock1 + 0x1AA2 add r1, r10 strb r0, [r1] ldr r3, [sp, 0x4] lsls r0, r3, 16 lsrs r0, 16 mov r10, r0 _080BC408: ldr r5, [sp] lsls r0, r5, 16 lsrs r6, r0, 16 cmp r6, 0x5 bls _080BC314 add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BC424: .4byte gPlayerParty _080BC428: .4byte gSaveBlock1 + 0x1A54 _080BC42C: .4byte gSaveBlock1 + 0x1A84 _080BC430: .4byte gSaveBlock1 + 0x1A90 _080BC434: .4byte gSaveBlock1 + 0x1A9C _080BC438: .4byte gSaveBlock1 + 0x1A3C _080BC43C: .4byte gSaveBlock1 + 0x1AA2 thumb_func_end sub_80BC300 thumb_func_start sub_80BC440 sub_80BC440: @ 80BC440 push {r4,r5,lr} ldr r4, _080BC45C @ =gSaveBlock1 ldr r0, _080BC460 @ =0x00001a16 adds r4, r0 ldrh r5, [r4] movs r0, 0 bl sub_80BB594 strh r5, [r4] bl sub_80BC0F8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BC45C: .4byte gSaveBlock1 _080BC460: .4byte 0x00001a16 thumb_func_end sub_80BC440 thumb_func_start sub_80BC464 sub_80BC464: @ 80BC464 push {lr} movs r0, 0x14 bl sav12_xor_increment bl sub_80BC440 pop {r0} bx r0 thumb_func_end sub_80BC464 thumb_func_start sub_80BC474 sub_80BC474: @ 80BC474 push {r4-r7,lr} ldr r0, _080BC4CC @ =gMapHeader ldr r4, [r0, 0x4] movs r6, 0 ldrb r0, [r4, 0x3] cmp r6, r0 bcs _080BC504 ldr r3, _080BC4D0 @ =gSaveBlock1 + 0x1A08 _080BC484: ldr r2, [r4, 0x10] lsls r1, r6, 1 adds r0, r1, r6 lsls r0, 2 adds r2, r0, r2 ldrb r0, [r2, 0x5] adds r7, r1, 0 cmp r0, 0x8 bne _080BC4F8 ldrb r1, [r3] ldr r0, [r2, 0x8] cmp r1, r0 bne _080BC4F8 ldrh r0, [r2] adds r0, 0x7 ldrh r1, [r2, 0x2] adds r1, 0x7 bl MapGridGetMetatileIdAt movs r1, 0 ldr r5, _080BC4D4 @ =gUnknown_083D1358 lsls r0, 16 asrs r2, r0, 16 _080BC4B2: lsls r0, r1, 2 adds r3, r0, r5 ldrh r0, [r3, 0x2] cmp r0, r2 beq _080BC4D8 adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x6 bls _080BC4B2 _080BC4C6: bl DrawWholeMapView b _080BC504 .align 2, 0 _080BC4CC: .4byte gMapHeader _080BC4D0: .4byte gSaveBlock1 + 0x1A08 _080BC4D4: .4byte gUnknown_083D1358 _080BC4D8: ldr r0, [r4, 0x10] adds r1, r7, r6 lsls r1, 2 adds r1, r0 ldrh r0, [r1] adds r0, 0x7 ldrh r1, [r1, 0x2] adds r1, 0x7 ldrh r3, [r3] movs r4, 0xC0 lsls r4, 4 adds r2, r4, 0 orrs r2, r3 bl MapGridSetMetatileIdAt b _080BC4C6 _080BC4F8: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 ldrb r0, [r4, 0x3] cmp r6, r0 bcc _080BC484 _080BC504: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80BC474 thumb_func_start sub_80BC50C sub_80BC50C: @ 80BC50C push {r4,r5,lr} bl sub_80BC474 movs r0, 0x14 bl sav12_xor_increment ldr r4, _080BC530 @ =gSaveBlock1 ldr r0, _080BC534 @ =0x00001a16 adds r4, r0 ldrh r5, [r4] movs r0, 0 bl sub_80BB594 strh r5, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BC530: .4byte gSaveBlock1 _080BC534: .4byte 0x00001a16 thumb_func_end sub_80BC50C thumb_func_start sub_80BC538 sub_80BC538: @ 80BC538 push {r4,r5,lr} movs r5, 0 movs r4, 0x1 _080BC53E: lsls r0, r4, 24 lsrs r0, 24 bl sub_80BC268 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080BC554 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _080BC554: lsls r0, r4, 16 movs r1, 0x80 lsls r1, 9 adds r0, r1 lsrs r4, r0, 16 asrs r0, 16 cmp r0, 0x13 ble _080BC53E adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80BC538 thumb_func_start sub_80BC56C sub_80BC56C: @ 80BC56C push {lr} ldr r0, _080BC58C @ =gUnknown_020387DC ldrb r0, [r0] bl sub_80BC14C lsls r0, 24 lsrs r0, 24 bl sub_80BC268 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x1 bne _080BC594 ldr r0, _080BC590 @ =gScriptResult strh r1, [r0] b _080BC5B2 .align 2, 0 _080BC58C: .4byte gUnknown_020387DC _080BC590: .4byte gScriptResult _080BC594: bl sub_80BC538 lsls r0, 24 lsrs r0, 24 cmp r0, 0x9 bls _080BC5AC ldr r1, _080BC5A8 @ =gScriptResult movs r0, 0x2 b _080BC5B0 .align 2, 0 _080BC5A8: .4byte gScriptResult _080BC5AC: ldr r1, _080BC5B8 @ =gScriptResult movs r0, 0 _080BC5B0: strh r0, [r1] _080BC5B2: pop {r0} bx r0 .align 2, 0 _080BC5B8: .4byte gScriptResult thumb_func_end sub_80BC56C thumb_func_start sub_80BC5BC sub_80BC5BC: @ 80BC5BC push {lr} ldr r0, _080BC5F8 @ =gUnknown_020387DC ldrb r0, [r0] bl sub_80BC14C ldr r2, _080BC5FC @ =gSaveBlock1 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 5 adds r1, r2 ldr r0, _080BC600 @ =0x00001a09 adds r1, r0 ldrb r3, [r1] lsrs r2, r3, 6 movs r0, 0x1 eors r2, r0 lsls r2, 6 movs r0, 0x3F ands r0, r3 orrs r0, r2 strb r0, [r1] movs r0, 0x86 lsls r0, 1 bl FlagSet pop {r0} bx r0 .align 2, 0 _080BC5F8: .4byte gUnknown_020387DC _080BC5FC: .4byte gSaveBlock1 _080BC600: .4byte 0x00001a09 thumb_func_end sub_80BC5BC thumb_func_start sub_80BC604 sub_80BC604: @ 80BC604 push {lr} ldr r0, _080BC614 @ =sub_80FE264 movs r1, 0 bl CreateTask pop {r0} bx r0 .align 2, 0 _080BC614: .4byte sub_80FE264 thumb_func_end sub_80BC604 thumb_func_start sub_80BC618 sub_80BC618: @ 80BC618 push {lr} ldr r0, _080BC628 @ =sub_80BC62C movs r1, 0 bl CreateTask pop {r0} bx r0 .align 2, 0 _080BC628: .4byte sub_80BC62C thumb_func_end sub_80BC618 thumb_func_start sub_80BC62C sub_80BC62C: @ 80BC62C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 bl ScriptContext2_Enable bl sub_80F944C bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080BC688 @ =gTasks + 0x8 adds r4, r0, r1 bl sub_80BC538 lsls r0, 24 lsrs r0, 24 strh r0, [r4] adds r1, r0, 0 cmp r1, 0 beq _080BC694 cmp r1, 0x7 ble _080BC65E movs r0, 0x7 _080BC65E: strh r0, [r4, 0x6] movs r0, 0 strh r0, [r4, 0x2] strh r0, [r4, 0x4] movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect adds r0, r5, 0 bl sub_80BC7D8 ldr r1, _080BC68C @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _080BC690 @ =sub_80BC824 str r1, [r0] b _080BC6A0 .align 2, 0 _080BC688: .4byte gTasks + 0x8 _080BC68C: .4byte gTasks _080BC690: .4byte sub_80BC824 _080BC694: ldr r1, _080BC6A8 @ =gSecretBaseText_NoRegistry ldr r2, _080BC6AC @ =sub_80BCC54 adds r0, r5, 0 movs r3, 0 bl DisplayItemMessageOnField _080BC6A0: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BC6A8: .4byte gSecretBaseText_NoRegistry _080BC6AC: .4byte sub_80BCC54 thumb_func_end sub_80BC62C thumb_func_start sub_80BC6B0 sub_80BC6B0: @ 80BC6B0 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080BC6D8 @ =gTasks + 0x8 adds r1, r0 mov r8, r1 movs r4, 0 movs r6, 0 movs r5, 0x1 movs r2, 0x4 ldrsh r0, [r1, r2] cmp r6, r0 bne _080BC6DC movs r4, 0x1 b _080BC706 .align 2, 0 _080BC6D8: .4byte gTasks + 0x8 _080BC6DC: adds r0, r5, 0 bl sub_80BC268 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080BC6F0 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _080BC6F0: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x13 bhi _080BC706 mov r1, r8 movs r2, 0x4 ldrsh r0, [r1, r2] cmp r4, r0 bne _080BC6DC adds r4, r5, 0 _080BC706: adds r5, r4, 0 cmp r5, 0x13 bhi _080BC75A ldr r7, _080BC7A0 @ =gStringVar1 _080BC70E: adds r0, r5, 0 bl sub_80BC268 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080BC750 adds r0, r7, 0 adds r1, r5, 0 bl sub_80BC190 lsls r3, r6, 1 adds r4, r3, 0x2 lsls r4, 24 lsrs r4, 24 adds r3, 0x3 lsls r3, 24 lsrs r3, 24 movs r0, 0x12 adds r1, r4, 0 movs r2, 0x1C bl MenuFillWindowRectWithBlankTile adds r0, r7, 0 movs r1, 0x12 adds r2, r4, 0 bl MenuPrint adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x8 beq _080BC75A _080BC750: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x13 bls _080BC70E _080BC75A: cmp r6, 0x7 bhi _080BC7A8 lsls r3, r6, 1 adds r4, r3, 0x2 lsls r4, 24 lsrs r4, 24 adds r3, 0x3 lsls r3, 24 lsrs r3, 24 movs r0, 0x12 adds r1, r4, 0 movs r2, 0x1C bl MenuFillWindowRectWithBlankTile ldr r0, _080BC7A4 @ =gUnknownText_Exit movs r1, 0x12 adds r2, r4, 0 bl MenuPrint movs r0, 0x1 bl SetBgTilemapBuffer cmp r6, 0x7 beq _080BC7B2 lsls r1, r6, 25 movs r0, 0x80 lsls r0, 19 adds r1, r0 lsrs r1, 24 movs r0, 0x12 movs r2, 0x1C movs r3, 0x12 bl MenuFillWindowRectWithBlankTile b _080BC7B2 .align 2, 0 _080BC7A0: .4byte gStringVar1 _080BC7A4: .4byte gUnknownText_Exit _080BC7A8: movs r0, 0x1 movs r1, 0xBC movs r2, 0x98 bl sub_80F953C _080BC7B2: mov r1, r8 movs r2, 0x4 ldrsh r0, [r1, r2] cmp r0, 0 bne _080BC7C4 movs r0, 0 bl SetBgTilemapBuffer b _080BC7CE _080BC7C4: movs r0, 0 movs r1, 0xBC movs r2, 0x8 bl sub_80F953C _080BC7CE: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80BC6B0 thumb_func_start sub_80BC7D8 sub_80BC7D8: @ 80BC7D8 push {r4,r5,lr} sub sp, 0x8 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 ldr r0, _080BC820 @ =gTasks + 0x8 adds r4, r0 movs r0, 0x11 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow ldrb r3, [r4, 0x6] adds r3, 0x1 lsls r3, 24 lsrs r3, 24 ldrb r0, [r4, 0x2] str r0, [sp] movs r0, 0xB str r0, [sp, 0x4] movs r0, 0 movs r1, 0x12 movs r2, 0x2 bl InitMenu adds r0, r5, 0 bl sub_80BC6B0 add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BC820: .4byte gTasks + 0x8 thumb_func_end sub_80BC7D8 thumb_func_start sub_80BC824 sub_80BC824: @ 80BC824 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080BC858 @ =gTasks + 0x8 adds r4, r0, r1 ldr r2, _080BC85C @ =gMain ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080BC874 movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, 0 beq _080BC860 movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 b _080BC8B6 .align 2, 0 _080BC858: .4byte gTasks + 0x8 _080BC85C: .4byte gMain _080BC860: movs r2, 0x4 ldrsh r0, [r4, r2] cmp r0, 0 beq _080BC940 movs r0, 0x5 bl PlaySE ldrh r0, [r4, 0x4] subs r0, 0x1 b _080BC8A4 _080BC874: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080BC8C2 movs r0, 0x2 ldrsh r1, [r4, r0] movs r2, 0x6 ldrsh r0, [r4, r2] cmp r1, r0 bne _080BC8AE movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] adds r0, r1 movs r2, 0 ldrsh r1, [r4, r2] cmp r0, r1 beq _080BC940 movs r0, 0x5 bl PlaySE ldrh r0, [r4, 0x4] adds r0, 0x1 _080BC8A4: strh r0, [r4, 0x4] adds r0, r5, 0 bl sub_80BC6B0 b _080BC940 _080BC8AE: movs r0, 0x5 bl PlaySE movs r0, 0x1 _080BC8B6: bl MoveMenuCursor lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x2] b _080BC940 _080BC8C2: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080BC91C movs r0, 0x5 bl PlaySE movs r1, 0x2 ldrsh r0, [r4, r1] movs r2, 0x4 ldrsh r1, [r4, r2] adds r0, r1 movs r2, 0 ldrsh r1, [r4, r2] cmp r0, r1 bne _080BC8FC bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect adds r0, r5, 0 bl sub_80BCC54 b _080BC940 _080BC8FC: bl sub_8072DEC ldrb r0, [r4, 0x4] ldrb r1, [r4, 0x2] adds r0, r1 lsls r0, 24 lsrs r0, 24 bl sub_80BC948 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x8] adds r0, r5, 0 bl sub_80BC980 b _080BC940 _080BC91C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080BC940 movs r0, 0x5 bl PlaySE bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect adds r0, r6, 0 bl sub_80BCC54 _080BC940: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80BC824 thumb_func_start sub_80BC948 sub_80BC948: @ 80BC948 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 movs r4, 0x1 _080BC952: adds r0, r4, 0 bl sub_80BC268 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080BC96E cmp r6, r5 bne _080BC968 adds r0, r4, 0 b _080BC97A _080BC968: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _080BC96E: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x13 bls _080BC952 movs r0, 0 _080BC97A: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80BC948 thumb_func_start sub_80BC980 sub_80BC980: @ 80BC980 push {r4,lr} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 bl sub_80F996C movs r0, 0x1 bl sub_80F996C movs r0, 0x1 movs r1, 0 movs r2, 0xC movs r3, 0x5 bl MenuDrawTextWindow ldr r3, _080BC9D8 @ =gUnknown_083D13D4 movs r0, 0x2 movs r1, 0x1 movs r2, 0x2 bl PrintMenuItems movs r0, 0 str r0, [sp] movs r0, 0xA str r0, [sp, 0x4] movs r0, 0 movs r1, 0x2 movs r2, 0x1 movs r3, 0x2 bl InitMenu ldr r1, _080BC9DC @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080BC9E0 @ =sub_80BC9E4 str r1, [r0] add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _080BC9D8: .4byte gUnknown_083D13D4 _080BC9DC: .4byte gTasks _080BC9E0: .4byte sub_80BC9E4 thumb_func_end sub_80BC980 thumb_func_start sub_80BC9E4 sub_80BC9E4: @ 80BC9E4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 adds r4, r5, 0 ldr r2, _080BCA14 @ =gMain ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080BCA18 bl GetMenuCursorPos lsls r0, 24 cmp r0, 0 beq _080BCA7C movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 bl MoveMenuCursor b _080BCA7C .align 2, 0 _080BCA14: .4byte gMain _080BCA18: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080BCA3A bl GetMenuCursorPos lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080BCA7C movs r0, 0x5 bl PlaySE movs r0, 0x1 bl MoveMenuCursor b _080BCA7C _080BCA3A: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080BCA68 movs r0, 0x5 bl PlaySE ldr r4, _080BCA64 @ =gUnknown_083D13D4 bl GetMenuCursorPos lsls r0, 24 lsrs r0, 21 adds r4, 0x4 adds r0, r4 ldr r1, [r0] adds r0, r5, 0 bl _call_via_r1 b _080BCA7C .align 2, 0 _080BCA64: .4byte gUnknown_083D13D4 _080BCA68: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080BCA7C movs r0, 0x5 bl PlaySE adds r0, r4, 0 bl sub_80BCBF8 _080BCA7C: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80BC9E4 thumb_func_start sub_80BCA84 sub_80BCA84: @ 80BCA84 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 ldr r0, _080BCAD8 @ =gTasks + 0x8 adds r4, r0 movs r0, 0 bl SetBgTilemapBuffer movs r0, 0x1 bl SetBgTilemapBuffer bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect ldr r0, _080BCADC @ =gStringVar1 ldrb r1, [r4, 0x8] bl sub_80BC190 ldr r4, _080BCAE0 @ =gStringVar4 ldr r1, _080BCAE4 @ =gOtherText_OkayToDeleteFromRegistry adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, _080BCAE8 @ =sub_80BCAEC adds r0, r5, 0 adds r1, r4, 0 movs r3, 0 bl DisplayItemMessageOnField pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BCAD8: .4byte gTasks + 0x8 _080BCADC: .4byte gStringVar1 _080BCAE0: .4byte gStringVar4 _080BCAE4: .4byte gOtherText_OkayToDeleteFromRegistry _080BCAE8: .4byte sub_80BCAEC thumb_func_end sub_80BCA84 thumb_func_start sub_80BCAEC sub_80BCAEC: @ 80BCAEC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x14 movs r1, 0x8 movs r2, 0x1 bl DisplayYesNoMenu ldr r1, _080BCB0C @ =gUnknown_083D13E4 adds r0, r4, 0 bl sub_80F914C pop {r4} pop {r0} bx r0 .align 2, 0 _080BCB0C: .4byte gUnknown_083D13E4 thumb_func_end sub_80BCAEC thumb_func_start sub_80BCB10 sub_80BCB10: @ 80BCB10 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 lsls r0, r5, 2 adds r0, r5 lsls r6, r0, 3 ldr r7, _080BCB80 @ =gTasks + 0x8 adds r4, r6, r7 movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect ldr r2, _080BCB84 @ =gSaveBlock1 movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 5 adds r0, r2 ldr r1, _080BCB88 @ =0x00001a09 adds r0, r1 ldrb r2, [r0] movs r1, 0x3F ands r1, r2 strb r1, [r0] ldrh r0, [r4] subs r0, 0x1 strh r0, [r4] ldrh r1, [r4, 0x4] movs r2, 0x4 ldrsh r0, [r4, r2] cmp r0, 0 ble _080BCB5C subs r0, r1, 0x1 strh r0, [r4, 0x4] _080BCB5C: movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x7 bgt _080BCB6A ldrh r0, [r4, 0x6] subs r0, 0x1 strh r0, [r4, 0x6] _080BCB6A: adds r0, r5, 0 bl sub_80BC7D8 adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 ldr r1, _080BCB8C @ =sub_80BC824 str r1, [r0] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BCB80: .4byte gTasks + 0x8 _080BCB84: .4byte gSaveBlock1 _080BCB88: .4byte 0x00001a09 _080BCB8C: .4byte sub_80BC824 thumb_func_end sub_80BCB10 thumb_func_start sub_80BCB90 sub_80BCB90: @ 80BCB90 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x14 movs r1, 0x8 movs r2, 0x1A movs r3, 0xD bl MenuZeroFillWindowRect ldr r1, _080BCBB8 @ =gOtherText_RegisteredDataDeleted ldr r2, _080BCBBC @ =sub_80BCB10 adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField pop {r4} pop {r0} bx r0 .align 2, 0 _080BCBB8: .4byte gOtherText_RegisteredDataDeleted _080BCBBC: .4byte sub_80BCB10 thumb_func_end sub_80BCB90 thumb_func_start sub_80BCBC0 sub_80BCBC0: @ 80BCBC0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect adds r0, r4, 0 bl sub_80BC7D8 ldr r1, _080BCBF0 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080BCBF4 @ =sub_80BC824 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080BCBF0: .4byte gTasks _080BCBF4: .4byte sub_80BC824 thumb_func_end sub_80BCBC0 thumb_func_start sub_80BCBF8 sub_80BCBF8: @ 80BCBF8 push {r4,r5,lr} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r5, _080BCC4C @ =gTasks + 0x8 adds r0, r4, r5 ldrb r3, [r0, 0x6] adds r3, 0x1 lsls r3, 24 lsrs r3, 24 ldrb r0, [r0, 0x2] str r0, [sp] movs r0, 0xB str r0, [sp, 0x4] movs r0, 0 movs r1, 0x12 movs r2, 0x2 bl InitMenu movs r0, 0x1 movs r1, 0 movs r2, 0xC movs r3, 0x5 bl MenuZeroFillWindowRect movs r0, 0 bl sub_80F98DC movs r0, 0x1 bl sub_80F98DC subs r5, 0x8 adds r4, r5 ldr r0, _080BCC50 @ =sub_80BC824 str r0, [r4] add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BCC4C: .4byte gTasks + 0x8 _080BCC50: .4byte sub_80BC824 thumb_func_end sub_80BCBF8 thumb_func_start sub_80BCC54 sub_80BCC54: @ 80BCC54 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080BCC84 @ =0x00004054 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 bl BuyMenuFreeMemory movs r0, 0 bl SetBgTilemapBuffer movs r0, 0x1 bl SetBgTilemapBuffer cmp r4, 0 bne _080BCC8C ldr r0, _080BCC88 @ =gUnknown_0815F399 bl ScriptContext1_SetupScript b _080BCC92 .align 2, 0 _080BCC84: .4byte 0x00004054 _080BCC88: .4byte gUnknown_0815F399 _080BCC8C: ldr r0, _080BCCA0 @ =gUnknown_0815F49A bl ScriptContext1_SetupScript _080BCC92: adds r0, r5, 0 bl DestroyTask pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BCCA0: .4byte gUnknown_0815F49A thumb_func_end sub_80BCC54 thumb_func_start sub_80BCCA4 sub_80BCCA4: @ 80BCCA4 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080BCCDC @ =gSaveBlock1 lsls r4, r0, 2 adds r4, r0 lsls r4, 5 adds r4, r1 ldr r1, _080BCCE0 @ =0x00001a11 adds r0, r4, r1 ldrb r0, [r0] movs r1, 0x5 bl __umodsi3 ldr r1, _080BCCE4 @ =0x00001a09 adds r4, r1 ldrb r2, [r4] lsls r2, 27 lsrs r2, 31 lsls r1, r2, 2 adds r1, r2 adds r0, r1 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _080BCCDC: .4byte gSaveBlock1 _080BCCE0: .4byte 0x00001a11 _080BCCE4: .4byte 0x00001a09 thumb_func_end sub_80BCCA4 thumb_func_start sub_80BCCE8 sub_80BCCE8: @ 80BCCE8 push {lr} ldr r0, _080BCD08 @ =0x00004054 bl VarGet lsls r0, 24 lsrs r0, 24 bl sub_80BCCA4 lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0 bne _080BCD10 ldr r0, _080BCD0C @ =UnknownString_81A1BB2 b _080BCD72 .align 2, 0 _080BCD08: .4byte 0x00004054 _080BCD0C: .4byte UnknownString_81A1BB2 _080BCD10: cmp r0, 0x1 bne _080BCD1C ldr r0, _080BCD18 @ =UnknownString_81A1F67 b _080BCD72 .align 2, 0 _080BCD18: .4byte UnknownString_81A1F67 _080BCD1C: cmp r0, 0x2 bne _080BCD28 ldr r0, _080BCD24 @ =UnknownString_81A2254 b _080BCD72 .align 2, 0 _080BCD24: .4byte UnknownString_81A2254 _080BCD28: cmp r0, 0x3 bne _080BCD34 ldr r0, _080BCD30 @ =UnknownString_81A25C3 b _080BCD72 .align 2, 0 _080BCD30: .4byte UnknownString_81A25C3 _080BCD34: cmp r0, 0x4 bne _080BCD40 ldr r0, _080BCD3C @ =UnknownString_81A2925 b _080BCD72 .align 2, 0 _080BCD3C: .4byte UnknownString_81A2925 _080BCD40: cmp r0, 0x5 bne _080BCD4C ldr r0, _080BCD48 @ =UnknownString_81A1D74 b _080BCD72 .align 2, 0 _080BCD48: .4byte UnknownString_81A1D74 _080BCD4C: cmp r0, 0x6 bne _080BCD58 ldr r0, _080BCD54 @ =UnknownString_81A20C9 b _080BCD72 .align 2, 0 _080BCD54: .4byte UnknownString_81A20C9 _080BCD58: cmp r0, 0x7 bne _080BCD64 ldr r0, _080BCD60 @ =UnknownString_81A2439 b _080BCD72 .align 2, 0 _080BCD60: .4byte UnknownString_81A2439 _080BCD64: cmp r1, 0x8 beq _080BCD70 ldr r0, _080BCD6C @ =UnknownString_81A2B2A b _080BCD72 .align 2, 0 _080BCD6C: .4byte UnknownString_81A2B2A _080BCD70: ldr r0, _080BCD78 @ =UnknownString_81A2754 _080BCD72: pop {r1} bx r1 .align 2, 0 _080BCD78: .4byte UnknownString_81A2754 thumb_func_end sub_80BCCE8 thumb_func_start unref_sub_80BCD7C unref_sub_80BCD7C: @ 80BCD7C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 movs r5, 0 ldr r7, _080BCDFC @ =gSaveBlock1 lsls r1, r0, 2 adds r1, r0 lsls r6, r1, 5 ldr r0, _080BCE00 @ =0x00001a3c adds r0, r7 mov r10, r0 ldr r1, _080BCE04 @ =0x00001a54 adds r1, r7 mov r9, r1 ldr r2, _080BCE08 @ =0x00001a84 adds r2, r7 mov r8, r2 ldr r0, _080BCE0C @ =0x00000115 mov r12, r0 _080BCDAA: lsls r4, r5, 2 adds r0, r4, r6 add r0, r10 adds r3, r5, 0x1 str r3, [r0] lsls r0, r5, 3 adds r0, r6 add r0, r9 strh r3, [r0] lsls r1, r5, 1 adds r1, r6 mov r2, r8 adds r0, r1, r2 mov r2, r12 strh r2, [r0] ldr r2, _080BCE10 @ =0x00001a90 adds r0, r7, r2 adds r1, r0 strh r3, [r1] adds r2, r5, r6 ldr r1, _080BCE14 @ =0x00001a9c adds r0, r7, r1 adds r0, r2, r0 adds r1, r5, 0x5 strb r1, [r0] ldr r1, _080BCE18 @ =0x00001aa2 adds r0, r7, r1 adds r2, r0 adds r4, r5 strb r4, [r2] lsls r3, 16 lsrs r5, r3, 16 cmp r5, 0 beq _080BCDAA pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BCDFC: .4byte gSaveBlock1 _080BCE00: .4byte 0x00001a3c _080BCE04: .4byte 0x00001a54 _080BCE08: .4byte 0x00001a84 _080BCE0C: .4byte 0x00000115 _080BCE10: .4byte 0x00001a90 _080BCE14: .4byte 0x00001a9c _080BCE18: .4byte 0x00001aa2 thumb_func_end unref_sub_80BCD7C thumb_func_start sub_80BCE1C sub_80BCE1C: @ 80BCE1C push {r4,lr} ldr r0, _080BCE44 @ =0x00004054 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 movs r0, 0x1 bl sub_810FB10 lsls r0, r4, 2 adds r0, r4 lsls r0, 5 ldr r1, _080BCE48 @ =gSaveBlock1 + 0x1A08 adds r0, r1 bl CreateSecretBaseEnemyParty pop {r4} pop {r0} bx r0 .align 2, 0 _080BCE44: .4byte 0x00004054 _080BCE48: .4byte gSaveBlock1 + 0x1A08 thumb_func_end sub_80BCE1C thumb_func_start sub_80BCE4C sub_80BCE4C: @ 80BCE4C push {lr} ldr r0, _080BCE80 @ =0x00004054 bl VarGet ldr r2, _080BCE84 @ =gSaveBlock1 lsls r0, 16 lsrs r0, 16 lsls r1, r0, 2 adds r1, r0 lsls r1, 5 adds r1, r2 ldr r0, _080BCE88 @ =gScriptResult ldrb r0, [r0] ldr r2, _080BCE8C @ =0x00001a09 adds r1, r2 movs r2, 0x1 ands r2, r0 lsls r2, 5 ldrb r3, [r1] movs r0, 0x21 negs r0, r0 ands r0, r3 orrs r0, r2 strb r0, [r1] pop {r0} bx r0 .align 2, 0 _080BCE80: .4byte 0x00004054 _080BCE84: .4byte gSaveBlock1 _080BCE88: .4byte gScriptResult _080BCE8C: .4byte 0x00001a09 thumb_func_end sub_80BCE4C thumb_func_start sub_80BCE90 sub_80BCE90: @ 80BCE90 push {r4-r7,lr} ldr r0, _080BCF04 @ =0x00004054 bl VarGet lsls r0, 16 lsrs r5, r0, 16 ldr r0, _080BCF08 @ =0x000008c2 bl FlagGet lsls r0, 24 cmp r0, 0 bne _080BCED4 movs r3, 0 ldr r7, _080BCF0C @ =gSaveBlock1 ldr r4, _080BCF10 @ =0x00001a09 movs r6, 0x21 negs r6, r6 _080BCEB2: lsls r1, r3, 2 adds r1, r3 lsls r1, 5 adds r1, r7 adds r1, r4 ldrb r2, [r1] adds r0, r6, 0 ands r0, r2 strb r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x13 bls _080BCEB2 ldr r0, _080BCF08 @ =0x000008c2 bl FlagSet _080BCED4: ldr r4, _080BCF14 @ =gUnknown_0202E8CC lsls r0, r5, 24 lsrs r0, 24 bl sub_80BCCA4 lsls r0, 24 lsrs r0, 24 strh r0, [r4] ldr r2, _080BCF18 @ =gScriptResult ldr r1, _080BCF0C @ =gSaveBlock1 lsls r0, r5, 2 adds r0, r5 lsls r0, 5 adds r0, r1 ldr r1, _080BCF10 @ =0x00001a09 adds r0, r1 ldrb r0, [r0] lsls r0, 26 lsrs r0, 31 strh r0, [r2] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BCF04: .4byte 0x00004054 _080BCF08: .4byte 0x000008c2 _080BCF0C: .4byte gSaveBlock1 _080BCF10: .4byte 0x00001a09 _080BCF14: .4byte gUnknown_0202E8CC _080BCF18: .4byte gScriptResult thumb_func_end sub_80BCE90 thumb_func_start sub_80BCF1C sub_80BCF1C: @ 80BCF1C push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080BCF40 @ =gTasks + 0x8 adds r4, r1, r0 movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080BCF54 cmp r0, 0x1 bgt _080BCF44 cmp r0, 0 beq _080BCF4A b _080BD02C .align 2, 0 _080BCF40: .4byte gTasks + 0x8 _080BCF44: cmp r0, 0x2 beq _080BD01C b _080BD02C _080BCF4A: adds r0, r4, 0x4 adds r1, r4, 0x6 bl PlayerGetDestCoords b _080BD028 _080BCF54: mov r5, sp adds r5, 0x2 mov r0, sp adds r1, r5, 0 bl PlayerGetDestCoords mov r0, sp ldrh r2, [r0] movs r3, 0 ldrsh r1, [r0, r3] movs r3, 0x4 ldrsh r0, [r4, r3] cmp r1, r0 bne _080BCF7C movs r0, 0 ldrsh r1, [r5, r0] movs r3, 0x6 ldrsh r0, [r4, r3] cmp r1, r0 beq _080BD02C _080BCF7C: strh r2, [r4, 0x4] ldrh r0, [r5] strh r0, [r4, 0x6] mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r5, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_8057350 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080BCFA8 bl sub_80C6C90 b _080BD02C _080BCFA8: adds r0, r4, 0 bl sub_8057314 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080BCFD8 mov r0, sp movs r3, 0 ldrsh r0, [r0, r3] movs r2, 0 ldrsh r1, [r5, r2] bl MapGridGetMetatileIdAt lsls r0, 16 asrs r0, 16 mov r1, sp movs r3, 0 ldrsh r1, [r1, r3] movs r3, 0 ldrsh r2, [r5, r3] bl sub_80C68A4 b _080BD02C _080BCFD8: adds r0, r4, 0 bl sub_8057328 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080BCFF6 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r5, r2] bl sub_80C6A54 b _080BD02C _080BCFF6: adds r0, r4, 0 bl sub_805733C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080BD02C mov r0, sp movs r3, 0 ldrsh r0, [r0, r3] movs r2, 0 ldrsh r1, [r5, r2] bl MapGridGetMetatileIdAt lsls r0, 16 asrs r0, 16 bl sub_80C6C30 b _080BD02C _080BD01C: ldrb r0, [r4, 0x8] bl FieldEffectActiveListContains lsls r0, 24 cmp r0, 0 bne _080BD02C _080BD028: movs r0, 0x1 strh r0, [r4, 0x2] _080BD02C: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80BCF1C thumb_func_start sub_80BD034 sub_80BD034: @ 80BD034 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080BD064 @ =gSaveBlock1 lsls r4, r0, 2 adds r4, r0 lsls r4, 5 adds r4, r2 ldr r2, _080BD068 @ =0x00001a08 adds r0, r4, r2 movs r2, 0xA0 bl memcpy ldr r0, _080BD06C @ =0x00001a09 adds r4, r0 ldrb r1, [r4] movs r0, 0x3F ands r0, r1 movs r1, 0x80 orrs r0, r1 strb r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080BD064: .4byte gSaveBlock1 _080BD068: .4byte 0x00001a08 _080BD06C: .4byte 0x00001a09 thumb_func_end sub_80BD034 thumb_func_start sub_80BD070 sub_80BD070: @ 80BD070 push {r4,lr} movs r2, 0 adds r4, r0, 0 adds r4, 0x9 adds r3, r1, 0 adds r3, 0x9 _080BD07C: adds r0, r4, r2 adds r1, r3, r2 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 beq _080BD08C movs r0, 0 b _080BD098 _080BD08C: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _080BD07C movs r0, 0x1 _080BD098: pop {r4} pop {r1} bx r1 thumb_func_end sub_80BD070 thumb_func_start sub_80BD0A0 sub_80BD0A0: @ 80BD0A0 push {r4-r6,lr} adds r6, r0, 0 adds r5, r1, 0 movs r3, 0 ldrb r0, [r6, 0x2] cmp r0, 0xFF bne _080BD0B4 ldrb r0, [r5, 0x2] cmp r0, 0xFF beq _080BD0E2 _080BD0B4: adds r2, r6, 0x2 adds r0, r2, r3 adds r4, r5, 0x2 adds r1, r4, r3 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 beq _080BD0C8 movs r0, 0 b _080BD0E4 _080BD0C8: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x6 bhi _080BD0E2 adds r0, r2, r3 ldrb r0, [r0] cmp r0, 0xFF bne _080BD0B4 adds r0, r4, r3 ldrb r0, [r0] cmp r0, 0xFF bne _080BD0B4 _080BD0E2: movs r0, 0x1 _080BD0E4: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80BD0A0 thumb_func_start sub_80BD0EC sub_80BD0EC: @ 80BD0EC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r2, [r4, 0x1] movs r0, 0x10 adds r1, r0, 0 ands r1, r2 ldrb r2, [r5, 0x1] ands r0, r2 cmp r1, r0 bne _080BD122 adds r0, r4, 0 adds r1, r5, 0 bl sub_80BD070 lsls r0, 24 cmp r0, 0 beq _080BD122 adds r0, r4, 0 adds r1, r5, 0 bl sub_80BD0A0 lsls r0, 24 cmp r0, 0 beq _080BD122 movs r0, 0x1 b _080BD124 _080BD122: movs r0, 0 _080BD124: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80BD0EC thumb_func_start sub_80BD12C sub_80BD12C: @ 80BD12C push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 movs r1, 0 ldr r4, _080BD150 @ =gSaveBlock1 ldr r3, _080BD154 @ =0x00001a08 _080BD138: lsls r0, r1, 16 asrs r1, r0, 16 lsls r0, r1, 2 adds r0, r1 lsls r0, 5 adds r0, r4 adds r0, r3 ldrb r0, [r0] cmp r0, r2 bne _080BD158 adds r0, r1, 0 b _080BD168 .align 2, 0 _080BD150: .4byte gSaveBlock1 _080BD154: .4byte 0x00001a08 _080BD158: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 asrs r0, 16 cmp r0, 0x13 ble _080BD138 movs r0, 0x1 negs r0, r0 _080BD168: pop {r4} pop {r1} bx r1 thumb_func_end sub_80BD12C thumb_func_start sub_80BD170 sub_80BD170: @ 80BD170 push {r4,lr} movs r2, 0x1 ldr r4, _080BD194 @ =gSaveBlock1 ldr r3, _080BD198 @ =0x00001a08 _080BD178: lsls r0, r2, 16 asrs r1, r0, 16 lsls r0, r1, 2 adds r0, r1 lsls r0, 5 adds r0, r4 adds r0, r3 ldrb r0, [r0] cmp r0, 0 bne _080BD19C lsls r0, r2, 24 lsrs r0, 24 b _080BD1AA .align 2, 0 _080BD194: .4byte gSaveBlock1 _080BD198: .4byte 0x00001a08 _080BD19C: adds r0, r1, 0x1 lsls r0, 16 lsrs r2, r0, 16 asrs r0, 16 cmp r0, 0x13 ble _080BD178 movs r0, 0 _080BD1AA: pop {r4} pop {r1} bx r1 thumb_func_end sub_80BD170 thumb_func_start sub_80BD1B0 sub_80BD1B0: @ 80BD1B0 push {r4,lr} movs r3, 0x1 ldr r4, _080BD1DC @ =gSaveBlock1 _080BD1B6: lsls r2, r3, 16 asrs r1, r2, 16 lsls r0, r1, 2 adds r0, r1 lsls r0, 5 adds r0, r4 ldr r1, _080BD1E0 @ =0x00001a09 adds r0, r1 ldrb r1, [r0] lsrs r0, r1, 6 cmp r0, 0 bne _080BD1E4 lsls r0, r1, 28 cmp r0, 0 bne _080BD1E4 lsls r0, r3, 24 lsrs r0, 24 b _080BD1F4 .align 2, 0 _080BD1DC: .4byte gSaveBlock1 _080BD1E0: .4byte 0x00001a09 _080BD1E4: movs r1, 0x80 lsls r1, 9 adds r0, r2, r1 lsrs r3, r0, 16 asrs r0, 16 cmp r0, 0x13 ble _080BD1B6 movs r0, 0 _080BD1F4: pop {r4} pop {r1} bx r1 thumb_func_end sub_80BD1B0 thumb_func_start sub_80BD1FC sub_80BD1FC: @ 80BD1FC push {r4,r5,lr} adds r5, r0, 0 ldrb r0, [r5] cmp r0, 0 beq _080BD278 ldrb r0, [r5] bl sub_80BD12C lsls r0, 16 lsrs r4, r0, 16 asrs r2, r0, 16 cmp r2, 0 beq _080BD278 movs r0, 0x1 negs r0, r0 cmp r2, r0 beq _080BD254 ldr r0, _080BD24C @ =gSaveBlock1 lsls r1, r2, 2 adds r1, r2 lsls r1, 5 adds r1, r0 ldr r0, _080BD250 @ =0x00001a09 adds r1, r0 ldrb r1, [r1] lsls r0, r1, 28 lsrs r0, 28 cmp r0, 0x1 beq _080BD278 lsrs r0, r1, 6 cmp r0, 0x2 bne _080BD246 ldrb r1, [r5, 0x1] movs r0, 0xF ands r0, r1 cmp r0, 0x1 bne _080BD278 _080BD246: lsls r4, 24 lsrs r4, 24 b _080BD26C .align 2, 0 _080BD24C: .4byte gSaveBlock1 _080BD250: .4byte 0x00001a09 _080BD254: bl sub_80BD170 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080BD26C bl sub_80BD1B0 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _080BD278 _080BD26C: adds r0, r4, 0 adds r1, r5, 0 bl sub_80BD034 adds r0, r4, 0 b _080BD27A _080BD278: movs r0, 0 _080BD27A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80BD1FC thumb_func_start sub_80BD280 sub_80BD280: @ 80BD280 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xA0 ldr r0, _080BD324 @ =gSaveBlock1 + 0x1A08 mov r8, r0 movs r2, 0x1 _080BD290: adds r1, r2, 0x1 lsls r0, r1, 24 lsrs r5, r0, 24 mov r9, r1 cmp r5, 0x13 bhi _080BD30C lsls r0, r2, 2 adds r0, r2 lsls r0, 5 mov r1, r8 adds r6, r0, r1 movs r7, 0xC0 _080BD2A8: ldrb r0, [r6, 0x1] adds r3, r7, 0 ands r3, r0 cmp r3, 0 bne _080BD2C6 lsls r2, r5, 2 adds r0, r2, r5 lsls r0, 5 add r0, r8 ldrb r1, [r0, 0x1] adds r0, r7, 0 ands r0, r1 adds r4, r2, 0 cmp r0, 0x40 beq _080BD2DE _080BD2C6: cmp r3, 0x80 bne _080BD302 lsls r2, r5, 2 adds r0, r2, r5 lsls r0, 5 add r0, r8 ldrb r1, [r0, 0x1] adds r0, r7, 0 ands r0, r1 adds r4, r2, 0 cmp r0, 0x80 beq _080BD302 _080BD2DE: mov r0, sp adds r1, r6, 0 movs r2, 0xA0 bl memcpy adds r4, r5 lsls r4, 5 add r4, r8 adds r0, r6, 0 adds r1, r4, 0 movs r2, 0xA0 bl memcpy adds r0, r4, 0 mov r1, sp movs r2, 0xA0 bl memcpy _080BD302: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x13 bls _080BD2A8 _080BD30C: mov r1, r9 lsls r0, r1, 24 lsrs r2, r0, 24 cmp r2, 0x12 bls _080BD290 add sp, 0xA0 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BD324: .4byte gSaveBlock1 + 0x1A08 thumb_func_end sub_80BD280 thumb_func_start sub_80BD328 sub_80BD328: @ 80BD328 push {r4-r6,lr} adds r6, r0, 0 lsls r1, 24 lsrs r5, r1, 24 movs r4, 0x1 _080BD332: lsls r0, r4, 2 adds r0, r4 lsls r0, 5 adds r1, r0, r6 ldrb r0, [r1, 0x1] lsrs r0, 6 cmp r0, r5 bne _080BD348 adds r0, r1, 0 bl sub_80BD1FC _080BD348: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x13 bls _080BD332 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80BD328 thumb_func_start sub_80BD358 sub_80BD358: @ 80BD358 push {r4-r6,lr} adds r5, r0, 0 ldrb r0, [r5] cmp r0, 0 beq _080BD372 ldrb r0, [r5, 0x1] lsls r0, 27 ldr r1, _080BD378 @ =gSaveBlock2 lsrs r0, 31 adds r4, r1, 0 ldrb r1, [r4, 0x8] cmp r0, r1 beq _080BD37C _080BD372: movs r0, 0 b _080BD3D4 .align 2, 0 _080BD378: .4byte gSaveBlock2 _080BD37C: movs r2, 0 adds r3, r5, 0 adds r3, 0x9 adds r6, r4, 0 adds r6, 0xA _080BD386: adds r0, r3, r2 adds r1, r2, r6 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bne _080BD372 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _080BD386 movs r2, 0 ldrb r0, [r5, 0x2] cmp r0, 0xFF bne _080BD3AA ldrb r0, [r4] cmp r0, 0xFF beq _080BD3D2 _080BD3AA: adds r3, r5, 0x2 adds r0, r3, r2 adds r1, r2, r4 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bne _080BD372 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x6 bhi _080BD3D2 adds r0, r3, r2 ldrb r0, [r0] cmp r0, 0xFF bne _080BD3AA adds r0, r2, r4 ldrb r0, [r0] cmp r0, 0xFF bne _080BD3AA _080BD3D2: movs r0, 0x1 _080BD3D4: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80BD358 thumb_func_start sub_80BD3DC sub_80BD3DC: @ 80BD3DC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r10, r0 mov r9, r1 mov r8, r2 movs r5, 0 movs r6, 0 _080BD3F0: movs r0, 0x1 ands r0, r5 cmp r0, 0 bne _080BD41A lsls r0, r6, 2 adds r0, r6 lsls r0, 5 mov r1, r10 adds r4, r1, r0 adds r0, r4, 0 bl sub_80BD358 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080BD41A adds r0, r4, 0 bl sub_80BB4AC movs r0, 0x1 orrs r5, r0 _080BD41A: movs r7, 0x2 movs r0, 0x2 ands r0, r5 cmp r0, 0 bne _080BD448 lsls r0, r6, 2 adds r0, r6 lsls r0, 5 mov r1, r9 adds r4, r1, r0 adds r0, r4, 0 bl sub_80BD358 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080BD448 adds r0, r4, 0 bl sub_80BB4AC orrs r5, r7 lsls r0, r5, 24 lsrs r5, r0, 24 _080BD448: movs r7, 0x4 movs r0, 0x4 ands r0, r5 cmp r0, 0 bne _080BD476 lsls r0, r6, 2 adds r0, r6 lsls r0, 5 mov r1, r8 adds r4, r1, r0 adds r0, r4, 0 bl sub_80BD358 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080BD476 adds r0, r4, 0 bl sub_80BB4AC orrs r5, r7 lsls r0, r5, 24 lsrs r5, r0, 24 _080BD476: cmp r5, 0x7 beq _080BD484 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x13 bls _080BD3F0 _080BD484: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80BD3DC thumb_func_start sub_80BD494 sub_80BD494: @ 80BD494 push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 mov r8, r1 lsls r2, 24 lsrs r7, r2, 24 movs r5, 0 _080BD4A4: lsls r0, r5, 2 adds r0, r5 lsls r0, 5 mov r1, r8 adds r4, r0, r1 ldrb r0, [r4] cmp r0, 0 beq _080BD4FE adds r0, r6, 0 adds r1, r4, 0 bl sub_80BD0EC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080BD4FE cmp r7, 0 bne _080BD4D0 adds r0, r4, 0 bl sub_80BB4AC b _080BD508 _080BD4D0: ldrh r0, [r6, 0xE] ldrh r3, [r4, 0xE] cmp r0, r3 bls _080BD4E0 adds r0, r4, 0 bl sub_80BB4AC b _080BD508 _080BD4E0: ldrb r0, [r6, 0x1] lsls r0, 28 lsrs r0, 28 ldrb r1, [r4, 0x1] movs r3, 0x10 negs r3, r3 adds r2, r3, 0 ands r1, r2 orrs r1, r0 strb r1, [r4, 0x1] adds r0, r6, 0 bl sub_80BB4AC movs r0, 0x1 b _080BD50A _080BD4FE: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x13 bls _080BD4A4 _080BD508: movs r0, 0 _080BD50A: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80BD494 thumb_func_start sub_80BD514 sub_80BD514: @ 80BD514 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r9, r0 adds r7, r1, 0 mov r8, r2 adds r6, r3, 0 movs r5, 0x1 _080BD526: lsls r0, r5, 2 adds r0, r5 lsls r0, 5 mov r1, r9 adds r4, r0, r1 ldrb r0, [r4] cmp r0, 0 beq _080BD578 ldrb r1, [r4, 0x1] movs r0, 0xC0 ands r0, r1 cmp r0, 0x40 bne _080BD54E movs r2, 0x10 negs r2, r2 adds r0, r2, 0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4, 0x1] _080BD54E: adds r0, r4, 0 adds r1, r7, 0 adds r2, r5, 0 bl sub_80BD494 lsls r0, 24 cmp r0, 0 bne _080BD578 adds r0, r4, 0 mov r1, r8 adds r2, r5, 0 bl sub_80BD494 lsls r0, 24 cmp r0, 0 bne _080BD578 adds r0, r4, 0 adds r1, r6, 0 adds r2, r5, 0 bl sub_80BD494 _080BD578: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x13 bls _080BD526 movs r5, 0 _080BD584: lsls r0, r5, 2 adds r0, r5 lsls r0, 5 adds r4, r0, r7 ldrb r0, [r4] cmp r0, 0 beq _080BD5B8 ldrb r0, [r4, 0x1] movs r2, 0x21 negs r2, r2 adds r1, r2, 0 ands r0, r1 strb r0, [r4, 0x1] adds r0, r4, 0 mov r1, r8 adds r2, r5, 0 bl sub_80BD494 lsls r0, 24 cmp r0, 0 bne _080BD5B8 adds r0, r4, 0 adds r1, r6, 0 adds r2, r5, 0 bl sub_80BD494 _080BD5B8: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x13 bls _080BD584 movs r5, 0 movs r0, 0x21 negs r0, r0 adds r7, r0, 0 _080BD5CA: lsls r0, r5, 2 adds r0, r5 lsls r4, r0, 5 mov r2, r8 adds r1, r4, r2 ldrb r0, [r1] cmp r0, 0 beq _080BD5EA ldrb r0, [r1, 0x1] ands r0, r7 strb r0, [r1, 0x1] adds r0, r1, 0 adds r1, r6, 0 adds r2, r5, 0 bl sub_80BD494 _080BD5EA: adds r1, r4, r6 ldrb r0, [r1] cmp r0, 0 beq _080BD5F8 ldrb r0, [r1, 0x1] ands r0, r7 strb r0, [r1, 0x1] _080BD5F8: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x13 bls _080BD5CA pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80BD514 thumb_func_start sub_80BD610 sub_80BD610: @ 80BD610 push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 bl sub_80BD3DC ldr r0, _080BD670 @ =gSaveBlock1 + 0x1A08 adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl sub_80BD514 adds r0, r4, 0 bl sub_80BD1FC adds r0, r5, 0 bl sub_80BD1FC adds r0, r6, 0 bl sub_80BD1FC adds r0, r4, 0 movs r1, 0x1 bl sub_80BD328 adds r0, r5, 0 movs r1, 0x1 bl sub_80BD328 adds r0, r6, 0 movs r1, 0x1 bl sub_80BD328 adds r0, r4, 0 movs r1, 0 bl sub_80BD328 adds r0, r5, 0 movs r1, 0 bl sub_80BD328 adds r0, r6, 0 movs r1, 0 bl sub_80BD328 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BD670: .4byte gSaveBlock1 + 0x1A08 thumb_func_end sub_80BD610 thumb_func_start sub_80BD674 sub_80BD674: @ 80BD674 push {r4-r7,lr} adds r6, r0, 0 adds r5, r1, 0 lsls r2, 24 lsrs r7, r2, 24 movs r0, 0x60 bl FlagGet lsls r0, 24 cmp r0, 0 bne _080BD68C b _080BD790 _080BD68C: bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _080BD69E cmp r0, 0x3 beq _080BD6BA b _080BD6C8 _080BD69E: lsls r4, r5, 1 adds r0, r6, r4 movs r1, 0 adds r2, r5, 0 bl memset adds r4, r5 adds r4, r6, r4 adds r0, r4, 0 movs r1, 0 adds r2, r5, 0 bl memset b _080BD6C8 _080BD6BA: lsls r0, r5, 1 adds r0, r5 adds r0, r6, r0 movs r1, 0 adds r2, r5, 0 bl memset _080BD6C8: cmp r7, 0x1 beq _080BD6F0 cmp r7, 0x1 bgt _080BD6D6 cmp r7, 0 beq _080BD6E0 b _080BD71C _080BD6D6: cmp r7, 0x2 beq _080BD700 cmp r7, 0x3 beq _080BD710 b _080BD71C _080BD6E0: adds r0, r6, r5 lsls r2, r5, 1 adds r1, r6, r2 adds r2, r5 adds r2, r6, r2 bl sub_80BD610 b _080BD71C _080BD6F0: lsls r1, r5, 1 adds r0, r6, r1 adds r1, r5 adds r1, r6, r1 adds r2, r6, 0 bl sub_80BD610 b _080BD71C _080BD700: lsls r0, r5, 1 adds r0, r5 adds r0, r6, r0 adds r2, r6, r5 adds r1, r6, 0 bl sub_80BD610 b _080BD71C _080BD710: adds r1, r6, r5 lsls r2, r5, 1 adds r2, r6, r2 adds r0, r6, 0 bl sub_80BD610 _080BD71C: movs r3, 0x1 ldr r6, _080BD798 @ =gSaveBlock1 movs r5, 0x10 negs r5, r5 ldr r4, _080BD79C @ =0x00001a09 _080BD726: lsls r0, r3, 2 adds r0, r3 lsls r0, 5 adds r0, r6 adds r2, r0, r4 ldrb r1, [r2] lsls r0, r1, 28 lsrs r0, 28 cmp r0, 0x1 bne _080BD746 movs r0, 0x3F ands r0, r1 movs r1, 0x40 orrs r0, r1 ands r0, r5 strb r0, [r2] _080BD746: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x13 bls _080BD726 bl sub_80BD280 movs r3, 0x1 ldr r4, _080BD798 @ =gSaveBlock1 ldr r6, _080BD79C @ =0x00001a09 adds r7, r4, 0 movs r5, 0x3F _080BD75E: lsls r0, r3, 2 adds r0, r3 lsls r0, 5 adds r0, r4 adds r2, r0, r6 ldrb r1, [r2] lsrs r0, r1, 6 cmp r0, 0x2 bne _080BD776 adds r0, r5, 0 ands r0, r1 strb r0, [r2] _080BD776: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x13 bls _080BD75E ldr r0, _080BD7A0 @ =0x00001a16 adds r2, r7, r0 ldrh r1, [r2] ldr r0, _080BD7A4 @ =0x0000ffff cmp r1, r0 beq _080BD790 adds r0, r1, 0x1 strh r0, [r2] _080BD790: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BD798: .4byte gSaveBlock1 _080BD79C: .4byte 0x00001a09 _080BD7A0: .4byte 0x00001a16 _080BD7A4: .4byte 0x0000ffff thumb_func_end sub_80BD674 thumb_func_start sub_80BD7A8 sub_80BD7A8: @ 80BD7A8 push {r4-r7,lr} movs r3, 0 ldr r6, _080BD7F0 @ =gSaveBlock1 movs r4, 0 ldr r0, _080BD7F4 @ =0x0000273a adds r5, r6, r0 _080BD7B4: lsls r2, r3, 3 adds r2, r3 lsls r2, 2 adds r1, r2, r6 ldr r7, _080BD7F8 @ =0x00002738 adds r0, r1, r7 strb r4, [r0] ldr r0, _080BD7FC @ =0x00002739 adds r1, r0 strb r4, [r1] movs r1, 0 adds r3, 0x1 _080BD7CC: adds r0, r1, r2 adds r0, r5 strb r4, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x21 bls _080BD7CC lsls r0, r3, 24 lsrs r3, r0, 24 cmp r3, 0x18 bls _080BD7B4 bl sub_80BEBF4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BD7F0: .4byte gSaveBlock1 _080BD7F4: .4byte 0x0000273a _080BD7F8: .4byte 0x00002738 _080BD7FC: .4byte 0x00002739 thumb_func_end sub_80BD7A8 thumb_func_start special_0x44 special_0x44: @ 80BD800 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r4, 0x5 ldr r1, _080BD874 @ =gSaveBlock1 ldr r2, _080BD878 @ =0x000027ec adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _080BD834 adds r2, r1, 0 ldr r1, _080BD87C @ =0x00002738 _080BD81A: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x17 bhi _080BD834 lsls r0, r4, 3 adds r0, r4 lsls r0, 2 adds r0, r2 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080BD81A _080BD834: bl Random lsls r0, 16 lsrs r0, 16 adds r1, r4, 0 bl __modsi3 lsls r0, 24 lsrs r4, r0, 24 mov r8, r4 ldr r7, _080BD874 @ =gSaveBlock1 ldr r0, _080BD87C @ =0x00002738 adds r0, r7 mov r9, r0 _080BD850: lsls r0, r4, 3 adds r0, r4 lsls r6, r0, 2 adds r5, r6, r7 ldr r1, _080BD87C @ =0x00002738 adds r0, r5, r1 ldrb r0, [r0] bl sub_80BFB54 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 beq _080BD884 ldr r2, _080BD880 @ =0x00002739 adds r0, r5, r2 ldrb r0, [r0] b _080BD890 .align 2, 0 _080BD874: .4byte gSaveBlock1 _080BD878: .4byte 0x000027ec _080BD87C: .4byte 0x00002738 _080BD880: .4byte 0x00002739 _080BD884: mov r0, r9 adds r1, r6, r0 ldrh r0, [r1, 0x16] cmp r0, 0 bne _080BD898 ldrb r0, [r1, 0x1] _080BD890: cmp r0, 0x1 bne _080BD898 adds r0, r4, 0 b _080BD8AC _080BD898: cmp r4, 0 bne _080BD8A0 movs r4, 0x17 b _080BD8A6 _080BD8A0: subs r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _080BD8A6: cmp r4, r8 bne _080BD850 movs r0, 0xFF _080BD8AC: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end special_0x44 thumb_func_start sub_80BD8B8 sub_80BD8B8: @ 80BD8B8 push {lr} bl special_0x44 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xFF bne _080BD8CA movs r0, 0xFF b _080BD902 _080BD8CA: ldr r2, _080BD8F4 @ =gSaveBlock1 ldr r3, _080BD8F8 @ =0x00002afc adds r0, r2, r3 ldrh r0, [r0] cmp r0, 0 beq _080BD900 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r2, _080BD8FC @ =0x00002738 adds r0, r2 ldrb r0, [r0] cmp r0, 0x29 bne _080BD900 bl sub_80BDA30 lsls r0, 24 lsrs r0, 24 b _080BD902 .align 2, 0 _080BD8F4: .4byte gSaveBlock1 _080BD8F8: .4byte 0x00002afc _080BD8FC: .4byte 0x00002738 _080BD900: adds r0, r1, 0 _080BD902: pop {r1} bx r1 thumb_func_end sub_80BD8B8 thumb_func_start UpdateTVScreensOnMap UpdateTVScreensOnMap: @ 80BD908 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r0, _080BD938 @ =0x00000831 bl FlagSet bl CheckForBigMovieOrEmergencyNewsOnTV lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080BD92C cmp r0, 0x2 beq _080BD97E ldr r0, _080BD93C @ =gSaveBlock1 ldrh r0, [r0, 0x4] cmp r0, 0xD bne _080BD940 _080BD92C: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x3 bl SetTVMetatilesOnMap b _080BD97E .align 2, 0 _080BD938: .4byte 0x00000831 _080BD93C: .4byte gSaveBlock1 _080BD940: ldr r0, _080BD984 @ =0x00000832 bl FlagGet lsls r0, 24 cmp r0, 0 beq _080BD97E bl sub_80BD8B8 lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _080BD96E bl sub_80BECA0 lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _080BD96E bl IsTVShowInSearchOfTrainersAiring lsls r0, 24 cmp r0, 0 beq _080BD97E _080BD96E: ldr r0, _080BD988 @ =0x00000831 bl FlagReset adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x3 bl SetTVMetatilesOnMap _080BD97E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BD984: .4byte 0x00000832 _080BD988: .4byte 0x00000831 thumb_func_end UpdateTVScreensOnMap thumb_func_start SetTVMetatilesOnMap SetTVMetatilesOnMap: @ 80BD98C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r9, r0 mov r10, r1 lsls r2, 16 lsrs r2, 16 movs r5, 0 cmp r5, r10 bge _080BD9E0 movs r1, 0xC0 lsls r1, 4 adds r0, r1, 0 mov r8, r2 mov r1, r8 orrs r1, r0 mov r8, r1 _080BD9B2: movs r4, 0 adds r7, r5, 0x1 cmp r4, r9 bge _080BD9DA mov r0, r8 lsls r6, r0, 16 _080BD9BE: adds r0, r4, 0 adds r1, r5, 0 bl MapGridGetMetatileBehaviorAt cmp r0, 0x86 bne _080BD9D4 adds r0, r4, 0 adds r1, r5, 0 lsrs r2, r6, 16 bl MapGridSetMetatileIdAt _080BD9D4: adds r4, 0x1 cmp r4, r9 blt _080BD9BE _080BD9DA: adds r5, r7, 0 cmp r5, r10 blt _080BD9B2 _080BD9E0: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end SetTVMetatilesOnMap thumb_func_start TurnOffTVScreen TurnOffTVScreen: @ 80BD9F0 push {lr} ldr r1, _080BDA08 @ =gUnknown_03004870 ldr r0, [r1] ldr r1, [r1, 0x4] movs r2, 0x2 bl SetTVMetatilesOnMap bl DrawWholeMapView pop {r0} bx r0 .align 2, 0 _080BDA08: .4byte gUnknown_03004870 thumb_func_end TurnOffTVScreen thumb_func_start sub_80BDA0C sub_80BDA0C: @ 80BDA0C ldr r2, _080BDA24 @ =gSaveBlock1 ldr r0, _080BDA28 @ =gUnknown_0202E8CC ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _080BDA2C @ =0x00002738 adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _080BDA24: .4byte gSaveBlock1 _080BDA28: .4byte gUnknown_0202E8CC _080BDA2C: .4byte 0x00002738 thumb_func_end sub_80BDA0C thumb_func_start sub_80BDA30 sub_80BDA30: @ 80BDA30 push {r4,lr} movs r2, 0 ldr r3, _080BDA5C @ =gSaveBlock1 _080BDA36: lsls r0, r2, 3 adds r0, r2 lsls r0, 2 adds r1, r0, r3 ldr r4, _080BDA60 @ =0x00002738 adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0 beq _080BDA64 cmp r0, 0x29 beq _080BDA64 adds r4, 0x1 adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0x1 bne _080BDA64 adds r0, r2, 0 b _080BDA70 .align 2, 0 _080BDA5C: .4byte gSaveBlock1 _080BDA60: .4byte 0x00002738 _080BDA64: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x17 bls _080BDA36 movs r0, 0xFF _080BDA70: pop {r4} pop {r1} bx r1 thumb_func_end sub_80BDA30 thumb_func_start special_0x4a special_0x4a: @ 80BDA78 push {lr} ldr r2, _080BDAA4 @ =gUnknown_0202E8CC ldrh r1, [r2] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080BDAA8 @ =gSaveBlock1 + 0x2738 adds r0, r1 ldrb r0, [r0] cmp r0, 0x29 bne _080BDAAC movs r3, 0xF1 lsls r3, 2 adds r0, r1, r3 ldrh r0, [r0] cmp r0, 0 beq _080BDAAC bl sub_80BDA30 lsls r0, 24 lsrs r0, 24 b _080BDAAE .align 2, 0 _080BDAA4: .4byte gUnknown_0202E8CC _080BDAA8: .4byte gSaveBlock1 + 0x2738 _080BDAAC: ldrb r0, [r2] _080BDAAE: pop {r1} bx r1 thumb_func_end special_0x4a thumb_func_start sub_80BDAB4 sub_80BDAB4: @ 80BDAB4 push {r4,lr} ldr r2, _080BDAF8 @ =gSaveBlock1 ldr r1, _080BDAFC @ =0x00002b10 adds r0, r2, r1 movs r3, 0 movs r1, 0 strh r1, [r0] ldr r4, _080BDB00 @ =0x00002b12 adds r0, r2, r4 strh r1, [r0] adds r4, 0x2 adds r0, r2, r4 strh r1, [r0] ldr r0, _080BDB04 @ =0x00002b16 adds r1, r2, r0 ldr r0, _080BDB08 @ =0x0000ffff strh r0, [r1] adds r4, 0x6 adds r1, r2, r4 movs r0, 0 strb r0, [r1] ldr r0, _080BDB0C @ =0x00002b1b adds r1, r2, r0 movs r0, 0 strb r0, [r1] ldr r1, _080BDB10 @ =0x00002b18 adds r0, r2, r1 strb r3, [r0] subs r4, 0x1 adds r2, r4 strb r3, [r2] pop {r4} pop {r0} bx r0 .align 2, 0 _080BDAF8: .4byte gSaveBlock1 _080BDAFC: .4byte 0x00002b10 _080BDB00: .4byte 0x00002b12 _080BDB04: .4byte 0x00002b16 _080BDB08: .4byte 0x0000ffff _080BDB0C: .4byte 0x00002b1b _080BDB10: .4byte 0x00002b18 thumb_func_end sub_80BDAB4 thumb_func_start GabbyAndTyBeforeInterview GabbyAndTyBeforeInterview: @ 80BDB14 push {r4,r5,lr} ldr r2, _080BDB68 @ =gSaveBlock1 ldr r3, _080BDB6C @ =gUnknown_030042E0 ldrh r1, [r3, 0x6] ldr r4, _080BDB70 @ =0x00002b10 adds r0, r2, r4 strh r1, [r0] ldrh r1, [r3, 0x26] adds r4, 0x2 adds r0, r2, r4 strh r1, [r0] ldrh r1, [r3, 0x22] adds r4, 0x2 adds r0, r2, r4 strh r1, [r0] ldr r0, _080BDB74 @ =0x00002b19 adds r4, r2, r0 ldrb r1, [r4] adds r0, r1, 0 adds r5, r2, 0 cmp r0, 0xFF beq _080BDB44 adds r0, r1, 0x1 strb r0, [r4] _080BDB44: ldrb r0, [r3, 0x5] lsls r0, 31 ldr r1, _080BDB78 @ =0x00002b1a adds r4, r5, r1 lsrs r0, 31 ldrb r1, [r4] movs r2, 0x2 negs r2, r2 ands r2, r1 orrs r2, r0 strb r2, [r4] ldrb r0, [r3] cmp r0, 0 beq _080BDB7C movs r0, 0x2 orrs r2, r0 b _080BDB82 .align 2, 0 _080BDB68: .4byte gSaveBlock1 _080BDB6C: .4byte gUnknown_030042E0 _080BDB70: .4byte 0x00002b10 _080BDB74: .4byte 0x00002b19 _080BDB78: .4byte 0x00002b1a _080BDB7C: movs r0, 0x3 negs r0, r0 ands r2, r0 _080BDB82: strb r2, [r4] ldrb r0, [r3, 0x3] cmp r0, 0 beq _080BDB9C ldr r4, _080BDB98 @ =0x00002b1a adds r0, r5, r4 ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _080BDBAA .align 2, 0 _080BDB98: .4byte 0x00002b1a _080BDB9C: ldr r0, _080BDBDC @ =0x00002b1a adds r2, r5, r0 ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] _080BDBAA: ldrb r1, [r3, 0x5] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080BDBE0 movs r1, 0 adds r0, r3, 0 adds r0, 0x36 ldrb r0, [r0] cmp r0, 0 bne _080BDBE0 _080BDBC0: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xA bhi _080BDBEC adds r0, r3, 0 adds r0, 0x36 adds r0, r1, r0 ldrb r0, [r0] cmp r0, 0 beq _080BDBC0 ldr r4, _080BDBDC @ =0x00002b1a adds r0, r5, r4 b _080BDBE4 .align 2, 0 _080BDBDC: .4byte 0x00002b1a _080BDBE0: ldr r1, _080BDC08 @ =0x00002b1a adds r0, r5, r1 _080BDBE4: ldrb r1, [r0] movs r2, 0x8 orrs r1, r2 strb r1, [r0] _080BDBEC: bl TakeTVShowInSearchOfTrainersOffTheAir ldr r0, _080BDC0C @ =gSaveBlock1 ldr r4, _080BDC10 @ =0x00002b14 adds r0, r4 ldrh r0, [r0] cmp r0, 0 bne _080BDC02 movs r0, 0x1 bl FlagSet _080BDC02: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BDC08: .4byte 0x00002b1a _080BDC0C: .4byte gSaveBlock1 _080BDC10: .4byte 0x00002b14 thumb_func_end GabbyAndTyBeforeInterview thumb_func_start sub_80BDC14 sub_80BDC14: @ 80BDC14 push {r4-r6,lr} ldr r4, _080BDC70 @ =gSaveBlock1 ldr r0, _080BDC74 @ =0x00002b1a adds r6, r4, r0 ldrb r3, [r6] lsls r1, r3, 31 adds r0, 0x1 adds r5, r4, r0 lsrs r1, 31 ldrb r2, [r5] movs r0, 0x2 negs r0, r0 ands r0, r2 orrs r0, r1 movs r1, 0x2 ands r1, r3 movs r2, 0x3 negs r2, r2 ands r0, r2 orrs r0, r1 movs r1, 0x4 ands r1, r3 subs r2, 0x2 ands r0, r2 orrs r0, r1 movs r1, 0x8 ands r1, r3 subs r2, 0x4 ands r0, r2 orrs r0, r1 strb r0, [r5] movs r0, 0x10 orrs r3, r0 strb r3, [r6] ldr r0, _080BDC78 @ =gMapHeader ldrb r0, [r0, 0x14] ldr r1, _080BDC7C @ =0x00002b18 adds r4, r1 strb r0, [r4] movs r0, 0x6 bl sav12_xor_increment pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BDC70: .4byte gSaveBlock1 _080BDC74: .4byte 0x00002b1a _080BDC78: .4byte gMapHeader _080BDC7C: .4byte 0x00002b18 thumb_func_end sub_80BDC14 thumb_func_start TakeTVShowInSearchOfTrainersOffTheAir TakeTVShowInSearchOfTrainersOffTheAir: @ 80BDC80 ldr r0, _080BDC94 @ =gSaveBlock1 ldr r1, _080BDC98 @ =0x00002b1a adds r0, r1 ldrb r2, [r0] movs r1, 0x11 negs r1, r1 ands r1, r2 strb r1, [r0] bx lr .align 2, 0 _080BDC94: .4byte gSaveBlock1 _080BDC98: .4byte 0x00002b1a thumb_func_end TakeTVShowInSearchOfTrainersOffTheAir thumb_func_start GabbyAndTyGetBattleNum GabbyAndTyGetBattleNum: @ 80BDC9C push {lr} ldr r0, _080BDCBC @ =gSaveBlock1 ldr r2, _080BDCC0 @ =0x00002b19 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0x5 bls _080BDCB8 ldrb r0, [r1] movs r1, 0x3 bl __umodsi3 adds r0, 0x6 lsls r0, 24 lsrs r0, 24 _080BDCB8: pop {r1} bx r1 .align 2, 0 _080BDCBC: .4byte gSaveBlock1 _080BDCC0: .4byte 0x00002b19 thumb_func_end GabbyAndTyGetBattleNum thumb_func_start IsTVShowInSearchOfTrainersAiring IsTVShowInSearchOfTrainersAiring: @ 80BDCC4 ldr r0, _080BDCD4 @ =gSaveBlock1 ldr r1, _080BDCD8 @ =0x00002b1a adds r0, r1 ldrb r0, [r0] lsls r0, 27 lsrs r0, 31 bx lr .align 2, 0 _080BDCD4: .4byte gSaveBlock1 _080BDCD8: .4byte 0x00002b1a thumb_func_end IsTVShowInSearchOfTrainersAiring thumb_func_start GabbyAndTyGetLastQuote GabbyAndTyGetLastQuote: @ 80BDCDC push {r4,r5,lr} ldr r0, _080BDD00 @ =gSaveBlock1 ldr r1, _080BDD04 @ =0x00002b16 adds r4, r0, r1 ldrh r0, [r4] ldr r5, _080BDD08 @ =0x0000ffff cmp r0, r5 beq _080BDD10 ldr r0, _080BDD0C @ =gStringVar1 ldrh r1, [r4] bl sub_80EB3FC ldrh r1, [r4] adds r0, r5, 0 orrs r0, r1 strh r0, [r4] movs r0, 0x1 b _080BDD12 .align 2, 0 _080BDD00: .4byte gSaveBlock1 _080BDD04: .4byte 0x00002b16 _080BDD08: .4byte 0x0000ffff _080BDD0C: .4byte gStringVar1 _080BDD10: movs r0, 0 _080BDD12: pop {r4,r5} pop {r1} bx r1 thumb_func_end GabbyAndTyGetLastQuote thumb_func_start sub_80BDD18 sub_80BDD18: @ 80BDD18 push {lr} ldr r0, _080BDD30 @ =gSaveBlock1 ldr r1, _080BDD34 @ =0x00002b1b adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080BDD38 movs r0, 0x1 b _080BDD5E .align 2, 0 _080BDD30: .4byte gSaveBlock1 _080BDD34: .4byte 0x00002b1b _080BDD38: movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080BDD44 movs r0, 0x2 b _080BDD5E _080BDD44: movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080BDD50 movs r0, 0x3 b _080BDD5E _080BDD50: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080BDD5C movs r0, 0 b _080BDD5E _080BDD5C: movs r0, 0x4 _080BDD5E: pop {r1} bx r1 thumb_func_end sub_80BDD18 thumb_func_start GabbyAndTySetScriptVarsToFieldObjectLocalIds GabbyAndTySetScriptVarsToFieldObjectLocalIds: @ 80BDD64 push {lr} bl GabbyAndTyGetBattleNum lsls r0, 24 lsrs r0, 24 subs r0, 0x1 cmp r0, 0x7 bhi _080BDE3C lsls r0, 2 ldr r1, _080BDD80 @ =_080BDD84 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080BDD80: .4byte _080BDD84 .align 2, 0 _080BDD84: .4byte _080BDDA4 .4byte _080BDDB8 .4byte _080BDDCC .4byte _080BDDE0 .4byte _080BDDF4 .4byte _080BDE08 .4byte _080BDE1C .4byte _080BDE30 _080BDDA4: ldr r1, _080BDDB0 @ =gUnknown_0202E8CC movs r0, 0xE strh r0, [r1] ldr r1, _080BDDB4 @ =gUnknown_0202E8CE movs r0, 0xD b _080BDE3A .align 2, 0 _080BDDB0: .4byte gUnknown_0202E8CC _080BDDB4: .4byte gUnknown_0202E8CE _080BDDB8: ldr r1, _080BDDC4 @ =gUnknown_0202E8CC movs r0, 0x5 strh r0, [r1] ldr r1, _080BDDC8 @ =gUnknown_0202E8CE movs r0, 0x6 b _080BDE3A .align 2, 0 _080BDDC4: .4byte gUnknown_0202E8CC _080BDDC8: .4byte gUnknown_0202E8CE _080BDDCC: ldr r1, _080BDDD8 @ =gUnknown_0202E8CC movs r0, 0x12 strh r0, [r1] ldr r1, _080BDDDC @ =gUnknown_0202E8CE movs r0, 0x11 b _080BDE3A .align 2, 0 _080BDDD8: .4byte gUnknown_0202E8CC _080BDDDC: .4byte gUnknown_0202E8CE _080BDDE0: ldr r1, _080BDDEC @ =gUnknown_0202E8CC movs r0, 0x15 strh r0, [r1] ldr r1, _080BDDF0 @ =gUnknown_0202E8CE movs r0, 0x16 b _080BDE3A .align 2, 0 _080BDDEC: .4byte gUnknown_0202E8CC _080BDDF0: .4byte gUnknown_0202E8CE _080BDDF4: ldr r1, _080BDE00 @ =gUnknown_0202E8CC movs r0, 0x8 strh r0, [r1] ldr r1, _080BDE04 @ =gUnknown_0202E8CE movs r0, 0x9 b _080BDE3A .align 2, 0 _080BDE00: .4byte gUnknown_0202E8CC _080BDE04: .4byte gUnknown_0202E8CE _080BDE08: ldr r1, _080BDE14 @ =gUnknown_0202E8CC movs r0, 0x13 strh r0, [r1] ldr r1, _080BDE18 @ =gUnknown_0202E8CE movs r0, 0x14 b _080BDE3A .align 2, 0 _080BDE14: .4byte gUnknown_0202E8CC _080BDE18: .4byte gUnknown_0202E8CE _080BDE1C: ldr r1, _080BDE28 @ =gUnknown_0202E8CC movs r0, 0x17 strh r0, [r1] ldr r1, _080BDE2C @ =gUnknown_0202E8CE movs r0, 0x18 b _080BDE3A .align 2, 0 _080BDE28: .4byte gUnknown_0202E8CC _080BDE2C: .4byte gUnknown_0202E8CE _080BDE30: ldr r1, _080BDE40 @ =gUnknown_0202E8CC movs r0, 0xA strh r0, [r1] ldr r1, _080BDE44 @ =gUnknown_0202E8CE movs r0, 0xB _080BDE3A: strh r0, [r1] _080BDE3C: pop {r0} bx r0 .align 2, 0 _080BDE40: .4byte gUnknown_0202E8CC _080BDE44: .4byte gUnknown_0202E8CE thumb_func_end GabbyAndTySetScriptVarsToFieldObjectLocalIds thumb_func_start sub_80BDE48 sub_80BDE48: @ 80BDE48 push {lr} ldr r0, _080BDE60 @ =gUnknown_0202E8CE ldrh r0, [r0] subs r0, 0x1 cmp r0, 0x6 bhi _080BDEA6 lsls r0, 2 ldr r1, _080BDE64 @ =_080BDE68 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080BDE60: .4byte gUnknown_0202E8CE _080BDE64: .4byte _080BDE68 .align 2, 0 _080BDE68: .4byte _080BDE84 .4byte _080BDE8A .4byte _080BDE90 .4byte _080BDE96 .4byte _080BDEA6 .4byte _080BDE9C .4byte _080BDEA2 _080BDE84: bl sub_80BE5FC b _080BDEA6 _080BDE8A: bl sub_80BE65C b _080BDEA6 _080BDE90: bl sub_80BE6A0 b _080BDEA6 _080BDE96: bl nullsub_21 b _080BDEA6 _080BDE9C: bl sub_80BE188 b _080BDEA6 _080BDEA2: bl sub_80BE320 _080BDEA6: pop {r0} bx r0 thumb_func_end sub_80BDE48 thumb_func_start sub_80BDEAC sub_80BDEAC: @ 80BDEAC push {lr} adds r1, r0, 0 movs r2, 0x2 ldrb r0, [r1] cmp r0, 0xFC bne _080BDEC0 ldrb r0, [r1, 0x1] cmp r0, 0x15 bne _080BDEC0 movs r2, 0x1 _080BDEC0: adds r0, r2, 0 pop {r1} bx r1 thumb_func_end sub_80BDEAC thumb_func_start sub_80BDEC8 sub_80BDEC8: @ 80BDEC8 push {r4-r7,lr} mov r7, r8 push {r7} movs r4, 0 bl sub_80BEB20 bl sub_80BE778 ldr r5, _080BDEE8 @ =gUnknown_030042E0 ldrh r0, [r5, 0x28] cmp r0, 0 bne _080BDEEC bl sub_80BE074 b _080BE012 .align 2, 0 _080BDEE8: .4byte gUnknown_030042E0 _080BDEEC: bl sub_80BE028 ldr r0, _080BDF98 @ =0x0000ffff bl sub_80BF77C lsls r0, 24 cmp r0, 0 beq _080BDEFE b _080BE012 _080BDEFE: ldrh r1, [r5, 0x28] movs r0, 0xB muls r0, r1 ldr r1, _080BDF9C @ =gSpeciesNames adds r0, r1 adds r1, r5, 0 adds r1, 0x2A bl StringCompareWithoutExtCtrlCodes cmp r0, 0 bne _080BDF16 b _080BE012 _080BDF16: ldr r0, _080BDFA0 @ =gSaveBlock1 + 0x2738 bl sub_80BF74C ldr r1, _080BDFA4 @ =gUnknown_03005D38 strb r0, [r1] lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _080BE012 movs r0, 0x15 bl sub_80BF1B4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080BE012 movs r2, 0 adds r7, r5, 0 adds r1, r7, 0 adds r1, 0x36 _080BDF42: adds r0, r2, r1 ldrb r0, [r0] adds r0, r4, r0 lsls r0, 16 lsrs r4, r0, 16 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xA bls _080BDF42 cmp r4, 0 bne _080BDF64 ldrb r1, [r7, 0x5] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080BE012 _080BDF64: movs r4, 0 ldr r0, _080BDFA4 @ =gUnknown_03005D38 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080BDFA0 @ =gSaveBlock1 + 0x2738 adds r5, r0, r1 movs r0, 0x15 strb r0, [r5] strb r4, [r5, 0x1] ldrb r1, [r7, 0x5] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080BDFAC movs r4, 0x1 movs r0, 0x1 adds r3, r5, 0 adds r3, 0x13 ldr r1, _080BDFA8 @ =gSaveBlock2 mov r8, r1 adds r6, r5, 0x4 b _080BDFDE .align 2, 0 _080BDF98: .4byte 0x0000ffff _080BDF9C: .4byte gSpeciesNames _080BDFA0: .4byte gSaveBlock1 + 0x2738 _080BDFA4: .4byte gUnknown_03005D38 _080BDFA8: .4byte gSaveBlock2 _080BDFAC: movs r2, 0 ldr r0, _080BE01C @ =gUnknown_02024C04 mov r12, r0 adds r3, r5, 0 adds r3, 0x13 ldr r1, _080BE020 @ =gSaveBlock2 mov r8, r1 adds r6, r5, 0x4 adds r1, r7, 0 adds r1, 0x36 _080BDFC0: adds r0, r2, r1 ldrb r0, [r0] adds r0, r4, r0 lsls r0, 16 lsrs r4, r0, 16 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xA bls _080BDFC0 cmp r4, 0xFF bls _080BDFDA movs r4, 0xFF _080BDFDA: mov r1, r12 ldrh r0, [r1] _080BDFDE: strb r4, [r5, 0x12] strb r0, [r5, 0xF] adds r0, r3, 0 mov r1, r8 bl StringCopy ldr r4, _080BE024 @ =gUnknown_0300430A adds r0, r6, 0 adds r1, r4, 0 bl StringCopy subs r4, 0x2A ldrh r0, [r4, 0x28] strh r0, [r5, 0x10] adds r0, r5, 0 bl sub_80BE138 movs r0, 0x2 strb r0, [r5, 0x2] adds r0, r6, 0 bl sub_80BDEAC strb r0, [r5, 0x3] adds r0, r6, 0 bl StripExtCtrlCodes _080BE012: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BE01C: .4byte gUnknown_02024C04 _080BE020: .4byte gSaveBlock2 _080BE024: .4byte gUnknown_0300430A thumb_func_end sub_80BDEC8 thumb_func_start sub_80BE028 sub_80BE028: @ 80BE028 push {r4,lr} ldr r4, _080BE064 @ =gSaveBlock1 + 0x2A98 ldrb r0, [r4] cmp r0, 0x19 beq _080BE048 ldr r1, _080BE068 @ =0xfffffca0 adds r0, r4, r1 movs r1, 0x18 bl sub_80BF55C movs r0, 0x5 bl sub_8053108 strh r0, [r4, 0x6] movs r0, 0x19 strb r0, [r4] _080BE048: ldrh r0, [r4, 0x2] adds r0, 0x1 strh r0, [r4, 0x2] ldr r1, _080BE06C @ =gUnknown_030042E0 ldrh r0, [r1, 0x28] strh r0, [r4, 0x4] ldrh r0, [r1, 0x6] strh r0, [r4, 0x8] ldr r0, _080BE070 @ =gMapHeader ldrb r0, [r0, 0x14] strb r0, [r4, 0xA] pop {r4} pop {r0} bx r0 .align 2, 0 _080BE064: .4byte gSaveBlock1 + 0x2A98 _080BE068: .4byte 0xfffffca0 _080BE06C: .4byte gUnknown_030042E0 _080BE070: .4byte gMapHeader thumb_func_end sub_80BE028 thumb_func_start sub_80BE074 sub_80BE074: @ 80BE074 push {r4-r7,lr} ldr r0, _080BE118 @ =0x0000ffff bl sub_80BF77C lsls r0, 24 cmp r0, 0 bne _080BE112 movs r1, 0 movs r5, 0 ldr r2, _080BE11C @ =gUnknown_03004316 _080BE088: adds r0, r1, r2 ldrb r0, [r0] adds r0, r5, r0 lsls r0, 16 lsrs r5, r0, 16 adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xA bls _080BE088 cmp r5, 0xFF bls _080BE0A2 movs r5, 0xFF _080BE0A2: cmp r5, 0x2 bls _080BE112 ldr r7, _080BE120 @ =gUnknown_02024D26 ldrb r0, [r7] cmp r0, 0x1 bne _080BE112 ldr r6, _080BE124 @ =gSaveBlock1 + 0x2738 adds r0, r6, 0 bl sub_80BF74C ldr r4, _080BE128 @ =gUnknown_03005D38 strb r0, [r4] lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _080BE112 movs r0, 0x17 bl sub_80BF1B4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080BE112 movs r0, 0 ldrsb r0, [r4, r0] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 adds r4, r6 movs r1, 0 movs r0, 0x17 strb r0, [r4] strb r1, [r4, 0x1] ldr r1, _080BE12C @ =gUnknown_030042E0 ldrh r0, [r1, 0x6] strh r0, [r4, 0xC] ldrh r0, [r1, 0x20] strh r0, [r4, 0xE] strb r5, [r4, 0x10] ldrb r0, [r7] strb r0, [r4, 0x11] ldr r0, _080BE130 @ =gMapHeader ldrb r0, [r0, 0x14] strb r0, [r4, 0x12] adds r0, r4, 0 adds r0, 0x13 ldr r1, _080BE134 @ =gSaveBlock2 bl StringCopy adds r0, r4, 0 bl sub_80BE138 movs r0, 0x2 strb r0, [r4, 0x2] _080BE112: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BE118: .4byte 0x0000ffff _080BE11C: .4byte gUnknown_03004316 _080BE120: .4byte gUnknown_02024D26 _080BE124: .4byte gSaveBlock1 + 0x2738 _080BE128: .4byte gUnknown_03005D38 _080BE12C: .4byte gUnknown_030042E0 _080BE130: .4byte gMapHeader _080BE134: .4byte gSaveBlock2 thumb_func_end sub_80BE074 thumb_func_start sub_80BE138 sub_80BE138: @ 80BE138 push {r4,lr} adds r4, r0, 0 bl sub_80BFB94 strb r0, [r4, 0x1E] lsrs r2, r0, 8 strb r2, [r4, 0x1F] adds r1, r4, 0 adds r1, 0x20 strb r0, [r1] adds r1, 0x1 strb r2, [r1] adds r1, 0x1 strb r0, [r1] adds r0, r4, 0 adds r0, 0x23 strb r2, [r0] pop {r4} pop {r0} bx r0 thumb_func_end sub_80BE138 thumb_func_start sub_80BE160 sub_80BE160: @ 80BE160 push {r4,lr} adds r4, r0, 0 bl sub_80BFB94 adds r1, r4, 0 adds r1, 0x20 strb r0, [r1] lsrs r1, r0, 8 adds r2, r4, 0 adds r2, 0x21 strb r1, [r2] adds r2, 0x1 strb r0, [r2] adds r0, r4, 0 adds r0, 0x23 strb r1, [r0] pop {r4} pop {r0} bx r0 thumb_func_end sub_80BE160 thumb_func_start sub_80BE188 sub_80BE188: @ 80BE188 push {r4-r6,lr} ldr r6, _080BE22C @ =gSaveBlock1 + 0x2A98 ldrb r1, [r6] cmp r1, 0x6 bne _080BE224 ldr r0, _080BE230 @ =gUnknown_03005D38 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r2, _080BE234 @ =0xfffffca0 adds r0, r6, r2 adds r4, r0 strb r1, [r4] movs r0, 0x1 strb r0, [r4, 0x1] ldrh r0, [r6, 0x2] strh r0, [r4, 0x2] adds r0, r4, 0 adds r0, 0x16 ldr r1, _080BE238 @ =gSaveBlock2 bl StringCopy adds r5, r4, 0 adds r5, 0x8 adds r1, r6, 0 adds r1, 0x8 adds r0, r5, 0 bl StringCopy ldrb r0, [r6, 0x13] lsls r0, 29 lsrs r0, 29 ldrb r2, [r4, 0x13] movs r3, 0x8 negs r3, r3 adds r1, r3, 0 ands r1, r2 orrs r1, r0 strb r1, [r4, 0x13] ldrb r2, [r6, 0x13] movs r0, 0x18 ands r0, r2 movs r2, 0x19 negs r2, r2 ands r2, r1 orrs r2, r0 strb r2, [r4, 0x13] ldrh r0, [r6, 0x14] strh r0, [r4, 0x14] ldrb r0, [r6, 0x13] movs r1, 0x60 ands r1, r0 movs r0, 0x61 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x13] ldrb r1, [r6, 0x13] lsls r1, 29 lsrs r1, 29 ands r0, r3 orrs r0, r1 strb r0, [r4, 0x13] adds r0, r4, 0 bl sub_80BE160 movs r0, 0x2 strb r0, [r4, 0x1E] adds r0, r5, 0 bl sub_80BDEAC strb r0, [r4, 0x1F] adds r0, r5, 0 bl StripExtCtrlCodes _080BE224: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BE22C: .4byte gSaveBlock1 + 0x2A98 _080BE230: .4byte gUnknown_03005D38 _080BE234: .4byte 0xfffffca0 _080BE238: .4byte gSaveBlock2 thumb_func_end sub_80BE188 thumb_func_start sub_80BE23C sub_80BE23C: @ 80BE23C push {r4-r6,lr} lsls r0, 16 lsrs r6, r0, 16 ldr r4, _080BE278 @ =gSaveBlock1 + 0x2A98 bl sub_80BF484 ldr r0, _080BE27C @ =0xfffffca0 adds r5, r4, r0 adds r0, r5, 0 bl sub_80BF720 ldr r1, _080BE280 @ =gUnknown_03005D38 strb r0, [r1] lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _080BE270 adds r0, r5, 0 movs r1, 0x18 bl sub_80BF55C strh r6, [r4, 0x14] movs r0, 0x6 strb r0, [r4] _080BE270: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BE278: .4byte gSaveBlock1 + 0x2A98 _080BE27C: .4byte 0xfffffca0 _080BE280: .4byte gUnknown_03005D38 thumb_func_end sub_80BE23C thumb_func_start sub_80BE284 sub_80BE284: @ 80BE284 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r7, _080BE304 @ =gSaveBlock1 + 0x2A98 ldr r1, _080BE308 @ =0xfffffca0 adds r0, r7, r1 bl sub_80BF720 ldr r1, _080BE30C @ =gUnknown_03005D38 strb r0, [r1] lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _080BE2FE movs r3, 0x3 adds r1, r4, 0 ands r1, r3 lsls r1, 5 ldrb r2, [r7, 0x13] movs r0, 0x61 negs r0, r0 ands r0, r2 orrs r0, r1 ldr r1, _080BE310 @ =gUnknown_0203869C ldrb r2, [r1] movs r1, 0x7 ands r1, r2 movs r2, 0x8 negs r2, r2 ands r0, r2 orrs r0, r1 ldr r1, _080BE314 @ =gUnknown_0203869E ldrb r1, [r1] ands r3, r1 lsls r3, 3 movs r1, 0x19 negs r1, r1 ands r0, r1 orrs r0, r3 strb r0, [r7, 0x13] ldr r6, _080BE318 @ =gUnknown_02038694 ldrb r0, [r6] movs r5, 0x64 muls r0, r5 ldr r4, _080BE31C @ =gPlayerParty adds r0, r4 movs r1, 0xB movs r2, 0 bl GetMonData strh r0, [r7, 0x2] ldrb r0, [r6] muls r0, r5 adds r0, r4 adds r2, r7, 0 adds r2, 0x8 movs r1, 0x2 bl GetMonData _080BE2FE: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BE304: .4byte gSaveBlock1 + 0x2A98 _080BE308: .4byte 0xfffffca0 _080BE30C: .4byte gUnknown_03005D38 _080BE310: .4byte gUnknown_0203869C _080BE314: .4byte gUnknown_0203869E _080BE318: .4byte gUnknown_02038694 _080BE31C: .4byte gPlayerParty thumb_func_end sub_80BE284 thumb_func_start sub_80BE320 sub_80BE320: @ 80BE320 push {r4-r6,lr} ldr r0, _080BE384 @ =gUnknown_03005D38 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080BE388 @ =gSaveBlock1 + 0x2738 adds r6, r0, r1 movs r0, 0x7 strb r0, [r6] movs r0, 0x1 strb r0, [r6, 0x1] adds r0, r6, 0x2 ldr r4, _080BE38C @ =gSaveBlock2 adds r1, r4, 0 bl StringCopy adds r0, r6, 0 adds r0, 0xC ldr r2, _080BE390 @ =0x00000484 adds r1, r4, r2 bl StringCopy movs r1, 0x90 lsls r1, 3 adds r0, r4, r1 ldrh r0, [r0] strh r0, [r6, 0xA] ldr r2, _080BE394 @ =0x00000482 adds r0, r4, r2 ldrh r0, [r0] strh r0, [r6, 0x14] movs r0, 0xAF lsls r0, 3 adds r5, r4, r0 ldrb r0, [r5] bl sub_8135D3C strh r0, [r6, 0x16] ldr r1, _080BE398 @ =0x00000555 adds r4, r1 ldrb r0, [r4] strb r0, [r6, 0x1C] ldrb r0, [r5] cmp r0, 0 bne _080BE39C movs r0, 0x32 b _080BE39E .align 2, 0 _080BE384: .4byte gUnknown_03005D38 _080BE388: .4byte gSaveBlock1 + 0x2738 _080BE38C: .4byte gSaveBlock2 _080BE390: .4byte 0x00000484 _080BE394: .4byte 0x00000482 _080BE398: .4byte 0x00000555 _080BE39C: movs r0, 0x64 _080BE39E: strb r0, [r6, 0x1A] ldr r0, _080BE3B8 @ =gUnknown_0202E8CC ldrh r0, [r0] strb r0, [r6, 0x1B] adds r0, r6, 0 bl sub_80BE160 movs r0, 0x2 strb r0, [r6, 0x1D] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BE3B8: .4byte gUnknown_0202E8CC thumb_func_end sub_80BE320 thumb_func_start sub_80BE3BC sub_80BE3BC: @ 80BE3BC push {r4-r7,lr} ldr r0, _080BE460 @ =0x00005555 bl sub_80BF77C lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080BE458 ldr r6, _080BE464 @ =gSaveBlock1 + 0x2738 adds r0, r6, 0 bl sub_80BF74C ldr r5, _080BE468 @ =gUnknown_03005D38 strb r0, [r5] lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _080BE458 movs r0, 0x16 bl sub_80BF1B4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080BE458 bl sub_80BF20C ldr r2, _080BE46C @ =gUnknown_02038724 ldrh r0, [r2, 0x2] cmp r0, 0x13 bls _080BE458 movs r1, 0 ldrsb r1, [r5, r1] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r5, r0, r6 movs r0, 0x16 strb r0, [r5] strb r4, [r5, 0x1] ldr r0, _080BE470 @ =gMapHeader ldrb r0, [r0, 0x14] strb r0, [r5, 0x12] movs r4, 0 adds r7, r5, 0x6 mov r12, r2 adds r6, r5, 0 adds r6, 0xC _080BE420: lsls r2, r4, 1 adds r3, r7, r2 lsls r1, r4, 2 add r1, r12 ldrh r0, [r1] strh r0, [r3] adds r2, r6, r2 ldrh r0, [r1, 0x2] strh r0, [r2] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _080BE420 movs r0, 0x1 bl GetPriceReduction strb r0, [r5, 0x2] adds r0, r5, 0 adds r0, 0x13 ldr r1, _080BE474 @ =gSaveBlock2 bl StringCopy adds r0, r5, 0 bl sub_80BE138 movs r0, 0x2 strb r0, [r5, 0x3] _080BE458: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BE460: .4byte 0x00005555 _080BE464: .4byte gSaveBlock1 + 0x2738 _080BE468: .4byte gUnknown_03005D38 _080BE46C: .4byte gUnknown_02038724 _080BE470: .4byte gMapHeader _080BE474: .4byte gSaveBlock2 thumb_func_end sub_80BE3BC thumb_func_start sub_80BE478 sub_80BE478: @ 80BE478 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} bl sub_80BF478 ldr r0, _080BE554 @ =gScriptResult ldrh r0, [r0] cmp r0, 0x1 beq _080BE548 ldr r0, _080BE558 @ =gUnknown_0202E8CC mov r8, r0 ldrh r0, [r0] movs r7, 0x64 muls r0, r7 ldr r6, _080BE55C @ =gPlayerParty adds r0, r6 ldr r4, _080BE560 @ =gStringVar1 movs r1, 0x2 adds r2, r4, 0 bl GetMonData ldr r1, _080BE564 @ =gSaveBlock2 mov r9, r1 mov r0, r9 bl StringLength lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _080BE548 adds r0, r4, 0 bl StringLength lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _080BE548 ldr r0, _080BE568 @ =gUnknown_03005D38 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _080BE56C @ =gSaveBlock1 + 0x2738 adds r4, r0 movs r0, 0x5 strb r0, [r4] movs r5, 0x1 strb r5, [r4, 0x1] mov r1, r8 ldrh r0, [r1] muls r0, r7 adds r0, r6 movs r1, 0xB movs r2, 0 bl GetMonData strh r0, [r4, 0x2] bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 strb r0, [r4, 0x1A] bl Random lsls r0, 16 lsrs r0, 16 ands r0, r5 strb r0, [r4, 0x1B] ldrh r0, [r4, 0x2] bl sub_80BF674 strh r0, [r4, 0x1C] adds r0, r4, 0 adds r0, 0xF mov r1, r9 bl StringCopy mov r1, r8 ldrh r0, [r1] muls r0, r7 adds r0, r6 adds r5, r4, 0x4 movs r1, 0x2 adds r2, r5, 0 bl GetMonData adds r0, r4, 0 bl sub_80BE160 movs r0, 0x2 strb r0, [r4, 0x1E] adds r0, r5, 0 bl sub_80BDEAC strb r0, [r4, 0x1F] adds r0, r5, 0 bl StripExtCtrlCodes _080BE548: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BE554: .4byte gScriptResult _080BE558: .4byte gUnknown_0202E8CC _080BE55C: .4byte gPlayerParty _080BE560: .4byte gStringVar1 _080BE564: .4byte gSaveBlock2 _080BE568: .4byte gUnknown_03005D38 _080BE56C: .4byte gSaveBlock1 + 0x2738 thumb_func_end sub_80BE478 thumb_func_start StartMassOutbreak StartMassOutbreak: @ 80BE570 push {r4,lr} ldr r0, _080BE5F0 @ =gUnknown_0202E8CC ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r2, _080BE5F4 @ =gSaveBlock1 + 0x2738 adds r0, r2 ldrh r3, [r0, 0xC] movs r4, 0xF1 lsls r4, 2 adds r1, r2, r4 strh r3, [r1] ldrb r3, [r0, 0x10] adds r4, 0x2 adds r1, r2, r4 strb r3, [r1] ldrb r3, [r0, 0x11] adds r4, 0x1 adds r1, r2, r4 strb r3, [r1] ldrb r3, [r0, 0x14] adds r4, 0x1 adds r1, r2, r4 strb r3, [r1] ldrb r3, [r0, 0x2] adds r4, 0x1 adds r1, r2, r4 strb r3, [r1] ldrh r3, [r0, 0xE] adds r4, 0x1 adds r1, r2, r4 strh r3, [r1] ldrh r3, [r0, 0x4] adds r4, 0x2 adds r1, r2, r4 strh r3, [r1] ldrh r3, [r0, 0x6] adds r4, 0x2 adds r1, r2, r4 strh r3, [r1] ldrh r3, [r0, 0x8] adds r4, 0x2 adds r1, r2, r4 strh r3, [r1] ldrh r3, [r0, 0xA] adds r4, 0x2 adds r1, r2, r4 strh r3, [r1] ldrb r3, [r0, 0x3] adds r4, 0x2 adds r1, r2, r4 strb r3, [r1] ldrb r1, [r0, 0x13] ldr r3, _080BE5F8 @ =0x000003d5 adds r0, r2, r3 strb r1, [r0] adds r4, 0x2 adds r2, r4 movs r0, 0x2 strh r0, [r2] pop {r4} pop {r0} bx r0 .align 2, 0 _080BE5F0: .4byte gUnknown_0202E8CC _080BE5F4: .4byte gSaveBlock1 + 0x2738 _080BE5F8: .4byte 0x000003d5 thumb_func_end StartMassOutbreak thumb_func_start sub_80BE5FC sub_80BE5FC: @ 80BE5FC push {r4,lr} ldr r0, _080BE64C @ =gUnknown_03005D38 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _080BE650 @ =gSaveBlock1 + 0x2738 adds r4, r0 movs r0, 0x1 strb r0, [r4] strb r0, [r4, 0x1] adds r0, r4, 0 adds r0, 0x10 ldr r1, _080BE654 @ =gSaveBlock2 bl StringCopy bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _080BE658 @ =gPlayerParty adds r0, r1 movs r1, 0xB movs r2, 0 bl GetMonData strh r0, [r4, 0x2] adds r0, r4, 0 bl sub_80BE160 movs r0, 0x2 strb r0, [r4, 0x18] pop {r4} pop {r0} bx r0 .align 2, 0 _080BE64C: .4byte gUnknown_03005D38 _080BE650: .4byte gSaveBlock1 + 0x2738 _080BE654: .4byte gSaveBlock2 _080BE658: .4byte gPlayerParty thumb_func_end sub_80BE5FC thumb_func_start sub_80BE65C sub_80BE65C: @ 80BE65C push {r4-r6,lr} ldr r0, _080BE694 @ =gUnknown_03005D38 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _080BE698 @ =gSaveBlock1 + 0x2738 adds r4, r0 movs r6, 0 movs r5, 0x2 strb r5, [r4] movs r0, 0x1 strb r0, [r4, 0x1] adds r0, r4, 0 adds r0, 0x10 ldr r1, _080BE69C @ =gSaveBlock2 bl StringCopy strh r6, [r4, 0x2] adds r0, r4, 0 bl sub_80BE160 strb r5, [r4, 0x18] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BE694: .4byte gUnknown_03005D38 _080BE698: .4byte gSaveBlock1 + 0x2738 _080BE69C: .4byte gSaveBlock2 thumb_func_end sub_80BE65C thumb_func_start sub_80BE6A0 sub_80BE6A0: @ 80BE6A0 push {r4-r6,lr} mov r6, r8 push {r6} ldr r0, _080BE760 @ =gUnknown_03005D38 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _080BE764 @ =gSaveBlock1 + 0x2738 adds r4, r0 movs r0, 0x3 strb r0, [r4] movs r0, 0x1 strb r0, [r4, 0x1] bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r1, 0x64 mov r8, r1 mov r1, r8 muls r1, r0 adds r0, r1, 0 ldr r6, _080BE768 @ =gPlayerParty adds r0, r6 movs r1, 0x20 movs r2, 0 bl GetMonData lsrs r0, 4 movs r1, 0xF ands r0, r1 ldrb r2, [r4, 0x4] movs r1, 0x10 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r4, 0x4] ldr r0, _080BE76C @ =gUnknown_0202E8D2 ldrb r0, [r0] lsls r0, 4 movs r2, 0xF ands r1, r2 orrs r1, r0 strb r1, [r4, 0x4] adds r0, r4, 0x5 ldr r1, _080BE770 @ =gSaveBlock2 bl StringCopy bl sub_810F87C lsls r0, 24 lsrs r0, 24 mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r6 adds r5, r4, 0 adds r5, 0x10 movs r1, 0x2 adds r2, r5, 0 bl GetMonData bl sub_810F87C lsls r0, 24 lsrs r0, 24 mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r6 movs r1, 0xB movs r2, 0 bl GetMonData strh r0, [r4, 0x2] adds r0, r4, 0 bl sub_80BE160 movs r0, 0x2 strb r0, [r4, 0xD] adds r0, r5, 0 bl sub_80BDEAC strb r0, [r4, 0xE] adds r0, r5, 0 bl StripExtCtrlCodes pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BE760: .4byte gUnknown_03005D38 _080BE764: .4byte gSaveBlock1 + 0x2738 _080BE768: .4byte gPlayerParty _080BE76C: .4byte gUnknown_0202E8D2 _080BE770: .4byte gSaveBlock2 thumb_func_end sub_80BE6A0 thumb_func_start nullsub_21 nullsub_21: @ 80BE774 bx lr thumb_func_end nullsub_21 thumb_func_start sub_80BE778 sub_80BE778: @ 80BE778 push {r4-r6,lr} ldr r0, _080BE83C @ =0x00000804 bl FlagGet lsls r0, 24 cmp r0, 0 beq _080BE836 movs r1, 0 ldr r3, _080BE840 @ =gSaveBlock1 ldr r2, _080BE844 @ =0x00002738 _080BE78C: lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, r2 ldrb r0, [r0] cmp r0, 0x29 beq _080BE836 adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x17 bls _080BE78C ldr r0, _080BE848 @ =0x00000147 bl sub_80BF77C lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _080BE836 ldr r6, _080BE84C @ =gSaveBlock1 + 0x2738 adds r0, r6, 0 bl sub_80BF720 ldr r4, _080BE850 @ =gUnknown_03005D38 strb r0, [r4] lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _080BE836 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x5 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0 ldrsb r1, [r4, r1] lsls r4, r1, 3 adds r4, r1 lsls r4, 2 adds r4, r6 movs r1, 0x29 strb r1, [r4] movs r3, 0x1 strb r3, [r4, 0x1] ldr r2, _080BE854 @ =gUnknown_083D13F8 lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r0, [r1, 0xA] strb r0, [r4, 0x14] strb r5, [r4, 0x2] strb r5, [r4, 0x3] ldrh r0, [r1] movs r2, 0 strh r0, [r4, 0xC] strh r5, [r4, 0xE] ldrh r0, [r1, 0x2] strh r0, [r4, 0x4] ldrh r0, [r1, 0x4] strh r0, [r4, 0x6] ldrh r0, [r1, 0x6] strh r0, [r4, 0x8] ldrh r0, [r1, 0x8] strh r0, [r4, 0xA] ldrb r0, [r1, 0xB] strb r0, [r4, 0x10] strb r2, [r4, 0x11] strb r2, [r4, 0x12] movs r0, 0x32 strb r0, [r4, 0x13] strb r2, [r4, 0x15] strh r3, [r4, 0x16] adds r0, r4, 0 bl sub_80BE160 movs r0, 0x2 strb r0, [r4, 0x18] _080BE836: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BE83C: .4byte 0x00000804 _080BE840: .4byte gSaveBlock1 _080BE844: .4byte 0x00002738 _080BE848: .4byte 0x00000147 _080BE84C: .4byte gSaveBlock1 + 0x2738 _080BE850: .4byte gUnknown_03005D38 _080BE854: .4byte gUnknown_083D13F8 thumb_func_end sub_80BE778 thumb_func_start EndMassOutbreak EndMassOutbreak: @ 80BE858 push {r4,lr} ldr r0, _080BE8B4 @ =gSaveBlock1 ldr r2, _080BE8B8 @ =0x00002afc adds r1, r0, r2 movs r3, 0 movs r2, 0 strh r2, [r1] ldr r4, _080BE8BC @ =0x00002afe adds r1, r0, r4 strb r3, [r1] adds r4, 0x1 adds r1, r0, r4 strb r3, [r1] adds r4, 0x1 adds r1, r0, r4 strb r3, [r1] adds r4, 0x1 adds r1, r0, r4 strb r3, [r1] adds r4, 0x1 adds r1, r0, r4 strh r2, [r1] adds r4, 0x2 adds r1, r0, r4 strh r2, [r1] adds r4, 0x2 adds r1, r0, r4 strh r2, [r1] adds r4, 0x2 adds r1, r0, r4 strh r2, [r1] adds r4, 0x2 adds r1, r0, r4 strh r2, [r1] adds r4, 0x2 adds r1, r0, r4 strb r3, [r1] adds r4, 0x1 adds r1, r0, r4 strb r3, [r1] ldr r1, _080BE8C0 @ =0x00002b0e adds r0, r1 strh r2, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080BE8B4: .4byte gSaveBlock1 _080BE8B8: .4byte 0x00002afc _080BE8BC: .4byte 0x00002afe _080BE8C0: .4byte 0x00002b0e thumb_func_end EndMassOutbreak thumb_func_start sub_80BE8C4 sub_80BE8C4: @ 80BE8C4 push {r4,lr} adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r4, 0 bl sub_80BE8EC adds r0, r4, 0 bl UpdateMassOutbreakTimeLeft adds r0, r4, 0 bl sub_80BEE84 adds r0, r4, 0 bl sub_80BEA5C pop {r4} pop {r0} bx r0 thumb_func_end sub_80BE8C4 thumb_func_start sub_80BE8EC sub_80BE8EC: @ 80BE8EC push {r4-r7,lr} lsls r0, 16 lsrs r4, r0, 16 ldr r1, _080BE930 @ =gSaveBlock1 ldr r2, _080BE934 @ =0x00002afc adds r0, r1, r2 ldrh r0, [r0] cmp r0, 0 bne _080BE94C movs r3, 0 adds r5, r1, 0 ldr r7, _080BE938 @ =0x00002738 adds r6, r5, r7 _080BE906: lsls r0, r3, 3 adds r0, r3 lsls r2, r0, 2 adds r1, r2, r5 ldr r7, _080BE938 @ =0x00002738 adds r0, r1, r7 ldrb r0, [r0] cmp r0, 0x29 bne _080BE942 adds r7, 0x1 adds r0, r1, r7 ldrb r0, [r0] cmp r0, 0x1 bne _080BE942 adds r1, r2, r6 ldrh r0, [r1, 0x16] cmp r0, r4 bcs _080BE93C movs r0, 0 strh r0, [r1, 0x16] b _080BE94C .align 2, 0 _080BE930: .4byte gSaveBlock1 _080BE934: .4byte 0x00002afc _080BE938: .4byte 0x00002738 _080BE93C: subs r0, r4 strh r0, [r1, 0x16] b _080BE94C _080BE942: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x17 bls _080BE906 _080BE94C: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80BE8EC thumb_func_start UpdateMassOutbreakTimeLeft UpdateMassOutbreakTimeLeft: @ 80BE954 push {lr} lsls r0, 16 lsrs r1, r0, 16 ldr r0, _080BE96C @ =gSaveBlock1 ldr r3, _080BE970 @ =0x00002b0e adds r2, r0, r3 ldrh r0, [r2] cmp r0, r1 bhi _080BE974 bl EndMassOutbreak b _080BE978 .align 2, 0 _080BE96C: .4byte gSaveBlock1 _080BE970: .4byte 0x00002b0e _080BE974: subs r0, r1 strh r0, [r2] _080BE978: pop {r0} bx r0 thumb_func_end UpdateMassOutbreakTimeLeft thumb_func_start sub_80BE97C sub_80BE97C: @ 80BE97C push {r4,lr} lsls r0, 24 cmp r0, 0 beq _080BE9A4 ldr r4, _080BE9A0 @ =gUnknown_020387E2 ldrh r0, [r4] lsrs r0, 8 cmp r0, 0x4 bls _080BE992 bl sub_80BE9D4 _080BE992: ldrb r0, [r4] strh r0, [r4] cmp r0, 0xFF beq _080BE9C8 adds r0, 0x1 b _080BE9C6 .align 2, 0 _080BE9A0: .4byte gUnknown_020387E2 _080BE9A4: ldr r4, _080BE9D0 @ =gUnknown_020387E2 ldrb r0, [r4] cmp r0, 0x4 bls _080BE9B0 bl sub_80BE9D4 _080BE9B0: ldrh r0, [r4] movs r1, 0xFF lsls r1, 8 ands r1, r0 strh r1, [r4] lsrs r0, r1, 8 cmp r0, 0xFF beq _080BE9C8 movs r2, 0x80 lsls r2, 1 adds r0, r1, r2 _080BE9C6: strh r0, [r4] _080BE9C8: pop {r4} pop {r0} bx r0 .align 2, 0 _080BE9D0: .4byte gUnknown_020387E2 thumb_func_end sub_80BE97C thumb_func_start sub_80BE9D4 sub_80BE9D4: @ 80BE9D4 push {r4,r5,lr} ldr r5, _080BEA3C @ =gSaveBlock1 + 0x2738 adds r0, r5, 0 bl sub_80BF74C ldr r4, _080BEA40 @ =gUnknown_03005D38 strb r0, [r4] lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _080BEA36 movs r0, 0x18 bl sub_80BF1B4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080BEA36 movs r0, 0 ldrsb r0, [r4, r0] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 adds r4, r5 movs r1, 0 movs r0, 0x18 strb r0, [r4] strb r1, [r4, 0x1] ldr r1, _080BEA44 @ =gUnknown_020387E2 ldrh r0, [r1] strb r0, [r4, 0x2] ldrh r0, [r1] lsrs r0, 8 strb r0, [r4, 0x3] ldr r0, _080BEA48 @ =gUnknown_020387E0 ldrh r0, [r0] strh r0, [r4, 0x4] adds r0, r4, 0 adds r0, 0x13 ldr r1, _080BEA4C @ =gSaveBlock2 bl StringCopy adds r0, r4, 0 bl sub_80BE138 movs r0, 0x2 strb r0, [r4, 0x6] _080BEA36: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BEA3C: .4byte gSaveBlock1 + 0x2738 _080BEA40: .4byte gUnknown_03005D38 _080BEA44: .4byte gUnknown_020387E2 _080BEA48: .4byte gUnknown_020387E0 _080BEA4C: .4byte gSaveBlock2 thumb_func_end sub_80BE9D4 thumb_func_start sub_80BEA50 sub_80BEA50: @ 80BEA50 ldr r1, _080BEA58 @ =gUnknown_020387E0 strh r0, [r1] bx lr .align 2, 0 _080BEA58: .4byte gUnknown_020387E0 thumb_func_end sub_80BEA50 thumb_func_start sub_80BEA5C sub_80BEA5C: @ 80BEA5C push {lr} ldr r1, _080BEA78 @ =gSaveBlock1 + 0x2A98 ldrb r0, [r1] cmp r0, 0x19 bne _080BEA84 ldrh r0, [r1, 0x2] cmp r0, 0x13 bhi _080BEA80 ldr r2, _080BEA7C @ =0xfffffca0 adds r0, r1, r2 movs r1, 0x18 bl sub_80BF55C b _080BEA84 .align 2, 0 _080BEA78: .4byte gSaveBlock1 + 0x2A98 _080BEA7C: .4byte 0xfffffca0 _080BEA80: bl sub_80BEA88 _080BEA84: pop {r0} bx r0 thumb_func_end sub_80BEA5C thumb_func_start sub_80BEA88 sub_80BEA88: @ 80BEA88 push {r4-r7,lr} ldr r5, _080BEB0C @ =gSaveBlock1 + 0x2A98 ldr r0, _080BEB10 @ =0x0000ffff bl sub_80BF77C lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 bne _080BEB04 ldr r0, _080BEB14 @ =0xfffffca0 adds r7, r5, r0 adds r0, r7, 0 bl sub_80BF74C ldr r4, _080BEB18 @ =gUnknown_03005D38 strb r0, [r4] lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _080BEB04 movs r0, 0x19 bl sub_80BF1B4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080BEB04 movs r0, 0 ldrsb r0, [r4, r0] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 adds r4, r7 movs r0, 0x19 strb r0, [r4] strb r6, [r4, 0x1] ldrh r0, [r5, 0x2] strh r0, [r4, 0x2] movs r0, 0x5 bl sub_8053108 ldrh r1, [r5, 0x6] subs r0, r1 strh r0, [r4, 0x6] ldrh r0, [r5, 0x4] strh r0, [r4, 0x4] ldrh r0, [r5, 0x8] strh r0, [r4, 0x8] ldrb r0, [r5, 0xA] strb r0, [r4, 0xA] adds r0, r4, 0 adds r0, 0x13 ldr r1, _080BEB1C @ =gSaveBlock2 bl StringCopy adds r0, r4, 0 bl sub_80BE138 movs r0, 0x2 strb r0, [r4, 0xB] _080BEB04: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BEB0C: .4byte gSaveBlock1 + 0x2A98 _080BEB10: .4byte 0x0000ffff _080BEB14: .4byte 0xfffffca0 _080BEB18: .4byte gUnknown_03005D38 _080BEB1C: .4byte gSaveBlock2 thumb_func_end sub_80BEA88 thumb_func_start sub_80BEB20 sub_80BEB20: @ 80BEB20 push {r4-r6,lr} ldr r0, _080BEBAC @ =0x00000804 bl FlagGet lsls r0, 24 cmp r0, 0 beq _080BEBA6 ldr r6, _080BEBB0 @ =gSaveBlock1 + 0x2ABC adds r0, r6, 0 bl sub_80BEBC8 ldr r5, _080BEBB4 @ =gUnknown_03005D38 strb r0, [r5] lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _080BEBA6 ldr r0, _080BEBB8 @ =0x0000028f bl sub_80BF77C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080BEBA6 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 adds r0, 0x1 lsls r0, 16 lsrs r4, r0, 16 lsls r0, r4, 24 lsrs r0, 24 bl sub_80BEE48 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080BEBA6 movs r0, 0 ldrsb r0, [r5, r0] lsls r0, 2 ldr r1, _080BEBBC @ =0xffffd544 adds r2, r6, r1 adds r0, r6, r0 strb r4, [r0] movs r0, 0 ldrsb r0, [r5, r0] lsls r0, 2 adds r0, r2 ldr r1, _080BEBC0 @ =0x00002abe adds r0, r1 movs r1, 0x4 strh r1, [r0] movs r0, 0 ldrsb r0, [r5, r0] lsls r0, 2 adds r0, r2 ldr r1, _080BEBC4 @ =0x00002abd adds r0, r1 movs r1, 0x1 strb r1, [r0] _080BEBA6: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BEBAC: .4byte 0x00000804 _080BEBB0: .4byte gSaveBlock1 + 0x2ABC _080BEBB4: .4byte gUnknown_03005D38 _080BEBB8: .4byte 0x0000028f _080BEBBC: .4byte 0xffffd544 _080BEBC0: .4byte 0x00002abe _080BEBC4: .4byte 0x00002abd thumb_func_end sub_80BEB20 thumb_func_start sub_80BEBC8 sub_80BEBC8: @ 80BEBC8 push {lr} adds r2, r0, 0 movs r1, 0 _080BEBCE: lsls r0, r1, 24 asrs r1, r0, 24 lsls r0, r1, 2 adds r0, r2 ldrb r0, [r0] cmp r0, 0 bne _080BEBE0 adds r0, r1, 0 b _080BEBF0 _080BEBE0: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 asrs r0, 24 cmp r0, 0xF ble _080BEBCE movs r0, 0x1 negs r0, r0 _080BEBF0: pop {r1} bx r1 thumb_func_end sub_80BEBC8 thumb_func_start sub_80BEBF4 sub_80BEBF4: @ 80BEBF4 push {r4,lr} movs r4, 0 _080BEBF8: adds r0, r4, 0 bl sub_80BEC10 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xF bls _080BEBF8 pop {r4} pop {r0} bx r0 thumb_func_end sub_80BEBF4 thumb_func_start sub_80BEC10 sub_80BEC10: @ 80BEC10 lsls r0, 24 ldr r1, _080BEC30 @ =gSaveBlock1 lsrs r0, 22 adds r0, r1 ldr r2, _080BEC34 @ =0x00002abc adds r1, r0, r2 movs r2, 0 strb r2, [r1] ldr r3, _080BEC38 @ =0x00002abd adds r1, r0, r3 strb r2, [r1] ldr r1, _080BEC3C @ =0x00002abe adds r0, r1 strh r2, [r0] bx lr .align 2, 0 _080BEC30: .4byte gSaveBlock1 _080BEC34: .4byte 0x00002abc _080BEC38: .4byte 0x00002abd _080BEC3C: .4byte 0x00002abe thumb_func_end sub_80BEC10 thumb_func_start sub_80BEC40 sub_80BEC40: @ 80BEC40 push {r4-r7,lr} movs r1, 0 ldr r6, _080BEC80 @ =gSaveBlock1 _080BEC46: ldr r3, _080BEC80 @ =gSaveBlock1 lsls r2, r1, 2 adds r0, r2, r3 ldr r4, _080BEC84 @ =0x00002abc adds r0, r4 ldrb r0, [r0] adds r5, r1, 0x1 cmp r0, 0 bne _080BEC92 lsls r0, r5, 24 lsrs r1, r0, 24 cmp r1, 0xF bhi _080BEC92 adds r4, r3, r4 adds r3, r2, r4 _080BEC64: lsls r2, r1, 2 adds r0, r2, r6 ldr r7, _080BEC84 @ =0x00002abc adds r0, r7 ldrb r0, [r0] cmp r0, 0 beq _080BEC88 adds r0, r2, r4 ldr r0, [r0] str r0, [r3] adds r0, r1, 0 bl sub_80BEC10 b _080BEC92 .align 2, 0 _080BEC80: .4byte gSaveBlock1 _080BEC84: .4byte 0x00002abc _080BEC88: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xF bls _080BEC64 _080BEC92: lsls r0, r5, 24 lsrs r1, r0, 24 cmp r1, 0xE bls _080BEC46 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80BEC40 thumb_func_start sub_80BECA0 sub_80BECA0: @ 80BECA0 push {r4,lr} movs r2, 0 ldr r3, _080BECCC @ =gSaveBlock1 _080BECA6: lsls r0, r2, 2 adds r1, r0, r3 ldr r4, _080BECD0 @ =0x00002abc adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0 beq _080BECD4 adds r4, 0x1 adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0x1 bne _080BECD4 adds r4, 0x1 adds r0, r1, r4 ldrh r0, [r0] cmp r0, 0x2 bhi _080BECD4 adds r0, r2, 0 b _080BECE0 .align 2, 0 _080BECCC: .4byte gSaveBlock1 _080BECD0: .4byte 0x00002abc _080BECD4: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xF bls _080BECA6 movs r0, 0xFF _080BECE0: pop {r4} pop {r1} bx r1 thumb_func_end sub_80BECA0 thumb_func_start sub_80BECE8 sub_80BECE8: @ 80BECE8 push {r4,lr} bl sub_80BECA0 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xFF bne _080BED00 ldr r1, _080BECFC @ =gScriptResult movs r0, 0 b _080BED86 .align 2, 0 _080BECFC: .4byte gScriptResult _080BED00: ldr r0, _080BED2C @ =gSaveBlock1 lsls r1, 2 adds r4, r1, r0 ldr r0, _080BED30 @ =0x00002abe adds r1, r4, r0 ldrh r0, [r1] cmp r0, 0 bne _080BED5C ldr r2, _080BED34 @ =0x00002abd adds r1, r4, r2 movs r0, 0x2 strb r0, [r1] ldr r0, _080BED38 @ =gLocalTime ldrb r0, [r0, 0x2] lsls r0, 24 asrs r0, 24 cmp r0, 0x13 bgt _080BED40 ldr r1, _080BED3C @ =gUnknown_083D1444 subs r2, 0x1 b _080BED44 .align 2, 0 _080BED2C: .4byte gSaveBlock1 _080BED30: .4byte 0x00002abe _080BED34: .4byte 0x00002abd _080BED38: .4byte gLocalTime _080BED3C: .4byte gUnknown_083D1444 _080BED40: ldr r1, _080BED54 @ =gUnknown_083D1454 ldr r2, _080BED58 @ =0x00002abc _080BED44: adds r0, r4, r2 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl ShowFieldMessage b _080BED82 .align 2, 0 _080BED54: .4byte gUnknown_083D1454 _080BED58: .4byte 0x00002abc _080BED5C: ldrh r1, [r1] ldr r0, _080BED90 @ =gStringVar1 movs r2, 0 movs r3, 0x1 bl ConvertIntToDecimalStringN ldr r0, _080BED94 @ =0x00002abd adds r1, r4, r0 movs r0, 0 strb r0, [r1] ldr r1, _080BED98 @ =gUnknown_083D1434 ldr r2, _080BED9C @ =0x00002abc adds r0, r4, r2 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl ShowFieldMessage _080BED82: ldr r1, _080BEDA0 @ =gScriptResult movs r0, 0x1 _080BED86: strh r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _080BED90: .4byte gStringVar1 _080BED94: .4byte 0x00002abd _080BED98: .4byte gUnknown_083D1434 _080BED9C: .4byte 0x00002abc _080BEDA0: .4byte gScriptResult thumb_func_end sub_80BECE8 thumb_func_start GetPriceReduction GetPriceReduction: @ 80BEDA4 push {r4,r5,lr} lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 bne _080BEDB4 b _080BEDF6 _080BEDB0: movs r0, 0x1 b _080BEDF8 _080BEDB4: movs r2, 0 ldr r4, _080BEDE0 @ =gSaveBlock1 _080BEDB8: lsls r0, r2, 2 adds r1, r0, r4 ldr r5, _080BEDE4 @ =0x00002abc adds r0, r1, r5 ldrb r0, [r0] cmp r0, r3 bne _080BEDEC ldr r2, _080BEDE8 @ =0x00002abd adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x2 bne _080BEDF6 adds r0, r3, 0 bl IsPriceDiscounted lsls r0, 24 cmp r0, 0 bne _080BEDB0 b _080BEDF6 .align 2, 0 _080BEDE0: .4byte gSaveBlock1 _080BEDE4: .4byte 0x00002abc _080BEDE8: .4byte 0x00002abd _080BEDEC: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xF bls _080BEDB8 _080BEDF6: movs r0, 0 _080BEDF8: pop {r4,r5} pop {r1} bx r1 thumb_func_end GetPriceReduction thumb_func_start IsPriceDiscounted IsPriceDiscounted: @ 80BEE00 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080BEE12 cmp r0, 0x3 beq _080BEE30 _080BEE0E: movs r0, 0x1 b _080BEE3C _080BEE12: ldr r0, _080BEE28 @ =gSaveBlock1 ldrh r1, [r0, 0x4] movs r0, 0x80 lsls r0, 1 cmp r1, r0 bne _080BEE3A ldr r0, _080BEE2C @ =gUnknown_0202E8DE ldrh r0, [r0] cmp r0, 0x1A beq _080BEE0E b _080BEE3A .align 2, 0 _080BEE28: .4byte gSaveBlock1 _080BEE2C: .4byte gUnknown_0202E8DE _080BEE30: ldr r0, _080BEE40 @ =gSaveBlock1 ldrh r1, [r0, 0x4] ldr r0, _080BEE44 @ =0x0000160d cmp r1, r0 beq _080BEE0E _080BEE3A: movs r0, 0 _080BEE3C: pop {r1} bx r1 .align 2, 0 _080BEE40: .4byte gSaveBlock1 _080BEE44: .4byte 0x0000160d thumb_func_end IsPriceDiscounted thumb_func_start sub_80BEE48 sub_80BEE48: @ 80BEE48 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _080BEE56 _080BEE52: movs r0, 0x1 b _080BEE74 _080BEE56: movs r1, 0 ldr r4, _080BEE7C @ =gSaveBlock1 ldr r3, _080BEE80 @ =0x00002abc _080BEE5C: lsls r0, r1, 2 adds r0, r4 adds r0, r3 ldrb r0, [r0] cmp r0, r2 beq _080BEE52 adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xF bls _080BEE5C movs r0, 0 _080BEE74: pop {r4} pop {r1} bx r1 .align 2, 0 _080BEE7C: .4byte gSaveBlock1 _080BEE80: .4byte 0x00002abc thumb_func_end sub_80BEE48 thumb_func_start sub_80BEE84 sub_80BEE84: @ 80BEE84 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 16 lsrs r7, r0, 16 movs r5, 0 ldr r0, _080BEEB8 @ =gSaveBlock1 mov r8, r0 _080BEE94: lsls r0, r5, 2 mov r1, r8 adds r2, r0, r1 ldr r3, _080BEEBC @ =0x00002abc adds r1, r2, r3 ldrb r1, [r1] adds r6, r0, 0 cmp r1, 0 beq _080BEEEC ldr r1, _080BEEC0 @ =0x00002abe adds r0, r2, r1 ldrh r0, [r0] cmp r0, r7 bcs _080BEEC4 adds r0, r5, 0 bl sub_80BEC10 b _080BEEEC .align 2, 0 _080BEEB8: .4byte gSaveBlock1 _080BEEBC: .4byte 0x00002abc _080BEEC0: .4byte 0x00002abe _080BEEC4: ldr r3, _080BEF04 @ =0x00002abd adds r4, r2, r3 ldrb r0, [r4] cmp r0, 0 bne _080BEEDE ldr r0, _080BEF08 @ =0x00000804 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080BEEDE strb r0, [r4] _080BEEDE: mov r0, r8 adds r1, r6, r0 ldr r3, _080BEF0C @ =0x00002abe adds r1, r3 ldrh r0, [r1] subs r0, r7 strh r0, [r1] _080BEEEC: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xF bls _080BEE94 bl sub_80BEC40 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BEF04: .4byte 0x00002abd _080BEF08: .4byte 0x00000804 _080BEF0C: .4byte 0x00002abe thumb_func_end sub_80BEE84 thumb_func_start sub_80BEF10 sub_80BEF10: @ 80BEF10 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 adds r2, r1, 0 cmp r1, 0x1 beq _080BEF50 cmp r1, 0x1 bgt _080BEF2A cmp r1, 0 beq _080BEF34 b _080BEF98 _080BEF2A: cmp r2, 0x2 beq _080BEF6C cmp r2, 0x3 beq _080BEF88 b _080BEF98 _080BEF34: ldr r1, _080BEF48 @ =gUnknown_083D1464 lsls r0, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080BEF4C @ =gUnknown_083CE048 ldr r1, [r1, 0x14] bl StringCopy b _080BEF98 .align 2, 0 _080BEF48: .4byte gUnknown_083D1464 _080BEF4C: .4byte gUnknown_083CE048 _080BEF50: ldr r1, _080BEF64 @ =gUnknown_083D1464 lsls r0, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080BEF68 @ =gUnknown_083CE048 ldr r1, [r1, 0x18] bl StringCopy b _080BEF98 .align 2, 0 _080BEF64: .4byte gUnknown_083D1464 _080BEF68: .4byte gUnknown_083CE048 _080BEF6C: ldr r1, _080BEF80 @ =gUnknown_083D1464 lsls r0, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080BEF84 @ =gUnknown_083CE048 ldr r1, [r1, 0x1C] bl StringCopy b _080BEF98 .align 2, 0 _080BEF80: .4byte gUnknown_083D1464 _080BEF84: .4byte gUnknown_083CE048 _080BEF88: ldr r1, _080BEF9C @ =gUnknown_083D1464 lsls r0, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080BEFA0 @ =gUnknown_083CE048 ldr r1, [r1, 0x20] bl StringCopy _080BEF98: pop {r0} bx r0 .align 2, 0 _080BEF9C: .4byte gUnknown_083D1464 _080BEFA0: .4byte gUnknown_083CE048 thumb_func_end sub_80BEF10 thumb_func_start CopyContestCategoryToStringVar CopyContestCategoryToStringVar: @ 80BEFA4 push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 24 lsrs r0, r1, 24 cmp r0, 0x4 bhi _080BF054 lsls r0, 2 ldr r1, _080BEFBC @ =_080BEFC0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080BEFBC: .4byte _080BEFC0 .align 2, 0 _080BEFC0: .4byte _080BEFD4 .4byte _080BEFF0 .4byte _080BF00C .4byte _080BF028 .4byte _080BF044 _080BEFD4: ldr r1, _080BEFE8 @ =gUnknown_083D1464 lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080BEFEC @ =gUnknown_083CE048 ldr r1, [r1] bl StringCopy b _080BF054 .align 2, 0 _080BEFE8: .4byte gUnknown_083D1464 _080BEFEC: .4byte gUnknown_083CE048 _080BEFF0: ldr r1, _080BF004 @ =gUnknown_083D1464 lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080BF008 @ =gUnknown_083CE048 ldr r1, [r1, 0x4] bl StringCopy b _080BF054 .align 2, 0 _080BF004: .4byte gUnknown_083D1464 _080BF008: .4byte gUnknown_083CE048 _080BF00C: ldr r1, _080BF020 @ =gUnknown_083D1464 lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080BF024 @ =gUnknown_083CE048 ldr r1, [r1, 0x8] bl StringCopy b _080BF054 .align 2, 0 _080BF020: .4byte gUnknown_083D1464 _080BF024: .4byte gUnknown_083CE048 _080BF028: ldr r1, _080BF03C @ =gUnknown_083D1464 lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080BF040 @ =gUnknown_083CE048 ldr r1, [r1, 0xC] bl StringCopy b _080BF054 .align 2, 0 _080BF03C: .4byte gUnknown_083D1464 _080BF040: .4byte gUnknown_083CE048 _080BF044: ldr r1, _080BF058 @ =gUnknown_083D1464 lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080BF05C @ =gUnknown_083CE048 ldr r1, [r1, 0x10] bl StringCopy _080BF054: pop {r0} bx r0 .align 2, 0 _080BF058: .4byte gUnknown_083D1464 _080BF05C: .4byte gUnknown_083CE048 thumb_func_end CopyContestCategoryToStringVar thumb_func_start SetContestCategoryStringVarForInterview SetContestCategoryStringVarForInterview: @ 80BF060 push {lr} ldr r0, _080BF080 @ =gUnknown_0202E8CC ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080BF084 @ =gSaveBlock1 + 0x2738 adds r0, r1 ldrb r1, [r0, 0x13] lsls r1, 29 lsrs r1, 29 movs r0, 0x1 bl CopyContestCategoryToStringVar pop {r0} bx r0 .align 2, 0 _080BF080: .4byte gUnknown_0202E8CC _080BF084: .4byte gSaveBlock1 + 0x2738 thumb_func_end SetContestCategoryStringVarForInterview thumb_func_start sub_80BF088 sub_80BF088: @ 80BF088 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 bl sub_80BF0B8 adds r3, r0, 0 ldr r0, _080BF0B4 @ =gUnknown_083D1464 lsls r4, 2 adds r4, r0 ldr r0, [r4] lsls r3, 24 lsrs r3, 24 adds r1, r5, 0 movs r2, 0 bl ConvertIntToDecimalStringN pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BF0B4: .4byte gUnknown_083D1464 thumb_func_end sub_80BF088 thumb_func_start sub_80BF0B8 sub_80BF0B8: @ 80BF0B8 push {r4,lr} adds r4, r0, 0 movs r1, 0xA bl __divsi3 cmp r0, 0 beq _080BF144 adds r0, r4, 0 movs r1, 0x64 bl __divsi3 cmp r0, 0 bne _080BF0D6 movs r0, 0x2 b _080BF14E _080BF0D6: movs r1, 0xFA lsls r1, 2 adds r0, r4, 0 bl __divsi3 cmp r0, 0 bne _080BF0E8 movs r0, 0x3 b _080BF14E _080BF0E8: ldr r1, _080BF0F8 @ =0x00002710 adds r0, r4, 0 bl __divsi3 cmp r0, 0 bne _080BF0FC movs r0, 0x4 b _080BF14E .align 2, 0 _080BF0F8: .4byte 0x00002710 _080BF0FC: ldr r1, _080BF10C @ =0x000186a0 adds r0, r4, 0 bl __divsi3 cmp r0, 0 bne _080BF110 movs r0, 0x5 b _080BF14E .align 2, 0 _080BF10C: .4byte 0x000186a0 _080BF110: ldr r1, _080BF120 @ =0x000f4240 adds r0, r4, 0 bl __divsi3 cmp r0, 0 bne _080BF124 movs r0, 0x6 b _080BF14E .align 2, 0 _080BF120: .4byte 0x000f4240 _080BF124: ldr r1, _080BF134 @ =0x00989680 adds r0, r4, 0 bl __divsi3 cmp r0, 0 bne _080BF138 movs r0, 0x7 b _080BF14E .align 2, 0 _080BF134: .4byte 0x00989680 _080BF138: ldr r1, _080BF148 @ =0x05f5e100 adds r0, r4, 0 bl __divsi3 cmp r0, 0 beq _080BF14C _080BF144: movs r0, 0x1 b _080BF14E .align 2, 0 _080BF148: .4byte 0x05f5e100 _080BF14C: movs r0, 0x8 _080BF14E: pop {r4} pop {r1} bx r1 thumb_func_end sub_80BF0B8 thumb_func_start sub_80BF154 sub_80BF154: @ 80BF154 push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r1, 0 lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r7, 0 movs r5, 0 _080BF166: lsls r4, r5, 1 adds r0, r6, 0x6 adds r1, r0, r4 ldrh r0, [r1] cmp r0, 0 beq _080BF186 bl itemid_get_market_price lsls r0, 16 lsrs r0, 16 adds r1, r6, 0 adds r1, 0xC adds r1, r4 ldrh r1, [r1] muls r0, r1 adds r7, r0 _080BF186: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bls _080BF166 ldrb r0, [r6, 0x2] cmp r0, 0x1 bne _080BF1A0 asrs r1, r7, 1 mov r0, r8 bl sub_80BF088 b _080BF1A8 _080BF1A0: mov r0, r8 adds r1, r7, 0 bl sub_80BF088 _080BF1A8: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80BF154 thumb_func_start sub_80BF1B4 sub_80BF1B4: @ 80BF1B4 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r7, _080BF1F4 @ =gSaveBlock1 + 0x2738 bl sub_80BFB94 adds r5, r0, 0 movs r4, 0x5 _080BF1C4: lsls r0, r4, 3 adds r0, r4 lsls r0, 2 adds r1, r0, r7 ldrb r0, [r1] cmp r0, r6 bne _080BF1F8 movs r3, 0xFF adds r0, r5, 0 ands r0, r3 adds r2, r1, 0 adds r2, 0x22 ldrb r2, [r2] cmp r0, r2 bne _080BF1F8 lsrs r0, r5, 8 ands r0, r3 adds r1, 0x23 ldrb r1, [r1] cmp r0, r1 bne _080BF1F8 movs r0, 0x1 b _080BF204 .align 2, 0 _080BF1F4: .4byte gSaveBlock1 + 0x2738 _080BF1F8: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x17 bls _080BF1C4 movs r0, 0 _080BF204: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80BF1B4 thumb_func_start sub_80BF20C sub_80BF20C: @ 80BF20C push {r4-r7,lr} movs r2, 0 _080BF210: adds r1, r2, 0x1 lsls r0, r1, 24 lsrs r5, r0, 24 adds r7, r1, 0 cmp r5, 0x2 bhi _080BF248 ldr r6, _080BF258 @ =gUnknown_02038724 lsls r0, r2, 2 adds r4, r0, r6 _080BF222: lsls r0, r5, 2 adds r3, r0, r6 ldrh r0, [r4, 0x2] ldrh r1, [r3, 0x2] cmp r0, r1 bcs _080BF23E ldrh r1, [r4] adds r2, r0, 0 ldrh r0, [r3] strh r0, [r4] ldrh r0, [r3, 0x2] strh r0, [r4, 0x2] strh r1, [r3] strh r2, [r3, 0x2] _080BF23E: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bls _080BF222 _080BF248: lsls r0, r7, 24 lsrs r2, r0, 24 cmp r2, 0x1 bls _080BF210 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BF258: .4byte gUnknown_02038724 thumb_func_end sub_80BF20C thumb_func_start sub_80BF25C sub_80BF25C: @ 80BF25C push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 movs r1, 0 ldr r3, _080BF28C @ =gSaveBlock1 ldr r0, _080BF290 @ =0x00002738 adds r4, r3, r0 _080BF26A: lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r2, r0, r3 ldr r6, _080BF290 @ =0x00002738 adds r0, r2, r6 ldrb r0, [r0] cmp r0, r5 bne _080BF2AE ldr r3, _080BF294 @ =0x00002739 adds r0, r2, r3 ldrb r2, [r0] cmp r2, 0x1 bne _080BF29C ldr r0, _080BF298 @ =gScriptResult strh r2, [r0] b _080BF2BC .align 2, 0 _080BF28C: .4byte gSaveBlock1 _080BF290: .4byte 0x00002738 _080BF294: .4byte 0x00002739 _080BF298: .4byte gScriptResult _080BF29C: adds r0, r4, 0 bl sub_80BF55C adds r0, r4, 0 bl sub_80BF588 bl sub_80BF6D8 b _080BF2BC _080BF2AE: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x4 bls _080BF26A bl sub_80BF6D8 _080BF2BC: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80BF25C thumb_func_start sub_80BF2C4 sub_80BF2C4: @ 80BF2C4 push {lr} ldr r1, _080BF2E0 @ =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, _080BF2E4 @ =gUnknown_0202E8CE ldrh r0, [r0] subs r0, 0x1 cmp r0, 0x6 bhi _080BF330 lsls r0, 2 ldr r1, _080BF2E8 @ =_080BF2EC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080BF2E0: .4byte gScriptResult _080BF2E4: .4byte gUnknown_0202E8CE _080BF2E8: .4byte _080BF2EC .align 2, 0 _080BF2EC: .4byte _080BF308 .4byte _080BF30E .4byte _080BF314 .4byte _080BF31A .4byte _080BF320 .4byte _080BF326 .4byte _080BF32C _080BF308: bl sub_80BF334 b _080BF330 _080BF30E: bl sub_80BF3A4 b _080BF330 _080BF314: bl sub_80BF3DC b _080BF330 _080BF31A: bl sub_80BF46C b _080BF330 _080BF320: bl sub_80BF478 b _080BF330 _080BF326: bl sub_80BF484 b _080BF330 _080BF32C: bl sub_80BF4BC _080BF330: pop {r0} bx r0 thumb_func_end sub_80BF2C4 thumb_func_start sub_80BF334 sub_80BF334: @ 80BF334 push {r4,lr} movs r0, 0x1 bl sub_80BF25C ldr r0, _080BF38C @ =gScriptResult ldrh r0, [r0] cmp r0, 0 bne _080BF384 ldr r4, _080BF390 @ =gStringVar1 bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _080BF394 @ =gPlayerParty adds r0, r1 movs r1, 0xB movs r2, 0 bl GetMonData movs r1, 0xB muls r1, r0 ldr r0, _080BF398 @ =gSpeciesNames adds r1, r0 adds r0, r4, 0 bl StringCopy ldr r0, _080BF39C @ =gUnknown_03005D38 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080BF3A0 @ =gSaveBlock1 + 0x2738 adds r0, r1 adds r0, 0x4 movs r1, 0x6 bl sub_80EB6FC _080BF384: pop {r4} pop {r0} bx r0 .align 2, 0 _080BF38C: .4byte gScriptResult _080BF390: .4byte gStringVar1 _080BF394: .4byte gPlayerParty _080BF398: .4byte gSpeciesNames _080BF39C: .4byte gUnknown_03005D38 _080BF3A0: .4byte gSaveBlock1 + 0x2738 thumb_func_end sub_80BF334 thumb_func_start sub_80BF3A4 sub_80BF3A4: @ 80BF3A4 push {lr} movs r0, 0x2 bl sub_80BF25C ldr r0, _080BF3D0 @ =gScriptResult ldrh r0, [r0] cmp r0, 0 bne _080BF3CC ldr r0, _080BF3D4 @ =gUnknown_03005D38 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080BF3D8 @ =gSaveBlock1 + 0x2738 adds r0, r1 adds r0, 0x4 movs r1, 0x6 bl sub_80EB6FC _080BF3CC: pop {r0} bx r0 .align 2, 0 _080BF3D0: .4byte gScriptResult _080BF3D4: .4byte gUnknown_03005D38 _080BF3D8: .4byte gSaveBlock1 + 0x2738 thumb_func_end sub_80BF3A4 thumb_func_start sub_80BF3DC sub_80BF3DC: @ 80BF3DC push {r4-r6,lr} movs r0, 0x3 bl sub_80BF25C ldr r0, _080BF450 @ =gScriptResult ldrh r0, [r0] cmp r0, 0 bne _080BF448 ldr r6, _080BF454 @ =gStringVar1 bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r5, 0x64 muls r0, r5 ldr r4, _080BF458 @ =gPlayerParty adds r0, r4 movs r1, 0xB movs r2, 0 bl GetMonData movs r1, 0xB muls r1, r0 ldr r0, _080BF45C @ =gSpeciesNames adds r1, r0 adds r0, r6, 0 bl StringCopy bl sub_810F87C lsls r0, 24 lsrs r0, 24 muls r0, r5 adds r0, r4 ldr r4, _080BF460 @ =gStringVar2 movs r1, 0x2 adds r2, r4, 0 bl GetMonData adds r0, r4, 0 bl StringGetEnd10 ldr r0, _080BF464 @ =gUnknown_03005D38 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080BF468 @ =gSaveBlock1 + 0x2738 adds r0, r1 adds r0, 0x1C movs r1, 0x2 bl sub_80EB6FC _080BF448: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BF450: .4byte gScriptResult _080BF454: .4byte gStringVar1 _080BF458: .4byte gPlayerParty _080BF45C: .4byte gSpeciesNames _080BF460: .4byte gStringVar2 _080BF464: .4byte gUnknown_03005D38 _080BF468: .4byte gSaveBlock1 + 0x2738 thumb_func_end sub_80BF3DC thumb_func_start sub_80BF46C sub_80BF46C: @ 80BF46C ldr r1, _080BF474 @ =gScriptResult movs r0, 0x1 strh r0, [r1] bx lr .align 2, 0 _080BF474: .4byte gScriptResult thumb_func_end sub_80BF46C thumb_func_start sub_80BF478 sub_80BF478: @ 80BF478 push {lr} movs r0, 0x5 bl sub_80BF25C pop {r0} bx r0 thumb_func_end sub_80BF478 thumb_func_start sub_80BF484 sub_80BF484: @ 80BF484 push {lr} movs r0, 0x6 bl sub_80BF25C ldr r0, _080BF4B0 @ =gScriptResult ldrh r0, [r0] cmp r0, 0 bne _080BF4AC ldr r0, _080BF4B4 @ =gUnknown_03005D38 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080BF4B8 @ =gSaveBlock1 + 0x2738 adds r0, r1 adds r0, 0x4 movs r1, 0x2 bl sub_80EB6FC _080BF4AC: pop {r0} bx r0 .align 2, 0 _080BF4B0: .4byte gScriptResult _080BF4B4: .4byte gUnknown_03005D38 _080BF4B8: .4byte gSaveBlock1 + 0x2738 thumb_func_end sub_80BF484 thumb_func_start sub_80BF4BC sub_80BF4BC: @ 80BF4BC push {lr} movs r0, 0x7 bl sub_80BF25C ldr r0, _080BF4E8 @ =gScriptResult ldrh r0, [r0] cmp r0, 0 bne _080BF4E4 ldr r0, _080BF4EC @ =gUnknown_03005D38 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080BF4F0 @ =gSaveBlock1 + 0x2738 adds r0, r1 adds r0, 0x18 movs r1, 0x1 bl sub_80EB6FC _080BF4E4: pop {r0} bx r0 .align 2, 0 _080BF4E8: .4byte gScriptResult _080BF4EC: .4byte gUnknown_03005D38 _080BF4F0: .4byte gSaveBlock1 + 0x2738 thumb_func_end sub_80BF4BC thumb_func_start sub_80BF4F4 sub_80BF4F4: @ 80BF4F4 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 movs r1, 0x64 adds r4, r0, 0 muls r4, r1 ldr r0, _080BF530 @ =gPlayerParty adds r4, r0 ldr r5, _080BF534 @ =gStringVar1 adds r0, r4, 0 movs r1, 0x2 adds r2, r5, 0 bl GetMonData adds r0, r4, 0 movs r1, 0xB movs r2, 0 bl GetMonData movs r1, 0xB muls r0, r1 ldr r1, _080BF538 @ =gSpeciesNames adds r0, r1 adds r1, r5, 0 bl StringCompareWithoutExtCtrlCodes cmp r0, 0 beq _080BF53C movs r0, 0x1 b _080BF53E .align 2, 0 _080BF530: .4byte gPlayerParty _080BF534: .4byte gStringVar1 _080BF538: .4byte gSpeciesNames _080BF53C: movs r0, 0 _080BF53E: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80BF4F4 thumb_func_start sub_80BF544 sub_80BF544: @ 80BF544 push {lr} bl sub_810F87C lsls r0, 24 lsrs r0, 24 bl sub_80BF4F4 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_80BF544 thumb_func_start sub_80BF55C sub_80BF55C: @ 80BF55C push {lr} lsls r1, 24 lsrs r1, 24 lsls r2, r1, 3 adds r2, r1 lsls r2, 2 adds r2, r0 movs r0, 0 strb r0, [r2] strb r0, [r2, 0x1] movs r1, 0 adds r2, 0x2 movs r3, 0 _080BF576: adds r0, r2, r1 strb r3, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x21 bls _080BF576 pop {r0} bx r0 thumb_func_end sub_80BF55C thumb_func_start sub_80BF588 sub_80BF588: @ 80BF588 push {r4-r7,lr} adds r4, r0, 0 movs r5, 0 _080BF58E: lsls r0, r5, 3 adds r0, r5 lsls r1, r0, 2 adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0 bne _080BF5D2 adds r0, r5, 0x1 b _080BF5CA _080BF5A0: lsls r0, r2, 3 adds r0, r2 lsls r0, 2 adds r3, r0, r4 ldrb r0, [r3] cmp r0, 0 beq _080BF5C8 adds r1, r4 adds r0, r3, 0 ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} adds r0, r4, 0 adds r1, r2, 0 bl sub_80BF55C b _080BF5D2 _080BF5C8: adds r0, r2, 0x1 _080BF5CA: lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x4 bls _080BF5A0 _080BF5D2: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _080BF58E movs r5, 0x5 _080BF5DE: lsls r0, r5, 3 adds r0, r5 lsls r1, r0, 2 adds r0, r1, r4 ldrb r0, [r0] adds r5, 0x1 cmp r0, 0 bne _080BF62A lsls r0, r5, 24 b _080BF624 _080BF5F2: lsls r0, r2, 3 adds r0, r2 lsls r0, 2 adds r3, r0, r4 ldrb r0, [r3] cmp r0, 0 beq _080BF620 adds r1, r4 adds r0, r3, 0 ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} ldr r0, _080BF61C @ =gSaveBlock1 + 0x2738 adds r1, r2, 0 bl sub_80BF55C b _080BF62A .align 2, 0 _080BF61C: .4byte gSaveBlock1 + 0x2738 _080BF620: adds r0, r2, 0x1 lsls r0, 24 _080BF624: lsrs r2, r0, 24 cmp r2, 0x17 bls _080BF5F2 _080BF62A: lsls r0, r5, 24 lsrs r5, r0, 24 cmp r5, 0x17 bls _080BF5DE pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80BF588 thumb_func_start sub_80BF638 sub_80BF638: @ 80BF638 push {r4,r5,lr} adds r4, r0, 0 adds r0, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r0, 16 lsrs r0, 16 bl sub_80BF674 adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 ldr r0, _080BF66C @ =gUnknown_083D1464 lsls r4, 2 adds r4, r0 ldr r0, [r4] movs r1, 0xB muls r1, r5 ldr r2, _080BF670 @ =gSpeciesNames adds r1, r2 bl StringCopy adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080BF66C: .4byte gUnknown_083D1464 _080BF670: .4byte gSpeciesNames thumb_func_end sub_80BF638 thumb_func_start sub_80BF674 sub_80BF674: @ 80BF674 push {r4-r6,lr} lsls r0, 16 lsrs r5, r0, 16 bl Random lsls r0, 16 lsrs r0, 16 ldr r1, _080BF694 @ =0x0000019b bl __umodsi3 adds r0, 0x1 lsls r0, 16 lsrs r4, r0, 16 adds r6, r4, 0 b _080BF6B2 .align 2, 0 _080BF694: .4byte 0x0000019b _080BF698: cmp r4, 0x1 bne _080BF6A4 ldr r4, _080BF6A0 @ =0x0000019b b _080BF6AA .align 2, 0 _080BF6A0: .4byte 0x0000019b _080BF6A4: subs r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 _080BF6AA: cmp r4, r6 bne _080BF6B2 adds r4, r5, 0 b _080BF6CE _080BF6B2: adds r0, r4, 0 bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0 bl sub_8090D90 lsls r0, 24 asrs r0, 24 cmp r0, 0x1 bne _080BF698 cmp r4, r5 beq _080BF698 _080BF6CE: adds r0, r4, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80BF674 thumb_func_start sub_80BF6D8 sub_80BF6D8: @ 80BF6D8 push {lr} ldr r0, _080BF700 @ =gSaveBlock1 + 0x2738 bl sub_80BF720 ldr r1, _080BF704 @ =gUnknown_03005D38 strb r0, [r1] ldr r2, _080BF708 @ =gUnknown_0202E8D0 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 strh r1, [r2] lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080BF710 ldr r1, _080BF70C @ =gScriptResult movs r0, 0x1 b _080BF714 .align 2, 0 _080BF700: .4byte gSaveBlock1 + 0x2738 _080BF704: .4byte gUnknown_03005D38 _080BF708: .4byte gUnknown_0202E8D0 _080BF70C: .4byte gScriptResult _080BF710: ldr r1, _080BF71C @ =gScriptResult movs r0, 0 _080BF714: strh r0, [r1] pop {r0} bx r0 .align 2, 0 _080BF71C: .4byte gScriptResult thumb_func_end sub_80BF6D8 thumb_func_start sub_80BF720 sub_80BF720: @ 80BF720 push {lr} adds r2, r0, 0 movs r1, 0 _080BF726: lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] cmp r0, 0 bne _080BF73A lsls r0, r1, 24 asrs r0, 24 b _080BF748 _080BF73A: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x4 bls _080BF726 movs r0, 0x1 negs r0, r0 _080BF748: pop {r1} bx r1 thumb_func_end sub_80BF720 thumb_func_start sub_80BF74C sub_80BF74C: @ 80BF74C push {lr} adds r2, r0, 0 movs r1, 0x5 _080BF752: lsls r0, r1, 24 asrs r1, r0, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] cmp r0, 0 bne _080BF768 adds r0, r1, 0 b _080BF778 _080BF768: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 asrs r0, 24 cmp r0, 0x17 ble _080BF752 movs r0, 0x1 negs r0, r0 _080BF778: pop {r1} bx r1 thumb_func_end sub_80BF74C thumb_func_start sub_80BF77C sub_80BF77C: @ 80BF77C push {r4,lr} adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 bl Random lsls r0, 16 lsrs r0, 16 cmp r0, r4 bls _080BF794 movs r0, 0x1 b _080BF796 _080BF794: movs r0, 0 _080BF796: pop {r4} pop {r1} bx r1 thumb_func_end sub_80BF77C thumb_func_start sub_80BF79C sub_80BF79C: @ 80BF79C push {r4-r6,lr} adds r4, r0, 0 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x6 bl __umodsi3 lsls r0, 24 lsrs r2, r0, 24 adds r5, r4, 0x4 ldr r6, _080BF7B8 @ =0x0000ffff b _080BF7C2 .align 2, 0 _080BF7B8: .4byte 0x0000ffff _080BF7BC: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 _080BF7C2: cmp r2, 0x6 bne _080BF7C8 movs r2, 0 _080BF7C8: lsls r1, r2, 1 adds r0, r5, r1 ldrh r0, [r0] adds r3, r4, 0x4 cmp r0, r6 beq _080BF7BC ldr r0, _080BF7E4 @ =gStringVar3 adds r1, r3, r1 ldrh r1, [r1] bl sub_80EB3FC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BF7E4: .4byte gStringVar3 thumb_func_end sub_80BF79C thumb_func_start sub_80BF7E8 sub_80BF7E8: @ 80BF7E8 push {lr} adds r2, r0, 0 movs r3, 0 movs r1, 0 ldrb r0, [r2, 0x4] cmp r0, 0xFF beq _080BF814 adds r2, 0x4 _080BF7F8: adds r0, r2, r1 ldrb r0, [r0] adds r0, r3, r0 lsls r0, 16 lsrs r3, r0, 16 adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xA bhi _080BF814 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0xFF bne _080BF7F8 _080BF814: movs r0, 0x7 ands r3, r0 adds r0, r3, 0 pop {r1} bx r1 thumb_func_end sub_80BF7E8 thumb_func_start sub_80BF820 sub_80BF820: @ 80BF820 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 ldr r4, [sp, 0x1C] lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r6, r2, 24 lsls r3, 16 lsrs r3, 16 lsls r4, 16 lsrs r4, 16 movs r2, 0 movs r7, 0xFF _080BF844: mov r1, sp adds r0, r1, r2 ldrb r1, [r0] orrs r1, r7 strb r1, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x2 bls _080BF844 cmp r3, 0 bne _080BF8A6 ldr r4, [sp, 0x20] adds r4, 0xF adds r0, r4, 0 bl StringLength lsls r0, 16 lsrs r2, r0, 16 cmp r6, 0 bne _080BF874 mov r0, sp adds r1, r4, r5 b _080BF920 _080BF874: cmp r6, 0x1 bne _080BF880 mov r0, sp subs r1, r2, r5 adds r1, r4, r1 b _080BF920 _080BF880: cmp r6, 0x2 bne _080BF892 mov r1, sp adds r0, r4, r5 ldrb r0, [r0] strb r0, [r1] adds r0, r5, 0x1 adds r0, r4, r0 b _080BF950 _080BF892: mov r1, sp subs r0, r2, 0x2 subs r0, r5 adds r0, r4, r0 ldrb r0, [r0] strb r0, [r1] subs r0, r2, 0x1 subs r0, r5 adds r0, r4, r0 b _080BF950 _080BF8A6: cmp r3, 0x1 bne _080BF8F4 ldr r4, [sp, 0x20] adds r4, 0x4 adds r0, r4, 0 bl StringLength lsls r0, 16 lsrs r2, r0, 16 cmp r6, 0 bne _080BF8C2 mov r0, sp adds r1, r4, r5 b _080BF920 _080BF8C2: cmp r6, 0x1 bne _080BF8CE mov r0, sp subs r1, r2, r5 adds r1, r4, r1 b _080BF920 _080BF8CE: cmp r6, 0x2 bne _080BF8E0 mov r1, sp adds r0, r4, r5 ldrb r0, [r0] strb r0, [r1] adds r0, r5, 0x1 adds r0, r4, r0 b _080BF950 _080BF8E0: mov r1, sp subs r0, r2, 0x2 subs r0, r5 adds r0, r4, r0 ldrb r0, [r0] strb r0, [r1] subs r0, r2, 0x1 subs r0, r5 adds r0, r4, r0 b _080BF950 _080BF8F4: movs r0, 0xB muls r4, r0 ldr r7, _080BF910 @ =gSpeciesNames adds r0, r4, r7 bl StringLength lsls r0, 16 lsrs r2, r0, 16 cmp r6, 0 bne _080BF914 mov r0, sp adds r1, r5, r4 b _080BF91E .align 2, 0 _080BF910: .4byte gSpeciesNames _080BF914: cmp r6, 0x1 bne _080BF926 mov r0, sp subs r1, r2, r5 adds r1, r4 _080BF91E: adds r1, r7 _080BF920: ldrb r1, [r1] strb r1, [r0] b _080BF954 _080BF926: cmp r6, 0x2 bne _080BF93A mov r1, sp adds r0, r5, r4 adds r0, r7 ldrb r0, [r0] strb r0, [r1] adds r0, r4, 0x1 adds r0, r5, r0 b _080BF94E _080BF93A: mov r1, sp subs r0, r2, 0x2 subs r0, r5 adds r0, r4 adds r0, r7 ldrb r0, [r0] strb r0, [r1] subs r0, r2, 0x1 subs r0, r5 adds r0, r4 _080BF94E: adds r0, r7 _080BF950: ldrb r0, [r0] strb r0, [r1, 0x1] _080BF954: ldr r0, _080BF970 @ =gUnknown_083D1464 mov r2, r8 lsls r1, r2, 2 adds r1, r0 ldr r0, [r1] mov r1, sp bl StringCopy add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BF970: .4byte gUnknown_083D1464 thumb_func_end sub_80BF820 thumb_func_start sub_80BF974 sub_80BF974: @ 80BF974 push {r4,lr} movs r1, 0 ldr r4, _080BF994 @ =gSaveBlock1 ldr r0, _080BF998 @ =gUnknown_0202E8CC ldrh r2, [r0] ldr r3, _080BF99C @ =0x00002738 _080BF980: lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, r3 ldrb r0, [r0] cmp r0, r2 bne _080BF9A0 movs r0, 0x1 b _080BF9AC .align 2, 0 _080BF994: .4byte gSaveBlock1 _080BF998: .4byte gUnknown_0202E8CC _080BF99C: .4byte 0x00002738 _080BF9A0: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x4 bls _080BF980 movs r0, 0 _080BF9AC: pop {r4} pop {r1} bx r1 thumb_func_end sub_80BF974 thumb_func_start sub_80BF9B4 sub_80BF9B4: @ 80BF9B4 push {r4,lr} ldr r0, _080BF9E0 @ =gUnknown_0202E8CC ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080BF9E4 @ =gPlayerParty adds r0, r1 ldr r4, _080BF9E8 @ =gStringVar1 movs r1, 0x2 adds r2, r4, 0 bl GetMonData ldr r0, _080BF9EC @ =gStringVar3 adds r1, r4, 0 bl StringCompareWithoutExtCtrlCodes cmp r0, 0 beq _080BF9F0 bl sub_80BE478 movs r0, 0x1 b _080BF9F2 .align 2, 0 _080BF9E0: .4byte gUnknown_0202E8CC _080BF9E4: .4byte gPlayerParty _080BF9E8: .4byte gStringVar1 _080BF9EC: .4byte gStringVar3 _080BF9F0: movs r0, 0 _080BF9F2: pop {r4} pop {r1} bx r1 thumb_func_end sub_80BF9B4 thumb_func_start sub_80BF9F8 sub_80BF9F8: @ 80BF9F8 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0x8 ldr r0, _080BFAA0 @ =gUnknown_0202E8CC mov r9, r0 ldrh r0, [r0] movs r1, 0x64 mov r8, r1 mov r1, r8 muls r1, r0 adds r0, r1, 0 ldr r6, _080BFAA4 @ =gPlayerParty adds r0, r6 ldr r2, _080BFAA8 @ =gStringVar3 movs r1, 0x2 bl GetMonData mov r1, r9 ldrh r0, [r1] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r6 ldr r1, _080BFAAC @ =gStringVar2 mov r10, r1 movs r1, 0x2 mov r2, r10 bl GetMonData mov r1, r9 ldrh r0, [r1] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r6 movs r1, 0xB movs r2, 0 bl GetMonData adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 mov r1, r9 ldrh r0, [r1] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r6 bl GetMonGender adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 mov r1, r9 ldrh r0, [r1] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r6 movs r1, 0 movs r2, 0 bl GetMonData str r0, [sp] ldr r0, _080BFAB0 @ =c2_080CC144 str r0, [sp, 0x4] movs r0, 0x3 mov r1, r10 adds r2, r5, 0 adds r3, r4, 0 bl DoNamingScreen add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BFAA0: .4byte gUnknown_0202E8CC _080BFAA4: .4byte gPlayerParty _080BFAA8: .4byte gStringVar3 _080BFAAC: .4byte gStringVar2 _080BFAB0: .4byte c2_080CC144 thumb_func_end sub_80BF9F8 thumb_func_start c2_080CC144 c2_080CC144: @ 80BFAB4 push {lr} ldr r0, _080BFAD4 @ =gUnknown_0202E8CC ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080BFAD8 @ =gPlayerParty adds r0, r1 ldr r2, _080BFADC @ =gStringVar2 movs r1, 0x2 bl SetMonData bl c2_exit_to_overworld_1_continue_scripts_restart_music pop {r0} bx r0 .align 2, 0 _080BFAD4: .4byte gUnknown_0202E8CC _080BFAD8: .4byte gPlayerParty _080BFADC: .4byte gStringVar2 thumb_func_end c2_080CC144 thumb_func_start sub_80BFAE0 sub_80BFAE0: @ 80BFAE0 push {r4,lr} ldr r0, _080BFB04 @ =gUnknown_0202E8CC ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080BFB08 @ =gPlayerParty adds r0, r1 ldr r4, _080BFB0C @ =gStringVar1 movs r1, 0x2 adds r2, r4, 0 bl GetMonData adds r0, r4, 0 bl StringGetEnd10 pop {r4} pop {r0} bx r0 .align 2, 0 _080BFB04: .4byte gUnknown_0202E8CC _080BFB08: .4byte gPlayerParty _080BFB0C: .4byte gStringVar1 thumb_func_end sub_80BFAE0 thumb_func_start sub_80BFB10 sub_80BFB10: @ 80BFB10 push {r4,lr} bl sub_80BFB94 adds r4, r0, 0 ldr r0, _080BFB38 @ =gUnknown_0202E8CC ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080BFB3C @ =gPlayerParty adds r0, r1 movs r1, 0x1 movs r2, 0 bl GetMonData cmp r4, r0 bne _080BFB44 ldr r1, _080BFB40 @ =gScriptResult movs r0, 0 b _080BFB48 .align 2, 0 _080BFB38: .4byte gUnknown_0202E8CC _080BFB3C: .4byte gPlayerParty _080BFB40: .4byte gScriptResult _080BFB44: ldr r1, _080BFB50 @ =gScriptResult movs r0, 0x1 _080BFB48: strh r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _080BFB50: .4byte gScriptResult thumb_func_end sub_80BFB10 thumb_func_start sub_80BFB54 sub_80BFB54: @ 80BFB54 push {lr} lsls r0, 24 lsrs r1, r0, 24 adds r2, r1, 0 cmp r1, 0 beq _080BFB8A subs r0, r1, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x13 bhi _080BFB6E movs r0, 0x2 b _080BFB90 _080BFB6E: adds r0, r1, 0 subs r0, 0x15 lsls r0, 24 lsrs r0, 24 cmp r0, 0x13 bhi _080BFB7E movs r0, 0x3 b _080BFB90 _080BFB7E: adds r0, r2, 0 subs r0, 0x29 lsls r0, 24 lsrs r0, 24 cmp r0, 0x13 bls _080BFB8E _080BFB8A: movs r0, 0 b _080BFB90 _080BFB8E: movs r0, 0x4 _080BFB90: pop {r1} bx r1 thumb_func_end sub_80BFB54 thumb_func_start sub_80BFB94 sub_80BFB94: @ 80BFB94 ldr r2, _080BFBAC @ =gSaveBlock2 ldrb r0, [r2, 0xD] lsls r0, 24 ldrb r1, [r2, 0xC] lsls r1, 16 orrs r0, r1 ldrb r1, [r2, 0xB] lsls r1, 8 orrs r0, r1 ldrb r1, [r2, 0xA] orrs r0, r1 bx lr .align 2, 0 _080BFBAC: .4byte gSaveBlock2 thumb_func_end sub_80BFB94 thumb_func_start CheckForBigMovieOrEmergencyNewsOnTV CheckForBigMovieOrEmergencyNewsOnTV: @ 80BFBB0 push {lr} ldr r1, _080BFBD0 @ =gSaveBlock1 movs r0, 0x4 ldrsb r0, [r1, r0] cmp r0, 0x1 bne _080BFBCC ldr r0, _080BFBD4 @ =gSaveBlock2 ldrb r0, [r0, 0x8] cmp r0, 0 bne _080BFBD8 movs r0, 0x5 ldrsb r0, [r1, r0] cmp r0, 0 beq _080BFBE0 _080BFBCC: movs r0, 0 b _080BFC0A .align 2, 0 _080BFBD0: .4byte gSaveBlock1 _080BFBD4: .4byte gSaveBlock2 _080BFBD8: movs r0, 0x5 ldrsb r0, [r1, r0] cmp r0, 0x2 bne _080BFBCC _080BFBE0: ldr r0, _080BFC04 @ =0x0000085d bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080BFBFE movs r0, 0x83 lsls r0, 4 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080BFC08 _080BFBFE: movs r0, 0x1 b _080BFC0A .align 2, 0 _080BFC04: .4byte 0x0000085d _080BFC08: movs r0, 0x2 _080BFC0A: pop {r1} bx r1 thumb_func_end CheckForBigMovieOrEmergencyNewsOnTV thumb_func_start GetMomOrDadStringForTVMessage GetMomOrDadStringForTVMessage: @ 80BFC10 push {r4,lr} ldr r1, _080BFC40 @ =gSaveBlock1 movs r0, 0x4 ldrsb r0, [r1, r0] cmp r0, 0x1 bne _080BFC6C ldr r0, _080BFC44 @ =gSaveBlock2 ldrb r0, [r0, 0x8] cmp r0, 0 bne _080BFC54 movs r0, 0x5 ldrsb r0, [r1, r0] cmp r0, 0 bne _080BFC6C ldr r0, _080BFC48 @ =gStringVar1 ldr r1, _080BFC4C @ =gOtherText_Mom bl StringCopy ldr r0, _080BFC50 @ =0x00004003 movs r1, 0x1 bl VarSet b _080BFC6C .align 2, 0 _080BFC40: .4byte gSaveBlock1 _080BFC44: .4byte gSaveBlock2 _080BFC48: .4byte gStringVar1 _080BFC4C: .4byte gOtherText_Mom _080BFC50: .4byte 0x00004003 _080BFC54: movs r0, 0x5 ldrsb r0, [r1, r0] cmp r0, 0x2 bne _080BFC6C ldr r0, _080BFCB4 @ =gStringVar1 ldr r1, _080BFCB8 @ =gOtherText_Mom bl StringCopy ldr r0, _080BFCBC @ =0x00004003 movs r1, 0x1 bl VarSet _080BFC6C: ldr r4, _080BFCBC @ =0x00004003 adds r0, r4, 0 bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 beq _080BFCAA adds r0, r4, 0 bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 beq _080BFCC0 adds r0, r4, 0 bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 bls _080BFCD4 adds r0, r4, 0 bl VarGet lsls r0, 16 lsrs r0, 16 movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _080BFCC0 _080BFCAA: ldr r0, _080BFCB4 @ =gStringVar1 ldr r1, _080BFCB8 @ =gOtherText_Mom bl StringCopy b _080BFD10 .align 2, 0 _080BFCB4: .4byte gStringVar1 _080BFCB8: .4byte gOtherText_Mom _080BFCBC: .4byte 0x00004003 _080BFCC0: ldr r0, _080BFCCC @ =gStringVar1 ldr r1, _080BFCD0 @ =gOtherText_Dad bl StringCopy b _080BFD10 .align 2, 0 _080BFCCC: .4byte gStringVar1 _080BFCD0: .4byte gOtherText_Dad _080BFCD4: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080BFD00 ldr r0, _080BFCF8 @ =gStringVar1 ldr r1, _080BFCFC @ =gOtherText_Mom bl StringCopy adds r0, r4, 0 movs r1, 0x1 bl VarSet b _080BFD10 .align 2, 0 _080BFCF8: .4byte gStringVar1 _080BFCFC: .4byte gOtherText_Mom _080BFD00: ldr r0, _080BFD18 @ =gStringVar1 ldr r1, _080BFD1C @ =gOtherText_Dad bl StringCopy adds r0, r4, 0 movs r1, 0x2 bl VarSet _080BFD10: pop {r4} pop {r0} bx r0 .align 2, 0 _080BFD18: .4byte gStringVar1 _080BFD1C: .4byte gOtherText_Dad thumb_func_end GetMomOrDadStringForTVMessage thumb_func_start sub_80BFD20 sub_80BFD20: @ 80BFD20 push {lr} ldr r0, _080BFD3C @ =0x000040bc movs r1, 0 bl VarSet ldr r0, _080BFD40 @ =gSaveBlock1 ldrb r1, [r0, 0x5] ldrb r2, [r0, 0x4] movs r0, 0x5 bl RemoveFieldObjectByLocalIdAndMap pop {r0} bx r0 .align 2, 0 _080BFD3C: .4byte 0x000040bc _080BFD40: .4byte gSaveBlock1 thumb_func_end sub_80BFD20 thumb_func_start sub_80BFD44 sub_80BFD44: @ 80BFD44 push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r0 adds r7, r1, 0 lsls r2, 24 lsrs r6, r2, 24 movs r4, 0 _080BFD54: lsls r0, r4, 3 subs r0, r4 lsls r0, 5 adds r0, r4 lsls r0, 2 ldr r5, _080BFD8C @ =0x02007000 adds r0, r5 adds r1, r4, 0 muls r1, r7 add r1, r8 movs r2, 0xE1 lsls r2, 2 bl memcpy adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _080BFD54 adds r4, r5, 0 cmp r6, 0x1 beq _080BFDBC cmp r6, 0x1 bgt _080BFD90 cmp r6, 0 beq _080BFD9A b _080BFDFC .align 2, 0 _080BFD8C: .4byte 0x02007000 _080BFD90: cmp r6, 0x2 beq _080BFDCC cmp r6, 0x3 beq _080BFDE8 b _080BFDFC _080BFD9A: ldr r0, _080BFDB4 @ =gSaveBlock1 + 0x2738 movs r2, 0xE1 lsls r2, 2 adds r1, r4, r2 movs r3, 0xE1 lsls r3, 3 adds r2, r4, r3 ldr r5, _080BFDB8 @ =0x00000a8c adds r3, r4, r5 bl sub_80BFE24 b _080BFDFC .align 2, 0 _080BFDB4: .4byte gSaveBlock1 + 0x2738 _080BFDB8: .4byte 0x00000a8c _080BFDBC: ldr r1, _080BFDC8 @ =gSaveBlock1 + 0x2738 movs r0, 0xE1 lsls r0, 3 adds r2, r4, r0 b _080BFDD4 .align 2, 0 _080BFDC8: .4byte gSaveBlock1 + 0x2738 _080BFDCC: movs r0, 0xE1 lsls r0, 2 adds r1, r4, r0 ldr r2, _080BFDE0 @ =gSaveBlock1 + 0x2738 _080BFDD4: ldr r5, _080BFDE4 @ =0x00000a8c adds r3, r4, r5 adds r0, r4, 0 bl sub_80BFE24 b _080BFDFC .align 2, 0 _080BFDE0: .4byte gSaveBlock1 + 0x2738 _080BFDE4: .4byte 0x00000a8c _080BFDE8: movs r0, 0xE1 lsls r0, 2 adds r1, r5, r0 movs r3, 0xE1 lsls r3, 3 adds r2, r5, r3 ldr r3, _080BFE20 @ =gSaveBlock1 + 0x2738 adds r0, r5, 0 bl sub_80BFE24 _080BFDFC: ldr r4, _080BFE20 @ =gSaveBlock1 + 0x2738 adds r0, r4, 0 bl sub_80BF588 bl sub_80C04A0 adds r0, r4, 0 bl sub_80BF588 bl sub_80C01D4 bl sub_80C0408 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BFE20: .4byte gSaveBlock1 + 0x2738 thumb_func_end sub_80BFD44 thumb_func_start sub_80BFE24 sub_80BFE24: @ 80BFE24 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 str r0, [sp, 0x10] str r1, [sp, 0x14] str r2, [sp, 0x18] str r3, [sp, 0x1C] add r0, sp, 0x10 str r0, [sp] add r0, sp, 0x14 str r0, [sp, 0x4] add r0, sp, 0x18 str r0, [sp, 0x8] add r0, sp, 0x1C str r0, [sp, 0xC] bl GetLinkPlayerCount ldr r1, _080BFEA0 @ =gUnknown_03000720 strb r0, [r1] _080BFE50: movs r6, 0 ldr r0, _080BFEA0 @ =gUnknown_03000720 ldrb r1, [r0] cmp r6, r1 bcs _080BFE50 mov r10, r0 _080BFE5C: cmp r6, 0 bne _080BFE64 ldr r2, _080BFEA4 @ =gUnknown_020387E4 strb r6, [r2] _080BFE64: lsls r4, r6, 2 mov r3, sp adds r0, r3, r4 ldr r0, [r0] ldr r0, [r0] bl sub_80C019C ldr r1, _080BFEA8 @ =gUnknown_03000722 strb r0, [r1] lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 adds r7, r4, 0 cmp r0, r1 bne _080BFEAC ldr r1, _080BFEA4 @ =gUnknown_020387E4 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 mov r2, r10 ldrb r2, [r2] cmp r0, r2 beq _080BFF58 adds r6, 0x1 mov r9, r6 b _080BFF3C .align 2, 0 _080BFEA0: .4byte gUnknown_03000720 _080BFEA4: .4byte gUnknown_020387E4 _080BFEA8: .4byte gUnknown_03000722 _080BFEAC: movs r5, 0 mov r3, r10 ldrb r0, [r3] subs r0, 0x1 adds r2, r6, 0x1 mov r9, r2 cmp r5, r0 bge _080BFF22 ldr r3, _080BFF4C @ =gUnknown_03000720 mov r8, r3 _080BFEC0: adds r0, r6, r5 adds r4, r0, 0x1 mov r0, r8 ldrb r1, [r0] adds r0, r4, 0 bl __modsi3 lsls r0, 2 add r0, sp ldr r0, [r0] ldr r0, [r0] bl sub_80BF74C ldr r1, _080BFF50 @ =gUnknown_03005D38 strb r0, [r1] lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _080BFF12 mov r2, r8 ldrb r1, [r2] adds r0, r4, 0 bl __modsi3 adds r2, r0, 0 lsls r0, r2, 2 add r0, sp ldr r0, [r0] mov r3, sp adds r1, r3, r7 ldr r1, [r1] lsls r2, 24 lsrs r2, 24 bl sub_80BFF68 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080BFF22 _080BFF12: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 mov r1, r8 ldrb r0, [r1] subs r0, 0x1 cmp r5, r0 blt _080BFEC0 _080BFF22: mov r2, r10 ldrb r0, [r2] subs r0, 0x1 cmp r5, r0 bne _080BFF3C mov r3, sp adds r0, r3, r7 ldr r0, [r0] ldr r0, [r0] ldr r1, _080BFF54 @ =gUnknown_03000722 ldrb r1, [r1] bl sub_80BF55C _080BFF3C: mov r1, r9 lsls r0, r1, 24 lsrs r6, r0, 24 mov r2, r10 ldrb r2, [r2] cmp r6, r2 bcc _080BFE5C b _080BFE50 .align 2, 0 _080BFF4C: .4byte gUnknown_03000720 _080BFF50: .4byte gUnknown_03005D38 _080BFF54: .4byte gUnknown_03000722 _080BFF58: add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80BFE24 thumb_func_start sub_80BFF68 sub_80BFF68: @ 80BFF68 push {r4-r7,lr} sub sp, 0x4 lsls r2, 24 lsrs r7, r2, 24 ldr r4, [r0] ldr r6, [r1] movs r5, 0 ldr r2, _080BFFA4 @ =gUnknown_03000722 movs r1, 0 ldrsb r1, [r2, r1] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r6 ldrb r0, [r0] str r2, [sp] bl sub_80BFB54 lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 ldr r2, [sp] cmp r0, 0x3 beq _080BFFD8 cmp r0, 0x3 bgt _080BFFA8 cmp r0, 0x2 beq _080BFFAE b _080C0026 .align 2, 0 _080BFFA4: .4byte gUnknown_03000722 _080BFFA8: cmp r1, 0x4 beq _080C0000 b _080C0026 _080BFFAE: ldr r0, _080BFFD4 @ =gUnknown_03005D38 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r4, r0 ldrb r2, [r2] lsls r2, 24 asrs r2, 24 lsls r1, r2, 3 adds r1, r2 lsls r1, 2 adds r1, r6, r1 adds r2, r7, 0 bl sub_80C004C b _080C0022 .align 2, 0 _080BFFD4: .4byte gUnknown_03005D38 _080BFFD8: ldr r0, _080BFFFC @ =gUnknown_03005D38 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r4, r0 ldrb r2, [r2] lsls r2, 24 asrs r2, 24 lsls r1, r2, 3 adds r1, r2 lsls r1, 2 adds r1, r6, r1 adds r2, r7, 0 bl sub_80C00B4 b _080C0022 .align 2, 0 _080BFFFC: .4byte gUnknown_03005D38 _080C0000: ldr r0, _080C0030 @ =gUnknown_03005D38 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r4, r0 ldrb r2, [r2] lsls r2, 24 asrs r2, 24 lsls r1, r2, 3 adds r1, r2 lsls r1, 2 adds r1, r6, r1 adds r2, r7, 0 bl sub_80C0134 _080C0022: lsls r0, 24 lsrs r5, r0, 24 _080C0026: cmp r5, 0x1 beq _080C0034 movs r0, 0 b _080C0040 .align 2, 0 _080C0030: .4byte gUnknown_03005D38 _080C0034: ldr r0, _080C0048 @ =gUnknown_03000722 ldrb r1, [r0] adds r0, r6, 0 bl sub_80BF55C movs r0, 0x1 _080C0040: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080C0048: .4byte gUnknown_03000722 thumb_func_end sub_80BFF68 thumb_func_start sub_80C004C sub_80C004C: @ 80C004C push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 lsls r0, r2, 24 lsrs r0, 24 bl GetLinkPlayerTrainerId adds r5, r0, 0 movs r2, 0xFF ands r0, r2 adds r1, r4, 0 adds r1, 0x22 ldrb r1, [r1] cmp r0, r1 bne _080C007C lsrs r0, r5, 8 ands r0, r2 adds r1, r4, 0 adds r1, 0x23 ldrb r1, [r1] cmp r0, r1 bne _080C007C movs r0, 0 b _080C00AC _080C007C: adds r1, r4, 0 adds r1, 0x20 ldrb r0, [r1] adds r2, r4, 0 adds r2, 0x22 strb r0, [r2] adds r3, r4, 0 adds r3, 0x21 ldrb r0, [r3] adds r2, 0x1 strb r0, [r2] strb r5, [r1] lsrs r0, r5, 8 strb r0, [r3] adds r1, r6, 0 adds r0, r4, 0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} movs r0, 0x1 strb r0, [r6, 0x1] _080C00AC: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80C004C thumb_func_start sub_80C00B4 sub_80C00B4: @ 80C00B4 push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 lsls r0, r2, 24 lsrs r0, 24 bl GetLinkPlayerTrainerId adds r2, r0, 0 movs r3, 0xFF ands r0, r3 adds r1, r4, 0 adds r1, 0x20 ldrb r1, [r1] cmp r0, r1 bne _080C00E0 lsrs r0, r2, 8 ands r0, r3 adds r1, r4, 0 adds r1, 0x21 ldrb r1, [r1] cmp r0, r1 beq _080C0100 _080C00E0: movs r3, 0xFF adds r0, r2, 0 ands r0, r3 adds r1, r4, 0 adds r1, 0x22 lsrs r5, r2, 8 ldrb r1, [r1] cmp r0, r1 bne _080C0104 adds r0, r5, 0 ands r0, r3 adds r1, r4, 0 adds r1, 0x23 ldrb r1, [r1] cmp r0, r1 bne _080C0104 _080C0100: movs r0, 0 b _080C012C _080C0104: ldrb r1, [r4, 0x1E] adds r0, r4, 0 adds r0, 0x20 strb r1, [r0] ldrb r0, [r4, 0x1F] adds r1, r4, 0 adds r1, 0x21 strb r0, [r1] strb r2, [r4, 0x1E] strb r5, [r4, 0x1F] adds r1, r6, 0 adds r0, r4, 0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} movs r0, 0x1 strb r0, [r6, 0x1] _080C012C: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80C00B4 thumb_func_start sub_80C0134 sub_80C0134: @ 80C0134 push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 lsls r0, r2, 24 lsrs r0, 24 bl GetLinkPlayerTrainerId adds r5, r0, 0 movs r2, 0xFF ands r0, r2 adds r1, r4, 0 adds r1, 0x22 ldrb r1, [r1] cmp r0, r1 bne _080C0164 lsrs r0, r5, 8 ands r0, r2 adds r1, r4, 0 adds r1, 0x23 ldrb r1, [r1] cmp r0, r1 bne _080C0164 movs r0, 0 b _080C0196 _080C0164: adds r1, r4, 0 adds r1, 0x20 ldrb r0, [r1] adds r2, r4, 0 adds r2, 0x22 strb r0, [r2] adds r3, r4, 0 adds r3, 0x21 ldrb r0, [r3] adds r2, 0x1 strb r0, [r2] strb r5, [r1] lsrs r0, r5, 8 strb r0, [r3] adds r1, r6, 0 adds r0, r4, 0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} movs r0, 0x1 strb r0, [r6, 0x1] strh r0, [r6, 0x16] _080C0196: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80C0134 thumb_func_start sub_80C019C sub_80C019C: @ 80C019C push {lr} adds r3, r0, 0 movs r2, 0 _080C01A2: lsls r0, r2, 3 adds r0, r2 lsls r0, 2 adds r1, r0, r3 ldrb r0, [r1, 0x1] cmp r0, 0 bne _080C01C2 ldrb r0, [r1] subs r0, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3B bhi _080C01C2 lsls r0, r2, 24 asrs r0, 24 b _080C01D0 _080C01C2: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x17 bls _080C01A2 movs r0, 0x1 negs r0, r0 _080C01D0: pop {r1} bx r1 thumb_func_end sub_80C019C thumb_func_start sub_80C01D4 sub_80C01D4: @ 80C01D4 push {r4-r6,lr} movs r6, 0 _080C01D8: ldr r0, _080C01F8 @ =gSaveBlock1 lsls r2, r6, 3 adds r1, r2, r6 lsls r1, 2 adds r1, r0 ldr r0, _080C01FC @ =0x00002738 adds r1, r0 ldrb r0, [r1] cmp r0, 0x29 bls _080C01EE b _080C038C _080C01EE: lsls r0, 2 ldr r1, _080C0200 @ =_080C0204 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C01F8: .4byte gSaveBlock1 _080C01FC: .4byte 0x00002738 _080C0200: .4byte _080C0204 .align 2, 0 _080C0204: .4byte _080C0394 .4byte _080C02AC .4byte _080C0394 .4byte _080C02BC .4byte _080C02CC .4byte _080C02DC .4byte _080C02F8 .4byte _080C0308 .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C0324 .4byte _080C0394 .4byte _080C0334 .4byte _080C0350 .4byte _080C0368 .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C0394 _080C02AC: adds r0, r2, r6 lsls r0, 2 ldr r1, _080C02B8 @ =gSaveBlock1 + 0x2738 adds r0, r1 ldrh r0, [r0, 0x2] b _080C035A .align 2, 0 _080C02B8: .4byte gSaveBlock1 + 0x2738 _080C02BC: adds r0, r2, r6 lsls r0, 2 ldr r1, _080C02C8 @ =gSaveBlock1 + 0x2738 adds r0, r1 ldrh r0, [r0, 0x2] b _080C035A .align 2, 0 _080C02C8: .4byte gSaveBlock1 + 0x2738 _080C02CC: adds r0, r2, r6 lsls r0, 2 ldr r1, _080C02D8 @ =gSaveBlock1 + 0x2738 adds r0, r1 ldrh r0, [r0, 0x6] b _080C035A .align 2, 0 _080C02D8: .4byte gSaveBlock1 + 0x2738 _080C02DC: adds r4, r2, r6 lsls r4, 2 ldr r0, _080C02F4 @ =gSaveBlock1 + 0x2738 adds r4, r0 ldrh r0, [r4, 0x2] lsls r5, r6, 24 lsrs r5, 24 adds r1, r5, 0 bl sub_80C03C8 ldrh r0, [r4, 0x1C] b _080C037E .align 2, 0 _080C02F4: .4byte gSaveBlock1 + 0x2738 _080C02F8: adds r0, r2, r6 lsls r0, 2 ldr r1, _080C0304 @ =gSaveBlock1 + 0x2738 adds r0, r1 ldrh r0, [r0, 0x2] b _080C035A .align 2, 0 _080C0304: .4byte gSaveBlock1 + 0x2738 _080C0308: adds r4, r2, r6 lsls r4, 2 ldr r0, _080C0320 @ =gSaveBlock1 + 0x2738 adds r4, r0 ldrh r0, [r4, 0xA] lsls r5, r6, 24 lsrs r5, 24 adds r1, r5, 0 bl sub_80C03C8 ldrh r0, [r4, 0x14] b _080C037E .align 2, 0 _080C0320: .4byte gSaveBlock1 + 0x2738 _080C0324: adds r0, r2, r6 lsls r0, 2 ldr r1, _080C0330 @ =gSaveBlock1 + 0x2738 adds r0, r1 ldrh r0, [r0, 0x10] b _080C035A .align 2, 0 _080C0330: .4byte gSaveBlock1 + 0x2738 _080C0334: adds r4, r2, r6 lsls r4, 2 ldr r0, _080C034C @ =gSaveBlock1 + 0x2738 adds r4, r0 ldrh r0, [r4, 0xC] lsls r5, r6, 24 lsrs r5, 24 adds r1, r5, 0 bl sub_80C03C8 ldrh r0, [r4, 0xE] b _080C037E .align 2, 0 _080C034C: .4byte gSaveBlock1 + 0x2738 _080C0350: adds r0, r2, r6 lsls r0, 2 ldr r1, _080C0364 @ =gSaveBlock1 + 0x2738 adds r0, r1 ldrh r0, [r0, 0x4] _080C035A: lsls r1, r6, 24 lsrs r1, 24 bl sub_80C03C8 b _080C0394 .align 2, 0 _080C0364: .4byte gSaveBlock1 + 0x2738 _080C0368: adds r4, r2, r6 lsls r4, 2 ldr r0, _080C0388 @ =gSaveBlock1 + 0x2738 adds r4, r0 ldrh r0, [r4, 0x8] lsls r5, r6, 24 lsrs r5, 24 adds r1, r5, 0 bl sub_80C03C8 ldrh r0, [r4, 0x4] _080C037E: adds r1, r5, 0 bl sub_80C03C8 b _080C0394 .align 2, 0 _080C0388: .4byte gSaveBlock1 + 0x2738 _080C038C: lsls r0, r6, 24 lsrs r0, 24 bl sub_80C03A8 _080C0394: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x17 bhi _080C03A0 b _080C01D8 _080C03A0: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80C01D4 thumb_func_start sub_80C03A8 sub_80C03A8: @ 80C03A8 lsls r0, 24 lsrs r0, 24 ldr r2, _080C03C0 @ =gSaveBlock1 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 adds r1, r2 ldr r0, _080C03C4 @ =0x00002739 adds r1, r0 movs r0, 0 strb r0, [r1] bx lr .align 2, 0 _080C03C0: .4byte gSaveBlock1 _080C03C4: .4byte 0x00002739 thumb_func_end sub_80C03A8 thumb_func_start sub_80C03C8 sub_80C03C8: @ 80C03C8 push {r4,lr} lsls r0, 16 lsrs r0, 16 lsls r1, 24 lsrs r4, r1, 24 bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0 bl sub_8090D90 lsls r0, 24 asrs r2, r0, 24 cmp r2, 0 bne _080C03F8 ldr r1, _080C0400 @ =gSaveBlock1 lsls r0, r4, 3 adds r0, r4 lsls r0, 2 adds r0, r1 ldr r1, _080C0404 @ =0x00002739 adds r0, r1 strb r2, [r0] _080C03F8: pop {r4} pop {r0} bx r0 .align 2, 0 _080C0400: .4byte gSaveBlock1 _080C0404: .4byte 0x00002739 thumb_func_end sub_80C03C8 thumb_func_start sub_80C0408 sub_80C0408: @ 80C0408 push {r4-r6,lr} ldr r0, _080C044C @ =0x00000804 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080C0444 movs r2, 0 ldr r6, _080C0450 @ =gSaveBlock1 ldr r4, _080C0454 @ =0x00002739 movs r3, 0 ldr r5, _080C0458 @ =0x00002738 _080C0422: lsls r0, r2, 3 adds r0, r2 lsls r0, 2 adds r1, r0, r6 adds r0, r1, r5 ldrb r0, [r0] cmp r0, 0x7 beq _080C0436 cmp r0, 0x29 bne _080C043A _080C0436: adds r0, r1, r4 strb r3, [r0] _080C043A: adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x17 bls _080C0422 _080C0444: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C044C: .4byte 0x00000804 _080C0450: .4byte gSaveBlock1 _080C0454: .4byte 0x00002739 _080C0458: .4byte 0x00002738 thumb_func_end sub_80C0408 thumb_func_start sub_80C045C sub_80C045C: @ 80C045C push {r4-r6,lr} movs r5, 0 ldr r6, _080C0494 @ =gSaveBlock1 _080C0462: lsls r0, r5, 3 adds r0, r5 lsls r0, 2 adds r4, r0, r6 ldr r1, _080C0498 @ =0x00002738 adds r0, r4, r1 ldrb r0, [r0] bl sub_80BFB54 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _080C0484 ldr r0, _080C049C @ =0x00002739 adds r1, r4, r0 movs r0, 0 strb r0, [r1] _080C0484: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x4 bls _080C0462 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C0494: .4byte gSaveBlock1 _080C0498: .4byte 0x00002738 _080C049C: .4byte 0x00002739 thumb_func_end sub_80C045C thumb_func_start sub_80C04A0 sub_80C04A0: @ 80C04A0 push {r4,r5,lr} movs r3, 0 movs r2, 0x5 ldr r5, _080C0508 @ =gSaveBlock1 ldr r4, _080C050C @ =0x00002738 _080C04AA: lsls r0, r2, 24 asrs r1, r0, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, r4 ldrb r0, [r0] cmp r0, 0 bne _080C04C8 lsls r0, r3, 24 movs r2, 0x80 lsls r2, 17 adds r0, r2 lsrs r3, r0, 24 _080C04C8: adds r0, r1, 0x1 lsls r0, 24 lsrs r2, r0, 24 asrs r0, 24 cmp r0, 0x17 ble _080C04AA movs r2, 0 lsls r0, r3, 24 asrs r0, 24 movs r1, 0x5 subs r0, r1, r0 cmp r2, r0 bge _080C0502 adds r5, r0, 0 _080C04E4: lsls r1, r2, 24 asrs r4, r1, 24 movs r0, 0xA0 lsls r0, 19 adds r1, r0 lsrs r1, 24 ldr r0, _080C0510 @ =gSaveBlock1 + 0x2738 bl sub_80BF55C adds r4, 0x1 lsls r4, 24 lsrs r2, r4, 24 asrs r4, 24 cmp r4, r5 blt _080C04E4 _080C0502: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C0508: .4byte gSaveBlock1 _080C050C: .4byte 0x00002738 _080C0510: .4byte gSaveBlock1 + 0x2738 thumb_func_end sub_80C04A0 thumb_func_start sub_80C0514 sub_80C0514: @ 80C0514 push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r0 adds r7, r1, 0 lsls r2, 24 lsrs r5, r2, 24 movs r4, 0 _080C0524: lsls r0, r4, 6 ldr r6, _080C0550 @ =0x02007000 adds r0, r6 adds r1, r4, 0 muls r1, r7 add r1, r8 movs r2, 0x40 bl memcpy adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _080C0524 adds r4, r6, 0 cmp r5, 0x1 beq _080C0578 cmp r5, 0x1 bgt _080C0554 cmp r5, 0 beq _080C055E b _080C05AC .align 2, 0 _080C0550: .4byte 0x02007000 _080C0554: cmp r5, 0x2 beq _080C0584 cmp r5, 0x3 beq _080C059C b _080C05AC _080C055E: ldr r0, _080C0574 @ =gSaveBlock1 + 0x2ABC adds r1, r4, 0 adds r1, 0x40 adds r2, r4, 0 adds r2, 0x80 adds r3, r4, 0 adds r3, 0xC0 bl sub_80C05C4 b _080C05AC .align 2, 0 _080C0574: .4byte gSaveBlock1 + 0x2ABC _080C0578: ldr r1, _080C0580 @ =gSaveBlock1 + 0x2ABC adds r2, r4, 0 adds r2, 0x80 b _080C058A .align 2, 0 _080C0580: .4byte gSaveBlock1 + 0x2ABC _080C0584: adds r1, r4, 0 adds r1, 0x40 ldr r2, _080C0598 @ =gSaveBlock1 + 0x2ABC _080C058A: adds r3, r4, 0 adds r3, 0xC0 adds r0, r4, 0 bl sub_80C05C4 b _080C05AC .align 2, 0 _080C0598: .4byte gSaveBlock1 + 0x2ABC _080C059C: adds r1, r6, 0 adds r1, 0x40 adds r2, r6, 0 adds r2, 0x80 ldr r3, _080C05C0 @ =gSaveBlock1 + 0x2ABC adds r0, r6, 0 bl sub_80C05C4 _080C05AC: bl sub_80C0750 bl sub_80C0788 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C05C0: .4byte gSaveBlock1 + 0x2ABC thumb_func_end sub_80C0514 thumb_func_start sub_80C05C4 sub_80C05C4: @ 80C05C4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 str r0, [sp, 0x10] str r1, [sp, 0x14] str r2, [sp, 0x18] str r3, [sp, 0x1C] add r0, sp, 0x10 str r0, [sp] add r0, sp, 0x14 str r0, [sp, 0x4] add r0, sp, 0x18 str r0, [sp, 0x8] add r0, sp, 0x1C str r0, [sp, 0xC] bl GetLinkPlayerCount ldr r1, _080C0600 @ =gUnknown_03000721 strb r0, [r1] movs r0, 0 mov r10, r0 _080C05F4: movs r7, 0 mov r1, r10 adds r1, 0x1 str r1, [sp, 0x20] b _080C068C .align 2, 0 _080C0600: .4byte gUnknown_03000721 _080C0604: lsls r4, r7, 2 mov r1, sp adds r0, r1, r4 ldr r0, [r0] ldr r0, [r0] mov r1, r10 bl sub_80C0730 ldr r1, _080C06B0 @ =gUnknown_03000722 strb r0, [r1] lsls r0, 24 asrs r0, 24 mov r8, r4 adds r1, r7, 0x1 mov r9, r1 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _080C0686 movs r5, 0 ldr r1, _080C06B4 @ =gUnknown_03000721 ldrb r0, [r1] subs r0, 0x1 cmp r5, r0 bge _080C0686 adds r6, r1, 0 _080C0638: adds r0, r7, r5 adds r4, r0, 0x1 ldrb r1, [r6] adds r0, r4, 0 bl __modsi3 lsls r0, 2 add r0, sp ldr r0, [r0] ldr r0, [r0] bl sub_80BEBC8 ldr r1, _080C06B8 @ =gUnknown_03005D38 strb r0, [r1] lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _080C0678 ldrb r1, [r6] adds r0, r4, 0 bl __modsi3 lsls r0, 2 add r0, sp ldr r0, [r0] mov r1, sp add r1, r8 ldr r1, [r1] bl sub_80C06BC _080C0678: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 ldrb r0, [r6] subs r0, 0x1 cmp r5, r0 blt _080C0638 _080C0686: mov r1, r9 lsls r0, r1, 24 lsrs r7, r0, 24 _080C068C: ldr r0, _080C06B4 @ =gUnknown_03000721 ldrb r0, [r0] cmp r7, r0 bcc _080C0604 ldr r1, [sp, 0x20] lsls r0, r1, 24 lsrs r0, 24 mov r10, r0 cmp r0, 0xF bls _080C05F4 add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C06B0: .4byte gUnknown_03000722 _080C06B4: .4byte gUnknown_03000721 _080C06B8: .4byte gUnknown_03005D38 thumb_func_end sub_80C05C4 thumb_func_start sub_80C06BC sub_80C06BC: @ 80C06BC push {lr} ldr r0, [r0] ldr r1, [r1] ldr r2, _080C06E0 @ =gUnknown_03000722 ldrb r2, [r2] lsls r2, 24 asrs r2, 24 lsls r2, 2 adds r1, r2 ldr r2, _080C06E4 @ =gUnknown_03005D38 ldrb r2, [r2] lsls r2, 24 asrs r2, 24 bl sub_80C06E8 pop {r0} bx r0 .align 2, 0 _080C06E0: .4byte gUnknown_03000722 _080C06E4: .4byte gUnknown_03005D38 thumb_func_end sub_80C06BC thumb_func_start sub_80C06E8 sub_80C06E8: @ 80C06E8 push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r2, 24 lsrs r6, r2, 24 ldrb r3, [r5] adds r0, r3, 0 cmp r0, 0 bne _080C06FE _080C06FA: movs r0, 0 b _080C072A _080C06FE: movs r1, 0 adds r2, r3, 0 adds r3, r0, 0 _080C0704: lsls r0, r1, 2 adds r0, r4 ldrb r0, [r0] cmp r0, r3 beq _080C06FA adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xF bls _080C0704 lsls r0, r6, 24 asrs r0, 22 adds r0, r4 strb r2, [r0] movs r1, 0x1 strb r1, [r0, 0x1] ldrh r1, [r5, 0x2] strh r1, [r0, 0x2] movs r0, 0x1 _080C072A: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80C06E8 thumb_func_start sub_80C0730 sub_80C0730: @ 80C0730 push {lr} lsls r1, 24 lsrs r2, r1, 24 lsls r1, r2, 2 adds r1, r0 ldrb r0, [r1] cmp r0, 0 beq _080C0746 lsls r0, r2, 24 asrs r0, 24 b _080C074A _080C0746: movs r0, 0x1 negs r0, r0 _080C074A: pop {r1} bx r1 thumb_func_end sub_80C0730 thumb_func_start sub_80C0750 sub_80C0750: @ 80C0750 push {r4,r5,lr} movs r4, 0 ldr r5, _080C0780 @ =gSaveBlock1 _080C0756: lsls r0, r4, 2 adds r0, r5 ldr r1, _080C0784 @ =0x00002abc adds r0, r1 ldrb r0, [r0] cmp r0, 0x3 bls _080C076A adds r0, r4, 0 bl sub_80BEC10 _080C076A: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xF bls _080C0756 bl sub_80BEC40 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C0780: .4byte gSaveBlock1 _080C0784: .4byte 0x00002abc thumb_func_end sub_80C0750 thumb_func_start sub_80C0788 sub_80C0788: @ 80C0788 push {r4,lr} ldr r0, _080C07B8 @ =0x00000804 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080C07B2 movs r1, 0 ldr r4, _080C07BC @ =gSaveBlock1 ldr r3, _080C07C0 @ =0x00002abd movs r2, 0 _080C07A0: lsls r0, r1, 2 adds r0, r4 adds r0, r3 strb r2, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xF bls _080C07A0 _080C07B2: pop {r4} pop {r0} bx r0 .align 2, 0 _080C07B8: .4byte 0x00000804 _080C07BC: .4byte gSaveBlock1 _080C07C0: .4byte 0x00002abd thumb_func_end sub_80C0788 thumb_func_start sub_80C07C4 sub_80C07C4: @ 80C07C4 push {lr} ldr r2, _080C07F8 @ =gSaveBlock1 ldr r0, _080C07FC @ =gUnknown_0202E8CC ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r1, r0, r2 ldr r2, _080C0800 @ =0x00002739 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _080C07E0 b _080C08F8 _080C07E0: subs r2, 0x1 adds r0, r1, r2 ldrb r0, [r0] subs r0, 0x1 cmp r0, 0x28 bls _080C07EE b _080C08F8 _080C07EE: lsls r0, 2 ldr r1, _080C0804 @ =_080C0808 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C07F8: .4byte gSaveBlock1 _080C07FC: .4byte gUnknown_0202E8CC _080C0800: .4byte 0x00002739 _080C0804: .4byte _080C0808 .align 2, 0 _080C0808: .4byte _080C08AC .4byte _080C08B2 .4byte _080C08B8 .4byte _080C08BE .4byte _080C08E2 .4byte _080C08CA .4byte _080C08D0 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08D6 .4byte _080C08DC .4byte _080C08E8 .4byte _080C08EE .4byte _080C08F4 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08C4 _080C08AC: bl DoTVShowPokemonFanClubLetter b _080C08F8 _080C08B2: bl DoTVShowRecentHappenings b _080C08F8 _080C08B8: bl DoTVShowPokemonFanClubOpinions b _080C08F8 _080C08BE: bl nullsub_22 b _080C08F8 _080C08C4: bl DoTVShowPokemonNewsMassOutbreak b _080C08F8 _080C08CA: bl DoTVShowBravoTrainerPokemonProfile b _080C08F8 _080C08D0: bl sub_80C0B9C b _080C08F8 _080C08D6: bl DoTVShowPokemonTodaySuccessfulCapture b _080C08F8 _080C08DC: bl DoTVShowTodaysSmartShopper b _080C08F8 _080C08E2: bl DoTVShowTheNameRaterShow b _080C08F8 _080C08E8: bl DoTVShowPokemonTodayFailedCapture b _080C08F8 _080C08EE: bl DoTVShowPokemonAngler b _080C08F8 _080C08F4: bl DoTVShowTheWorldOfMasters _080C08F8: pop {r0} bx r0 thumb_func_end sub_80C07C4 thumb_func_start sub_80C08FC sub_80C08FC: @ 80C08FC push {r4,r5,lr} adds r5, r0, 0 lsls r4, r2, 24 lsrs r4, 24 bl StringCopy cmp r4, 0x1 bhi _080C0914 adds r0, r5, 0 movs r1, 0x1 bl ConvertInternationalString _080C0914: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C08FC thumb_func_start DoTVShowBravoTrainerPokemonProfile DoTVShowBravoTrainerPokemonProfile: @ 80C091C push {r4,r5,lr} ldr r0, _080C0948 @ =gUnknown_0202E8CC ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C094C @ =gSaveBlock1 + 0x2738 adds r4, r0, r1 ldr r1, _080C0950 @ =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, _080C0954 @ =gUnknown_020387E8 ldrb r5, [r0] cmp r5, 0x8 bls _080C093C b _080C0B7A _080C093C: lsls r0, r5, 2 ldr r1, _080C0958 @ =_080C095C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C0948: .4byte gUnknown_0202E8CC _080C094C: .4byte gSaveBlock1 + 0x2738 _080C0950: .4byte gScriptResult _080C0954: .4byte gUnknown_020387E8 _080C0958: .4byte _080C095C .align 2, 0 _080C095C: .4byte _080C0980 .4byte _080C09D8 .4byte _080C0A10 .4byte _080C0A40 .4byte _080C0A74 .4byte _080C0AA8 .4byte _080C0AEC .4byte _080C0B34 .4byte _080C0B64 _080C0980: ldr r0, _080C09C0 @ =gStringVar1 adds r1, r4, 0 adds r1, 0x16 ldrb r2, [r4, 0x1E] bl sub_80C08FC ldrb r1, [r4, 0x13] lsls r1, 29 lsrs r1, 29 movs r0, 0x1 bl CopyContestCategoryToStringVar ldrb r1, [r4, 0x13] lsls r1, 27 lsrs r1, 30 movs r0, 0x2 bl sub_80BEF10 ldrh r1, [r4, 0x2] movs r0, 0xB muls r0, r1 ldr r1, _080C09C4 @ =gSpeciesNames adds r0, r1 adds r1, r4, 0 adds r1, 0x8 bl StringCompareWithoutExtCtrlCodes cmp r0, 0 bne _080C09CC ldr r1, _080C09C8 @ =gUnknown_020387E8 movs r0, 0x8 b _080C0B78 .align 2, 0 _080C09C0: .4byte gStringVar1 _080C09C4: .4byte gSpeciesNames _080C09C8: .4byte gUnknown_020387E8 _080C09CC: ldr r1, _080C09D4 @ =gUnknown_020387E8 movs r0, 0x1 b _080C0B78 .align 2, 0 _080C09D4: .4byte gUnknown_020387E8 _080C09D8: ldr r0, _080C0A04 @ =gStringVar1 ldrh r2, [r4, 0x2] movs r1, 0xB muls r1, r2 ldr r2, _080C0A08 @ =gSpeciesNames adds r1, r2 bl StringCopy ldr r0, _080C0A0C @ =gStringVar2 adds r1, r4, 0 adds r1, 0x8 ldrb r2, [r4, 0x1F] bl sub_80C08FC ldrb r1, [r4, 0x13] lsls r1, 29 lsrs r1, 29 movs r0, 0x2 bl CopyContestCategoryToStringVar b _080C0B74 .align 2, 0 _080C0A04: .4byte gStringVar1 _080C0A08: .4byte gSpeciesNames _080C0A0C: .4byte gStringVar2 _080C0A10: ldr r0, _080C0A2C @ =gStringVar1 adds r1, r4, 0 adds r1, 0x16 ldrb r2, [r4, 0x1E] bl sub_80C08FC ldrb r1, [r4, 0x13] movs r0, 0x60 ands r0, r1 cmp r0, 0 bne _080C0A34 ldr r1, _080C0A30 @ =gUnknown_020387E8 movs r0, 0x3 b _080C0B78 .align 2, 0 _080C0A2C: .4byte gStringVar1 _080C0A30: .4byte gUnknown_020387E8 _080C0A34: ldr r1, _080C0A3C @ =gUnknown_020387E8 movs r0, 0x4 b _080C0B78 .align 2, 0 _080C0A3C: .4byte gUnknown_020387E8 _080C0A40: ldr r0, _080C0A68 @ =gStringVar1 adds r1, r4, 0 adds r1, 0x16 ldrb r2, [r4, 0x1E] bl sub_80C08FC ldr r0, _080C0A6C @ =gStringVar2 ldrh r1, [r4, 0x4] bl sub_80EB3FC ldrb r1, [r4, 0x13] lsls r1, 25 lsrs r1, 30 adds r1, 0x1 movs r0, 0x2 bl sub_80BF088 ldr r1, _080C0A70 @ =gUnknown_020387E8 movs r0, 0x5 b _080C0B78 .align 2, 0 _080C0A68: .4byte gStringVar1 _080C0A6C: .4byte gStringVar2 _080C0A70: .4byte gUnknown_020387E8 _080C0A74: ldr r0, _080C0A9C @ =gStringVar1 adds r1, r4, 0 adds r1, 0x16 ldrb r2, [r4, 0x1E] bl sub_80C08FC ldr r0, _080C0AA0 @ =gStringVar2 ldrh r1, [r4, 0x4] bl sub_80EB3FC ldrb r1, [r4, 0x13] lsls r1, 25 lsrs r1, 30 adds r1, 0x1 movs r0, 0x2 bl sub_80BF088 ldr r1, _080C0AA4 @ =gUnknown_020387E8 movs r0, 0x5 b _080C0B78 .align 2, 0 _080C0A9C: .4byte gStringVar1 _080C0AA0: .4byte gStringVar2 _080C0AA4: .4byte gUnknown_020387E8 _080C0AA8: ldr r0, _080C0AD4 @ =gStringVar1 adds r1, r4, 0 adds r1, 0x16 ldrb r2, [r4, 0x1E] bl sub_80C08FC ldrb r1, [r4, 0x13] lsls r1, 29 lsrs r1, 29 movs r0, 0x1 bl CopyContestCategoryToStringVar ldr r0, _080C0AD8 @ =gStringVar3 ldrh r1, [r4, 0x6] bl sub_80EB3FC ldrh r0, [r4, 0x14] cmp r0, 0 beq _080C0AE0 ldr r1, _080C0ADC @ =gUnknown_020387E8 movs r0, 0x6 b _080C0B78 .align 2, 0 _080C0AD4: .4byte gStringVar1 _080C0AD8: .4byte gStringVar3 _080C0ADC: .4byte gUnknown_020387E8 _080C0AE0: ldr r1, _080C0AE8 @ =gUnknown_020387E8 movs r0, 0x7 b _080C0B78 .align 2, 0 _080C0AE8: .4byte gUnknown_020387E8 _080C0AEC: ldr r0, _080C0B1C @ =gStringVar1 ldrh r2, [r4, 0x2] movs r1, 0xB muls r1, r2 ldr r2, _080C0B20 @ =gSpeciesNames adds r1, r2 bl StringCopy ldr r0, _080C0B24 @ =gStringVar2 ldrh r2, [r4, 0x14] movs r1, 0xD muls r1, r2 ldr r2, _080C0B28 @ =gMoveNames adds r1, r2 bl StringCopy ldr r0, _080C0B2C @ =gStringVar3 ldrh r1, [r4, 0x6] bl sub_80EB3FC ldr r1, _080C0B30 @ =gUnknown_020387E8 movs r0, 0x7 b _080C0B78 .align 2, 0 _080C0B1C: .4byte gStringVar1 _080C0B20: .4byte gSpeciesNames _080C0B24: .4byte gStringVar2 _080C0B28: .4byte gMoveNames _080C0B2C: .4byte gStringVar3 _080C0B30: .4byte gUnknown_020387E8 _080C0B34: ldr r0, _080C0B58 @ =gStringVar1 adds r1, r4, 0 adds r1, 0x16 ldrb r2, [r4, 0x1E] bl sub_80C08FC ldr r0, _080C0B5C @ =gStringVar2 ldrh r2, [r4, 0x2] movs r1, 0xB muls r1, r2 ldr r2, _080C0B60 @ =gSpeciesNames adds r1, r2 bl StringCopy bl TVShowDone b _080C0B7A .align 2, 0 _080C0B58: .4byte gStringVar1 _080C0B5C: .4byte gStringVar2 _080C0B60: .4byte gSpeciesNames _080C0B64: ldr r0, _080C0B8C @ =gStringVar1 ldrh r2, [r4, 0x2] movs r1, 0xB muls r1, r2 ldr r2, _080C0B90 @ =gSpeciesNames adds r1, r2 bl StringCopy _080C0B74: ldr r1, _080C0B94 @ =gUnknown_020387E8 movs r0, 0x2 _080C0B78: strb r0, [r1] _080C0B7A: ldr r0, _080C0B98 @ =gUnknown_083D1524 lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] bl ShowFieldMessage pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C0B8C: .4byte gStringVar1 _080C0B90: .4byte gSpeciesNames _080C0B94: .4byte gUnknown_020387E8 _080C0B98: .4byte gUnknown_083D1524 thumb_func_end DoTVShowBravoTrainerPokemonProfile thumb_func_start sub_80C0B9C sub_80C0B9C: @ 80C0B9C push {r4,r5,lr} ldr r0, _080C0BC8 @ =gUnknown_0202E8CC ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C0BCC @ =gSaveBlock1 + 0x2738 adds r4, r0, r1 ldr r1, _080C0BD0 @ =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, _080C0BD4 @ =gUnknown_020387E8 ldrb r5, [r0] adds r2, r0, 0 cmp r5, 0xE bls _080C0BBE b _080C0DDE _080C0BBE: lsls r0, r5, 2 ldr r1, _080C0BD8 @ =_080C0BDC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C0BC8: .4byte gUnknown_0202E8CC _080C0BCC: .4byte gSaveBlock1 + 0x2738 _080C0BD0: .4byte gScriptResult _080C0BD4: .4byte gUnknown_020387E8 _080C0BD8: .4byte _080C0BDC .align 2, 0 _080C0BDC: .4byte _080C0C18 .4byte _080C0C5C .4byte _080C0C8C .4byte _080C0CB0 .4byte _080C0CDC .4byte _080C0D24 .4byte _080C0D30 .4byte _080C0D3C .4byte _080C0D42 .4byte _080C0D42 .4byte _080C0D42 .4byte _080C0D5C .4byte _080C0D88 .4byte _080C0D88 .4byte _080C0DC0 _080C0C18: ldr r0, _080C0C40 @ =gStringVar1 adds r1, r4, 0x2 ldrb r2, [r4, 0x1D] bl sub_80C08FC ldr r0, _080C0C44 @ =gStringVar2 ldrh r2, [r4, 0xA] movs r1, 0xB muls r1, r2 ldr r2, _080C0C48 @ =gSpeciesNames adds r1, r2 bl StringCopy ldrh r0, [r4, 0x16] cmp r0, 0x6 bls _080C0C50 ldr r1, _080C0C4C @ =gUnknown_020387E8 movs r0, 0x1 strb r0, [r1] b _080C0DDE .align 2, 0 _080C0C40: .4byte gStringVar1 _080C0C44: .4byte gStringVar2 _080C0C48: .4byte gSpeciesNames _080C0C4C: .4byte gUnknown_020387E8 _080C0C50: ldr r1, _080C0C58 @ =gUnknown_020387E8 movs r0, 0x2 strb r0, [r1] b _080C0DDE .align 2, 0 _080C0C58: .4byte gUnknown_020387E8 _080C0C5C: ldrb r1, [r4, 0x1A] movs r0, 0 bl sub_80BF088 ldrh r1, [r4, 0x16] movs r0, 0x1 bl sub_80BF088 ldrb r0, [r4, 0x1C] cmp r0, 0x1 bne _080C0C80 ldr r1, _080C0C7C @ =gUnknown_020387E8 movs r0, 0x3 strb r0, [r1] b _080C0DDE .align 2, 0 _080C0C7C: .4byte gUnknown_020387E8 _080C0C80: ldr r1, _080C0C88 @ =gUnknown_020387E8 movs r0, 0x4 strb r0, [r1] b _080C0DDE .align 2, 0 _080C0C88: .4byte gUnknown_020387E8 _080C0C8C: ldr r0, _080C0CAC @ =gStringVar1 adds r1, r4, 0 adds r1, 0xC ldrb r2, [r4, 0x1D] bl sub_80C08FC ldrh r1, [r4, 0x16] adds r1, 0x1 movs r0, 0x1 bl sub_80BF088 _080C0CA2: ldrb r0, [r4, 0x1B] cmp r0, 0 beq _080C0CFE b _080C0D18 .align 2, 0 _080C0CAC: .4byte gStringVar1 _080C0CB0: ldr r0, _080C0CD0 @ =gStringVar1 adds r1, r4, 0 adds r1, 0xC ldrb r2, [r4, 0x1D] bl sub_80C08FC ldr r0, _080C0CD4 @ =gStringVar2 ldrh r2, [r4, 0x14] movs r1, 0xB muls r1, r2 ldr r2, _080C0CD8 @ =gSpeciesNames adds r1, r2 bl StringCopy b _080C0CA2 .align 2, 0 _080C0CD0: .4byte gStringVar1 _080C0CD4: .4byte gStringVar2 _080C0CD8: .4byte gSpeciesNames _080C0CDC: ldr r0, _080C0D08 @ =gStringVar1 adds r1, r4, 0 adds r1, 0xC ldrb r2, [r4, 0x1D] bl sub_80C08FC ldr r0, _080C0D0C @ =gStringVar2 ldrh r2, [r4, 0x14] movs r1, 0xB muls r1, r2 ldr r2, _080C0D10 @ =gSpeciesNames adds r1, r2 bl StringCopy ldrb r0, [r4, 0x1B] cmp r0, 0 bne _080C0D18 _080C0CFE: ldr r1, _080C0D14 @ =gUnknown_020387E8 movs r0, 0x5 strb r0, [r1] b _080C0DDE .align 2, 0 _080C0D08: .4byte gStringVar1 _080C0D0C: .4byte gStringVar2 _080C0D10: .4byte gSpeciesNames _080C0D14: .4byte gUnknown_020387E8 _080C0D18: ldr r1, _080C0D20 @ =gUnknown_020387E8 movs r0, 0x6 strb r0, [r1] b _080C0DDE .align 2, 0 _080C0D20: .4byte gUnknown_020387E8 _080C0D24: ldr r0, _080C0D2C @ =gStringVar1 adds r1, r4, 0 adds r1, 0xC b _080C0D46 .align 2, 0 _080C0D2C: .4byte gStringVar1 _080C0D30: ldr r0, _080C0D38 @ =gStringVar1 adds r1, r4, 0 adds r1, 0xC b _080C0D46 .align 2, 0 _080C0D38: .4byte gStringVar1 _080C0D3C: movs r0, 0xB strb r0, [r2] b _080C0DDE _080C0D42: ldr r0, _080C0D54 @ =gStringVar1 adds r1, r4, 0x2 _080C0D46: ldrb r2, [r4, 0x1D] bl sub_80C08FC ldr r1, _080C0D58 @ =gUnknown_020387E8 movs r0, 0xB strb r0, [r1] b _080C0DDE .align 2, 0 _080C0D54: .4byte gStringVar1 _080C0D58: .4byte gUnknown_020387E8 _080C0D5C: ldr r0, _080C0D74 @ =gStringVar1 ldrh r1, [r4, 0x18] bl sub_80EB3FC ldrb r0, [r4, 0x1B] cmp r0, 0 bne _080C0D7C ldr r1, _080C0D78 @ =gUnknown_020387E8 movs r0, 0xC strb r0, [r1] b _080C0DDE .align 2, 0 _080C0D74: .4byte gStringVar1 _080C0D78: .4byte gUnknown_020387E8 _080C0D7C: ldr r1, _080C0D84 @ =gUnknown_020387E8 movs r0, 0xD strb r0, [r1] b _080C0DDE .align 2, 0 _080C0D84: .4byte gUnknown_020387E8 _080C0D88: ldr r0, _080C0DB0 @ =gStringVar1 ldrh r1, [r4, 0x18] bl sub_80EB3FC ldr r0, _080C0DB4 @ =gStringVar2 adds r1, r4, 0x2 ldrb r2, [r4, 0x1D] bl sub_80C08FC ldr r0, _080C0DB8 @ =gStringVar3 adds r1, r4, 0 adds r1, 0xC ldrb r2, [r4, 0x1D] bl sub_80C08FC ldr r1, _080C0DBC @ =gUnknown_020387E8 movs r0, 0xE strb r0, [r1] b _080C0DDE .align 2, 0 _080C0DB0: .4byte gStringVar1 _080C0DB4: .4byte gStringVar2 _080C0DB8: .4byte gStringVar3 _080C0DBC: .4byte gUnknown_020387E8 _080C0DC0: ldr r0, _080C0DF0 @ =gStringVar1 adds r1, r4, 0x2 ldrb r2, [r4, 0x1D] bl sub_80C08FC ldr r0, _080C0DF4 @ =gStringVar2 ldrh r2, [r4, 0xA] movs r1, 0xB muls r1, r2 ldr r2, _080C0DF8 @ =gSpeciesNames adds r1, r2 bl StringCopy bl TVShowDone _080C0DDE: ldr r0, _080C0DFC @ =gUnknown_083D1548 lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] bl ShowFieldMessage pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C0DF0: .4byte gStringVar1 _080C0DF4: .4byte gStringVar2 _080C0DF8: .4byte gSpeciesNames _080C0DFC: .4byte gUnknown_083D1548 thumb_func_end sub_80C0B9C thumb_func_start DoTVShowTodaysSmartShopper DoTVShowTodaysSmartShopper: @ 80C0E00 push {r4-r6,lr} ldr r0, _080C0E2C @ =gUnknown_0202E8CC ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C0E30 @ =gSaveBlock1 + 0x2738 adds r5, r0, r1 ldr r1, _080C0E34 @ =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, _080C0E38 @ =gUnknown_020387E8 ldrb r6, [r0] adds r2, r0, 0 cmp r6, 0xC bls _080C0E22 b _080C1014 _080C0E22: lsls r0, r6, 2 ldr r1, _080C0E3C @ =_080C0E40 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C0E2C: .4byte gUnknown_0202E8CC _080C0E30: .4byte gSaveBlock1 + 0x2738 _080C0E34: .4byte gScriptResult _080C0E38: .4byte gUnknown_020387E8 _080C0E3C: .4byte _080C0E40 .align 2, 0 _080C0E40: .4byte _080C0E74 .4byte _080C0EB0 .4byte _080C0EF8 .4byte _080C0F0A .4byte _080C0EF8 .4byte _080C0EF8 .4byte _080C0F34 .4byte _080C0F64 .4byte _080C0F94 .4byte _080C0FA0 .4byte _080C0FAE .4byte _080C0FC0 .4byte _080C1004 _080C0E74: ldr r0, _080C0E98 @ =gStringVar1 adds r1, r5, 0 adds r1, 0x13 ldrb r2, [r5, 0x3] bl sub_80C08FC ldr r0, _080C0E9C @ =gStringVar2 ldrb r1, [r5, 0x12] movs r2, 0 bl sub_80FBFB4 ldrh r0, [r5, 0xC] cmp r0, 0xFE bls _080C0EA4 ldr r1, _080C0EA0 @ =gUnknown_020387E8 movs r0, 0xB strb r0, [r1] b _080C1014 .align 2, 0 _080C0E98: .4byte gStringVar1 _080C0E9C: .4byte gStringVar2 _080C0EA0: .4byte gUnknown_020387E8 _080C0EA4: ldr r1, _080C0EAC @ =gUnknown_020387E8 movs r0, 0x1 strb r0, [r1] b _080C1014 .align 2, 0 _080C0EAC: .4byte gUnknown_020387E8 _080C0EB0: ldr r0, _080C0EEC @ =gStringVar1 adds r1, r5, 0 adds r1, 0x13 ldrb r2, [r5, 0x3] bl sub_80C08FC ldr r4, _080C0EF0 @ =gStringVar2 ldrh r0, [r5, 0x6] bl itemid_get_item adds r1, r0, 0 adds r0, r4, 0 bl StringCopy ldrh r1, [r5, 0xC] movs r0, 0x2 bl sub_80BF088 ldr r4, _080C0EF4 @ =gUnknown_020387E8 bl Random ldrb r2, [r4] adds r2, 0x1 lsls r0, 16 lsrs r0, 16 movs r1, 0x3 ands r0, r1 adds r0, r2 strb r0, [r4] b _080C1014 .align 2, 0 _080C0EEC: .4byte gStringVar1 _080C0EF0: .4byte gStringVar2 _080C0EF4: .4byte gUnknown_020387E8 _080C0EF8: ldrh r0, [r5, 0x8] cmp r0, 0 beq _080C0F04 movs r0, 0x6 strb r0, [r2] b _080C1014 _080C0F04: movs r0, 0xA strb r0, [r2] b _080C1014 _080C0F0A: ldrh r1, [r5, 0xC] adds r1, 0x1 movs r0, 0x2 bl sub_80BF088 ldrh r0, [r5, 0x8] cmp r0, 0 beq _080C0F28 ldr r1, _080C0F24 @ =gUnknown_020387E8 movs r0, 0x6 strb r0, [r1] b _080C1014 .align 2, 0 _080C0F24: .4byte gUnknown_020387E8 _080C0F28: ldr r1, _080C0F30 @ =gUnknown_020387E8 movs r0, 0xA strb r0, [r1] b _080C1014 .align 2, 0 _080C0F30: .4byte gUnknown_020387E8 _080C0F34: ldr r4, _080C0F5C @ =gStringVar2 ldrh r0, [r5, 0x8] bl itemid_get_item adds r1, r0, 0 adds r0, r4, 0 bl StringCopy ldrh r1, [r5, 0xE] movs r0, 0x2 bl sub_80BF088 ldrh r0, [r5, 0xA] cmp r0, 0 beq _080C0F7C ldr r1, _080C0F60 @ =gUnknown_020387E8 movs r0, 0x7 strb r0, [r1] b _080C1014 .align 2, 0 _080C0F5C: .4byte gStringVar2 _080C0F60: .4byte gUnknown_020387E8 _080C0F64: ldr r4, _080C0F8C @ =gStringVar2 ldrh r0, [r5, 0xA] bl itemid_get_item adds r1, r0, 0 adds r0, r4, 0 bl StringCopy ldrh r1, [r5, 0x10] movs r0, 0x2 bl sub_80BF088 _080C0F7C: ldrb r0, [r5, 0x2] cmp r0, 0x1 beq _080C0FE2 ldr r1, _080C0F90 @ =gUnknown_020387E8 movs r0, 0x9 strb r0, [r1] b _080C1014 .align 2, 0 _080C0F8C: .4byte gStringVar2 _080C0F90: .4byte gUnknown_020387E8 _080C0F94: ldrh r0, [r5, 0xC] cmp r0, 0xFE bls _080C0FBA movs r0, 0xC strb r0, [r2] b _080C1014 _080C0FA0: movs r0, 0x1 adds r1, r5, 0 bl sub_80BF154 bl TVShowDone b _080C1014 _080C0FAE: ldrb r0, [r5, 0x2] cmp r0, 0x1 bne _080C0FBA movs r0, 0x8 strb r0, [r2] b _080C1014 _080C0FBA: movs r0, 0x9 strb r0, [r2] b _080C1014 _080C0FC0: ldr r0, _080C0FEC @ =gStringVar1 adds r1, r5, 0 adds r1, 0x13 ldrb r2, [r5, 0x3] bl sub_80C08FC ldr r4, _080C0FF0 @ =gStringVar2 ldrh r0, [r5, 0x6] bl itemid_get_item adds r1, r0, 0 adds r0, r4, 0 bl StringCopy ldrb r0, [r5, 0x2] cmp r0, 0x1 bne _080C0FF8 _080C0FE2: ldr r1, _080C0FF4 @ =gUnknown_020387E8 movs r0, 0x8 strb r0, [r1] b _080C1014 .align 2, 0 _080C0FEC: .4byte gStringVar1 _080C0FF0: .4byte gStringVar2 _080C0FF4: .4byte gUnknown_020387E8 _080C0FF8: ldr r1, _080C1000 @ =gUnknown_020387E8 movs r0, 0xC strb r0, [r1] b _080C1014 .align 2, 0 _080C1000: .4byte gUnknown_020387E8 _080C1004: ldr r0, _080C1028 @ =gStringVar1 adds r1, r5, 0 adds r1, 0x13 ldrb r2, [r5, 0x3] bl sub_80C08FC bl TVShowDone _080C1014: ldr r0, _080C102C @ =gUnknown_083D14F0 lsls r1, r6, 2 adds r1, r0 ldr r0, [r1] bl ShowFieldMessage pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C1028: .4byte gStringVar1 _080C102C: .4byte gUnknown_083D14F0 thumb_func_end DoTVShowTodaysSmartShopper thumb_func_start DoTVShowTheNameRaterShow DoTVShowTheNameRaterShow: @ 80C1030 push {r4-r7,lr} sub sp, 0x8 ldr r0, _080C1060 @ =gUnknown_0202E8CC ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C1064 @ =gSaveBlock1 + 0x2738 adds r6, r0, r1 ldr r1, _080C1068 @ =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, _080C106C @ =gUnknown_020387E8 ldrb r7, [r0] adds r2, r0, 0 cmp r7, 0x12 bls _080C1054 b _080C138A _080C1054: lsls r0, r7, 2 ldr r1, _080C1070 @ =_080C1074 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C1060: .4byte gUnknown_0202E8CC _080C1064: .4byte gSaveBlock1 + 0x2738 _080C1068: .4byte gScriptResult _080C106C: .4byte gUnknown_020387E8 _080C1070: .4byte _080C1074 .align 2, 0 _080C1074: .4byte _080C10C0 .4byte _080C1108 .4byte _080C112A .4byte _080C1108 .4byte _080C1108 .4byte _080C1108 .4byte _080C1108 .4byte _080C1108 .4byte _080C1108 .4byte _080C1170 .4byte _080C1170 .4byte _080C1170 .4byte _080C136C .4byte _080C11CC .4byte _080C1228 .4byte _080C127C .4byte _080C12D4 .4byte _080C1314 .4byte _080C1370 _080C10C0: ldr r0, _080C10F4 @ =gStringVar1 adds r1, r6, 0 adds r1, 0xF ldrb r2, [r6, 0x1E] bl sub_80C08FC ldr r0, _080C10F8 @ =gStringVar2 ldrh r2, [r6, 0x2] movs r1, 0xB muls r1, r2 ldr r2, _080C10FC @ =gSpeciesNames adds r1, r2 bl StringCopy ldr r0, _080C1100 @ =gStringVar3 adds r1, r6, 0x4 ldrb r2, [r6, 0x1F] bl sub_80C08FC ldr r4, _080C1104 @ =gUnknown_020387E8 adds r0, r6, 0 bl sub_80BF7E8 adds r0, 0x1 strb r0, [r4] b _080C138A .align 2, 0 _080C10F4: .4byte gStringVar1 _080C10F8: .4byte gStringVar2 _080C10FC: .4byte gSpeciesNames _080C1100: .4byte gStringVar3 _080C1104: .4byte gUnknown_020387E8 _080C1108: ldrb r0, [r6, 0x1A] cmp r0, 0 bne _080C1114 movs r0, 0x9 strb r0, [r2] b _080C138A _080C1114: cmp r0, 0x1 bne _080C111E movs r0, 0xA strb r0, [r2] b _080C138A _080C111E: cmp r0, 0x2 beq _080C1124 b _080C138A _080C1124: movs r0, 0xB strb r0, [r2] b _080C138A _080C112A: ldr r0, _080C1144 @ =gStringVar1 adds r1, r6, 0 adds r1, 0xF ldrb r2, [r6, 0x1E] bl sub_80C08FC ldrb r0, [r6, 0x1A] cmp r0, 0 bne _080C114C ldr r1, _080C1148 @ =gUnknown_020387E8 movs r0, 0x9 strb r0, [r1] b _080C138A .align 2, 0 _080C1144: .4byte gStringVar1 _080C1148: .4byte gUnknown_020387E8 _080C114C: cmp r0, 0x1 bne _080C115C ldr r1, _080C1158 @ =gUnknown_020387E8 movs r0, 0xA strb r0, [r1] b _080C138A .align 2, 0 _080C1158: .4byte gUnknown_020387E8 _080C115C: cmp r0, 0x2 beq _080C1162 b _080C138A _080C1162: ldr r1, _080C116C @ =gUnknown_020387E8 movs r0, 0xB strb r0, [r1] b _080C138A .align 2, 0 _080C116C: .4byte gUnknown_020387E8 _080C1170: movs r5, 0 str r5, [sp] str r6, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0 movs r3, 0x1 bl sub_80BF820 ldr r0, _080C11BC @ =gStringVar3 ldr r4, _080C11C0 @ =gStringVar1 ldrb r2, [r6, 0x1F] adds r1, r4, 0 bl sub_80C08FC str r5, [sp] str r6, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0x1 bl sub_80BF820 ldr r0, _080C11C4 @ =gStringVar2 ldrb r2, [r6, 0x1F] adds r1, r4, 0 bl sub_80C08FC adds r1, r6, 0x4 ldrb r2, [r6, 0x1F] adds r0, r4, 0 bl sub_80C08FC ldr r1, _080C11C8 @ =gUnknown_020387E8 movs r0, 0xC strb r0, [r1] b _080C138A .align 2, 0 _080C11BC: .4byte gStringVar3 _080C11C0: .4byte gStringVar1 _080C11C4: .4byte gStringVar2 _080C11C8: .4byte gUnknown_020387E8 _080C11CC: movs r5, 0 str r5, [sp] str r6, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0x3 movs r3, 0x1 bl sub_80BF820 ldr r0, _080C1218 @ =gStringVar3 ldr r4, _080C121C @ =gStringVar1 ldrb r2, [r6, 0x1F] adds r1, r4, 0 bl sub_80C08FC str r5, [sp] str r6, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0x2 movs r3, 0 bl sub_80BF820 ldr r0, _080C1220 @ =gStringVar2 ldrb r2, [r6, 0x1E] adds r1, r4, 0 bl sub_80C08FC adds r1, r6, 0 adds r1, 0xF ldrb r2, [r6, 0x1E] adds r0, r4, 0 bl sub_80C08FC ldr r1, _080C1224 @ =gUnknown_020387E8 movs r0, 0xE strb r0, [r1] b _080C138A .align 2, 0 _080C1218: .4byte gStringVar3 _080C121C: .4byte gStringVar1 _080C1220: .4byte gStringVar2 _080C1224: .4byte gUnknown_020387E8 _080C1228: movs r5, 0 str r5, [sp] str r6, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0x3 movs r3, 0 bl sub_80BF820 ldr r0, _080C1270 @ =gStringVar3 ldr r4, _080C1274 @ =gStringVar1 ldrb r2, [r6, 0x1E] adds r1, r4, 0 bl sub_80C08FC str r5, [sp] str r6, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0x2 movs r3, 0x1 bl sub_80BF820 ldr r0, _080C1278 @ =gStringVar2 ldrb r2, [r6, 0x1F] adds r1, r4, 0 bl sub_80C08FC adds r1, r6, 0 adds r1, 0xF ldrb r2, [r6, 0x1E] adds r0, r4, 0 bl sub_80C08FC b _080C1354 .align 2, 0 _080C1270: .4byte gStringVar3 _080C1274: .4byte gStringVar1 _080C1278: .4byte gStringVar2 _080C127C: movs r0, 0 str r0, [sp] str r6, [sp, 0x4] movs r0, 0x1 movs r1, 0 movs r2, 0x2 movs r3, 0x1 bl sub_80BF820 ldr r0, _080C12C4 @ =gStringVar1 ldr r4, _080C12C8 @ =gStringVar2 ldrb r2, [r6, 0x1F] adds r1, r4, 0 bl sub_80C08FC ldrh r1, [r6, 0x2] movs r0, 0xB muls r1, r0 ldr r0, _080C12CC @ =gSpeciesNames adds r1, r0 adds r0, r4, 0 bl StringCopy ldrh r0, [r6, 0x2] str r0, [sp] str r6, [sp, 0x4] movs r0, 0x2 movs r1, 0 movs r2, 0x3 movs r3, 0x2 bl sub_80BF820 ldr r1, _080C12D0 @ =gUnknown_020387E8 movs r0, 0x10 strb r0, [r1] b _080C138A .align 2, 0 _080C12C4: .4byte gStringVar1 _080C12C8: .4byte gStringVar2 _080C12CC: .4byte gSpeciesNames _080C12D0: .4byte gUnknown_020387E8 _080C12D4: movs r0, 0 str r0, [sp] str r6, [sp, 0x4] movs r1, 0 movs r2, 0x3 movs r3, 0x1 bl sub_80BF820 ldr r0, _080C1308 @ =gStringVar3 ldr r1, _080C130C @ =gStringVar1 ldrb r2, [r6, 0x1F] bl sub_80C08FC ldrh r0, [r6, 0x2] str r0, [sp] str r6, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0x2 movs r3, 0x2 bl sub_80BF820 ldr r1, _080C1310 @ =gUnknown_020387E8 movs r0, 0x11 strb r0, [r1] b _080C138A .align 2, 0 _080C1308: .4byte gStringVar3 _080C130C: .4byte gStringVar1 _080C1310: .4byte gUnknown_020387E8 _080C1314: movs r0, 0 str r0, [sp] str r6, [sp, 0x4] movs r0, 0x1 movs r1, 0 movs r2, 0x2 movs r3, 0x1 bl sub_80BF820 ldr r0, _080C135C @ =gStringVar1 ldr r4, _080C1360 @ =gStringVar2 ldrb r2, [r6, 0x1F] adds r1, r4, 0 bl sub_80C08FC ldrh r0, [r6, 0x1C] str r0, [sp] str r6, [sp, 0x4] movs r0, 0x2 movs r1, 0 movs r2, 0x3 movs r3, 0x2 bl sub_80BF820 ldrh r1, [r6, 0x1C] movs r0, 0xB muls r1, r0 ldr r0, _080C1364 @ =gSpeciesNames adds r1, r0 adds r0, r4, 0 bl StringCopy _080C1354: ldr r1, _080C1368 @ =gUnknown_020387E8 movs r0, 0x12 strb r0, [r1] b _080C138A .align 2, 0 _080C135C: .4byte gStringVar1 _080C1360: .4byte gStringVar2 _080C1364: .4byte gSpeciesNames _080C1368: .4byte gUnknown_020387E8 _080C136C: movs r7, 0x12 strb r7, [r2] _080C1370: ldr r0, _080C13A0 @ =gStringVar1 adds r1, r6, 0x4 ldrb r2, [r6, 0x1F] bl sub_80C08FC ldr r0, _080C13A4 @ =gStringVar2 adds r1, r6, 0 adds r1, 0xF ldrb r2, [r6, 0x1E] bl sub_80C08FC bl TVShowDone _080C138A: ldr r0, _080C13A8 @ =gUnknown_083D1584 lsls r1, r7, 2 adds r1, r0 ldr r0, [r1] bl ShowFieldMessage add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C13A0: .4byte gStringVar1 _080C13A4: .4byte gStringVar2 _080C13A8: .4byte gUnknown_083D1584 thumb_func_end DoTVShowTheNameRaterShow thumb_func_start DoTVShowPokemonTodaySuccessfulCapture DoTVShowPokemonTodaySuccessfulCapture: @ 80C13AC push {r4-r6,lr} ldr r0, _080C13D8 @ =gUnknown_0202E8CC ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C13DC @ =gSaveBlock1 + 0x2738 adds r5, r0, r1 ldr r1, _080C13E0 @ =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, _080C13E4 @ =gUnknown_020387E8 ldrb r6, [r0] adds r2, r0, 0 cmp r6, 0xB bls _080C13CE b _080C15DC _080C13CE: lsls r0, r6, 2 ldr r1, _080C13E8 @ =_080C13EC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C13D8: .4byte gUnknown_0202E8CC _080C13DC: .4byte gSaveBlock1 + 0x2738 _080C13E0: .4byte gScriptResult _080C13E4: .4byte gUnknown_020387E8 _080C13E8: .4byte _080C13EC .align 2, 0 _080C13EC: .4byte _080C141C .4byte _080C1470 .4byte _080C1476 .4byte _080C14B0 .4byte _080C14E8 .4byte _080C14EE .4byte _080C1524 .4byte _080C1578 .4byte _080C1578 .4byte _080C15A8 .4byte _080C15A8 .4byte _080C15D8 _080C141C: ldr r0, _080C1450 @ =gStringVar1 adds r1, r5, 0 adds r1, 0x13 ldrb r2, [r5, 0x2] bl sub_80C08FC ldr r0, _080C1454 @ =gStringVar2 ldrh r2, [r5, 0x10] movs r1, 0xB muls r1, r2 ldr r2, _080C1458 @ =gSpeciesNames adds r1, r2 bl StringCopy ldr r0, _080C145C @ =gStringVar3 adds r1, r5, 0x4 ldrb r2, [r5, 0x3] bl sub_80C08FC ldrb r0, [r5, 0xF] cmp r0, 0x1 bne _080C1464 ldr r1, _080C1460 @ =gUnknown_020387E8 movs r0, 0x5 strb r0, [r1] b _080C15DC .align 2, 0 _080C1450: .4byte gStringVar1 _080C1454: .4byte gStringVar2 _080C1458: .4byte gSpeciesNames _080C145C: .4byte gStringVar3 _080C1460: .4byte gUnknown_020387E8 _080C1464: ldr r1, _080C146C @ =gUnknown_020387E8 movs r0, 0x1 strb r0, [r1] b _080C15DC .align 2, 0 _080C146C: .4byte gUnknown_020387E8 _080C1470: movs r0, 0x2 strb r0, [r2] b _080C15DC _080C1476: ldr r4, _080C149C @ =gStringVar2 ldrb r0, [r5, 0xF] bl itemid_get_item adds r1, r0, 0 adds r0, r4, 0 bl StringCopy ldrb r1, [r5, 0x12] movs r0, 0x2 bl sub_80BF088 ldrb r0, [r5, 0x12] cmp r0, 0x3 bhi _080C14A4 ldr r1, _080C14A0 @ =gUnknown_020387E8 movs r0, 0x3 strb r0, [r1] b _080C15DC .align 2, 0 _080C149C: .4byte gStringVar2 _080C14A0: .4byte gUnknown_020387E8 _080C14A4: ldr r1, _080C14AC @ =gUnknown_020387E8 movs r0, 0x4 strb r0, [r1] b _080C15DC .align 2, 0 _080C14AC: .4byte gUnknown_020387E8 _080C14B0: ldr r0, _080C14D8 @ =gStringVar1 adds r1, r5, 0 adds r1, 0x13 ldrb r2, [r5, 0x2] bl sub_80C08FC ldr r0, _080C14DC @ =gStringVar2 ldrh r2, [r5, 0x10] movs r1, 0xB muls r1, r2 ldr r2, _080C14E0 @ =gSpeciesNames adds r1, r2 bl StringCopy ldr r0, _080C14E4 @ =gStringVar3 adds r1, r5, 0x4 ldrb r2, [r5, 0x3] bl sub_80C08FC b _080C150A .align 2, 0 _080C14D8: .4byte gStringVar1 _080C14DC: .4byte gStringVar2 _080C14E0: .4byte gSpeciesNames _080C14E4: .4byte gStringVar3 _080C14E8: movs r0, 0x6 strb r0, [r2] b _080C15DC _080C14EE: ldr r0, _080C1514 @ =gStringVar1 adds r1, r5, 0 adds r1, 0x13 ldrb r2, [r5, 0x2] bl sub_80C08FC ldr r0, _080C1518 @ =gStringVar2 ldrh r2, [r5, 0x10] movs r1, 0xB muls r1, r2 ldr r2, _080C151C @ =gSpeciesNames adds r1, r2 bl StringCopy _080C150A: ldr r1, _080C1520 @ =gUnknown_020387E8 movs r0, 0x6 strb r0, [r1] b _080C15DC .align 2, 0 _080C1514: .4byte gStringVar1 _080C1518: .4byte gStringVar2 _080C151C: .4byte gSpeciesNames _080C1520: .4byte gUnknown_020387E8 _080C1524: ldr r0, _080C1564 @ =gStringVar1 adds r1, r5, 0 adds r1, 0x13 ldrb r2, [r5, 0x2] bl sub_80C08FC ldr r0, _080C1568 @ =gStringVar2 ldrh r2, [r5, 0x10] movs r1, 0xB muls r1, r2 ldr r2, _080C156C @ =gSpeciesNames adds r1, r2 bl StringCopy ldr r0, _080C1570 @ =gStringVar3 adds r1, r5, 0x4 ldrb r2, [r5, 0x3] bl sub_80C08FC ldr r4, _080C1574 @ =gUnknown_020387E8 bl Random ldrb r2, [r4] adds r2, 0x1 lsls r0, 16 lsrs r0, 16 movs r1, 0x3 ands r0, r1 adds r0, r2 strb r0, [r4] b _080C15DC .align 2, 0 _080C1564: .4byte gStringVar1 _080C1568: .4byte gStringVar2 _080C156C: .4byte gSpeciesNames _080C1570: .4byte gStringVar3 _080C1574: .4byte gUnknown_020387E8 _080C1578: ldr r0, _080C159C @ =gStringVar1 ldrh r1, [r5, 0x10] movs r4, 0xB muls r1, r4 ldr r2, _080C15A0 @ =gSpeciesNames adds r1, r2 bl StringCopy ldr r0, _080C15A4 @ =gStringVar2 adds r1, r5, 0x4 ldrb r2, [r5, 0x3] bl sub_80C08FC ldrh r1, [r5, 0x10] movs r0, 0x2 bl sub_80BF638 b _080C15C2 .align 2, 0 _080C159C: .4byte gStringVar1 _080C15A0: .4byte gSpeciesNames _080C15A4: .4byte gStringVar2 _080C15A8: ldr r0, _080C15C8 @ =gStringVar1 ldrh r1, [r5, 0x10] movs r4, 0xB muls r1, r4 ldr r2, _080C15CC @ =gSpeciesNames adds r1, r2 bl StringCopy ldr r0, _080C15D0 @ =gStringVar2 adds r1, r5, 0x4 ldrb r2, [r5, 0x3] bl sub_80C08FC _080C15C2: ldr r0, _080C15D4 @ =gUnknown_020387E8 strb r4, [r0] b _080C15DC .align 2, 0 _080C15C8: .4byte gStringVar1 _080C15CC: .4byte gSpeciesNames _080C15D0: .4byte gStringVar2 _080C15D4: .4byte gUnknown_020387E8 _080C15D8: bl TVShowDone _080C15DC: ldr r0, _080C15F0 @ =gUnknown_083D14C0 lsls r1, r6, 2 adds r1, r0 ldr r0, [r1] bl ShowFieldMessage pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C15F0: .4byte gUnknown_083D14C0 thumb_func_end DoTVShowPokemonTodaySuccessfulCapture thumb_func_start DoTVShowPokemonTodayFailedCapture DoTVShowPokemonTodayFailedCapture: @ 80C15F4 push {r4,r5,lr} ldr r0, _080C1620 @ =gUnknown_0202E8CC ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C1624 @ =gSaveBlock1 + 0x2738 adds r4, r0, r1 ldr r1, _080C1628 @ =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, _080C162C @ =gUnknown_020387E8 ldrb r5, [r0] cmp r5, 0x6 bls _080C1614 b _080C173C _080C1614: lsls r0, r5, 2 ldr r1, _080C1630 @ =_080C1634 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C1620: .4byte gUnknown_0202E8CC _080C1624: .4byte gSaveBlock1 + 0x2738 _080C1628: .4byte gScriptResult _080C162C: .4byte gUnknown_020387E8 _080C1630: .4byte _080C1634 .align 2, 0 _080C1634: .4byte _080C1650 .4byte _080C1684 .4byte _080C16D8 .4byte _080C16D8 .4byte _080C171C .4byte _080C171C .4byte _080C1738 _080C1650: ldr r0, _080C1674 @ =gStringVar1 adds r1, r4, 0 adds r1, 0x13 ldrb r2, [r4, 0x2] bl sub_80C08FC ldr r0, _080C1678 @ =gStringVar2 ldrh r2, [r4, 0xC] movs r1, 0xB muls r1, r2 ldr r2, _080C167C @ =gSpeciesNames adds r1, r2 bl StringCopy ldr r1, _080C1680 @ =gUnknown_020387E8 movs r0, 0x1 strb r0, [r1] b _080C173C .align 2, 0 _080C1674: .4byte gStringVar1 _080C1678: .4byte gStringVar2 _080C167C: .4byte gSpeciesNames _080C1680: .4byte gUnknown_020387E8 _080C1684: ldr r0, _080C16B8 @ =gStringVar1 adds r1, r4, 0 adds r1, 0x13 ldrb r2, [r4, 0x2] bl sub_80C08FC ldr r0, _080C16BC @ =gStringVar2 ldrb r1, [r4, 0x12] movs r2, 0 bl sub_80FBFB4 ldr r0, _080C16C0 @ =gStringVar3 ldrh r2, [r4, 0xE] movs r1, 0xB muls r1, r2 ldr r2, _080C16C4 @ =gSpeciesNames adds r1, r2 bl StringCopy ldrb r0, [r4, 0x11] cmp r0, 0x1 bne _080C16CC ldr r1, _080C16C8 @ =gUnknown_020387E8 movs r0, 0x3 strb r0, [r1] b _080C173C .align 2, 0 _080C16B8: .4byte gStringVar1 _080C16BC: .4byte gStringVar2 _080C16C0: .4byte gStringVar3 _080C16C4: .4byte gSpeciesNames _080C16C8: .4byte gUnknown_020387E8 _080C16CC: ldr r1, _080C16D4 @ =gUnknown_020387E8 movs r0, 0x2 strb r0, [r1] b _080C173C .align 2, 0 _080C16D4: .4byte gUnknown_020387E8 _080C16D8: ldr r0, _080C1708 @ =gStringVar1 adds r1, r4, 0 adds r1, 0x13 ldrb r2, [r4, 0x2] bl sub_80C08FC ldrb r1, [r4, 0x10] movs r0, 0x1 bl sub_80BF088 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 lsls r0, 16 cmp r0, 0 bne _080C1710 ldr r1, _080C170C @ =gUnknown_020387E8 movs r0, 0x5 strb r0, [r1] b _080C173C .align 2, 0 _080C1708: .4byte gStringVar1 _080C170C: .4byte gUnknown_020387E8 _080C1710: ldr r1, _080C1718 @ =gUnknown_020387E8 movs r0, 0x4 strb r0, [r1] b _080C173C .align 2, 0 _080C1718: .4byte gUnknown_020387E8 _080C171C: ldr r0, _080C1730 @ =gStringVar1 adds r1, r4, 0 adds r1, 0x13 ldrb r2, [r4, 0x2] bl sub_80C08FC ldr r1, _080C1734 @ =gUnknown_020387E8 movs r0, 0x6 strb r0, [r1] b _080C173C .align 2, 0 _080C1730: .4byte gStringVar1 _080C1734: .4byte gUnknown_020387E8 _080C1738: bl TVShowDone _080C173C: ldr r0, _080C1750 @ =gUnknown_083D15D0 lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] bl ShowFieldMessage pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C1750: .4byte gUnknown_083D15D0 thumb_func_end DoTVShowPokemonTodayFailedCapture thumb_func_start DoTVShowPokemonFanClubLetter DoTVShowPokemonFanClubLetter: @ 80C1754 push {r4-r7,lr} ldr r0, _080C1780 @ =gUnknown_0202E8CC ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C1784 @ =gSaveBlock1 + 0x2738 adds r5, r0, r1 ldr r1, _080C1788 @ =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, _080C178C @ =gUnknown_020387E8 ldrb r7, [r0] adds r6, r0, 0 cmp r7, 0x33 bls _080C1776 b _080C1960 _080C1776: lsls r0, r7, 2 ldr r1, _080C1790 @ =_080C1794 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C1780: .4byte gUnknown_0202E8CC _080C1784: .4byte gSaveBlock1 + 0x2738 _080C1788: .4byte gScriptResult _080C178C: .4byte gUnknown_020387E8 _080C1790: .4byte _080C1794 .align 2, 0 _080C1794: .4byte _080C1864 .4byte _080C1898 .4byte _080C18C4 .4byte _080C18CA .4byte _080C18E2 .4byte _080C18E2 .4byte _080C18E2 .4byte _080C18F4 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1916 .4byte _080C193C _080C1864: ldr r0, _080C1888 @ =gStringVar1 adds r1, r5, 0 adds r1, 0x10 ldrb r2, [r5, 0x18] bl sub_80C08FC ldr r0, _080C188C @ =gStringVar2 ldrh r2, [r5, 0x2] movs r1, 0xB muls r1, r2 ldr r2, _080C1890 @ =gSpeciesNames adds r1, r2 bl StringCopy ldr r1, _080C1894 @ =gUnknown_020387E8 movs r0, 0x32 strb r0, [r1] b _080C1960 .align 2, 0 _080C1888: .4byte gStringVar1 _080C188C: .4byte gStringVar2 _080C1890: .4byte gSpeciesNames _080C1894: .4byte gUnknown_020387E8 _080C1898: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 ands r0, r1 adds r2, r0, 0x1 cmp r2, 0x1 bne _080C18B8 ldr r1, _080C18B4 @ =gUnknown_020387E8 movs r0, 0x2 strb r0, [r1] b _080C1960 .align 2, 0 _080C18B4: .4byte gUnknown_020387E8 _080C18B8: ldr r1, _080C18C0 @ =gUnknown_020387E8 adds r0, r2, 0x2 strb r0, [r1] b _080C1960 .align 2, 0 _080C18C0: .4byte gUnknown_020387E8 _080C18C4: movs r0, 0x33 strb r0, [r6] b _080C1960 _080C18CA: bl Random ldrb r4, [r6] adds r4, 0x1 lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 adds r0, r4 strb r0, [r6] b _080C1960 _080C18E2: adds r0, r5, 0 bl sub_80BF79C ldr r1, _080C18F0 @ =gUnknown_020387E8 movs r0, 0x7 strb r0, [r1] b _080C1960 .align 2, 0 _080C18F0: .4byte gUnknown_020387E8 _080C18F4: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x1F bl __umodsi3 adds r0, 0x46 lsls r0, 16 lsrs r2, r0, 16 movs r0, 0x2 adds r1, r2, 0 bl sub_80BF088 bl TVShowDone b _080C1960 _080C1916: ldr r4, _080C1934 @ =gStringVar4 adds r1, r5, 0x4 adds r0, r4, 0 movs r2, 0x2 movs r3, 0x2 bl ConvertEasyChatWordsToString adds r0, r4, 0 bl ShowFieldMessage ldr r1, _080C1938 @ =gUnknown_020387E8 movs r0, 0x1 strb r0, [r1] b _080C196C .align 2, 0 _080C1934: .4byte gStringVar4 _080C1938: .4byte gUnknown_020387E8 _080C193C: ldr r4, _080C1958 @ =gStringVar4 adds r1, r5, 0x4 adds r0, r4, 0 movs r2, 0x2 movs r3, 0x2 bl ConvertEasyChatWordsToString adds r0, r4, 0 bl ShowFieldMessage ldr r1, _080C195C @ =gUnknown_020387E8 movs r0, 0x3 strb r0, [r1] b _080C196C .align 2, 0 _080C1958: .4byte gStringVar4 _080C195C: .4byte gUnknown_020387E8 _080C1960: ldr r0, _080C1974 @ =gUnknown_083D1470 lsls r1, r7, 2 adds r1, r0 ldr r0, [r1] bl ShowFieldMessage _080C196C: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C1974: .4byte gUnknown_083D1470 thumb_func_end DoTVShowPokemonFanClubLetter thumb_func_start DoTVShowRecentHappenings DoTVShowRecentHappenings: @ 80C1978 push {r4-r7,lr} ldr r0, _080C19A4 @ =gUnknown_0202E8CC ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C19A8 @ =gSaveBlock1 + 0x2738 adds r5, r0, r1 ldr r1, _080C19AC @ =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, _080C19B0 @ =gUnknown_020387E8 ldrb r6, [r0] adds r7, r0, 0 cmp r6, 0x32 bls _080C199A b _080C1AF0 _080C199A: lsls r0, r6, 2 ldr r1, _080C19B4 @ =_080C19B8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C19A4: .4byte gUnknown_0202E8CC _080C19A8: .4byte gSaveBlock1 + 0x2738 _080C19AC: .4byte gScriptResult _080C19B0: .4byte gUnknown_020387E8 _080C19B4: .4byte _080C19B8 .align 2, 0 _080C19B8: .4byte _080C1A84 .4byte _080C1AA8 .4byte _080C1AC0 .4byte _080C1AC0 .4byte _080C1AC0 .4byte _080C1AC6 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1ACC _080C1A84: ldr r0, _080C1AA0 @ =gStringVar1 adds r1, r5, 0 adds r1, 0x10 ldrb r2, [r5, 0x18] bl sub_80C08FC adds r0, r5, 0 bl sub_80BF79C ldr r1, _080C1AA4 @ =gUnknown_020387E8 movs r0, 0x32 strb r0, [r1] b _080C1AF0 .align 2, 0 _080C1AA0: .4byte gStringVar1 _080C1AA4: .4byte gUnknown_020387E8 _080C1AA8: bl Random ldrb r4, [r7] adds r4, 0x1 lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 adds r0, r4 strb r0, [r7] b _080C1AF0 _080C1AC0: movs r0, 0x5 strb r0, [r7] b _080C1AF0 _080C1AC6: bl TVShowDone b _080C1AF0 _080C1ACC: ldr r4, _080C1AE8 @ =gStringVar4 adds r1, r5, 0x4 adds r0, r4, 0 movs r2, 0x2 movs r3, 0x2 bl ConvertEasyChatWordsToString adds r0, r4, 0 bl ShowFieldMessage ldr r1, _080C1AEC @ =gUnknown_020387E8 movs r0, 0x1 strb r0, [r1] b _080C1AFC .align 2, 0 _080C1AE8: .4byte gStringVar4 _080C1AEC: .4byte gUnknown_020387E8 _080C1AF0: ldr r0, _080C1B04 @ =gUnknown_083D1490 lsls r1, r6, 2 adds r1, r0 ldr r0, [r1] bl ShowFieldMessage _080C1AFC: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C1B04: .4byte gUnknown_083D1490 thumb_func_end DoTVShowRecentHappenings thumb_func_start DoTVShowPokemonFanClubOpinions DoTVShowPokemonFanClubOpinions: @ 80C1B08 push {r4-r6,lr} ldr r0, _080C1B30 @ =gUnknown_0202E8CC ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C1B34 @ =gSaveBlock1 + 0x2738 adds r4, r0, r1 ldr r1, _080C1B38 @ =gScriptResult movs r0, 0 strh r0, [r1] ldr r6, _080C1B3C @ =gUnknown_020387E8 ldrb r5, [r6] cmp r5, 0x3 bgt _080C1B40 cmp r5, 0x1 bge _080C1B88 cmp r5, 0 beq _080C1B46 b _080C1BD6 .align 2, 0 _080C1B30: .4byte gUnknown_0202E8CC _080C1B34: .4byte gSaveBlock1 + 0x2738 _080C1B38: .4byte gScriptResult _080C1B3C: .4byte gUnknown_020387E8 _080C1B40: cmp r5, 0x4 beq _080C1BC0 b _080C1BD6 _080C1B46: ldr r0, _080C1B78 @ =gStringVar1 adds r1, r4, 0x5 ldrb r2, [r4, 0xD] bl sub_80C08FC ldr r0, _080C1B7C @ =gStringVar2 ldrh r2, [r4, 0x2] movs r1, 0xB muls r1, r2 ldr r2, _080C1B80 @ =gSpeciesNames adds r1, r2 bl StringCopy ldr r0, _080C1B84 @ =gStringVar3 adds r1, r4, 0 adds r1, 0x10 ldrb r2, [r4, 0xE] bl sub_80C08FC ldrb r0, [r4, 0x4] lsrs r0, 4 adds r0, 0x1 strb r0, [r6] b _080C1BD6 .align 2, 0 _080C1B78: .4byte gStringVar1 _080C1B7C: .4byte gStringVar2 _080C1B80: .4byte gSpeciesNames _080C1B84: .4byte gStringVar3 _080C1B88: ldr r0, _080C1BB0 @ =gStringVar1 adds r1, r4, 0x5 ldrb r2, [r4, 0xD] bl sub_80C08FC ldr r0, _080C1BB4 @ =gStringVar2 ldrh r2, [r4, 0x2] movs r1, 0xB muls r1, r2 ldr r2, _080C1BB8 @ =gSpeciesNames adds r1, r2 bl StringCopy ldr r0, _080C1BBC @ =gStringVar3 ldrh r1, [r4, 0x1C] bl sub_80EB3FC movs r0, 0x4 strb r0, [r6] b _080C1BD6 .align 2, 0 _080C1BB0: .4byte gStringVar1 _080C1BB4: .4byte gStringVar2 _080C1BB8: .4byte gSpeciesNames _080C1BBC: .4byte gStringVar3 _080C1BC0: ldr r0, _080C1BE8 @ =gStringVar1 adds r1, r4, 0x5 ldrb r2, [r4, 0xD] bl sub_80C08FC ldr r0, _080C1BEC @ =gStringVar3 ldrh r1, [r4, 0x1E] bl sub_80EB3FC bl TVShowDone _080C1BD6: ldr r0, _080C1BF0 @ =gUnknown_083D14A8 lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] bl ShowFieldMessage pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C1BE8: .4byte gStringVar1 _080C1BEC: .4byte gStringVar3 _080C1BF0: .4byte gUnknown_083D14A8 thumb_func_end DoTVShowPokemonFanClubOpinions thumb_func_start nullsub_22 nullsub_22: @ 80C1BF4 bx lr thumb_func_end nullsub_22 thumb_func_start DoTVShowPokemonNewsMassOutbreak DoTVShowPokemonNewsMassOutbreak: @ 80C1BF8 push {r4,lr} ldr r0, _080C1C40 @ =gUnknown_0202E8CC ldrh r0, [r0] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _080C1C44 @ =gSaveBlock1 + 0x2738 adds r4, r0 ldr r0, _080C1C48 @ =gStringVar1 ldrb r1, [r4, 0x10] movs r2, 0 bl sub_80FBFB4 ldr r0, _080C1C4C @ =gStringVar2 ldrh r2, [r4, 0xC] movs r1, 0xB muls r1, r2 ldr r2, _080C1C50 @ =gSpeciesNames adds r1, r2 bl StringCopy bl TVShowDone bl StartMassOutbreak ldr r1, _080C1C54 @ =gUnknown_083D14BC ldr r0, _080C1C58 @ =gUnknown_020387E8 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl ShowFieldMessage pop {r4} pop {r0} bx r0 .align 2, 0 _080C1C40: .4byte gUnknown_0202E8CC _080C1C44: .4byte gSaveBlock1 + 0x2738 _080C1C48: .4byte gStringVar1 _080C1C4C: .4byte gStringVar2 _080C1C50: .4byte gSpeciesNames _080C1C54: .4byte gUnknown_083D14BC _080C1C58: .4byte gUnknown_020387E8 thumb_func_end DoTVShowPokemonNewsMassOutbreak thumb_func_start DoTVShowInSearchOfTrainers DoTVShowInSearchOfTrainers: @ 80C1C5C push {r4-r7,lr} ldr r0, _080C1C7C @ =gScriptResult movs r1, 0 strh r1, [r0] ldr r0, _080C1C80 @ =gUnknown_020387E8 ldrb r7, [r0] adds r2, r0, 0 cmp r7, 0x8 bls _080C1C70 b _080C1DF8 _080C1C70: lsls r0, r7, 2 ldr r1, _080C1C84 @ =_080C1C88 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C1C7C: .4byte gScriptResult _080C1C80: .4byte gUnknown_020387E8 _080C1C84: .4byte _080C1C88 .align 2, 0 _080C1C88: .4byte _080C1CAC .4byte _080C1CF0 .4byte _080C1CF6 .4byte _080C1D44 .4byte _080C1DB0 .4byte _080C1DB0 .4byte _080C1DB0 .4byte _080C1DB0 .4byte _080C1DB6 _080C1CAC: ldr r0, _080C1CD0 @ =gStringVar1 ldr r4, _080C1CD4 @ =gSaveBlock1 ldr r2, _080C1CD8 @ =0x00002b18 adds r1, r4, r2 ldrb r1, [r1] movs r2, 0 bl sub_80FBFB4 ldr r0, _080C1CDC @ =0x00002b19 adds r4, r0 ldrb r0, [r4] cmp r0, 0x1 bls _080C1CE4 ldr r1, _080C1CE0 @ =gUnknown_020387E8 movs r0, 0x1 strb r0, [r1] b _080C1DF8 .align 2, 0 _080C1CD0: .4byte gStringVar1 _080C1CD4: .4byte gSaveBlock1 _080C1CD8: .4byte 0x00002b18 _080C1CDC: .4byte 0x00002b19 _080C1CE0: .4byte gUnknown_020387E8 _080C1CE4: ldr r1, _080C1CEC @ =gUnknown_020387E8 movs r0, 0x2 strb r0, [r1] b _080C1DF8 .align 2, 0 _080C1CEC: .4byte gUnknown_020387E8 _080C1CF0: movs r0, 0x2 strb r0, [r2] b _080C1DF8 _080C1CF6: ldr r0, _080C1D0C @ =gSaveBlock1 ldr r1, _080C1D10 @ =0x00002b1a adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080C1D14 movs r0, 0x4 strb r0, [r2] b _080C1DF8 .align 2, 0 _080C1D0C: .4byte gSaveBlock1 _080C1D10: .4byte 0x00002b1a _080C1D14: movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080C1D22 movs r0, 0x5 strb r0, [r2] b _080C1DF8 _080C1D22: movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080C1D30 movs r0, 0x6 strb r0, [r2] b _080C1DF8 _080C1D30: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080C1D3E movs r0, 0x7 strb r0, [r2] b _080C1DF8 _080C1D3E: movs r0, 0x3 strb r0, [r2] b _080C1DF8 _080C1D44: ldr r0, _080C1D88 @ =gStringVar1 ldr r4, _080C1D8C @ =gSaveBlock1 ldr r2, _080C1D90 @ =0x00002b10 adds r1, r4, r2 ldrh r1, [r1] movs r6, 0xB muls r1, r6 ldr r5, _080C1D94 @ =gSpeciesNames adds r1, r5 bl StringCopy ldr r0, _080C1D98 @ =gStringVar2 ldr r2, _080C1D9C @ =0x00002b14 adds r1, r4, r2 ldrh r2, [r1] movs r1, 0xD muls r1, r2 ldr r2, _080C1DA0 @ =gMoveNames adds r1, r2 bl StringCopy ldr r0, _080C1DA4 @ =gStringVar3 ldr r1, _080C1DA8 @ =0x00002b12 adds r4, r1 ldrh r1, [r4] muls r1, r6 adds r1, r5 bl StringCopy ldr r1, _080C1DAC @ =gUnknown_020387E8 movs r0, 0x8 strb r0, [r1] b _080C1DF8 .align 2, 0 _080C1D88: .4byte gStringVar1 _080C1D8C: .4byte gSaveBlock1 _080C1D90: .4byte 0x00002b10 _080C1D94: .4byte gSpeciesNames _080C1D98: .4byte gStringVar2 _080C1D9C: .4byte 0x00002b14 _080C1DA0: .4byte gMoveNames _080C1DA4: .4byte gStringVar3 _080C1DA8: .4byte 0x00002b12 _080C1DAC: .4byte gUnknown_020387E8 _080C1DB0: movs r0, 0x8 strb r0, [r2] b _080C1DF8 _080C1DB6: ldr r0, _080C1E0C @ =gStringVar1 ldr r4, _080C1E10 @ =gSaveBlock1 ldr r2, _080C1E14 @ =0x00002b16 adds r1, r4, r2 ldrh r1, [r1] bl sub_80EB3FC ldr r0, _080C1E18 @ =gStringVar2 ldr r2, _080C1E1C @ =0x00002b10 adds r1, r4, r2 ldrh r1, [r1] movs r6, 0xB muls r1, r6 ldr r5, _080C1E20 @ =gSpeciesNames adds r1, r5 bl StringCopy ldr r0, _080C1E24 @ =gStringVar3 ldr r1, _080C1E28 @ =0x00002b12 adds r4, r1 ldrh r1, [r4] muls r1, r6 adds r1, r5 bl StringCopy ldr r1, _080C1E2C @ =gScriptResult movs r0, 0x1 strh r0, [r1] ldr r1, _080C1E30 @ =gUnknown_020387E8 movs r0, 0 strb r0, [r1] bl TakeTVShowInSearchOfTrainersOffTheAir _080C1DF8: ldr r0, _080C1E34 @ =gUnknown_083D1600 lsls r1, r7, 2 adds r1, r0 ldr r0, [r1] bl ShowFieldMessage pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C1E0C: .4byte gStringVar1 _080C1E10: .4byte gSaveBlock1 _080C1E14: .4byte 0x00002b16 _080C1E18: .4byte gStringVar2 _080C1E1C: .4byte 0x00002b10 _080C1E20: .4byte gSpeciesNames _080C1E24: .4byte gStringVar3 _080C1E28: .4byte 0x00002b12 _080C1E2C: .4byte gScriptResult _080C1E30: .4byte gUnknown_020387E8 _080C1E34: .4byte gUnknown_083D1600 thumb_func_end DoTVShowInSearchOfTrainers thumb_func_start DoTVShowPokemonAngler DoTVShowPokemonAngler: @ 80C1E38 push {r4,r5,lr} ldr r0, _080C1E5C @ =gUnknown_0202E8CC ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C1E60 @ =gSaveBlock1 + 0x2738 adds r4, r0, r1 ldr r0, _080C1E64 @ =gScriptResult movs r1, 0 strh r1, [r0] ldrb r0, [r4, 0x2] ldrb r2, [r4, 0x3] cmp r0, r2 bcs _080C1E6C ldr r0, _080C1E68 @ =gUnknown_020387E8 strb r1, [r0] b _080C1E74 .align 2, 0 _080C1E5C: .4byte gUnknown_0202E8CC _080C1E60: .4byte gSaveBlock1 + 0x2738 _080C1E64: .4byte gScriptResult _080C1E68: .4byte gUnknown_020387E8 _080C1E6C: ldr r1, _080C1E80 @ =gUnknown_020387E8 movs r0, 0x1 strb r0, [r1] adds r0, r1, 0 _080C1E74: ldrb r5, [r0] cmp r5, 0 beq _080C1E84 cmp r5, 0x1 beq _080C1EBC b _080C1EE4 .align 2, 0 _080C1E80: .4byte gUnknown_020387E8 _080C1E84: ldr r0, _080C1EB0 @ =gStringVar1 adds r1, r4, 0 adds r1, 0x13 ldrb r2, [r4, 0x6] bl sub_80C08FC ldr r0, _080C1EB4 @ =gStringVar2 ldrh r2, [r4, 0x4] movs r1, 0xB muls r1, r2 ldr r2, _080C1EB8 @ =gSpeciesNames adds r1, r2 bl StringCopy ldrb r1, [r4, 0x3] movs r0, 0x2 bl sub_80BF088 bl TVShowDone b _080C1EE4 .align 2, 0 _080C1EB0: .4byte gStringVar1 _080C1EB4: .4byte gStringVar2 _080C1EB8: .4byte gSpeciesNames _080C1EBC: ldr r0, _080C1EF8 @ =gStringVar1 adds r1, r4, 0 adds r1, 0x13 ldrb r2, [r4, 0x6] bl sub_80C08FC ldr r0, _080C1EFC @ =gStringVar2 ldrh r2, [r4, 0x4] movs r1, 0xB muls r1, r2 ldr r2, _080C1F00 @ =gSpeciesNames adds r1, r2 bl StringCopy ldrb r1, [r4, 0x2] movs r0, 0x2 bl sub_80BF088 bl TVShowDone _080C1EE4: ldr r0, _080C1F04 @ =gUnknown_083D15EC lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] bl ShowFieldMessage pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C1EF8: .4byte gStringVar1 _080C1EFC: .4byte gStringVar2 _080C1F00: .4byte gSpeciesNames _080C1F04: .4byte gUnknown_083D15EC thumb_func_end DoTVShowPokemonAngler thumb_func_start DoTVShowTheWorldOfMasters DoTVShowTheWorldOfMasters: @ 80C1F08 push {r4-r6,lr} ldr r0, _080C1F30 @ =gUnknown_0202E8CC ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C1F34 @ =gSaveBlock1 + 0x2738 adds r4, r0, r1 ldr r1, _080C1F38 @ =gScriptResult movs r0, 0 strh r0, [r1] ldr r6, _080C1F3C @ =gUnknown_020387E8 ldrb r5, [r6] cmp r5, 0x1 beq _080C1F6C cmp r5, 0x1 bgt _080C1F40 cmp r5, 0 beq _080C1F46 b _080C1FB6 .align 2, 0 _080C1F30: .4byte gUnknown_0202E8CC _080C1F34: .4byte gSaveBlock1 + 0x2738 _080C1F38: .4byte gScriptResult _080C1F3C: .4byte gUnknown_020387E8 _080C1F40: cmp r5, 0x2 beq _080C1F8C b _080C1FB6 _080C1F46: ldr r0, _080C1F68 @ =gStringVar1 adds r1, r4, 0 adds r1, 0x13 ldrb r2, [r4, 0xB] bl sub_80C08FC ldrh r1, [r4, 0x6] movs r0, 0x1 bl sub_80BF088 ldrh r1, [r4, 0x2] movs r0, 0x2 bl sub_80BF088 movs r0, 0x1 strb r0, [r6] b _080C1FB6 .align 2, 0 _080C1F68: .4byte gStringVar1 _080C1F6C: ldr r0, _080C1F84 @ =gStringVar1 ldrh r2, [r4, 0x8] movs r1, 0xB muls r1, r2 ldr r2, _080C1F88 @ =gSpeciesNames adds r1, r2 bl StringCopy movs r0, 0x2 strb r0, [r6] b _080C1FB6 .align 2, 0 _080C1F84: .4byte gStringVar1 _080C1F88: .4byte gSpeciesNames _080C1F8C: ldr r0, _080C1FC8 @ =gStringVar1 adds r1, r4, 0 adds r1, 0x13 ldrb r2, [r4, 0xB] bl sub_80C08FC ldr r0, _080C1FCC @ =gStringVar2 ldrb r1, [r4, 0xA] movs r2, 0 bl sub_80FBFB4 ldr r0, _080C1FD0 @ =gStringVar3 ldrh r2, [r4, 0x4] movs r1, 0xB muls r1, r2 ldr r2, _080C1FD4 @ =gSpeciesNames adds r1, r2 bl StringCopy bl TVShowDone _080C1FB6: ldr r0, _080C1FD8 @ =gUnknown_083D15F4 lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] bl ShowFieldMessage pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C1FC8: .4byte gStringVar1 _080C1FCC: .4byte gStringVar2 _080C1FD0: .4byte gStringVar3 _080C1FD4: .4byte gSpeciesNames _080C1FD8: .4byte gUnknown_083D15F4 thumb_func_end DoTVShowTheWorldOfMasters thumb_func_start TVShowDone TVShowDone: @ 80C1FDC ldr r1, _080C2000 @ =gScriptResult movs r0, 0x1 strh r0, [r1] ldr r1, _080C2004 @ =gUnknown_020387E8 movs r0, 0 strb r0, [r1] ldr r2, _080C2008 @ =gSaveBlock1 ldr r0, _080C200C @ =gUnknown_0202E8CC ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _080C2010 @ =0x00002739 adds r0, r1 movs r1, 0 strb r1, [r0] bx lr .align 2, 0 _080C2000: .4byte gScriptResult _080C2004: .4byte gUnknown_020387E8 _080C2008: .4byte gSaveBlock1 _080C200C: .4byte gUnknown_0202E8CC _080C2010: .4byte 0x00002739 thumb_func_end TVShowDone thumb_func_start sub_80C2014 sub_80C2014: @ 80C2014 ldr r1, _080C201C @ =gUnknown_020387E8 movs r0, 0 strb r0, [r1] bx lr .align 2, 0 _080C201C: .4byte gUnknown_020387E8 thumb_func_end sub_80C2014 thumb_func_start sub_80C2020 sub_80C2020: @ 80C2020 push {r4,r5,lr} movs r5, 0x80 lsls r5, 19 movs r0, 0x40 strh r0, [r5] ldr r4, _080C20F0 @ =gWindowConfig_81E6FA0 adds r0, r4, 0 bl SetUpWindowConfig ldr r0, _080C20F4 @ =gMenuWindow adds r1, r4, 0 bl InitWindowFromConfig ldr r1, _080C20F8 @ =REG_BG0CNT movs r2, 0xF8 lsls r2, 6 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r3, _080C20FC @ =0x00001803 adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080C2100 @ =0x00001c03 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r3, _080C2104 @ =0x00003a03 adds r0, r3, 0 strh r0, [r1] ldr r0, _080C2108 @ =REG_MOSAIC movs r2, 0 strh r2, [r0] adds r1, 0x3A ldr r3, _080C210C @ =0x00003f3f adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 subs r3, 0x11 adds r0, r3, 0 strh r0, [r1] ldr r0, _080C2110 @ =REG_WIN0H strh r2, [r0] adds r0, 0x4 strh r2, [r0] subs r0, 0x2 strh r2, [r0] adds r0, 0x4 strh r2, [r0] adds r0, 0xA strh r2, [r0] adds r0, 0x2 strh r2, [r0] adds r0, 0x2 strh r2, [r0] subs r0, 0x44 strh r2, [r0] adds r0, 0x2 strh r2, [r0] adds r0, 0x2 strh r2, [r0] adds r0, 0x2 strh r2, [r0] adds r0, 0x2 strh r2, [r0] adds r0, 0x2 strh r2, [r0] adds r0, 0x2 strh r2, [r0] adds r0, 0x2 strh r2, [r0] ldrh r0, [r5] movs r3, 0xFE lsls r3, 7 adds r1, r3, 0 orrs r0, r1 strh r0, [r5] ldr r0, _080C2114 @ =gUnknown_030042A4 strh r2, [r0] ldr r0, _080C2118 @ =gUnknown_030042A0 strh r2, [r0] ldr r0, _080C211C @ =gUnknown_030042C0 strh r2, [r0] ldr r0, _080C2120 @ =gUnknown_030041B4 strh r2, [r0] ldr r0, _080C2124 @ =gUnknown_03004288 strh r2, [r0] ldr r0, _080C2128 @ =gUnknown_03004280 strh r2, [r0] ldr r0, _080C212C @ =gUnknown_030041B0 strh r2, [r0] ldr r0, _080C2130 @ =gUnknown_030041B8 strh r2, [r0] ldr r0, _080C2134 @ =gUnknown_030042C4 strh r2, [r0] ldr r0, _080C2138 @ =gUnknown_03004240 strh r2, [r0] ldr r0, _080C213C @ =gUnknown_03004200 strh r2, [r0] ldr r0, _080C2140 @ =gUnknown_03004244 strh r2, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C20F0: .4byte gWindowConfig_81E6FA0 _080C20F4: .4byte gMenuWindow _080C20F8: .4byte REG_BG0CNT _080C20FC: .4byte 0x00001803 _080C2100: .4byte 0x00001c03 _080C2104: .4byte 0x00003a03 _080C2108: .4byte REG_MOSAIC _080C210C: .4byte 0x00003f3f _080C2110: .4byte REG_WIN0H _080C2114: .4byte gUnknown_030042A4 _080C2118: .4byte gUnknown_030042A0 _080C211C: .4byte gUnknown_030042C0 _080C2120: .4byte gUnknown_030041B4 _080C2124: .4byte gUnknown_03004288 _080C2128: .4byte gUnknown_03004280 _080C212C: .4byte gUnknown_030041B0 _080C2130: .4byte gUnknown_030041B8 _080C2134: .4byte gUnknown_030042C4 _080C2138: .4byte gUnknown_03004240 _080C213C: .4byte gUnknown_03004200 _080C2140: .4byte gUnknown_03004244 thumb_func_end sub_80C2020 thumb_func_start sub_80C2144 sub_80C2144: @ 80C2144 push {r4-r7,lr} sub sp, 0x4 movs r2, 0xC0 lsls r2, 19 movs r3, 0xC0 lsls r3, 9 ldr r0, _080C220C @ =gUnknown_08D1977C mov r12, r0 movs r5, 0 ldr r1, _080C2210 @ =0x040000d4 movs r4, 0x80 lsls r4, 5 ldr r6, _080C2214 @ =0x85000400 movs r7, 0x85 lsls r7, 24 _080C2162: str r5, [sp] mov r0, sp str r0, [r1] str r2, [r1, 0x4] str r6, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r4 subs r3, r4 cmp r3, r4 bhi _080C2162 str r5, [sp] mov r0, sp str r0, [r1] str r2, [r1, 0x4] lsrs r0, r3, 2 orrs r0, r7 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r1, 0xC0 lsls r1, 19 mov r0, r12 bl LZDecompressVram ldr r0, _080C2218 @ =gUnknown_08D1A490 ldr r1, _080C221C @ =0x0600d000 bl LZDecompressVram ldr r0, _080C2220 @ =gUnknown_08D1A364 ldr r1, _080C2224 @ =0x0600e000 bl LZDecompressVram ldr r0, _080C2228 @ =gUnknown_08D1A250 ldr r1, _080C222C @ =0x0600f000 bl LZDecompressVram bl sub_80C37E4 ldr r0, _080C2230 @ =gUnknown_08D1A618 movs r2, 0x80 lsls r2, 2 movs r1, 0 bl LoadCompressedPalette ldr r0, _080C2234 @ =gWindowConfig_81E6FA0 bl LoadFontDefaultPalette movs r6, 0 _080C21C0: lsls r5, r6, 24 lsrs r5, 24 adds r0, r5, 0 movs r1, 0x1 bl sub_80C3990 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x1 bl sub_80C39E4 movs r5, 0 lsls r1, r6, 1 adds r2, r6, 0x1 mov r12, r2 lsls r4, 24 asrs r7, r4, 24 adds r1, r6 lsls r1, 6 lsls r4, r0, 24 _080C21EC: ldr r6, _080C2238 @ =0x000060b2 cmp r5, r7 bge _080C21F4 adds r6, 0x2 _080C21F4: asrs r2, r4, 24 adds r0, r2, 0 cmp r2, 0 bge _080C21FE negs r0, r2 _080C21FE: cmp r5, r0 bge _080C2240 ldr r3, _080C223C @ =0x000060a4 cmp r2, 0 bge _080C2242 adds r3, 0x2 b _080C2242 .align 2, 0 _080C220C: .4byte gUnknown_08D1977C _080C2210: .4byte 0x040000d4 _080C2214: .4byte 0x85000400 _080C2218: .4byte gUnknown_08D1A490 _080C221C: .4byte 0x0600d000 _080C2220: .4byte gUnknown_08D1A364 _080C2224: .4byte 0x0600e000 _080C2228: .4byte gUnknown_08D1A250 _080C222C: .4byte 0x0600f000 _080C2230: .4byte gUnknown_08D1A618 _080C2234: .4byte gWindowConfig_81E6FA0 _080C2238: .4byte 0x000060b2 _080C223C: .4byte 0x000060a4 _080C2240: ldr r3, _080C2264 @ =0x000060a2 _080C2242: ldr r2, _080C2268 @ =0x0600c166 adds r0, r1, r2 strh r6, [r0] adds r2, 0x40 adds r0, r1, r2 strh r3, [r0] adds r1, 0x2 adds r5, 0x1 cmp r5, 0x9 ble _080C21EC mov r6, r12 cmp r6, 0x3 ble _080C21C0 add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C2264: .4byte 0x000060a2 _080C2268: .4byte 0x0600c166 thumb_func_end sub_80C2144 thumb_func_start sub_80C226C sub_80C226C: @ 80C226C push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080C2288 @ =gUnknown_02038695 ldrb r0, [r0] cmp r5, r0 bne _080C2294 ldr r0, _080C228C @ =gUnknown_020238CC ldr r1, _080C2290 @ =gUnknown_083D17DC bl StringCopy adds r2, r0, 0 b _080C2296 .align 2, 0 _080C2288: .4byte gUnknown_02038695 _080C228C: .4byte gUnknown_020238CC _080C2290: .4byte gUnknown_083D17DC _080C2294: ldr r2, _080C22E8 @ =gUnknown_020238CC _080C2296: movs r4, 0xFC strb r4, [r2] movs r0, 0x6 strb r0, [r2, 0x1] movs r0, 0x4 strb r0, [r2, 0x2] adds r2, 0x3 lsls r6, r5, 6 ldr r7, _080C22EC @ =gUnknown_02038572 adds r1, r6, r7 adds r0, r2, 0 bl StringCopy adds r2, r0, 0 strb r4, [r2] movs r0, 0x13 strb r0, [r2, 0x1] movs r0, 0x32 strb r0, [r2, 0x2] adds r2, 0x3 ldr r1, _080C22F0 @ =gUnknown_083D17E0 adds r0, r2, 0 bl StringCopy adds r2, r0, 0 ldr r0, _080C22F4 @ =gUnknown_0203869A ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C22FC lsls r4, r5, 3 subs r1, r4, r5 lsls r1, 2 ldr r0, _080C22F8 @ =gLinkPlayers + 0x8 adds r1, r0 adds r0, r2, 0 bl StringCopy b _080C230A .align 2, 0 _080C22E8: .4byte gUnknown_020238CC _080C22EC: .4byte gUnknown_02038572 _080C22F0: .4byte gUnknown_083D17E0 _080C22F4: .4byte gUnknown_0203869A _080C22F8: .4byte gLinkPlayers + 0x8 _080C22FC: adds r1, r7, 0 adds r1, 0xB adds r1, r6, r1 adds r0, r2, 0 bl StringCopy lsls r4, r5, 3 _080C230A: ldr r0, _080C2334 @ =gMenuWindow ldr r1, _080C2338 @ =gUnknown_020238CC adds r2, r4, r5 lsls r2, 18 ldr r3, _080C233C @ =0x03020000 adds r2, r3 lsrs r2, 16 lsls r3, r5, 1 adds r3, r5 adds r3, 0x4 lsls r3, 24 lsrs r3, 24 str r3, [sp] movs r3, 0x7 bl sub_8003460 add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C2334: .4byte gMenuWindow _080C2338: .4byte gUnknown_020238CC _080C233C: .4byte 0x03020000 thumb_func_end sub_80C226C thumb_func_start sub_80C2340 sub_80C2340: @ 80C2340 push {r4,lr} movs r4, 0 _080C2344: lsls r0, r4, 24 lsrs r0, 24 bl sub_80C226C adds r4, 0x1 cmp r4, 0x3 ble _080C2344 pop {r4} pop {r0} bx r0 thumb_func_end sub_80C2340 thumb_func_start sub_80C2358 sub_80C2358: @ 80C2358 push {r4,r5,lr} sub sp, 0x4 ldr r5, _080C240C @ =gPaletteFade ldrb r0, [r5, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r5, 0x8] movs r0, 0 bl SetVBlankCallback bl sub_80C2020 bl dp12_8087EA4 bl ResetPaletteFade bl ResetSpriteData bl ResetTasks bl FreeAllSpritePalettes bl sub_80C2144 bl sub_80C310C movs r0, 0 movs r1, 0x1 bl sub_80C30D4 bl sub_80C2340 ldr r4, _080C2410 @ =0x02018000 adds r0, r4, 0 movs r1, 0 movs r2, 0x18 bl memset adds r0, r4, 0 adds r0, 0x18 movs r1, 0 movs r2, 0x50 bl memset bl sub_80C33DC movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldrb r1, [r5, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r5, 0x8] ldr r0, _080C2414 @ =sub_80C24F4 movs r1, 0x5 bl CreateTask strb r0, [r4, 0x2] ldr r0, _080C2418 @ =sub_80C2430 bl SetMainCallback2 ldr r1, _080C241C @ =gUnknown_03004200 movs r0, 0xF0 strh r0, [r1] ldr r1, _080C2420 @ =gUnknown_03004244 ldr r2, _080C2424 @ =0x000080a0 adds r0, r2, 0 strh r0, [r1] ldr r0, _080C2428 @ =sub_80C2F28 movs r1, 0x14 bl CreateTask bl sub_80C3F00 movs r0, 0xDF lsls r0, 1 bl PlayBGM ldr r0, _080C242C @ =sub_80C2448 bl SetVBlankCallback add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C240C: .4byte gPaletteFade _080C2410: .4byte 0x02018000 _080C2414: .4byte sub_80C24F4 _080C2418: .4byte sub_80C2430 _080C241C: .4byte gUnknown_03004200 _080C2420: .4byte gUnknown_03004244 _080C2424: .4byte 0x000080a0 _080C2428: .4byte sub_80C2F28 _080C242C: .4byte sub_80C2448 thumb_func_end sub_80C2358 thumb_func_start sub_80C2430 sub_80C2430: @ 80C2430 push {lr} bl AnimateSprites bl BuildOamBuffer bl RunTasks bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_80C2430 thumb_func_start sub_80C2448 sub_80C2448: @ 80C2448 push {lr} ldr r1, _080C24C0 @ =REG_BG0HOFS ldr r0, _080C24C4 @ =gUnknown_030042A4 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080C24C8 @ =gUnknown_030042A0 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080C24CC @ =gUnknown_030042C0 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080C24D0 @ =gUnknown_030041B4 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080C24D4 @ =gUnknown_03004288 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080C24D8 @ =gUnknown_03004280 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080C24DC @ =gUnknown_030041B0 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080C24E0 @ =gUnknown_030041B8 ldrh r0, [r0] strh r0, [r1] adds r1, 0x22 ldr r0, _080C24E4 @ =gUnknown_030042C4 ldrh r0, [r0] strh r0, [r1] adds r1, 0x4 ldr r0, _080C24E8 @ =gUnknown_03004240 ldrh r0, [r0] strh r0, [r1] subs r1, 0x2 ldr r0, _080C24EC @ =gUnknown_03004200 ldrh r0, [r0] strh r0, [r1] adds r1, 0x4 ldr r0, _080C24F0 @ =gUnknown_03004244 ldrh r0, [r0] strh r0, [r1] bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer bl sub_8089668 pop {r0} bx r0 .align 2, 0 _080C24C0: .4byte REG_BG0HOFS _080C24C4: .4byte gUnknown_030042A4 _080C24C8: .4byte gUnknown_030042A0 _080C24CC: .4byte gUnknown_030042C0 _080C24D0: .4byte gUnknown_030041B4 _080C24D4: .4byte gUnknown_03004288 _080C24D8: .4byte gUnknown_03004280 _080C24DC: .4byte gUnknown_030041B0 _080C24E0: .4byte gUnknown_030041B8 _080C24E4: .4byte gUnknown_030042C4 _080C24E8: .4byte gUnknown_03004240 _080C24EC: .4byte gUnknown_03004200 _080C24F0: .4byte gUnknown_03004244 thumb_func_end sub_80C2448 thumb_func_start sub_80C24F4 sub_80C24F4: @ 80C24F4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 adds r2, r4, 0 ldr r0, _080C252C @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080C254E ldr r0, _080C2530 @ =gUnknown_0203869A ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C2540 ldr r0, _080C2534 @ =gOtherText_LinkStandby bl sub_80C3698 ldr r1, _080C2538 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080C253C @ =sub_80C255C str r1, [r0] b _080C254E .align 2, 0 _080C252C: .4byte gPaletteFade _080C2530: .4byte gUnknown_0203869A _080C2534: .4byte gOtherText_LinkStandby _080C2538: .4byte gTasks _080C253C: .4byte sub_80C255C _080C2540: ldr r0, _080C2554 @ =gTasks lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, _080C2558 @ =sub_80C2600 str r0, [r1] _080C254E: pop {r4} pop {r0} bx r0 .align 2, 0 _080C2554: .4byte gTasks _080C2558: .4byte sub_80C2600 thumb_func_end sub_80C24F4 thumb_func_start sub_80C255C sub_80C255C: @ 80C255C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080C2594 @ =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 beq _080C258C bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bne _080C258C ldr r0, _080C2598 @ =sub_80C25A4 movs r1, 0 bl CreateTask ldr r1, _080C259C @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080C25A0 @ =TaskDummy str r1, [r0] _080C258C: pop {r4} pop {r0} bx r0 .align 2, 0 _080C2594: .4byte gReceivedRemoteLinkPlayers _080C2598: .4byte sub_80C25A4 _080C259C: .4byte gTasks _080C25A0: .4byte TaskDummy thumb_func_end sub_80C255C thumb_func_start sub_80C25A4 sub_80C25A4: @ 80C25A4 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080C25B8 @ =sub_80C89DC ldr r2, _080C25BC @ =sub_80C25C0 bl SetTaskFuncWithFollowupFunc pop {r0} bx r0 .align 2, 0 _080C25B8: .4byte sub_80C89DC _080C25BC: .4byte sub_80C25C0 thumb_func_end sub_80C25A4 thumb_func_start sub_80C25C0 sub_80C25C0: @ 80C25C0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C25EC adds r0, r4, 0 bl DestroyTask ldr r2, _080C25F4 @ =gTasks ldr r0, _080C25F8 @ =0x02018000 ldrb r1, [r0, 0x2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, _080C25FC @ =sub_80C2600 str r1, [r0] bl sub_80C3764 _080C25EC: pop {r4} pop {r0} bx r0 .align 2, 0 _080C25F4: .4byte gTasks _080C25F8: .4byte 0x02018000 _080C25FC: .4byte sub_80C2600 thumb_func_end sub_80C25C0 thumb_func_start sub_80C2600 sub_80C2600: @ 80C2600 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080C2644 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r5, r1, r2 ldrh r1, [r5, 0x8] movs r2, 0x8 ldrsh r0, [r5, r2] cmp r0, 0 bne _080C2654 ldr r0, _080C2648 @ =sub_80C2F64 movs r1, 0x14 bl CreateTask ldr r4, _080C264C @ =gContestText_AnnounceResults ldr r0, _080C2650 @ =0x02018000 ldrb r1, [r0] adds r0, r4, 0 bl sub_80C3158 adds r0, r4, 0 bl sub_80C34AC lsls r0, 16 asrs r0, 16 movs r3, 0x88 lsls r3, 3 movs r1, 0x90 movs r2, 0x78 b _080C26A6 .align 2, 0 _080C2644: .4byte gTasks _080C2648: .4byte sub_80C2F64 _080C264C: .4byte gContestText_AnnounceResults _080C2650: .4byte 0x02018000 _080C2654: cmp r0, 0x1 bne _080C2668 ldr r0, _080C2664 @ =0x02018000 ldrb r0, [r0, 0x4] cmp r0, 0 bne _080C26D4 b _080C267C .align 2, 0 _080C2664: .4byte 0x02018000 _080C2668: cmp r0, 0x2 bne _080C2684 ldrh r0, [r5, 0xA] adds r0, 0x1 strh r0, [r5, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x15 bne _080C26D4 movs r0, 0 _080C267C: strh r0, [r5, 0xA] adds r0, r1, 0x1 strh r0, [r5, 0x8] b _080C26D4 _080C2684: cmp r0, 0x3 bne _080C26C0 ldr r4, _080C26B4 @ =gContestText_PreliminaryResults ldr r0, _080C26B8 @ =0x02018000 ldrb r1, [r0] adds r0, r4, 0 bl sub_80C3158 adds r0, r4, 0 bl sub_80C34AC lsls r0, 16 asrs r0, 16 ldr r2, _080C26BC @ =0x0000ffff movs r3, 0x88 lsls r3, 3 movs r1, 0x90 _080C26A6: bl sub_80C34CC ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] b _080C26D4 .align 2, 0 _080C26B4: .4byte gContestText_PreliminaryResults _080C26B8: .4byte 0x02018000 _080C26BC: .4byte 0x0000ffff _080C26C0: cmp r0, 0x4 bne _080C26D4 ldr r0, _080C26DC @ =0x02018000 ldrb r0, [r0, 0x4] cmp r0, 0x2 bne _080C26D4 movs r0, 0 strh r0, [r5, 0x8] ldr r0, _080C26E0 @ =sub_80C26E4 str r0, [r5] _080C26D4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C26DC: .4byte 0x02018000 _080C26E0: .4byte sub_80C26E4 thumb_func_end sub_80C2600 thumb_func_start sub_80C26E4 sub_80C26E4: @ 80C26E4 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080C2708 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080C2744 cmp r0, 0x1 bgt _080C270C cmp r0, 0 beq _080C2712 b _080C2766 .align 2, 0 _080C2708: .4byte gTasks _080C270C: cmp r0, 0x2 beq _080C2754 b _080C2766 _080C2712: ldr r5, _080C2738 @ =0x02018000 ldrb r0, [r5, 0xA] cmp r0, 0 bne _080C2766 ldrh r1, [r4, 0xC] adds r0, r1, 0x1 strh r0, [r4, 0xC] lsls r1, 24 lsrs r1, 24 movs r0, 0 bl sub_80C40D4 ldrb r0, [r5, 0x14] cmp r0, 0 bne _080C273C movs r0, 0x2 strh r0, [r4, 0x8] b _080C2766 .align 2, 0 _080C2738: .4byte 0x02018000 _080C273C: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080C2766 _080C2744: ldr r0, _080C2750 @ =0x02018000 ldrb r0, [r0, 0x14] cmp r0, 0 bne _080C2766 strh r0, [r4, 0x8] b _080C2766 .align 2, 0 _080C2750: .4byte 0x02018000 _080C2754: movs r0, 0x88 lsls r0, 3 bl sub_80C3520 movs r0, 0 strh r0, [r4, 0x8] strh r0, [r4, 0xC] ldr r0, _080C276C @ =sub_80C2770 str r0, [r4] _080C2766: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C276C: .4byte sub_80C2770 thumb_func_end sub_80C26E4 thumb_func_start sub_80C2770 sub_80C2770: @ 80C2770 push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 adds r4, r2, 0 ldr r5, _080C27BC @ =0x02018000 ldrb r3, [r5, 0x4] cmp r3, 0 bne _080C27CC ldr r1, _080C27C0 @ =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0, r1 ldrh r0, [r1, 0xA] adds r0, 0x1 strh r0, [r1, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x15 bne _080C27DE strh r3, [r1, 0xA] ldr r4, _080C27C4 @ =gContestText_Round2Results ldrb r1, [r5] adds r0, r4, 0 bl sub_80C3158 adds r0, r4, 0 bl sub_80C34AC lsls r0, 16 asrs r0, 16 ldr r2, _080C27C8 @ =0x0000ffff movs r3, 0x88 lsls r3, 3 movs r1, 0x90 bl sub_80C34CC b _080C27DE .align 2, 0 _080C27BC: .4byte 0x02018000 _080C27C0: .4byte gTasks _080C27C4: .4byte gContestText_Round2Results _080C27C8: .4byte 0x0000ffff _080C27CC: cmp r3, 0x2 bne _080C27DE ldr r0, _080C27E4 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080C27E8 @ =sub_80C27EC str r0, [r1] _080C27DE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C27E4: .4byte gTasks _080C27E8: .4byte sub_80C27EC thumb_func_end sub_80C2770 thumb_func_start sub_80C27EC sub_80C27EC: @ 80C27EC push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080C2810 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080C284C cmp r0, 0x1 bgt _080C2814 cmp r0, 0 beq _080C281A b _080C286C .align 2, 0 _080C2810: .4byte gTasks _080C2814: cmp r0, 0x2 beq _080C285C b _080C286C _080C281A: ldr r5, _080C2840 @ =0x02018000 ldrb r0, [r5, 0xA] cmp r0, 0 bne _080C286C ldrh r1, [r4, 0xC] adds r0, r1, 0x1 strh r0, [r4, 0xC] lsls r1, 24 lsrs r1, 24 movs r0, 0x1 bl sub_80C40D4 ldrb r0, [r5, 0x14] cmp r0, 0 bne _080C2844 movs r0, 0x2 strh r0, [r4, 0x8] b _080C286C .align 2, 0 _080C2840: .4byte 0x02018000 _080C2844: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080C286C _080C284C: ldr r0, _080C2858 @ =0x02018000 ldrb r0, [r0, 0x14] cmp r0, 0 bne _080C286C strh r0, [r4, 0x8] b _080C286C .align 2, 0 _080C2858: .4byte 0x02018000 _080C285C: movs r0, 0x88 lsls r0, 3 bl sub_80C3520 movs r0, 0 strh r0, [r4, 0x8] ldr r0, _080C2874 @ =sub_80C2878 str r0, [r4] _080C286C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C2874: .4byte sub_80C2878 thumb_func_end sub_80C27EC thumb_func_start sub_80C2878 sub_80C2878: @ 80C2878 push {r4-r7,lr} sub sp, 0x64 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080C28A0 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] adds r2, r1, 0 cmp r0, 0x5 bls _080C2896 b _080C2A80 _080C2896: lsls r0, 2 ldr r1, _080C28A4 @ =_080C28A8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C28A0: .4byte gTasks _080C28A4: .4byte _080C28A8 .align 2, 0 _080C28A8: .4byte _080C28C0 .4byte _080C28E0 .4byte _080C28FE .4byte _080C2938 .4byte _080C299C .4byte _080C2A70 _080C28C0: ldr r0, _080C28DC @ =0x02018000 ldrb r0, [r0, 0x4] cmp r0, 0 beq _080C28CA b _080C2A80 _080C28CA: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r2 ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] b _080C2A80 .align 2, 0 _080C28DC: .4byte 0x02018000 _080C28E0: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r1, r0, r2 ldrh r0, [r1, 0xA] adds r0, 0x1 strh r0, [r1, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1F beq _080C28F8 b _080C2A80 _080C28F8: movs r0, 0 strh r0, [r1, 0xA] b _080C2A4A _080C28FE: movs r4, 0 lsls r6, r5, 2 ldr r7, _080C292C @ =gTasks _080C2904: ldr r0, _080C2930 @ =sub_80C3A5C movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r7 ldr r0, _080C2934 @ =gUnknown_02038690 adds r0, r4, r0 ldrb r0, [r0] strh r0, [r1, 0x8] strh r4, [r1, 0xA] adds r4, 0x1 cmp r4, 0x3 ble _080C2904 b _080C2A42 .align 2, 0 _080C292C: .4byte gTasks _080C2930: .4byte sub_80C3A5C _080C2934: .4byte gUnknown_02038690 _080C2938: ldr r0, _080C2990 @ =0x02018000 ldrb r0, [r0, 0x5] cmp r0, 0x4 beq _080C2942 b _080C2A80 _080C2942: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r2 ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1F beq _080C295A b _080C2A80 _080C295A: movs r0, 0 strh r0, [r4, 0xA] ldr r0, _080C2994 @ =sub_80C3B30 movs r1, 0xA bl CreateTask ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r4, 0 ldr r1, _080C2998 @ =gUnknown_02038690 ldrb r0, [r1] cmp r0, 0 beq _080C2984 _080C2976: adds r4, 0x1 cmp r4, 0x3 bgt _080C2984 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 bne _080C2976 _080C2984: lsls r0, r4, 24 lsrs r0, 24 movs r1, 0xE bl sub_80C3E60 b _080C2A80 .align 2, 0 _080C2990: .4byte 0x02018000 _080C2994: .4byte sub_80C3B30 _080C2998: .4byte gUnknown_02038690 _080C299C: lsls r1, r5, 2 adds r0, r1, r5 lsls r0, 3 adds r2, r0, r2 ldrh r0, [r2, 0xA] adds r0, 0x1 strh r0, [r2, 0xA] lsls r0, 16 asrs r0, 16 adds r6, r1, 0 cmp r0, 0x15 bne _080C2A80 movs r0, 0 strh r0, [r2, 0xA] movs r4, 0 ldr r2, _080C29F4 @ =gUnknown_02038690 ldrb r0, [r2] ldr r1, _080C29F8 @ =gUnknown_0203869A ldr r3, _080C29FC @ =gStringVar1 cmp r0, 0 beq _080C29D4 _080C29C6: adds r4, 0x1 cmp r4, 0x3 bgt _080C29D4 adds r0, r4, r2 ldrb r0, [r0] cmp r0, 0 bne _080C29C6 _080C29D4: ldrb r1, [r1] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C2A04 lsls r1, r4, 3 subs r1, r4 lsls r1, 2 ldr r0, _080C2A00 @ =gLinkPlayers + 0x8 adds r1, r0 adds r0, r3, 0 bl StringCopy lsls r4, 6 b _080C2A10 .align 2, 0 _080C29F4: .4byte gUnknown_02038690 _080C29F8: .4byte gUnknown_0203869A _080C29FC: .4byte gStringVar1 _080C2A00: .4byte gLinkPlayers + 0x8 _080C2A04: lsls r4, 6 ldr r1, _080C2A54 @ =gUnknown_0203857D adds r1, r4, r1 adds r0, r3, 0 bl StringCopy _080C2A10: ldr r0, _080C2A58 @ =gStringVar2 ldr r1, _080C2A5C @ =gUnknown_02038572 adds r1, r4, r1 bl StringCopy ldr r1, _080C2A60 @ =gContestText_PokeWon mov r0, sp bl StringExpandPlaceholders ldr r0, _080C2A64 @ =0x02018000 ldrb r1, [r0] mov r0, sp bl sub_80C3158 mov r0, sp bl sub_80C34AC lsls r0, 16 asrs r0, 16 ldr r2, _080C2A68 @ =0x0000ffff movs r3, 0x88 lsls r3, 3 movs r1, 0x90 bl sub_80C34CC _080C2A42: ldr r0, _080C2A6C @ =gTasks adds r1, r6, r5 lsls r1, 3 adds r1, r0 _080C2A4A: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _080C2A80 .align 2, 0 _080C2A54: .4byte gUnknown_0203857D _080C2A58: .4byte gStringVar2 _080C2A5C: .4byte gUnknown_02038572 _080C2A60: .4byte gContestText_PokeWon _080C2A64: .4byte 0x02018000 _080C2A68: .4byte 0x0000ffff _080C2A6C: .4byte gTasks _080C2A70: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r2 movs r1, 0 strh r1, [r0, 0x8] ldr r1, _080C2A88 @ =sub_80C2A8C str r1, [r0] _080C2A80: add sp, 0x64 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C2A88: .4byte sub_80C2A8C thumb_func_end sub_80C2878 thumb_func_start sub_80C2A8C sub_80C2A8C: @ 80C2A8C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r7, r0, 24 ldr r1, _080C2ABC @ =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] adds r4, r1, 0 cmp r0, 0x5 bls _080C2AB2 b _080C2D04 _080C2AB2: lsls r0, 2 ldr r1, _080C2AC0 @ =_080C2AC4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C2ABC: .4byte gTasks _080C2AC0: .4byte _080C2AC4 .align 2, 0 _080C2AC4: .4byte _080C2ADC .4byte _080C2C04 .4byte _080C2C54 .4byte _080C2C64 .4byte _080C2CA8 .4byte _080C2CE8 _080C2ADC: ldr r1, _080C2BC4 @ =gUnknown_030042C4 movs r0, 0xF0 strh r0, [r1] ldr r1, _080C2BC8 @ =gUnknown_03004240 ldr r3, _080C2BCC @ =0x00005050 adds r0, r3, 0 strh r0, [r1] movs r1, 0 ldr r3, _080C2BD0 @ =gUnknown_02038690 ldrb r0, [r3] lsls r4, r7, 2 mov r10, r4 ldr r2, _080C2BD4 @ =gUnknown_02038570 ldr r5, _080C2BD8 @ =gMonFrontPicTable mov r12, r5 ldr r4, _080C2BDC @ =gMonFrontPicCoords mov r8, r4 ldr r5, _080C2BE0 @ =gUnknown_081FAF4C mov r9, r5 cmp r0, 0 beq _080C2B14 _080C2B06: adds r1, 0x1 cmp r1, 0x3 bgt _080C2B14 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 bne _080C2B06 _080C2B14: lsls r1, 6 adds r0, r1, r2 ldrh r6, [r0] adds r0, r2, 0 adds r0, 0x38 adds r0, r1, r0 ldr r4, [r0] adds r0, r2, 0 adds r0, 0x3C adds r1, r0 ldr r1, [r1] str r1, [sp, 0xC] lsls r0, r6, 3 add r0, r12 lsls r2, r6, 2 add r2, r8 ldrb r1, [r2] ldrb r2, [r2, 0x1] mov r5, r9 ldr r3, [r5, 0x4] str r3, [sp] str r6, [sp, 0x4] str r4, [sp, 0x8] ldr r3, _080C2BE4 @ =0x02000000 bl sub_800D334 adds r0, r6, 0 ldr r1, [sp, 0xC] adds r2, r4, 0 bl sub_80409C8 adds r4, r0, 0 bl LoadCompressedObjectPalette adds r0, r6, 0 movs r1, 0x1 bl GetMonSpriteTemplate_803C56C ldr r0, _080C2BE8 @ =gUnknown_02024E8C ldrh r1, [r4, 0x4] strh r1, [r0, 0x2] movs r1, 0x88 lsls r1, 1 movs r2, 0x50 movs r3, 0xA bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r5, _080C2BEC @ =gSprites lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r3, r2, r5 strh r6, [r3, 0x30] ldrb r4, [r3, 0x5] movs r1, 0xD negs r1, r1 ands r1, r4 strb r1, [r3, 0x5] adds r5, 0x1C adds r2, r5 ldr r1, _080C2BF0 @ =sub_80C3C44 str r1, [r2] ldr r2, _080C2BE4 @ =0x02000000 movs r3, 0xC0 lsls r3, 9 adds r1, r2, r3 strb r0, [r1, 0x8] ldr r0, _080C2BF4 @ =gUnknown_083D17CC bl LoadCompressedObjectPic ldr r0, _080C2BF8 @ =gUnknown_083D17D4 bl LoadCompressedObjectPalette ldr r0, _080C2BFC @ =sub_80C3D04 movs r1, 0xA bl CreateTask ldr r0, _080C2C00 @ =gTasks mov r4, r10 adds r1, r4, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _080C2D04 .align 2, 0 _080C2BC4: .4byte gUnknown_030042C4 _080C2BC8: .4byte gUnknown_03004240 _080C2BCC: .4byte 0x00005050 _080C2BD0: .4byte gUnknown_02038690 _080C2BD4: .4byte gUnknown_02038570 _080C2BD8: .4byte gMonFrontPicTable _080C2BDC: .4byte gMonFrontPicCoords _080C2BE0: .4byte gUnknown_081FAF4C _080C2BE4: .4byte 0x02000000 _080C2BE8: .4byte gUnknown_02024E8C _080C2BEC: .4byte gSprites _080C2BF0: .4byte sub_80C3C44 _080C2BF4: .4byte gUnknown_083D17CC _080C2BF8: .4byte gUnknown_083D17D4 _080C2BFC: .4byte sub_80C3D04 _080C2C00: .4byte gTasks _080C2C04: lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r4, r0, r4 ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bne _080C2D04 movs r0, 0 strh r0, [r4, 0xE] ldrh r0, [r4, 0xC] adds r0, 0x2 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x20 ble _080C2C30 movs r0, 0x20 strh r0, [r4, 0xC] _080C2C30: ldrb r2, [r4, 0xC] ldr r3, _080C2C50 @ =gUnknown_03004240 movs r0, 0x50 subs r0, r2 lsls r0, 8 adds r1, r2, 0 adds r1, 0x50 orrs r0, r1 strh r0, [r3] cmp r2, 0x20 bne _080C2D04 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080C2D04 .align 2, 0 _080C2C50: .4byte gUnknown_03004240 _080C2C54: ldr r0, _080C2C60 @ =0x02018000 ldrb r0, [r0, 0x6] cmp r0, 0x1 bne _080C2D04 b _080C2CD0 .align 2, 0 _080C2C60: .4byte 0x02018000 _080C2C64: lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r3, r0, r4 ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x79 bne _080C2D04 movs r0, 0 strh r0, [r3, 0xA] ldr r2, _080C2C9C @ =gSprites ldr r0, _080C2CA0 @ =0x02018000 ldrb r1, [r0, 0x8] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _080C2CA4 @ =sub_80C3CB8 str r1, [r0] ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] b _080C2D04 .align 2, 0 _080C2C9C: .4byte gSprites _080C2CA0: .4byte 0x02018000 _080C2CA4: .4byte sub_80C3CB8 _080C2CA8: ldr r0, _080C2CE0 @ =0x02018000 ldrb r0, [r0, 0x6] cmp r0, 0x2 bne _080C2D04 ldr r3, _080C2CE4 @ =gUnknown_03004240 ldrh r0, [r3] lsrs r2, r0, 8 adds r0, r2, 0x2 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x50 bls _080C2CC2 movs r2, 0x50 _080C2CC2: lsls r1, r2, 8 movs r0, 0xA0 subs r0, r2 orrs r1, r0 strh r1, [r3] cmp r2, 0x50 bne _080C2D04 _080C2CD0: lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r4 ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] b _080C2D04 .align 2, 0 _080C2CE0: .4byte 0x02018000 _080C2CE4: .4byte gUnknown_03004240 _080C2CE8: ldr r2, _080C2D14 @ =0x02018000 ldrb r0, [r2, 0x6] cmp r0, 0x2 bne _080C2D04 movs r1, 0 movs r0, 0x1 strb r0, [r2, 0x9] lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r4 strh r1, [r0, 0x8] ldr r1, _080C2D18 @ =sub_80C2D1C str r1, [r0] _080C2D04: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C2D14: .4byte 0x02018000 _080C2D18: .4byte sub_80C2D1C thumb_func_end sub_80C2A8C thumb_func_start sub_80C2D1C sub_80C2D1C: @ 80C2D1C push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 ldr r0, _080C2D6C @ =gMain ldrh r1, [r0, 0x2E] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _080C2D66 ldr r0, _080C2D70 @ =gUnknown_0203869A ldrb r1, [r0] adds r0, r2, 0 ands r0, r1 lsls r6, r7, 2 cmp r0, 0 bne _080C2D5A ldr r5, _080C2D74 @ =gUnknown_02038570 movs r4, 0x3 _080C2D42: ldrh r0, [r5] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x2 bl sub_8090D90 adds r5, 0x40 subs r4, 0x1 cmp r4, 0 bge _080C2D42 _080C2D5A: ldr r0, _080C2D78 @ =gTasks adds r1, r6, r7 lsls r1, 3 adds r1, r0 ldr r0, _080C2D7C @ =sub_80C2D80 str r0, [r1] _080C2D66: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C2D6C: .4byte gMain _080C2D70: .4byte gUnknown_0203869A _080C2D74: .4byte gUnknown_02038570 _080C2D78: .4byte gTasks _080C2D7C: .4byte sub_80C2D80 thumb_func_end sub_80C2D1C thumb_func_start sub_80C2D80 sub_80C2D80: @ 80C2D80 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080C2DAC @ =gUnknown_0203869A ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C2DBC ldr r0, _080C2DB0 @ =gOtherText_LinkStandby bl sub_80C3698 bl sub_800832C ldr r1, _080C2DB4 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080C2DB8 @ =sub_80C2DD8 str r1, [r0] b _080C2DCA .align 2, 0 _080C2DAC: .4byte gUnknown_0203869A _080C2DB0: .4byte gOtherText_LinkStandby _080C2DB4: .4byte gTasks _080C2DB8: .4byte sub_80C2DD8 _080C2DBC: ldr r0, _080C2DD0 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080C2DD4 @ =sub_80C2E14 str r0, [r1] _080C2DCA: pop {r4} pop {r0} bx r0 .align 2, 0 _080C2DD0: .4byte gTasks _080C2DD4: .4byte sub_80C2E14 thumb_func_end sub_80C2D80 thumb_func_start sub_80C2DD8 sub_80C2DD8: @ 80C2DD8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080C2E04 @ =gReceivedRemoteLinkPlayers ldrb r1, [r0] cmp r1, 0 bne _080C2DFC ldr r0, _080C2E08 @ =gUnknown_0203869A strb r1, [r0] bl sub_80C3764 ldr r1, _080C2E0C @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080C2E10 @ =sub_80C2E14 str r1, [r0] _080C2DFC: pop {r4} pop {r0} bx r0 .align 2, 0 _080C2E04: .4byte gReceivedRemoteLinkPlayers _080C2E08: .4byte gUnknown_0203869A _080C2E0C: .4byte gTasks _080C2E10: .4byte sub_80C2E14 thumb_func_end sub_80C2DD8 thumb_func_start sub_80C2E14 sub_80C2E14: @ 80C2E14 push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r1, _080C2E80 @ =gUnknown_02038690 ldr r0, _080C2E84 @ =gUnknown_02038695 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] bl sub_80BE284 movs r0, 0x2 bl sub_810FB10 ldr r0, _080C2E88 @ =gUnknown_0203869E ldrb r0, [r0] bl sub_80B2A7C movs r0, 0xFE bl sub_80B2A7C ldr r4, _080C2E8C @ =0x02000000 ldr r0, _080C2E90 @ =0x00015ddf adds r1, r4, r0 movs r6, 0 movs r0, 0x1 strb r0, [r1] movs r0, 0xFE movs r1, 0 bl sub_80B2C4C ldr r1, _080C2E94 @ =0x00015dde adds r4, r1 strb r0, [r4] str r6, [sp] movs r0, 0xFF movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginHardwarePaletteFade ldr r1, _080C2E98 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _080C2E9C @ =sub_80C2EA0 str r1, [r0] add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C2E80: .4byte gUnknown_02038690 _080C2E84: .4byte gUnknown_02038695 _080C2E88: .4byte gUnknown_0203869E _080C2E8C: .4byte 0x02000000 _080C2E90: .4byte 0x00015ddf _080C2E94: .4byte 0x00015dde _080C2E98: .4byte gTasks _080C2E9C: .4byte sub_80C2EA0 thumb_func_end sub_80C2E14 thumb_func_start sub_80C2EA0 sub_80C2EA0: @ 80C2EA0 push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 adds r5, r2, 0 ldr r0, _080C2ED8 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 bne _080C2F18 ldr r1, _080C2EDC @ =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r4, r0, r1 movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0 bne _080C2EE8 ldr r0, _080C2EE0 @ =0x02018000 ldrb r0, [r0, 0x3] bl DestroyTask ldr r0, _080C2EE4 @ =0x0000ffff b _080C2EEE .align 2, 0 _080C2ED8: .4byte gPaletteFade _080C2EDC: .4byte gTasks _080C2EE0: .4byte 0x02018000 _080C2EE4: .4byte 0x0000ffff _080C2EE8: cmp r0, 0x1 bne _080C2F04 ldr r0, _080C2F00 @ =0xffff0000 _080C2EEE: movs r1, 0x10 movs r2, 0 bl BlendPalettes ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] b _080C2F18 .align 2, 0 _080C2F00: .4byte 0xffff0000 _080C2F04: ldr r0, _080C2F20 @ =REG_BLDCNT strh r3, [r0] adds r0, 0x4 strh r3, [r0] adds r0, r5, 0 bl DestroyTask ldr r0, _080C2F24 @ =c2_exit_to_overworld_1_continue_scripts_restart_music bl SetMainCallback2 _080C2F18: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C2F20: .4byte REG_BLDCNT _080C2F24: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music thumb_func_end sub_80C2EA0 thumb_func_start sub_80C2F28 sub_80C2F28: @ 80C2F28 push {r4,r5,lr} ldr r2, _080C2F5C @ =gUnknown_030041B0 ldrh r3, [r2] adds r0, r3, 0x2 strh r0, [r2] ldr r4, _080C2F60 @ =gUnknown_030041B8 ldrh r5, [r4] adds r1, r5, 0x1 strh r1, [r4] lsls r0, 16 lsrs r0, 16 cmp r0, 0xFF bls _080C2F48 adds r0, r3, 0 subs r0, 0xFD strh r0, [r2] _080C2F48: lsls r0, r1, 16 lsrs r0, 16 cmp r0, 0xFF bls _080C2F56 adds r0, r5, 0 subs r0, 0xFE strh r0, [r4] _080C2F56: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C2F5C: .4byte gUnknown_030041B0 _080C2F60: .4byte gUnknown_030041B8 thumb_func_end sub_80C2F28 thumb_func_start sub_80C2F64 sub_80C2F64: @ 80C2F64 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080C2F94 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r2, r0, r1 ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 bne _080C2FE6 movs r0, 0 strh r0, [r2, 0x8] movs r3, 0xC ldrsh r0, [r2, r3] cmp r0, 0 bne _080C2F98 ldrh r0, [r2, 0xA] adds r0, 0x1 b _080C2F9C .align 2, 0 _080C2F94: .4byte gTasks _080C2F98: ldrh r0, [r2, 0xA] subs r0, 0x1 _080C2F9C: strh r0, [r2, 0xA] lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r1, r0, r1 movs r2, 0xA ldrsh r0, [r1, r2] cmp r0, 0x10 bne _080C2FB2 movs r0, 0x1 b _080C2FB6 _080C2FB2: cmp r0, 0 bne _080C2FB8 _080C2FB6: strh r0, [r1, 0xC] _080C2FB8: ldr r0, _080C3000 @ =gTasks lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r0 ldrb r2, [r4, 0xA] ldr r3, _080C3004 @ =0x00002ede movs r0, 0x6B movs r1, 0x1 bl BlendPalette ldrb r2, [r4, 0xA] ldr r3, _080C3008 @ =0x00007fff movs r0, 0x68 movs r1, 0x1 bl BlendPalette ldrb r2, [r4, 0xA] ldr r3, _080C300C @ =0x000077be movs r0, 0x6E movs r1, 0x1 bl BlendPalette _080C2FE6: ldr r1, _080C3000 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r3, 0xA ldrsh r4, [r0, r3] cmp r4, 0 bne _080C3014 ldr r0, _080C3010 @ =0x02018000 strb r4, [r0, 0xA] b _080C301A .align 2, 0 _080C3000: .4byte gTasks _080C3004: .4byte 0x00002ede _080C3008: .4byte 0x00007fff _080C300C: .4byte 0x000077be _080C3010: .4byte 0x02018000 _080C3014: ldr r1, _080C3020 @ =0x02018000 movs r0, 0x1 strb r0, [r1, 0xA] _080C301A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C3020: .4byte 0x02018000 thumb_func_end sub_80C2F64 thumb_func_start sub_80C3024 sub_80C3024: @ 80C3024 push {r4-r6,lr} ldr r6, [sp, 0x10] lsls r0, 16 lsrs r0, 16 lsls r1, 24 lsrs r4, r1, 24 lsls r2, 24 lsrs r5, r2, 24 lsls r3, 24 cmp r3, 0 beq _080C30B0 adds r1, r6, 0 bl sub_809D4F4 lsls r1, r5, 9 adds r0, r1 adds r0, 0x80 lsls r1, r4, 9 ldr r2, _080C30A0 @ =0x06004000 adds r1, r2 ldr r2, _080C30A4 @ =0x040000d4 str r0, [r2] str r1, [r2, 0x4] ldr r0, _080C30A8 @ =0x84000060 str r0, [r2, 0x8] ldr r0, [r2, 0x8] adds r1, r4, 0 adds r1, 0xA lsls r1, 28 lsls r0, r4, 20 movs r2, 0x80 lsls r2, 18 adds r0, r2 orrs r0, r1 lsrs r1, r0, 16 lsls r0, r4, 1 adds r0, r4 lsls r0, 21 movs r2, 0x83 lsls r2, 16 adds r0, r2 lsrs r5, r0, 16 movs r2, 0 ldr r6, _080C30AC @ =0x0600c000 _080C307C: lsls r0, r2, 5 adds r4, r2, 0x1 adds r0, r5 movs r3, 0x3 lsls r0, 1 adds r2, r0, r6 _080C3088: strh r1, [r2] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 adds r2, 0x2 subs r3, 0x1 cmp r3, 0 bge _080C3088 adds r2, r4, 0 cmp r2, 0x2 ble _080C307C b _080C30CA .align 2, 0 _080C30A0: .4byte 0x06004000 _080C30A4: .4byte 0x040000d4 _080C30A8: .4byte 0x84000060 _080C30AC: .4byte 0x0600c000 _080C30B0: adds r1, r6, 0 bl sub_809D4F4 lsls r1, r5, 9 adds r0, r1 adds r0, 0x80 lsls r1, r4, 9 ldr r2, _080C30D0 @ =0x06004000 adds r1, r2 movs r2, 0xC0 lsls r2, 1 bl RequestSpriteCopy _080C30CA: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C30D0: .4byte 0x06004000 thumb_func_end sub_80C3024 thumb_func_start sub_80C30D4 sub_80C30D4: @ 80C30D4 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r7, r0, 24 lsls r1, 24 lsrs r6, r1, 24 movs r5, 0 ldr r4, _080C3108 @ =gUnknown_02038570 _080C30E4: ldrh r0, [r4] lsls r1, r5, 24 lsrs r1, 24 ldr r2, [r4, 0x38] str r2, [sp] adds r2, r7, 0 adds r3, r6, 0 bl sub_80C3024 adds r4, 0x40 adds r5, 0x1 cmp r5, 0x3 ble _080C30E4 add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C3108: .4byte gUnknown_02038570 thumb_func_end sub_80C30D4 thumb_func_start sub_80C310C sub_80C310C: @ 80C310C push {r4-r6,lr} movs r4, 0 ldr r6, _080C314C @ =gMonIconPaletteIndices movs r5, 0xA0 lsls r5, 16 _080C3116: ldr r1, _080C3150 @ =gUnknown_02038570 lsls r0, r4, 6 adds r0, r1 ldrh r0, [r0] movs r1, 0 bl mon_icon_convert_unown_species_id lsls r0, 16 lsrs r0, 16 adds r0, r6 ldrb r0, [r0] lsls r0, 5 ldr r1, _080C3154 @ =gMonIconPalettes adds r0, r1 lsrs r1, r5, 16 movs r2, 0x20 bl LoadPalette movs r0, 0x80 lsls r0, 13 adds r5, r0 adds r4, 0x1 cmp r4, 0x3 ble _080C3116 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C314C: .4byte gMonIconPaletteIndices _080C3150: .4byte gUnknown_02038570 _080C3154: .4byte gMonIconPalettes thumb_func_end sub_80C310C thumb_func_start sub_80C3158 sub_80C3158: @ 80C3158 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C mov r9, r0 lsls r1, 24 lsrs r1, 24 lsls r2, r1, 4 adds r2, r1 lsls r2, 2 ldr r3, _080C32C0 @ =gSprites adds r2, r3 mov r1, sp ldrh r0, [r2, 0x4] lsls r0, 22 lsrs r0, 22 strh r0, [r1] mov r4, sp movs r0, 0x2E ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x4] lsls r0, 22 lsrs r0, 22 strh r0, [r4, 0x2] movs r0, 0x30 ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x4] lsls r0, 22 lsrs r0, 22 strh r0, [r4, 0x4] movs r0, 0x32 ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x4] lsls r0, 22 lsrs r0, 22 strh r0, [r4, 0x6] ldr r1, _080C32C4 @ =gWindowConfig_81E7278 mov r8, r1 ldr r7, _080C32C8 @ =0x06010000 ldr r2, _080C32CC @ =0x040000d4 ldr r6, _080C32D0 @ =0x85000100 mov r1, sp movs r5, 0 add r3, sp, 0x8 movs r4, 0x3 _080C31CE: ldrh r0, [r1] lsls r0, 5 adds r0, r7 str r5, [sp, 0x8] str r3, [r2] str r0, [r2, 0x4] str r6, [r2, 0x8] ldr r0, [r2, 0x8] adds r1, 0x2 subs r4, 0x1 cmp r4, 0 bge _080C31CE mov r0, r8 mov r1, r9 bl GetStringWidthGivenWindowConfig lsls r0, 24 lsrs r5, r0, 24 ldr r2, _080C32D4 @ =gUnknown_020238CC ldr r1, _080C32D8 @ =gUnknown_083D17E2 adds r0, r2, 0 bl StringCopy adds r2, r0, 0 mvns r0, r5 adds r1, r0, 0x1 movs r0, 0x7 ands r1, r0 cmp r1, 0 beq _080C3218 movs r0, 0xFC strb r0, [r2] movs r0, 0x11 strb r0, [r2, 0x1] lsrs r0, r1, 1 strb r0, [r2, 0x2] adds r2, 0x3 _080C3218: adds r6, r5, 0x7 movs r1, 0x8 negs r1, r1 adds r0, r1, 0 ands r6, r0 lsls r6, 24 lsrs r5, r6, 24 adds r0, r2, 0 mov r1, r9 bl StringCopy adds r2, r0, 0 movs r0, 0xFC strb r0, [r2] movs r0, 0x13 strb r0, [r2, 0x1] strb r5, [r2, 0x2] movs r0, 0xFF strb r0, [r2, 0x3] ldr r0, _080C32DC @ =0x02018068 mov r10, r0 ldr r1, _080C32D4 @ =gUnknown_020238CC bl sub_80034D4 mov r0, sp ldrh r4, [r0] lsls r4, 5 ldr r1, _080C32C8 @ =0x06010000 adds r7, r4, r1 ldr r0, _080C32E0 @ =gUnknown_083D1624 mov r9, r0 ldr r1, _080C32E4 @ =REG_BG0CNT mov r8, r1 adds r1, r7, 0 mov r2, r8 bl CpuSet mov r5, r9 adds r5, 0x80 ldr r0, _080C32E8 @ =0x06010100 adds r1, r4, r0 adds r0, r5, 0 mov r2, r8 bl CpuSet ldr r0, _080C32EC @ =0x06010200 adds r1, r4, r0 adds r0, r5, 0 mov r2, r8 bl CpuSet mov r0, r9 adds r0, 0x40 ldr r1, _080C32F0 @ =0x06010300 adds r4, r1 adds r1, r4, 0 mov r2, r8 bl CpuSet lsrs r5, r6, 27 movs r4, 0 cmp r4, r5 bgt _080C3382 mov r6, sp mov r0, r10 adds r0, 0x20 str r0, [sp, 0xC] mov r1, r10 str r1, [sp, 0x10] ldr r0, _080C32F4 @ =0x0600fd20 str r0, [sp, 0x14] ldr r1, _080C32F8 @ =0x0600fe20 str r1, [sp, 0x18] ldr r0, _080C32FC @ =0x0600ff20 mov r10, r0 ldr r1, _080C3300 @ =0x06010020 mov r9, r1 _080C32B2: cmp r4, 0x6 bgt _080C3304 ldrh r0, [r6] lsls r0, 5 mov r1, r9 b _080C3322 .align 2, 0 _080C32C0: .4byte gSprites _080C32C4: .4byte gWindowConfig_81E7278 _080C32C8: .4byte 0x06010000 _080C32CC: .4byte 0x040000d4 _080C32D0: .4byte 0x85000100 _080C32D4: .4byte gUnknown_020238CC _080C32D8: .4byte gUnknown_083D17E2 _080C32DC: .4byte 0x02018068 _080C32E0: .4byte gUnknown_083D1624 _080C32E4: .4byte REG_BG0CNT _080C32E8: .4byte 0x06010100 _080C32EC: .4byte 0x06010200 _080C32F0: .4byte 0x06010300 _080C32F4: .4byte 0x0600fd20 _080C32F8: .4byte 0x0600fe20 _080C32FC: .4byte 0x0600ff20 _080C3300: .4byte 0x06010020 _080C3304: cmp r4, 0xE bgt _080C3310 ldrh r0, [r6, 0x2] lsls r0, 5 mov r1, r10 b _080C3322 _080C3310: cmp r4, 0x16 bgt _080C331C ldrh r0, [r6, 0x4] lsls r0, 5 ldr r1, [sp, 0x18] b _080C3322 _080C331C: ldrh r0, [r6, 0x6] lsls r0, 5 ldr r1, [sp, 0x14] _080C3322: adds r7, r0, r1 cmp r4, r5 beq _080C3382 ldr r0, _080C33D0 @ =gUnknown_083D16E4 adds r1, r7, 0 mov r2, r8 bl CpuSet movs r0, 0xC0 lsls r0, 2 adds r1, r7, r0 ldr r0, _080C33D0 @ =gUnknown_083D16E4 adds r0, 0x20 mov r2, r8 bl CpuSet movs r0, 0x80 lsls r0, 1 adds r1, r7, r0 ldr r0, [sp, 0x10] mov r2, r8 bl CpuSet movs r0, 0x80 lsls r0, 2 adds r1, r7, r0 ldr r0, [sp, 0xC] mov r2, r8 bl CpuSet ldr r1, [sp, 0xC] adds r1, 0x40 str r1, [sp, 0xC] ldr r0, [sp, 0x10] adds r0, 0x40 str r0, [sp, 0x10] ldr r1, [sp, 0x14] adds r1, 0x20 str r1, [sp, 0x14] ldr r0, [sp, 0x18] adds r0, 0x20 str r0, [sp, 0x18] movs r1, 0x20 add r10, r1 add r9, r1 adds r4, 0x1 cmp r4, r5 ble _080C32B2 _080C3382: ldr r4, _080C33D4 @ =gUnknown_083D1644 ldr r5, _080C33D8 @ =REG_BG0CNT adds r0, r4, 0 adds r1, r7, 0 adds r2, r5, 0 bl CpuSet adds r6, r4, 0 adds r6, 0x80 movs r0, 0x80 lsls r0, 1 adds r1, r7, r0 adds r0, r6, 0 adds r2, r5, 0 bl CpuSet movs r0, 0x80 lsls r0, 2 adds r1, r7, r0 adds r0, r6, 0 adds r2, r5, 0 bl CpuSet adds r4, 0x40 movs r0, 0xC0 lsls r0, 2 adds r1, r7, r0 adds r0, r4, 0 adds r2, r5, 0 bl CpuSet add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C33D0: .4byte gUnknown_083D16E4 _080C33D4: .4byte gUnknown_083D1644 _080C33D8: .4byte REG_BG0CNT thumb_func_end sub_80C3158 thumb_func_start sub_80C33DC sub_80C33DC: @ 80C33DC push {r4-r6,lr} sub sp, 0x20 mov r1, sp ldr r0, _080C3498 @ =gSpriteTemplate_83D174C ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} add r5, sp, 0x18 ldr r6, _080C349C @ =gUnknown_083D1764 movs r4, 0x7 _080C33F2: adds r0, r6, 0 bl LoadSpriteSheet adds r6, 0x8 subs r4, 0x1 cmp r4, 0 bge _080C33F2 ldr r0, _080C34A0 @ =gUnknown_083D17A4 bl LoadSpritePalette movs r4, 0 mov r6, sp _080C340A: mov r0, sp movs r1, 0x88 lsls r1, 1 movs r2, 0x90 movs r3, 0xA bl CreateSprite adds r1, r5, r4 strb r0, [r1] ldrh r0, [r6] adds r0, 0x1 strh r0, [r6] adds r4, 0x1 cmp r4, 0x7 ble _080C340A ldr r2, _080C34A4 @ =gSprites ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r5, 0x1] movs r3, 0 strh r1, [r0, 0x2E] ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r5, 0x2] strh r1, [r0, 0x30] ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r5, 0x3] strh r1, [r0, 0x32] ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r5, 0x5] strh r1, [r0, 0x2E] ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r5, 0x6] strh r1, [r0, 0x30] ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r5, 0x7] strh r1, [r0, 0x32] ldr r1, _080C34A8 @ =0x02018000 ldrb r0, [r5] strb r0, [r1] strb r3, [r1, 0x4] ldrb r0, [r5, 0x4] strb r0, [r1, 0x1] bl sub_80C3764 add sp, 0x20 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C3498: .4byte gSpriteTemplate_83D174C _080C349C: .4byte gUnknown_083D1764 _080C34A0: .4byte gUnknown_083D17A4 _080C34A4: .4byte gSprites _080C34A8: .4byte 0x02018000 thumb_func_end sub_80C33DC thumb_func_start sub_80C34AC sub_80C34AC: @ 80C34AC push {lr} bl StringLength lsls r0, 16 lsrs r0, 16 lsls r1, r0, 1 adds r1, r0 lsls r1, 25 lsrs r1, 25 movs r0, 0x70 subs r0, r1 lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end sub_80C34AC thumb_func_start sub_80C34CC sub_80C34CC: @ 80C34CC push {r4-r6,lr} mov r6, r8 push {r6} ldr r4, _080C3514 @ =0x02018000 mov r8, r4 ldrb r5, [r4] lsls r4, r5, 4 adds r4, r5 lsls r4, 2 ldr r5, _080C3518 @ =gSprites adds r4, r5 movs r6, 0 movs r5, 0x88 lsls r5, 1 strh r5, [r4, 0x20] strh r1, [r4, 0x22] strh r6, [r4, 0x24] strh r6, [r4, 0x26] lsls r0, 16 asrs r0, 16 adds r0, 0x20 strh r0, [r4, 0x36] strh r2, [r4, 0x38] strh r3, [r4, 0x3A] strh r6, [r4, 0x3C] ldr r0, _080C351C @ =sub_80C3588 str r0, [r4, 0x1C] movs r0, 0x1 mov r1, r8 strb r0, [r1, 0x4] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C3514: .4byte 0x02018000 _080C3518: .4byte gSprites _080C351C: .4byte sub_80C3588 thumb_func_end sub_80C34CC thumb_func_start sub_80C3520 sub_80C3520: @ 80C3520 push {r4,r5,lr} ldr r4, _080C3558 @ =0x02018000 ldrb r2, [r4] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 ldr r2, _080C355C @ =gSprites adds r1, r2 ldrh r2, [r1, 0x24] ldrh r3, [r1, 0x20] adds r2, r3 movs r3, 0 strh r2, [r1, 0x20] ldrh r2, [r1, 0x26] ldrh r5, [r1, 0x22] adds r2, r5 strh r2, [r1, 0x22] strh r3, [r1, 0x26] strh r3, [r1, 0x24] strh r0, [r1, 0x3A] strh r3, [r1, 0x3C] ldr r0, _080C3560 @ =sub_80C3630 str r0, [r1, 0x1C] movs r0, 0x3 strb r0, [r4, 0x4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C3558: .4byte 0x02018000 _080C355C: .4byte gSprites _080C3560: .4byte sub_80C3630 thumb_func_end sub_80C3520 thumb_func_start sub_80C3564 sub_80C3564: @ 80C3564 movs r3, 0 movs r2, 0 movs r1, 0x88 lsls r1, 1 strh r1, [r0, 0x20] movs r1, 0x90 strh r1, [r0, 0x22] strh r2, [r0, 0x26] strh r2, [r0, 0x24] ldr r1, _080C3580 @ =SpriteCallbackDummy str r1, [r0, 0x1C] ldr r0, _080C3584 @ =0x02018000 strb r3, [r0, 0x4] bx lr .align 2, 0 _080C3580: .4byte SpriteCallbackDummy _080C3584: .4byte 0x02018000 thumb_func_end sub_80C3564 thumb_func_start sub_80C3588 sub_80C3588: @ 80C3588 push {r4-r7,lr} adds r3, r0, 0 ldrh r2, [r3, 0x3A] ldrh r0, [r3, 0x3C] adds r2, r0 lsls r1, r2, 16 asrs r1, 24 ldrh r0, [r3, 0x20] subs r0, r1 strh r0, [r3, 0x20] movs r1, 0xFF ands r2, r1 strh r2, [r3, 0x3C] lsls r0, 16 asrs r0, 16 ldrh r2, [r3, 0x36] movs r4, 0x36 ldrsh r1, [r3, r4] cmp r0, r1 bge _080C35B2 strh r2, [r3, 0x20] _080C35B2: movs r4, 0 ldr r6, _080C35F4 @ =gSprites movs r5, 0x40 adds r2, r3, 0 adds r2, 0x2E _080C35BC: movs r7, 0 ldrsh r0, [r2, r7] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 ldrh r0, [r3, 0x24] ldrh r7, [r3, 0x20] adds r0, r7 adds r0, r5 strh r0, [r1, 0x20] adds r5, 0x40 adds r2, 0x2 adds r4, 0x1 cmp r4, 0x2 ble _080C35BC movs r0, 0x20 ldrsh r1, [r3, r0] movs r2, 0x36 ldrsh r0, [r3, r2] cmp r1, r0 bne _080C35EC ldr r0, _080C35F8 @ =sub_80C35FC str r0, [r3, 0x1C] _080C35EC: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C35F4: .4byte gSprites _080C35F8: .4byte sub_80C35FC thumb_func_end sub_80C3588 thumb_func_start sub_80C35FC sub_80C35FC: @ 80C35FC push {lr} adds r2, r0, 0 ldr r0, _080C3628 @ =0x02018000 movs r1, 0x2 strb r1, [r0, 0x4] ldrh r3, [r2, 0x38] ldr r1, _080C362C @ =0xffff0000 lsrs r0, r1, 16 cmp r3, r0 beq _080C3624 subs r0, r3, 0x1 strh r0, [r2, 0x38] lsls r0, 16 asrs r0, 16 asrs r1, 16 cmp r0, r1 bne _080C3624 ldrh r0, [r2, 0x3A] bl sub_80C3520 _080C3624: pop {r0} bx r0 .align 2, 0 _080C3628: .4byte 0x02018000 _080C362C: .4byte 0xffff0000 thumb_func_end sub_80C35FC thumb_func_start sub_80C3630 sub_80C3630: @ 80C3630 push {r4-r7,lr} adds r3, r0, 0 ldrh r2, [r3, 0x3A] ldrh r0, [r3, 0x3C] adds r2, r0 lsls r1, r2, 16 asrs r1, 24 ldrh r0, [r3, 0x20] subs r0, r1 strh r0, [r3, 0x20] movs r0, 0xFF ands r2, r0 strh r2, [r3, 0x3C] movs r4, 0 ldr r6, _080C3694 @ =gSprites movs r5, 0x40 adds r2, r3, 0 adds r2, 0x2E _080C3654: movs r1, 0 ldrsh r0, [r2, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 ldrh r0, [r3, 0x24] ldrh r7, [r3, 0x20] adds r0, r7 adds r0, r5 strh r0, [r1, 0x20] adds r5, 0x40 adds r2, 0x2 adds r4, 0x1 cmp r4, 0x2 ble _080C3654 movs r1, 0x20 ldrsh r0, [r3, r1] movs r2, 0x24 ldrsh r1, [r3, r2] adds r0, r1 movs r1, 0xE0 negs r1, r1 cmp r0, r1 bge _080C368C adds r0, r3, 0 bl sub_80C3564 _080C368C: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C3694: .4byte gSprites thumb_func_end sub_80C3630 thumb_func_start sub_80C3698 sub_80C3698: @ 80C3698 push {r4-r7,lr} adds r4, r0, 0 ldr r5, _080C374C @ =0x02018000 ldrb r1, [r5, 0x1] bl sub_80C3158 adds r0, r4, 0 bl sub_80C34AC lsls r0, 16 lsrs r0, 16 ldrb r2, [r5, 0x1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 ldr r3, _080C3750 @ =gSprites adds r4, r1, r3 adds r0, 0x20 strh r0, [r4, 0x20] movs r0, 0x50 strh r0, [r4, 0x22] adds r5, r4, 0 adds r5, 0x3E ldrb r1, [r5] movs r2, 0x5 negs r2, r2 adds r0, r2, 0 ands r0, r1 strb r0, [r5] movs r5, 0 adds r6, r3, 0 mov r12, r2 movs r3, 0x40 _080C36DA: lsls r0, r5, 1 adds r2, r4, 0 adds r2, 0x2E adds r2, r0 movs r1, 0 ldrsh r0, [r2, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 ldrh r0, [r4, 0x24] ldrh r7, [r4, 0x20] adds r0, r7 adds r0, r3 strh r0, [r1, 0x20] movs r0, 0 ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldrh r1, [r4, 0x22] strh r1, [r0, 0x22] movs r1, 0 ldrsh r0, [r2, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 adds r1, 0x3E ldrb r2, [r1] mov r0, r12 ands r0, r2 strb r0, [r1] adds r3, 0x40 adds r5, 0x1 cmp r5, 0x2 ble _080C36DA ldr r1, _080C3754 @ =gUnknown_030042C4 movs r0, 0xF0 strh r0, [r1] ldr r2, _080C3758 @ =gUnknown_03004240 ldrh r1, [r4, 0x22] adds r0, r1, 0 subs r0, 0x10 lsls r0, 8 adds r1, 0x10 orrs r0, r1 strh r0, [r2] ldr r1, _080C375C @ =REG_WININ ldr r2, _080C3760 @ =0x00003f3e adds r0, r2, 0 strh r0, [r1] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C374C: .4byte 0x02018000 _080C3750: .4byte gSprites _080C3754: .4byte gUnknown_030042C4 _080C3758: .4byte gUnknown_03004240 _080C375C: .4byte REG_WININ _080C3760: .4byte 0x00003f3e thumb_func_end sub_80C3698 thumb_func_start sub_80C3764 sub_80C3764: @ 80C3764 push {r4-r7,lr} ldr r0, _080C37C8 @ =0x02018000 ldrb r0, [r0, 0x1] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r3, _080C37CC @ =gSprites adds r2, r3 movs r0, 0x3E adds r0, r2 mov r12, r0 ldrb r0, [r0] movs r1, 0x4 orrs r0, r1 mov r1, r12 strb r0, [r1] ldr r7, _080C37D0 @ =gUnknown_030042C4 ldr r6, _080C37D4 @ =gUnknown_03004240 adds r5, r3, 0 movs r4, 0x4 adds r2, 0x2E movs r3, 0x2 _080C3790: movs r1, 0 ldrsh r0, [r2, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 adds r1, 0x3E ldrb r0, [r1] orrs r0, r4 strb r0, [r1] adds r2, 0x2 subs r3, 0x1 cmp r3, 0 bge _080C3790 movs r1, 0 strh r1, [r7] strh r1, [r6] ldr r0, _080C37D8 @ =REG_WIN0H strh r1, [r0] adds r0, 0x4 strh r1, [r0] ldr r1, _080C37DC @ =REG_WININ ldr r2, _080C37E0 @ =0x00003f3f adds r0, r2, 0 strh r0, [r1] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C37C8: .4byte 0x02018000 _080C37CC: .4byte gSprites _080C37D0: .4byte gUnknown_030042C4 _080C37D4: .4byte gUnknown_03004240 _080C37D8: .4byte REG_WIN0H _080C37DC: .4byte REG_WININ _080C37E0: .4byte 0x00003f3f thumb_func_end sub_80C3764 thumb_func_start sub_80C37E4 sub_80C37E4: @ 80C37E4 push {r4-r6,lr} sub sp, 0x10 movs r5, 0x1 movs r4, 0 ldr r0, _080C3808 @ =gUnknown_0203869A ldrb r0, [r0] adds r1, r5, 0 ands r1, r0 cmp r1, 0 beq _080C3814 ldr r0, _080C380C @ =0x0600e000 ldr r3, _080C3810 @ =gUnknown_08E964B8 movs r1, 0x9 str r1, [sp] movs r2, 0x2 str r2, [sp, 0x4] b _080C386A .align 2, 0 _080C3808: .4byte gUnknown_0203869A _080C380C: .4byte 0x0600e000 _080C3810: .4byte gUnknown_08E964B8 _080C3814: ldr r0, _080C3830 @ =gUnknown_0203869E ldrh r2, [r0] cmp r2, 0 bne _080C383C movs r4, 0x1 ldr r0, _080C3834 @ =0x0600e000 ldr r3, _080C3838 @ =gUnknown_08E964B8 str r2, [sp] str r2, [sp, 0x4] movs r1, 0x9 str r1, [sp, 0x8] movs r1, 0x2 str r1, [sp, 0xC] b _080C3870 .align 2, 0 _080C3830: .4byte gUnknown_0203869E _080C3834: .4byte 0x0600e000 _080C3838: .4byte gUnknown_08E964B8 _080C383C: cmp r2, 0x1 bne _080C385C ldr r0, _080C3854 @ =0x0600e000 ldr r3, _080C3858 @ =gUnknown_08E964B8 movs r1, 0x9 str r1, [sp] str r4, [sp, 0x4] movs r1, 0x8 str r1, [sp, 0x8] movs r1, 0x2 str r1, [sp, 0xC] b _080C3870 .align 2, 0 _080C3854: .4byte 0x0600e000 _080C3858: .4byte gUnknown_08E964B8 _080C385C: cmp r2, 0x2 bne _080C3884 ldr r0, _080C387C @ =0x0600e000 ldr r3, _080C3880 @ =gUnknown_08E964B8 movs r1, 0x11 str r1, [sp] str r4, [sp, 0x4] _080C386A: movs r1, 0x8 str r1, [sp, 0x8] str r2, [sp, 0xC] _080C3870: movs r1, 0x5 movs r2, 0x1 bl sub_809D104 b _080C389E .align 2, 0 _080C387C: .4byte 0x0600e000 _080C3880: .4byte gUnknown_08E964B8 _080C3884: movs r4, 0x1 ldr r0, _080C38C0 @ =0x0600e000 ldr r3, _080C38C4 @ =gUnknown_08E964B8 str r1, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r1, 0x9 str r1, [sp, 0x8] str r2, [sp, 0xC] movs r1, 0x5 movs r2, 0x1 bl sub_809D104 _080C389E: adds r4, 0xD ldr r0, _080C38C8 @ =gUnknown_0203869C ldrh r0, [r0] cmp r0, 0 bne _080C38CC movs r6, 0 ldr r0, _080C38C0 @ =0x0600e000 ldr r3, _080C38C4 @ =gUnknown_08E964B8 movs r1, 0x11 str r1, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r1, 0xA str r1, [sp, 0x8] str r2, [sp, 0xC] b _080C392A .align 2, 0 _080C38C0: .4byte 0x0600e000 _080C38C4: .4byte gUnknown_08E964B8 _080C38C8: .4byte gUnknown_0203869C _080C38CC: cmp r0, 0x1 bne _080C38EC movs r6, 0x1 ldr r0, _080C38E4 @ =0x0600e000 ldr r3, _080C38E8 @ =gUnknown_08E964B8 movs r1, 0 str r1, [sp] movs r1, 0x4 str r1, [sp, 0x4] movs r1, 0xB b _080C3924 .align 2, 0 _080C38E4: .4byte 0x0600e000 _080C38E8: .4byte gUnknown_08E964B8 _080C38EC: cmp r0, 0x2 bne _080C3910 movs r6, 0x2 ldr r0, _080C3908 @ =0x0600e000 ldr r3, _080C390C @ =gUnknown_08E964B8 movs r1, 0xB str r1, [sp] movs r1, 0x4 str r1, [sp, 0x4] movs r1, 0xA str r1, [sp, 0x8] str r6, [sp, 0xC] b _080C392A .align 2, 0 _080C3908: .4byte 0x0600e000 _080C390C: .4byte gUnknown_08E964B8 _080C3910: cmp r0, 0x3 bne _080C393C movs r6, 0x3 ldr r0, _080C3934 @ =0x0600e000 ldr r3, _080C3938 @ =gUnknown_08E964B8 movs r1, 0x15 str r1, [sp] movs r1, 0x4 str r1, [sp, 0x4] movs r1, 0xA _080C3924: str r1, [sp, 0x8] movs r1, 0x2 str r1, [sp, 0xC] _080C392A: adds r1, r4, 0 adds r2, r5, 0 bl sub_809D104 b _080C395A .align 2, 0 _080C3934: .4byte 0x0600e000 _080C3938: .4byte gUnknown_08E964B8 _080C393C: movs r6, 0x4 ldr r0, _080C3984 @ =0x0600e000 ldr r3, _080C3988 @ =gUnknown_08E964B8 movs r1, 0 str r1, [sp] movs r1, 0x6 str r1, [sp, 0x4] movs r1, 0xA str r1, [sp, 0x8] movs r1, 0x2 str r1, [sp, 0xC] adds r1, r4, 0 adds r2, r5, 0 bl sub_809D104 _080C395A: ldr r5, _080C398C @ =0x00000fff lsls r4, r6, 12 ldr r2, _080C3984 @ =0x0600e000 movs r3, 0x7F _080C3962: ldrh r1, [r2] adds r0, r5, 0 ands r0, r1 strh r0, [r2] ldrh r1, [r2] adds r0, r4, 0 orrs r0, r1 strh r0, [r2] adds r2, 0x2 subs r3, 0x1 cmp r3, 0 bge _080C3962 add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C3984: .4byte 0x0600e000 _080C3988: .4byte gUnknown_08E964B8 _080C398C: .4byte 0x00000fff thumb_func_end sub_80C37E4 thumb_func_start sub_80C3990 sub_80C3990: @ 80C3990 push {r4,r5,lr} lsls r0, 24 lsls r1, 24 lsrs r5, r1, 24 ldr r1, _080C39DC @ =gUnknown_02038670 lsrs r0, 23 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] lsls r4, r0, 16 adds r0, r4, 0 movs r1, 0x3F bl __udivsi3 adds r1, r0, 0 ldr r0, _080C39E0 @ =0x0000ffff ands r0, r1 cmp r0, 0 beq _080C39BC movs r0, 0x80 lsls r0, 9 adds r1, r0 _080C39BC: lsrs r1, 16 cmp r1, 0 bne _080C39C8 cmp r4, 0 beq _080C39C8 movs r1, 0x1 _080C39C8: cmp r5, 0 beq _080C39D2 cmp r1, 0xA bls _080C39D2 movs r1, 0xA _080C39D2: lsls r0, r1, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080C39DC: .4byte gUnknown_02038670 _080C39E0: .4byte 0x0000ffff thumb_func_end sub_80C3990 thumb_func_start sub_80C39E4 sub_80C39E4: @ 80C39E4 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r6, r1, 24 ldr r1, _080C3A44 @ =gUnknown_02038688 lsls r0, r5, 1 adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] adds r7, r1, 0 cmp r0, 0 bge _080C3A00 negs r0, r0 _080C3A00: lsls r4, r0, 16 adds r0, r4, 0 movs r1, 0x50 bl __udivsi3 adds r2, r0, 0 ldr r0, _080C3A48 @ =0x0000ffff ands r0, r2 cmp r0, 0 beq _080C3A1A movs r0, 0x80 lsls r0, 9 adds r2, r0 _080C3A1A: lsrs r2, 16 cmp r2, 0 bne _080C3A26 cmp r4, 0 beq _080C3A26 movs r2, 0x1 _080C3A26: cmp r6, 0 beq _080C3A30 cmp r2, 0xA bls _080C3A30 movs r2, 0xA _080C3A30: lsls r0, r5, 1 adds r0, r7 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bge _080C3A4C negs r0, r2 lsls r0, 24 b _080C3A4E .align 2, 0 _080C3A44: .4byte gUnknown_02038688 _080C3A48: .4byte 0x0000ffff _080C3A4C: lsls r0, r2, 24 _080C3A4E: lsrs r0, 24 lsls r0, 24 asrs r0, 24 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80C39E4 thumb_func_start sub_80C3A5C sub_80C3A5C: @ 80C3A5C push {r4,lr} lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 ldr r1, _080C3A90 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r3, r0, r1 ldrh r2, [r3, 0x1C] movs r1, 0x1C ldrsh r0, [r3, r1] cmp r0, 0 bne _080C3A94 movs r1, 0x8 ldrsh r0, [r3, r1] movs r1, 0x3 subs r1, r0 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 strh r0, [r3, 0x1E] adds r0, r2, 0x1 strh r0, [r3, 0x1C] b _080C3B12 .align 2, 0 _080C3A90: .4byte gTasks _080C3A94: cmp r0, 0x1 bne _080C3B12 ldrh r0, [r3, 0x1E] subs r0, 0x1 strh r0, [r3, 0x1E] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080C3B12 movs r0, 0x8 ldrsh r2, [r3, r0] lsls r2, 17 ldr r1, _080C3B18 @ =0x50430000 adds r2, r1 lsrs r2, 16 movs r0, 0xA ldrsh r1, [r3, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 6 ldr r1, _080C3B1C @ =0x0600e142 adds r0, r1 strh r2, [r0] movs r0, 0xA ldrsh r1, [r3, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 6 ldr r1, _080C3B20 @ =0x0600e144 adds r0, r1 adds r1, r2, 0x1 strh r1, [r0] movs r0, 0xA ldrsh r1, [r3, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 6 ldr r1, _080C3B24 @ =0x0600e182 adds r0, r1 adds r1, r2, 0 adds r1, 0x10 strh r1, [r0] movs r0, 0xA ldrsh r1, [r3, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 6 ldr r1, _080C3B28 @ =0x0600e184 adds r0, r1 adds r2, 0x11 strh r2, [r0] ldr r1, _080C3B2C @ =0x02018000 ldrb r0, [r1, 0x5] adds r0, 0x1 strb r0, [r1, 0x5] adds r0, r4, 0 bl DestroyTask movs r0, 0x18 bl PlaySE _080C3B12: pop {r4} pop {r0} bx r0 .align 2, 0 _080C3B18: .4byte 0x50430000 _080C3B1C: .4byte 0x0600e142 _080C3B20: .4byte 0x0600e144 _080C3B24: .4byte 0x0600e182 _080C3B28: .4byte 0x0600e184 _080C3B2C: .4byte 0x02018000 thumb_func_end sub_80C3A5C thumb_func_start sub_80C3B30 sub_80C3B30: @ 80C3B30 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r12, r0 movs r5, 0 ldr r1, _080C3BC0 @ =gUnknown_02038690 ldrb r0, [r1] ldr r2, _080C3BC4 @ =gTasks mov r10, r2 cmp r0, 0 beq _080C3B5C _080C3B4E: adds r5, 0x1 cmp r5, 0x3 bgt _080C3B5C adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0 bne _080C3B4E _080C3B5C: movs r1, 0 lsls r0, r5, 1 mov r2, r12 lsls r2, 2 mov r9, r2 adds r0, r5 lsls r0, 5 mov r8, r0 ldr r7, _080C3BC8 @ =0x00000fff movs r0, 0x90 lsls r0, 8 adds r6, r0, 0 _080C3B74: lsls r0, r1, 5 adds r4, r1, 0x1 add r0, r8 movs r3, 0x1D lsls r0, 1 ldr r1, _080C3BCC @ =0x0600e100 adds r2, r0, r1 _080C3B82: ldrh r1, [r2] adds r0, r7, 0 ands r0, r1 orrs r0, r6 strh r0, [r2] adds r2, 0x2 subs r3, 0x1 cmp r3, 0 bge _080C3B82 adds r1, r4, 0 cmp r1, 0x2 ble _080C3B74 mov r0, r9 add r0, r12 lsls r0, 3 add r0, r10 strh r5, [r0, 0x1C] movs r1, 0x1 strh r1, [r0, 0x20] ldr r2, _080C3BD0 @ =sub_80C3BD8 str r2, [r0] mov r1, r12 ldr r0, _080C3BD4 @ =0x02018000 strb r1, [r0, 0x3] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C3BC0: .4byte gUnknown_02038690 _080C3BC4: .4byte gTasks _080C3BC8: .4byte 0x00000fff _080C3BCC: .4byte 0x0600e100 _080C3BD0: .4byte sub_80C3BD8 _080C3BD4: .4byte 0x02018000 thumb_func_end sub_80C3B30 thumb_func_start sub_80C3BD8 sub_80C3BD8: @ 80C3BD8 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080C3C24 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r0, [r4, 0x1E] adds r0, 0x1 strh r0, [r4, 0x1E] lsls r0, 16 asrs r5, r0, 16 cmp r5, 0x1 bne _080C3C3C movs r0, 0 strh r0, [r4, 0x1E] ldrh r2, [r4, 0x20] lsls r2, 24 lsrs r2, 24 ldr r3, _080C3C28 @ =0x00006f8d movs r0, 0x91 movs r1, 0x1 bl BlendPalette movs r1, 0x22 ldrsh r0, [r4, r1] cmp r0, 0 bne _080C3C2C ldrh r0, [r4, 0x20] adds r0, 0x1 strh r0, [r4, 0x20] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 bne _080C3C3C strh r5, [r4, 0x22] b _080C3C3C .align 2, 0 _080C3C24: .4byte gTasks _080C3C28: .4byte 0x00006f8d _080C3C2C: ldrh r0, [r4, 0x20] subs r0, 0x1 strh r0, [r4, 0x20] lsls r0, 16 asrs r0, 16 cmp r0, 0 bne _080C3C3C strh r0, [r4, 0x22] _080C3C3C: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C3BD8 thumb_func_start sub_80C3C44 sub_80C3C44: @ 80C3C44 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x2E] movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0x9 bgt _080C3C6C adds r0, r1, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0xA bne _080C3CA8 ldrh r0, [r4, 0x30] movs r1, 0 bl PlayCry1 movs r0, 0 strh r0, [r4, 0x30] b _080C3CA8 _080C3C6C: movs r0, 0xC0 lsls r0, 3 adds r2, r0, 0 ldrh r1, [r4, 0x30] adds r2, r1 lsls r1, r2, 16 asrs r1, 24 ldrh r0, [r4, 0x20] subs r0, r1 strh r0, [r4, 0x20] movs r1, 0xFF ands r2, r1 strh r2, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x77 bgt _080C3C92 movs r0, 0x78 strh r0, [r4, 0x20] _080C3C92: movs r2, 0x20 ldrsh r0, [r4, r2] cmp r0, 0x78 bne _080C3CA8 ldr r0, _080C3CB0 @ =SpriteCallbackDummy str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x30] ldr r1, _080C3CB4 @ =0x02018000 movs r0, 0x1 strb r0, [r1, 0x6] _080C3CA8: pop {r4} pop {r0} bx r0 .align 2, 0 _080C3CB0: .4byte SpriteCallbackDummy _080C3CB4: .4byte 0x02018000 thumb_func_end sub_80C3C44 thumb_func_start sub_80C3CB8 sub_80C3CB8: @ 80C3CB8 push {lr} adds r3, r0, 0 movs r0, 0xC0 lsls r0, 3 adds r2, r0, 0 ldrh r0, [r3, 0x30] adds r2, r0 lsls r1, r2, 16 asrs r1, 24 ldrh r0, [r3, 0x20] subs r0, r1 strh r0, [r3, 0x20] movs r1, 0xFF ands r2, r1 strh r2, [r3, 0x30] lsls r0, 16 asrs r0, 16 movs r1, 0x20 negs r1, r1 cmp r0, r1 bge _080C3CF8 ldr r0, _080C3CFC @ =SpriteCallbackDummy str r0, [r3, 0x1C] adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r1, _080C3D00 @ =0x02018000 movs r0, 0x2 strb r0, [r1, 0x6] _080C3CF8: pop {r0} bx r0 .align 2, 0 _080C3CFC: .4byte SpriteCallbackDummy _080C3D00: .4byte 0x02018000 thumb_func_end sub_80C3CB8 thumb_func_start sub_80C3D04 sub_80C3D04: @ 80C3D04 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r7, r0, 24 ldr r1, _080C3DD8 @ =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r1, r0, r1 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 bne _080C3DBE movs r0, 0 strh r0, [r1, 0x8] ldr r0, _080C3DDC @ =0x02018000 mov r8, r0 ldrb r0, [r0, 0x7] cmp r0, 0x27 bhi _080C3DBE ldr r4, _080C3DE0 @ =gSpriteTemplate_83D17B4 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xF0 bl __umodsi3 adds r1, r0, 0 subs r1, 0x14 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 movs r2, 0x2C movs r3, 0x5 bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl Random ldr r1, _080C3DE4 @ =gSprites lsls r5, r4, 4 adds r5, r4 lsls r5, 2 adds r5, r1 lsls r0, 23 lsrs r0, 23 strh r0, [r5, 0x2E] bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x18 bl __umodsi3 adds r0, 0x10 strh r0, [r5, 0x30] bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xFF ands r0, r1 adds r0, 0x30 strh r0, [r5, 0x32] bl Random ldrh r6, [r5, 0x4] lsls r4, r6, 22 lsrs r4, 22 lsls r0, 16 lsrs r0, 16 movs r1, 0x11 bl __umodsi3 adds r4, r0 ldr r1, _080C3DE8 @ =0x000003ff adds r0, r1, 0 ands r4, r0 ldr r0, _080C3DEC @ =0xfffffc00 ands r0, r6 orrs r0, r4 strh r0, [r5, 0x4] mov r1, r8 ldrb r0, [r1, 0x7] adds r0, 0x1 strb r0, [r1, 0x7] _080C3DBE: ldr r0, _080C3DDC @ =0x02018000 ldrb r0, [r0, 0x9] cmp r0, 0 beq _080C3DCC adds r0, r7, 0 bl DestroyTask _080C3DCC: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C3DD8: .4byte gTasks _080C3DDC: .4byte 0x02018000 _080C3DE0: .4byte gSpriteTemplate_83D17B4 _080C3DE4: .4byte gSprites _080C3DE8: .4byte 0x000003ff _080C3DEC: .4byte 0xfffffc00 thumb_func_end sub_80C3D04 thumb_func_start sub_80C3DF0 sub_80C3DF0: @ 80C3DF0 push {r4,r5,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] ldrh r1, [r4, 0x34] adds r0, r1 strh r0, [r4, 0x34] lsls r0, 16 asrs r0, 24 movs r2, 0x30 ldrsh r1, [r4, r2] bl Sin strh r0, [r4, 0x24] ldrh r1, [r4, 0x32] ldrh r0, [r4, 0x36] adds r1, r0 lsls r0, r1, 16 asrs r0, 24 ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] movs r0, 0xFF ands r1, r0 strh r1, [r4, 0x36] ldrh r0, [r4, 0x22] adds r0, 0x1 strh r0, [r4, 0x22] ldr r5, _080C3E5C @ =0x02018000 ldrb r0, [r5, 0x9] cmp r0, 0 beq _080C3E3A adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _080C3E3A: movs r1, 0x20 ldrsh r0, [r4, r1] cmp r0, 0xF8 bgt _080C3E4A movs r2, 0x22 ldrsh r0, [r4, r2] cmp r0, 0x74 ble _080C3E56 _080C3E4A: adds r0, r4, 0 bl DestroySprite ldrb r0, [r5, 0x7] subs r0, 0x1 strb r0, [r5, 0x7] _080C3E56: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C3E5C: .4byte 0x02018000 thumb_func_end sub_80C3DF0 thumb_func_start sub_80C3E60 sub_80C3E60: @ 80C3E60 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 ldr r0, _080C3E98 @ =sub_80C3EA4 movs r1, 0x8 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080C3E9C @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] strh r5, [r1, 0xA] ldr r0, _080C3EA0 @ =gUnknown_02038570 lsls r4, 6 adds r4, r0 ldrh r0, [r4] strh r0, [r1, 0xC] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C3E98: .4byte sub_80C3EA4 _080C3E9C: .4byte gTasks _080C3EA0: .4byte gUnknown_02038570 thumb_func_end sub_80C3E60 thumb_func_start sub_80C3EA4 sub_80C3EA4: @ 80C3EA4 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r2, _080C3EF8 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrb r5, [r4, 0x8] ldrh r0, [r4, 0x1C] adds r1, r0, 0x1 strh r1, [r4, 0x1C] lsls r0, 16 asrs r0, 16 movs r2, 0xA ldrsh r1, [r4, r2] cmp r0, r1 bne _080C3EEE movs r0, 0 strh r0, [r4, 0x1C] ldrh r0, [r4, 0xC] ldrb r2, [r4, 0x1E] ldr r1, _080C3EFC @ =gUnknown_02038570 lsls r3, r5, 6 adds r1, 0x38 adds r3, r1 ldr r1, [r3] str r1, [sp] adds r1, r5, 0 movs r3, 0 bl sub_80C3024 ldrh r0, [r4, 0x1E] movs r1, 0x1 eors r0, r1 strh r0, [r4, 0x1E] _080C3EEE: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C3EF8: .4byte gTasks _080C3EFC: .4byte gUnknown_02038570 thumb_func_end sub_80C3EA4 thumb_func_start sub_80C3F00 sub_80C3F00: @ 80C3F00 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, _080C4098 @ =gUnknown_02038678 ldrh r2, [r0] adds r4, r0, 0 adds r3, r4, 0x2 movs r0, 0x2 mov r8, r0 _080C3F16: lsls r0, r2, 16 asrs r0, 16 movs r5, 0 ldrsh r1, [r3, r5] cmp r0, r1 bge _080C3F24 ldrh r2, [r3] _080C3F24: adds r3, 0x2 movs r0, 0x1 negs r0, r0 add r8, r0 mov r1, r8 cmp r1, 0 bge _080C3F16 lsls r0, r2, 16 mov r9, r0 cmp r0, 0 bge _080C3F62 ldrh r2, [r4] adds r3, r4, 0x2 movs r4, 0x2 mov r8, r4 _080C3F42: lsls r0, r2, 16 asrs r0, 16 movs r5, 0 ldrsh r1, [r3, r5] cmp r0, r1 ble _080C3F50 ldrh r2, [r3] _080C3F50: adds r3, 0x2 movs r0, 0x1 negs r0, r0 add r8, r0 lsls r1, r2, 16 mov r9, r1 mov r4, r8 cmp r4, 0 bge _080C3F42 _080C3F62: movs r5, 0 mov r8, r5 mov r10, r5 _080C3F68: ldr r0, _080C409C @ =gUnknown_02038670 mov r1, r8 lsls r7, r1, 1 adds r0, r7, r0 movs r2, 0 ldrsh r1, [r0, r2] lsls r0, r1, 5 subs r0, r1 lsls r0, 2 adds r0, r1 lsls r0, 3 mov r4, r9 asrs r6, r4, 16 adds r1, r6, 0 cmp r6, 0 bge _080C3F8A negs r1, r6 _080C3F8A: bl __divsi3 adds r4, r0, 0 movs r1, 0xA bl __modsi3 cmp r0, 0x4 ble _080C3F9C adds r4, 0xA _080C3F9C: ldr r0, _080C40A0 @ =0x02018018 mov r1, r10 adds r5, r1, r0 adds r0, r4, 0 movs r1, 0xA bl __divsi3 str r0, [r5] ldr r0, _080C40A4 @ =gUnknown_02038688 adds r7, r0 movs r2, 0 ldrsh r1, [r7, r2] cmp r1, 0 bge _080C3FBA negs r1, r1 _080C3FBA: lsls r0, r1, 5 subs r0, r1 lsls r0, 2 adds r0, r1 lsls r0, 3 adds r1, r6, 0 cmp r1, 0 bge _080C3FCC negs r1, r1 _080C3FCC: bl __divsi3 adds r4, r0, 0 movs r1, 0xA bl __modsi3 cmp r0, 0x4 ble _080C3FDE adds r4, 0xA _080C3FDE: adds r0, r4, 0 movs r1, 0xA bl __divsi3 str r0, [r5, 0x4] movs r4, 0 ldrsh r0, [r7, r4] cmp r0, 0 bge _080C3FF4 movs r0, 0x1 strb r0, [r5, 0x10] _080C3FF4: ldr r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 subs r0, r1 lsls r0, 11 movs r1, 0x64 bl __divsi3 adds r1, r0, 0 movs r4, 0xFF ands r0, r4 cmp r0, 0x7F bls _080C4016 movs r0, 0x80 lsls r0, 1 adds r1, r0 _080C4016: lsrs r0, r1, 8 str r0, [r5, 0x8] ldr r1, [r5, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 subs r0, r1 lsls r0, 11 movs r1, 0x64 bl __divsi3 adds r1, r0, 0 ands r0, r4 cmp r0, 0x7F bls _080C403A movs r2, 0x80 lsls r2, 1 adds r1, r2 _080C403A: lsrs r0, r1, 8 str r0, [r5, 0xC] mov r0, r8 lsls r4, r0, 24 lsrs r4, 24 adds r0, r4, 0 movs r1, 0x1 bl sub_80C3990 strb r0, [r5, 0x11] adds r0, r4, 0 movs r1, 0x1 bl sub_80C39E4 lsls r0, 24 asrs r0, 24 cmp r0, 0 bge _080C4060 negs r0, r0 _080C4060: strb r0, [r5, 0x12] ldr r0, _080C40A8 @ =gUnknown_02038690 add r0, r8 ldrb r0, [r0] cmp r0, 0 beq _080C40B4 ldr r4, [r5, 0x8] ldrh r2, [r5, 0x8] ldr r3, [r5, 0xC] ldrh r1, [r5, 0xC] ldrb r0, [r5, 0x10] cmp r0, 0 beq _080C4080 lsls r0, r1, 16 negs r0, r0 lsrs r1, r0, 16 _080C4080: lsls r0, r2, 16 asrs r2, r0, 16 lsls r0, r1, 16 asrs r1, r0, 16 adds r0, r2, r1 cmp r0, 0x58 bne _080C40B4 cmp r1, 0 ble _080C40AC subs r0, r3, 0x1 str r0, [r5, 0xC] b _080C40B4 .align 2, 0 _080C4098: .4byte gUnknown_02038678 _080C409C: .4byte gUnknown_02038670 _080C40A0: .4byte 0x02018018 _080C40A4: .4byte gUnknown_02038688 _080C40A8: .4byte gUnknown_02038690 _080C40AC: cmp r2, 0 ble _080C40B4 subs r0, r4, 0x1 str r0, [r5, 0x8] _080C40B4: movs r1, 0x14 add r10, r1 movs r2, 0x1 add r8, r2 mov r4, r8 cmp r4, 0x3 bgt _080C40C4 b _080C3F68 _080C40C4: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80C3F00 thumb_func_start sub_80C40D4 sub_80C40D4: @ 80C40D4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 24 lsls r1, 24 lsrs r7, r1, 24 movs r1, 0 mov r10, r1 movs r2, 0 str r2, [sp] cmp r0, 0 bne _080C4198 mov r8, r2 ldr r0, _080C417C @ =0x02018018 subs r1, 0x18 adds r1, r0 mov r9, r1 adds r4, r0, 0 adds r4, 0x8 movs r6, 0xA0 _080C4102: ldrb r0, [r4, 0x9] cmp r7, r0 bcs _080C416A adds r0, 0x13 adds r0, r6, r0 subs r0, r7 lsls r0, 1 ldr r2, _080C4180 @ =0x0600bffe adds r0, r2 ldr r2, _080C4184 @ =0x000060b3 adds r1, r2, 0 strh r1, [r0] ldr r0, _080C4188 @ =sub_80C42C0 movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r5, r0, 24 ldr r0, [r4] lsls r0, 16 ldrb r1, [r4, 0x9] bl __udivsi3 adds r1, r7, 0x1 adds r3, r0, 0 muls r3, r1 ldr r0, _080C418C @ =0x0000ffff ands r0, r3 ldr r1, _080C4190 @ =0x00007fff cmp r0, r1 bls _080C4146 movs r0, 0x80 lsls r0, 9 adds r3, r0 _080C4146: ldr r1, _080C4194 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 mov r1, r8 strh r1, [r0, 0x8] lsrs r1, r3, 16 strh r1, [r0, 0xA] mov r2, r9 ldrb r0, [r2, 0x14] adds r0, 0x1 strb r0, [r2, 0x14] mov r0, r10 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r10, r0 _080C416A: adds r4, 0x14 adds r6, 0x60 movs r0, 0x1 add r8, r0 mov r1, r8 cmp r1, 0x3 ble _080C4102 b _080C4292 .align 2, 0 _080C417C: .4byte 0x02018018 _080C4180: .4byte 0x0600bffe _080C4184: .4byte 0x000060b3 _080C4188: .4byte sub_80C42C0 _080C418C: .4byte 0x0000ffff _080C4190: .4byte 0x00007fff _080C4194: .4byte gTasks _080C4198: movs r2, 0 mov r8, r2 ldr r0, _080C4220 @ =0x02018018 mov r12, r0 mov r9, r2 movs r1, 0xC0 str r1, [sp, 0x4] _080C41A6: mov r6, r9 add r6, r12 ldrb r1, [r6, 0x12] ldrb r0, [r6, 0x10] ldr r2, _080C4224 @ =0x000060a3 cmp r0, 0 beq _080C41B6 adds r2, 0x2 _080C41B6: lsls r0, r1, 24 asrs r0, 24 cmp r7, r0 bge _080C427E adds r0, 0x13 ldr r1, [sp, 0x4] adds r0, r1, r0 subs r0, r7 lsls r0, 1 ldr r1, _080C4228 @ =0x0600bffe adds r0, r1 strh r2, [r0] ldr r0, _080C422C @ =sub_80C42C0 movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r5, r0, 24 ldr r0, [r6, 0xC] lsls r0, 16 ldrb r1, [r6, 0x12] bl __udivsi3 adds r1, r7, 0x1 adds r3, r0, 0 muls r3, r1 ldr r0, _080C4230 @ =0x0000ffff ands r0, r3 ldr r1, _080C4234 @ =0x00007fff cmp r0, r1 bls _080C41FA movs r2, 0x80 lsls r2, 9 adds r3, r2 _080C41FA: ldr r1, _080C4238 @ =gTasks lsls r2, r5, 2 adds r0, r2, r5 lsls r0, 3 adds r4, r0, r1 mov r0, r8 strh r0, [r4, 0x8] ldrb r0, [r6, 0x10] adds r6, r1, 0 cmp r0, 0 beq _080C423C movs r0, 0x1 strh r0, [r4, 0xC] ldr r0, [sp] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp] b _080C4246 .align 2, 0 _080C4220: .4byte 0x02018018 _080C4224: .4byte 0x000060a3 _080C4228: .4byte 0x0600bffe _080C422C: .4byte sub_80C42C0 _080C4230: .4byte 0x0000ffff _080C4234: .4byte 0x00007fff _080C4238: .4byte gTasks _080C423C: mov r0, r10 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r10, r0 _080C4246: ldr r0, _080C4264 @ =0x02018018 mov r1, r9 adds r4, r1, r0 ldrb r1, [r4, 0x10] mov r12, r0 cmp r1, 0 beq _080C4268 adds r0, r2, r5 lsls r0, 3 adds r0, r6 lsrs r2, r3, 16 ldr r1, [r4, 0x8] subs r1, r2 b _080C4274 .align 2, 0 _080C4264: .4byte 0x02018018 _080C4268: adds r0, r2, r5 lsls r0, 3 adds r0, r6 lsrs r2, r3, 16 ldr r1, [r4, 0x8] adds r1, r2 _080C4274: strh r1, [r0, 0xA] ldr r1, _080C42BC @ =0x02018000 ldrb r0, [r1, 0x14] adds r0, 0x1 strb r0, [r1, 0x14] _080C427E: movs r2, 0x14 add r9, r2 ldr r0, [sp, 0x4] adds r0, 0x60 str r0, [sp, 0x4] movs r1, 0x1 add r8, r1 mov r2, r8 cmp r2, 0x3 ble _080C41A6 _080C4292: ldr r0, [sp] cmp r0, 0 beq _080C429E movs r0, 0x16 bl PlaySE _080C429E: mov r1, r10 cmp r1, 0 beq _080C42AA movs r0, 0x15 bl PlaySE _080C42AA: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C42BC: .4byte 0x02018000 thumb_func_end sub_80C40D4 thumb_func_start sub_80C42C0 sub_80C42C0: @ 80C42C0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r12, r0 movs r6, 0 mov r9, r6 ldr r1, _080C4308 @ =gTasks lsls r0, 2 add r0, r12 lsls r0, 3 adds r0, r1 ldrb r5, [r0, 0x8] ldrh r7, [r0, 0xA] ldrh r1, [r0, 0xC] mov r8, r1 movs r2, 0xC ldrsh r0, [r0, r2] cmp r0, 0 beq _080C4310 ldr r1, _080C430C @ =0x02018000 lsls r2, r5, 1 adds r0, r1, 0 adds r0, 0xC adds r0, r2, r0 movs r3, 0 ldrsh r0, [r0, r3] mov r10, r1 adds r4, r2, 0 cmp r0, 0 bgt _080C4328 b _080C4326 .align 2, 0 _080C4308: .4byte gTasks _080C430C: .4byte 0x02018000 _080C4310: ldr r1, _080C4350 @ =0x02018000 lsls r2, r5, 1 adds r0, r1, 0 adds r0, 0xC adds r0, r2, r0 movs r3, 0 ldrsh r0, [r0, r3] mov r10, r1 adds r4, r2, 0 cmp r0, 0x57 ble _080C4328 _080C4326: movs r6, 0x1 _080C4328: mov r0, r10 adds r0, 0xC adds r3, r4, r0 ldrh r2, [r3] movs r0, 0 ldrsh r1, [r3, r0] lsls r0, r7, 16 asrs r0, 16 cmp r1, r0 bne _080C4340 movs r1, 0x1 mov r9, r1 _080C4340: mov r0, r9 cmp r0, 0 bne _080C4362 cmp r6, 0 beq _080C4354 strh r7, [r3] b _080C4362 .align 2, 0 _080C4350: .4byte 0x02018000 _080C4354: mov r1, r8 cmp r1, 0 beq _080C435E subs r0, r2, 0x1 b _080C4360 _080C435E: adds r0, r2, 0x1 _080C4360: strh r0, [r3] _080C4362: cmp r6, 0 bne _080C43C8 mov r2, r9 cmp r2, 0 bne _080C43CE movs r2, 0 ldr r0, _080C4388 @ =0x0201800c adds r6, r4, r0 adds r0, r4, r5 lsls r5, r0, 5 _080C4376: movs r0, 0 ldrsh r3, [r6, r0] adds r0, r2, 0x1 lsls r1, r0, 3 adds r4, r0, 0 cmp r3, r1 blt _080C438C movs r0, 0x8 b _080C43A8 .align 2, 0 _080C4388: .4byte 0x0201800c _080C438C: lsls r0, r2, 3 cmp r3, r0 blt _080C43A6 adds r0, r3, 0 cmp r3, 0 bge _080C439A adds r0, r3, 0x7 _080C439A: asrs r0, 3 lsls r0, 3 subs r0, r3, r0 lsls r0, 24 lsrs r0, 24 b _080C43A8 _080C43A6: movs r0, 0 _080C43A8: cmp r0, 0x3 bhi _080C43B4 ldr r3, _080C43B0 @ =0x0000504c b _080C43B6 .align 2, 0 _080C43B0: .4byte 0x0000504c _080C43B4: ldr r3, _080C43EC @ =0x00005057 _080C43B6: adds r1, r0, r3 adds r0, r5, r2 lsls r0, 1 ldr r2, _080C43F0 @ =0x0600e18e adds r0, r2 strh r1, [r0] adds r2, r4, 0 cmp r2, 0xA ble _080C4376 _080C43C8: mov r3, r9 cmp r3, 0 beq _080C43DC _080C43CE: mov r1, r10 ldrb r0, [r1, 0x14] subs r0, 0x1 strb r0, [r1, 0x14] mov r0, r12 bl DestroyTask _080C43DC: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C43EC: .4byte 0x00005057 _080C43F0: .4byte 0x0600e18e thumb_func_end sub_80C42C0 thumb_func_start sub_80C43F4 sub_80C43F4: @ 80C43F4 push {r4,r5,lr} ldr r0, _080C442C @ =gUnknown_02038694 ldrb r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080C4430 @ =gPlayerParty adds r0, r1 bl sub_80AE47C lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 cmp r5, 0 beq _080C4422 ldr r4, _080C4434 @ =gUnknown_0203869C ldrb r0, [r4] ldr r1, _080C4438 @ =gUnknown_0203869E ldrb r1, [r1] bl sub_80AE398 ldrb r0, [r4] bl sub_80AE82C _080C4422: ldr r0, _080C443C @ =gScriptResult strh r5, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C442C: .4byte gUnknown_02038694 _080C4430: .4byte gPlayerParty _080C4434: .4byte gUnknown_0203869C _080C4438: .4byte gUnknown_0203869E _080C443C: .4byte gScriptResult thumb_func_end sub_80C43F4 thumb_func_start sub_80C4440 sub_80C4440: @ 80C4440 push {r4,lr} movs r4, 0 ldr r0, _080C4464 @ =gUnknown_02038694 ldrb r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _080C4468 @ =gPlayerParty adds r2, r1, r0 ldr r0, _080C446C @ =gUnknown_0203869C ldrh r0, [r0] cmp r0, 0x4 bhi _080C44B2 lsls r0, 2 ldr r1, _080C4470 @ =_080C4474 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C4464: .4byte gUnknown_02038694 _080C4468: .4byte gPlayerParty _080C446C: .4byte gUnknown_0203869C _080C4470: .4byte _080C4474 .align 2, 0 _080C4474: .4byte _080C4488 .4byte _080C448E .4byte _080C4494 .4byte _080C449A .4byte _080C44A0 _080C4488: adds r0, r2, 0 movs r1, 0x32 b _080C44A4 _080C448E: adds r0, r2, 0 movs r1, 0x33 b _080C44A4 _080C4494: adds r0, r2, 0 movs r1, 0x34 b _080C44A4 _080C449A: adds r0, r2, 0 movs r1, 0x35 b _080C44A4 _080C44A0: adds r0, r2, 0 movs r1, 0x36 _080C44A4: bl GetMonData ldr r1, _080C44BC @ =gUnknown_0203869E ldrh r1, [r1] cmp r0, r1 bls _080C44B2 movs r4, 0x1 _080C44B2: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080C44BC: .4byte gUnknown_0203869E thumb_func_end sub_80C4440 thumb_func_start sub_80C44C0 sub_80C44C0: @ 80C44C0 push {r4-r7,lr} sub sp, 0x4 ldr r1, _080C44E8 @ =gUnknown_02038690 ldr r0, _080C44EC @ =gUnknown_02038695 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _080C44D4 b _080C465E _080C44D4: ldr r0, _080C44F0 @ =gUnknown_0203869C ldrh r0, [r0] cmp r0, 0x4 bls _080C44DE b _080C465E _080C44DE: lsls r0, 2 ldr r1, _080C44F4 @ =_080C44F8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C44E8: .4byte gUnknown_02038690 _080C44EC: .4byte gUnknown_02038695 _080C44F0: .4byte gUnknown_0203869C _080C44F4: .4byte _080C44F8 .align 2, 0 _080C44F8: .4byte _080C450C .4byte _080C4554 .4byte _080C4598 .4byte _080C45DC .4byte _080C4624 _080C450C: ldr r6, _080C4548 @ =gUnknown_02038694 ldrb r0, [r6] movs r5, 0x64 muls r0, r5 ldr r4, _080C454C @ =gPlayerParty adds r0, r4 movs r1, 0x32 bl GetMonData lsls r0, 24 lsrs r1, r0, 24 mov r0, sp strb r1, [r0] ldr r0, _080C4550 @ =gUnknown_0203869E ldrh r0, [r0] cmp r1, r0 bls _080C4530 b _080C465E _080C4530: adds r0, r1, 0 cmp r0, 0x3 bls _080C4538 b _080C465E _080C4538: adds r1, r0, 0x1 mov r0, sp strb r1, [r0] ldrb r0, [r6] muls r0, r5 adds r0, r4 movs r1, 0x32 b _080C4610 .align 2, 0 _080C4548: .4byte gUnknown_02038694 _080C454C: .4byte gPlayerParty _080C4550: .4byte gUnknown_0203869E _080C4554: mov r4, sp ldr r7, _080C458C @ =gUnknown_02038694 ldrb r0, [r7] movs r6, 0x64 muls r0, r6 ldr r5, _080C4590 @ =gPlayerParty adds r0, r5 movs r1, 0x33 bl GetMonData strb r0, [r4] mov r0, sp ldrb r2, [r0] ldr r0, _080C4594 @ =gUnknown_0203869E ldrh r0, [r0] cmp r2, r0 bhi _080C465E cmp r2, 0x3 bhi _080C465E mov r1, sp adds r0, r2, 0x1 strb r0, [r1] ldrb r0, [r7] muls r0, r6 adds r0, r5 movs r1, 0x33 b _080C4610 .align 2, 0 _080C458C: .4byte gUnknown_02038694 _080C4590: .4byte gPlayerParty _080C4594: .4byte gUnknown_0203869E _080C4598: mov r4, sp ldr r7, _080C45D0 @ =gUnknown_02038694 ldrb r0, [r7] movs r6, 0x64 muls r0, r6 ldr r5, _080C45D4 @ =gPlayerParty adds r0, r5 movs r1, 0x34 bl GetMonData strb r0, [r4] mov r0, sp ldrb r2, [r0] ldr r0, _080C45D8 @ =gUnknown_0203869E ldrh r0, [r0] cmp r2, r0 bhi _080C465E cmp r2, 0x3 bhi _080C465E mov r1, sp adds r0, r2, 0x1 strb r0, [r1] ldrb r0, [r7] muls r0, r6 adds r0, r5 movs r1, 0x34 b _080C4610 .align 2, 0 _080C45D0: .4byte gUnknown_02038694 _080C45D4: .4byte gPlayerParty _080C45D8: .4byte gUnknown_0203869E _080C45DC: mov r4, sp ldr r7, _080C4618 @ =gUnknown_02038694 ldrb r0, [r7] movs r6, 0x64 muls r0, r6 ldr r5, _080C461C @ =gPlayerParty adds r0, r5 movs r1, 0x35 bl GetMonData strb r0, [r4] mov r0, sp ldrb r2, [r0] ldr r0, _080C4620 @ =gUnknown_0203869E ldrh r0, [r0] cmp r2, r0 bhi _080C465E cmp r2, 0x3 bhi _080C465E mov r1, sp adds r0, r2, 0x1 strb r0, [r1] ldrb r0, [r7] muls r0, r6 adds r0, r5 movs r1, 0x35 _080C4610: mov r2, sp bl SetMonData b _080C465E .align 2, 0 _080C4618: .4byte gUnknown_02038694 _080C461C: .4byte gPlayerParty _080C4620: .4byte gUnknown_0203869E _080C4624: mov r4, sp ldr r7, _080C4668 @ =gUnknown_02038694 ldrb r0, [r7] movs r6, 0x64 muls r0, r6 ldr r5, _080C466C @ =gPlayerParty adds r0, r5 movs r1, 0x36 bl GetMonData strb r0, [r4] mov r0, sp ldrb r2, [r0] ldr r0, _080C4670 @ =gUnknown_0203869E ldrh r0, [r0] cmp r2, r0 bhi _080C465E cmp r2, 0x3 bhi _080C465E mov r1, sp adds r0, r2, 0x1 strb r0, [r1] ldrb r0, [r7] muls r0, r6 adds r0, r5 movs r1, 0x36 mov r2, sp bl SetMonData _080C465E: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C4668: .4byte gUnknown_02038694 _080C466C: .4byte gPlayerParty _080C4670: .4byte gUnknown_0203869E thumb_func_end sub_80C44C0 thumb_func_start sub_80C4674 sub_80C4674: @ 80C4674 push {r4,lr} adds r4, r0, 0 bl StringCopy ldrb r0, [r4] cmp r0, 0xFC bne _080C4690 ldrb r0, [r4, 0x1] cmp r0, 0x15 bne _080C4690 adds r0, r4, 0 movs r1, 0x1 bl ConvertInternationalString _080C4690: pop {r4} pop {r0} bx r0 thumb_func_end sub_80C4674 thumb_func_start sub_80C4698 sub_80C4698: @ 80C4698 push {r4,r5,lr} adds r5, r0, 0 lsls r1, 24 lsrs r4, r1, 24 lsls r1, r4, 6 ldr r0, _080C46E0 @ =gUnknown_02038572 adds r1, r0 adds r0, r5, 0 bl StringCopy ldr r0, _080C46E4 @ =gUnknown_0203869A ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C46DA ldr r0, _080C46E8 @ =gLinkPlayers lsls r1, r4, 3 subs r1, r4 lsls r1, 2 adds r1, r0 ldrh r0, [r1, 0x1A] cmp r0, 0x1 bne _080C46DA adds r0, r5, 0 bl sub_80C86A0 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl ConvertInternationalString _080C46DA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C46E0: .4byte gUnknown_02038572 _080C46E4: .4byte gUnknown_0203869A _080C46E8: .4byte gLinkPlayers thumb_func_end sub_80C4698 thumb_func_start sub_80C46EC sub_80C46EC: @ 80C46EC push {lr} ldr r0, _080C4710 @ =gUnknown_0203869A ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C4720 ldr r0, _080C4714 @ =gStringVar1 ldr r1, _080C4718 @ =gUnknown_0202E8D0 ldrh r2, [r1] lsls r1, r2, 3 subs r1, r2 lsls r1, 2 ldr r2, _080C471C @ =gLinkPlayers + 0x8 adds r1, r2 bl sub_80C4674 b _080C4730 .align 2, 0 _080C4710: .4byte gUnknown_0203869A _080C4714: .4byte gStringVar1 _080C4718: .4byte gUnknown_0202E8D0 _080C471C: .4byte gLinkPlayers + 0x8 _080C4720: ldr r0, _080C4734 @ =gStringVar1 ldr r1, _080C4738 @ =gUnknown_0202E8D0 ldrh r1, [r1] lsls r1, 6 ldr r2, _080C473C @ =gUnknown_0203857D adds r1, r2 bl sub_80C4674 _080C4730: pop {r0} bx r0 .align 2, 0 _080C4734: .4byte gStringVar1 _080C4738: .4byte gUnknown_0202E8D0 _080C473C: .4byte gUnknown_0203857D thumb_func_end sub_80C46EC thumb_func_start sub_80C4740 sub_80C4740: @ 80C4740 push {lr} ldr r0, _080C4750 @ =gStringVar3 ldr r1, _080C4754 @ =gUnknown_0202E8D0 ldrb r1, [r1] bl sub_80C4698 pop {r0} bx r0 .align 2, 0 _080C4750: .4byte gStringVar3 _080C4754: .4byte gUnknown_0202E8D0 thumb_func_end sub_80C4740 thumb_func_start sub_80C4758 sub_80C4758: @ 80C4758 push {r4-r6,lr} movs r1, 0 movs r2, 0 ldr r5, _080C4794 @ =gUnknown_0202E8CC ldr r4, _080C4798 @ =gUnknown_02038670 ldr r0, _080C479C @ =gUnknown_0202E8D0 ldrh r0, [r0] lsls r0, 1 adds r0, r4 movs r6, 0 ldrsh r3, [r0, r6] _080C476E: lsls r0, r1, 1 adds r0, r4 movs r6, 0 ldrsh r0, [r0, r6] cmp r3, r0 bge _080C4780 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 _080C4780: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x3 bls _080C476E strh r2, [r5] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C4794: .4byte gUnknown_0202E8CC _080C4798: .4byte gUnknown_02038670 _080C479C: .4byte gUnknown_0202E8D0 thumb_func_end sub_80C4758 thumb_func_start sub_80C47A0 sub_80C47A0: @ 80C47A0 ldr r2, _080C47B4 @ =gUnknown_0202E8CC ldr r1, _080C47B8 @ =gUnknown_02038670 ldr r0, _080C47BC @ =gUnknown_0202E8D0 ldrh r0, [r0] lsls r0, 1 adds r0, r1 ldrh r0, [r0] strh r0, [r2] bx lr .align 2, 0 _080C47B4: .4byte gUnknown_0202E8CC _080C47B8: .4byte gUnknown_02038670 _080C47BC: .4byte gUnknown_0202E8D0 thumb_func_end sub_80C47A0 thumb_func_start sub_80C47C0 sub_80C47C0: @ 80C47C0 push {lr} movs r1, 0 ldr r2, _080C47E8 @ =gUnknown_02038690 ldrb r0, [r2] ldr r3, _080C47EC @ =gUnknown_0202E8CE cmp r0, 0 beq _080C47E0 _080C47CE: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x3 bhi _080C47E0 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _080C47CE _080C47E0: strh r1, [r3] pop {r0} bx r0 .align 2, 0 _080C47E8: .4byte gUnknown_02038690 _080C47EC: .4byte gUnknown_0202E8CE thumb_func_end sub_80C47C0 thumb_func_start sub_80C47F0 sub_80C47F0: @ 80C47F0 push {r4,lr} movs r2, 0 ldr r3, _080C4830 @ =gUnknown_02038690 ldrb r0, [r3] ldr r1, _080C4834 @ =gUnknown_0203869A ldr r4, _080C4838 @ =gStringVar3 cmp r0, 0 beq _080C4812 _080C4800: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bhi _080C4812 adds r0, r2, r3 ldrb r0, [r0] cmp r0, 0 bne _080C4800 _080C4812: ldrb r1, [r1] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C4840 lsls r1, r2, 3 subs r1, r2 lsls r1, 2 ldr r0, _080C483C @ =gLinkPlayers + 0x8 adds r1, r0 adds r0, r4, 0 bl sub_80C4674 b _080C484C .align 2, 0 _080C4830: .4byte gUnknown_02038690 _080C4834: .4byte gUnknown_0203869A _080C4838: .4byte gStringVar3 _080C483C: .4byte gLinkPlayers + 0x8 _080C4840: lsls r1, r2, 6 ldr r0, _080C4854 @ =gUnknown_0203857D adds r1, r0 adds r0, r4, 0 bl sub_80C4674 _080C484C: pop {r4} pop {r0} bx r0 .align 2, 0 _080C4854: .4byte gUnknown_0203857D thumb_func_end sub_80C47F0 thumb_func_start sub_80C4858 sub_80C4858: @ 80C4858 push {lr} movs r1, 0 ldr r2, _080C4884 @ =gUnknown_02038690 ldrb r0, [r2] ldr r3, _080C4888 @ =gStringVar1 cmp r0, 0 beq _080C4878 _080C4866: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x3 bhi _080C4878 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _080C4866 _080C4878: adds r0, r3, 0 bl sub_80C4698 pop {r0} bx r0 .align 2, 0 _080C4884: .4byte gUnknown_02038690 _080C4888: .4byte gStringVar1 thumb_func_end sub_80C4858 thumb_func_start sub_80C488C sub_80C488C: @ 80C488C push {lr} ldr r0, _080C4898 @ =sub_80AB47C bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _080C4898: .4byte sub_80AB47C thumb_func_end sub_80C488C thumb_func_start sub_80C489C sub_80C489C: @ 80C489C push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080C48C0 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080C48BA adds r0, r2, 0 bl DestroyTask ldr r0, _080C48C4 @ =sub_80C488C bl SetMainCallback2 _080C48BA: pop {r0} bx r0 .align 2, 0 _080C48C0: .4byte gPaletteFade _080C48C4: .4byte sub_80C488C thumb_func_end sub_80C489C thumb_func_start sub_80C48C8 sub_80C48C8: @ 80C48C8 push {lr} sub sp, 0x4 bl ScriptContext2_Enable ldr r0, _080C48F0 @ =sub_80C489C movs r1, 0xA bl CreateTask movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080C48F0: .4byte sub_80C489C thumb_func_end sub_80C48C8 thumb_func_start sub_80C48F4 sub_80C48F4: @ 80C48F4 ldr r2, _080C4908 @ =gUnknown_0202E8CC ldr r1, _080C490C @ =gUnknown_02038570 ldr r0, _080C4910 @ =gUnknown_0202E8D0 ldrh r0, [r0] lsls r0, 6 adds r0, r1 ldrh r0, [r0] strh r0, [r2] bx lr .align 2, 0 _080C4908: .4byte gUnknown_0202E8CC _080C490C: .4byte gUnknown_02038570 _080C4910: .4byte gUnknown_0202E8D0 thumb_func_end sub_80C48F4 thumb_func_start sub_80C4914 sub_80C4914: @ 80C4914 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080C4938 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080C4932 adds r0, r2, 0 bl DestroyTask ldr r0, _080C493C @ =sub_80C2358 bl SetMainCallback2 _080C4932: pop {r0} bx r0 .align 2, 0 _080C4938: .4byte gPaletteFade _080C493C: .4byte sub_80C2358 thumb_func_end sub_80C4914 thumb_func_start sub_80C4940 sub_80C4940: @ 80C4940 push {lr} sub sp, 0x4 bl ScriptContext2_Enable ldr r0, _080C4968 @ =sub_80C4914 movs r1, 0xA bl CreateTask movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080C4968: .4byte sub_80C4914 thumb_func_end sub_80C4940 thumb_func_start sub_80C496C sub_80C496C: @ 80C496C ldr r0, _080C4978 @ =gUnknown_0202E8CC ldr r1, _080C497C @ =gUnknown_02038695 ldrb r1, [r1] strh r1, [r0] bx lr .align 2, 0 _080C4978: .4byte gUnknown_0202E8CC _080C497C: .4byte gUnknown_02038695 thumb_func_end sub_80C496C thumb_func_start sub_80C4980 sub_80C4980: @ 80C4980 push {r4-r6,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 bl ScriptContext2_Enable ldr r6, _080C49B8 @ =sub_80C8604 adds r0, r6, 0 movs r1, 0 bl CreateTask adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r2, _080C49BC @ =sub_80C49C4 adds r0, r4, 0 adds r1, r6, 0 bl SetTaskFuncWithFollowupFunc ldr r1, _080C49C0 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 strh r5, [r0, 0x1A] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C49B8: .4byte sub_80C8604 _080C49BC: .4byte sub_80C49C4 _080C49C0: .4byte gTasks thumb_func_end sub_80C4980 thumb_func_start sub_80C49C4 sub_80C49C4: @ 80C49C4 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080C49E4 @ =gUnknown_02038694 ldrb r0, [r0] bl sub_80AE098 ldr r1, _080C49E8 @ =sub_80C8734 ldr r2, _080C49EC @ =sub_80C49F0 adds r0, r4, 0 bl SetTaskFuncWithFollowupFunc pop {r4} pop {r0} bx r0 .align 2, 0 _080C49E4: .4byte gUnknown_02038694 _080C49E8: .4byte sub_80C8734 _080C49EC: .4byte sub_80C49F0 thumb_func_end sub_80C49C4 thumb_func_start sub_80C49F0 sub_80C49F0: @ 80C49F0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080C4A04 @ =sub_80C88AC ldr r2, _080C4A08 @ =sub_80C4A0C bl SetTaskFuncWithFollowupFunc pop {r0} bx r0 .align 2, 0 _080C4A04: .4byte sub_80C88AC _080C4A08: .4byte sub_80C4A0C thumb_func_end sub_80C49F0 thumb_func_start sub_80C4A0C sub_80C4A0C: @ 80C4A0C push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080C4A20 @ =sub_80C8E1C ldr r2, _080C4A24 @ =sub_80C4A28 bl SetTaskFuncWithFollowupFunc pop {r0} bx r0 .align 2, 0 _080C4A20: .4byte sub_80C8E1C _080C4A24: .4byte sub_80C4A28 thumb_func_end sub_80C4A0C thumb_func_start sub_80C4A28 sub_80C4A28: @ 80C4A28 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080C4A3C @ =sub_80C8938 ldr r2, _080C4A40 @ =sub_80C4A44 bl SetTaskFuncWithFollowupFunc pop {r0} bx r0 .align 2, 0 _080C4A3C: .4byte sub_80C8938 _080C4A40: .4byte sub_80C4A44 thumb_func_end sub_80C4A28 thumb_func_start sub_80C4A44 sub_80C4A44: @ 80C4A44 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 lsls r0, 24 lsrs r5, r0, 24 movs r3, 0 ldr r0, _080C4AA0 @ =gUnknown_0202E8CC mov r8, r0 add r1, sp, 0x4 mov r12, r1 lsls r1, r5, 2 adds r0, r1, r5 lsls r4, r0, 3 ldr r6, _080C4AA4 @ =gTasks + 0x8 adds r7, r1, 0 _080C4A64: mov r0, sp adds r2, r0, r3 adds r1, r3, 0x1 lsls r0, r1, 1 adds r0, r4 adds r0, r6 ldrh r0, [r0] strb r0, [r2] lsls r1, 24 lsrs r3, r1, 24 cmp r3, 0x3 bls _080C4A64 movs r3, 0 mov r2, sp _080C4A80: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bhi _080C4A96 mov r0, sp adds r1, r0, r3 ldrb r0, [r2] ldrb r1, [r1] cmp r0, r1 beq _080C4A80 _080C4A96: cmp r3, 0x4 bne _080C4AA8 movs r0, 0 b _080C4AAA .align 2, 0 _080C4AA0: .4byte gUnknown_0202E8CC _080C4AA4: .4byte gTasks + 0x8 _080C4AA8: movs r0, 0x1 _080C4AAA: mov r1, r8 strh r0, [r1] movs r3, 0 mov r4, r12 adds r0, r7, r5 lsls r2, r0, 3 ldr r6, _080C4AF8 @ =gTasks + 0x8 _080C4AB8: adds r1, r4, r3 adds r0, r3, 0x5 lsls r0, 1 adds r0, r2 adds r0, r6 ldrh r0, [r0] strb r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bls _080C4AB8 mov r0, r12 bl sub_80C4B34 ldr r1, _080C4AFC @ =gUnknown_0203869B strb r0, [r1] ldr r0, _080C4B00 @ =gUnknown_0203869C ldrb r0, [r0] bl sub_80AE82C ldr r1, _080C4B04 @ =sub_80C8EBC ldr r2, _080C4B08 @ =sub_80C4B0C adds r0, r5, 0 bl SetTaskFuncWithFollowupFunc add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C4AF8: .4byte gTasks + 0x8 _080C4AFC: .4byte gUnknown_0203869B _080C4B00: .4byte gUnknown_0203869C _080C4B04: .4byte sub_80C8EBC _080C4B08: .4byte sub_80C4B0C thumb_func_end sub_80C4A44 thumb_func_start sub_80C4B0C sub_80C4B0C: @ 80C4B0C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 bl sub_80B0F28 ldr r1, _080C4B2C @ =sub_80C8F34 ldr r2, _080C4B30 @ =sub_80C4B5C adds r0, r4, 0 bl SetTaskFuncWithFollowupFunc pop {r4} pop {r0} bx r0 .align 2, 0 _080C4B2C: .4byte sub_80C8F34 _080C4B30: .4byte sub_80C4B5C thumb_func_end sub_80C4B0C thumb_func_start sub_80C4B34 sub_80C4B34: @ 80C4B34 push {r4,lr} adds r3, r0, 0 movs r4, 0 movs r2, 0x1 _080C4B3C: adds r0, r3, r4 adds r1, r3, r2 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bcs _080C4B4C lsls r0, r2, 24 lsrs r4, r0, 24 _080C4B4C: adds r2, 0x1 cmp r2, 0x3 ble _080C4B3C adds r0, r4, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_80C4B34 thumb_func_start sub_80C4B5C sub_80C4B5C: @ 80C4B5C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080C4B84 @ =gUnknown_0202E8CC ldrh r0, [r0] cmp r0, 0x1 bne _080C4B90 bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C4B9E ldr r0, _080C4B88 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080C4B8C @ =sub_80C4BA4 str r0, [r1] b _080C4B9E .align 2, 0 _080C4B84: .4byte gUnknown_0202E8CC _080C4B88: .4byte gTasks _080C4B8C: .4byte sub_80C4BA4 _080C4B90: adds r0, r4, 0 bl DestroyTask bl ScriptContext2_Disable bl EnableBothScriptContexts _080C4B9E: pop {r4} pop {r0} bx r0 thumb_func_end sub_80C4B5C thumb_func_start sub_80C4BA4 sub_80C4BA4: @ 80C4BA4 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_800832C ldr r1, _080C4BC4 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080C4BC8 @ =sub_80C4BCC str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080C4BC4: .4byte gTasks _080C4BC8: .4byte sub_80C4BCC thumb_func_end sub_80C4BA4 thumb_func_start sub_80C4BCC sub_80C4BCC: @ 80C4BCC push {lr} lsls r0, 24 lsrs r1, r0, 24 ldr r0, _080C4BEC @ =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _080C4BE8 adds r0, r1, 0 bl DestroyTask bl ScriptContext2_Disable bl EnableBothScriptContexts _080C4BE8: pop {r0} bx r0 .align 2, 0 _080C4BEC: .4byte gReceivedRemoteLinkPlayers thumb_func_end sub_80C4BCC thumb_func_start sub_80C4BF0 sub_80C4BF0: @ 80C4BF0 push {r4,lr} ldr r2, _080C4C1C @ =gSaveBlock1 ldr r1, _080C4C20 @ =gUnknown_02038570 ldrb r3, [r1, 0x15] movs r4, 0x9B lsls r4, 5 adds r0, r2, r4 strh r3, [r0] adds r0, r1, 0 adds r0, 0x55 ldrb r3, [r0] adds r4, 0x2 adds r0, r2, r4 strh r3, [r0] adds r1, 0x95 ldrb r0, [r1] ldr r1, _080C4C24 @ =0x00001364 adds r2, r1 strh r0, [r2] pop {r4} pop {r0} bx r0 .align 2, 0 _080C4C1C: .4byte gSaveBlock1 _080C4C20: .4byte gUnknown_02038570 _080C4C24: .4byte 0x00001364 thumb_func_end sub_80C4BF0 thumb_func_start sub_80C4C28 sub_80C4C28: @ 80C4C28 push {lr} ldr r0, _080C4C40 @ =gUnknown_0202E8CE ldrb r0, [r0] adds r1, r0, 0 cmp r0, 0x1 beq _080C4C4E cmp r0, 0x1 bgt _080C4C44 cmp r0, 0 beq _080C4C4A b _080C4C56 .align 2, 0 _080C4C40: .4byte gUnknown_0202E8CE _080C4C44: cmp r1, 0x2 beq _080C4C52 b _080C4C56 _080C4C4A: movs r1, 0x3 b _080C4C58 _080C4C4E: movs r1, 0x4 b _080C4C58 _080C4C52: movs r1, 0x5 b _080C4C58 _080C4C56: movs r1, 0x64 _080C4C58: ldr r0, _080C4C60 @ =gUnknown_0202E8CC strh r1, [r0] pop {r0} bx r0 .align 2, 0 _080C4C60: .4byte gUnknown_0202E8CC thumb_func_end sub_80C4C28 thumb_func_start sub_80C4C64 sub_80C4C64: @ 80C4C64 push {lr} bl sub_80C46EC bl sub_80C4740 bl sub_80C48F4 pop {r0} bx r0 thumb_func_end sub_80C4C64 thumb_func_start sub_80C4C78 sub_80C4C78: @ 80C4C78 push {lr} ldr r0, _080C4C8C @ =gUnknown_0203869C ldrh r0, [r0] cmp r0, 0x4 bhi _080C4CB8 lsls r0, 2 ldr r1, _080C4C90 @ =_080C4C94 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C4C8C: .4byte gUnknown_0203869C _080C4C90: .4byte _080C4C94 .align 2, 0 _080C4C94: .4byte _080C4CA8 .4byte _080C4CAC .4byte _080C4CB0 .4byte _080C4CB4 .4byte _080C4CB8 _080C4CA8: movs r0, 0x8 b _080C4CBA _080C4CAC: movs r0, 0x9 b _080C4CBA _080C4CB0: movs r0, 0xA b _080C4CBA _080C4CB4: movs r0, 0xB b _080C4CBA _080C4CB8: movs r0, 0xC _080C4CBA: ldr r1, _080C4CD0 @ =gSaveBlock1 lsls r0, 5 adds r0, r1 ldr r1, _080C4CD4 @ =0x00002e04 adds r0, r1 ldrh r1, [r0] cmp r1, 0 bne _080C4CDC ldr r0, _080C4CD8 @ =gUnknown_0202E8CC strh r1, [r0] b _080C4CE2 .align 2, 0 _080C4CD0: .4byte gSaveBlock1 _080C4CD4: .4byte 0x00002e04 _080C4CD8: .4byte gUnknown_0202E8CC _080C4CDC: ldr r1, _080C4CE8 @ =gUnknown_0202E8CC movs r0, 0x1 strh r0, [r1] _080C4CE2: pop {r0} bx r0 .align 2, 0 _080C4CE8: .4byte gUnknown_0202E8CC thumb_func_end sub_80C4C78 thumb_func_start sub_80C4CEC sub_80C4CEC: @ 80C4CEC push {lr} movs r0, 0xFF bl sub_80B2A7C pop {r0} bx r0 thumb_func_end sub_80C4CEC thumb_func_start sub_80C4CF8 sub_80C4CF8: @ 80C4CF8 push {lr} ldr r0, _080C4D28 @ =gUnknown_02038690 ldr r1, _080C4D2C @ =gUnknown_02038695 ldrb r2, [r1] adds r0, r2, r0 ldrb r0, [r0] cmp r0, 0 bne _080C4D40 ldr r0, _080C4D30 @ =gUnknown_0203869E ldrh r0, [r0] cmp r0, 0x3 bne _080C4D40 ldr r1, _080C4D34 @ =gUnknown_02038678 lsls r0, r2, 1 adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] ldr r0, _080C4D38 @ =0x0000031f cmp r1, r0 ble _080C4D40 ldr r1, _080C4D3C @ =gUnknown_0202E8CC movs r0, 0x1 b _080C4D44 .align 2, 0 _080C4D28: .4byte gUnknown_02038690 _080C4D2C: .4byte gUnknown_02038695 _080C4D30: .4byte gUnknown_0203869E _080C4D34: .4byte gUnknown_02038678 _080C4D38: .4byte 0x0000031f _080C4D3C: .4byte gUnknown_0202E8CC _080C4D40: ldr r1, _080C4D4C @ =gUnknown_0202E8CC movs r0, 0 _080C4D44: strh r0, [r1] pop {r0} bx r0 .align 2, 0 _080C4D4C: .4byte gUnknown_0202E8CC thumb_func_end sub_80C4CF8 thumb_func_start sub_80C4D50 sub_80C4D50: @ 80C4D50 push {lr} movs r3, 0 ldr r0, _080C4D78 @ =gSaveBlock1 ldr r1, _080C4D7C @ =0x00002f04 adds r2, r0, r1 movs r1, 0x4 _080C4D5C: ldrh r0, [r2] cmp r0, 0 beq _080C4D68 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 _080C4D68: adds r2, 0x20 subs r1, 0x1 cmp r1, 0 bge _080C4D5C adds r0, r3, 0 pop {r1} bx r1 .align 2, 0 _080C4D78: .4byte gSaveBlock1 _080C4D7C: .4byte 0x00002f04 thumb_func_end sub_80C4D50 thumb_func_start sub_80C4D80 sub_80C4D80: @ 80C4D80 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 ldr r0, _080C4EA0 @ =gUnknown_02038670 mov r12, r0 ldr r1, _080C4EA4 @ =gUnknown_0202E8D0 mov r8, r1 ldr r2, _080C4EA8 @ =gStringVar1 mov r9, r2 mov r2, r12 mov r1, sp movs r6, 0x3 _080C4D9E: ldrh r0, [r2] strh r0, [r1] adds r2, 0x2 adds r1, 0x2 subs r6, 0x1 cmp r6, 0 bge _080C4D9E movs r6, 0 _080C4DAE: movs r1, 0x3 cmp r1, r6 ble _080C4DD8 _080C4DB4: subs r4, r1, 0x1 lsls r0, r4, 1 mov r5, sp adds r3, r5, r0 lsls r0, r1, 1 adds r2, r5, r0 ldrh r5, [r3] movs r7, 0 ldrsh r1, [r3, r7] movs r7, 0 ldrsh r0, [r2, r7] cmp r1, r0 bge _080C4DD2 strh r5, [r2] strh r0, [r3] _080C4DD2: adds r1, r4, 0 cmp r1, r6 bgt _080C4DB4 _080C4DD8: adds r6, 0x1 cmp r6, 0x2 ble _080C4DAE mov r2, r8 ldrh r0, [r2] lsls r0, 1 add r0, sp ldrh r0, [r0] movs r2, 0 movs r7, 0 movs r6, 0 lsls r0, 16 asrs r4, r0, 16 adds r3, r0, 0 mov r1, sp _080C4DF6: movs r5, 0 ldrsh r0, [r1, r5] cmp r0, r4 bne _080C4E12 lsls r0, r2, 24 movs r2, 0x80 lsls r2, 17 adds r0, r2 lsrs r2, r0, 24 mov r5, r8 ldrh r5, [r5] cmp r6, r5 bne _080C4E12 adds r7, r2, 0 _080C4E12: adds r1, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _080C4DF6 movs r6, 0 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] asrs r1, r3, 16 lsls r2, 24 mov r10, r2 cmp r0, r1 beq _080C4E40 adds r2, r1, 0 mov r1, sp _080C4E30: adds r1, 0x2 adds r6, 0x1 cmp r6, 0x3 bgt _080C4E40 movs r4, 0 ldrsh r0, [r1, r4] cmp r0, r2 bne _080C4E30 _080C4E40: lsls r0, r6, 24 lsrs r4, r0, 24 adds r2, r7, 0 movs r6, 0 asrs r5, r3, 16 mov r8, r5 mov r1, r12 movs r5, 0 ldrsh r0, [r1, r5] cmp r8, r0 bne _080C4E60 cmp r7, 0x1 beq _080C4E78 _080C4E5A: subs r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 _080C4E60: adds r6, 0x1 cmp r6, 0x3 bgt _080C4E78 lsls r0, r6, 1 add r0, r12 asrs r1, r3, 16 movs r5, 0 ldrsh r0, [r0, r5] cmp r1, r0 bne _080C4E60 cmp r2, 0x1 bne _080C4E5A _080C4E78: lsls r1, r6, 24 lsrs r1, 24 mov r0, r9 bl sub_80C4698 ldr r0, _080C4EAC @ =gUnknown_0203869A ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C4EB8 ldr r0, _080C4EB0 @ =gStringVar2 lsls r1, r6, 3 subs r1, r6 lsls r1, 2 ldr r2, _080C4EB4 @ =gLinkPlayers + 0x8 adds r1, r2 bl sub_80C4674 b _080C4EC4 .align 2, 0 _080C4EA0: .4byte gUnknown_02038670 _080C4EA4: .4byte gUnknown_0202E8D0 _080C4EA8: .4byte gStringVar1 _080C4EAC: .4byte gUnknown_0203869A _080C4EB0: .4byte gStringVar2 _080C4EB4: .4byte gLinkPlayers + 0x8 _080C4EB8: ldr r0, _080C4ED8 @ =gStringVar2 lsls r1, r6, 6 ldr r2, _080C4EDC @ =gUnknown_0203857D adds r1, r2 bl sub_80C4674 _080C4EC4: mov r1, r10 asrs r0, r1, 24 cmp r0, 0x1 beq _080C4ED0 cmp r7, r0 bne _080C4EE4 _080C4ED0: ldr r0, _080C4EE0 @ =gUnknown_0202E8D0 strh r4, [r0] b _080C4EEA .align 2, 0 _080C4ED8: .4byte gStringVar2 _080C4EDC: .4byte gUnknown_0203857D _080C4EE0: .4byte gUnknown_0202E8D0 _080C4EE4: ldr r1, _080C4EFC @ =gUnknown_0202E8D0 adds r0, r4, 0x4 strh r0, [r1] _080C4EEA: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C4EFC: .4byte gUnknown_0202E8D0 thumb_func_end sub_80C4D80 thumb_func_start sub_80C4F00 sub_80C4F00: @ 80C4F00 push {lr} ldr r0, _080C4F0C @ =c2_exit_to_overworld_1_continue_scripts_restart_music bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _080C4F0C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music thumb_func_end sub_80C4F00 thumb_func_start sub_80C4F10 sub_80C4F10: @ 80C4F10 push {r4-r6,lr} ldr r6, _080C4F54 @ =gUnknown_0203856C ldrb r0, [r6] cmp r0, 0 beq _080C4F40 bl sub_80AAF30 ldr r4, _080C4F58 @ =0x02000000 ldr r0, _080C4F5C @ =0x00015ddf adds r1, r4, r0 movs r5, 0 movs r0, 0x1 strb r0, [r1] movs r0, 0xFE movs r1, 0 bl sub_80B2C4C ldr r1, _080C4F60 @ =0x00015dde adds r4, r1 strb r0, [r4] movs r0, 0x3 bl sub_80B2A7C strb r5, [r6] _080C4F40: ldr r0, _080C4F64 @ =sub_8106668 bl SetMainCallback2 ldr r1, _080C4F68 @ =gMain ldr r0, _080C4F6C @ =sub_80C4F00 str r0, [r1, 0x8] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C4F54: .4byte gUnknown_0203856C _080C4F58: .4byte 0x02000000 _080C4F5C: .4byte 0x00015ddf _080C4F60: .4byte 0x00015dde _080C4F64: .4byte sub_8106668 _080C4F68: .4byte gMain _080C4F6C: .4byte sub_80C4F00 thumb_func_end sub_80C4F10 thumb_func_start sub_80C4F70 sub_80C4F70: @ 80C4F70 push {r4,lr} ldr r0, _080C4FA8 @ =0x00004010 ldr r4, _080C4FAC @ =gUnknown_02038570 ldrb r1, [r4, 0x15] bl VarSet ldr r0, _080C4FB0 @ =0x00004011 adds r1, r4, 0 adds r1, 0x55 ldrb r1, [r1] bl VarSet ldr r0, _080C4FB4 @ =0x00004012 adds r1, r4, 0 adds r1, 0x95 ldrb r1, [r1] bl VarSet ldr r0, _080C4FB8 @ =0x00004013 adds r1, r4, 0 adds r1, 0xD5 ldrb r1, [r1] bl VarSet pop {r4} pop {r0} bx r0 .align 2, 0 _080C4FA8: .4byte 0x00004010 _080C4FAC: .4byte gUnknown_02038570 _080C4FB0: .4byte 0x00004011 _080C4FB4: .4byte 0x00004012 _080C4FB8: .4byte 0x00004013 thumb_func_end sub_80C4F70 thumb_func_start sub_80C4FBC sub_80C4FBC: @ 80C4FBC push {r4-r6,lr} sub sp, 0x4 ldr r6, _080C501C @ =gUnknown_02038694 ldrb r0, [r6] movs r5, 0x64 muls r0, r5 ldr r4, _080C5020 @ =gPlayerParty adds r0, r4 movs r1, 0x46 bl GetMonData lsls r0, 24 lsrs r0, 24 mov r1, sp strb r0, [r1] cmp r0, 0 bne _080C5038 ldr r0, _080C5024 @ =gUnknown_02038690 ldr r1, _080C5028 @ =gUnknown_02038695 ldrb r2, [r1] adds r0, r2, r0 ldrb r0, [r0] cmp r0, 0 bne _080C5038 ldr r0, _080C502C @ =gUnknown_0203869E ldrh r0, [r0] cmp r0, 0x3 bne _080C5038 ldr r1, _080C5030 @ =gUnknown_02038678 lsls r0, r2, 1 adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] ldr r0, _080C5034 @ =0x0000031f cmp r1, r0 ble _080C5038 movs r1, 0x1 mov r0, sp strb r1, [r0] ldrb r0, [r6] muls r0, r5 adds r0, r4 movs r1, 0x46 mov r2, sp bl SetMonData movs r0, 0x1 b _080C503A .align 2, 0 _080C501C: .4byte gUnknown_02038694 _080C5020: .4byte gPlayerParty _080C5024: .4byte gUnknown_02038690 _080C5028: .4byte gUnknown_02038695 _080C502C: .4byte gUnknown_0203869E _080C5030: .4byte gUnknown_02038678 _080C5034: .4byte 0x0000031f _080C5038: movs r0, 0 _080C503A: add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80C4FBC thumb_func_start sub_80C5044 sub_80C5044: @ 80C5044 ldr r0, _080C504C @ =gUnknown_0203856C ldrb r0, [r0] bx lr .align 2, 0 _080C504C: .4byte gUnknown_0203856C thumb_func_end sub_80C5044 thumb_func_start sub_80C5050 sub_80C5050: @ 80C5050 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC ldr r4, _080C513C @ =sub_80C5190 adds r0, r4, 0 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _080C512A movs r0, 0xA mov r10, r0 movs r7, 0x3 movs r1, 0x3 movs r2, 0x13 movs r3, 0xD bl MenuDrawTextWindow ldr r2, _080C5140 @ =gUnknown_02038570 ldr r0, _080C5144 @ =gUnknown_0202E8D0 ldrh r1, [r0] lsls r1, 6 adds r0, r1, r2 ldrh r6, [r0] adds r0, r2, 0 adds r0, 0x38 adds r0, r1, r0 ldr r0, [r0] mov r8, r0 adds r2, 0x3C adds r1, r2 ldr r1, [r1] mov r9, r1 adds r0, r4, 0 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r1, _080C5148 @ =gTasks lsls r5, r0, 2 adds r5, r0 lsls r5, 3 adds r5, r1 movs r0, 0 strh r0, [r5, 0x8] strh r6, [r5, 0xA] lsls r0, r6, 3 ldr r1, _080C514C @ =gMonFrontPicTable adds r0, r1 ldr r1, _080C5150 @ =gMonFrontPicCoords lsls r2, r6, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] ldr r4, _080C5154 @ =gUnknown_081FAF4C ldr r3, [r4] ldr r4, [r4, 0x4] str r4, [sp] str r6, [sp, 0x4] mov r4, r8 str r4, [sp, 0x8] bl sub_800D334 adds r0, r6, 0 mov r1, r9 mov r2, r8 bl sub_80409C8 adds r4, r0, 0 bl LoadCompressedObjectPalette adds r0, r6, 0 movs r1, 0x1 bl GetMonSpriteTemplate_803C56C ldr r0, _080C5158 @ =gUnknown_02024E8C ldrh r1, [r4, 0x4] strh r1, [r0, 0x2] movs r1, 0x78 movs r2, 0x40 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0xC] mov r1, r10 strh r1, [r5, 0xE] strh r7, [r5, 0x10] ldr r3, _080C515C @ =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r0, r3, 0 adds r0, 0x1C adds r0, r1, r0 ldr r2, _080C5160 @ =SpriteCallbackDummy str r2, [r0] adds r1, r3 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 strb r0, [r1, 0x5] _080C512A: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C513C: .4byte sub_80C5190 _080C5140: .4byte gUnknown_02038570 _080C5144: .4byte gUnknown_0202E8D0 _080C5148: .4byte gTasks _080C514C: .4byte gMonFrontPicTable _080C5150: .4byte gMonFrontPicCoords _080C5154: .4byte gUnknown_081FAF4C _080C5158: .4byte gUnknown_02024E8C _080C515C: .4byte gSprites _080C5160: .4byte SpriteCallbackDummy thumb_func_end sub_80C5050 thumb_func_start sub_80C5164 sub_80C5164: @ 80C5164 push {lr} ldr r0, _080C5188 @ =sub_80C5190 bl FindTaskIdByFunc lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xFF beq _080C5184 ldr r0, _080C518C @ =gTasks lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _080C5184: pop {r0} bx r0 .align 2, 0 _080C5188: .4byte sub_80C5190 _080C518C: .4byte gTasks thumb_func_end sub_80C5164 thumb_func_start sub_80C5190 sub_80C5190: @ 80C5190 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080C51B4 @ =gTasks adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080C5222 cmp r0, 0x1 bgt _080C51B8 cmp r0, 0 beq _080C51F8 b _080C5222 .align 2, 0 _080C51B4: .4byte gTasks _080C51B8: cmp r0, 0x2 beq _080C51C2 cmp r0, 0x3 beq _080C5204 b _080C5222 _080C51C2: movs r0, 0xC ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080C5200 @ =gSprites adds r5, r0, r1 ldrb r0, [r5, 0x5] lsrs r0, 4 bl GetSpritePaletteTagByPaletteNum lsls r0, 16 lsrs r0, 16 bl FreeSpritePaletteByTag ldrb r0, [r5, 0x1] lsls r0, 30 cmp r0, 0 beq _080C51F2 ldrb r0, [r5, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix _080C51F2: adds r0, r5, 0 bl DestroySprite _080C51F8: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080C5222 .align 2, 0 _080C5200: .4byte gSprites _080C5204: ldrb r2, [r4, 0xE] adds r0, r2, 0 ldrb r3, [r4, 0x10] adds r1, r3, 0 adds r2, 0x9 lsls r2, 24 lsrs r2, 24 adds r3, 0xA lsls r3, 24 lsrs r3, 24 bl MenuZeroFillWindowRect adds r0, r5, 0 bl DestroyTask _080C5222: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C5190 thumb_func_start sub_80C5228 sub_80C5228: @ 80C5228 push {r4,lr} ldr r0, _080C5244 @ =gUnknown_0203869A ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C524C ldr r4, _080C5248 @ =gScriptResult bl GetMultiplayerId lsls r0, 24 lsrs r0, 24 strh r0, [r4] b _080C5252 .align 2, 0 _080C5244: .4byte gUnknown_0203869A _080C5248: .4byte gScriptResult _080C524C: ldr r1, _080C5258 @ =gScriptResult movs r0, 0x4 strh r0, [r1] _080C5252: pop {r4} pop {r0} bx r0 .align 2, 0 _080C5258: .4byte gScriptResult thumb_func_end sub_80C5228 thumb_func_start sub_80C525C sub_80C525C: @ 80C525C push {r4,lr} ldr r0, _080C5280 @ =gUnknown_0203869A ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C5294 ldr r2, _080C5284 @ =gUnknown_03005D28 ldr r1, [r2] ldr r0, _080C5288 @ =0x41c64e6d muls r0, r1 ldr r1, _080C528C @ =0x00006073 adds r0, r1 str r0, [r2] lsrs r0, 16 ldr r4, _080C5290 @ =gScriptResult b _080C529E .align 2, 0 _080C5280: .4byte gUnknown_0203869A _080C5284: .4byte gUnknown_03005D28 _080C5288: .4byte 0x41c64e6d _080C528C: .4byte 0x00006073 _080C5290: .4byte gScriptResult _080C5294: ldr r4, _080C52AC @ =gScriptResult bl Random lsls r0, 16 lsrs r0, 16 _080C529E: ldrh r1, [r4] bl __umodsi3 strh r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080C52AC: .4byte gScriptResult thumb_func_end sub_80C525C thumb_func_start sp000_heal_pokemon sp000_heal_pokemon: @ 80C52B0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 movs r0, 0 mov r8, r0 ldr r0, _080C536C @ =gPlayerPartyCount ldrb r0, [r0] cmp r8, r0 bcs _080C535C ldr r1, _080C5370 @ =gPlayerParty mov r10, r1 mov r6, sp _080C52CE: movs r0, 0x64 mov r4, r8 muls r4, r0 add r4, r10 adds r0, r4, 0 movs r1, 0x3A bl GetMonData lsls r1, r0, 16 strb r0, [r6] lsrs r1, 24 strb r1, [r6, 0x1] adds r0, r4, 0 movs r1, 0x39 mov r2, sp bl SetMonData adds r0, r4, 0 movs r1, 0x15 bl GetMonData lsls r0, 24 lsrs r7, r0, 24 movs r5, 0 movs r1, 0x1 add r1, r8 mov r9, r1 _080C5304: adds r1, r5, 0 adds r1, 0xD adds r0, r4, 0 bl GetMonData lsls r0, 16 lsrs r0, 16 adds r1, r7, 0 adds r2, r5, 0 bl CalculatePPWithBonus strb r0, [r6] adds r1, r5, 0 adds r1, 0x11 adds r0, r4, 0 mov r2, sp bl SetMonData adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _080C5304 movs r0, 0 strb r0, [r6] strb r0, [r6, 0x1] strb r0, [r6, 0x2] strb r0, [r6, 0x3] movs r1, 0x64 mov r0, r8 muls r0, r1 add r0, r10 movs r1, 0x37 mov r2, sp bl SetMonData mov r1, r9 lsls r0, r1, 24 lsrs r0, 24 mov r8, r0 ldr r0, _080C536C @ =gPlayerPartyCount ldrb r0, [r0] cmp r8, r0 bcc _080C52CE _080C535C: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C536C: .4byte gPlayerPartyCount _080C5370: .4byte gPlayerParty thumb_func_end sp000_heal_pokemon thumb_func_start sub_80C5374 sub_80C5374: @ 80C5374 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x78 adds r5, r0, 0 adds r3, r1, 0 adds r4, r2, 0 lsls r5, 16 lsrs r5, 16 lsls r3, 24 lsrs r3, 24 lsls r4, 16 lsrs r0, r4, 16 mov r8, r0 add r6, sp, 0x14 movs r0, 0 str r0, [sp] str r0, [sp, 0x4] str r0, [sp, 0x8] str r0, [sp, 0xC] adds r0, r6, 0 adds r1, r5, 0 adds r2, r3, 0 movs r3, 0x20 bl CreateMon add r0, sp, 0x10 mov r1, r8 strb r1, [r0] lsrs r4, 24 strb r4, [r0, 0x1] adds r0, r6, 0 movs r1, 0xC add r2, sp, 0x10 bl SetMonData adds r0, r6, 0 bl GiveMonToPlayer lsls r0, 24 lsrs r4, r0, 24 adds r0, r5, 0 bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r5, r0, 16 cmp r4, 0x1 bgt _080C53E8 cmp r4, 0 blt _080C53E8 adds r0, r5, 0 movs r1, 0x2 bl sub_8090D90 adds r0, r5, 0 movs r1, 0x3 bl sub_8090D90 _080C53E8: adds r0, r4, 0 add sp, 0x78 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80C5374 thumb_func_start sub_80C53F8 sub_80C53F8: @ 80C53F8 push {lr} sub sp, 0x68 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 mov r0, sp movs r2, 0x1 bl sub_8042044 add r2, sp, 0x64 movs r0, 0x1 strb r0, [r2] mov r0, sp movs r1, 0x2D bl SetMonData mov r0, sp bl GiveMonToPlayer lsls r0, 24 lsrs r0, 24 add sp, 0x68 pop {r1} bx r1 thumb_func_end sub_80C53F8 thumb_func_start sub_80C5428 sub_80C5428: @ 80C5428 push {lr} bl sub_803DAA0 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x1 beq _080C5444 cmp r1, 0x1 bgt _080C5440 cmp r1, 0 beq _080C5444 b _080C5448 _080C5440: cmp r1, 0x2 bne _080C5448 _080C5444: ldr r0, _080C544C @ =gScriptResult strh r1, [r0] _080C5448: pop {r0} bx r0 .align 2, 0 _080C544C: .4byte gScriptResult thumb_func_end sub_80C5428 thumb_func_start sub_80C5450 sub_80C5450: @ 80C5450 push {r4-r7,lr} lsls r0, 16 lsrs r6, r0, 16 movs r5, 0 movs r7, 0xCE lsls r7, 1 _080C545C: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _080C548C @ =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x41 bl GetMonData lsls r0, 16 lsrs r0, 16 cmp r0, 0 beq _080C5490 cmp r0, r7 beq _080C5490 adds r0, r4, 0 movs r1, 0xC bl GetMonData cmp r0, r6 bne _080C5490 movs r0, 0x1 b _080C5498 .align 2, 0 _080C548C: .4byte gPlayerParty _080C5490: adds r5, 0x1 cmp r5, 0x5 ble _080C545C movs r0, 0 _080C5498: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80C5450 thumb_func_start sub_80C54A0 sub_80C54A0: @ 80C54A0 push {r4,lr} movs r0, 0xAF bl sub_80C5450 lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 cmp r4, 0x1 bne _080C54C2 movs r0, 0xAF bl ItemIdToBerryType lsls r0, 24 lsrs r0, 24 ldr r1, _080C54CC @ =gStringVar1 bl GetBerryNameByBerryType _080C54C2: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080C54CC: .4byte gStringVar1 thumb_func_end sub_80C54A0 thumb_func_start sub_80C54D0 sub_80C54D0: @ 80C54D0 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 adds r4, r0, 0 adds r5, r1, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 24 lsrs r5, 24 lsls r7, r2, 16 lsrs r6, r7, 16 bl ZeroEnemyPartyMons ldr r0, _080C552C @ =gEnemyParty mov r8, r0 movs r0, 0 str r0, [sp] str r0, [sp, 0x4] str r0, [sp, 0x8] str r0, [sp, 0xC] mov r0, r8 adds r1, r4, 0 adds r2, r5, 0 movs r3, 0x20 bl CreateMon cmp r6, 0 beq _080C551E add r0, sp, 0x10 strb r6, [r0] adds r1, r0, 0 lsrs r0, r7, 24 strb r0, [r1, 0x1] mov r0, r8 movs r1, 0xC add r2, sp, 0x10 bl SetMonData _080C551E: add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C552C: .4byte gEnemyParty thumb_func_end sub_80C54D0 thumb_func_start sub_80C5530 sub_80C5530: @ 80C5530 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r1, 16 lsrs r4, r1, 16 lsls r2, 24 lsrs r2, 24 cmp r3, 0x6 bls _080C554C ldr r0, _080C5560 @ =gPlayerPartyCount ldrb r0, [r0] subs r0, 0x1 lsls r0, 24 lsrs r3, r0, 24 _080C554C: movs r0, 0x64 muls r0, r3 ldr r1, _080C5564 @ =gPlayerParty adds r0, r1 adds r1, r4, 0 bl SetMonMoveSlot pop {r4} pop {r0} bx r0 .align 2, 0 _080C5560: .4byte gPlayerPartyCount _080C5564: .4byte gPlayerParty thumb_func_end sub_80C5530 thumb_func_start sub_80C5568 sub_80C5568: @ 80C5568 push {lr} ldr r1, _080C5578 @ =gMain ldr r0, _080C557C @ =sub_80C5580 str r0, [r1, 0x8] bl sub_8121E10 pop {r0} bx r0 .align 2, 0 _080C5578: .4byte gMain _080C557C: .4byte sub_80C5580 thumb_func_end sub_80C5568 thumb_func_start sub_80C5580 sub_80C5580: @ 80C5580 push {lr} ldr r0, _080C5590 @ =gUnknown_02039270 ldrb r1, [r0] cmp r1, 0 bne _080C5598 ldr r0, _080C5594 @ =gScriptResult strh r1, [r0] b _080C559E .align 2, 0 _080C5590: .4byte gUnknown_02039270 _080C5594: .4byte gScriptResult _080C5598: ldr r1, _080C55A8 @ =gScriptResult movs r0, 0x1 strh r0, [r1] _080C559E: ldr r0, _080C55AC @ =c2_exit_to_overworld_1_continue_scripts_restart_music bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _080C55A8: .4byte gScriptResult _080C55AC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music thumb_func_end sub_80C5580 thumb_func_start sub_80C55B0 sub_80C55B0: @ 80C55B0 push {lr} ldr r1, _080C55C0 @ =gMain ldr r0, _080C55C4 @ =sub_80C55C8 str r0, [r1, 0x8] bl sub_8121E34 pop {r0} bx r0 .align 2, 0 _080C55C0: .4byte gMain _080C55C4: .4byte sub_80C55C8 thumb_func_end sub_80C55B0 thumb_func_start sub_80C55C8 sub_80C55C8: @ 80C55C8 push {r4,lr} ldr r0, _080C55DC @ =gUnknown_02039270 ldrb r4, [r0] cmp r4, 0 bne _080C55E4 bl copy_player_party_from_sav1 ldr r0, _080C55E0 @ =gScriptResult strh r4, [r0] b _080C55EE .align 2, 0 _080C55DC: .4byte gUnknown_02039270 _080C55E0: .4byte gScriptResult _080C55E4: bl sub_80C5604 ldr r1, _080C55FC @ =gScriptResult movs r0, 0x1 strh r0, [r1] _080C55EE: ldr r0, _080C5600 @ =c2_exit_to_overworld_1_continue_scripts_restart_music bl SetMainCallback2 pop {r4} pop {r0} bx r0 .align 2, 0 _080C55FC: .4byte gScriptResult _080C5600: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music thumb_func_end sub_80C55C8 thumb_func_start sub_80C5604 sub_80C5604: @ 80C5604 push {r4-r7,lr} sub sp, 0x134 add r0, sp, 0x12C movs r1, 0 str r1, [r0] ldr r2, _080C5674 @ =0x0500004b mov r1, sp bl CpuSet movs r5, 0 movs r7, 0x64 ldr r6, _080C5678 @ =gPlayerParty mov r4, sp _080C561E: ldr r0, _080C567C @ =gUnknown_02039270 adds r1, r5, r0 ldrb r0, [r1] cmp r0, 0 beq _080C5638 subs r0, 0x1 adds r1, r0, 0 muls r1, r7 adds r1, r6 adds r0, r4, 0 movs r2, 0x64 bl memcpy _080C5638: adds r4, 0x64 adds r5, 0x1 cmp r5, 0x2 ble _080C561E add r0, sp, 0x130 movs r1, 0 str r1, [r0] ldr r4, _080C5678 @ =gPlayerParty ldr r2, _080C5680 @ =0x05000096 adds r1, r4, 0 bl CpuSet mov r5, sp add r6, sp, 0xC8 _080C5654: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x64 bl memcpy adds r5, 0x64 adds r4, 0x64 cmp r5, r6 ble _080C5654 bl CalculatePlayerPartyCount add sp, 0x134 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C5674: .4byte 0x0500004b _080C5678: .4byte gPlayerParty _080C567C: .4byte gUnknown_02039270 _080C5680: .4byte 0x05000096 thumb_func_end sub_80C5604 thumb_func_start sub_80C5684 sub_80C5684: @ 80C5684 push {lr} movs r1, 0x41 bl GetMonData lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _080C569C movs r0, 0xCE lsls r0, 1 cmp r1, r0 bne _080C56A0 _080C569C: movs r0, 0 b _080C56A2 _080C56A0: movs r0, 0x1 _080C56A2: pop {r1} bx r1 thumb_func_end sub_80C5684 thumb_func_start sub_80C56A8 sub_80C56A8: @ 80C56A8 push {r4,r5,lr} ldr r4, _080C56C8 @ =gPlayerParty movs r5, 0 _080C56AE: adds r0, r4, 0 bl sub_80C5684 cmp r0, 0 beq _080C56CC adds r0, r4, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _080C56CC movs r0, 0 b _080C56D6 .align 2, 0 _080C56C8: .4byte gPlayerParty _080C56CC: adds r5, 0x1 adds r4, 0x64 cmp r5, 0x5 ble _080C56AE movs r0, 0x1 _080C56D6: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80C56A8 thumb_func_start sub_80C56DC sub_80C56DC: @ 80C56DC push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 movs r1, 0x64 adds r4, r0, 0 muls r4, r1 ldr r0, _080C5720 @ =gPlayerParty adds r4, r0 movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r1, 0x7 bl AdjustFriendship adds r0, r4, 0 movs r1, 0x37 mov r2, sp bl SetMonData ldr r5, _080C5724 @ =gStringVar1 adds r0, r4, 0 movs r1, 0x2 adds r2, r5, 0 bl GetMonData adds r0, r5, 0 bl StringGetEnd10 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C5720: .4byte gPlayerParty _080C5724: .4byte gStringVar1 thumb_func_end sub_80C56DC thumb_func_start sub_80C5728 sub_80C5728: @ 80C5728 push {r4,lr} lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r1, r0 ldr r0, _080C5764 @ =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 bl sub_80C5684 cmp r0, 0 beq _080C5768 adds r0, r4, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 bne _080C5768 adds r0, r4, 0 movs r1, 0x37 bl GetMonData bl pokemon_ailments_get_primary lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C5768 movs r0, 0x1 b _080C576A .align 2, 0 _080C5764: .4byte gPlayerParty _080C5768: movs r0, 0 _080C576A: pop {r4} pop {r1} bx r1 thumb_func_end sub_80C5728 thumb_func_start sub_80C5770 sub_80C5770: @ 80C5770 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080C5794 @ =gTasks + 0x8 adds r4, r0, r1 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080C57CA cmp r0, 0x1 bgt _080C5798 cmp r0, 0 beq _080C579E b _080C581A .align 2, 0 _080C5794: .4byte gTasks + 0x8 _080C5798: cmp r0, 0x2 beq _080C57DC b _080C581A _080C579E: ldrh r1, [r4, 0x2] movs r2, 0x2 ldrsh r0, [r4, r2] cmp r0, 0x5 bgt _080C57C4 _080C57A8: lsls r0, r1, 24 lsrs r0, 24 bl sub_80C5728 cmp r0, 0 bne _080C57F4 ldrh r0, [r4, 0x2] adds r0, 0x1 strh r0, [r4, 0x2] adds r1, r0, 0 lsls r0, 16 asrs r0, 16 cmp r0, 0x5 ble _080C57A8 _080C57C4: movs r0, 0x2 strh r0, [r4] b _080C581A _080C57CA: bl IsFieldMessageBoxHidden lsls r0, 24 cmp r0, 0 beq _080C581A ldrh r0, [r4] subs r0, 0x1 strh r0, [r4] b _080C581A _080C57DC: bl sub_80C56A8 adds r1, r0, 0 cmp r1, 0 beq _080C580C ldr r1, _080C57F0 @ =gScriptResult movs r0, 0x1 strh r0, [r1] b _080C5810 .align 2, 0 _080C57F0: .4byte gScriptResult _080C57F4: ldrb r0, [r4, 0x2] bl sub_80C56DC ldr r0, _080C5808 @ =UnknownString_81A1132 bl ShowFieldMessage ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _080C581A .align 2, 0 _080C5808: .4byte UnknownString_81A1132 _080C580C: ldr r0, _080C5820 @ =gScriptResult strh r1, [r0] _080C5810: bl EnableBothScriptContexts adds r0, r5, 0 bl DestroyTask _080C581A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C5820: .4byte gScriptResult thumb_func_end sub_80C5770 thumb_func_start sub_80C5824 sub_80C5824: @ 80C5824 push {lr} ldr r0, _080C5838 @ =sub_80C5770 movs r1, 0x50 bl CreateTask bl ScriptContext1_Stop pop {r0} bx r0 .align 2, 0 _080C5838: .4byte sub_80C5770 thumb_func_end sub_80C5824 thumb_func_start overworld_poison overworld_poison: @ 80C583C push {r4-r7,lr} sub sp, 0x4 ldr r4, _080C58A8 @ =gPlayerParty movs r7, 0 movs r6, 0 movs r5, 0x5 _080C5848: adds r0, r4, 0 movs r1, 0x5 bl GetMonData cmp r0, 0 beq _080C588C adds r0, r4, 0 movs r1, 0x37 bl GetMonData bl pokemon_ailments_get_primary lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C588C adds r0, r4, 0 movs r1, 0x39 bl GetMonData str r0, [sp] cmp r0, 0 beq _080C587E subs r0, 0x1 str r0, [sp] cmp r0, 0 bne _080C5880 _080C587E: adds r6, 0x1 _080C5880: adds r0, r4, 0 movs r1, 0x39 mov r2, sp bl SetMonData adds r7, 0x1 _080C588C: adds r4, 0x64 subs r5, 0x1 cmp r5, 0 bge _080C5848 cmp r6, 0 bne _080C589C cmp r7, 0 beq _080C58A0 _080C589C: bl overworld_posion_effect _080C58A0: cmp r6, 0 beq _080C58AC movs r0, 0x2 b _080C58B6 .align 2, 0 _080C58A8: .4byte gPlayerParty _080C58AC: cmp r7, 0 bne _080C58B4 movs r0, 0 b _080C58B6 _080C58B4: movs r0, 0x1 _080C58B6: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end overworld_poison thumb_func_start sub_80C58C0 sub_80C58C0: @ 80C58C0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r5, r0, 0 movs r1, 0 bl GetMonData lsls r0, 16 str r0, [sp, 0x4] lsrs r0, 16 str r0, [sp] adds r0, r5, 0 movs r1, 0x27 bl GetMonData adds r7, r0, 0 movs r6, 0xF ands r7, r6 adds r0, r5, 0 movs r1, 0x28 bl GetMonData mov r8, r0 mov r1, r8 ands r1, r6 mov r8, r1 adds r0, r5, 0 movs r1, 0x29 bl GetMonData mov r9, r0 mov r3, r9 ands r3, r6 mov r9, r3 adds r0, r5, 0 movs r1, 0x2A bl GetMonData mov r10, r0 ands r0, r6 mov r10, r0 adds r0, r5, 0 movs r1, 0x2B bl GetMonData adds r4, r0, 0 ands r4, r6 adds r0, r5, 0 movs r1, 0x2C bl GetMonData adds r2, r0, 0 ands r2, r6 mov r1, r8 mov r3, r9 eors r1, r3 mov r8, r1 mov r0, r8 muls r0, r7 movs r1, 0xFF ldr r3, [sp] ands r3, r1 eors r0, r3 eors r4, r2 mov r1, r10 muls r1, r4 ldr r3, [sp, 0x4] lsrs r2, r3, 24 eors r1, r2 lsls r0, 8 adds r0, r1 add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80C58C0 thumb_func_start sub_80C5964 sub_80C5964: @ 80C5964 push {lr} lsls r0, 16 lsrs r2, r0, 16 movs r1, 0x1 ldr r3, _080C5980 @ =gUnknown_083D180C _080C596E: lsls r0, r1, 3 adds r0, r3 ldrh r0, [r0, 0x4] cmp r2, r0 bcs _080C5984 subs r0, r1, 0x1 lsls r0, 24 lsrs r0, 24 b _080C5990 .align 2, 0 _080C5980: .4byte gUnknown_083D180C _080C5984: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xE bls _080C596E adds r0, r1, 0 _080C5990: pop {r1} bx r1 thumb_func_end sub_80C5964 thumb_func_start sub_80C5994 sub_80C5994: @ 80C5994 push {r4-r7,lr} sub sp, 0x8 adds r6, r1, 0 lsls r0, 16 lsrs r0, 16 lsls r6, 16 lsrs r6, 16 bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0 bl sub_8090D54 lsls r0, 16 lsrs r7, r0, 16 adds r0, r6, 0 bl sub_80C5964 lsls r0, 24 ldr r1, _080C5A04 @ =gUnknown_083D180C lsrs r0, 21 adds r0, r1 ldrh r1, [r0] str r1, [sp] movs r2, 0 str r2, [sp, 0x4] ldrb r2, [r0, 0x2] movs r3, 0 ldrh r4, [r0, 0x4] movs r5, 0 adds r0, r6, 0 movs r1, 0 subs r0, r4 sbcs r1, r5 bl __udivdi3 ldr r2, [sp] ldr r3, [sp, 0x4] adds r2, r0 adcs r3, r1 str r2, [sp] str r3, [sp, 0x4] adds r0, r7, 0 movs r1, 0 bl __muldi3 movs r2, 0xA movs r3, 0 bl __udivdi3 add sp, 0x8 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080C5A04: .4byte gUnknown_083D180C thumb_func_end sub_80C5994 thumb_func_start sub_80C5A08 sub_80C5A08: @ 80C5A08 push {r4-r6,lr} sub sp, 0x4 adds r6, r0, 0 adds r5, r1, 0 ldr r1, _080C5A78 @ =gUnknown_083D188C mov r0, sp movs r2, 0x2 bl memcpy lsls r4, r5, 2 adds r4, r5 lsls r4, 1 adds r0, r4, 0 bl __floatsidf cmp r4, 0 bge _080C5A32 ldr r2, _080C5A7C @ =0x41f00000 ldr r3, _080C5A80 @ =0x00000000 bl __adddf3 _080C5A32: ldr r2, _080C5A84 @ =0x40396666 ldr r3, _080C5A88 @ =0x66666666 bl __divdf3 bl __fixunsdfsi adds r5, r0, 0 movs r1, 0xA bl __udivsi3 adds r1, r0, 0 adds r0, r6, 0 movs r2, 0 movs r3, 0x8 bl ConvertIntToDecimalStringN adds r6, r0, 0 mov r1, sp bl StringAppend adds r6, r0, 0 adds r0, r5, 0 movs r1, 0xA bl __umodsi3 adds r1, r0, 0 adds r0, r6, 0 movs r2, 0 movs r3, 0x1 bl ConvertIntToDecimalStringN add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C5A78: .4byte gUnknown_083D188C _080C5A7C: .4byte 0x41f00000 _080C5A80: .4byte 0x00000000 _080C5A84: .4byte 0x40396666 _080C5A88: .4byte 0x66666666 thumb_func_end sub_80C5A08 thumb_func_start sub_80C5A8C sub_80C5A8C: @ 80C5A8C push {r4-r7,lr} sub sp, 0x4 adds r7, r1, 0 lsls r0, 16 lsrs r6, r0, 16 ldr r1, _080C5AA4 @ =gScriptResult ldrh r0, [r1] cmp r0, 0xFF bne _080C5AA8 movs r0, 0 b _080C5B12 .align 2, 0 _080C5AA4: .4byte gScriptResult _080C5AA8: ldrh r1, [r1] movs r0, 0x64 muls r1, r0 ldr r0, _080C5AD0 @ =gPlayerParty adds r5, r1, r0 adds r0, r5, 0 movs r1, 0x2D bl GetMonData cmp r0, 0x1 beq _080C5ACA adds r0, r5, 0 movs r1, 0xB bl GetMonData cmp r0, r6 beq _080C5AD4 _080C5ACA: movs r0, 0x1 b _080C5B12 .align 2, 0 _080C5AD0: .4byte gPlayerParty _080C5AD4: mov r4, sp adds r0, r5, 0 bl sub_80C58C0 strh r0, [r4] mov r0, sp ldrh r1, [r0] adds r0, r6, 0 bl sub_80C5994 adds r5, r0, 0 ldrh r1, [r7] adds r0, r6, 0 bl sub_80C5994 adds r4, r0, 0 ldr r0, _080C5B0C @ =gStringVar2 adds r1, r5, 0 bl sub_80C5A08 cmp r5, r4 bls _080C5B10 mov r0, sp ldrh r0, [r0] strh r0, [r7] movs r0, 0x3 b _080C5B12 .align 2, 0 _080C5B0C: .4byte gStringVar2 _080C5B10: movs r0, 0x2 _080C5B12: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80C5A8C thumb_func_start sub_80C5B1C sub_80C5B1C: @ 80C5B1C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 16 lsrs r4, 16 ldrh r1, [r5] adds r0, r4, 0 bl sub_80C5994 adds r1, r0, 0 ldr r0, _080C5B58 @ =gStringVar3 bl sub_80C5A08 ldr r0, _080C5B5C @ =gStringVar1 movs r1, 0xB muls r1, r4 ldr r2, _080C5B60 @ =gSpeciesNames adds r1, r2 bl StringCopy ldrh r1, [r5] movs r0, 0x81 lsls r0, 8 cmp r1, r0 bne _080C5B6C ldr r0, _080C5B64 @ =gStringVar2 ldr r1, _080C5B68 @ =gOtherText_Marco bl StringCopy b _080C5B74 .align 2, 0 _080C5B58: .4byte gStringVar3 _080C5B5C: .4byte gStringVar1 _080C5B60: .4byte gSpeciesNames _080C5B64: .4byte gStringVar2 _080C5B68: .4byte gOtherText_Marco _080C5B6C: ldr r0, _080C5B7C @ =gStringVar2 ldr r1, _080C5B80 @ =gSaveBlock2 bl StringCopy _080C5B74: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C5B7C: .4byte gStringVar2 _080C5B80: .4byte gSaveBlock2 thumb_func_end sub_80C5B1C thumb_func_start sub_80C5B84 sub_80C5B84: @ 80C5B84 push {lr} ldr r0, _080C5B94 @ =0x00004047 movs r1, 0x81 lsls r1, 8 bl VarSet pop {r0} bx r0 .align 2, 0 _080C5B94: .4byte 0x00004047 thumb_func_end sub_80C5B84 thumb_func_start sub_80C5B98 sub_80C5B98: @ 80C5B98 push {lr} ldr r0, _080C5BB0 @ =0x00004047 bl GetVarPointer adds r1, r0, 0 movs r0, 0x99 lsls r0, 1 bl sub_80C5B1C pop {r0} bx r0 .align 2, 0 _080C5BB0: .4byte 0x00004047 thumb_func_end sub_80C5B98 thumb_func_start sub_80C5BB4 sub_80C5BB4: @ 80C5BB4 push {r4,lr} ldr r0, _080C5BD4 @ =0x00004047 bl GetVarPointer adds r1, r0, 0 ldr r4, _080C5BD8 @ =gScriptResult movs r0, 0x99 lsls r0, 1 bl sub_80C5A8C lsls r0, 24 lsrs r0, 24 strh r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080C5BD4: .4byte 0x00004047 _080C5BD8: .4byte gScriptResult thumb_func_end sub_80C5BB4 thumb_func_start sub_80C5BDC sub_80C5BDC: @ 80C5BDC push {lr} ldr r0, _080C5BEC @ =0x0000404f movs r1, 0x81 lsls r1, 8 bl VarSet pop {r0} bx r0 .align 2, 0 _080C5BEC: .4byte 0x0000404f thumb_func_end sub_80C5BDC thumb_func_start sub_80C5BF0 sub_80C5BF0: @ 80C5BF0 push {lr} ldr r0, _080C5C04 @ =0x0000404f bl GetVarPointer adds r1, r0, 0 ldr r0, _080C5C08 @ =0x00000143 bl sub_80C5B1C pop {r0} bx r0 .align 2, 0 _080C5C04: .4byte 0x0000404f _080C5C08: .4byte 0x00000143 thumb_func_end sub_80C5BF0 thumb_func_start sub_80C5C0C sub_80C5C0C: @ 80C5C0C push {r4,lr} ldr r0, _080C5C2C @ =0x0000404f bl GetVarPointer adds r1, r0, 0 ldr r4, _080C5C30 @ =gScriptResult ldr r0, _080C5C34 @ =0x00000143 bl sub_80C5A8C lsls r0, 24 lsrs r0, 24 strh r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080C5C2C: .4byte 0x0000404f _080C5C30: .4byte gScriptResult _080C5C34: .4byte 0x00000143 thumb_func_end sub_80C5C0C thumb_func_start sub_80C5C38 sub_80C5C38: @ 80C5C38 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r5, r1, 24 movs r7, 0 add r4, sp, 0x8 movs r0, 0x1 strb r0, [r4] ldr r1, _080C5CC0 @ =gUnknown_083D188E mov r0, sp movs r2, 0x7 bl memcpy mov r8, r4 cmp r6, 0xA bhi _080C5CB2 cmp r5, 0x40 bhi _080C5CB2 ldr r0, _080C5CC4 @ =gSaveBlock1 ldr r1, _080C5CC8 @ =0x00003110 adds r0, r1 adds r0, r6, r0 strb r5, [r0] movs r5, 0 _080C5C70: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _080C5CCC @ =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _080C5CA2 adds r0, r4, 0 movs r1, 0x6 bl GetMonData cmp r0, 0 bne _080C5CA2 mov r1, sp adds r0, r1, r6 ldrb r1, [r0] adds r0, r4, 0 mov r2, r8 bl SetMonData movs r7, 0x1 _080C5CA2: adds r5, 0x1 cmp r5, 0x5 ble _080C5C70 cmp r7, 0 beq _080C5CB2 ldr r0, _080C5CD0 @ =0x0000083b bl FlagSet _080C5CB2: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C5CC0: .4byte gUnknown_083D188E _080C5CC4: .4byte gSaveBlock1 _080C5CC8: .4byte 0x00003110 _080C5CCC: .4byte gPlayerParty _080C5CD0: .4byte 0x0000083b thumb_func_end sub_80C5C38 thumb_func_start sub_80C5CD4 sub_80C5CD4: @ 80C5CD4 push {r4-r7,lr} sub sp, 0x28 adds r7, r0, 0 ldr r0, _080C5D64 @ =gUnknown_083D1898 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x18] str r1, [sp, 0x1C] ldr r0, _080C5D68 @ =gUnknown_083D18A0 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x20] str r1, [sp, 0x24] mov r1, sp ldr r0, _080C5D6C @ =gSpriteTemplate_83D18A8 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldrh r3, [r7] lsls r2, r3, 16 add r0, sp, 0x18 ldrh r1, [r0, 0x4] orrs r1, r2 str r1, [r0, 0x4] mov r1, sp movs r6, 0 strh r3, [r1] ldrh r2, [r7, 0x2] ldr r5, _080C5D70 @ =0xffff0000 add r4, sp, 0x20 ldr r1, [r4, 0x4] ands r1, r5 orrs r1, r2 str r1, [r4, 0x4] mov r1, sp strh r2, [r1, 0x2] bl LoadSpriteSheet adds r0, r4, 0 bl LoadSpritePalette movs r0, 0x1 strh r0, [r7, 0xC] strh r6, [r7, 0xA] strh r6, [r7, 0x8] ldrh r0, [r7, 0x2] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 movs r1, 0x80 lsls r1, 9 lsls r1, r0 bics r5, r1 str r5, [r7, 0x10] ldrh r0, [r7, 0x4] cmp r0, 0 bne _080C5D4E movs r0, 0x10 strh r0, [r7, 0x4] _080C5D4E: ldrh r0, [r7, 0x6] cmp r0, 0 bne _080C5D58 movs r0, 0x14 strh r0, [r7, 0x6] _080C5D58: ldr r0, _080C5D74 @ =gUnknown_020387EC str r7, [r0] movs r4, 0 ldr r5, _080C5D78 @ =gSprites b _080C5D94 .align 2, 0 _080C5D64: .4byte gUnknown_083D1898 _080C5D68: .4byte gUnknown_083D18A0 _080C5D6C: .4byte gSpriteTemplate_83D18A8 _080C5D70: .4byte 0xffff0000 _080C5D74: .4byte gUnknown_020387EC _080C5D78: .4byte gSprites _080C5D7C: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrh r1, [r7, 0x4] cmp r4, 0x3 bhi _080C5D8C negs r1, r1 _080C5D8C: strh r1, [r0, 0x2E] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 _080C5D94: cmp r4, 0x7 bhi _080C5DB2 lsls r1, r4, 5 adds r1, 0x8 lsls r1, 16 asrs r1, 16 mov r0, sp movs r2, 0x50 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 bne _080C5D7C _080C5DB2: ldr r1, _080C5DC8 @ =REG_BLDCNT movs r0, 0xBF strh r0, [r1] adds r1, 0x4 movs r0, 0x10 strh r0, [r1] add sp, 0x28 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C5DC8: .4byte REG_BLDCNT thumb_func_end sub_80C5CD4 thumb_func_start sub_80C5DCC sub_80C5DCC: @ 80C5DCC push {r4,lr} ldr r4, _080C5E10 @ =gUnknown_020387EC ldr r1, [r4] ldrh r0, [r1, 0x8] cmp r0, 0 bne _080C5DF0 ldr r0, [r1, 0x10] ldr r2, _080C5E14 @ =0x0000ffff movs r1, 0x10 bl BlendPalettes ldr r0, _080C5E18 @ =sub_80C603C bl sub_80C61B0 ldr r1, [r4] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _080C5DF0: ldr r1, [r4] ldrh r0, [r1, 0xA] cmp r0, 0x7 bls _080C5E0A ldrh r0, [r1, 0x6] ldrh r2, [r1, 0xC] adds r0, r2 movs r2, 0 strh r0, [r1, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x4F bgt _080C5E1C _080C5E0A: movs r0, 0 b _080C5E2E .align 2, 0 _080C5E10: .4byte gUnknown_020387EC _080C5E14: .4byte 0x0000ffff _080C5E18: .4byte sub_80C603C _080C5E1C: movs r0, 0x50 strh r0, [r1, 0xC] ldr r0, _080C5E34 @ =REG_BLDCNT strh r2, [r0] adds r0, 0x4 strh r2, [r0] bl ClearGpuRegBits movs r0, 0x1 _080C5E2E: pop {r4} pop {r1} bx r1 .align 2, 0 _080C5E34: .4byte REG_BLDCNT thumb_func_end sub_80C5DCC thumb_func_start sub_80C5E38 sub_80C5E38: @ 80C5E38 push {r4-r7,lr} sub sp, 0x28 adds r7, r0, 0 ldr r0, _080C5EC8 @ =gUnknown_083D1898 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x18] str r1, [sp, 0x1C] ldr r0, _080C5ECC @ =gUnknown_083D18A0 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x20] str r1, [sp, 0x24] mov r1, sp ldr r0, _080C5ED0 @ =gSpriteTemplate_83D18C0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldrh r3, [r7] lsls r2, r3, 16 add r0, sp, 0x18 ldrh r1, [r0, 0x4] orrs r1, r2 str r1, [r0, 0x4] mov r1, sp movs r6, 0 strh r3, [r1] ldrh r2, [r7, 0x2] ldr r5, _080C5ED4 @ =0xffff0000 add r4, sp, 0x20 ldr r1, [r4, 0x4] ands r1, r5 orrs r1, r2 str r1, [r4, 0x4] mov r1, sp strh r2, [r1, 0x2] bl LoadSpriteSheet adds r0, r4, 0 bl LoadSpritePalette movs r0, 0x50 strh r0, [r7, 0xC] strh r6, [r7, 0x8] strh r6, [r7, 0xA] ldrh r0, [r7, 0x2] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 movs r1, 0x80 lsls r1, 9 lsls r1, r0 bics r5, r1 str r5, [r7, 0x10] ldrh r0, [r7, 0x4] cmp r0, 0 bne _080C5EB2 movs r0, 0x10 strh r0, [r7, 0x4] _080C5EB2: ldrh r0, [r7, 0x6] cmp r0, 0 bne _080C5EBC movs r0, 0x14 strh r0, [r7, 0x6] _080C5EBC: ldr r0, _080C5ED8 @ =gUnknown_020387EC str r7, [r0] movs r5, 0 ldr r6, _080C5EDC @ =gSprites b _080C5F4A .align 2, 0 _080C5EC8: .4byte gUnknown_083D1898 _080C5ECC: .4byte gUnknown_083D18A0 _080C5ED0: .4byte gSpriteTemplate_83D18C0 _080C5ED4: .4byte 0xffff0000 _080C5ED8: .4byte gUnknown_020387EC _080C5EDC: .4byte gSprites _080C5EE0: lsls r2, r3, 4 adds r1, r2, r3 lsls r1, 2 adds r1, r6 ldrh r0, [r7, 0x4] strh r0, [r1, 0x2E] movs r0, 0x1 strh r0, [r1, 0x30] ldr r1, _080C5EF4 @ =gSprites b _080C5F2A .align 2, 0 _080C5EF4: .4byte gSprites _080C5EF8: lsls r1, r5, 21 movs r0, 0x80 lsls r0, 16 adds r1, r0 asrs r1, 16 mov r0, sp movs r2, 0x50 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x40 beq _080C5F6E lsls r2, r3, 4 adds r1, r2, r3 lsls r1, 2 adds r1, r6 ldrh r0, [r7, 0x4] negs r0, r0 strh r0, [r1, 0x2E] ldr r0, _080C5F88 @ =0x0000ffff strh r0, [r1, 0x30] ldr r1, _080C5F8C @ =gSprites lsls r4, r5, 5 _080C5F2A: adds r0, r2, r3 lsls r0, 2 adds r0, r1 adds r1, r4, 0 adds r1, 0x8 movs r2, 0 strh r1, [r0, 0x32] strh r2, [r0, 0x36] adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 _080C5F4A: cmp r5, 0x7 bhi _080C5F6E cmp r5, 0x3 bhi _080C5EF8 lsls r4, r5, 5 adds r1, r4, 0 subs r1, 0x70 lsls r1, 16 asrs r1, 16 mov r0, sp movs r2, 0x50 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x40 bne _080C5EE0 _080C5F6E: ldr r1, _080C5F90 @ =REG_BLDCNT movs r0, 0xFF strh r0, [r1] adds r1, 0x4 movs r0, 0x10 strh r0, [r1] ldr r0, _080C5F94 @ =sub_80C6078 bl sub_80C61B0 add sp, 0x28 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C5F88: .4byte 0x0000ffff _080C5F8C: .4byte gSprites _080C5F90: .4byte REG_BLDCNT _080C5F94: .4byte sub_80C6078 thumb_func_end sub_80C5E38 thumb_func_start sub_80C5F98 sub_80C5F98: @ 80C5F98 push {r4,lr} ldr r4, _080C5FB0 @ =gUnknown_020387EC ldr r2, [r4] ldrh r0, [r2, 0x8] cmp r0, 0x1 beq _080C5FEC cmp r0, 0x1 bgt _080C5FB4 cmp r0, 0 beq _080C5FBA b _080C602C .align 2, 0 _080C5FB0: .4byte gUnknown_020387EC _080C5FB4: cmp r0, 0x2 beq _080C6008 b _080C602C _080C5FBA: ldrh r0, [r2, 0xC] ldrh r1, [r2, 0x6] subs r0, r1 strh r0, [r2, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bgt _080C6034 ldr r0, [r2, 0x10] ldr r2, _080C5FE4 @ =0x0000ffff movs r1, 0x10 bl BlendPalettes ldr r0, _080C5FE8 @ =sub_80C603C bl SetHBlankCallback ldr r1, [r4] movs r0, 0x1 strh r0, [r1, 0xC] b _080C6000 .align 2, 0 _080C5FE4: .4byte 0x0000ffff _080C5FE8: .4byte sub_80C603C _080C5FEC: ldrh r0, [r2, 0xA] cmp r0, 0x8 bne _080C6034 movs r0, 0x1 negs r0, r0 movs r1, 0x10 movs r2, 0 bl BlendPalettes ldr r1, [r4] _080C6000: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _080C6034 _080C6008: ldr r0, _080C6030 @ =REG_BLDCNT movs r1, 0 strh r1, [r0] adds r0, 0x4 strh r1, [r0] ldrh r0, [r2] bl FreeSpriteTilesByTag ldr r0, [r4] ldrh r0, [r0, 0x2] bl FreeSpritePaletteByTag bl ClearGpuRegBits ldr r1, [r4] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _080C602C: movs r0, 0x1 b _080C6036 .align 2, 0 _080C6030: .4byte REG_BLDCNT _080C6034: movs r0, 0 _080C6036: pop {r4} pop {r1} bx r1 thumb_func_end sub_80C5F98 thumb_func_start sub_80C603C sub_80C603C: @ 80C603C push {lr} sub sp, 0x4 mov r2, sp ldr r0, _080C6060 @ =REG_VCOUNT ldrh r1, [r0] movs r3, 0xFF adds r0, r3, 0 ands r0, r1 strh r0, [r2] mov r0, sp ldrh r0, [r0] cmp r0, 0x50 bne _080C6068 ldr r1, _080C6064 @ =REG_BLDCNT movs r0, 0x8F strh r0, [r1] b _080C606C .align 2, 0 _080C6060: .4byte REG_VCOUNT _080C6064: .4byte REG_BLDCNT _080C6068: ldr r0, _080C6074 @ =REG_BLDCNT strh r3, [r0] _080C606C: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080C6074: .4byte REG_BLDCNT thumb_func_end sub_80C603C thumb_func_start sub_80C6078 sub_80C6078: @ 80C6078 push {lr} sub sp, 0x4 mov r2, sp ldr r0, _080C60B0 @ =REG_VCOUNT ldrh r1, [r0] movs r0, 0xFF ands r0, r1 strh r0, [r2] mov r0, sp ldrh r1, [r0] ldr r0, _080C60B4 @ =gUnknown_020387EC ldr r0, [r0] movs r3, 0xC ldrsh r2, [r0, r3] movs r0, 0x50 subs r0, r2 cmp r1, r0 ble _080C60BC mov r0, sp ldrh r1, [r0] adds r0, r2, 0 adds r0, 0x50 cmp r1, r0 bge _080C60BC ldr r1, _080C60B8 @ =REG_BLDY movs r0, 0 b _080C60C0 .align 2, 0 _080C60B0: .4byte REG_VCOUNT _080C60B4: .4byte gUnknown_020387EC _080C60B8: .4byte REG_BLDY _080C60BC: ldr r1, _080C60C8 @ =REG_BLDY movs r0, 0x10 _080C60C0: strh r0, [r1] add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080C60C8: .4byte REG_BLDY thumb_func_end sub_80C6078 thumb_func_start sub_80C60CC sub_80C60CC: @ 80C60CC push {r4,lr} adds r2, r0, 0 ldrh r0, [r2, 0x2E] ldrh r1, [r2, 0x20] adds r0, r1 strh r0, [r2, 0x20] adds r0, 0x8 lsls r0, 16 movs r1, 0x80 lsls r1, 17 cmp r0, r1 bls _080C611C adds r0, r2, 0 bl DestroySprite ldr r4, _080C6124 @ =gUnknown_020387EC ldr r1, [r4] ldrh r0, [r1, 0xA] adds r0, 0x1 strh r0, [r1, 0xA] lsls r0, 16 lsrs r0, 16 cmp r0, 0x8 bne _080C611C ldrh r0, [r1] bl FreeSpriteTilesByTag ldr r0, [r4] ldrh r0, [r0, 0x2] bl FreeSpritePaletteByTag ldr r0, [r4] ldr r0, [r0, 0x10] ldr r2, _080C6128 @ =0x0000ffff movs r1, 0 bl BlendPalettes ldr r0, _080C612C @ =sub_80C6078 bl SetHBlankCallback _080C611C: pop {r4} pop {r0} bx r0 .align 2, 0 _080C6124: .4byte gUnknown_020387EC _080C6128: .4byte 0x0000ffff _080C612C: .4byte sub_80C6078 thumb_func_end sub_80C60CC thumb_func_start sub_80C6130 sub_80C6130: @ 80C6130 push {r4,r5,lr} adds r2, r0, 0 movs r1, 0x36 ldrsh r0, [r2, r1] cmp r0, 0 bne _080C61AA ldr r1, _080C6184 @ =gUnknown_020387EC ldr r0, [r1] movs r3, 0xC ldrsh r4, [r0, r3] adds r5, r1, 0 cmp r4, 0x1 bne _080C61AA ldrh r0, [r2, 0x2E] ldrh r1, [r2, 0x20] adds r0, r1 strh r0, [r2, 0x20] adds r0, 0xF lsls r0, 16 movs r1, 0x87 lsls r1, 17 cmp r0, r1 bhi _080C616C adds r3, r2, 0 adds r3, 0x3E ldrb r1, [r3] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r3] _080C616C: movs r3, 0x30 ldrsh r0, [r2, r3] cmp r0, 0 ble _080C6188 movs r0, 0x20 ldrsh r1, [r2, r0] movs r3, 0x32 ldrsh r0, [r2, r3] cmp r1, r0 blt _080C6196 b _080C6194 .align 2, 0 _080C6184: .4byte gUnknown_020387EC _080C6188: movs r0, 0x20 ldrsh r1, [r2, r0] movs r3, 0x32 ldrsh r0, [r2, r3] cmp r1, r0 bgt _080C6196 _080C6194: strh r4, [r2, 0x36] _080C6196: movs r1, 0x36 ldrsh r0, [r2, r1] cmp r0, 0 beq _080C61AA ldr r0, [r5] ldrh r1, [r0, 0xA] adds r1, 0x1 strh r1, [r0, 0xA] ldrh r0, [r2, 0x32] strh r0, [r2, 0x20] _080C61AA: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C6130 thumb_func_start sub_80C61B0 sub_80C61B0: @ 80C61B0 push {r4-r6,lr} ldr r2, _080C61F0 @ =INTR_CHECK ldrh r1, [r2] movs r5, 0x2 orrs r1, r5 strh r1, [r2] ldr r3, _080C61F4 @ =REG_DISPSTAT ldrh r1, [r3] movs r2, 0x10 orrs r1, r2 strh r1, [r3] ldr r4, _080C61F8 @ =0x04000208 ldrh r2, [r4] movs r6, 0 strh r6, [r4] ldr r3, _080C61FC @ =0x04000200 ldrh r1, [r3] orrs r1, r5 strh r1, [r3] strh r2, [r4] ldr r2, _080C6200 @ =gMain ldrh r1, [r2, 0x1C] orrs r1, r5 ldrh r3, [r2, 0x1C] orrs r1, r6 strh r1, [r2, 0x1C] bl SetHBlankCallback pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C61F0: .4byte INTR_CHECK _080C61F4: .4byte REG_DISPSTAT _080C61F8: .4byte 0x04000208 _080C61FC: .4byte 0x04000200 _080C6200: .4byte gMain thumb_func_end sub_80C61B0 thumb_func_start ClearGpuRegBits ClearGpuRegBits: @ 80C6204 push {r4,r5,lr} ldr r3, _080C6248 @ =INTR_CHECK ldrh r1, [r3] ldr r2, _080C624C @ =0x0000fffd adds r0, r2, 0 ands r0, r1 strh r0, [r3] ldr r3, _080C6250 @ =REG_DISPSTAT ldrh r1, [r3] ldr r0, _080C6254 @ =0x0000ffef ands r0, r1 strh r0, [r3] ldr r4, _080C6258 @ =0x04000208 ldrh r3, [r4] movs r0, 0 strh r0, [r4] ldr r5, _080C625C @ =0x04000200 ldrh r1, [r5] adds r0, r2, 0 ands r0, r1 strh r0, [r5] strh r3, [r4] ldr r0, _080C6260 @ =gMain ldrh r1, [r0, 0x1C] ands r2, r1 ldrh r1, [r0, 0x1C] strh r2, [r0, 0x1C] movs r0, 0 bl SetHBlankCallback pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C6248: .4byte INTR_CHECK _080C624C: .4byte 0x0000fffd _080C6250: .4byte REG_DISPSTAT _080C6254: .4byte 0x0000ffef _080C6258: .4byte 0x04000208 _080C625C: .4byte 0x04000200 _080C6260: .4byte gMain thumb_func_end ClearGpuRegBits thumb_func_start sub_80C6264 sub_80C6264: @ 80C6264 push {lr} ldr r0, _080C6278 @ =gUnknown_0203923C ldr r1, _080C627C @ =gMapHeader ldr r1, [r1, 0x4] bl sub_80BBFD8 bl sub_80BB5E4 pop {r0} bx r0 .align 2, 0 _080C6278: .4byte gUnknown_0203923C _080C627C: .4byte gMapHeader thumb_func_end sub_80C6264 thumb_func_start sub_80C6280 sub_80C6280: @ 80C6280 push {lr} ldr r1, _080C6294 @ =gUnknown_0202FF84 ldr r0, [r1, 0x4] cmp r0, 0x2 beq _080C62AA cmp r0, 0x2 bgt _080C6298 cmp r0, 0x1 beq _080C62A2 b _080C62BE .align 2, 0 _080C6294: .4byte gUnknown_0202FF84 _080C6298: cmp r0, 0x3 beq _080C62AE cmp r0, 0x4 beq _080C62B8 b _080C62BE _080C62A2: movs r0, 0x8 str r0, [r1, 0x14] movs r0, 0x28 b _080C62BC _080C62AA: movs r0, 0x8 b _080C62BA _080C62AE: movs r0, 0x8 negs r0, r0 str r0, [r1, 0x14] movs r0, 0x18 b _080C62BC _080C62B8: movs r0, 0x18 _080C62BA: str r0, [r1, 0x14] _080C62BC: str r0, [r1, 0x18] _080C62BE: pop {r0} bx r0 thumb_func_end sub_80C6280 thumb_func_start SetUpFieldMove_SecretPower SetUpFieldMove_SecretPower: @ 80C62C4 push {r4,lr} bl sub_80BB63C ldr r0, _080C6318 @ =gScriptResult ldrh r0, [r0] cmp r0, 0x1 beq _080C636E bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _080C636E ldr r4, _080C631C @ =gUnknown_0203923C adds r1, r4, 0x2 adds r0, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_80571EC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C6330 bl sub_80C6264 ldr r1, _080C6320 @ =gUnknown_0300485C ldr r0, _080C6324 @ =sub_808AB90 str r0, [r1] ldr r1, _080C6328 @ =gUnknown_03005CE4 ldr r0, _080C632C @ =sub_80C639C b _080C6380 .align 2, 0 _080C6318: .4byte gScriptResult _080C631C: .4byte gUnknown_0203923C _080C6320: .4byte gUnknown_0300485C _080C6324: .4byte sub_808AB90 _080C6328: .4byte gUnknown_03005CE4 _080C632C: .4byte sub_80C639C _080C6330: adds r0, r4, 0 bl sub_805720C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C6360 bl sub_80C6264 ldr r1, _080C6350 @ =gUnknown_0300485C ldr r0, _080C6354 @ =sub_808AB90 str r0, [r1] ldr r1, _080C6358 @ =gUnknown_03005CE4 ldr r0, _080C635C @ =sub_80C64A8 b _080C6380 .align 2, 0 _080C6350: .4byte gUnknown_0300485C _080C6354: .4byte sub_808AB90 _080C6358: .4byte gUnknown_03005CE4 _080C635C: .4byte sub_80C64A8 _080C6360: adds r0, r4, 0 bl is_tile_x98 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080C6372 _080C636E: movs r0, 0 b _080C6384 _080C6372: bl sub_80C6264 ldr r1, _080C638C @ =gUnknown_0300485C ldr r0, _080C6390 @ =sub_808AB90 str r0, [r1] ldr r1, _080C6394 @ =gUnknown_03005CE4 ldr r0, _080C6398 @ =sub_80C660C _080C6380: str r0, [r1] movs r0, 0x1 _080C6384: pop {r4} pop {r1} bx r1 .align 2, 0 _080C638C: .4byte gUnknown_0300485C _080C6390: .4byte sub_808AB90 _080C6394: .4byte gUnknown_03005CE4 _080C6398: .4byte sub_80C660C thumb_func_end SetUpFieldMove_SecretPower thumb_func_start sub_80C639C sub_80C639C: @ 80C639C push {lr} ldr r1, _080C63B0 @ =gUnknown_0202FF84 ldr r0, _080C63B4 @ =gUnknown_03005CE0 ldrb r0, [r0] str r0, [r1] ldr r0, _080C63B8 @ =gUnknown_081A2CE6 bl ScriptContext1_SetupScript pop {r0} bx r0 .align 2, 0 _080C63B0: .4byte gUnknown_0202FF84 _080C63B4: .4byte gUnknown_03005CE0 _080C63B8: .4byte gUnknown_081A2CE6 thumb_func_end sub_80C639C thumb_func_start FldEff_UseSecretPowerCave FldEff_UseSecretPowerCave: @ 80C63BC push {lr} bl oei_task_add lsls r0, 24 lsrs r0, 24 ldr r2, _080C63E0 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _080C63E4 @ =sub_80C63E8 lsrs r0, r2, 16 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] movs r0, 0 pop {r1} bx r1 .align 2, 0 _080C63E0: .4byte gTasks _080C63E4: .4byte sub_80C63E8 thumb_func_end FldEff_UseSecretPowerCave thumb_func_start sub_80C63E8 sub_80C63E8: @ 80C63E8 push {lr} movs r0, 0xB bl FieldEffectActiveListRemove movs r0, 0x37 bl FieldEffectStart pop {r0} bx r0 thumb_func_end sub_80C63E8 thumb_func_start FldEff_SecretPowerCave FldEff_SecretPowerCave: @ 80C63FC push {r4,lr} bl sub_80C6280 ldr r0, _080C643C @ =gSpriteTemplate_83D2614 ldr r3, _080C6440 @ =gSprites ldr r1, _080C6444 @ =gPlayerAvatar ldrb r1, [r1, 0x4] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r3 ldrh r1, [r2, 0x2] lsls r1, 23 lsrs r1, 23 ldr r4, _080C6448 @ =gUnknown_0202FF84 ldr r3, [r4, 0x14] adds r1, r3 lsls r1, 16 asrs r1, 16 ldrb r2, [r2] ldr r3, [r4, 0x18] adds r2, r3 lsls r2, 16 asrs r2, 16 movs r3, 0x94 bl CreateSprite movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080C643C: .4byte gSpriteTemplate_83D2614 _080C6440: .4byte gSprites _080C6444: .4byte gPlayerAvatar _080C6448: .4byte gUnknown_0202FF84 thumb_func_end FldEff_SecretPowerCave thumb_func_start sub_80C644C sub_80C644C: @ 80C644C push {r4,lr} adds r4, r0, 0 movs r0, 0x83 bl PlaySE movs r0, 0 strh r0, [r4, 0x2E] ldr r0, _080C6464 @ =sub_80C6468 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080C6464: .4byte sub_80C6468 thumb_func_end sub_80C644C thumb_func_start sub_80C6468 sub_80C6468: @ 80C6468 push {lr} adds r1, r0, 0 ldrh r2, [r1, 0x2E] movs r3, 0x2E ldrsh r0, [r1, r3] cmp r0, 0x27 bgt _080C6488 adds r0, r2, 0x1 strh r0, [r1, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 bne _080C6490 bl sub_80BB800 b _080C6490 _080C6488: movs r0, 0 strh r0, [r1, 0x2E] ldr r0, _080C6494 @ =sub_80C6498 str r0, [r1, 0x1C] _080C6490: pop {r0} bx r0 .align 2, 0 _080C6494: .4byte sub_80C6498 thumb_func_end sub_80C6468 thumb_func_start sub_80C6498 sub_80C6498: @ 80C6498 push {lr} movs r1, 0x37 bl FieldEffectStop bl EnableBothScriptContexts pop {r0} bx r0 thumb_func_end sub_80C6498 thumb_func_start sub_80C64A8 sub_80C64A8: @ 80C64A8 push {lr} ldr r1, _080C64BC @ =gUnknown_0202FF84 ldr r0, _080C64C0 @ =gUnknown_03005CE0 ldrb r0, [r0] str r0, [r1] ldr r0, _080C64C4 @ =gUnknown_081A2D3E bl ScriptContext1_SetupScript pop {r0} bx r0 .align 2, 0 _080C64BC: .4byte gUnknown_0202FF84 _080C64C0: .4byte gUnknown_03005CE0 _080C64C4: .4byte gUnknown_081A2D3E thumb_func_end sub_80C64A8 thumb_func_start FldEff_UseSecretPowerTree FldEff_UseSecretPowerTree: @ 80C64C8 push {lr} bl oei_task_add lsls r0, 24 lsrs r0, 24 ldr r2, _080C64EC @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _080C64F0 @ =sub_80C64F4 lsrs r0, r2, 16 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] movs r0, 0 pop {r1} bx r1 .align 2, 0 _080C64EC: .4byte gTasks _080C64F0: .4byte sub_80C64F4 thumb_func_end FldEff_UseSecretPowerTree thumb_func_start sub_80C64F4 sub_80C64F4: @ 80C64F4 push {lr} movs r0, 0x1A bl FieldEffectActiveListRemove movs r0, 0x38 bl FieldEffectStart pop {r0} bx r0 thumb_func_end sub_80C64F4 thumb_func_start FldEff_SecretPowerTree FldEff_SecretPowerTree: @ 80C6508 push {r4,lr} ldr r1, _080C6580 @ =gUnknown_0203923C movs r2, 0 ldrsh r0, [r1, r2] movs r2, 0x2 ldrsh r1, [r1, r2] bl MapGridGetMetatileBehaviorAt adds r2, r0, 0 ldr r1, _080C6584 @ =0x00000fff adds r0, r1, 0 ands r2, r0 cmp r2, 0x96 bne _080C652A ldr r1, _080C6588 @ =gUnknown_0202FF84 movs r0, 0 str r0, [r1, 0x1C] _080C652A: cmp r2, 0x9C bne _080C6534 ldr r1, _080C6588 @ =gUnknown_0202FF84 movs r0, 0x2 str r0, [r1, 0x1C] _080C6534: bl sub_80C6280 ldr r0, _080C658C @ =gSpriteTemplate_83D262C ldr r3, _080C6590 @ =gSprites ldr r1, _080C6594 @ =gPlayerAvatar ldrb r1, [r1, 0x4] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r3 ldrh r1, [r2, 0x2] lsls r1, 23 lsrs r1, 23 ldr r4, _080C6588 @ =gUnknown_0202FF84 ldr r3, [r4, 0x14] adds r1, r3 lsls r1, 16 asrs r1, 16 ldrb r2, [r2] ldr r3, [r4, 0x18] adds r2, r3 lsls r2, 16 asrs r2, 16 movs r3, 0x94 bl CreateSprite ldr r0, [r4, 0x1C] cmp r0, 0x1 beq _080C6572 cmp r0, 0x3 bne _080C6576 _080C6572: bl sub_80BB800 _080C6576: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080C6580: .4byte gUnknown_0203923C _080C6584: .4byte 0x00000fff _080C6588: .4byte gUnknown_0202FF84 _080C658C: .4byte gSpriteTemplate_83D262C _080C6590: .4byte gSprites _080C6594: .4byte gPlayerAvatar thumb_func_end FldEff_SecretPowerTree thumb_func_start sub_80C6598 sub_80C6598: @ 80C6598 push {r4,lr} adds r4, r0, 0 movs r0, 0x9B bl PlaySE ldr r0, _080C65BC @ =gUnknown_0202FF84 ldr r1, [r0, 0x1C] adds r2, r4, 0 adds r2, 0x2A movs r0, 0 strb r1, [r2] strh r0, [r4, 0x2E] ldr r0, _080C65C0 @ =sub_80C65C4 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080C65BC: .4byte gUnknown_0202FF84 _080C65C0: .4byte sub_80C65C4 thumb_func_end sub_80C6598 thumb_func_start sub_80C65C4 sub_80C65C4: @ 80C65C4 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x27 ble _080C65EE ldr r0, _080C65F4 @ =gUnknown_0202FF84 ldr r0, [r0, 0x1C] cmp r0, 0 beq _080C65E2 cmp r0, 0x2 bne _080C65E6 _080C65E2: bl sub_80BB800 _080C65E6: movs r0, 0 strh r0, [r4, 0x2E] ldr r0, _080C65F8 @ =sub_80C65FC str r0, [r4, 0x1C] _080C65EE: pop {r4} pop {r0} bx r0 .align 2, 0 _080C65F4: .4byte gUnknown_0202FF84 _080C65F8: .4byte sub_80C65FC thumb_func_end sub_80C65C4 thumb_func_start sub_80C65FC sub_80C65FC: @ 80C65FC push {lr} movs r1, 0x38 bl FieldEffectStop bl EnableBothScriptContexts pop {r0} bx r0 thumb_func_end sub_80C65FC thumb_func_start sub_80C660C sub_80C660C: @ 80C660C push {lr} ldr r1, _080C6620 @ =gUnknown_0202FF84 ldr r0, _080C6624 @ =gUnknown_03005CE0 ldrb r0, [r0] str r0, [r1] ldr r0, _080C6628 @ =gUnknown_081A2D96 bl ScriptContext1_SetupScript pop {r0} bx r0 .align 2, 0 _080C6620: .4byte gUnknown_0202FF84 _080C6624: .4byte gUnknown_03005CE0 _080C6628: .4byte gUnknown_081A2D96 thumb_func_end sub_80C660C thumb_func_start FldEff_UseSecretPowerShrub FldEff_UseSecretPowerShrub: @ 80C662C push {lr} bl oei_task_add lsls r0, 24 lsrs r0, 24 ldr r2, _080C6650 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _080C6654 @ =sub_80C6658 lsrs r0, r2, 16 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] movs r0, 0 pop {r1} bx r1 .align 2, 0 _080C6650: .4byte gTasks _080C6654: .4byte sub_80C6658 thumb_func_end FldEff_UseSecretPowerShrub thumb_func_start sub_80C6658 sub_80C6658: @ 80C6658 push {lr} movs r0, 0x1B bl FieldEffectActiveListRemove movs r0, 0x39 bl FieldEffectStart pop {r0} bx r0 thumb_func_end sub_80C6658 thumb_func_start FldEff_SecretPowerShrub FldEff_SecretPowerShrub: @ 80C666C push {r4,lr} bl sub_80C6280 ldr r0, _080C66AC @ =gSpriteTemplate_83D2644 ldr r3, _080C66B0 @ =gSprites ldr r1, _080C66B4 @ =gPlayerAvatar ldrb r1, [r1, 0x4] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r3 ldrh r1, [r2, 0x2] lsls r1, 23 lsrs r1, 23 ldr r4, _080C66B8 @ =gUnknown_0202FF84 ldr r3, [r4, 0x14] adds r1, r3 lsls r1, 16 asrs r1, 16 ldrb r2, [r2] ldr r3, [r4, 0x18] adds r2, r3 lsls r2, 16 asrs r2, 16 movs r3, 0x94 bl CreateSprite movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080C66AC: .4byte gSpriteTemplate_83D2644 _080C66B0: .4byte gSprites _080C66B4: .4byte gPlayerAvatar _080C66B8: .4byte gUnknown_0202FF84 thumb_func_end FldEff_SecretPowerShrub thumb_func_start sub_80C66BC sub_80C66BC: @ 80C66BC push {r4,lr} adds r4, r0, 0 movs r0, 0xA9 bl PlaySE movs r0, 0 strh r0, [r4, 0x2E] ldr r0, _080C66D4 @ =sub_80C66D8 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080C66D4: .4byte sub_80C66D8 thumb_func_end sub_80C66BC thumb_func_start sub_80C66D8 sub_80C66D8: @ 80C66D8 push {lr} adds r1, r0, 0 ldrh r2, [r1, 0x2E] movs r3, 0x2E ldrsh r0, [r1, r3] cmp r0, 0x27 bgt _080C66F8 adds r0, r2, 0x1 strh r0, [r1, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 bne _080C6700 bl sub_80BB800 b _080C6700 _080C66F8: movs r0, 0 strh r0, [r1, 0x2E] ldr r0, _080C6704 @ =sub_80C6708 str r0, [r1, 0x1C] _080C6700: pop {r0} bx r0 .align 2, 0 _080C6704: .4byte sub_80C6708 thumb_func_end sub_80C66D8 thumb_func_start sub_80C6708 sub_80C6708: @ 80C6708 push {lr} movs r1, 0x39 bl FieldEffectStop bl EnableBothScriptContexts pop {r0} bx r0 thumb_func_end sub_80C6708 thumb_func_start FldEff_PCTurnOn FldEff_PCTurnOn: @ 80C6718 push {r4,lr} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer ldr r0, _080C6758 @ =sub_80C6760 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080C675C @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 mov r0, sp ldrh r0, [r0] movs r2, 0 strh r0, [r1, 0x8] ldrh r0, [r4] strh r0, [r1, 0xA] strh r2, [r1, 0xC] movs r0, 0 add sp, 0x4 pop {r4} pop {r1} bx r1 .align 2, 0 _080C6758: .4byte sub_80C6760 _080C675C: .4byte gTasks thumb_func_end FldEff_PCTurnOn thumb_func_start sub_80C6760 sub_80C6760: @ 80C6760 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080C6788 @ =gTasks + 0x8 adds r4, r0, r1 ldrh r0, [r4, 0x4] subs r0, 0x4 lsls r0, 16 asrs r0, 16 cmp r0, 0x10 bhi _080C682E lsls r0, 2 ldr r1, _080C678C @ =_080C6790 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C6788: .4byte gTasks + 0x8 _080C678C: .4byte _080C6790 .align 2, 0 _080C6790: .4byte _080C67D4 .4byte _080C682E .4byte _080C682E .4byte _080C682E .4byte _080C67E2 .4byte _080C682E .4byte _080C682E .4byte _080C682E .4byte _080C67D4 .4byte _080C682E .4byte _080C682E .4byte _080C682E .4byte _080C67E2 .4byte _080C682E .4byte _080C682E .4byte _080C682E .4byte _080C6800 _080C67D4: movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] movs r2, 0x89 lsls r2, 2 b _080C67EE _080C67E2: movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] movs r2, 0x88 lsls r2, 2 _080C67EE: bl MapGridSetMetatileIdAt movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl CurrentMapDrawMetatileAt b _080C682E _080C6800: movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] movs r2, 0x89 lsls r2, 2 bl MapGridSetMetatileIdAt movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl CurrentMapDrawMetatileAt movs r0, 0x3D bl FieldEffectActiveListRemove bl EnableBothScriptContexts adds r0, r5, 0 bl DestroyTask b _080C6834 _080C682E: ldrh r0, [r4, 0x4] adds r0, 0x1 strh r0, [r4, 0x4] _080C6834: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C6760 thumb_func_start sub_80C683C sub_80C683C: @ 80C683C push {r4,lr} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer movs r0, 0x3 bl PlaySE ldr r0, _080C6874 @ =0x00004054 bl VarGet lsls r0, 16 cmp r0, 0 bne _080C6878 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] movs r2, 0xE2 lsls r2, 4 bl MapGridSetMetatileIdAt b _080C6888 .align 2, 0 _080C6874: .4byte 0x00004054 _080C6878: mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] ldr r2, _080C68A0 @ =0x00000e21 bl MapGridSetMetatileIdAt _080C6888: mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl CurrentMapDrawMetatileAt add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080C68A0: .4byte 0x00000e21 thumb_func_end sub_80C683C thumb_func_start sub_80C68A4 sub_80C68A4: @ 80C68A4 push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 lsls r6, 16 lsrs r6, 16 ldr r0, _080C68E4 @ =sub_80C68EC movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080C68E8 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r4, [r1, 0x8] strh r5, [r1, 0xA] strh r6, [r1, 0xC] strh r0, [r1, 0xE] movs r0, 0x1 strh r0, [r1, 0x10] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C68E4: .4byte sub_80C68EC _080C68E8: .4byte gTasks thumb_func_end sub_80C68A4 thumb_func_start sub_80C68EC sub_80C68EC: @ 80C68EC push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080C690C @ =gTasks + 0x8 adds r4, r0, r1 ldrh r1, [r4, 0x6] movs r2, 0x6 ldrsh r0, [r4, r2] cmp r0, 0x6 bne _080C6910 movs r0, 0 b _080C6912 .align 2, 0 _080C690C: .4byte gTasks + 0x8 _080C6910: adds r0, r1, 0x1 _080C6912: strh r0, [r4, 0x6] movs r3, 0x6 ldrsh r0, [r4, r3] cmp r0, 0 bne _080C6964 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x2 bne _080C692C movs r2, 0 ldrsh r0, [r4, r2] bl sub_80C696C _080C692C: movs r3, 0x2 ldrsh r0, [r4, r3] movs r2, 0x4 ldrsh r1, [r4, r2] ldrh r2, [r4, 0x8] ldrh r3, [r4] adds r2, r3 lsls r2, 16 lsrs r2, 16 bl MapGridSetMetatileIdAt movs r1, 0x2 ldrsh r0, [r4, r1] movs r2, 0x4 ldrsh r1, [r4, r2] bl CurrentMapDrawMetatileAt ldrh r1, [r4, 0x8] movs r3, 0x8 ldrsh r0, [r4, r3] cmp r0, 0x3 bne _080C6960 adds r0, r5, 0 bl DestroyTask b _080C6964 _080C6960: adds r0, r1, 0x1 strh r0, [r4, 0x8] _080C6964: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C68EC thumb_func_start sub_80C696C sub_80C696C: @ 80C696C push {lr} lsls r0, 16 asrs r1, r0, 16 movs r0, 0xCE lsls r0, 2 cmp r1, r0 beq _080C6998 cmp r1, r0 bgt _080C6988 movs r0, 0x8A lsls r0, 2 cmp r1, r0 beq _080C69B0 b _080C69B6 _080C6988: movs r0, 0xCF lsls r0, 2 cmp r1, r0 beq _080C69A0 adds r0, 0x4 cmp r1, r0 beq _080C69A8 b _080C69B6 _080C6998: movs r0, 0x4A bl PlaySE b _080C69B6 _080C69A0: movs r0, 0x4B bl PlaySE b _080C69B6 _080C69A8: movs r0, 0x4C bl PlaySE b _080C69B6 _080C69B0: movs r0, 0x4E bl PlaySE _080C69B6: pop {r0} bx r0 thumb_func_end sub_80C696C thumb_func_start FldEff_Nop47 FldEff_Nop47: @ 80C69BC movs r0, 0 bx lr thumb_func_end FldEff_Nop47 thumb_func_start FldEff_Nop48 FldEff_Nop48: @ 80C69C0 movs r0, 0 bx lr thumb_func_end FldEff_Nop48 thumb_func_start sub_80C69C4 sub_80C69C4: @ 80C69C4 push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 lsls r5, 16 lsrs r5, 16 lsls r4, 16 lsrs r4, 16 movs r0, 0x4D bl PlaySE lsls r5, 16 asrs r5, 16 lsls r4, 16 asrs r4, 16 ldr r2, _080C6A0C @ =0x00000276 adds r0, r5, 0 adds r1, r4, 0 bl MapGridSetMetatileIdAt subs r6, r4, 0x1 ldr r2, _080C6A10 @ =0x0000026e adds r0, r5, 0 adds r1, r6, 0 bl MapGridSetMetatileIdAt adds r0, r5, 0 adds r1, r4, 0 bl CurrentMapDrawMetatileAt adds r0, r5, 0 adds r1, r6, 0 bl CurrentMapDrawMetatileAt pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C6A0C: .4byte 0x00000276 _080C6A10: .4byte 0x0000026e thumb_func_end sub_80C69C4 thumb_func_start sub_80C6A14 sub_80C6A14: @ 80C6A14 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080C6A44 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r1 ldrh r2, [r1, 0x8] movs r3, 0x8 ldrsh r0, [r1, r3] cmp r0, 0x7 bne _080C6A48 movs r2, 0xA ldrsh r0, [r1, r2] movs r3, 0xC ldrsh r1, [r1, r3] bl sub_80C69C4 adds r0, r4, 0 bl DestroyTask b _080C6A4C .align 2, 0 _080C6A44: .4byte gTasks _080C6A48: adds r0, r2, 0x1 strh r0, [r1, 0x8] _080C6A4C: pop {r4} pop {r0} bx r0 thumb_func_end sub_80C6A14 thumb_func_start sub_80C6A54 sub_80C6A54: @ 80C6A54 push {r4-r7,lr} lsls r0, 16 lsrs r5, r0, 16 adds r7, r5, 0 lsls r1, 16 lsrs r4, r1, 16 adds r6, r4, 0 bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C6A7C lsls r0, r5, 16 asrs r0, 16 lsls r1, r4, 16 asrs r1, 16 bl sub_80C69C4 b _080C6A9E _080C6A7C: cmp r0, 0x2 bne _080C6A9E ldr r0, _080C6AA4 @ =sub_80C6A14 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080C6AA8 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r0, [r1, 0x8] strh r7, [r1, 0xA] strh r6, [r1, 0xC] _080C6A9E: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C6AA4: .4byte sub_80C6A14 _080C6AA8: .4byte gTasks thumb_func_end sub_80C6A54 thumb_func_start sub_80C6AAC sub_80C6AAC: @ 80C6AAC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080C6AE4 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r1 ldrh r2, [r1, 0xA] movs r3, 0xA ldrsh r0, [r1, r3] cmp r0, 0x7 beq _080C6AC8 b _080C6C26 _080C6AC8: ldr r2, _080C6AE8 @ =0xfffffd88 adds r0, r2, 0 ldrh r1, [r1, 0x8] adds r0, r1 lsls r0, 16 asrs r0, 16 cmp r0, 0x3B bls _080C6ADA b _080C6C1E _080C6ADA: lsls r0, 2 ldr r1, _080C6AEC @ =_080C6AF0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C6AE4: .4byte gTasks _080C6AE8: .4byte 0xfffffd88 _080C6AEC: .4byte _080C6AF0 .align 2, 0 _080C6AF0: .4byte _080C6BE0 .4byte _080C6BE8 .4byte _080C6BF0 .4byte _080C6BF8 .4byte _080C6C00 .4byte _080C6C08 .4byte _080C6C10 .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C18 _080C6BE0: movs r0, 0x3E bl PlaySE b _080C6C1E _080C6BE8: movs r0, 0x3F bl PlaySE b _080C6C1E _080C6BF0: movs r0, 0x40 bl PlaySE b _080C6C1E _080C6BF8: movs r0, 0x41 bl PlaySE b _080C6C1E _080C6C00: movs r0, 0x42 bl PlaySE b _080C6C1E _080C6C08: movs r0, 0x43 bl PlaySE b _080C6C1E _080C6C10: movs r0, 0x44 bl PlaySE b _080C6C1E _080C6C18: movs r0, 0x45 bl PlaySE _080C6C1E: adds r0, r4, 0 bl DestroyTask b _080C6C2A _080C6C26: adds r0, r2, 0x1 strh r0, [r1, 0xA] _080C6C2A: pop {r4} pop {r0} bx r0 thumb_func_end sub_80C6AAC thumb_func_start sub_80C6C30 sub_80C6C30: @ 80C6C30 push {r4,lr} adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r0, _080C6C5C @ =sub_80C6AAC movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080C6C60 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r4, [r1, 0x8] strh r0, [r1, 0xA] pop {r4} pop {r0} bx r0 .align 2, 0 _080C6C5C: .4byte sub_80C6AAC _080C6C60: .4byte gTasks thumb_func_end sub_80C6C30 thumb_func_start sub_80C6C64 sub_80C6C64: @ 80C6C64 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 bne _080C6C7C movs r0, 0xC3 bl PlaySE _080C6C7C: movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x1F ble _080C6C8A adds r0, r4, 0 bl DestroySprite _080C6C8A: pop {r4} pop {r0} bx r0 thumb_func_end sub_80C6C64 thumb_func_start sub_80C6C90 sub_80C6C90: @ 80C6C90 push {r4,lr} sub sp, 0x4 ldr r3, _080C6D28 @ =gMapObjects ldr r2, _080C6D2C @ =gPlayerAvatar ldrb r1, [r2, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r0, 0x10] mov r0, sp strh r1, [r0] ldrb r1, [r2, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x12] mov r4, sp adds r4, 0x2 strh r0, [r4] mov r0, sp adds r1, r4, 0 movs r2, 0x8 movs r3, 0x4 bl sub_8060470 ldr r0, _080C6D30 @ =gFieldEffectObjectTemplatePointers ldr r0, [r0, 0x58] mov r1, sp movs r2, 0 ldrsh r1, [r1, r2] movs r3, 0 ldrsh r2, [r4, r3] movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _080C6D1E ldr r3, _080C6D34 @ =gSprites lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r4, r2, r3 movs r0, 0x3E adds r0, r4 mov r12, r0 ldrb r0, [r0] movs r1, 0x2 orrs r0, r1 mov r1, r12 strb r0, [r1] ldrb r1, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x4 orrs r0, r1 movs r1, 0xF ands r0, r1 movs r1, 0x50 orrs r0, r1 strb r0, [r4, 0x5] adds r3, 0x1C adds r2, r3 ldr r0, _080C6D38 @ =sub_80C6C64 str r0, [r2] movs r0, 0 strh r0, [r4, 0x2E] _080C6D1E: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080C6D28: .4byte gMapObjects _080C6D2C: .4byte gPlayerAvatar _080C6D30: .4byte gFieldEffectObjectTemplatePointers _080C6D34: .4byte gSprites _080C6D38: .4byte sub_80C6C64 thumb_func_end sub_80C6C90 thumb_func_start FldEff_SandPillar FldEff_SandPillar: @ 80C6D3C push {r4,lr} sub sp, 0x4 bl ScriptContext2_Enable mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer ldr r1, _080C6D78 @ =gUnknown_0202FF84 mov r0, sp movs r2, 0 ldrsh r0, [r0, r2] str r0, [r1, 0x14] movs r3, 0 ldrsh r0, [r4, r3] str r0, [r1, 0x18] bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _080C6DBC cmp r0, 0x2 bgt _080C6D7C cmp r0, 0x1 beq _080C6D86 b _080C6E4C .align 2, 0 _080C6D78: .4byte gUnknown_0202FF84 _080C6D7C: cmp r0, 0x3 beq _080C6DEC cmp r0, 0x4 beq _080C6E24 b _080C6E4C _080C6D86: ldr r0, _080C6DB0 @ =gSpriteTemplate_83D26A0 ldr r3, _080C6DB4 @ =gSprites ldr r1, _080C6DB8 @ =gPlayerAvatar ldrb r1, [r1, 0x4] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r3 ldrh r1, [r2, 0x2] lsls r1, 23 lsrs r1, 7 movs r3, 0x80 lsls r3, 12 adds r1, r3 asrs r1, 16 ldrb r2, [r2] adds r2, 0x20 movs r3, 0 bl CreateSprite b _080C6E4C .align 2, 0 _080C6DB0: .4byte gSpriteTemplate_83D26A0 _080C6DB4: .4byte gSprites _080C6DB8: .4byte gPlayerAvatar _080C6DBC: ldr r0, _080C6DE0 @ =gSpriteTemplate_83D26A0 ldr r3, _080C6DE4 @ =gSprites ldr r1, _080C6DE8 @ =gPlayerAvatar ldrb r1, [r1, 0x4] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r3 ldrh r1, [r2, 0x2] lsls r1, 23 lsrs r1, 7 movs r3, 0x80 lsls r3, 12 adds r1, r3 asrs r1, 16 ldrb r2, [r2] b _080C6E0C .align 2, 0 _080C6DE0: .4byte gSpriteTemplate_83D26A0 _080C6DE4: .4byte gSprites _080C6DE8: .4byte gPlayerAvatar _080C6DEC: ldr r0, _080C6E14 @ =gSpriteTemplate_83D26A0 ldr r3, _080C6E18 @ =gSprites ldr r1, _080C6E1C @ =gPlayerAvatar ldrb r1, [r1, 0x4] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r3 ldrh r1, [r2, 0x2] lsls r1, 23 lsrs r1, 7 ldr r3, _080C6E20 @ =0xfff80000 adds r1, r3 asrs r1, 16 ldrb r2, [r2] adds r2, 0x10 _080C6E0C: movs r3, 0x94 bl CreateSprite b _080C6E4C .align 2, 0 _080C6E14: .4byte gSpriteTemplate_83D26A0 _080C6E18: .4byte gSprites _080C6E1C: .4byte gPlayerAvatar _080C6E20: .4byte 0xfff80000 _080C6E24: ldr r0, _080C6E58 @ =gSpriteTemplate_83D26A0 ldr r3, _080C6E5C @ =gSprites ldr r1, _080C6E60 @ =gPlayerAvatar ldrb r1, [r1, 0x4] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r3 ldrh r1, [r2, 0x2] lsls r1, 23 lsrs r1, 7 movs r3, 0xC0 lsls r3, 13 adds r1, r3 asrs r1, 16 ldrb r2, [r2] adds r2, 0x10 movs r3, 0x94 bl CreateSprite _080C6E4C: movs r0, 0 add sp, 0x4 pop {r4} pop {r1} bx r1 .align 2, 0 _080C6E58: .4byte gSpriteTemplate_83D26A0 _080C6E5C: .4byte gSprites _080C6E60: .4byte gPlayerAvatar thumb_func_end FldEff_SandPillar thumb_func_start door_restore_tilemap door_restore_tilemap: @ 80C6E64 push {r4,r5,lr} adds r5, r0, 0 movs r0, 0x83 bl PlaySE ldr r4, _080C6E90 @ =gUnknown_0202FF84 ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] subs r1, 0x1 bl MapGridGetMetatileIdAt ldr r1, _080C6E94 @ =0x00000286 cmp r0, r1 bne _080C6E9C ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] subs r1, 0x1 ldr r2, _080C6E98 @ =0x00000e02 bl MapGridSetMetatileIdAt b _080C6EAA .align 2, 0 _080C6E90: .4byte gUnknown_0202FF84 _080C6E94: .4byte 0x00000286 _080C6E98: .4byte 0x00000e02 _080C6E9C: ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] subs r1, 0x1 movs r2, 0xA1 lsls r2, 2 bl MapGridSetMetatileIdAt _080C6EAA: ldr r4, _080C6ED8 @ =gUnknown_0202FF84 ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] ldr r2, _080C6EDC @ =0x0000020a bl MapGridSetMetatileIdAt ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] subs r1, 0x1 bl CurrentMapDrawMetatileAt ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] bl CurrentMapDrawMetatileAt movs r0, 0 strh r0, [r5, 0x2E] ldr r0, _080C6EE0 @ =sub_80C6EE4 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C6ED8: .4byte gUnknown_0202FF84 _080C6EDC: .4byte 0x0000020a _080C6EE0: .4byte sub_80C6EE4 thumb_func_end door_restore_tilemap thumb_func_start sub_80C6EE4 sub_80C6EE4: @ 80C6EE4 push {r4,r5,lr} adds r5, r0, 0 ldrh r1, [r5, 0x2E] movs r2, 0x2E ldrsh r0, [r5, r2] cmp r0, 0x11 bgt _080C6EF8 adds r0, r1, 0x1 strh r0, [r5, 0x2E] b _080C6F14 _080C6EF8: ldr r4, _080C6F1C @ =gUnknown_0202FF84 ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] ldr r2, _080C6F20 @ =0x00000e8c bl MapGridSetMetatileIdAt ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] bl CurrentMapDrawMetatileAt movs r0, 0 strh r0, [r5, 0x2E] ldr r0, _080C6F24 @ =sub_80C6F28 str r0, [r5, 0x1C] _080C6F14: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C6F1C: .4byte gUnknown_0202FF84 _080C6F20: .4byte 0x00000e8c _080C6F24: .4byte sub_80C6F28 thumb_func_end sub_80C6EE4 thumb_func_start sub_80C6F28 sub_80C6F28: @ 80C6F28 push {lr} movs r1, 0x34 bl FieldEffectStop bl EnableBothScriptContexts pop {r0} bx r0 thumb_func_end sub_80C6F28 thumb_func_start sub_80C6F38 sub_80C6F38: @ 80C6F38 push {r4,lr} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridGetMetatileIdAt adds r1, r0, 0 ldr r0, _080C6F70 @ =0x000002f5 cmp r1, r0 beq _080C6FE8 cmp r1, r0 bgt _080C6F74 subs r0, 0x17 cmp r1, r0 beq _080C6FB0 adds r0, 0x16 cmp r1, r0 beq _080C6FDC b _080C6FFA .align 2, 0 _080C6F70: .4byte 0x000002f5 _080C6F74: ldr r0, _080C6F9C @ =0x000002f6 cmp r1, r0 beq _080C6FF4 adds r0, 0x40 cmp r1, r0 bne _080C6FFA ldr r0, _080C6FA0 @ =gStringVar1 movs r1, 0x64 movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r0, _080C6FA4 @ =gStringVar2 ldr r1, _080C6FA8 @ =gSecretBaseText_GoldRank bl StringCopy ldr r1, _080C6FAC @ =gScriptResult movs r0, 0 b _080C6FF8 .align 2, 0 _080C6F9C: .4byte 0x000002f6 _080C6FA0: .4byte gStringVar1 _080C6FA4: .4byte gStringVar2 _080C6FA8: .4byte gSecretBaseText_GoldRank _080C6FAC: .4byte gScriptResult _080C6FB0: ldr r0, _080C6FCC @ =gStringVar1 movs r1, 0x32 movs r2, 0 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r0, _080C6FD0 @ =gStringVar2 ldr r1, _080C6FD4 @ =gSecretBaseText_SilverRank bl StringCopy ldr r1, _080C6FD8 @ =gScriptResult movs r0, 0 b _080C6FF8 .align 2, 0 _080C6FCC: .4byte gStringVar1 _080C6FD0: .4byte gStringVar2 _080C6FD4: .4byte gSecretBaseText_SilverRank _080C6FD8: .4byte gScriptResult _080C6FDC: ldr r1, _080C6FE4 @ =gScriptResult movs r0, 0x1 b _080C6FF8 .align 2, 0 _080C6FE4: .4byte gScriptResult _080C6FE8: ldr r1, _080C6FF0 @ =gScriptResult movs r0, 0x2 b _080C6FF8 .align 2, 0 _080C6FF0: .4byte gScriptResult _080C6FF4: ldr r1, _080C7004 @ =gScriptResult movs r0, 0x3 _080C6FF8: strh r0, [r1] _080C6FFA: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080C7004: .4byte gScriptResult thumb_func_end sub_80C6F38 thumb_func_start task50_overworld_posion_effect task50_overworld_posion_effect: @ 80C7008 push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080C702C @ =gTasks + 0x8 adds r1, r0, r1 movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0x1 beq _080C7046 cmp r0, 0x1 bgt _080C7030 cmp r0, 0 beq _080C7036 b _080C7062 .align 2, 0 _080C702C: .4byte gTasks + 0x8 _080C7030: cmp r0, 0x2 beq _080C705A b _080C7062 _080C7036: ldrh r0, [r1, 0x2] adds r0, 0x2 strh r0, [r1, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _080C7062 b _080C7052 _080C7046: ldrh r0, [r1, 0x2] subs r0, 0x2 strh r0, [r1, 0x2] lsls r0, 16 cmp r0, 0 bne _080C7062 _080C7052: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080C7062 _080C705A: adds r0, r2, 0 bl DestroyTask b _080C706C _080C7062: ldr r2, _080C7070 @ =REG_MOSAIC ldrh r1, [r1, 0x2] lsls r0, r1, 4 orrs r0, r1 strh r0, [r2] _080C706C: pop {r0} bx r0 .align 2, 0 _080C7070: .4byte REG_MOSAIC thumb_func_end task50_overworld_posion_effect thumb_func_start overworld_posion_effect overworld_posion_effect: @ 80C7074 push {lr} movs r0, 0x4F bl PlaySE ldr r0, _080C7088 @ =task50_overworld_posion_effect movs r1, 0x50 bl CreateTask pop {r0} bx r0 .align 2, 0 _080C7088: .4byte task50_overworld_posion_effect thumb_func_end overworld_posion_effect thumb_func_start c3_80A0DD8_is_running c3_80A0DD8_is_running: @ 80C708C push {lr} ldr r0, _080C709C @ =task50_overworld_posion_effect bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _080C709C: .4byte task50_overworld_posion_effect thumb_func_end c3_80A0DD8_is_running thumb_func_start sub_80C70A0 sub_80C70A0: @ 80C70A0 lsls r0, 24 lsrs r0, 24 ldr r2, _080C70B4 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _080C70B8 @ =sub_80C70BC str r0, [r1] bx lr .align 2, 0 _080C70B4: .4byte gTasks _080C70B8: .4byte sub_80C70BC thumb_func_end sub_80C70A0 thumb_func_start sub_80C70BC sub_80C70BC: @ 80C70BC push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080C7120 @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C7124 @ =gMapObjects adds r4, r0, r1 adds r0, r4, 0 bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive lsls r0, 24 cmp r0, 0 beq _080C70E8 adds r0, r4, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _080C711A _080C70E8: bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 bl sub_8059D08 bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 bl GetStepInPlaceDelay16AnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldObjectSetSpecialAnim ldr r1, _080C7128 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _080C712C @ =sub_80C7130 str r1, [r0] _080C711A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C7120: .4byte gPlayerAvatar _080C7124: .4byte gMapObjects _080C7128: .4byte gTasks _080C712C: .4byte sub_80C7130 thumb_func_end sub_80C70BC thumb_func_start sub_80C7130 sub_80C7130: @ 80C7130 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080C7184 @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C7188 @ =gMapObjects adds r5, r0, r1 adds r0, r5, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _080C7194 ldr r1, _080C718C @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r1 ldrh r0, [r2, 0xA] adds r1, r0, 0x1 strh r1, [r2, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x9 bgt _080C7190 bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 bl GetStepInPlaceDelay16AnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl FieldObjectSetSpecialAnim b _080C7194 .align 2, 0 _080C7184: .4byte gPlayerAvatar _080C7188: .4byte gMapObjects _080C718C: .4byte gTasks _080C7190: ldr r0, _080C719C @ =sub_80C71A0 str r0, [r2] _080C7194: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C719C: .4byte sub_80C71A0 thumb_func_end sub_80C7130 thumb_func_start sub_80C71A0 sub_80C71A0: @ 80C71A0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_80597D0 lsls r0, 24 lsrs r0, 24 bl SetPlayerAvatarTransitionFlags adds r0, r4, 0 bl DestroyTask bl EnableBothScriptContexts pop {r4} pop {r0} bx r0 thumb_func_end sub_80C71A0 thumb_func_start sub_80C71C4 sub_80C71C4: @ 80C71C4 push {lr} ldr r0, _080C71D4 @ =sub_80C70A0 movs r1, 0x50 bl CreateTask pop {r0} bx r0 .align 2, 0 _080C71D4: .4byte sub_80C70A0 thumb_func_end sub_80C71C4 thumb_func_start sub_80C71D8 sub_80C71D8: @ 80C71D8 push {r4,r5,lr} ldr r0, _080C722C @ =gUnknown_083D2878 bl LoadSpritePalette ldr r0, _080C7230 @ =gSpriteTemplate_83D2894 movs r1, 0 movs r2, 0 movs r3, 0x52 bl CreateSprite lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x40 beq _080C7238 lsls r0, r5, 4 adds r0, r5 lsls r0, 2 ldr r1, _080C7234 @ =gSprites adds r4, r0, r1 adds r2, r4, 0 adds r2, 0x20 adds r3, r4, 0 adds r3, 0x22 movs r0, 0x10 movs r1, 0xD bl sub_8060388 adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x2 orrs r0, r1 strb r0, [r2] ldrh r0, [r4, 0x20] adds r0, 0x10 strh r0, [r4, 0x20] ldrh r0, [r4, 0x22] adds r0, 0x2 strh r0, [r4, 0x22] adds r0, r5, 0 b _080C723A .align 2, 0 _080C722C: .4byte gUnknown_083D2878 _080C7230: .4byte gSpriteTemplate_83D2894 _080C7234: .4byte gSprites _080C7238: movs r0, 0x40 _080C723A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80C71D8 thumb_func_start sub_80C7240 sub_80C7240: @ 80C7240 push {r4-r7,lr} ldr r4, _080C7274 @ =gSprites adds r7, r4, 0 movs r6, 0 movs r5, 0x3F _080C724A: adds r0, r7, 0 adds r0, 0x14 adds r0, r6, r0 ldr r1, [r0] ldr r0, _080C7278 @ =gSpriteTemplate_83D2894 cmp r1, r0 bne _080C7264 adds r0, r4, 0 bl FreeSpritePalette adds r0, r4, 0 bl DestroySprite _080C7264: adds r4, 0x44 adds r6, 0x44 subs r5, 0x1 cmp r5, 0 bge _080C724A pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C7274: .4byte gSprites _080C7278: .4byte gSpriteTemplate_83D2894 thumb_func_end sub_80C7240 thumb_func_start sub_80C727C sub_80C727C: @ 80C727C push {r4,lr} adds r4, r0, 0 movs r1, 0x78 bl __modsi3 cmp r0, 0 bne _080C7290 movs r0, 0x1 negs r0, r0 b _080C72A2 _080C7290: adds r0, r4, 0 movs r1, 0xA bl __modsi3 cmp r0, 0x4 ble _080C72A0 movs r0, 0 b _080C72A2 _080C72A0: movs r0, 0x1 _080C72A2: pop {r4} pop {r1} bx r1 thumb_func_end sub_80C727C thumb_func_start sub_80C72A8 sub_80C72A8: @ 80C72A8 push {lr} adds r0, 0x78 movs r1, 0xB4 bl __modsi3 cmp r0, 0 beq _080C72BA movs r0, 0 b _080C72BE _080C72BA: movs r0, 0x1 negs r0, r0 _080C72BE: pop {r1} bx r1 thumb_func_end sub_80C72A8 thumb_func_start sub_80C72C4 sub_80C72C4: @ 80C72C4 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080C7364 @ =gTasks + 0x8 adds r5, r1, r0 movs r1, 0 ldrsh r0, [r5, r1] adds r0, 0x1E bl sub_80C72A8 ldr r4, _080C7368 @ =gSaveBlock1 ldrb r1, [r4, 0x5] ldrb r2, [r4, 0x4] lsls r0, 18 movs r3, 0xC0 lsls r3, 10 orrs r0, r3 asrs r0, 16 str r0, [sp] movs r0, 0x1 movs r3, 0x3 bl sub_805BD90 movs r3, 0 ldrsh r0, [r5, r3] bl sub_80C72A8 ldrb r1, [r4, 0x5] ldrb r2, [r4, 0x4] lsls r0, 17 ldr r3, _080C736C @ =0xfffd0000 adds r0, r3 asrs r0, 16 str r0, [sp] movs r0, 0x2 movs r3, 0 bl sub_805BD90 movs r1, 0 ldrsh r0, [r5, r1] bl sub_80C72A8 ldrb r1, [r4, 0x5] ldrb r2, [r4, 0x4] movs r4, 0 movs r3, 0x3 negs r3, r3 lsls r0, 18 asrs r0, 16 str r0, [sp] movs r0, 0x3 bl sub_805BD90 ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] lsls r0, 16 ldr r1, _080C7370 @ =0x75300000 cmp r0, r1 bne _080C7346 strh r4, [r5] _080C7346: movs r3, 0 ldrsh r0, [r5, r3] bl sub_80C727C adds r1, r0, 0 lsls r1, 16 asrs r1, 16 movs r0, 0 bl SetCameraPanning add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C7364: .4byte gTasks + 0x8 _080C7368: .4byte gSaveBlock1 _080C736C: .4byte 0xfffd0000 _080C7370: .4byte 0x75300000 thumb_func_end sub_80C72C4 thumb_func_start sub_80C7374 sub_80C7374: @ 80C7374 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r3, r0, 3 ldr r4, _080C73B4 @ =gTasks + 0x8 adds r7, r3, r4 ldrh r1, [r7] adds r1, 0x1 strh r1, [r7] ldrh r0, [r7, 0x4] adds r0, 0x1 strh r0, [r7, 0x4] lsls r1, 16 asrs r1, 16 cmp r1, 0x5 ble _080C73A4 movs r0, 0 strh r0, [r7] ldrh r0, [r7, 0x2] adds r0, 0x1 strh r0, [r7, 0x2] _080C73A4: ldrh r0, [r7, 0x2] cmp r0, 0x13 bne _080C73B8 adds r0, r2, 0 bl DestroyTask b _080C746A .align 2, 0 _080C73B4: .4byte gTasks + 0x8 _080C73B8: ldr r2, _080C7474 @ =gUnknown_083D294C movs r1, 0x2 ldrsh r0, [r7, r1] adds r0, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x2 bne _080C73D4 adds r0, r4, 0 subs r0, 0x8 adds r0, r3, r0 ldr r1, _080C7478 @ =sub_80C7484 str r1, [r0] _080C73D4: movs r4, 0x2 ldrsh r0, [r7, r4] adds r0, r2 movs r5, 0 ldrsb r5, [r0, r5] lsls r5, 16 lsrs r5, 16 movs r1, 0x4 ldrsh r0, [r7, r1] bl sub_80C727C adds r1, r0, 0 lsls r5, 16 asrs r5, 16 lsls r1, 16 asrs r1, 16 adds r0, r5, 0 bl SetCameraPanning movs r4, 0x4 ldrsh r0, [r7, r4] adds r0, 0x1E bl sub_80C72A8 ldr r6, _080C747C @ =gSaveBlock1 ldrb r1, [r6, 0x5] ldrb r2, [r6, 0x4] movs r3, 0x3 subs r3, r5 lsls r3, 16 asrs r3, 16 lsls r0, 18 movs r4, 0xC0 lsls r4, 10 orrs r0, r4 asrs r0, 16 str r0, [sp] movs r0, 0x1 bl sub_805BD90 movs r1, 0x4 ldrsh r0, [r7, r1] bl sub_80C72A8 ldrb r1, [r6, 0x5] ldrb r2, [r6, 0x4] negs r3, r5 lsls r3, 16 asrs r3, 16 lsls r0, 17 ldr r4, _080C7480 @ =0xfffd0000 adds r0, r4 asrs r0, 16 str r0, [sp] movs r0, 0x2 bl sub_805BD90 movs r1, 0x4 ldrsh r0, [r7, r1] bl sub_80C72A8 ldrb r1, [r6, 0x5] ldrb r2, [r6, 0x4] movs r4, 0x3 negs r4, r4 adds r3, r4, 0 subs r3, r5 lsls r3, 16 asrs r3, 16 lsls r0, 18 asrs r0, 16 str r0, [sp] movs r0, 0x3 bl sub_805BD90 _080C746A: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C7474: .4byte gUnknown_083D294C _080C7478: .4byte sub_80C7484 _080C747C: .4byte gSaveBlock1 _080C7480: .4byte 0xfffd0000 thumb_func_end sub_80C7374 thumb_func_start sub_80C7484 sub_80C7484: @ 80C7484 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 adds r3, r0, 0 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 ldr r1, _080C74C4 @ =gTasks + 0x8 adds r2, r0, r1 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 ble _080C74B4 movs r0, 0 strh r0, [r2] ldrh r0, [r2, 0x2] adds r0, 0x1 strh r0, [r2, 0x2] _080C74B4: ldrh r0, [r2, 0x2] cmp r0, 0x13 bne _080C74C8 adds r0, r3, 0 bl DestroyTask b _080C7516 .align 2, 0 _080C74C4: .4byte gTasks + 0x8 _080C74C8: ldr r1, _080C7524 @ =gUnknown_083D294C movs r3, 0x2 ldrsh r0, [r2, r3] adds r0, r1 movs r1, 0 mov r8, r1 movs r6, 0 ldrsb r6, [r0, r6] adds r0, r6, 0 bl SetCameraPanning ldr r5, _080C7528 @ =gSaveBlock1 ldrb r1, [r5, 0x5] ldrb r2, [r5, 0x4] movs r3, 0x3 subs r3, r6 movs r0, 0x3 str r0, [sp] movs r0, 0x1 bl sub_805BD90 ldrb r1, [r5, 0x5] ldrb r2, [r5, 0x4] negs r3, r6 mov r4, r8 subs r4, 0x3 str r4, [sp] movs r0, 0x2 bl sub_805BD90 ldrb r1, [r5, 0x5] ldrb r2, [r5, 0x4] subs r4, r6 mov r3, r8 str r3, [sp] movs r0, 0x3 adds r3, r4, 0 bl sub_805BD90 _080C7516: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C7524: .4byte gUnknown_083D294C _080C7528: .4byte gSaveBlock1 thumb_func_end sub_80C7484 thumb_func_start sub_80C752C sub_80C752C: @ 80C752C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080C7550 @ =gTasks + 0x8 adds r4, r0, r1 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x5 bls _080C7546 b _080C7698 _080C7546: lsls r0, 2 ldr r1, _080C7554 @ =_080C7558 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C7550: .4byte gTasks + 0x8 _080C7554: .4byte _080C7558 .align 2, 0 _080C7558: .4byte _080C7570 .4byte _080C75A8 .4byte _080C75C4 .4byte _080C7610 .4byte _080C7634 .4byte _080C7652 _080C7570: ldrh r0, [r4, 0x2] adds r0, 0x1 strh r0, [r4, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0x5A beq _080C7580 b _080C7698 _080C7580: movs r0, 0 bl SetCameraPanningCallback movs r0, 0 strh r0, [r4, 0x2] ldr r0, _080C75A4 @ =sub_80C72C4 movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x4] movs r0, 0x1 strh r0, [r4] movs r0, 0x31 bl PlaySE b _080C7698 .align 2, 0 _080C75A4: .4byte sub_80C72C4 _080C75A8: ldrh r0, [r4, 0x2] adds r0, 0x1 strh r0, [r4, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0x96 bne _080C7698 bl pal_fill_black movs r0, 0 strh r0, [r4, 0x2] movs r0, 0x2 strh r0, [r4] b _080C7698 _080C75C4: ldrh r0, [r4, 0x2] adds r3, r0, 0x1 strh r3, [r4, 0x2] ldr r0, _080C7608 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _080C7698 lsls r1, r3, 16 movs r0, 0x96 lsls r0, 17 cmp r1, r0 ble _080C7698 strh r2, [r4, 0x2] ldrb r0, [r4, 0x4] bl DestroyTask ldr r0, _080C760C @ =sub_80C7374 movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x6] movs r0, 0x3 strh r0, [r4] movs r0, 0x32 bl PlaySE b _080C7698 .align 2, 0 _080C7608: .4byte gPaletteFade _080C760C: .4byte sub_80C7374 _080C7610: ldr r2, _080C7630 @ =gTasks movs r0, 0x6 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r5, [r0, 0x4] cmp r5, 0 bne _080C7698 bl InstallCameraPanAheadCallback strh r5, [r4, 0x2] movs r0, 0x4 strh r0, [r4] b _080C7698 .align 2, 0 _080C7630: .4byte gTasks _080C7634: ldrh r0, [r4, 0x2] adds r0, 0x1 strh r0, [r4, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0x5A bne _080C7698 movs r0, 0x33 bl PlaySE movs r0, 0 strh r0, [r4, 0x2] movs r0, 0x5 strh r0, [r4] b _080C7698 _080C7652: ldrh r0, [r4, 0x2] adds r0, 0x1 strh r0, [r4, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0x78 bne _080C7698 movs r2, 0x82 lsls r2, 2 movs r0, 0xB movs r1, 0x8 bl MapGridSetMetatileIdAt movs r2, 0x84 lsls r2, 2 movs r0, 0xB movs r1, 0x9 bl MapGridSetMetatileIdAt movs r2, 0x86 lsls r2, 2 movs r0, 0xB movs r1, 0xA bl MapGridSetMetatileIdAt bl DrawWholeMapView movs r0, 0x34 bl PlaySE adds r0, r5, 0 bl DestroyTask bl ScriptContext2_Disable _080C7698: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C752C thumb_func_start sub_80C76A0 sub_80C76A0: @ 80C76A0 push {lr} sub sp, 0x4 ldr r2, _080C76E8 @ =0x0000020d movs r0, 0xB movs r1, 0x8 bl MapGridSetMetatileIdAt ldr r2, _080C76EC @ =0x00000215 movs r0, 0xB movs r1, 0x9 bl MapGridSetMetatileIdAt ldr r2, _080C76F0 @ =0x0000021d movs r0, 0xB movs r1, 0xA bl MapGridSetMetatileIdAt bl DrawWholeMapView bl ScriptContext2_Enable movs r0, 0 str r0, [sp] ldr r1, _080C76F4 @ =gPlttBufferFaded ldr r2, _080C76F8 @ =0x01000100 mov r0, sp bl CpuFastSet ldr r0, _080C76FC @ =sub_80C752C movs r1, 0xA bl CreateTask add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080C76E8: .4byte 0x0000020d _080C76EC: .4byte 0x00000215 _080C76F0: .4byte 0x0000021d _080C76F4: .4byte gPlttBufferFaded _080C76F8: .4byte 0x01000100 _080C76FC: .4byte sub_80C752C thumb_func_end sub_80C76A0 thumb_func_start sub_80C7700 sub_80C7700: @ 80C7700 push {r4-r6,lr} sub sp, 0x4 ldr r0, _080C774C @ =sub_80C752C bl FuncIsActiveTask lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 bne _080C7744 ldr r4, _080C7750 @ =gSaveBlock1 ldrb r1, [r4, 0x5] ldrb r2, [r4, 0x4] movs r0, 0x3 str r0, [sp] movs r0, 0x1 movs r3, 0x3 bl sub_805BD90 ldrb r1, [r4, 0x5] ldrb r2, [r4, 0x4] movs r5, 0x3 negs r5, r5 str r5, [sp] movs r0, 0x2 movs r3, 0 bl sub_805BD90 ldrb r1, [r4, 0x5] ldrb r2, [r4, 0x4] str r6, [sp] movs r0, 0x3 adds r3, r5, 0 bl sub_805BD90 _080C7744: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C774C: .4byte sub_80C752C _080C7750: .4byte gSaveBlock1 thumb_func_end sub_80C7700 thumb_func_start sub_80C7754 sub_80C7754: @ 80C7754 push {r4-r6,lr} sub sp, 0xC mov r4, sp adds r4, 0x5 mov r5, sp adds r5, 0x6 add r6, sp, 0x8 add r0, sp, 0x4 adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl sub_810D9EC lsls r0, 24 cmp r0, 0 bne _080C7796 add r0, sp, 0x4 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 movs r1, 0 ldrsb r1, [r4, r1] movs r2, 0x1 negs r2, r2 movs r3, 0 ldrsb r3, [r5, r3] movs r4, 0 ldrsb r4, [r6, r4] str r4, [sp] bl warp1_set movs r0, 0x1 b _080C7798 _080C7796: movs r0, 0 _080C7798: add sp, 0xC pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80C7754 thumb_func_start sub_80C77A0 sub_80C77A0: @ 80C77A0 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080C77CC @ =gTasks + 0x8 adds r4, r0, r1 ldr r0, _080C77D0 @ =0x000040b4 bl GetVarPointer adds r6, r0, 0 ldr r7, _080C77D4 @ =gSaveBlock1 + 0x4 movs r0, 0 ldrsh r2, [r4, r0] cmp r2, 0x1 beq _080C77FC cmp r2, 0x1 bgt _080C77D8 cmp r2, 0 beq _080C77E2 b _080C7896 .align 2, 0 _080C77CC: .4byte gTasks + 0x8 _080C77D0: .4byte 0x000040b4 _080C77D4: .4byte gSaveBlock1 + 0x4 _080C77D8: cmp r2, 0x2 beq _080C783E cmp r2, 0x3 beq _080C7878 b _080C7896 _080C77E2: ldr r0, _080C77F8 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080C7896 strh r2, [r4, 0x2] movs r0, 0x2 strh r0, [r4] b _080C7896 .align 2, 0 _080C77F8: .4byte gPaletteFade _080C77FC: ldr r0, _080C7830 @ =gMain ldrh r1, [r0, 0x2E] adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _080C780A strh r2, [r4, 0x2] _080C780A: ldrb r1, [r7, 0x1] ldrb r2, [r7] movs r0, 0xFF bl sub_80A212C lsls r0, 24 cmp r0, 0 beq _080C7896 movs r0, 0x1 bl sub_810D9B0 cmp r0, 0x1 bne _080C783A ldrh r0, [r6] cmp r0, 0x2 bne _080C7834 movs r0, 0x9 b _080C7836 .align 2, 0 _080C7830: .4byte gMain _080C7834: movs r0, 0xA _080C7836: strh r0, [r6] b _080C7846 _080C783A: movs r0, 0x2 strh r0, [r4] _080C783E: movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, 0 beq _080C784C _080C7846: movs r0, 0x3 strh r0, [r4] b _080C7896 _080C784C: ldrh r0, [r6] cmp r0, 0x2 bne _080C7860 ldrb r1, [r7, 0x1] ldrb r2, [r7] ldr r3, _080C785C @ =gUnknown_083D295F b _080C7866 .align 2, 0 _080C785C: .4byte gUnknown_083D295F _080C7860: ldrb r1, [r7, 0x1] ldrb r2, [r7] ldr r3, _080C7874 @ =gUnknown_083D2961 _080C7866: movs r0, 0xFF bl exec_movement movs r0, 0x1 strh r0, [r4] b _080C7896 .align 2, 0 _080C7874: .4byte gUnknown_083D2961 _080C7878: ldr r0, _080C789C @ =0x00004001 bl FlagReset movs r0, 0x80 lsls r0, 7 bl FlagReset movs r0, 0 bl copy_saved_warp2_bank_and_enter_x_to_warp1 bl sp13E_warp_to_last_warp adds r0, r5, 0 bl DestroyTask _080C7896: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C789C: .4byte 0x00004001 thumb_func_end sub_80C77A0 thumb_func_start sub_80C78A0 sub_80C78A0: @ 80C78A0 push {r4,lr} sub sp, 0x4 ldr r1, _080C78F4 @ =SpriteCallbackDummy movs r0, 0 str r0, [sp] movs r0, 0x8C movs r2, 0x70 movs r3, 0x50 bl AddPseudoFieldObject lsls r0, 24 lsrs r0, 24 ldr r2, _080C78F8 @ =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r4, r1, r2 adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r2] ldr r0, _080C78FC @ =0x000040b4 bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 bne _080C7900 movs r0, 0x4 bl FieldObjectDirectionToImageAnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim b _080C7912 .align 2, 0 _080C78F4: .4byte SpriteCallbackDummy _080C78F8: .4byte gSprites _080C78FC: .4byte 0x000040b4 _080C7900: movs r0, 0x3 bl FieldObjectDirectionToImageAnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim _080C7912: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_80C78A0 thumb_func_start sub_80C791C sub_80C791C: @ 80C791C push {lr} bl sub_80C78A0 ldr r2, _080C794C @ =gMapObjects ldr r0, _080C7950 @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x1] movs r2, 0x20 orrs r1, r2 strb r1, [r0, 0x1] bl pal_fill_black ldr r0, _080C7954 @ =sub_80C77A0 movs r1, 0x50 bl CreateTask bl ScriptContext2_Enable pop {r0} bx r0 .align 2, 0 _080C794C: .4byte gMapObjects _080C7950: .4byte gPlayerAvatar _080C7954: .4byte sub_80C77A0 thumb_func_end sub_80C791C thumb_func_start sub_80C7958 sub_80C7958: @ 80C7958 push {lr} ldr r0, _080C7990 @ =0x0000082d bl FlagSet ldr r0, _080C7994 @ =0x00004001 bl FlagSet movs r0, 0x80 lsls r0, 7 bl FlagSet ldr r0, _080C7998 @ =gSaveBlock1 movs r1, 0x4 ldrsb r1, [r0, r1] movs r2, 0x5 ldrsb r2, [r0, r2] movs r3, 0x1 negs r3, r3 movs r0, 0 bl saved_warp2_set bl sub_80C7754 bl sub_8080F9C pop {r0} bx r0 .align 2, 0 _080C7990: .4byte 0x0000082d _080C7994: .4byte 0x00004001 _080C7998: .4byte gSaveBlock1 thumb_func_end sub_80C7958 thumb_func_start GetCurrentMapRotatingGatePuzzleType GetCurrentMapRotatingGatePuzzleType: @ 80C799C push {lr} ldr r0, _080C79B0 @ =gSaveBlock1 ldrh r1, [r0, 0x4] movs r0, 0x86 lsls r0, 1 cmp r1, r0 bne _080C79B4 movs r0, 0x1 b _080C79C6 .align 2, 0 _080C79B0: .4byte gSaveBlock1 _080C79B4: ldr r0, _080C79C0 @ =0x0000081d cmp r1, r0 beq _080C79C4 movs r0, 0 b _080C79C6 .align 2, 0 _080C79C0: .4byte 0x0000081d _080C79C4: movs r0, 0x2 _080C79C6: pop {r1} bx r1 thumb_func_end GetCurrentMapRotatingGatePuzzleType thumb_func_start sub_80C79CC sub_80C79CC: @ 80C79CC push {r4-r6,lr} movs r0, 0x80 lsls r0, 7 bl GetVarPointer adds r5, r0, 0 movs r3, 0 ldr r4, _080C7A00 @ =gUnknown_02038804 ldrb r0, [r4] cmp r3, r0 bge _080C79F8 ldr r6, _080C7A04 @ =gUnknown_02038800 _080C79E4: adds r2, r5, r3 ldr r1, [r6] lsls r0, r3, 3 adds r0, r1 ldrb r0, [r0, 0x5] strb r0, [r2] adds r3, 0x1 ldrb r0, [r4] cmp r3, r0 blt _080C79E4 _080C79F8: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C7A00: .4byte gUnknown_02038804 _080C7A04: .4byte gUnknown_02038800 thumb_func_end sub_80C79CC thumb_func_start sub_80C7A08 sub_80C7A08: @ 80C7A08 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x80 lsls r0, 7 bl GetVarPointer adds r0, r4 ldrb r0, [r0] pop {r4} pop {r1} bx r1 thumb_func_end sub_80C7A08 thumb_func_start sub_80C7A24 sub_80C7A24: @ 80C7A24 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 movs r0, 0x80 lsls r0, 7 bl GetVarPointer adds r0, r4 strb r5, [r0] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C7A24 thumb_func_start sub_80C7A44 sub_80C7A44: @ 80C7A44 push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 bl sub_80C7A08 lsls r0, 24 lsrs r1, r0, 24 cmp r4, 0x1 bne _080C7A68 cmp r1, 0 beq _080C7A64 subs r0, r1, 0x1 lsls r0, 24 b _080C7A72 _080C7A64: movs r1, 0x3 b _080C7A74 _080C7A68: adds r1, 0x1 lsls r1, 24 movs r0, 0xC0 lsls r0, 18 ands r0, r1 _080C7A72: lsrs r1, r0, 24 _080C7A74: adds r0, r5, 0 bl sub_80C7A24 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C7A44 thumb_func_start sub_80C7A80 sub_80C7A80: @ 80C7A80 push {lr} bl GetCurrentMapRotatingGatePuzzleType cmp r0, 0x1 beq _080C7A94 cmp r0, 0x1 ble _080C7AC8 cmp r0, 0x2 beq _080C7AAC b _080C7AC8 _080C7A94: ldr r1, _080C7AA0 @ =gUnknown_02038800 ldr r0, _080C7AA4 @ =gUnknown_083D2964 str r0, [r1] ldr r1, _080C7AA8 @ =gUnknown_02038804 movs r0, 0x7 b _080C7AB6 .align 2, 0 _080C7AA0: .4byte gUnknown_02038800 _080C7AA4: .4byte gUnknown_083D2964 _080C7AA8: .4byte gUnknown_02038804 _080C7AAC: ldr r1, _080C7ACC @ =gUnknown_02038800 ldr r0, _080C7AD0 @ =gUnknown_083D299C str r0, [r1] ldr r1, _080C7AD4 @ =gUnknown_02038804 movs r0, 0xE _080C7AB6: strb r0, [r1] movs r1, 0 ldr r3, _080C7AD8 @ =gUnknown_020387F0 movs r2, 0x40 _080C7ABE: adds r0, r1, r3 strb r2, [r0] adds r1, 0x1 cmp r1, 0xD bls _080C7ABE _080C7AC8: pop {r0} bx r0 .align 2, 0 _080C7ACC: .4byte gUnknown_02038800 _080C7AD0: .4byte gUnknown_083D299C _080C7AD4: .4byte gUnknown_02038804 _080C7AD8: .4byte gUnknown_020387F0 thumb_func_end sub_80C7A80 thumb_func_start sub_80C7ADC sub_80C7ADC: @ 80C7ADC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 16 lsrs r0, 16 str r0, [sp] lsls r1, 16 lsrs r1, 16 mov r10, r1 ldr r2, _080C7B9C @ =gSaveBlock1 ldrh r1, [r2] subs r0, r1, 0x2 lsls r0, 16 lsrs r3, r0, 16 adds r1, 0x11 lsls r1, 16 lsrs r1, 16 mov r9, r1 ldrh r1, [r2, 0x2] subs r0, r1, 0x2 lsls r0, 16 lsrs r2, r0, 16 adds r1, 0xE lsls r1, 16 lsrs r1, 16 mov r8, r1 movs r5, 0 ldr r0, _080C7BA0 @ =gUnknown_02038804 ldrb r0, [r0] cmp r5, r0 bcs _080C7B8C lsls r0, r2, 16 asrs r7, r0, 16 lsls r0, r3, 16 asrs r6, r0, 16 _080C7B28: ldr r0, _080C7BA4 @ =gUnknown_02038800 ldr r0, [r0] lsls r1, r5, 3 adds r1, r0 ldrh r0, [r1] adds r0, 0x7 lsls r0, 16 lsrs r2, r0, 16 ldrh r0, [r1, 0x2] adds r0, 0x7 lsls r0, 16 asrs r1, r0, 16 cmp r7, r1 bgt _080C7B7E mov r3, r8 lsls r0, r3, 16 asrs r0, 16 cmp r0, r1 blt _080C7B7E lsls r0, r2, 16 asrs r1, r0, 16 cmp r6, r1 bgt _080C7B7E mov r2, r9 lsls r0, r2, 16 asrs r0, 16 cmp r0, r1 blt _080C7B7E ldr r0, _080C7BA8 @ =gUnknown_020387F0 adds r4, r5, r0 ldrb r0, [r4] cmp r0, 0x40 bne _080C7B7E ldr r3, [sp] lsls r1, r3, 16 mov r0, r10 lsls r2, r0, 16 adds r0, r5, 0 asrs r1, 16 asrs r2, 16 bl sub_80C7BAC strb r0, [r4] _080C7B7E: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080C7BA0 @ =gUnknown_02038804 ldrb r0, [r0] cmp r5, r0 bcc _080C7B28 _080C7B8C: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C7B9C: .4byte gSaveBlock1 _080C7BA0: .4byte gUnknown_02038804 _080C7BA4: .4byte gUnknown_02038800 _080C7BA8: .4byte gUnknown_020387F0 thumb_func_end sub_80C7ADC thumb_func_start sub_80C7BAC sub_80C7BAC: @ 80C7BAC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x18 lsls r0, 24 lsrs r6, r0, 24 lsls r1, 16 lsrs r7, r1, 16 lsls r2, 16 lsrs r2, 16 mov r8, r2 ldr r0, _080C7BDC @ =gUnknown_02038800 lsls r1, r6, 3 ldr r0, [r0] adds r4, r0, r1 ldrb r0, [r4, 0x4] cmp r0, 0 beq _080C7BD4 cmp r0, 0x4 bne _080C7BE4 _080C7BD4: mov r1, sp ldr r0, _080C7BE0 @ =gSpriteTemplate_83D60A4 b _080C7BE8 .align 2, 0 _080C7BDC: .4byte gUnknown_02038800 _080C7BE0: .4byte gSpriteTemplate_83D60A4 _080C7BE4: mov r1, sp ldr r0, _080C7C7C @ =gSpriteTemplate_83D608C _080C7BE8: ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} mov r2, sp ldrb r0, [r4, 0x4] movs r3, 0x98 lsls r3, 5 adds r1, r3, 0 adds r0, r1 strh r0, [r2] mov r0, sp movs r1, 0 movs r2, 0 movs r3, 0x94 bl CreateSprite lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x40 beq _080C7C84 ldrh r0, [r4] adds r0, 0x7 ldrh r1, [r4, 0x2] adds r1, 0x7 lsls r4, r5, 4 adds r4, r5 lsls r4, 2 ldr r2, _080C7C80 @ =gSprites adds r4, r2 strh r6, [r4, 0x2E] movs r2, 0x3E adds r2, r4 mov r12, r2 ldrb r2, [r2] movs r3, 0x2 orrs r2, r3 mov r3, r12 strb r2, [r3] lsls r0, 16 asrs r0, 16 lsls r2, r7, 16 asrs r2, 16 adds r0, r2 lsls r0, 16 asrs r0, 16 lsls r1, 16 asrs r1, 16 mov r3, r8 lsls r2, r3, 16 asrs r2, 16 adds r1, r2 lsls r1, 16 asrs r1, 16 adds r2, r4, 0 adds r2, 0x20 adds r3, r4, 0 adds r3, 0x22 bl sub_8060388 adds r0, r4, 0 bl sub_80C7D14 adds r0, r6, 0 bl sub_80C7A08 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAffineAnim adds r0, r5, 0 b _080C7C86 .align 2, 0 _080C7C7C: .4byte gSpriteTemplate_83D608C _080C7C80: .4byte gSprites _080C7C84: movs r0, 0x40 _080C7C86: add sp, 0x18 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80C7BAC thumb_func_start sub_80C7C94 sub_80C7C94: @ 80C7C94 push {r4-r7,lr} adds r6, r0, 0 ldrh r0, [r6, 0x30] lsls r0, 24 lsrs r5, r0, 24 ldrh r0, [r6, 0x32] lsls r0, 24 lsrs r4, r0, 24 adds r7, r4, 0 adds r0, r6, 0 bl sub_80C7D14 cmp r5, 0x1 bne _080C7CDA adds r0, r4, 0x4 lsls r0, 24 lsrs r4, r0, 24 bl sub_80E6034 lsls r0, 16 asrs r0, 16 cmp r0, 0x1 beq _080C7CCA adds r0, r4, 0 adds r0, 0x8 lsls r0, 24 lsrs r4, r0, 24 _080C7CCA: movs r0, 0x30 bl PlaySE adds r0, r6, 0 adds r1, r4, 0 bl StartSpriteAffineAnim b _080C7D08 _080C7CDA: cmp r5, 0x2 bne _080C7D08 adds r0, r7, 0 adds r0, 0x8 lsls r0, 24 lsrs r4, r0, 24 bl sub_80E6034 lsls r0, 16 asrs r0, 16 cmp r0, 0x1 beq _080C7CFA adds r0, r4, 0 adds r0, 0x8 lsls r0, 24 lsrs r4, r0, 24 _080C7CFA: movs r0, 0x30 bl PlaySE adds r0, r6, 0 adds r1, r4, 0 bl StartSpriteAffineAnim _080C7D08: movs r0, 0 strh r0, [r6, 0x30] pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80C7C94 thumb_func_start sub_80C7D14 sub_80C7D14: @ 80C7D14 push {r4-r6,lr} mov r12, r0 mov r4, r12 adds r4, 0x3E ldrb r0, [r4] movs r5, 0x5 negs r5, r5 ands r5, r0 strb r5, [r4] mov r0, r12 ldrh r1, [r0, 0x24] ldrh r2, [r0, 0x20] adds r1, r2 adds r0, 0x28 movs r2, 0 ldrsb r2, [r0, r2] ldr r0, _080C7DA8 @ =gSpriteCoordOffsetX adds r2, r1 ldrh r0, [r0] adds r2, r0 lsls r2, 16 mov r3, r12 ldrh r1, [r3, 0x26] ldrh r0, [r3, 0x22] adds r1, r0 mov r0, r12 adds r0, 0x29 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldr r3, _080C7DAC @ =gSpriteCoordOffsetY adds r0, r1 ldrh r3, [r3] adds r0, r3 lsls r0, 16 movs r3, 0x80 lsls r3, 15 adds r1, r2, r3 lsrs r1, 16 lsrs r6, r0, 16 adds r0, r3 lsrs r3, r0, 16 asrs r2, 16 cmp r2, 0xFF bgt _080C7D7A lsls r0, r1, 16 asrs r0, 16 movs r1, 0x10 negs r1, r1 cmp r0, r1 bge _080C7D82 _080C7D7A: movs r1, 0x4 adds r0, r5, 0 orrs r0, r1 strb r0, [r4] _080C7D82: lsls r0, r6, 16 asrs r0, 16 cmp r0, 0xAF bgt _080C7D96 lsls r0, r3, 16 asrs r0, 16 movs r1, 0x10 negs r1, r1 cmp r0, r1 bge _080C7DA2 _080C7D96: mov r0, r12 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _080C7DA2: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C7DA8: .4byte gSpriteCoordOffsetX _080C7DAC: .4byte gSpriteCoordOffsetY thumb_func_end sub_80C7D14 thumb_func_start LoadRotatingGatePics LoadRotatingGatePics: @ 80C7DB0 push {lr} ldr r0, _080C7DBC @ =gRotatingGatesGraphicsTable bl LoadSpriteSheets pop {r0} bx r0 .align 2, 0 _080C7DBC: .4byte gRotatingGatesGraphicsTable thumb_func_end LoadRotatingGatePics thumb_func_start sub_80C7DC0 sub_80C7DC0: @ 80C7DC0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r2, _080C7DF4 @ =gSaveBlock1 ldrh r1, [r2] subs r0, r1, 0x2 lsls r0, 16 lsrs r0, 16 mov r10, r0 adds r1, 0x11 lsls r1, 16 lsrs r1, 16 mov r9, r1 ldrh r1, [r2, 0x2] subs r0, r1, 0x2 lsls r0, 16 lsrs r0, 16 mov r8, r0 adds r1, 0xE lsls r1, 16 lsrs r7, r1, 16 movs r6, 0 b _080C7E66 .align 2, 0 _080C7DF4: .4byte gSaveBlock1 _080C7DF8: ldr r0, _080C7E7C @ =gUnknown_02038800 ldr r0, [r0] lsls r1, r6, 3 adds r1, r0 ldrh r0, [r1] adds r0, 0x7 lsls r0, 16 lsrs r2, r0, 16 ldrh r0, [r1, 0x2] adds r0, 0x7 lsls r0, 16 lsrs r3, r0, 16 ldr r0, _080C7E80 @ =gUnknown_020387F0 adds r0, r6, r0 ldrb r0, [r0] cmp r0, 0x40 beq _080C7E64 lsls r0, r2, 16 mov r2, r10 lsls r1, r2, 16 asrs r2, r0, 16 cmp r0, r1 blt _080C7E44 mov r1, r9 lsls r0, r1, 16 asrs r0, 16 cmp r2, r0 bgt _080C7E44 lsls r0, r3, 16 mov r2, r8 lsls r1, r2, 16 asrs r2, r0, 16 cmp r0, r1 blt _080C7E44 lsls r0, r7, 16 asrs r0, 16 cmp r2, r0 ble _080C7E64 _080C7E44: ldr r0, _080C7E80 @ =gUnknown_020387F0 adds r5, r6, r0 ldrb r0, [r5] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _080C7E84 @ =gSprites adds r4, r0 adds r0, r4, 0 bl FreeSpriteOamMatrix adds r0, r4, 0 bl DestroySprite movs r0, 0x40 strb r0, [r5] _080C7E64: adds r6, 0x1 _080C7E66: ldr r0, _080C7E88 @ =gUnknown_02038804 ldrb r0, [r0] cmp r6, r0 blt _080C7DF8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C7E7C: .4byte gUnknown_02038800 _080C7E80: .4byte gUnknown_020387F0 _080C7E84: .4byte gSprites _080C7E88: .4byte gUnknown_02038804 thumb_func_end sub_80C7DC0 thumb_func_start sub_80C7E8C sub_80C7E8C: @ 80C7E8C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC lsls r0, 24 lsrs r4, r0, 24 cmp r1, 0x1 bne _080C7EAC ldr r0, _080C7EA8 @ =gUnknown_083D611C mov r10, r0 b _080C7EB8 .align 2, 0 _080C7EA8: .4byte gUnknown_083D611C _080C7EAC: cmp r1, 0x2 beq _080C7EB4 _080C7EB0: movs r0, 0 b _080C7F48 _080C7EB4: ldr r1, _080C7F58 @ =gUnknown_083D60FC mov r10, r1 _080C7EB8: adds r0, r4, 0 bl sub_80C7A08 lsls r0, 24 lsrs r0, 24 str r0, [sp] ldr r0, _080C7F5C @ =gUnknown_02038800 ldr r1, [r0] lsls r0, r4, 3 adds r0, r1 ldrb r2, [r0, 0x4] ldrh r1, [r0] adds r1, 0x7 ldrh r0, [r0, 0x2] adds r0, 0x7 movs r3, 0 lsls r2, 3 str r2, [sp, 0x4] lsls r1, 16 asrs r1, 16 mov r9, r1 lsls r0, 16 asrs r0, 16 mov r8, r0 _080C7EE8: movs r6, 0 ldr r2, [sp] adds r7, r2, r3 lsls r0, r3, 1 adds r5, r7, 0 ldr r1, [sp, 0x4] adds r0, r1 ldr r2, _080C7F60 @ =gUnknown_083D613C adds r4, r0, r2 _080C7EFA: adds r0, r5, 0 cmp r5, 0 bge _080C7F02 adds r0, r7, 0x3 _080C7F02: asrs r0, 2 lsls r0, 2 subs r0, r5, r0 lsls r0, 1 adds r0, r6 lsls r0, 24 lsrs r1, r0, 24 ldrb r0, [r4] cmp r0, 0 beq _080C7F38 lsls r1, 2 add r1, r10 movs r0, 0 ldrsb r0, [r1, r0] add r0, r9 ldrb r1, [r1, 0x1] lsls r1, 24 asrs r1, 24 add r1, r8 str r3, [sp, 0x8] bl MapGridIsImpassableAt lsls r0, 24 lsrs r0, 24 ldr r3, [sp, 0x8] cmp r0, 0x1 beq _080C7EB0 _080C7F38: adds r4, 0x1 adds r6, 0x1 cmp r6, 0x1 ble _080C7EFA adds r3, 0x1 cmp r3, 0x3 ble _080C7EE8 movs r0, 0x1 _080C7F48: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080C7F58: .4byte gUnknown_083D60FC _080C7F5C: .4byte gUnknown_02038800 _080C7F60: .4byte gUnknown_083D613C thumb_func_end sub_80C7E8C thumb_func_start sub_80C7F64 sub_80C7F64: @ 80C7F64 push {r4-r6,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 lsls r4, 24 lsrs r5, r4, 24 lsrs r4, 25 movs r0, 0x1 ands r5, r0 adds r0, r6, 0 bl sub_80C7A08 subs r4, r0 adds r1, r4, 0x4 adds r0, r1, 0 cmp r1, 0 bge _080C7F8A adds r0, r4, 0x7 _080C7F8A: asrs r0, 2 lsls r0, 2 subs r0, r1, r0 ldr r1, _080C7FB0 @ =gUnknown_02038800 ldr r2, [r1] lsls r1, r6, 3 adds r1, r2 ldrb r1, [r1, 0x4] ldr r2, _080C7FB4 @ =gUnknown_083D613C lsls r0, 24 asrs r0, 23 adds r0, r5 lsls r1, 3 adds r0, r1 adds r0, r2 ldrb r0, [r0] pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080C7FB0: .4byte gUnknown_02038800 _080C7FB4: .4byte gUnknown_083D613C thumb_func_end sub_80C7F64 thumb_func_start sub_80C7FB8 sub_80C7FB8: @ 80C7FB8 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 ldr r0, _080C7FE4 @ =gUnknown_020387F0 adds r2, r3, r0 ldrb r0, [r2] cmp r0, 0x40 beq _080C7FDC lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _080C7FE8 @ =gSprites adds r4, r0 strh r1, [r4, 0x30] adds r0, r3, 0 bl sub_80C7A08 strh r0, [r4, 0x32] _080C7FDC: pop {r4} pop {r0} bx r0 .align 2, 0 _080C7FE4: .4byte gUnknown_020387F0 _080C7FE8: .4byte gSprites thumb_func_end sub_80C7FB8 thumb_func_start sub_80C7FEC sub_80C7FEC: @ 80C7FEC push {lr} lsls r0, 24 lsrs r0, 24 adds r3, r0, 0 lsls r1, 16 lsrs r1, 16 lsls r2, 16 lsrs r2, 16 cmp r0, 0x2 bne _080C8008 ldr r3, _080C8004 @ =gUnknown_083D60BC b _080C802A .align 2, 0 _080C8004: .4byte gUnknown_083D60BC _080C8008: cmp r0, 0x1 bne _080C8014 ldr r3, _080C8010 @ =gUnknown_083D60CC b _080C802A .align 2, 0 _080C8010: .4byte gUnknown_083D60CC _080C8014: cmp r0, 0x3 bne _080C8020 ldr r3, _080C801C @ =gUnknown_083D60DC b _080C802A .align 2, 0 _080C801C: .4byte gUnknown_083D60DC _080C8020: cmp r3, 0x4 beq _080C8028 movs r0, 0xFF b _080C8038 _080C8028: ldr r3, _080C803C @ =gUnknown_083D60EC _080C802A: lsls r0, r2, 16 lsls r1, 16 asrs r1, 16 asrs r0, 14 adds r0, r1 adds r0, r3, r0 ldrb r0, [r0] _080C8038: pop {r1} bx r1 .align 2, 0 _080C803C: .4byte gUnknown_083D60EC thumb_func_end sub_80C7FEC thumb_func_start sub_80C8040 sub_80C8040: @ 80C8040 push {lr} bl GetCurrentMapRotatingGatePuzzleType cmp r0, 0 beq _080C8052 bl sub_80C7A80 bl sub_80C79CC _080C8052: pop {r0} bx r0 thumb_func_end sub_80C8040 thumb_func_start RotatingGatePuzzleCameraUpdate RotatingGatePuzzleCameraUpdate: @ 80C8058 push {r4,r5,lr} lsls r0, 16 lsrs r4, r0, 16 lsls r1, 16 lsrs r5, r1, 16 bl GetCurrentMapRotatingGatePuzzleType cmp r0, 0 beq _080C807A lsls r0, r4, 16 asrs r0, 16 lsls r1, r5, 16 asrs r1, 16 bl sub_80C7ADC bl sub_80C7DC0 _080C807A: pop {r4,r5} pop {r0} bx r0 thumb_func_end RotatingGatePuzzleCameraUpdate thumb_func_start sub_80C8080 sub_80C8080: @ 80C8080 push {lr} bl GetCurrentMapRotatingGatePuzzleType cmp r0, 0 beq _080C809A bl LoadRotatingGatePics bl sub_80C7A80 movs r0, 0 movs r1, 0 bl sub_80C7ADC _080C809A: pop {r0} bx r0 thumb_func_end sub_80C8080 thumb_func_start CheckForRotatingGatePuzzleCollision CheckForRotatingGatePuzzleCollision: @ 80C80A0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r1, 16 lsrs r4, r1, 16 lsls r2, 16 lsrs r2, 16 mov r8, r2 bl GetCurrentMapRotatingGatePuzzleType cmp r0, 0 bne _080C80D4 b _080C8172 _080C80C2: adds r0, r4, 0 adds r1, r5, 0 bl sub_80C7FB8 adds r0, r4, 0 adds r1, r5, 0 bl sub_80C7A44 b _080C8172 _080C80D4: movs r6, 0 ldr r0, _080C8160 @ =gUnknown_02038804 ldrb r0, [r0] cmp r6, r0 bge _080C8172 lsls r0, r4, 16 asrs r7, r0, 16 _080C80E2: ldr r0, _080C8164 @ =gUnknown_02038800 ldr r1, [r0] lsls r0, r6, 3 adds r0, r1 ldrh r1, [r0] adds r1, 0x7 ldrh r0, [r0, 0x2] adds r0, 0x7 lsls r0, 16 lsrs r2, r0, 16 lsls r1, 16 asrs r4, r1, 16 subs r0, r4, 0x2 cmp r0, r7 bgt _080C8168 adds r0, r4, 0x1 cmp r7, r0 bgt _080C8168 lsls r0, r2, 16 asrs r3, r0, 16 subs r1, r3, 0x2 mov r2, r8 lsls r0, r2, 16 asrs r2, r0, 16 cmp r1, r2 bgt _080C8168 adds r0, r3, 0x1 cmp r2, r0 bgt _080C8168 subs r1, r7, r4 adds r1, 0x2 subs r2, r3 adds r2, 0x2 lsls r1, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 mov r0, r9 bl sub_80C7FEC lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _080C8168 lsrs r5, r0, 4 movs r1, 0xF ands r1, r0 lsls r0, r6, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_80C7F64 cmp r0, 0 beq _080C8168 adds r0, r4, 0 adds r1, r5, 0 bl sub_80C7E8C cmp r0, 0 bne _080C80C2 movs r0, 0x1 b _080C8174 .align 2, 0 _080C8160: .4byte gUnknown_02038804 _080C8164: .4byte gUnknown_02038800 _080C8168: adds r6, 0x1 ldr r0, _080C8180 @ =gUnknown_02038804 ldrb r0, [r0] cmp r6, r0 blt _080C80E2 _080C8172: movs r0, 0 _080C8174: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080C8180: .4byte gUnknown_02038804 thumb_func_end CheckForRotatingGatePuzzleCollision thumb_func_start GetSafariZoneFlag GetSafariZoneFlag: @ 80C8184 push {lr} ldr r0, _080C8194 @ =0x0000082c bl FlagGet lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _080C8194: .4byte 0x0000082c thumb_func_end GetSafariZoneFlag thumb_func_start SetSafariZoneFlag SetSafariZoneFlag: @ 80C8198 push {lr} ldr r0, _080C81A4 @ =0x0000082c bl FlagSet pop {r0} bx r0 .align 2, 0 _080C81A4: .4byte 0x0000082c thumb_func_end SetSafariZoneFlag thumb_func_start ResetSafariZoneFlag ResetSafariZoneFlag: @ 80C81A8 push {lr} ldr r0, _080C81B4 @ =0x0000082c bl FlagReset pop {r0} bx r0 .align 2, 0 _080C81B4: .4byte 0x0000082c thumb_func_end ResetSafariZoneFlag thumb_func_start sub_80C81B8 sub_80C81B8: @ 80C81B8 push {lr} movs r0, 0x11 bl sav12_xor_increment bl SetSafariZoneFlag bl sub_80C82D8 ldr r1, _080C81DC @ =gUnknown_02038808 movs r0, 0x1E strb r0, [r1] ldr r1, _080C81E0 @ =gUnknown_0203880A movs r2, 0xFA lsls r2, 1 adds r0, r2, 0 strh r0, [r1] pop {r0} bx r0 .align 2, 0 _080C81DC: .4byte gUnknown_02038808 _080C81E0: .4byte gUnknown_0203880A thumb_func_end sub_80C81B8 thumb_func_start sub_80C81E4 sub_80C81E4: @ 80C81E4 push {lr} bl ResetSafariZoneFlag bl sub_80C82D8 ldr r1, _080C8200 @ =gUnknown_02038808 movs r0, 0 strb r0, [r1] ldr r1, _080C8204 @ =gUnknown_0203880A movs r0, 0 strh r0, [r1] pop {r0} bx r0 .align 2, 0 _080C8200: .4byte gUnknown_02038808 _080C8204: .4byte gUnknown_0203880A thumb_func_end sub_80C81E4 thumb_func_start safari_step safari_step: @ 80C8208 push {lr} bl GetSafariZoneFlag cmp r0, 0 beq _080C8224 bl sub_80C8508 ldr r1, _080C8228 @ =gUnknown_0203880A ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] lsls r0, 16 cmp r0, 0 beq _080C822C _080C8224: movs r0, 0 b _080C8234 .align 2, 0 _080C8228: .4byte gUnknown_0203880A _080C822C: ldr r0, _080C8238 @ =gUnknown_081C3448 bl ScriptContext1_SetupScript movs r0, 0x1 _080C8234: pop {r1} bx r1 .align 2, 0 _080C8238: .4byte gUnknown_081C3448 thumb_func_end safari_step thumb_func_start sub_80C823C sub_80C823C: @ 80C823C push {lr} ldr r0, _080C8248 @ =gUnknown_081C342D bl ScriptContext1_SetupScript pop {r0} bx r0 .align 2, 0 _080C8248: .4byte gUnknown_081C342D thumb_func_end sub_80C823C thumb_func_start sub_80C824C sub_80C824C: @ 80C824C push {lr} ldr r0, _080C8260 @ =gUnknown_02038808 ldrb r0, [r0] cmp r0, 0 beq _080C8268 ldr r0, _080C8264 @ =c2_exit_to_overworld_2_switch bl SetMainCallback2 b _080C82B0 .align 2, 0 _080C8260: .4byte gUnknown_02038808 _080C8264: .4byte c2_exit_to_overworld_2_switch _080C8268: ldr r0, _080C8288 @ =gUnknown_02024D26 ldrb r0, [r0] cmp r0, 0x8 bne _080C829C ldr r0, _080C828C @ =gUnknown_081C340A bl ScriptContext2_RunNewScript bl warp_in ldr r1, _080C8290 @ =gUnknown_0300485C ldr r0, _080C8294 @ =sub_8080E44 str r0, [r1] ldr r0, _080C8298 @ =CB2_LoadMap bl SetMainCallback2 b _080C82B0 .align 2, 0 _080C8288: .4byte gUnknown_02024D26 _080C828C: .4byte gUnknown_081C340A _080C8290: .4byte gUnknown_0300485C _080C8294: .4byte sub_8080E44 _080C8298: .4byte CB2_LoadMap _080C829C: cmp r0, 0x7 bne _080C82B0 ldr r0, _080C82B4 @ =gUnknown_081C3459 bl ScriptContext1_SetupScript bl ScriptContext1_Stop ldr r0, _080C82B8 @ =c2_exit_to_overworld_1_continue_scripts_restart_music bl SetMainCallback2 _080C82B0: pop {r0} bx r0 .align 2, 0 _080C82B4: .4byte gUnknown_081C3459 _080C82B8: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music thumb_func_end sub_80C824C thumb_func_start sub_80C82BC sub_80C82BC: @ 80C82BC push {lr} lsls r0, 24 lsrs r0, 20 ldr r1, _080C82D4 @ =gUnknown_0203880C adds r0, r1 movs r1, 0 movs r2, 0x10 bl memset pop {r0} bx r0 .align 2, 0 _080C82D4: .4byte gUnknown_0203880C thumb_func_end sub_80C82BC thumb_func_start sub_80C82D8 sub_80C82D8: @ 80C82D8 push {lr} ldr r0, _080C82E8 @ =gUnknown_0203880C movs r1, 0 movs r2, 0xA0 bl memset pop {r0} bx r0 .align 2, 0 _080C82E8: .4byte gUnknown_0203880C thumb_func_end sub_80C82D8 thumb_func_start sub_80C82EC sub_80C82EC: @ 80C82EC push {r4-r6,lr} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer movs r3, 0 adds r5, r4, 0 ldr r4, _080C8344 @ =gSaveBlock1 _080C8302: ldr r1, _080C8348 @ =gUnknown_0203880C lsls r0, r3, 4 adds r2, r0, r1 movs r1, 0x5 ldrsb r1, [r4, r1] movs r0, 0x4 ldrsb r0, [r2, r0] cmp r1, r0 bne _080C8358 mov r0, sp movs r6, 0 ldrsh r1, [r2, r6] movs r6, 0 ldrsh r0, [r0, r6] cmp r1, r0 bne _080C8358 movs r0, 0x2 ldrsh r1, [r2, r0] movs r6, 0 ldrsh r0, [r5, r6] cmp r1, r0 bne _080C8358 ldr r0, _080C834C @ =gScriptResult strh r3, [r0] ldr r1, _080C8350 @ =gUnknown_083F7EB8 ldrb r0, [r2, 0x8] lsls r0, 2 adds r0, r1 ldr r1, [r0] ldr r0, _080C8354 @ =gStringVar1 bl StringCopy b _080C836A .align 2, 0 _080C8344: .4byte gSaveBlock1 _080C8348: .4byte gUnknown_0203880C _080C834C: .4byte gScriptResult _080C8350: .4byte gUnknown_083F7EB8 _080C8354: .4byte gStringVar1 _080C8358: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x9 bls _080C8302 ldr r1, _080C8374 @ =gScriptResult ldr r2, _080C8378 @ =0x0000ffff adds r0, r2, 0 strh r0, [r1] _080C836A: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C8374: .4byte gScriptResult _080C8378: .4byte 0x0000ffff thumb_func_end sub_80C82EC thumb_func_start sub_80C837C sub_80C837C: @ 80C837C push {r4-r7,lr} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl PlayerGetDestCoords movs r5, 0 adds r6, r4, 0 ldr r0, _080C83E8 @ =gSaveBlock1 movs r7, 0x5 ldrsb r7, [r0, r7] mov r4, sp ldr r0, _080C83EC @ =gUnknown_0203880C mov r12, r0 _080C839C: lsls r0, r5, 4 mov r1, r12 adds r2, r0, r1 movs r0, 0x4 ldrsb r0, [r2, r0] cmp r7, r0 bne _080C83F4 ldrh r0, [r4] ldrh r1, [r2] subs r0, r1 strh r0, [r4] adds r3, r6, 0 ldrh r0, [r3] ldrh r1, [r2, 0x2] subs r0, r1 strh r0, [r3] movs r2, 0 ldrsh r0, [r4, r2] cmp r0, 0 bge _080C83C8 negs r0, r0 strh r0, [r4] _080C83C8: movs r2, 0 ldrsh r0, [r3, r2] cmp r0, 0 bge _080C83D4 negs r0, r0 strh r0, [r3] _080C83D4: movs r2, 0 ldrsh r0, [r4, r2] movs r2, 0 ldrsh r1, [r6, r2] adds r0, r1 cmp r0, 0x5 bgt _080C83F4 ldr r0, _080C83F0 @ =gScriptResult strh r5, [r0] b _080C8406 .align 2, 0 _080C83E8: .4byte gSaveBlock1 _080C83EC: .4byte gUnknown_0203880C _080C83F0: .4byte gScriptResult _080C83F4: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x9 bls _080C839C ldr r1, _080C8410 @ =gScriptResult ldr r2, _080C8414 @ =0x0000ffff adds r0, r2, 0 strh r0, [r1] _080C8406: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C8410: .4byte gScriptResult _080C8414: .4byte 0x0000ffff thumb_func_end sub_80C837C thumb_func_start unref_sub_80C8418 unref_sub_80C8418: @ 80C8418 push {lr} bl sub_80C82EC ldr r2, _080C8434 @ =gScriptResult ldrh r1, [r2] ldr r0, _080C8438 @ =0x0000ffff cmp r1, r0 beq _080C8440 adds r0, r1, 0 lsls r0, 4 ldr r1, _080C843C @ =gUnknown_02038814 adds r0, r1 b _080C8442 .align 2, 0 _080C8434: .4byte gScriptResult _080C8438: .4byte 0x0000ffff _080C843C: .4byte gUnknown_02038814 _080C8440: movs r0, 0 _080C8442: pop {r1} bx r1 thumb_func_end unref_sub_80C8418 thumb_func_start sub_80C8448 sub_80C8448: @ 80C8448 push {lr} bl sub_80C837C ldr r2, _080C8464 @ =gScriptResult ldrh r1, [r2] ldr r0, _080C8468 @ =0x0000ffff cmp r1, r0 beq _080C8470 adds r0, r1, 0 lsls r0, 4 ldr r1, _080C846C @ =gUnknown_02038814 adds r0, r1 b _080C8472 .align 2, 0 _080C8464: .4byte gScriptResult _080C8468: .4byte 0x0000ffff _080C846C: .4byte gUnknown_02038814 _080C8470: movs r0, 0 _080C8472: pop {r1} bx r1 thumb_func_end sub_80C8448 thumb_func_start sub_80C8478 sub_80C8478: @ 80C8478 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 lsls r0, 24 movs r2, 0 ldr r3, _080C84E8 @ =gUnknown_0203880C mov r6, sp adds r6, 0x2 ldr r7, _080C84EC @ =gSaveBlock1 movs r1, 0x8 adds r1, r3 mov r9, r1 movs r4, 0xFF lsls r4, 3 adds r1, r7, r4 lsrs r0, 21 adds r0, r1 mov r8, r0 _080C84A0: lsls r5, r2, 4 adds r4, r5, r3 movs r0, 0x4 ldrsb r0, [r4, r0] cmp r0, 0 bne _080C84F0 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 bne _080C84F0 movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, 0 bne _080C84F0 mov r0, sp adds r1, r6, 0 bl GetXYCoordsOneStepInFrontOfPlayer ldrb r0, [r7, 0x5] strb r0, [r4, 0x4] mov r3, r9 adds r2, r5, r3 mov r3, r8 ldr r0, [r3] ldr r1, [r3, 0x4] str r0, [r2] str r1, [r2, 0x4] movs r0, 0x64 strb r0, [r4, 0x5] mov r0, sp ldrh r0, [r0] strh r0, [r4] ldrh r0, [r6] strh r0, [r4, 0x2] b _080C84FA .align 2, 0 _080C84E8: .4byte gUnknown_0203880C _080C84EC: .4byte gSaveBlock1 _080C84F0: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x9 bls _080C84A0 _080C84FA: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80C8478 thumb_func_start sub_80C8508 sub_80C8508: @ 80C8508 push {r4,r5,lr} movs r4, 0 ldr r5, _080C8538 @ =gUnknown_0203880C _080C850E: lsls r0, r4, 4 adds r1, r0, r5 ldrb r0, [r1, 0x5] cmp r0, 0 beq _080C8528 subs r0, 0x1 strb r0, [r1, 0x5] lsls r0, 24 cmp r0, 0 bne _080C8528 adds r0, r4, 0 bl sub_80C82BC _080C8528: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x9 bls _080C850E pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C8538: .4byte gUnknown_0203880C thumb_func_end sub_80C8508 thumb_func_start unref_sub_80C853C unref_sub_80C853C: @ 80C853C push {lr} bl sub_80C82EC ldr r3, _080C8564 @ =gScriptResult ldrh r1, [r3] ldr r0, _080C8568 @ =0x0000ffff cmp r1, r0 beq _080C8574 ldr r0, _080C856C @ =gStringVar2 ldr r2, _080C8570 @ =gUnknown_0203880C lsls r1, 4 adds r1, r2 ldrb r1, [r1, 0x5] movs r2, 0x2 movs r3, 0x3 bl ConvertIntToDecimalStringN movs r0, 0x1 b _080C8576 .align 2, 0 _080C8564: .4byte gScriptResult _080C8568: .4byte 0x0000ffff _080C856C: .4byte gStringVar2 _080C8570: .4byte gUnknown_0203880C _080C8574: movs r0, 0 _080C8576: pop {r1} bx r1 thumb_func_end unref_sub_80C853C thumb_func_start sub_80C857C sub_80C857C: @ 80C857C push {r4,r5,lr} adds r2, r0, 0 lsls r4, r1, 16 lsrs r4, 16 ldr r5, _080C85A8 @ =0x0201e000 adds r0, r5, 0 adds r1, r2, 0 adds r2, r4, 0 bl memcpy bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 adds r1, r5, 0 adds r2, r4, 0 bl SendBlock pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C85A8: .4byte 0x0201e000 thumb_func_end sub_80C857C thumb_func_start sub_80C85AC sub_80C85AC: @ 80C85AC push {r4,lr} lsls r0, 24 lsrs r0, 24 movs r1, 0x80 lsls r1, 17 lsls r1, r0 lsrs r4, r1, 24 bl GetBlockRecievedStatus adds r1, r4, 0 ands r1, r0 cmp r1, 0 beq _080C85D0 adds r0, r4, 0 bl ResetBlockReceivedFlag movs r0, 0x1 b _080C85D2 _080C85D0: movs r0, 0 _080C85D2: pop {r4} pop {r1} bx r1 thumb_func_end sub_80C85AC thumb_func_start sub_80C85D8 sub_80C85D8: @ 80C85D8 push {r4,lr} movs r4, 0 _080C85DC: bl GetBlockRecievedStatus lsls r0, 24 lsrs r0, 24 asrs r0, r4 movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _080C85F2 movs r0, 0 b _080C85FE _080C85F2: adds r4, 0x1 cmp r4, 0x3 ble _080C85DC bl ResetBlockReceivedFlags movs r0, 0x1 _080C85FE: pop {r4} pop {r1} bx r1 thumb_func_end sub_80C85D8 thumb_func_start sub_80C8604 sub_80C8604: @ 80C8604 push {r4-r6,lr} lsls r0, 24 lsrs r2, r0, 24 movs r1, 0 ldr r5, _080C8638 @ =gTasks ldr r6, _080C863C @ =sub_80C8644 ldr r4, _080C8640 @ =gBlockRecvBuffer movs r3, 0xFF _080C8614: lsls r0, r1, 8 adds r0, r4 strh r3, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x3 bls _080C8614 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r5 movs r1, 0 strh r1, [r0, 0x8] str r6, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C8638: .4byte gTasks _080C863C: .4byte sub_80C8644 _080C8640: .4byte gBlockRecvBuffer thumb_func_end sub_80C8604 thumb_func_start sub_80C8644 sub_80C8644: @ 80C8644 lsls r0, 24 lsrs r0, 24 ldr r2, _080C8658 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _080C865C @ =sub_80C8660 str r0, [r1] bx lr .align 2, 0 _080C8658: .4byte gTasks _080C865C: .4byte sub_80C8660 thumb_func_end sub_80C8644 thumb_func_start sub_80C8660 sub_80C8660: @ 80C8660 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080C8694 @ =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 beq _080C868E bl GetMultiplayerId ldr r1, _080C8698 @ =gUnknown_02038695 strb r0, [r1] bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bne _080C868E ldr r1, _080C869C @ =gUnknown_0203869A movs r0, 0x1 strb r0, [r1] adds r0, r4, 0 bl SwitchTaskToFollowupFunc _080C868E: pop {r4} pop {r0} bx r0 .align 2, 0 _080C8694: .4byte gReceivedRemoteLinkPlayers _080C8698: .4byte gUnknown_02038695 _080C869C: .4byte gUnknown_0203869A thumb_func_end sub_80C8660 thumb_func_start sub_80C86A0 sub_80C86A0: @ 80C86A0 push {r4,r5,lr} adds r4, r0, 0 movs r5, 0x2 ldrb r0, [r4] cmp r0, 0xFC bne _080C86B6 ldrb r0, [r4, 0x1] cmp r0, 0x15 bne _080C86B6 movs r0, 0x2 b _080C872C _080C86B6: adds r0, r4, 0 bl StringLength lsls r0, 16 lsrs r0, 16 cmp r0, 0x5 bhi _080C872A ldrb r0, [r4] cmp r0, 0xFF beq _080C872A _080C86CA: ldrb r1, [r4] adds r0, r1, 0 adds r0, 0x45 lsls r0, 24 lsrs r0, 24 cmp r0, 0x33 bls _080C871E adds r0, r1, 0 adds r0, 0x5F lsls r0, 24 lsrs r0, 24 cmp r0, 0x9 bls _080C871E adds r0, r1, 0 cmp r0, 0 beq _080C871E cmp r0, 0xAD beq _080C871E cmp r0, 0xB8 beq _080C871E cmp r0, 0xAB beq _080C871E cmp r0, 0xAC beq _080C871E cmp r0, 0xB5 beq _080C871E cmp r0, 0xB6 beq _080C871E cmp r0, 0xBA beq _080C871E cmp r0, 0xAE beq _080C871E cmp r0, 0xB0 beq _080C871E cmp r0, 0xB1 beq _080C871E cmp r0, 0xB2 beq _080C871E cmp r0, 0xB3 beq _080C871E cmp r0, 0xB1 bne _080C8728 _080C871E: adds r4, 0x1 ldrb r0, [r4] cmp r0, 0xFF bne _080C86CA b _080C872A _080C8728: movs r5, 0x1 _080C872A: adds r0, r5, 0 _080C872C: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80C86A0 thumb_func_start sub_80C8734 sub_80C8734: @ 80C8734 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r1, _080C8768 @ =gTasks lsls r5, r0, 2 adds r0, r5, r0 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 beq _080C876C cmp r0, 0x1 beq _080C87D0 movs r0, 0 strh r0, [r4, 0x8] mov r0, r9 bl SwitchTaskToFollowupFunc b _080C8896 .align 2, 0 _080C8768: .4byte gTasks _080C876C: bl GetMultiplayerId lsls r0, 24 cmp r0, 0 bne _080C87A8 bl sub_8007ECC lsls r0, 24 cmp r0, 0 bne _080C8782 b _080C8896 _080C8782: ldr r0, _080C879C @ =gBlockSendBuffer ldr r1, _080C87A0 @ =gUnknown_02038695 ldrb r1, [r1] lsls r1, 6 ldr r2, _080C87A4 @ =gUnknown_02038570 adds r1, r2 movs r2, 0x40 bl memcpy movs r0, 0x2 bl sub_8007E9C b _080C87BA .align 2, 0 _080C879C: .4byte gBlockSendBuffer _080C87A0: .4byte gUnknown_02038695 _080C87A4: .4byte gUnknown_02038570 _080C87A8: ldr r0, _080C87C4 @ =gBlockSendBuffer ldr r1, _080C87C8 @ =gUnknown_02038695 ldrb r1, [r1] lsls r1, 6 ldr r2, _080C87CC @ =gUnknown_02038570 adds r1, r2 movs r2, 0x40 bl memcpy _080C87BA: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080C8896 .align 2, 0 _080C87C4: .4byte gBlockSendBuffer _080C87C8: .4byte gUnknown_02038695 _080C87CC: .4byte gUnknown_02038570 _080C87D0: bl sub_80C85D8 lsls r0, 24 cmp r0, 0 beq _080C8896 movs r7, 0 str r5, [sp] ldr r0, _080C8818 @ =gUnknown_02038570 ldr r6, _080C881C @ =gLinkPlayers movs r5, 0 mov r10, r0 movs r2, 0xFF mov r8, r2 _080C87EA: lsls r1, r7, 8 ldr r0, _080C8820 @ =gBlockRecvBuffer adds r1, r0 mov r0, r10 movs r2, 0x40 bl memcpy ldr r0, _080C8824 @ =gUnknown_02038572 adds r4, r5, r0 ldrh r0, [r6, 0x1A] cmp r0, 0x1 bne _080C8828 adds r0, r4, 0 bl sub_80C86A0 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl ConvertInternationalString b _080C883E .align 2, 0 _080C8818: .4byte gUnknown_02038570 _080C881C: .4byte gLinkPlayers _080C8820: .4byte gBlockRecvBuffer _080C8824: .4byte gUnknown_02038572 _080C8828: ldrb r0, [r4, 0xA] cmp r0, 0xFC bne _080C8838 adds r0, r4, 0 movs r1, 0x1 bl ConvertInternationalString b _080C883E _080C8838: strb r0, [r4, 0x5] mov r1, r8 strb r1, [r4, 0xA] _080C883E: ldr r0, _080C886C @ =gUnknown_0203857D adds r4, r5, r0 ldrh r0, [r6, 0x1A] cmp r0, 0x1 bne _080C8870 mov r2, r8 strb r2, [r4, 0x7] ldrb r0, [r4, 0x4] strb r0, [r4, 0x6] ldrb r0, [r4, 0x3] strb r0, [r4, 0x5] ldrb r0, [r4, 0x2] strb r0, [r4, 0x4] ldrb r0, [r4, 0x1] strb r0, [r4, 0x3] ldrb r0, [r4] strb r0, [r4, 0x2] movs r0, 0x15 strb r0, [r4, 0x1] movs r0, 0xFC strb r0, [r4] b _080C8878 .align 2, 0 _080C886C: .4byte gUnknown_0203857D _080C8870: ldrb r0, [r4, 0x7] strb r0, [r4, 0x5] mov r0, r8 strb r0, [r4, 0x7] _080C8878: adds r6, 0x1C adds r5, 0x40 movs r1, 0x40 add r10, r1 adds r7, 0x1 cmp r7, 0x3 ble _080C87EA ldr r0, _080C88A8 @ =gTasks ldr r1, [sp] add r1, r9 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _080C8896: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C88A8: .4byte gTasks thumb_func_end sub_80C8734 thumb_func_start sub_80C88AC sub_80C88AC: @ 80C88AC push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080C88D4 @ =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r5, r0, r1 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0 beq _080C88D8 cmp r0, 0x1 beq _080C88FC movs r0, 0 strh r0, [r5, 0x8] adds r0, r2, 0 bl SwitchTaskToFollowupFunc b _080C8924 .align 2, 0 _080C88D4: .4byte gTasks _080C88D8: bl GetMultiplayerId lsls r0, 24 cmp r0, 0 bne _080C891E bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C8924 ldr r0, _080C88F8 @ =gRngValue movs r1, 0x4 bl sub_80C857C b _080C891E .align 2, 0 _080C88F8: .4byte gRngValue _080C88FC: movs r0, 0 bl sub_80C85AC lsls r0, 24 cmp r0, 0 beq _080C8924 ldr r0, _080C892C @ =gRngValue ldr r4, _080C8930 @ =gBlockRecvBuffer adds r1, r4, 0 movs r2, 0x4 bl memcpy ldr r0, _080C8934 @ =gUnknown_03005D28 adds r1, r4, 0 movs r2, 0x4 bl memcpy _080C891E: ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] _080C8924: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C892C: .4byte gRngValue _080C8930: .4byte gBlockRecvBuffer _080C8934: .4byte gUnknown_03005D28 thumb_func_end sub_80C88AC thumb_func_start sub_80C8938 sub_80C8938: @ 80C8938 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080C8968 @ =gTasks mov r8, r0 lsls r6, r5, 2 adds r0, r6, r5 lsls r7, r0, 3 mov r1, r8 adds r4, r7, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 beq _080C896C cmp r0, 0x1 beq _080C8998 movs r0, 0 strh r0, [r4, 0x8] adds r0, r5, 0 bl SwitchTaskToFollowupFunc b _080C89CE .align 2, 0 _080C8968: .4byte gTasks _080C896C: ldr r1, _080C8994 @ =gBlockSendBuffer ldrh r0, [r4, 0x1A] strb r0, [r1] bl GetMultiplayerId lsls r0, 24 cmp r0, 0 bne _080C898C bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C89CE movs r0, 0x2 bl sub_8007E9C _080C898C: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080C89CE .align 2, 0 _080C8994: .4byte gBlockSendBuffer _080C8998: bl sub_80C85D8 lsls r0, 24 cmp r0, 0 beq _080C89CE movs r3, 0 mov r12, r8 adds r1, r6, 0 ldr r4, _080C89D8 @ =gBlockRecvBuffer mov r0, r12 adds r0, 0xA adds r2, r7, r0 movs r6, 0x80 lsls r6, 1 _080C89B4: ldrh r0, [r4] strh r0, [r2] adds r4, r6 adds r2, 0x2 adds r3, 0x1 cmp r3, 0x3 ble _080C89B4 adds r1, r5 lsls r1, 3 add r1, r12 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _080C89CE: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C89D8: .4byte gBlockRecvBuffer thumb_func_end sub_80C8938 thumb_func_start sub_80C89DC sub_80C89DC: @ 80C89DC push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080C8A04 @ =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 beq _080C8A08 cmp r0, 0x1 beq _080C8A20 movs r0, 0 strh r0, [r4, 0x8] adds r0, r2, 0 bl SwitchTaskToFollowupFunc b _080C8A30 .align 2, 0 _080C8A04: .4byte gTasks _080C8A08: bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C8A30 ldr r0, _080C8A1C @ =gUnknown_02038695 movs r1, 0x1 bl sub_80C857C b _080C8A2A .align 2, 0 _080C8A1C: .4byte gUnknown_02038695 _080C8A20: bl sub_80C85D8 lsls r0, 24 cmp r0, 0 beq _080C8A30 _080C8A2A: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080C8A30: pop {r4} pop {r0} bx r0 thumb_func_end sub_80C89DC thumb_func_start sub_80C8A38 sub_80C8A38: @ 80C8A38 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r7, _080C8A60 @ =gTasks lsls r6, r5, 2 adds r0, r6, r5 lsls r0, 3 adds r4, r0, r7 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 beq _080C8A64 cmp r0, 0x1 beq _080C8A94 movs r0, 0 strh r0, [r4, 0x8] adds r0, r5, 0 bl SwitchTaskToFollowupFunc b _080C8AC2 .align 2, 0 _080C8A60: .4byte gTasks _080C8A64: bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C8AC2 ldr r0, _080C8A8C @ =gUnknown_02038695 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r1, _080C8A90 @ =0x02019266 adds r0, r1 movs r1, 0x2 bl sub_80C857C ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080C8AC2 .align 2, 0 _080C8A8C: .4byte gUnknown_02038695 _080C8A90: .4byte 0x02019266 _080C8A94: bl sub_80C85D8 lsls r0, 24 cmp r0, 0 beq _080C8AC2 ldr r1, _080C8AC8 @ =gBlockRecvBuffer ldr r3, _080C8ACC @ =0x02019266 movs r4, 0x80 lsls r4, 1 movs r2, 0x3 _080C8AA8: ldrh r0, [r1] strh r0, [r3] adds r1, r4 adds r3, 0x1C subs r2, 0x1 cmp r2, 0 bge _080C8AA8 adds r1, r6, r5 lsls r1, 3 adds r1, r7 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _080C8AC2: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C8AC8: .4byte gBlockRecvBuffer _080C8ACC: .4byte 0x02019266 thumb_func_end sub_80C8A38 thumb_func_start sub_80C8AD0 sub_80C8AD0: @ 80C8AD0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080C8AF8 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r1 movs r3, 0x8 ldrsh r0, [r2, r3] adds r3, r1, 0 cmp r0, 0xB bls _080C8AEC b _080C8C70 _080C8AEC: lsls r0, 2 ldr r1, _080C8AFC @ =_080C8B00 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C8AF8: .4byte gTasks _080C8AFC: .4byte _080C8B00 .align 2, 0 _080C8B00: .4byte _080C8B30 .4byte _080C8B4C .4byte _080C8B74 .4byte _080C8B98 .4byte _080C8BB0 .4byte _080C8B74 .4byte _080C8BD8 .4byte _080C8BF0 .4byte _080C8B74 .4byte _080C8C18 .4byte _080C8C30 .4byte _080C8B74 _080C8B30: bl sub_8007ECC lsls r0, 24 cmp r0, 0 bne _080C8B3C b _080C8C7A _080C8B3C: ldr r0, _080C8B48 @ =gUnknown_02038678 movs r1, 0x8 bl sub_80C857C b _080C8C4C .align 2, 0 _080C8B48: .4byte gUnknown_02038678 _080C8B4C: bl sub_80C85D8 lsls r0, 24 cmp r0, 0 bne _080C8B58 b _080C8C7A _080C8B58: ldr r0, _080C8B68 @ =gUnknown_02038678 ldr r1, _080C8B6C @ =gUnknown_0203869B ldrb r1, [r1] lsls r1, 8 ldr r2, _080C8B70 @ =gBlockRecvBuffer adds r1, r2 movs r2, 0x8 b _080C8C48 .align 2, 0 _080C8B68: .4byte gUnknown_02038678 _080C8B6C: .4byte gUnknown_0203869B _080C8B70: .4byte gBlockRecvBuffer _080C8B74: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r3 ldrh r0, [r2, 0xA] adds r1, r0, 0x1 strh r1, [r2, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0xA bgt _080C8B8C b _080C8C7A _080C8B8C: movs r0, 0 strh r0, [r2, 0xA] ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] b _080C8C7A _080C8B98: bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C8C7A ldr r0, _080C8BAC @ =gUnknown_02038680 movs r1, 0x8 bl sub_80C857C b _080C8C4C .align 2, 0 _080C8BAC: .4byte gUnknown_02038680 _080C8BB0: bl sub_80C85D8 lsls r0, 24 cmp r0, 0 beq _080C8C7A ldr r0, _080C8BCC @ =gUnknown_02038680 ldr r1, _080C8BD0 @ =gUnknown_0203869B ldrb r1, [r1] lsls r1, 8 ldr r2, _080C8BD4 @ =gBlockRecvBuffer adds r1, r2 movs r2, 0x8 b _080C8C48 .align 2, 0 _080C8BCC: .4byte gUnknown_02038680 _080C8BD0: .4byte gUnknown_0203869B _080C8BD4: .4byte gBlockRecvBuffer _080C8BD8: bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C8C7A ldr r0, _080C8BEC @ =gUnknown_02038688 movs r1, 0x8 bl sub_80C857C b _080C8C4C .align 2, 0 _080C8BEC: .4byte gUnknown_02038688 _080C8BF0: bl sub_80C85D8 lsls r0, 24 cmp r0, 0 beq _080C8C7A ldr r0, _080C8C0C @ =gUnknown_02038688 ldr r1, _080C8C10 @ =gUnknown_0203869B ldrb r1, [r1] lsls r1, 8 ldr r2, _080C8C14 @ =gBlockRecvBuffer adds r1, r2 movs r2, 0x8 b _080C8C48 .align 2, 0 _080C8C0C: .4byte gUnknown_02038688 _080C8C10: .4byte gUnknown_0203869B _080C8C14: .4byte gBlockRecvBuffer _080C8C18: bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C8C7A ldr r0, _080C8C2C @ =gUnknown_02038690 movs r1, 0x4 bl sub_80C857C b _080C8C4C .align 2, 0 _080C8C2C: .4byte gUnknown_02038690 _080C8C30: bl sub_80C85D8 lsls r0, 24 cmp r0, 0 beq _080C8C7A ldr r0, _080C8C60 @ =gUnknown_02038690 ldr r1, _080C8C64 @ =gUnknown_0203869B ldrb r1, [r1] lsls r1, 8 ldr r2, _080C8C68 @ =gBlockRecvBuffer adds r1, r2 movs r2, 0x4 _080C8C48: bl memcpy _080C8C4C: ldr r1, _080C8C6C @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] b _080C8C7A .align 2, 0 _080C8C60: .4byte gUnknown_02038690 _080C8C64: .4byte gUnknown_0203869B _080C8C68: .4byte gBlockRecvBuffer _080C8C6C: .4byte gTasks _080C8C70: movs r0, 0 strh r0, [r2, 0x8] adds r0, r4, 0 bl SwitchTaskToFollowupFunc _080C8C7A: pop {r4} pop {r0} bx r0 thumb_func_end sub_80C8AD0 thumb_func_start sub_80C8C80 sub_80C8C80: @ 80C8C80 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080C8CA8 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r1 movs r3, 0x8 ldrsh r0, [r2, r3] adds r3, r1, 0 cmp r0, 0xB bls _080C8C9C b _080C8E0C _080C8C9C: lsls r0, 2 ldr r1, _080C8CAC @ =_080C8CB0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C8CA8: .4byte gTasks _080C8CAC: .4byte _080C8CB0 .align 2, 0 _080C8CB0: .4byte _080C8CE0 .4byte _080C8CFC .4byte _080C8D24 .4byte _080C8D46 .4byte _080C8D60 .4byte _080C8D24 .4byte _080C8D88 .4byte _080C8DA0 .4byte _080C8D24 .4byte _080C8DB4 .4byte _080C8DCC .4byte _080C8D24 _080C8CE0: bl sub_8007ECC lsls r0, 24 cmp r0, 0 bne _080C8CEC b _080C8E16 _080C8CEC: ldr r0, _080C8CF8 @ =0x02019260 movs r1, 0x70 bl sub_80C857C b _080C8DE8 .align 2, 0 _080C8CF8: .4byte 0x02019260 _080C8CFC: bl sub_80C85D8 lsls r0, 24 cmp r0, 0 bne _080C8D08 b _080C8E16 _080C8D08: ldr r0, _080C8D18 @ =0x02019260 ldr r1, _080C8D1C @ =gUnknown_0203869B ldrb r1, [r1] lsls r1, 8 ldr r2, _080C8D20 @ =gBlockRecvBuffer adds r1, r2 movs r2, 0x70 b _080C8DE4 .align 2, 0 _080C8D18: .4byte 0x02019260 _080C8D1C: .4byte gUnknown_0203869B _080C8D20: .4byte gBlockRecvBuffer _080C8D24: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r3 ldrh r0, [r2, 0xA] adds r1, r0, 0x1 strh r1, [r2, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0xA ble _080C8E16 movs r0, 0 strh r0, [r2, 0xA] ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] b _080C8E16 _080C8D46: bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C8E16 ldr r0, _080C8D5C @ =0x020192d0 movs r1, 0x14 bl sub_80C857C b _080C8DE8 .align 2, 0 _080C8D5C: .4byte 0x020192d0 _080C8D60: bl sub_80C85D8 lsls r0, 24 cmp r0, 0 beq _080C8E16 ldr r0, _080C8D7C @ =0x020192d0 ldr r1, _080C8D80 @ =gUnknown_0203869B ldrb r1, [r1] lsls r1, 8 ldr r2, _080C8D84 @ =gBlockRecvBuffer adds r1, r2 movs r2, 0x14 b _080C8DE4 .align 2, 0 _080C8D7C: .4byte 0x020192d0 _080C8D80: .4byte gUnknown_0203869B _080C8D84: .4byte gBlockRecvBuffer _080C8D88: bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C8E16 ldr r0, _080C8D9C @ =0x02019328 movs r1, 0x4 bl sub_80C857C b _080C8DE8 .align 2, 0 _080C8D9C: .4byte 0x02019328 _080C8DA0: bl sub_80C85D8 lsls r0, 24 cmp r0, 0 beq _080C8E16 ldr r0, _080C8DB0 @ =0x02019328 b _080C8DD8 .align 2, 0 _080C8DB0: .4byte 0x02019328 _080C8DB4: bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C8E16 ldr r0, _080C8DC8 @ =gUnknown_02038696 movs r1, 0x4 bl sub_80C857C b _080C8DE8 .align 2, 0 _080C8DC8: .4byte gUnknown_02038696 _080C8DCC: bl sub_80C85D8 lsls r0, 24 cmp r0, 0 beq _080C8E16 ldr r0, _080C8DFC @ =gUnknown_02038696 _080C8DD8: ldr r1, _080C8E00 @ =gUnknown_0203869B ldrb r1, [r1] lsls r1, 8 ldr r2, _080C8E04 @ =gBlockRecvBuffer adds r1, r2 movs r2, 0x4 _080C8DE4: bl memcpy _080C8DE8: ldr r1, _080C8E08 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] b _080C8E16 .align 2, 0 _080C8DFC: .4byte gUnknown_02038696 _080C8E00: .4byte gUnknown_0203869B _080C8E04: .4byte gBlockRecvBuffer _080C8E08: .4byte gTasks _080C8E0C: movs r0, 0 strh r0, [r2, 0x8] adds r0, r4, 0 bl SwitchTaskToFollowupFunc _080C8E16: pop {r4} pop {r0} bx r0 thumb_func_end sub_80C8C80 thumb_func_start sub_80C8E1C sub_80C8E1C: @ 80C8E1C push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080C8E4C @ =gTasks mov r8, r0 lsls r6, r5, 2 adds r0, r6, r5 lsls r7, r0, 3 mov r1, r8 adds r4, r7, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 beq _080C8E50 cmp r0, 0x1 beq _080C8E7C movs r0, 0 strh r0, [r4, 0x8] adds r0, r5, 0 bl SwitchTaskToFollowupFunc b _080C8EAE .align 2, 0 _080C8E4C: .4byte gTasks _080C8E50: ldr r1, _080C8E78 @ =gBlockSendBuffer movs r0, 0x64 strb r0, [r1] bl GetMultiplayerId lsls r0, 24 cmp r0, 0 bne _080C8E70 bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C8EAE movs r0, 0x2 bl sub_8007E9C _080C8E70: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080C8EAE .align 2, 0 _080C8E78: .4byte gBlockSendBuffer _080C8E7C: bl sub_80C85D8 lsls r0, 24 cmp r0, 0 beq _080C8EAE ldr r1, _080C8EB8 @ =gBlockRecvBuffer mov r0, r8 adds r0, 0x12 adds r2, r7, r0 movs r4, 0x80 lsls r4, 1 movs r3, 0x3 _080C8E94: ldrh r0, [r1] strh r0, [r2] adds r1, r4 adds r2, 0x2 subs r3, 0x1 cmp r3, 0 bge _080C8E94 adds r1, r6, r5 lsls r1, 3 add r1, r8 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _080C8EAE: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C8EB8: .4byte gBlockRecvBuffer thumb_func_end sub_80C8E1C thumb_func_start sub_80C8EBC sub_80C8EBC: @ 80C8EBC push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080C8EE4 @ =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 beq _080C8EE8 cmp r0, 0x1 beq _080C8F00 movs r0, 0 strh r0, [r4, 0x8] adds r0, r2, 0 bl SwitchTaskToFollowupFunc b _080C8F22 .align 2, 0 _080C8EE4: .4byte gTasks _080C8EE8: bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C8F22 ldr r0, _080C8EFC @ =gUnknown_02038670 movs r1, 0x8 bl sub_80C857C b _080C8F1C .align 2, 0 _080C8EFC: .4byte gUnknown_02038670 _080C8F00: bl sub_80C85D8 lsls r0, 24 cmp r0, 0 beq _080C8F22 ldr r0, _080C8F28 @ =gUnknown_02038670 ldr r1, _080C8F2C @ =gUnknown_0203869B ldrb r1, [r1] lsls r1, 8 ldr r2, _080C8F30 @ =gBlockRecvBuffer adds r1, r2 movs r2, 0x8 bl memcpy _080C8F1C: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080C8F22: pop {r4} pop {r0} bx r0 .align 2, 0 _080C8F28: .4byte gUnknown_02038670 _080C8F2C: .4byte gUnknown_0203869B _080C8F30: .4byte gBlockRecvBuffer thumb_func_end sub_80C8EBC thumb_func_start sub_80C8F34 sub_80C8F34: @ 80C8F34 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080C8F5C @ =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 beq _080C8F60 cmp r0, 0x1 beq _080C8F78 movs r0, 0 strh r0, [r4, 0x8] adds r0, r2, 0 bl SwitchTaskToFollowupFunc b _080C8F9A .align 2, 0 _080C8F5C: .4byte gTasks _080C8F60: bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C8F9A ldr r0, _080C8F74 @ =gUnknown_02038696 movs r1, 0x4 bl sub_80C857C b _080C8F94 .align 2, 0 _080C8F74: .4byte gUnknown_02038696 _080C8F78: bl sub_80C85D8 lsls r0, 24 cmp r0, 0 beq _080C8F9A ldr r0, _080C8FA0 @ =gUnknown_02038696 ldr r1, _080C8FA4 @ =gUnknown_0203869B ldrb r1, [r1] lsls r1, 8 ldr r2, _080C8FA8 @ =gBlockRecvBuffer adds r1, r2 movs r2, 0x4 bl memcpy _080C8F94: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080C8F9A: pop {r4} pop {r0} bx r0 .align 2, 0 _080C8FA0: .4byte gUnknown_02038696 _080C8FA4: .4byte gUnknown_0203869B _080C8FA8: .4byte gBlockRecvBuffer thumb_func_end sub_80C8F34 thumb_func_start sub_80C8FAC sub_80C8FAC: @ 80C8FAC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080C8FD0 @ =word_203855E ldrh r0, [r1] cmp r0, 0xAF bne _080C8FD8 ldr r1, _080C8FD4 @ =gTasks lsls r2, r4, 2 adds r0, r2, r4 lsls r0, 3 adds r0, r1 ldrh r0, [r0, 0x26] subs r0, 0x1 lsls r0, 24 lsrs r3, r0, 24 b _080C8FE6 .align 2, 0 _080C8FD0: .4byte word_203855E _080C8FD4: .4byte gTasks _080C8FD8: ldrh r0, [r1] bl itemid_get_type subs r0, 0x1 lsls r0, 24 lsrs r3, r0, 24 lsls r2, r4, 2 _080C8FE6: ldr r0, _080C9008 @ =gTasks adds r1, r2, r4 lsls r1, 3 adds r1, r0 ldr r2, _080C900C @ =gUnknown_083D61E4 lsls r0, r3, 2 adds r0, r2 ldr r2, [r0] lsrs r0, r2, 16 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] ldr r0, _080C9010 @ =sub_80A5B00 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _080C9008: .4byte gTasks _080C900C: .4byte gUnknown_083D61E4 _080C9010: .4byte sub_80A5B00 thumb_func_end sub_80C8FAC thumb_func_start unknown_ItemMenu_Confirm unknown_ItemMenu_Confirm: @ 80C9014 push {lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 bl sub_80C8FAC movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 thumb_func_end unknown_ItemMenu_Confirm thumb_func_start sub_80C9038 sub_80C9038: @ 80C9038 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_80C8FAC movs r0, 0x1 movs r1, 0 bl fade_screen pop {r0} bx r0 thumb_func_end sub_80C9038 thumb_func_start SetUpItemUseOnFieldCallback SetUpItemUseOnFieldCallback: @ 80C9050 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080C9078 @ =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 movs r1, 0xC ldrsh r0, [r0, r1] cmp r0, 0x1 beq _080C9084 ldr r1, _080C907C @ =gUnknown_0300485C ldr r0, _080C9080 @ =sub_80A5CC4 str r0, [r1] adds r0, r2, 0 bl unknown_ItemMenu_Confirm b _080C908E .align 2, 0 _080C9078: .4byte gTasks _080C907C: .4byte gUnknown_0300485C _080C9080: .4byte sub_80A5CC4 _080C9084: ldr r0, _080C9094 @ =gUnknown_03005D00 ldr r1, [r0] adds r0, r2, 0 bl _call_via_r1 _080C908E: pop {r0} bx r0 .align 2, 0 _080C9094: .4byte gUnknown_03005D00 thumb_func_end SetUpItemUseOnFieldCallback thumb_func_start sub_80C9098 sub_80C9098: @ 80C9098 push {r4-r6,lr} adds r4, r1, 0 adds r1, r2, 0 lsls r0, 24 lsrs r6, r0, 24 lsls r4, 24 lsrs r4, 24 ldr r5, _080C90CC @ =gStringVar4 adds r0, r5, 0 bl StringExpandPlaceholders cmp r4, 0 bne _080C90D4 movs r0, 0 movs r1, 0xD movs r2, 0xD movs r3, 0x14 bl MenuZeroFillWindowRect ldr r2, _080C90D0 @ =sub_80A5C48 adds r0, r6, 0 adds r1, r5, 0 movs r3, 0x1 bl DisplayItemMessageOnField b _080C90E0 .align 2, 0 _080C90CC: .4byte gStringVar4 _080C90D0: .4byte sub_80A5C48 _080C90D4: ldr r2, _080C90E8 @ =sub_80A5C9C adds r0, r6, 0 adds r1, r5, 0 movs r3, 0 bl DisplayItemMessageOnField _080C90E0: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C90E8: .4byte sub_80A5C9C thumb_func_end sub_80C9098 thumb_func_start DisplayDadsAdviceCannotUseItemMessage DisplayDadsAdviceCannotUseItemMessage: @ 80C90EC push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 ldr r2, _080C9100 @ =gOtherText_DadsAdvice bl sub_80C9098 pop {r0} bx r0 .align 2, 0 _080C9100: .4byte gOtherText_DadsAdvice thumb_func_end DisplayDadsAdviceCannotUseItemMessage thumb_func_start sub_80C9104 sub_80C9104: @ 80C9104 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 ldr r2, _080C9118 @ =gOtherText_CantGetOffBike bl sub_80C9098 pop {r0} bx r0 .align 2, 0 _080C9118: .4byte gOtherText_CantGetOffBike thumb_func_end sub_80C9104 thumb_func_start CheckIfItemIsTMHMOrEvolutionStone CheckIfItemIsTMHMOrEvolutionStone: @ 80C911C push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 bl itemid_get_overworld_function ldr r1, _080C9134 @ =ItemUseOutOfBattle_TMHM cmp r0, r1 bne _080C9138 movs r0, 0x1 b _080C914E .align 2, 0 _080C9134: .4byte ItemUseOutOfBattle_TMHM _080C9138: adds r0, r4, 0 bl itemid_get_overworld_function ldr r1, _080C9148 @ =ItemUseOutOfBattle_EvolutionStone cmp r0, r1 beq _080C914C movs r0, 0 b _080C914E .align 2, 0 _080C9148: .4byte ItemUseOutOfBattle_EvolutionStone _080C914C: movs r0, 0x2 _080C914E: pop {r4} pop {r1} bx r1 thumb_func_end CheckIfItemIsTMHMOrEvolutionStone thumb_func_start sub_80C9154 sub_80C9154: @ 80C9154 push {r4,lr} sub sp, 0x24 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080C9188 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080C9180 mov r1, sp ldr r0, _080C918C @ =word_203855E ldrh r0, [r0] strh r0, [r1, 0x20] ldr r1, _080C9190 @ =sub_80A5D04 mov r0, sp movs r2, 0 bl sub_80F890C adds r0, r4, 0 bl DestroyTask _080C9180: add sp, 0x24 pop {r4} pop {r0} bx r0 .align 2, 0 _080C9188: .4byte gPaletteFade _080C918C: .4byte word_203855E _080C9190: .4byte sub_80A5D04 thumb_func_end sub_80C9154 thumb_func_start ItemUseOutOfBattle_Mail ItemUseOutOfBattle_Mail: @ 80C9194 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _080C91C4 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080C91C8 @ =sub_80C9154 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080C91C4: .4byte gTasks _080C91C8: .4byte sub_80C9154 thumb_func_end ItemUseOutOfBattle_Mail thumb_func_start ItemUseOutOfBattle_Bike ItemUseOutOfBattle_Bike: @ 80C91CC push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl PlayerGetDestCoords mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080C924C @ =0x0000082b bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080C9238 adds r0, r4, 0 bl MetatileBehavior_IsVerticalRail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080C9238 adds r0, r4, 0 bl MetatileBehavior_IsHorizontalRail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080C9238 adds r0, r4, 0 bl MetatileBehavior_IsIsolatedVerticalRail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080C9238 adds r0, r4, 0 bl MetatileBehavior_IsIsolatedHorizontalRail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C9254 _080C9238: ldr r0, _080C9250 @ =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldrb r1, [r1, 0xC] adds r0, r5, 0 bl sub_80C9104 b _080C928E .align 2, 0 _080C924C: .4byte 0x0000082b _080C9250: .4byte gTasks _080C9254: bl sub_8053C44 cmp r0, 0x1 bne _080C927C bl sub_80E5EF4 lsls r0, 24 cmp r0, 0 bne _080C927C ldr r1, _080C9274 @ =gUnknown_03005D00 ldr r0, _080C9278 @ =ItemUseOnFieldCB_Bike str r0, [r1] adds r0, r5, 0 bl SetUpItemUseOnFieldCallback b _080C928E .align 2, 0 _080C9274: .4byte gUnknown_03005D00 _080C9278: .4byte ItemUseOnFieldCB_Bike _080C927C: ldr r0, _080C9298 @ =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldrb r1, [r1, 0xC] adds r0, r5, 0 bl DisplayDadsAdviceCannotUseItemMessage _080C928E: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C9298: .4byte gTasks thumb_func_end ItemUseOutOfBattle_Bike thumb_func_start ItemUseOnFieldCB_Bike ItemUseOnFieldCB_Bike: @ 80C929C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r4, _080C92E0 @ =word_203855E ldrh r0, [r4] bl itemid_get_x28 lsls r0, 24 cmp r0, 0 bne _080C92B6 movs r0, 0x2 bl GetOnOffBike _080C92B6: ldrh r0, [r4] bl itemid_get_x28 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C92CA movs r0, 0x4 bl GetOnOffBike _080C92CA: bl sub_8064E2C bl ScriptContext2_Disable adds r0, r5, 0 bl DestroyTask pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C92E0: .4byte word_203855E thumb_func_end ItemUseOnFieldCB_Bike thumb_func_start CanFish CanFish: @ 80C92E4 push {r4-r6,lr} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 16 lsrs r6, r0, 16 lsls r0, r6, 24 lsrs r5, r0, 24 adds r0, r5, 0 bl MetatileBehavior_IsWaterfall lsls r0, 24 cmp r0, 0 bne _080C936C movs r0, 0x10 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 bne _080C936C movs r0, 0x8 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 bne _080C933C bl IsPlayerFacingSurfableFishableWater lsls r0, 24 cmp r0, 0 beq _080C936C _080C9338: movs r0, 0x1 b _080C936E _080C933C: adds r0, r5, 0 bl MetatileBehavior_IsSurfableWaterOrUnderwater lsls r0, 24 cmp r0, 0 beq _080C935C mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridIsImpassableAt lsls r0, 24 cmp r0, 0 beq _080C9338 _080C935C: lsls r0, r6, 24 lsrs r0, 24 bl sub_8057434 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080C9338 _080C936C: movs r0, 0 _080C936E: add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end CanFish thumb_func_start ItemUseOutOfBattle_Rod ItemUseOutOfBattle_Rod: @ 80C9378 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl CanFish cmp r0, 0x1 bne _080C939C ldr r1, _080C9394 @ =gUnknown_03005D00 ldr r0, _080C9398 @ =ItemUseOnFieldCB_Rod str r0, [r1] adds r0, r4, 0 bl SetUpItemUseOnFieldCallback b _080C93AE .align 2, 0 _080C9394: .4byte gUnknown_03005D00 _080C9398: .4byte ItemUseOnFieldCB_Rod _080C939C: ldr r0, _080C93B4 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrb r1, [r1, 0xC] adds r0, r4, 0 bl DisplayDadsAdviceCannotUseItemMessage _080C93AE: pop {r4} pop {r0} bx r0 .align 2, 0 _080C93B4: .4byte gTasks thumb_func_end ItemUseOutOfBattle_Rod thumb_func_start ItemUseOnFieldCB_Rod ItemUseOnFieldCB_Rod: @ 80C93B8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080C93DC @ =word_203855E ldrh r0, [r0] bl itemid_get_x28 lsls r0, 24 lsrs r0, 24 bl StartFishing adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 .align 2, 0 _080C93DC: .4byte word_203855E thumb_func_end ItemUseOnFieldCB_Rod thumb_func_start ItemUseOutOfBattle_Itemfinder ItemUseOutOfBattle_Itemfinder: @ 80C93E0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x27 bl sav12_xor_increment ldr r1, _080C9400 @ =gUnknown_03005D00 ldr r0, _080C9404 @ =ItemUseOnFieldCB_Itemfinder str r0, [r1] adds r0, r4, 0 bl SetUpItemUseOnFieldCallback pop {r4} pop {r0} bx r0 .align 2, 0 _080C9400: .4byte gUnknown_03005D00 _080C9404: .4byte ItemUseOnFieldCB_Itemfinder thumb_func_end ItemUseOutOfBattle_Itemfinder thumb_func_start ItemUseOnFieldCB_Itemfinder ItemUseOnFieldCB_Itemfinder: @ 80C9408 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080C9430 @ =gMapHeader ldr r0, [r0, 0x4] adds r1, r4, 0 bl ItemfinderCheckForHiddenItems lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C943C ldr r0, _080C9434 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080C9438 @ =sub_80C9458 str r0, [r1] b _080C9448 .align 2, 0 _080C9430: .4byte gMapHeader _080C9434: .4byte gTasks _080C9438: .4byte sub_80C9458 _080C943C: ldr r1, _080C9450 @ =gOtherText_NoResponse ldr r2, _080C9454 @ =sub_80C9520 adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField _080C9448: pop {r4} pop {r0} bx r0 .align 2, 0 _080C9450: .4byte gOtherText_NoResponse _080C9454: .4byte sub_80C9520 thumb_func_end ItemUseOnFieldCB_Itemfinder thumb_func_start sub_80C9458 sub_80C9458: @ 80C9458 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r5, r0, 24 lsls r6, r5, 2 adds r0, r6, r5 lsls r7, r0, 3 ldr r0, _080C94AC @ =gTasks + 0x8 mov r8, r0 adds r4, r7, r0 movs r1, 0x6 ldrsh r0, [r4, r1] cmp r0, 0 bne _080C950C movs r2, 0x8 ldrsh r0, [r4, r2] cmp r0, 0x4 bne _080C9500 movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_80C9908 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080C94B8 ldr r1, _080C94B0 @ =gUnknown_083D61F0 subs r0, 0x1 adds r0, r1 ldrb r0, [r0] bl sub_80C997C mov r0, r8 subs r0, 0x8 adds r0, r7, r0 ldr r1, _080C94B4 @ =sub_80C99EC str r1, [r0] b _080C9516 .align 2, 0 _080C94AC: .4byte gTasks + 0x8 _080C94B0: .4byte gUnknown_083D61F0 _080C94B4: .4byte sub_80C99EC _080C94B8: bl player_get_direction_lower_nybble lsls r0, 24 lsrs r2, r0, 24 movs r1, 0 adds r3, r6, 0 ldr r7, _080C94F4 @ =gUnknown_083D61F0 movs r6, 0x3 _080C94C8: adds r0, r1, r7 adds r1, 0x1 ldrb r0, [r0] cmp r2, r0 bne _080C94D8 adds r0, r1, 0 ands r0, r6 strh r0, [r4, 0xA] _080C94D8: lsls r0, r1, 24 lsrs r1, r0, 24 cmp r1, 0x3 bls _080C94C8 ldr r1, _080C94F8 @ =gTasks adds r0, r3, r5 lsls r0, 3 adds r0, r1 ldr r1, _080C94FC @ =sub_80C9A38 str r1, [r0] movs r0, 0 strh r0, [r4, 0x6] strh r0, [r4, 0x4] b _080C9516 .align 2, 0 _080C94F4: .4byte gUnknown_083D61F0 _080C94F8: .4byte gTasks _080C94FC: .4byte sub_80C9A38 _080C9500: movs r0, 0x48 bl PlaySE ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080C950C: ldrh r0, [r4, 0x6] adds r0, 0x1 movs r1, 0x1F ands r0, r1 strh r0, [r4, 0x6] _080C9516: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80C9458 thumb_func_start sub_80C9520 sub_80C9520: @ 80C9520 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect bl sub_8064E2C bl ScriptContext2_Disable adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 thumb_func_end sub_80C9520 thumb_func_start ItemfinderCheckForHiddenItems ItemfinderCheckForHiddenItems: @ 80C9548 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r5, r0, 0 lsls r1, 24 lsrs r6, r1, 24 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl PlayerGetDestCoords ldr r1, _080C9618 @ =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xC] movs r3, 0 mov r9, r4 ldrb r0, [r5, 0x3] cmp r3, r0 bge _080C95FC subs r1, 0x5 mov r8, r1 _080C9580: lsls r3, 16 asrs r1, r3, 16 ldr r2, [r5, 0x10] lsls r0, r1, 1 adds r0, r1 lsls r4, r0, 2 adds r1, r4, r2 ldrb r0, [r1, 0x5] adds r7, r3, 0 cmp r0, 0x7 bne _080C95EC movs r2, 0x96 lsls r2, 2 adds r0, r2, 0 ldrh r1, [r1, 0xA] adds r0, r1 lsls r0, 16 lsrs r0, 16 bl FlagGet lsls r0, 24 cmp r0, 0 bne _080C95EC ldr r1, [r5, 0x10] adds r1, r4, r1 ldrh r2, [r1] adds r2, 0x7 mov r0, sp ldrh r0, [r0] subs r2, r0 ldrh r0, [r1, 0x2] adds r0, 0x7 mov r3, r9 ldrh r1, [r3] subs r0, r1 lsls r0, 16 lsrs r0, 16 lsls r2, 16 asrs r1, r2, 16 movs r3, 0xE0 lsls r3, 11 adds r2, r3 lsrs r2, 16 cmp r2, 0xE bhi _080C95EC lsls r0, 16 asrs r2, r0, 16 cmp r2, r8 blt _080C95EC cmp r2, 0x5 bgt _080C95EC adds r0, r6, 0 bl sub_80C9838 _080C95EC: movs r1, 0x80 lsls r1, 9 adds r0, r7, r1 lsrs r3, r0, 16 asrs r0, 16 ldrb r2, [r5, 0x3] cmp r0, r2 blt _080C9580 _080C95FC: adds r0, r6, 0 bl sub_80C9720 ldr r0, _080C9618 @ =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 movs r3, 0xC ldrsh r0, [r1, r3] cmp r0, 0x1 beq _080C961C movs r0, 0 b _080C961E .align 2, 0 _080C9618: .4byte gTasks _080C961C: movs r0, 0x1 _080C961E: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end ItemfinderCheckForHiddenItems thumb_func_start sub_80C962C sub_80C962C: @ 80C962C push {r4-r6,lr} lsls r1, 16 lsrs r3, r1, 16 lsls r2, 16 lsrs r4, r2, 16 ldrb r2, [r0, 0x3] ldr r5, [r0, 0x10] movs r1, 0 cmp r1, r2 bge _080C9680 lsls r0, r3, 16 asrs r6, r0, 16 lsls r0, r4, 16 asrs r4, r0, 16 adds r3, r5, 0 _080C964A: ldrb r0, [r3, 0x5] cmp r0, 0x7 bne _080C9678 ldrh r0, [r3] cmp r6, r0 bne _080C9678 ldrh r0, [r3, 0x2] cmp r4, r0 bne _080C9678 movs r1, 0x96 lsls r1, 2 adds r0, r1, 0 ldrh r3, [r3, 0xA] adds r0, r3 lsls r0, 16 lsrs r0, 16 bl FlagGet lsls r0, 24 cmp r0, 0 bne _080C9680 movs r0, 0x1 b _080C9682 _080C9678: adds r3, 0xC adds r1, 0x1 cmp r1, r2 blt _080C964A _080C9680: movs r0, 0 _080C9682: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80C962C thumb_func_start sub_80C9688 sub_80C9688: @ 80C9688 push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 bl mapconnection_get_mapheader adds r3, r0, 0 ldrb r0, [r4] cmp r0, 0x2 beq _080C96B0 cmp r0, 0x2 bgt _080C96A6 cmp r0, 0x1 beq _080C96C4 b _080C9704 _080C96A6: cmp r0, 0x3 beq _080C96DC cmp r0, 0x4 beq _080C96E6 b _080C9704 _080C96B0: ldr r0, [r4, 0x4] adds r0, 0x7 subs r0, r5, r0 lsls r0, 16 lsrs r1, r0, 16 ldr r0, [r3] ldr r0, [r0, 0x4] subs r0, 0x7 adds r0, r6 b _080C96FA _080C96C4: ldr r0, [r4, 0x4] adds r0, 0x7 subs r0, r5, r0 lsls r0, 16 lsrs r1, r0, 16 ldr r0, _080C96D8 @ =gMapHeader ldr r0, [r0] ldr r0, [r0, 0x4] b _080C96F6 .align 2, 0 _080C96D8: .4byte gMapHeader _080C96DC: ldr r0, [r3] ldr r0, [r0] subs r0, 0x7 adds r0, r5 b _080C96F0 _080C96E6: ldr r0, _080C9700 @ =gMapHeader ldr r0, [r0] ldr r0, [r0] adds r0, 0x7 subs r0, r5, r0 _080C96F0: lsls r0, 16 lsrs r1, r0, 16 ldr r0, [r4, 0x4] _080C96F6: adds r0, 0x7 subs r0, r6, r0 _080C96FA: lsls r0, 16 lsrs r2, r0, 16 b _080C9708 .align 2, 0 _080C9700: .4byte gMapHeader _080C9704: movs r0, 0 b _080C971A _080C9708: ldr r0, [r3, 0x4] lsls r1, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 bl sub_80C962C lsls r0, 24 lsrs r0, 24 _080C971A: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80C9688 thumb_func_start sub_80C9720 sub_80C9720: @ 80C9720 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] ldr r0, _080C9834 @ =gMapHeader ldr r1, [r0] ldr r0, [r1] adds r0, 0x7 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x8] ldr r0, [r1, 0x4] adds r0, 0x7 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0xC] mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl PlayerGetDestCoords mov r0, sp ldrh r0, [r0] subs r0, 0x7 lsls r0, 16 lsrs r3, r0, 16 asrs r0, 16 mov r1, sp movs r2, 0 ldrsh r1, [r1, r2] adds r1, 0x7 cmp r0, r1 bgt _080C9824 _080C976E: mov r5, sp ldrh r0, [r5, 0x2] subs r0, 0x5 lsls r0, 16 lsrs r4, r0, 16 lsls r2, r4, 16 asrs r1, r2, 16 movs r6, 0x2 ldrsh r0, [r5, r6] adds r0, 0x5 lsls r3, 16 mov r8, r3 cmp r1, r0 bgt _080C980E movs r0, 0x7 str r0, [sp, 0x10] mov r1, r8 asrs r1, 16 mov r9, r1 mov r10, r0 _080C9796: ldr r3, [sp, 0x10] cmp r3, r9 bgt _080C97B8 ldr r5, [sp, 0x8] lsls r0, r5, 16 asrs r0, 16 cmp r9, r0 bge _080C97B8 asrs r1, r2, 16 cmp r10, r1 bgt _080C97B8 ldr r6, [sp, 0xC] lsls r0, r6, 16 asrs r0, 16 lsls r7, r4, 16 cmp r1, r0 blt _080C97F6 _080C97B8: mov r0, r8 asrs r5, r0, 16 lsls r4, 16 asrs r6, r4, 16 adds r0, r5, 0 adds r1, r6, 0 bl sub_8056BA0 adds r7, r4, 0 cmp r0, 0 beq _080C97F6 adds r1, r5, 0 adds r2, r6, 0 bl sub_80C9688 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C97F6 mov r0, sp ldrh r1, [r0] subs r1, r5, r1 lsls r1, 16 asrs r1, 16 ldrh r2, [r0, 0x2] subs r2, r6, r2 lsls r2, 16 asrs r2, 16 ldr r0, [sp, 0x4] bl sub_80C9838 _080C97F6: movs r1, 0x80 lsls r1, 9 adds r0, r7, r1 lsrs r4, r0, 16 lsls r2, r4, 16 asrs r1, r2, 16 mov r3, sp movs r5, 0x2 ldrsh r0, [r3, r5] adds r0, 0x5 cmp r1, r0 ble _080C9796 _080C980E: movs r1, 0x80 lsls r1, 9 add r1, r8 lsrs r3, r1, 16 asrs r1, 16 mov r0, sp movs r6, 0 ldrsh r0, [r0, r6] adds r0, 0x7 cmp r1, r0 ble _080C976E _080C9824: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C9834: .4byte gMapHeader thumb_func_end sub_80C9720 thumb_func_start sub_80C9838 sub_80C9838: @ 80C9838 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r7, r1, 16 lsls r2, 16 lsrs r2, 16 mov r12, r2 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080C986C @ =gTasks + 0x8 adds r3, r1, r0 movs r1, 0x4 ldrsh r0, [r3, r1] cmp r0, 0 bne _080C9870 strh r7, [r3] mov r0, r12 strh r0, [r3, 0x2] movs r0, 0x1 strh r0, [r3, 0x4] b _080C98FA .align 2, 0 _080C986C: .4byte gTasks + 0x8 _080C9870: movs r1, 0 ldrsh r0, [r3, r1] cmp r0, 0 bge _080C9880 negs r0, r0 lsls r0, 16 lsrs r4, r0, 16 b _080C9882 _080C9880: ldrh r4, [r3] _080C9882: movs r1, 0x2 ldrsh r0, [r3, r1] ldrh r1, [r3, 0x2] mov r9, r1 cmp r0, 0 bge _080C9896 negs r0, r0 lsls r0, 16 lsrs r2, r0, 16 b _080C9898 _080C9896: ldrh r2, [r3, 0x2] _080C9898: lsls r1, r7, 16 asrs r0, r1, 16 cmp r0, 0 bge _080C98A8 negs r0, r0 lsls r0, 16 lsrs r6, r0, 16 b _080C98AA _080C98A8: lsrs r6, r1, 16 _080C98AA: mov r1, r12 lsls r0, r1, 16 asrs r1, r0, 16 mov r8, r0 cmp r1, 0 bge _080C98BC negs r0, r1 lsls r0, 16 b _080C98BE _080C98BC: mov r0, r8 _080C98BE: lsrs r5, r0, 16 lsls r0, r4, 16 asrs r0, 16 lsls r1, r2, 16 asrs r2, r1, 16 adds r4, r0, r2 lsls r0, r6, 16 asrs r0, 16 lsls r1, r5, 16 asrs r1, 16 adds r0, r1 cmp r4, r0 ble _080C98E0 strh r7, [r3] mov r1, r12 strh r1, [r3, 0x2] b _080C98FA _080C98E0: cmp r4, r0 bne _080C98FA cmp r2, r1 bgt _080C98F4 cmp r2, r1 bne _080C98FA mov r1, r9 lsls r0, r1, 16 cmp r0, r8 bge _080C98FA _080C98F4: strh r7, [r3] mov r0, r12 strh r0, [r3, 0x2] _080C98FA: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80C9838 thumb_func_start sub_80C9908 sub_80C9908: @ 80C9908 push {r4,r5,lr} lsls r0, 16 lsls r1, 16 lsrs r1, 16 lsrs r2, r0, 16 cmp r0, 0 bne _080C991A cmp r1, 0 beq _080C9974 _080C991A: lsls r0, r2, 16 asrs r2, r0, 16 adds r5, r0, 0 cmp r2, 0 bge _080C992C negs r0, r2 lsls r0, 16 lsrs r4, r0, 16 b _080C992E _080C992C: lsrs r4, r5, 16 _080C992E: lsls r0, r1, 16 asrs r2, r0, 16 adds r1, r0, 0 cmp r2, 0 bge _080C9940 negs r0, r2 lsls r0, 16 lsrs r3, r0, 16 b _080C9942 _080C9940: lsrs r3, r1, 16 _080C9942: lsls r0, r4, 16 asrs r2, r0, 16 lsls r0, r3, 16 asrs r0, 16 cmp r2, r0 ble _080C995A cmp r5, 0 bge _080C9956 movs r0, 0x4 b _080C9976 _080C9956: movs r0, 0x2 b _080C9976 _080C995A: cmp r2, r0 bge _080C9964 cmp r1, 0 blt _080C996C b _080C9970 _080C9964: cmp r2, r0 bne _080C9974 cmp r1, 0 bge _080C9970 _080C996C: movs r0, 0x1 b _080C9976 _080C9970: movs r0, 0x3 b _080C9976 _080C9974: movs r0, 0 _080C9976: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80C9908 thumb_func_start sub_80C997C sub_80C997C: @ 80C997C push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetFieldObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r4, _080C99E8 @ =gMapObjects adds r0, r4 bl FieldObjectClearAnimIfSpecialAnimFinished movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetFieldObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r4 bl FieldObjectClearAnim movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetFieldObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r4 bl npc_sync_anim_pause_bits adds r0, r5, 0 bl PlayerTurnInPlace pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C99E8: .4byte gMapObjects thumb_func_end sub_80C997C thumb_func_start sub_80C99EC sub_80C99EC: @ 80C99EC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetFieldObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C9A2C @ =gMapObjects adds r0, r1 bl FieldObjectCheckIfSpecialAnimFinishedOrInactive lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C9A24 ldr r1, _080C9A30 @ =gOtherText_ItemfinderResponding ldr r2, _080C9A34 @ =sub_80C9520 adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField _080C9A24: pop {r4} pop {r0} bx r0 .align 2, 0 _080C9A2C: .4byte gMapObjects _080C9A30: .4byte gOtherText_ItemfinderResponding _080C9A34: .4byte sub_80C9520 thumb_func_end sub_80C99EC thumb_func_start sub_80C9A38 sub_80C9A38: @ 80C9A38 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080C9AB4 @ =gTasks + 0x8 adds r4, r0, r1 movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetFieldObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C9AB8 @ =gMapObjects adds r0, r1 bl FieldObjectCheckIfSpecialAnimFinishedOrInactive lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080C9A78 movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0 bne _080C9AAE _080C9A78: ldr r1, _080C9ABC @ =gUnknown_083D61F0 movs r2, 0xA ldrsh r0, [r4, r2] adds r0, r1 ldrb r0, [r0] bl sub_80C997C movs r0, 0x1 strh r0, [r4, 0x4] ldrh r0, [r4, 0xA] adds r0, 0x1 movs r1, 0x3 ands r0, r1 strh r0, [r4, 0xA] ldrh r0, [r4, 0x6] adds r0, 0x1 strh r0, [r4, 0x6] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _080C9AAE ldr r1, _080C9AC0 @ =gOtherText_ItemfinderFoundItem ldr r2, _080C9AC4 @ =sub_80C9520 adds r0, r5, 0 movs r3, 0 bl DisplayItemMessageOnField _080C9AAE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C9AB4: .4byte gTasks + 0x8 _080C9AB8: .4byte gMapObjects _080C9ABC: .4byte gUnknown_083D61F0 _080C9AC0: .4byte gOtherText_ItemfinderFoundItem _080C9AC4: .4byte sub_80C9520 thumb_func_end sub_80C9A38 thumb_func_start ItemUseOutOfBattle_PokeblockCase ItemUseOutOfBattle_PokeblockCase: @ 80C9AC8 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C9AF4 ldr r0, _080C9AF0 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrb r1, [r1, 0xC] adds r0, r4, 0 bl DisplayDadsAdviceCannotUseItemMessage b _080C9B2A .align 2, 0 _080C9AF0: .4byte gTasks _080C9AF4: ldr r0, _080C9B14 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r2, 0xC ldrsh r0, [r1, r2] cmp r0, 0x1 beq _080C9B18 movs r0, 0 bl sub_810BA7C adds r0, r4, 0 bl unknown_ItemMenu_Confirm b _080C9B2A .align 2, 0 _080C9B14: .4byte gTasks _080C9B18: ldr r1, _080C9B30 @ =gUnknown_0300485C ldr r0, _080C9B34 @ =sub_8080E28 str r0, [r1] movs r0, 0x1 bl sub_810BA7C adds r0, r5, 0 bl sub_80C9038 _080C9B2A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C9B30: .4byte gUnknown_0300485C _080C9B34: .4byte sub_8080E28 thumb_func_end ItemUseOutOfBattle_PokeblockCase thumb_func_start ItemUseOutOfBattle_CoinCase ItemUseOutOfBattle_CoinCase: @ 80C9B38 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r4, _080C9B8C @ =gStringVar1 bl GetCoins adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 movs r2, 0 movs r3, 0x4 bl ConvertIntToDecimalStringN ldr r4, _080C9B90 @ =gStringVar4 ldr r1, _080C9B94 @ =gOtherText_Coins3 adds r0, r4, 0 bl StringExpandPlaceholders ldr r1, _080C9B98 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0xC ldrsh r0, [r0, r1] cmp r0, 0 bne _080C9BA0 movs r0, 0 movs r1, 0xD movs r2, 0xD movs r3, 0x14 bl MenuZeroFillWindowRect ldr r2, _080C9B9C @ =sub_80A5C48 adds r0, r5, 0 adds r1, r4, 0 movs r3, 0x1 bl DisplayItemMessageOnField b _080C9BAC .align 2, 0 _080C9B8C: .4byte gStringVar1 _080C9B90: .4byte gStringVar4 _080C9B94: .4byte gOtherText_Coins3 _080C9B98: .4byte gTasks _080C9B9C: .4byte sub_80A5C48 _080C9BA0: ldr r2, _080C9BB4 @ =sub_80A5C9C adds r0, r5, 0 adds r1, r4, 0 movs r3, 0 bl DisplayItemMessageOnField _080C9BAC: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C9BB4: .4byte sub_80A5C9C thumb_func_end ItemUseOutOfBattle_CoinCase thumb_func_start sub_80C9BB8 sub_80C9BB8: @ 80C9BB8 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080C9BD4 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C9BD0 adds r0, r2, 0 bl sub_80A5C48 _080C9BD0: pop {r0} bx r0 .align 2, 0 _080C9BD4: .4byte gMain thumb_func_end sub_80C9BB8 thumb_func_start sub_80C9BD8 sub_80C9BD8: @ 80C9BD8 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080C9BF4 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C9BF0 adds r0, r2, 0 bl sub_80A5C9C _080C9BF0: pop {r0} bx r0 .align 2, 0 _080C9BF4: .4byte gMain thumb_func_end sub_80C9BD8 thumb_func_start unref_sub_80C9BF8 unref_sub_80C9BF8: @ 80C9BF8 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080C9C3C @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0xC ldrsh r0, [r0, r1] cmp r0, 0 bne _080C9C4C movs r0, 0 movs r1, 0xD movs r2, 0xD movs r3, 0x14 bl MenuZeroFillWindowRect ldr r4, _080C9C40 @ =gUnknown_083D61DC ldr r0, _080C9C44 @ =word_203855E ldrh r0, [r0] bl itemid_get_x28 lsls r0, 24 lsrs r0, 22 adds r0, r4 ldr r1, [r0] ldr r2, _080C9C48 @ =sub_80C9BB8 adds r0, r5, 0 movs r3, 0x1 bl DisplayItemMessageOnField b _080C9C68 .align 2, 0 _080C9C3C: .4byte gTasks _080C9C40: .4byte gUnknown_083D61DC _080C9C44: .4byte word_203855E _080C9C48: .4byte sub_80C9BB8 _080C9C4C: ldr r4, _080C9C70 @ =gUnknown_083D61DC ldr r0, _080C9C74 @ =word_203855E ldrh r0, [r0] bl itemid_get_x28 lsls r0, 24 lsrs r0, 22 adds r0, r4 ldr r1, [r0] ldr r2, _080C9C78 @ =sub_80C9BD8 adds r0, r5, 0 movs r3, 0 bl DisplayItemMessageOnField _080C9C68: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C9C70: .4byte gUnknown_083D61DC _080C9C74: .4byte word_203855E _080C9C78: .4byte sub_80C9BD8 thumb_func_end unref_sub_80C9BF8 thumb_func_start sub_80C9C7C sub_80C9C7C: @ 80C9C7C push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 bl IsPlayerFacingPlantedBerryTree lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C9CE4 ldr r1, _080C9CC8 @ =gUnknown_03005D00 ldr r0, _080C9CCC @ =sub_80C9D00 str r0, [r1] ldr r1, _080C9CD0 @ =gUnknown_0300485C ldr r0, _080C9CD4 @ =sub_80A5CC4 str r0, [r1] ldr r1, _080C9CD8 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r2, _080C9CDC @ =c2_exit_to_overworld_2_switch lsrs r1, r2, 16 movs r3, 0 strh r1, [r0, 0x18] strh r2, [r0, 0x1A] ldr r1, _080C9CE0 @ =sub_80A5B00 str r1, [r0] movs r0, 0x1 negs r0, r0 str r3, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _080C9CF4 .align 2, 0 _080C9CC8: .4byte gUnknown_03005D00 _080C9CCC: .4byte sub_80C9D00 _080C9CD0: .4byte gUnknown_0300485C _080C9CD4: .4byte sub_80A5CC4 _080C9CD8: .4byte gTasks _080C9CDC: .4byte c2_exit_to_overworld_2_switch _080C9CE0: .4byte sub_80A5B00 _080C9CE4: ldr r0, _080C9CFC @ =word_203855E ldrh r0, [r0] bl itemid_get_overworld_function adds r1, r0, 0 adds r0, r4, 0 bl _call_via_r1 _080C9CF4: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080C9CFC: .4byte word_203855E thumb_func_end sub_80C9C7C thumb_func_start sub_80C9D00 sub_80C9D00: @ 80C9D00 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080C9D28 @ =word_203855E ldrh r0, [r0] movs r1, 0x1 bl sub_80A9538 bl ScriptContext2_Enable ldr r0, _080C9D2C @ =gUnknown_081A1654 bl ScriptContext1_SetupScript adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 .align 2, 0 _080C9D28: .4byte word_203855E _080C9D2C: .4byte gUnknown_081A1654 thumb_func_end sub_80C9D00 thumb_func_start ItemUseOutOfBattle_WailmerPail ItemUseOutOfBattle_WailmerPail: @ 80C9D30 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl WaterBerryTree lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C9D58 ldr r1, _080C9D50 @ =gUnknown_03005D00 ldr r0, _080C9D54 @ =sub_80C9D74 str r0, [r1] adds r0, r4, 0 bl SetUpItemUseOnFieldCallback b _080C9D6A .align 2, 0 _080C9D50: .4byte gUnknown_03005D00 _080C9D54: .4byte sub_80C9D74 _080C9D58: ldr r0, _080C9D70 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrb r1, [r1, 0xC] adds r0, r4, 0 bl DisplayDadsAdviceCannotUseItemMessage _080C9D6A: pop {r4} pop {r0} bx r0 .align 2, 0 _080C9D70: .4byte gTasks thumb_func_end ItemUseOutOfBattle_WailmerPail thumb_func_start sub_80C9D74 sub_80C9D74: @ 80C9D74 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl ScriptContext2_Enable ldr r0, _080C9D94 @ =gUnknown_081A168F bl ScriptContext1_SetupScript adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 .align 2, 0 _080C9D94: .4byte gUnknown_081A168F thumb_func_end sub_80C9D74 thumb_func_start sub_80C9D98 sub_80C9D98: @ 80C9D98 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080C9DAC @ =gUnknown_02038561 movs r1, 0 strb r1, [r2] bl unknown_ItemMenu_Confirm pop {r0} bx r0 .align 2, 0 _080C9DAC: .4byte gUnknown_02038561 thumb_func_end sub_80C9D98 thumb_func_start ItemUseOutOfBattle_Medicine ItemUseOutOfBattle_Medicine: @ 80C9DB0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080C9DC4 @ =gUnknown_03004AE4 ldr r1, _080C9DC8 @ =sub_806FE2C str r1, [r2] bl sub_80C9D98 pop {r0} bx r0 .align 2, 0 _080C9DC4: .4byte gUnknown_03004AE4 _080C9DC8: .4byte sub_806FE2C thumb_func_end ItemUseOutOfBattle_Medicine thumb_func_start ItemUseOutOfBattle_SacredAsh ItemUseOutOfBattle_SacredAsh: @ 80C9DCC push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r1, _080C9DDC @ =gUnknown_03005CE0 movs r0, 0 strb r0, [r1] movs r5, 0 b _080C9DE6 .align 2, 0 _080C9DDC: .4byte gUnknown_03005CE0 _080C9DE0: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _080C9DE6: cmp r5, 0x5 bhi _080C9E10 movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _080C9E28 @ =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _080C9DE0 adds r0, r4, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 bne _080C9DE0 ldr r0, _080C9E2C @ =gUnknown_03005CE0 strb r5, [r0] _080C9E10: ldr r1, _080C9E30 @ =gUnknown_03004AE4 ldr r0, _080C9E34 @ =sub_8070048 str r0, [r1] ldr r1, _080C9E38 @ =gUnknown_02038561 movs r0, 0x4 strb r0, [r1] adds r0, r6, 0 bl unknown_ItemMenu_Confirm pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C9E28: .4byte gPlayerParty _080C9E2C: .4byte gUnknown_03005CE0 _080C9E30: .4byte gUnknown_03004AE4 _080C9E34: .4byte sub_8070048 _080C9E38: .4byte gUnknown_02038561 thumb_func_end ItemUseOutOfBattle_SacredAsh thumb_func_start ItemUseOutOfBattle_PPRecovery ItemUseOutOfBattle_PPRecovery: @ 80C9E3C push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080C9E50 @ =gUnknown_03004AE4 ldr r1, _080C9E54 @ =dp05_ether str r1, [r2] bl sub_80C9D98 pop {r0} bx r0 .align 2, 0 _080C9E50: .4byte gUnknown_03004AE4 _080C9E54: .4byte dp05_ether thumb_func_end ItemUseOutOfBattle_PPRecovery thumb_func_start ItemUseOutOfBattle_PPUp ItemUseOutOfBattle_PPUp: @ 80C9E58 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080C9E6C @ =gUnknown_03004AE4 ldr r1, _080C9E70 @ =dp05_pp_up str r1, [r2] bl sub_80C9D98 pop {r0} bx r0 .align 2, 0 _080C9E6C: .4byte gUnknown_03004AE4 _080C9E70: .4byte dp05_pp_up thumb_func_end ItemUseOutOfBattle_PPUp thumb_func_start ItemUseOutOfBattle_RareCandy ItemUseOutOfBattle_RareCandy: @ 80C9E74 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080C9E88 @ =gUnknown_03004AE4 ldr r1, _080C9E8C @ =sub_8070680 str r1, [r2] bl sub_80C9D98 pop {r0} bx r0 .align 2, 0 _080C9E88: .4byte gUnknown_03004AE4 _080C9E8C: .4byte sub_8070680 thumb_func_end ItemUseOutOfBattle_RareCandy thumb_func_start ItemUseOutOfBattle_TMHM ItemUseOutOfBattle_TMHM: @ 80C9E90 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0 movs r1, 0xD movs r2, 0xD movs r3, 0x14 bl MenuZeroFillWindowRect ldr r0, _080C9EBC @ =word_203855E ldrh r1, [r0] movs r0, 0xA9 lsls r0, 1 cmp r1, r0 bls _080C9EC8 ldr r1, _080C9EC0 @ =gOtherText_BootedHM ldr r2, _080C9EC4 @ =sub_80C9EE4 adds r0, r4, 0 movs r3, 0x1 bl DisplayItemMessageOnField b _080C9ED4 .align 2, 0 _080C9EBC: .4byte word_203855E _080C9EC0: .4byte gOtherText_BootedHM _080C9EC4: .4byte sub_80C9EE4 _080C9EC8: ldr r1, _080C9EDC @ =gOtherText_BootedTM ldr r2, _080C9EE0 @ =sub_80C9EE4 adds r0, r4, 0 movs r3, 0x1 bl DisplayItemMessageOnField _080C9ED4: pop {r4} pop {r0} bx r0 .align 2, 0 _080C9EDC: .4byte gOtherText_BootedTM _080C9EE0: .4byte sub_80C9EE4 thumb_func_end ItemUseOutOfBattle_TMHM thumb_func_start sub_80C9EE4 sub_80C9EE4: @ 80C9EE4 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x2 bl PlaySE ldr r1, _080C9F08 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080C9F0C @ =sub_80C9F10 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080C9F08: .4byte gTasks _080C9F0C: .4byte sub_80C9F10 thumb_func_end sub_80C9EE4 thumb_func_start sub_80C9F10 sub_80C9F10: @ 80C9F10 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080C9F64 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080C9F2A movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080C9F5C _080C9F2A: ldr r4, _080C9F68 @ =gStringVar1 ldr r0, _080C9F6C @ =word_203855E ldrh r0, [r0] bl ItemIdToBattleMoveId lsls r0, 16 lsrs r0, 16 movs r1, 0xD muls r1, r0 ldr r0, _080C9F70 @ =gMoveNames adds r1, r0 adds r0, r4, 0 bl StringCopy ldr r4, _080C9F74 @ =gStringVar4 ldr r1, _080C9F78 @ =gOtherText_ContainsMove adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, _080C9F7C @ =sub_80C9F80 adds r0, r5, 0 adds r1, r4, 0 movs r3, 0x1 bl DisplayItemMessageOnField _080C9F5C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C9F64: .4byte gMain _080C9F68: .4byte gStringVar1 _080C9F6C: .4byte word_203855E _080C9F70: .4byte gMoveNames _080C9F74: .4byte gStringVar4 _080C9F78: .4byte gOtherText_ContainsMove _080C9F7C: .4byte sub_80C9F80 thumb_func_end sub_80C9F10 thumb_func_start sub_80C9F80 sub_80C9F80: @ 80C9F80 push {r4,lr} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x7 movs r1, 0x7 movs r2, 0x1 bl DisplayYesNoMenu ldr r0, _080C9FB8 @ =gBG1TilemapBuffer movs r1, 0x4 str r1, [sp] movs r1, 0x1 str r1, [sp, 0x4] movs r1, 0x8 movs r2, 0x8 movs r3, 0x5 bl sub_80A3FA0 ldr r1, _080C9FBC @ =gUnknown_083D61F4 adds r0, r4, 0 bl sub_80F914C add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _080C9FB8: .4byte gBG1TilemapBuffer _080C9FBC: .4byte gUnknown_083D61F4 thumb_func_end sub_80C9F80 thumb_func_start sub_80C9FC0 sub_80C9FC0: @ 80C9FC0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080C9FD4 @ =gUnknown_03004AE4 ldr r1, _080C9FD8 @ =sub_806F06C str r1, [r2] bl sub_80C9D98 pop {r0} bx r0 .align 2, 0 _080C9FD4: .4byte gUnknown_03004AE4 _080C9FD8: .4byte sub_806F06C thumb_func_end sub_80C9FC0 thumb_func_start sub_80C9FDC sub_80C9FDC: @ 80C9FDC push {r4,lr} ldr r4, _080CA004 @ =word_203855E ldrh r0, [r4] movs r1, 0x1 bl sub_80A9538 bl sub_80A3E0C ldrh r0, [r4] ldr r1, _080CA008 @ =gStringVar2 bl itemid_copy_name ldr r0, _080CA00C @ =gStringVar4 ldr r1, _080CA010 @ =gOtherText_UsedItem bl StringExpandPlaceholders pop {r4} pop {r0} bx r0 .align 2, 0 _080CA004: .4byte word_203855E _080CA008: .4byte gStringVar2 _080CA00C: .4byte gStringVar4 _080CA010: .4byte gOtherText_UsedItem thumb_func_end sub_80C9FDC thumb_func_start ItemUseOutOfBattle_Repel ItemUseOutOfBattle_Repel: @ 80CA014 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r5, _080CA050 @ =0x00004021 adds r0, r5, 0 bl VarGet lsls r0, 16 cmp r0, 0 bne _080CA060 ldr r0, _080CA054 @ =word_203855E ldrh r0, [r0] bl itemid_get_quality adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl VarSet bl sub_80C9FDC ldr r1, _080CA058 @ =gStringVar4 ldr r2, _080CA05C @ =sub_80A5C48 adds r0, r4, 0 movs r3, 0x1 bl DisplayItemMessageOnField b _080CA06C .align 2, 0 _080CA050: .4byte 0x00004021 _080CA054: .4byte word_203855E _080CA058: .4byte gStringVar4 _080CA05C: .4byte sub_80A5C48 _080CA060: ldr r1, _080CA074 @ =gOtherText_RepelLingers ldr r2, _080CA078 @ =sub_80A5C48 adds r0, r4, 0 movs r3, 0x1 bl DisplayItemMessageOnField _080CA06C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CA074: .4byte gOtherText_RepelLingers _080CA078: .4byte sub_80A5C48 thumb_func_end ItemUseOutOfBattle_Repel thumb_func_start sub_80CA07C sub_80CA07C: @ 80CA07C push {lr} bl sub_80A3E0C ldr r0, _080CA090 @ =word_203855E ldrh r0, [r0] ldr r1, _080CA094 @ =gStringVar2 bl itemid_copy_name pop {r0} bx r0 .align 2, 0 _080CA090: .4byte word_203855E _080CA094: .4byte gStringVar2 thumb_func_end sub_80CA07C thumb_func_start sub_80CA098 sub_80CA098: @ 80CA098 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080CA0D0 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x26] adds r0, 0x1 strh r0, [r1, 0x26] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _080CA0C8 movs r0, 0x75 bl PlaySE ldr r1, _080CA0D4 @ =gStringVar4 ldr r2, _080CA0D8 @ =sub_80A5C48 adds r0, r4, 0 movs r3, 0x1 bl DisplayItemMessageOnField _080CA0C8: pop {r4} pop {r0} bx r0 .align 2, 0 _080CA0D0: .4byte gTasks _080CA0D4: .4byte gStringVar4 _080CA0D8: .4byte sub_80A5C48 thumb_func_end sub_80CA098 thumb_func_start ItemUseOutOfBattle_BlackWhiteFlute ItemUseOutOfBattle_BlackWhiteFlute: @ 80CA0DC push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 ldr r0, _080CA10C @ =word_203855E ldrh r0, [r0] cmp r0, 0x2B bne _080CA124 ldr r0, _080CA110 @ =0x0000084d bl FlagSet ldr r0, _080CA114 @ =0x0000084e bl FlagReset bl sub_80CA07C ldr r0, _080CA118 @ =gStringVar4 ldr r1, _080CA11C @ =gOtherText_UsedFlute bl StringExpandPlaceholders ldr r1, _080CA120 @ =gTasks lsls r0, r4, 2 adds r0, r4 b _080CA146 .align 2, 0 _080CA10C: .4byte word_203855E _080CA110: .4byte 0x0000084d _080CA114: .4byte 0x0000084e _080CA118: .4byte gStringVar4 _080CA11C: .4byte gOtherText_UsedFlute _080CA120: .4byte gTasks _080CA124: cmp r0, 0x2A bne _080CA152 ldr r0, _080CA158 @ =0x0000084e bl FlagSet ldr r0, _080CA15C @ =0x0000084d bl FlagReset bl sub_80CA07C ldr r0, _080CA160 @ =gStringVar4 ldr r1, _080CA164 @ =gOtherText_UsedRepel bl StringExpandPlaceholders ldr r1, _080CA168 @ =gTasks lsls r0, r5, 2 adds r0, r5 _080CA146: lsls r0, 3 adds r0, r1 ldr r1, _080CA16C @ =sub_80CA098 str r1, [r0] movs r1, 0 strh r1, [r0, 0x26] _080CA152: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CA158: .4byte 0x0000084e _080CA15C: .4byte 0x0000084d _080CA160: .4byte gStringVar4 _080CA164: .4byte gOtherText_UsedRepel _080CA168: .4byte gTasks _080CA16C: .4byte sub_80CA098 thumb_func_end ItemUseOutOfBattle_BlackWhiteFlute thumb_func_start task08_080A1C44 task08_080A1C44: @ 80CA170 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl player_avatar_init_params_reset bl sub_80878A8 adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 thumb_func_end task08_080A1C44 thumb_func_start sub_80CA18C sub_80CA18C: @ 80CA18C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8053014 bl sub_80C9FDC ldr r1, _080CA1BC @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x8] ldr r1, _080CA1C0 @ =gStringVar4 ldr r2, _080CA1C4 @ =task08_080A1C44 adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField pop {r4} pop {r0} bx r0 .align 2, 0 _080CA1BC: .4byte gTasks _080CA1C0: .4byte gStringVar4 _080CA1C4: .4byte task08_080A1C44 thumb_func_end sub_80CA18C thumb_func_start sub_80CA1C8 sub_80CA1C8: @ 80CA1C8 push {lr} ldr r0, _080CA1D8 @ =gMapHeader ldrb r0, [r0, 0x17] cmp r0, 0x4 beq _080CA1DC movs r0, 0 b _080CA1DE .align 2, 0 _080CA1D8: .4byte gMapHeader _080CA1DC: movs r0, 0x1 _080CA1DE: pop {r1} bx r1 thumb_func_end sub_80CA1C8 thumb_func_start ItemUseOutOfBattle_EscapeRope ItemUseOutOfBattle_EscapeRope: @ 80CA1E4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_80CA1C8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080CA20C ldr r1, _080CA204 @ =gUnknown_03005D00 ldr r0, _080CA208 @ =sub_80CA18C str r0, [r1] adds r0, r4, 0 bl SetUpItemUseOnFieldCallback b _080CA21E .align 2, 0 _080CA204: .4byte gUnknown_03005D00 _080CA208: .4byte sub_80CA18C _080CA20C: ldr r0, _080CA224 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrb r1, [r1, 0xC] adds r0, r4, 0 bl DisplayDadsAdviceCannotUseItemMessage _080CA21E: pop {r4} pop {r0} bx r0 .align 2, 0 _080CA224: .4byte gTasks thumb_func_end ItemUseOutOfBattle_EscapeRope thumb_func_start ItemUseOutOfBattle_EvolutionStone ItemUseOutOfBattle_EvolutionStone: @ 80CA228 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080CA23C @ =gUnknown_03004AE4 ldr r1, _080CA240 @ =sub_8070DBC str r1, [r2] bl sub_80C9D98 pop {r0} bx r0 .align 2, 0 _080CA23C: .4byte gUnknown_03004AE4 _080CA240: .4byte sub_8070DBC thumb_func_end ItemUseOutOfBattle_EvolutionStone thumb_func_start ItemUseInBattle_PokeBall ItemUseInBattle_PokeBall: @ 80CA244 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl PlayerPartyAndPokemonStorageFull lsls r0, 24 cmp r0, 0 bne _080CA26C ldr r0, _080CA268 @ =word_203855E ldrh r0, [r0] movs r1, 0x1 bl sub_80A9538 adds r0, r4, 0 bl sub_80A7094 b _080CA284 .align 2, 0 _080CA268: .4byte word_203855E _080CA26C: movs r0, 0 movs r1, 0xD movs r2, 0xD movs r3, 0x14 bl MenuZeroFillWindowRect ldr r1, _080CA28C @ =gOtherText_BoxIsFull ldr r2, _080CA290 @ =sub_80A5C48 adds r0, r4, 0 movs r3, 0x1 bl DisplayItemMessageOnField _080CA284: pop {r4} pop {r0} bx r0 .align 2, 0 _080CA28C: .4byte gOtherText_BoxIsFull _080CA290: .4byte sub_80A5C48 thumb_func_end ItemUseInBattle_PokeBall thumb_func_start sub_80CA294 sub_80CA294: @ 80CA294 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080CA2B8 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080CA2AE movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080CA2B4 _080CA2AE: adds r0, r2, 0 bl sub_80A7094 _080CA2B4: pop {r0} bx r0 .align 2, 0 _080CA2B8: .4byte gMain thumb_func_end sub_80CA294 thumb_func_start sub_80CA2BC sub_80CA2BC: @ 80CA2BC push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080CA304 @ =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x26] adds r0, 0x1 strh r0, [r1, 0x26] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _080CA2FC movs r0, 0x1 bl PlaySE ldr r4, _080CA308 @ =word_203855E ldrh r0, [r4] movs r1, 0x1 bl sub_80A9538 ldrh r0, [r4] bl sub_803F378 adds r1, r0, 0 ldr r2, _080CA30C @ =sub_80CA294 adds r0, r5, 0 movs r3, 0x1 bl DisplayItemMessageOnField _080CA2FC: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CA304: .4byte gTasks _080CA308: .4byte word_203855E _080CA30C: .4byte sub_80CA294 thumb_func_end sub_80CA2BC thumb_func_start ItemUseInBattle_StatIncrease ItemUseInBattle_StatIncrease: @ 80CA310 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080CA35C @ =gUnknown_02024A6A ldr r0, _080CA360 @ =gUnknown_02024E6C ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r4, [r0] movs r0, 0 movs r1, 0xD movs r2, 0xD movs r3, 0x14 bl MenuZeroFillWindowRect movs r0, 0x64 muls r0, r4 ldr r1, _080CA364 @ =gPlayerParty adds r0, r1 ldr r1, _080CA368 @ =word_203855E ldrh r1, [r1] lsls r4, 24 lsrs r4, 24 adds r2, r4, 0 movs r3, 0 bl ExecuteTableBasedItemEffect_ lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _080CA374 ldr r1, _080CA36C @ =gOtherText_WontHaveAnyEffect ldr r2, _080CA370 @ =sub_80A5C48 adds r0, r5, 0 movs r3, 0x1 bl DisplayItemMessageOnField b _080CA384 .align 2, 0 _080CA35C: .4byte gUnknown_02024A6A _080CA360: .4byte gUnknown_02024E6C _080CA364: .4byte gPlayerParty _080CA368: .4byte word_203855E _080CA36C: .4byte gOtherText_WontHaveAnyEffect _080CA370: .4byte sub_80A5C48 _080CA374: ldr r0, _080CA38C @ =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _080CA390 @ =sub_80CA2BC str r0, [r1] strh r2, [r1, 0x26] _080CA384: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CA38C: .4byte gTasks _080CA390: .4byte sub_80CA2BC thumb_func_end ItemUseInBattle_StatIncrease thumb_func_start sub_80CA394 sub_80CA394: @ 80CA394 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080CA3BC @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080CA3B4 bl sub_8094E4C bl gpu_pal_allocator_reset__manage_upper_four adds r0, r4, 0 bl DestroyTask _080CA3B4: pop {r4} pop {r0} bx r0 .align 2, 0 _080CA3BC: .4byte gPaletteFade thumb_func_end sub_80CA394 thumb_func_start sub_80CA3C0 sub_80CA3C0: @ 80CA3C0 push {lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r2, _080CA3EC @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _080CA3F0 @ =sub_80CA394 str r0, [r1] movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080CA3EC: .4byte gTasks _080CA3F0: .4byte sub_80CA394 thumb_func_end sub_80CA3C0 thumb_func_start ItemUseInBattle_Medicine ItemUseInBattle_Medicine: @ 80CA3F4 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080CA408 @ =gUnknown_03004AE4 ldr r1, _080CA40C @ =sub_806FE2C str r1, [r2] bl sub_80CA3C0 pop {r0} bx r0 .align 2, 0 _080CA408: .4byte gUnknown_03004AE4 _080CA40C: .4byte sub_806FE2C thumb_func_end ItemUseInBattle_Medicine thumb_func_start unref_sub_80CA410 unref_sub_80CA410: @ 80CA410 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080CA424 @ =gUnknown_03004AE4 ldr r1, _080CA428 @ =sub_8070048 str r1, [r2] bl sub_80CA3C0 pop {r0} bx r0 .align 2, 0 _080CA424: .4byte gUnknown_03004AE4 _080CA428: .4byte sub_8070048 thumb_func_end unref_sub_80CA410 thumb_func_start ItemUseInBattle_PPRecovery ItemUseInBattle_PPRecovery: @ 80CA42C push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080CA440 @ =gUnknown_03004AE4 ldr r1, _080CA444 @ =dp05_ether str r1, [r2] bl sub_80CA3C0 pop {r0} bx r0 .align 2, 0 _080CA440: .4byte gUnknown_03004AE4 _080CA444: .4byte dp05_ether thumb_func_end ItemUseInBattle_PPRecovery thumb_func_start unref_sub_80CA448 unref_sub_80CA448: @ 80CA448 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 movs r0, 0 movs r1, 0xD movs r2, 0xD movs r3, 0x14 bl MenuZeroFillWindowRect ldr r4, _080CA494 @ =word_203855E ldrh r1, [r4] movs r0, 0 movs r2, 0 bl ExecuteTableBasedItemEffect__ lsls r0, 24 cmp r0, 0 bne _080CA4AC ldrh r0, [r4] movs r1, 0x1 bl sub_80A9538 ldr r0, _080CA498 @ =gPlayerParty ldr r1, _080CA49C @ =gStringVar1 bl GetMonNickname ldr r4, _080CA4A0 @ =gStringVar4 ldr r1, _080CA4A4 @ =gOtherText_SnapConfusion adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, _080CA4A8 @ =sub_80A7094 adds r0, r5, 0 adds r1, r4, 0 movs r3, 0x1 bl DisplayItemMessageOnField b _080CA4B8 .align 2, 0 _080CA494: .4byte word_203855E _080CA498: .4byte gPlayerParty _080CA49C: .4byte gStringVar1 _080CA4A0: .4byte gStringVar4 _080CA4A4: .4byte gOtherText_SnapConfusion _080CA4A8: .4byte sub_80A7094 _080CA4AC: ldr r1, _080CA4C0 @ =gOtherText_WontHaveAnyEffect ldr r2, _080CA4C4 @ =sub_80A5C48 adds r0, r5, 0 movs r3, 0x1 bl DisplayItemMessageOnField _080CA4B8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CA4C0: .4byte gOtherText_WontHaveAnyEffect _080CA4C4: .4byte sub_80A5C48 thumb_func_end unref_sub_80CA448 thumb_func_start ItemUseInBattle_Escape ItemUseInBattle_Escape: @ 80CA4C8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0 movs r1, 0xD movs r2, 0xD movs r3, 0x14 bl MenuZeroFillWindowRect ldr r0, _080CA4F8 @ =gUnknown_020239F8 ldrh r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _080CA504 bl sub_80C9FDC ldr r1, _080CA4FC @ =gStringVar4 ldr r2, _080CA500 @ =sub_80A7094 adds r0, r4, 0 movs r3, 0x1 bl DisplayItemMessageOnField b _080CA516 .align 2, 0 _080CA4F8: .4byte gUnknown_020239F8 _080CA4FC: .4byte gStringVar4 _080CA500: .4byte sub_80A7094 _080CA504: ldr r0, _080CA51C @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrb r1, [r1, 0xC] adds r0, r4, 0 bl DisplayDadsAdviceCannotUseItemMessage _080CA516: pop {r4} pop {r0} bx r0 .align 2, 0 _080CA51C: .4byte gTasks thumb_func_end ItemUseInBattle_Escape thumb_func_start ItemUseOutOfBattle_EnigmaBerry ItemUseOutOfBattle_EnigmaBerry: @ 80CA520 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080CA544 @ =word_203855E ldrh r0, [r0] bl sub_8070E48 lsls r0, 24 lsrs r0, 24 subs r0, 0x1 cmp r0, 0x14 bls _080CA53A b _080CA62C _080CA53A: lsls r0, 2 ldr r1, _080CA548 @ =_080CA54C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080CA544: .4byte word_203855E _080CA548: .4byte _080CA54C .align 2, 0 _080CA54C: .4byte _080CA5D8 .4byte _080CA5A0 .4byte _080CA5A0 .4byte _080CA5A0 .4byte _080CA5A0 .4byte _080CA5A0 .4byte _080CA5A0 .4byte _080CA62C .4byte _080CA62C .4byte _080CA5BC .4byte _080CA5A0 .4byte _080CA5A0 .4byte _080CA5A0 .4byte _080CA5A0 .4byte _080CA5A0 .4byte _080CA5A0 .4byte _080CA5A0 .4byte _080CA62C .4byte _080CA5F4 .4byte _080CA5F4 .4byte _080CA610 _080CA5A0: ldr r0, _080CA5B8 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r0, 0x1 strh r0, [r1, 0x26] adds r0, r4, 0 bl ItemUseOutOfBattle_Medicine b _080CA640 .align 2, 0 _080CA5B8: .4byte gTasks _080CA5BC: ldr r0, _080CA5D4 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r0, 0x1 strh r0, [r1, 0x26] adds r0, r4, 0 bl ItemUseOutOfBattle_SacredAsh b _080CA640 .align 2, 0 _080CA5D4: .4byte gTasks _080CA5D8: ldr r0, _080CA5F0 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r0, 0x1 strh r0, [r1, 0x26] adds r0, r4, 0 bl ItemUseOutOfBattle_RareCandy b _080CA640 .align 2, 0 _080CA5F0: .4byte gTasks _080CA5F4: ldr r0, _080CA60C @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r0, 0x1 strh r0, [r1, 0x26] adds r0, r4, 0 bl ItemUseOutOfBattle_PPUp b _080CA640 .align 2, 0 _080CA60C: .4byte gTasks _080CA610: ldr r0, _080CA628 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r0, 0x1 strh r0, [r1, 0x26] adds r0, r4, 0 bl ItemUseOutOfBattle_PPRecovery b _080CA640 .align 2, 0 _080CA628: .4byte gTasks _080CA62C: ldr r0, _080CA648 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r0, 0x4 strh r0, [r1, 0x26] adds r0, r4, 0 bl ItemUseOutOfBattle_CannotUse _080CA640: pop {r4} pop {r0} bx r0 .align 2, 0 _080CA648: .4byte gTasks thumb_func_end ItemUseOutOfBattle_EnigmaBerry thumb_func_start ItemUseInBattle_EnigmaBerry ItemUseInBattle_EnigmaBerry: @ 80CA64C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080CA66C @ =word_203855E ldrh r0, [r0] bl sub_8070E48 lsls r0, 24 lsrs r0, 24 cmp r0, 0x15 bhi _080CA6E4 lsls r0, 2 ldr r1, _080CA670 @ =_080CA674 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080CA66C: .4byte word_203855E _080CA670: .4byte _080CA674 .align 2, 0 _080CA674: .4byte _080CA6CC .4byte _080CA6E4 .4byte _080CA6D4 .4byte _080CA6D4 .4byte _080CA6D4 .4byte _080CA6D4 .4byte _080CA6D4 .4byte _080CA6D4 .4byte _080CA6D4 .4byte _080CA6D4 .4byte _080CA6E4 .4byte _080CA6D4 .4byte _080CA6E4 .4byte _080CA6E4 .4byte _080CA6E4 .4byte _080CA6E4 .4byte _080CA6E4 .4byte _080CA6E4 .4byte _080CA6E4 .4byte _080CA6E4 .4byte _080CA6E4 .4byte _080CA6DC _080CA6CC: adds r0, r4, 0 bl ItemUseInBattle_StatIncrease b _080CA6EA _080CA6D4: adds r0, r4, 0 bl ItemUseInBattle_Medicine b _080CA6EA _080CA6DC: adds r0, r4, 0 bl ItemUseInBattle_PPRecovery b _080CA6EA _080CA6E4: adds r0, r4, 0 bl ItemUseOutOfBattle_CannotUse _080CA6EA: pop {r4} pop {r0} bx r0 thumb_func_end ItemUseInBattle_EnigmaBerry thumb_func_start ItemUseOutOfBattle_CannotUse ItemUseOutOfBattle_CannotUse: @ 80CA6F0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080CA70C @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrb r1, [r1, 0xC] bl DisplayDadsAdviceCannotUseItemMessage pop {r0} bx r0 .align 2, 0 _080CA70C: .4byte gTasks thumb_func_end ItemUseOutOfBattle_CannotUse thumb_func_start sub_80CA710 sub_80CA710: @ 80CA710 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080CA744 @ =gUnknown_03004B00 ldrh r0, [r5] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] ldrh r0, [r5, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldrh r0, [r5, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r5, 0x6] strh r0, [r4, 0x30] ldr r0, _080CA748 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CA74C ldrh r0, [r5, 0x8] negs r0, r0 b _080CA74E .align 2, 0 _080CA744: .4byte gUnknown_03004B00 _080CA748: .4byte gUnknown_0202F7C8 _080CA74C: ldrh r0, [r5, 0x8] _080CA74E: strh r0, [r4, 0x34] ldr r0, _080CA760 @ =gUnknown_03004B00 ldrh r0, [r0, 0xA] strh r0, [r4, 0x36] ldr r0, _080CA764 @ =sub_80CA768 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CA760: .4byte gUnknown_03004B00 _080CA764: .4byte sub_80CA768 thumb_func_end sub_80CA710 thumb_func_start sub_80CA768 sub_80CA768: @ 80CA768 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x2E] movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0 ble _080CA7A4 subs r0, r1, 0x1 strh r0, [r4, 0x2E] ldrh r1, [r4, 0x32] lsls r0, r1, 16 asrs r0, 24 strh r0, [r4, 0x26] ldrh r0, [r4, 0x30] adds r1, r0 strh r1, [r4, 0x32] movs r1, 0x38 ldrsh r0, [r4, r1] movs r2, 0x34 ldrsh r1, [r4, r2] bl Sin strh r0, [r4, 0x24] ldrh r0, [r4, 0x36] ldrh r1, [r4, 0x38] adds r0, r1 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] b _080CA7AA _080CA7A4: adds r0, r4, 0 bl move_anim_8072740 _080CA7AA: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CA768 thumb_func_start sub_80CA7B0 sub_80CA7B0: @ 80CA7B0 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r0, _080CA7F0 @ =gUnknown_03004B00 ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] ldr r5, _080CA7F4 @ =gUnknown_0202F7C8 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] ldr r0, _080CA7F8 @ =sub_8078B34 str r0, [r4, 0x1C] ldr r1, _080CA7FC @ =move_anim_8074EE0 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CA7F0: .4byte gUnknown_03004B00 _080CA7F4: .4byte gUnknown_0202F7C8 _080CA7F8: .4byte sub_8078B34 _080CA7FC: .4byte move_anim_8074EE0 thumb_func_end sub_80CA7B0 thumb_func_start sub_80CA800 sub_80CA800: @ 80CA800 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r5, _080CA848 @ =gUnknown_03004B00 ldrb r1, [r5, 0x6] adds r0, r4, 0 bl StartSpriteAnim ldrh r0, [r5, 0x4] strh r0, [r4, 0x2E] ldr r5, _080CA84C @ =gUnknown_0202F7C9 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] ldr r0, _080CA850 @ =sub_8078B34 str r0, [r4, 0x1C] ldr r1, _080CA854 @ =move_anim_8072740 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CA848: .4byte gUnknown_03004B00 _080CA84C: .4byte gUnknown_0202F7C9 _080CA850: .4byte sub_8078B34 _080CA854: .4byte move_anim_8072740 thumb_func_end sub_80CA800 thumb_func_start sub_80CA858 sub_80CA858: @ 80CA858 push {r4-r6,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r6, _080CA8A8 @ =gUnknown_03004B00 ldrh r0, [r6, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] ldr r5, _080CA8AC @ =gUnknown_0202F7C9 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrh r0, [r4, 0x22] strh r0, [r4, 0x34] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] adds r0, r4, 0 bl obj_translate_based_on_private_1_2_3_4 ldrh r0, [r6, 0x6] strh r0, [r4, 0x38] ldr r1, _080CA8B0 @ =sub_80CA8B4 str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CA8A8: .4byte gUnknown_03004B00 _080CA8AC: .4byte gUnknown_0202F7C9 _080CA8B0: .4byte sub_80CA8B4 thumb_func_end sub_80CA858 thumb_func_start sub_80CA8B4 sub_80CA8B4: @ 80CA8B4 push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 beq _080CA8CA adds r0, r4, 0 bl DestroySprite b _080CA91E _080CA8CA: movs r1, 0x38 ldrsh r0, [r4, r1] cmp r0, 0x7F ble _080CA8E4 ldr r0, _080CA8E0 @ =gUnknown_0202F7C9 ldrb r0, [r0] bl sub_8079E90 adds r0, 0x1 b _080CA8EE .align 2, 0 _080CA8E0: .4byte gUnknown_0202F7C9 _080CA8E4: ldr r0, _080CA924 @ =gUnknown_0202F7C9 ldrb r0, [r0] bl sub_8079E90 adds r0, 0x6 _080CA8EE: adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] movs r1, 0x38 ldrsh r0, [r4, r1] movs r1, 0x5 bl Sin ldrh r1, [r4, 0x24] adds r0, r1 strh r0, [r4, 0x24] movs r1, 0x38 ldrsh r0, [r4, r1] movs r1, 0xE bl Cos ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x38] adds r0, 0xF movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] _080CA91E: pop {r4} pop {r0} bx r0 .align 2, 0 _080CA924: .4byte gUnknown_0202F7C9 thumb_func_end sub_80CA8B4 thumb_func_start sub_80CA928 sub_80CA928: @ 80CA928 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 ldr r1, _080CA998 @ =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r5, r0, r1 ldrh r0, [r5, 0x8] subs r0, 0x1 movs r2, 0 strh r0, [r5, 0x8] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080CA982 ldrh r0, [r5, 0xA] adds r0, 0x1 strh r0, [r5, 0xA] movs r0, 0x6 strh r0, [r5, 0x8] ldr r1, _080CA99C @ =gUnknown_03004B00 movs r0, 0xF strh r0, [r1] strh r2, [r1, 0x2] movs r0, 0x50 strh r0, [r1, 0x4] strh r2, [r1, 0x6] ldr r4, _080CA9A0 @ =gSpriteTemplate_83D631C ldr r0, _080CA9A4 @ =gUnknown_0202F7C9 ldrb r0, [r0] bl sub_8079E90 adds r3, r0, 0 adds r3, 0x1 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 movs r1, 0 movs r2, 0 bl CreateSpriteAndAnimate _080CA982: movs r1, 0xA ldrsh r0, [r5, r1] cmp r0, 0xF bne _080CA990 adds r0, r6, 0 bl move_anim_task_del _080CA990: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CA998: .4byte gTasks _080CA99C: .4byte gUnknown_03004B00 _080CA9A0: .4byte gSpriteTemplate_83D631C _080CA9A4: .4byte gUnknown_0202F7C9 thumb_func_end sub_80CA928 thumb_func_start sub_80CA9A8 sub_80CA9A8: @ 80CA9A8 push {r4-r6,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_8078764 ldr r6, _080CA9EC @ =gUnknown_03004B00 ldrh r0, [r6, 0x6] strh r0, [r4, 0x2E] ldr r5, _080CA9F0 @ =gUnknown_0202F7C8 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] ldrh r0, [r6, 0x4] strh r0, [r4, 0x38] adds r0, r4, 0 bl sub_80786EC ldr r0, _080CA9F4 @ =sub_80CA9F8 str r0, [r4, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CA9EC: .4byte gUnknown_03004B00 _080CA9F0: .4byte gUnknown_0202F7C8 _080CA9F4: .4byte sub_80CA9F8 thumb_func_end sub_80CA9A8 thumb_func_start sub_80CA9F8 sub_80CA9F8: @ 80CA9F8 push {r4,lr} adds r4, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080CAA0C adds r0, r4, 0 bl move_anim_8072740 _080CAA0C: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CA9F8 thumb_func_start sub_80CAA14 sub_80CAA14: @ 80CAA14 push {r4,r5,lr} adds r5, r0, 0 bl Random adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 movs r0, 0x7 ands r1, r0 adds r0, r5, 0 bl StartSpriteAnim ldr r4, _080CAA5C @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CAA60 ldrh r0, [r5, 0x20] subs r0, 0x14 b _080CAA64 .align 2, 0 _080CAA5C: .4byte gUnknown_0202F7C8 _080CAA60: ldrh r0, [r5, 0x20] adds r0, 0x14 _080CAA64: strh r0, [r5, 0x20] bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x1F ands r0, r1 adds r0, 0x40 strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] ldr r4, _080CAAC4 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrh r0, [r5, 0x22] strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] adds r0, r5, 0 bl sub_8078D60 bl Random movs r1, 0xFF ands r1, r0 strh r1, [r5, 0x38] adds r0, r5, 0 adds r0, 0x43 ldrb r0, [r0] strh r0, [r5, 0x3A] ldr r1, _080CAAC8 @ =sub_80CAACC str r1, [r5, 0x1C] adds r0, r5, 0 bl _call_via_r1 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CAAC4: .4byte gUnknown_0202F7C9 _080CAAC8: .4byte sub_80CAACC thumb_func_end sub_80CAA14 thumb_func_start sub_80CAACC sub_80CAACC: @ 80CAACC push {r4,lr} adds r4, r0, 0 bl sub_8078CE8 lsls r0, 24 cmp r0, 0 beq _080CAAE2 adds r0, r4, 0 bl move_anim_8072740 b _080CAB12 _080CAAE2: movs r1, 0x38 ldrsh r0, [r4, r1] movs r1, 0xC bl Cos ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] movs r1, 0x38 ldrsh r0, [r4, r1] cmp r0, 0x7E bgt _080CAAFE ldrh r0, [r4, 0x3A] b _080CAB02 _080CAAFE: ldrh r0, [r4, 0x3A] adds r0, 0x1 _080CAB02: adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] ldrh r0, [r4, 0x38] adds r0, 0x18 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] _080CAB12: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CAACC thumb_func_start sub_80CAB18 sub_80CAB18: @ 80CAB18 push {r4-r6,lr} adds r6, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r0, _080CAB78 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CAB38 ldr r1, _080CAB7C @ =gUnknown_03004B00 ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080CAB38: ldr r4, _080CAB7C @ =gUnknown_03004B00 ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] ldr r5, _080CAB80 @ =gUnknown_0202F7C9 ldrb r0, [r5] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] adds r0, r1 strh r0, [r6, 0x32] ldrb r0, [r5] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x6] adds r0, r1 strh r0, [r6, 0x36] ldrh r0, [r4, 0xA] strh r0, [r6, 0x38] adds r0, r6, 0 bl sub_80786EC ldr r0, _080CAB84 @ =sub_80CAB88 str r0, [r6, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CAB78: .4byte gUnknown_0202F7C8 _080CAB7C: .4byte gUnknown_03004B00 _080CAB80: .4byte gUnknown_0202F7C9 _080CAB84: .4byte sub_80CAB88 thumb_func_end sub_80CAB18 thumb_func_start sub_80CAB88 sub_80CAB88: @ 80CAB88 push {r4,lr} adds r4, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080CABB2 adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] movs r0, 0xA strh r0, [r4, 0x2E] ldr r0, _080CABB8 @ =sub_80782D8 str r0, [r4, 0x1C] ldr r1, _080CABBC @ =sub_80CABC0 adds r0, r4, 0 bl oamt_set_x3A_32 _080CABB2: pop {r4} pop {r0} bx r0 .align 2, 0 _080CABB8: .4byte sub_80782D8 _080CABBC: .4byte sub_80CABC0 thumb_func_end sub_80CAB88 thumb_func_start sub_80CABC0 sub_80CABC0: @ 80CABC0 push {r4,lr} adds r4, r0, 0 adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAnim movs r0, 0x3C strh r0, [r4, 0x2E] ldr r0, _080CABF0 @ =sub_80782D8 str r0, [r4, 0x1C] ldr r1, _080CABF4 @ =move_anim_8072740 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4} pop {r0} bx r0 .align 2, 0 _080CABF0: .4byte sub_80782D8 _080CABF4: .4byte move_anim_8072740 thumb_func_end sub_80CABC0 thumb_func_start sub_80CABF8 sub_80CABF8: @ 80CABF8 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_8078764 ldr r5, _080CAC3C @ =gUnknown_03004B00 ldrb r1, [r5, 0x8] adds r0, r4, 0 bl StartSpriteAnim movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0x1 bne _080CAC22 ldrb r0, [r4, 0x1] movs r1, 0xD negs r1, r1 ands r1, r0 movs r0, 0x4 orrs r1, r0 strb r1, [r4, 0x1] _080CAC22: ldrh r0, [r5, 0x6] strh r0, [r4, 0x2E] ldrh r0, [r5, 0x4] strh r0, [r4, 0x30] ldr r1, _080CAC40 @ =sub_80CAC44 str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CAC3C: .4byte gUnknown_03004B00 _080CAC40: .4byte sub_80CAC44 thumb_func_end sub_80CABF8 thumb_func_start sub_80CAC44 sub_80CAC44: @ 80CAC44 push {r4,lr} adds r4, r0, 0 movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x20 bl Sin strh r0, [r4, 0x24] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x3 negs r1, r1 bl Cos ldrh r1, [r4, 0x32] adds r1, 0x18 strh r1, [r4, 0x32] lsls r1, 16 asrs r1, 24 adds r0, r1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x30] subs r0, 0x40 lsls r0, 16 lsrs r0, 16 cmp r0, 0x7F bhi _080CAC98 ldr r0, _080CAC94 @ =gUnknown_0202F7C9 ldrb r0, [r0] bl sub_8079ED4 movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 b _080CACBC .align 2, 0 _080CAC94: .4byte gUnknown_0202F7C9 _080CAC98: ldr r0, _080CACE8 @ =gUnknown_0202F7C9 ldrb r0, [r0] bl sub_8079ED4 adds r0, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _080CACAC movs r2, 0x3 _080CACAC: movs r0, 0x3 ands r2, r0 lsls r2, 2 ldrb r1, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 orrs r0, r2 _080CACBC: strb r0, [r4, 0x5] ldrh r0, [r4, 0x30] adds r0, 0x2 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x30] ldrh r0, [r4, 0x2E] subs r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080CACE0 adds r0, r4, 0 bl move_anim_8072740 _080CACE0: pop {r4} pop {r0} bx r0 .align 2, 0 _080CACE8: .4byte gUnknown_0202F7C9 thumb_func_end sub_80CAC44 thumb_func_start sub_80CACEC sub_80CACEC: @ 80CACEC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080CAD06 bl battle_type_is_double lsls r0, 24 cmp r0, 0 bne _080CAD0E _080CAD06: adds r0, r4, 0 bl move_anim_task_del b _080CAD4A _080CAD0E: ldr r0, _080CAD2C @ =gUnknown_0202F7C9 ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080CAD34 ldr r0, _080CAD30 @ =REG_BG2CNT ldrb r1, [r0] movs r2, 0x3 orrs r1, r2 strb r1, [r0] b _080CAD44 .align 2, 0 _080CAD2C: .4byte gUnknown_0202F7C9 _080CAD30: .4byte REG_BG2CNT _080CAD34: ldr r2, _080CAD50 @ =REG_BG1CNT ldrb r1, [r2] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2] _080CAD44: adds r0, r4, 0 bl move_anim_task_del _080CAD4A: pop {r4} pop {r0} bx r0 .align 2, 0 _080CAD50: .4byte REG_BG1CNT thumb_func_end sub_80CACEC thumb_func_start sub_80CAD54 sub_80CAD54: @ 80CAD54 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0 bl sub_80787B0 ldr r5, _080CAD9C @ =gUnknown_03004B00 ldrh r0, [r5, 0x6] strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] strh r0, [r4, 0x32] ldrh r0, [r4, 0x22] strh r0, [r4, 0x34] ldr r0, _080CADA0 @ =gUnknown_0202F7C8 ldrb r0, [r0] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x4] adds r0, r5 strh r0, [r4, 0x36] adds r0, r4, 0 bl obj_translate_based_on_private_1_2_3_4 movs r0, 0x40 strh r0, [r4, 0x38] ldr r1, _080CADA4 @ =sub_80CADA8 str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CAD9C: .4byte gUnknown_03004B00 _080CADA0: .4byte gUnknown_0202F7C8 _080CADA4: .4byte sub_80CADA8 thumb_func_end sub_80CAD54 thumb_func_start sub_80CADA8 sub_80CADA8: @ 80CADA8 push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 bne _080CAE14 movs r1, 0x38 ldrsh r0, [r4, r1] movs r1, 0x20 bl Sin ldrh r1, [r4, 0x24] adds r0, r1 strh r0, [r4, 0x24] movs r1, 0x38 ldrsh r0, [r4, r1] movs r1, 0x5 negs r1, r1 bl Cos ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x38] subs r0, 0x40 lsls r0, 16 lsrs r0, 16 cmp r0, 0x7F bhi _080CADF4 ldr r0, _080CADF0 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl sub_8079E90 subs r0, 0x1 b _080CADFE .align 2, 0 _080CADF0: .4byte gUnknown_0202F7C8 _080CADF4: ldr r0, _080CAE10 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl sub_8079E90 adds r0, 0x1 _080CADFE: adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] ldrh r0, [r4, 0x38] adds r0, 0x5 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] b _080CAE1A .align 2, 0 _080CAE10: .4byte gUnknown_0202F7C8 _080CAE14: adds r0, r4, 0 bl move_anim_8072740 _080CAE1A: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CADA8 thumb_func_start sub_80CAE20 sub_80CAE20: @ 80CAE20 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r5, _080CAE68 @ =gUnknown_03004B00 ldrh r0, [r5, 0x6] strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] strh r0, [r4, 0x32] ldrh r0, [r4, 0x22] strh r0, [r4, 0x34] ldr r0, _080CAE6C @ =gUnknown_0202F7C8 ldrb r0, [r0] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x4] adds r0, r5 strh r0, [r4, 0x36] adds r0, r4, 0 bl obj_translate_based_on_private_1_2_3_4 movs r0, 0x40 strh r0, [r4, 0x38] ldr r1, _080CAE70 @ =sub_80CAE74 str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CAE68: .4byte gUnknown_03004B00 _080CAE6C: .4byte gUnknown_0202F7C8 _080CAE70: .4byte sub_80CAE74 thumb_func_end sub_80CAE20 thumb_func_start sub_80CAE74 sub_80CAE74: @ 80CAE74 push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 bne _080CAECC movs r1, 0x38 ldrsh r0, [r4, r1] movs r1, 0x8 bl Sin ldrh r1, [r4, 0x24] adds r0, r1 strh r0, [r4, 0x24] ldrh r1, [r4, 0x38] adds r0, r1, 0 subs r0, 0x3B lsls r0, 16 lsrs r0, 16 cmp r0, 0x4 bls _080CAEAC adds r0, r1, 0 subs r0, 0xBB lsls r0, 16 lsrs r0, 16 cmp r0, 0x4 bhi _080CAEC0 _080CAEAC: ldrb r2, [r4, 0x3] lsls r1, r2, 26 lsrs r1, 27 movs r0, 0x8 eors r1, r0 lsls r1, 1 subs r0, 0x47 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x3] _080CAEC0: ldrh r0, [r4, 0x38] adds r0, 0x5 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] b _080CAED2 _080CAECC: adds r0, r4, 0 bl move_anim_8072740 _080CAED2: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CAE74 thumb_func_start sub_80CAED8 sub_80CAED8: @ 80CAED8 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080CAF14 @ =gUnknown_0202F7C8 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] ldr r1, _080CAF18 @ =gUnknown_03004B00 ldrh r0, [r1] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x2] strh r0, [r4, 0x30] ldrh r0, [r1, 0x4] strh r0, [r4, 0x32] ldr r0, _080CAF1C @ =sub_80CAF20 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CAF14: .4byte gUnknown_0202F7C8 _080CAF18: .4byte gUnknown_03004B00 _080CAF1C: .4byte sub_80CAF20 thumb_func_end sub_80CAED8 thumb_func_start sub_80CAF20 sub_80CAF20: @ 80CAF20 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x32] movs r2, 0x32 ldrsh r3, [r1, r2] cmp r3, 0 bne _080CAF54 ldrh r0, [r1, 0x30] movs r2, 0x1 ands r2, r0 cmp r2, 0 beq _080CAF42 movs r0, 0x80 strh r0, [r1, 0x2E] strh r3, [r1, 0x30] strh r3, [r1, 0x32] b _080CAF48 _080CAF42: strh r2, [r1, 0x2E] strh r2, [r1, 0x30] strh r2, [r1, 0x32] _080CAF48: ldr r0, _080CAF50 @ =sub_80CAF6C str r0, [r1, 0x1C] b _080CAF68 .align 2, 0 _080CAF50: .4byte sub_80CAF6C _080CAF54: subs r0, 0x1 strh r0, [r1, 0x32] ldrh r0, [r1, 0x2E] ldrh r2, [r1, 0x20] adds r0, r2 strh r0, [r1, 0x20] ldrh r0, [r1, 0x30] ldrh r2, [r1, 0x22] adds r0, r2 strh r0, [r1, 0x22] _080CAF68: pop {r0} bx r0 thumb_func_end sub_80CAF20 thumb_func_start sub_80CAF6C sub_80CAF6C: @ 80CAF6C push {r4,lr} adds r4, r0, 0 ldr r0, _080CAF8C @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CAF90 movs r1, 0x2E ldrsh r0, [r4, r1] movs r1, 0x19 bl Sin negs r0, r0 b _080CAF9A .align 2, 0 _080CAF8C: .4byte gUnknown_0202F7C8 _080CAF90: movs r1, 0x2E ldrsh r0, [r4, r1] movs r1, 0x19 bl Sin _080CAF9A: strh r0, [r4, 0x24] ldrh r0, [r4, 0x2E] adds r0, 0x2 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _080CAFBA ldrh r0, [r4, 0x26] adds r0, 0x1 strh r0, [r4, 0x26] _080CAFBA: movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0x50 ble _080CAFC8 adds r0, r4, 0 bl move_anim_8072740 _080CAFC8: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CAF6C thumb_func_start sub_80CAFD0 sub_80CAFD0: @ 80CAFD0 push {r4-r6,lr} adds r5, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r0, _080CB024 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CAFF0 ldr r1, _080CB028 @ =gUnknown_03004B00 ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080CAFF0: ldr r6, _080CB028 @ =gUnknown_03004B00 ldrh r0, [r6, 0x8] strh r0, [r5, 0x2E] movs r1, 0xC ldrsh r0, [r6, r1] cmp r0, 0 bne _080CB030 ldr r4, _080CB02C @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x4] adds r0, r1 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x6] adds r0, r6 b _080CB050 .align 2, 0 _080CB024: .4byte gUnknown_0202F7C8 _080CB028: .4byte gUnknown_03004B00 _080CB02C: .4byte gUnknown_0202F7C9 _080CB030: ldr r0, _080CB07C @ =gUnknown_0202F7C9 ldrb r0, [r0] adds r2, r5, 0 adds r2, 0x32 adds r3, r5, 0 adds r3, 0x36 movs r1, 0x1 bl sub_807A3FC ldrh r0, [r6, 0x4] ldrh r1, [r5, 0x32] adds r0, r1 strh r0, [r5, 0x32] ldrh r0, [r6, 0x6] ldrh r1, [r5, 0x36] adds r0, r1 _080CB050: strh r0, [r5, 0x36] ldr r0, _080CB080 @ =gUnknown_03004B00 ldrh r0, [r0, 0xA] strh r0, [r5, 0x38] adds r0, r5, 0 bl sub_80786EC ldr r0, _080CB084 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner adds r4, r0, 0 ldr r0, _080CB07C @ =gUnknown_0202F7C9 ldrb r0, [r0] bl battle_side_get_owner lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _080CB088 movs r0, 0x1 b _080CB08A .align 2, 0 _080CB07C: .4byte gUnknown_0202F7C9 _080CB080: .4byte gUnknown_03004B00 _080CB084: .4byte gUnknown_0202F7C8 _080CB088: movs r0, 0 _080CB08A: strh r0, [r5, 0x2E] ldr r0, _080CB098 @ =sub_80CB09C str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CB098: .4byte sub_80CB09C thumb_func_end sub_80CAFD0 thumb_func_start sub_80CB09C sub_80CB09C: @ 80CB09C push {r4-r7,lr} adds r6, r0, 0 movs r7, 0 ldrh r5, [r6, 0x2E] ldrh r4, [r6, 0x3C] movs r0, 0x1 strh r0, [r6, 0x2E] adds r0, r6, 0 bl sub_8078718 ldrh r0, [r6, 0x3C] strh r5, [r6, 0x2E] lsls r4, 16 asrs r4, 16 cmp r4, 0xC8 ble _080CB0CE lsls r0, 16 asrs r0, 16 cmp r0, 0x37 bgt _080CB0CE ldrh r0, [r6, 0x6] cmp r0, 0 bne _080CB0D4 adds r0, 0x1 strh r0, [r6, 0x6] _080CB0CE: ldrh r0, [r6, 0x6] cmp r0, 0 beq _080CB106 _080CB0D4: movs r1, 0x2E ldrsh r0, [r6, r1] cmp r0, 0 beq _080CB106 adds r3, r6, 0 adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] ldrh r0, [r6, 0x6] adds r0, 0x1 strh r0, [r6, 0x6] lsls r0, 16 lsrs r0, 16 cmp r0, 0x1E bne _080CB106 movs r7, 0x1 _080CB106: movs r2, 0x20 ldrsh r0, [r6, r2] movs r2, 0x24 ldrsh r1, [r6, r2] adds r0, r1 adds r0, 0x10 movs r1, 0x88 lsls r1, 1 cmp r0, r1 bhi _080CB130 movs r0, 0x22 ldrsh r1, [r6, r0] movs r2, 0x26 ldrsh r0, [r6, r2] adds r1, r0 cmp r1, 0xA0 bgt _080CB130 movs r0, 0x10 negs r0, r0 cmp r1, r0 bge _080CB132 _080CB130: movs r7, 0x1 _080CB132: cmp r7, 0 beq _080CB13C adds r0, r6, 0 bl move_anim_8072740 _080CB13C: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80CB09C thumb_func_start sub_80CB144 sub_80CB144: @ 80CB144 push {r4,lr} adds r4, r0, 0 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080CB170 bl battle_type_is_double lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080CB170 ldr r0, _080CB198 @ =gUnknown_0202F7C9 ldrb r0, [r0] adds r2, r4, 0 adds r2, 0x20 adds r3, r4, 0 adds r3, 0x22 movs r1, 0x1 bl sub_807A3FC _080CB170: ldrh r0, [r4, 0x22] adds r0, 0x20 strh r0, [r4, 0x22] ldr r1, _080CB19C @ =gUnknown_03004B00 ldrh r0, [r1] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x2] strh r0, [r4, 0x30] ldrh r0, [r1, 0x4] strh r0, [r4, 0x32] ldrh r0, [r1, 0x6] strh r0, [r4, 0x34] ldrh r0, [r1, 0x8] strh r0, [r4, 0x36] ldr r0, _080CB1A0 @ =sub_80CB1A4 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080CB198: .4byte gUnknown_0202F7C9 _080CB19C: .4byte gUnknown_03004B00 _080CB1A0: .4byte sub_80CB1A4 thumb_func_end sub_80CB144 thumb_func_start sub_80CB1A4 sub_80CB1A4: @ 80CB1A4 push {r4,r5,lr} adds r4, r0, 0 ldrh r1, [r4, 0x30] movs r2, 0x30 ldrsh r0, [r4, r2] cmp r0, 0xFF bne _080CB1BA ldrh r0, [r4, 0x22] subs r0, 0x2 strh r0, [r4, 0x22] b _080CB1C8 _080CB1BA: cmp r0, 0 ble _080CB1C8 ldrh r0, [r4, 0x22] subs r0, 0x2 strh r0, [r4, 0x22] subs r0, r1, 0x2 strh r0, [r4, 0x30] _080CB1C8: ldrh r3, [r4, 0x32] ldrh r5, [r4, 0x38] adds r2, r3, r5 strh r2, [r4, 0x38] movs r0, 0x2E ldrsh r1, [r4, r0] movs r5, 0x36 ldrsh r0, [r4, r5] cmp r1, r0 bge _080CB1E0 adds r0, r2, r3 strh r0, [r4, 0x38] _080CB1E0: ldrh r1, [r4, 0x38] movs r0, 0xFF ands r0, r1 strh r0, [r4, 0x38] movs r1, 0x38 ldrsh r0, [r4, r1] movs r2, 0x34 ldrsh r1, [r4, r2] bl Cos strh r0, [r4, 0x24] movs r5, 0x38 ldrsh r0, [r4, r5] movs r1, 0x5 bl Sin strh r0, [r4, 0x26] movs r1, 0x38 ldrsh r0, [r4, r1] cmp r0, 0x7F bgt _080CB220 ldr r0, _080CB21C @ =gUnknown_0202F7C9 ldrb r0, [r0] bl sub_8079ED4 lsls r0, 24 lsrs r0, 24 subs r0, 0x1 b _080CB22E .align 2, 0 _080CB21C: .4byte gUnknown_0202F7C9 _080CB220: ldr r0, _080CB258 @ =gUnknown_0202F7C9 ldrb r0, [r0] bl sub_8079ED4 lsls r0, 24 lsrs r0, 24 adds r0, 0x1 _080CB22E: movs r1, 0x3 ands r0, r1 lsls r0, 2 ldrb r2, [r4, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r4, 0x5] ldrh r0, [r4, 0x2E] subs r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 cmp r0, 0 bne _080CB252 adds r0, r4, 0 bl move_anim_8072740 _080CB252: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CB258: .4byte gUnknown_0202F7C9 thumb_func_end sub_80CB1A4 thumb_func_start sub_80CB25C sub_80CB25C: @ 80CB25C push {r4,r5,lr} adds r5, r0, 0 movs r1, 0 bl sub_8078764 adds r2, r5, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] ldr r4, _080CB290 @ =gUnknown_03004B00 ldrb r1, [r4, 0x4] adds r0, r5, 0 bl StartSpriteAffineAnim ldrh r0, [r4, 0x4] strh r0, [r5, 0x3A] ldrh r0, [r4, 0x6] strh r0, [r5, 0x3C] ldr r0, _080CB294 @ =sub_80CB298 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CB290: .4byte gUnknown_03004B00 _080CB294: .4byte sub_80CB298 thumb_func_end sub_80CB25C thumb_func_start sub_80CB298 sub_80CB298: @ 80CB298 push {r4,lr} adds r4, r0, 0 ldr r0, _080CB2C8 @ =gUnknown_03004B00 ldrh r1, [r0, 0xE] ldr r0, _080CB2CC @ =0x0000ffff cmp r1, r0 bne _080CB2C2 adds r2, r4, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] movs r0, 0x1 bl obj_id_for_side_relative_to_move movs r0, 0x80 lsls r0, 1 strh r0, [r4, 0x2E] ldr r0, _080CB2D0 @ =sub_80CB2D4 str r0, [r4, 0x1C] _080CB2C2: pop {r4} pop {r0} bx r0 .align 2, 0 _080CB2C8: .4byte gUnknown_03004B00 _080CB2CC: .4byte 0x0000ffff _080CB2D0: .4byte sub_80CB2D4 thumb_func_end sub_80CB298 thumb_func_start sub_80CB2D4 sub_80CB2D4: @ 80CB2D4 push {r4,lr} adds r4, r0, 0 movs r0, 0x1 bl obj_id_for_side_relative_to_move movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0 bne _080CB2EC ldrh r0, [r4, 0x2E] adds r0, 0xB b _080CB2F0 _080CB2EC: ldrh r0, [r4, 0x2E] subs r0, 0xB _080CB2F0: strh r0, [r4, 0x2E] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 bne _080CB30C movs r0, 0 strh r0, [r4, 0x30] ldrh r0, [r4, 0x32] movs r1, 0x1 eors r0, r1 strh r0, [r4, 0x32] _080CB30C: adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080CB33A ldrh r0, [r4, 0x3C] subs r0, 0x1 strh r0, [r4, 0x3C] lsls r0, 16 cmp r0, 0 ble _080CB334 ldrh r1, [r4, 0x3A] lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAffineAnim b _080CB33A _080CB334: adds r0, r4, 0 bl move_anim_8072740 _080CB33A: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CB2D4 thumb_func_start sub_80CB340 sub_80CB340: @ 80CB340 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x1 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080CB36C @ =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 adds r0, 0x3E ldrb r0, [r0] lsls r0, 29 cmp r0, 0 bge _080CB370 adds r0, r4, 0 bl move_anim_task_del b _080CB396 .align 2, 0 _080CB36C: .4byte gSprites _080CB370: adds r0, r2, 0 movs r1, 0x1 bl sub_8078E70 ldr r1, _080CB39C @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r2, _080CB3A0 @ =gUnknown_03004B00 ldrh r1, [r2] strh r1, [r0, 0x8] ldrh r1, [r2, 0x2] strh r1, [r0, 0xA] movs r1, 0x80 lsls r1, 1 strh r1, [r0, 0x1E] ldr r1, _080CB3A4 @ =sub_80CB3A8 str r1, [r0] _080CB396: pop {r4} pop {r0} bx r0 .align 2, 0 _080CB39C: .4byte gTasks _080CB3A0: .4byte gUnknown_03004B00 _080CB3A4: .4byte sub_80CB3A8 thumb_func_end sub_80CB340 thumb_func_start sub_80CB3A8 sub_80CB3A8: @ 80CB3A8 push {r4-r6,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 ldr r1, _080CB428 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r4, r0, r1 ldrh r1, [r4, 0x8] ldrh r0, [r4, 0x1C] adds r1, r0 strh r1, [r4, 0x1C] ldr r2, _080CB42C @ =gSprites lsls r0, r6, 4 adds r0, r6 lsls r0, 2 adds r5, r0, r2 lsls r1, 16 asrs r1, 24 strh r1, [r5, 0x24] ldr r0, _080CB430 @ =gUnknown_0202F7C9 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CB3F2 ldrh r0, [r5, 0x24] negs r0, r0 strh r0, [r5, 0x24] _080CB3F2: ldrh r0, [r4, 0x1E] adds r0, 0x10 strh r0, [r4, 0x1E] movs r0, 0x1E ldrsh r2, [r4, r0] adds r0, r6, 0 adds r1, r2, 0 movs r3, 0 bl obj_id_set_rotscale adds r0, r6, 0 bl sub_8079A64 ldrh r0, [r4, 0xA] subs r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0 bne _080CB420 strh r0, [r4, 0x8] ldr r0, _080CB434 @ =sub_80CB438 str r0, [r4] _080CB420: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CB428: .4byte gTasks _080CB42C: .4byte gSprites _080CB430: .4byte gUnknown_0202F7C9 _080CB434: .4byte sub_80CB438 thumb_func_end sub_80CB3A8 thumb_func_start sub_80CB438 sub_80CB438: @ 80CB438 push {r4-r6,lr} lsls r0, 24 lsrs r3, r0, 24 ldr r0, _080CB484 @ =gUnknown_03004B00 ldrh r1, [r0, 0xE] ldr r0, _080CB488 @ =0x0000ffff cmp r1, r0 bne _080CB494 ldr r0, _080CB48C @ =gTasks lsls r2, r3, 2 adds r1, r2, r3 lsls r1, 3 adds r6, r1, r0 movs r1, 0x8 ldrsh r5, [r6, r1] adds r4, r0, 0 cmp r5, 0 bne _080CB4A8 movs r0, 0x1 bl obj_id_for_side_relative_to_move adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_8078F40 ldr r1, _080CB490 @ =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r0, r1 strh r5, [r0, 0x24] strh r5, [r0, 0x26] ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] b _080CB4C2 .align 2, 0 _080CB484: .4byte gUnknown_03004B00 _080CB488: .4byte 0x0000ffff _080CB48C: .4byte gTasks _080CB490: .4byte gSprites _080CB494: ldr r1, _080CB4C8 @ =gTasks lsls r2, r3, 2 adds r0, r2, r3 lsls r0, 3 adds r0, r1 movs r4, 0x8 ldrsh r0, [r0, r4] adds r4, r1, 0 cmp r0, 0 beq _080CB4C2 _080CB4A8: adds r1, r2, r3 lsls r1, 3 adds r1, r4 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 bne _080CB4C2 adds r0, r3, 0 bl move_anim_task_del _080CB4C2: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CB4C8: .4byte gTasks thumb_func_end sub_80CB438 thumb_func_start sub_80CB4CC sub_80CB4CC: @ 80CB4CC push {r4-r6,lr} adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0 beq _080CB4DE cmp r0, 0x1 beq _080CB538 b _080CB58A _080CB4DE: ldr r6, _080CB530 @ =gUnknown_0202F7C9 ldrb r0, [r6] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080CB4F6 ldr r1, _080CB534 @ =gUnknown_03004B00 movs r2, 0 ldrsh r0, [r1, r2] negs r0, r0 strh r0, [r1] _080CB4F6: ldrb r0, [r6] movs r1, 0 bl sub_8077ABC lsls r0, 24 ldr r4, _080CB534 @ =gUnknown_03004B00 lsrs r0, 24 ldrh r1, [r4] adds r0, r1 strh r0, [r5, 0x20] ldrb r0, [r6] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x2] adds r0, r4 strh r0, [r5, 0x22] adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] b _080CB58A .align 2, 0 _080CB530: .4byte gUnknown_0202F7C9 _080CB534: .4byte gUnknown_03004B00 _080CB538: adds r2, r5, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] adds r0, r5, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080CB58A adds r0, r5, 0 movs r1, 0x1 bl ChangeSpriteAffineAnim movs r0, 0x19 strh r0, [r5, 0x2E] ldr r4, _080CB590 @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] ldr r0, _080CB594 @ =sub_8078CC0 str r0, [r5, 0x1C] ldr r1, _080CB598 @ =move_anim_8072740 adds r0, r5, 0 bl oamt_set_x3A_32 _080CB58A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CB590: .4byte gUnknown_0202F7C8 _080CB594: .4byte sub_8078CC0 _080CB598: .4byte move_anim_8072740 thumb_func_end sub_80CB4CC thumb_func_start sub_80CB59C sub_80CB59C: @ 80CB59C push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0 bne _080CB608 ldr r4, _080CB614 @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r4, _080CB618 @ =gUnknown_03004B00 ldrh r0, [r4] strh r0, [r5, 0x24] ldrh r0, [r4, 0x2] strh r0, [r5, 0x26] ldrb r0, [r4, 0x4] adds r0, 0x1E adds r1, r5, 0 adds r1, 0x43 strb r0, [r1] ldrb r1, [r4, 0x6] adds r0, r5, 0 bl StartSpriteAnim ldrh r0, [r4, 0x8] strh r0, [r5, 0x32] ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] movs r2, 0x22 ldrsh r0, [r5, r2] movs r2, 0x26 ldrsh r1, [r5, r2] adds r0, r1 cmp r0, 0x78 ble _080CB608 ldrh r0, [r5, 0x22] adds r1, r0, 0 subs r1, 0x78 ldrh r2, [r5, 0x26] adds r0, r2 adds r1, r0 strh r1, [r5, 0x22] _080CB608: ldr r0, _080CB61C @ =sub_80CB710 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CB614: .4byte gUnknown_0202F7C8 _080CB618: .4byte gUnknown_03004B00 _080CB61C: .4byte sub_80CB710 thumb_func_end sub_80CB59C thumb_func_start sub_80CB620 sub_80CB620: @ 80CB620 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0x4 mov r9, r0 ldr r4, _080CB6FC @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC mov r8, r0 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r6, _080CB700 @ =gUnknown_0202F7C9 ldrb r0, [r6] movs r1, 0x2 bl sub_8077ABC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r6] movs r1, 0x3 bl sub_8077ABC adds r2, r0, 0 lsls r2, 24 subs r4, r5 lsls r4, 16 lsrs r2, 24 mov r1, r8 subs r2, r1 lsls r2, 16 lsrs r2, 16 lsrs r3, r4, 16 mov r10, r3 asrs r4, 16 ldr r6, _080CB704 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r6, r1] muls r0, r4 movs r1, 0x64 str r2, [sp] bl __divsi3 adds r5, r0 mov r3, r9 strh r5, [r3, 0x20] ldr r2, [sp] lsls r0, r2, 16 asrs r0, 16 movs r3, 0 ldrsh r1, [r6, r3] muls r0, r1 movs r1, 0x64 bl __divsi3 add r8, r0 mov r1, r8 mov r0, r9 strh r1, [r0, 0x22] ldrh r0, [r6, 0x2] mov r3, r9 strh r0, [r3, 0x24] ldrh r0, [r6, 0x4] strh r0, [r3, 0x26] ldrb r0, [r6, 0x6] adds r0, 0x1E mov r1, r9 adds r1, 0x43 strb r0, [r1] ldrb r1, [r6, 0x8] mov r0, r9 bl StartSpriteAnim ldrh r0, [r6, 0xA] mov r1, r9 strh r0, [r1, 0x32] ldr r0, _080CB708 @ =sub_80CB710 str r0, [r1, 0x1C] ldr r1, _080CB70C @ =gUnknown_03000728 mov r3, r9 ldrh r0, [r3, 0x20] strh r0, [r1] ldrh r0, [r3, 0x22] strh r0, [r1, 0x2] mov r0, r10 strh r0, [r1, 0x4] ldr r2, [sp] strh r2, [r1, 0x6] add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CB6FC: .4byte gUnknown_0202F7C8 _080CB700: .4byte gUnknown_0202F7C9 _080CB704: .4byte gUnknown_03004B00 _080CB708: .4byte sub_80CB710 _080CB70C: .4byte gUnknown_03000728 thumb_func_end sub_80CB620 thumb_func_start sub_80CB710 sub_80CB710: @ 80CB710 push {lr} adds r3, r0, 0 ldrh r1, [r3, 0x2E] adds r1, 0x1 strh r1, [r3, 0x2E] lsls r1, 16 asrs r1, 16 movs r2, 0x32 ldrsh r0, [r3, r2] subs r0, 0xA cmp r1, r0 ble _080CB750 movs r0, 0x2E ldrsh r1, [r3, r0] lsrs r0, r1, 31 adds r0, r1, r0 asrs r0, 1 lsls r0, 1 subs r1, r0 movs r2, 0x3E adds r2, r3 mov r12, r2 movs r0, 0x1 ands r1, r0 lsls r1, 2 ldrb r2, [r2] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] _080CB750: movs r2, 0x2E ldrsh r1, [r3, r2] movs r2, 0x32 ldrsh r0, [r3, r2] cmp r1, r0 ble _080CB762 adds r0, r3, 0 bl move_anim_8072740 _080CB762: pop {r0} bx r0 thumb_func_end sub_80CB710 thumb_func_start sub_80CB768 sub_80CB768: @ 80CB768 push {r4-r6,lr} adds r6, r0, 0 movs r1, 0x2E ldrsh r0, [r6, r1] cmp r0, 0 bne _080CB7A8 ldr r5, _080CB7E4 @ =gUnknown_0202F7C8 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 ldr r4, _080CB7E8 @ =gUnknown_03004B00 lsrs r0, 24 ldrh r2, [r4] adds r0, r2 strh r0, [r6, 0x20] ldrb r0, [r5] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x2] adds r0, r1 strh r0, [r6, 0x22] ldrh r0, [r4, 0x4] strh r0, [r6, 0x30] ldrh r0, [r4, 0x6] strh r0, [r6, 0x32] ldrh r0, [r4, 0x8] strh r0, [r6, 0x34] _080CB7A8: ldrh r0, [r6, 0x2E] adds r0, 0x1 strh r0, [r6, 0x2E] ldrh r1, [r6, 0x30] muls r0, r1 strh r0, [r6, 0x24] movs r2, 0x2E ldrsh r1, [r6, r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 movs r1, 0xFF ands r0, r1 movs r2, 0x32 ldrsh r1, [r6, r2] bl Sin strh r0, [r6, 0x26] movs r0, 0x2E ldrsh r1, [r6, r0] movs r2, 0x34 ldrsh r0, [r6, r2] cmp r1, r0 ble _080CB7DE adds r0, r6, 0 bl move_anim_8072740 _080CB7DE: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CB7E4: .4byte gUnknown_0202F7C8 _080CB7E8: .4byte gUnknown_03004B00 thumb_func_end sub_80CB768 thumb_func_start sub_80CB7EC sub_80CB7EC: @ 80CB7EC push {r4,r5,lr} movs r2, 0x20 ldrsh r4, [r0, r2] lsls r4, 8 movs r3, 0x22 ldrsh r2, [r0, r3] orrs r4, r2 movs r5, 0x3A ldrsh r2, [r0, r5] lsls r2, 8 movs r5, 0x3C ldrsh r3, [r0, r5] orrs r2, r3 lsls r1, 8 strh r4, [r0, 0x38] strh r2, [r0, 0x3A] strh r1, [r0, 0x3C] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80CB7EC thumb_func_start sub_80CB814 sub_80CB814: @ 80CB814 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r8, r0 ldrh r0, [r0, 0x38] lsrs r1, r0, 8 mov r10, r1 lsls r0, 24 lsrs r0, 24 mov r9, r0 mov r1, r8 ldrh r0, [r1, 0x3A] lsrs r2, r0, 8 lsls r0, 24 lsrs r4, r0, 24 ldrh r1, [r1, 0x3C] lsls r0, r1, 16 asrs r0, 24 lsls r0, 16 lsrs r6, r0, 16 movs r3, 0xFF ands r3, r1 cmp r2, 0 bne _080CB84E movs r2, 0x20 negs r2, r2 b _080CB856 _080CB84E: cmp r2, 0xFF bne _080CB856 movs r2, 0x88 lsls r2, 1 _080CB856: mov r0, r9 subs r4, r0 lsls r4, 16 lsrs r4, 16 mov r1, r10 subs r0, r2, r1 lsls r5, r3, 16 asrs r5, 16 muls r0, r5 lsls r1, r6, 16 asrs r7, r1, 16 adds r1, r7, 0 bl __divsi3 adds r6, r0, 0 lsls r4, 16 asrs r4, 16 adds r0, r4, 0 muls r0, r5 adds r1, r7, 0 bl __divsi3 add r6, r10 mov r1, r8 strh r6, [r1, 0x20] add r0, r9 strh r0, [r1, 0x22] adds r5, 0x1 lsls r5, 16 lsrs r3, r5, 16 asrs r5, 16 cmp r5, r7 beq _080CB8A8 lsls r1, r7, 8 lsls r0, r3, 16 asrs r0, 16 orrs r0, r1 mov r1, r8 strh r0, [r1, 0x3C] movs r0, 0 b _080CB8AA _080CB8A8: movs r0, 0x1 _080CB8AA: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80CB814 thumb_func_start sub_80CB8B8 sub_80CB8B8: @ 80CB8B8 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0xA bne _080CB8CC adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim _080CB8CC: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x32 ble _080CB8E0 adds r0, r4, 0 bl move_anim_8072740 _080CB8E0: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CB8B8 thumb_func_start sub_80CB8E8 sub_80CB8E8: @ 80CB8E8 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x34 ldrsh r0, [r4, r1] lsls r0, 7 movs r2, 0x36 ldrsh r1, [r4, r2] bl __divsi3 ldrh r1, [r4, 0x2E] adds r1, r0 movs r5, 0 strh r1, [r4, 0x2E] lsls r1, 16 asrs r1, 16 cmp r1, 0x7F ble _080CB912 ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] strh r5, [r4, 0x2E] _080CB912: ldrh r0, [r4, 0x2E] adds r0, 0x80 lsls r0, 16 asrs r0, 16 movs r1, 0x30 ldrsh r2, [r4, r1] lsls r2, 3 movs r1, 0x1E subs r1, r2 lsls r1, 16 asrs r1, 16 bl Sin strh r0, [r4, 0x26] adds r0, r4, 0 bl sub_80CB814 lsls r0, 24 cmp r0, 0 beq _080CB942 strh r5, [r4, 0x26] strh r5, [r4, 0x2E] ldr r0, _080CB948 @ =sub_80CB8B8 str r0, [r4, 0x1C] _080CB942: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CB948: .4byte sub_80CB8B8 thumb_func_end sub_80CB8E8 thumb_func_start sub_80CB94C sub_80CB94C: @ 80CB94C push {r4-r6,lr} adds r5, r0, 0 movs r1, 0 bl sub_80787B0 ldr r4, _080CB994 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080CB998 @ =gUnknown_0202F7C8 ldrb r1, [r0] movs r0, 0x2 eors r0, r1 ldrb r4, [r4] cmp r0, r4 bne _080CB99C strh r6, [r5, 0x3A] adds r0, r2, 0 adds r0, 0xA strh r0, [r5, 0x3C] adds r0, r5, 0 movs r1, 0x3C bl sub_80CB7EC movs r0, 0x1 b _080CB9AE .align 2, 0 _080CB994: .4byte gUnknown_0202F7C9 _080CB998: .4byte gUnknown_0202F7C8 _080CB99C: strh r6, [r5, 0x3A] adds r0, r2, 0 adds r0, 0xA strh r0, [r5, 0x3C] adds r0, r5, 0 movs r1, 0x3C bl sub_80CB7EC movs r0, 0x3 _080CB9AE: strh r0, [r5, 0x34] movs r0, 0x3C strh r0, [r5, 0x36] ldr r0, _080CB9C0 @ =sub_80CB8E8 str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CB9C0: .4byte sub_80CB8E8 thumb_func_end sub_80CB94C thumb_func_start sub_80CB9C4 sub_80CB9C4: @ 80CB9C4 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x34 ldrsh r0, [r4, r1] lsls r0, 7 movs r2, 0x36 ldrsh r1, [r4, r2] bl __divsi3 ldrh r1, [r4, 0x2E] adds r1, r0 movs r5, 0 strh r1, [r4, 0x2E] lsls r1, 16 asrs r1, 16 cmp r1, 0x7F ble _080CB9EE ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] strh r5, [r4, 0x2E] _080CB9EE: ldrh r0, [r4, 0x2E] adds r0, 0x80 lsls r0, 16 asrs r0, 16 movs r1, 0x30 ldrsh r2, [r4, r1] lsls r2, 3 movs r1, 0x1E subs r1, r2 lsls r1, 16 asrs r1, 16 bl Sin strh r0, [r4, 0x26] adds r0, r4, 0 bl sub_80CB814 lsls r0, 24 cmp r0, 0 beq _080CBA20 strh r5, [r4, 0x26] strh r5, [r4, 0x2E] adds r0, r4, 0 bl move_anim_8072740 _080CBA20: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80CB9C4 thumb_func_start sub_80CBA28 sub_80CBA28: @ 80CBA28 push {r4-r6,lr} adds r5, r0, 0 ldr r4, _080CBA64 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080CBA6C strh r0, [r5, 0x3A] adds r0, r6, 0 adds r0, 0xA strh r0, [r5, 0x3C] adds r0, r5, 0 movs r1, 0x28 bl sub_80CB7EC movs r0, 0x3 strh r0, [r5, 0x34] movs r0, 0x3C strh r0, [r5, 0x36] ldr r0, _080CBA68 @ =sub_80CB8E8 b _080CBA96 .align 2, 0 _080CBA64: .4byte gUnknown_0202F7C9 _080CBA68: .4byte sub_80CB8E8 _080CBA6C: movs r0, 0xFF strh r0, [r5, 0x3A] adds r0, r6, 0 adds r0, 0xA strh r0, [r5, 0x3C] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080CBA84 movs r0, 0 strh r0, [r5, 0x3A] _080CBA84: adds r0, r5, 0 movs r1, 0x28 bl sub_80CB7EC movs r0, 0x3 strh r0, [r5, 0x34] movs r0, 0x3C strh r0, [r5, 0x36] ldr r0, _080CBAA0 @ =sub_80CB9C4 _080CBA96: str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CBAA0: .4byte sub_80CB9C4 thumb_func_end sub_80CBA28 thumb_func_start sub_80CBAA4 sub_80CBAA4: @ 80CBAA4 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _080CBABE adds r0, r4, 0 movs r1, 0 bl sub_8078764 ldr r0, _080CBAE4 @ =gUnknown_03004B00 ldrh r0, [r0, 0x4] strh r0, [r4, 0x30] _080CBABE: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] ldrh r1, [r4, 0x30] muls r0, r1 strh r0, [r4, 0x26] adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080CBADE adds r0, r4, 0 bl move_anim_8072740 _080CBADE: pop {r4} pop {r0} bx r0 .align 2, 0 _080CBAE4: .4byte gUnknown_03004B00 thumb_func_end sub_80CBAA4 thumb_func_start sub_80CBAE8 sub_80CBAE8: @ 80CBAE8 push {r4-r6,lr} adds r5, r0, 0 movs r1, 0 bl sub_8078764 ldr r4, _080CBB30 @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080CBB34 @ =gUnknown_0202F7C9 ldrb r1, [r0] movs r0, 0x2 eors r0, r1 ldrb r4, [r4] cmp r0, r4 bne _080CBB38 strh r6, [r5, 0x3A] adds r0, r2, 0 adds r0, 0xA strh r0, [r5, 0x3C] adds r0, r5, 0 movs r1, 0x3C bl sub_80CB7EC movs r0, 0x1 b _080CBB4A .align 2, 0 _080CBB30: .4byte gUnknown_0202F7C8 _080CBB34: .4byte gUnknown_0202F7C9 _080CBB38: strh r6, [r5, 0x3A] adds r0, r2, 0 adds r0, 0xA strh r0, [r5, 0x3C] adds r0, r5, 0 movs r1, 0x3C bl sub_80CB7EC movs r0, 0x3 _080CBB4A: strh r0, [r5, 0x34] movs r0, 0x3C strh r0, [r5, 0x36] ldr r0, _080CBB5C @ =sub_80CBB60 str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CBB5C: .4byte sub_80CBB60 thumb_func_end sub_80CBAE8 thumb_func_start sub_80CBB60 sub_80CBB60: @ 80CBB60 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x34 ldrsh r0, [r4, r1] lsls r0, 7 movs r2, 0x36 ldrsh r1, [r4, r2] bl __divsi3 ldrh r1, [r4, 0x2E] adds r1, r0 movs r5, 0 strh r1, [r4, 0x2E] lsls r1, 16 asrs r1, 16 cmp r1, 0x7F ble _080CBB8A ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] strh r5, [r4, 0x2E] _080CBB8A: ldrh r0, [r4, 0x2E] adds r0, 0x80 lsls r0, 16 asrs r0, 16 movs r1, 0x30 ldrsh r2, [r4, r1] lsls r2, 3 movs r1, 0x1E subs r1, r2 lsls r1, 16 asrs r1, 16 bl Sin strh r0, [r4, 0x26] lsls r0, 16 cmp r0, 0 bne _080CBBBE movs r0, 0x3F bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0x7D bl PlaySE12WithPanning _080CBBBE: adds r0, r4, 0 bl sub_80CB814 lsls r0, 24 cmp r0, 0 beq _080CBBE6 strh r5, [r4, 0x26] strh r5, [r4, 0x2E] ldr r0, _080CBBEC @ =sub_80CB8B8 str r0, [r4, 0x1C] movs r0, 0x40 negs r0, r0 bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0x7D bl PlaySE12WithPanning _080CBBE6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CBBEC: .4byte sub_80CB8B8 thumb_func_end sub_80CBB60 thumb_func_start sub_80CBBF0 sub_80CBBF0: @ 80CBBF0 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _080CBC84 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080CBC18 ldr r0, _080CBC14 @ =gUnknown_03004B00 ldrh r1, [r0, 0x2] strh r1, [r4, 0x30] movs r1, 0x78 strh r1, [r4, 0x20] adds r5, r0, 0 b _080CBC3A .align 2, 0 _080CBC14: .4byte gUnknown_03004B00 _080CBC18: ldr r0, _080CBC74 @ =gUnknown_03004B00 movs r1, 0x2 ldrsh r3, [r0, r1] adds r1, r3, 0 subs r1, 0x20 adds r2, r1, 0 adds r5, r0, 0 cmp r1, 0 bge _080CBC2E adds r2, r3, 0 adds r2, 0xDF _080CBC2E: asrs r0, r2, 8 lsls r0, 8 subs r0, r1, r0 strh r0, [r4, 0x30] movs r0, 0x46 strh r0, [r4, 0x20] _080CBC3A: ldrh r0, [r5] strh r0, [r4, 0x22] strh r0, [r4, 0x32] movs r0, 0x14 strh r0, [r4, 0x36] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x3C bl Cos strh r0, [r4, 0x24] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x14 bl Sin strh r0, [r4, 0x26] ldr r0, _080CBC78 @ =sub_80CBC8C str r0, [r4, 0x1C] ldrh r0, [r4, 0x30] subs r0, 0x1 lsls r0, 16 lsrs r0, 16 cmp r0, 0xBE bhi _080CBC7C adds r1, r4, 0 adds r1, 0x43 movs r0, 0x1F b _080CBC82 .align 2, 0 _080CBC74: .4byte gUnknown_03004B00 _080CBC78: .4byte sub_80CBC8C _080CBC7C: adds r1, r4, 0 adds r1, 0x43 movs r0, 0x1D _080CBC82: strb r0, [r1] _080CBC84: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80CBBF0 thumb_func_start sub_80CBC8C sub_80CBC8C: @ 80CBC8C push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0 beq _080CBC9E cmp r0, 0x1 beq _080CBCCE b _080CBCEE _080CBC9E: ldrh r5, [r4, 0x32] movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0x4E ble _080CBCB6 movs r0, 0x1 strh r0, [r4, 0x34] adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim b _080CBCEE _080CBCB6: movs r1, 0x36 ldrsh r0, [r4, r1] movs r1, 0xA bl __divsi3 adds r0, r5, r0 strh r0, [r4, 0x32] ldrh r1, [r4, 0x36] adds r1, 0x3 strh r1, [r4, 0x36] strh r0, [r4, 0x22] b _080CBCEE _080CBCCE: movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0 beq _080CBCEE adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080CBCEE movs r0, 0 strh r0, [r4, 0x2E] strh r0, [r4, 0x32] ldr r0, _080CBCF4 @ =sub_80CBCF8 str r0, [r4, 0x1C] _080CBCEE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CBCF4: .4byte sub_80CBCF8 thumb_func_end sub_80CBC8C thumb_func_start sub_80CBCF8 sub_80CBCF8: @ 80CBCF8 push {r4-r6,lr} adds r4, r0, 0 ldr r5, _080CBD3C @ =gUnknown_083D680C movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 1 adds r3, r0, r1 adds r0, r5, 0x1 adds r0, r3, r0 ldrh r2, [r4, 0x32] movs r6, 0x32 ldrsh r1, [r4, r6] ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r1, r0 bne _080CBD44 adds r0, r5, 0x2 adds r0, r3, r0 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x7F bne _080CBD30 movs r0, 0 strh r0, [r4, 0x2E] ldr r0, _080CBD40 @ =sub_80CBDB0 str r0, [r4, 0x1C] _080CBD30: movs r0, 0 strh r0, [r4, 0x32] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _080CBDAA .align 2, 0 _080CBD3C: .4byte gUnknown_083D680C _080CBD40: .4byte sub_80CBDB0 _080CBD44: adds r0, r2, 0x1 strh r0, [r4, 0x32] movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 1 adds r0, r1 adds r1, r0, r5 movs r2, 0 ldrsb r2, [r1, r2] adds r1, r5, 0x2 adds r0, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 muls r0, r2 ldrh r1, [r4, 0x30] adds r0, r1 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x30] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080CBD92 ldrh r0, [r4, 0x30] subs r0, 0x1 lsls r0, 16 lsrs r0, 16 cmp r0, 0xBE bhi _080CBD8A adds r1, r4, 0 adds r1, 0x43 movs r0, 0x1F b _080CBD90 _080CBD8A: adds r1, r4, 0 adds r1, 0x43 movs r0, 0x1D _080CBD90: strb r0, [r1] _080CBD92: movs r6, 0x30 ldrsh r0, [r4, r6] movs r1, 0x3C bl Cos strh r0, [r4, 0x24] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x14 bl Sin strh r0, [r4, 0x26] _080CBDAA: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80CBCF8 thumb_func_start sub_80CBDB0 sub_80CBDB0: @ 80CBDB0 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x14 ble _080CBDC2 adds r0, r4, 0 bl move_anim_8072740 _080CBDC2: movs r0, 0x2E ldrsh r1, [r4, r0] lsrs r0, r1, 31 adds r0, r1, r0 asrs r0, 1 lsls r0, 1 subs r1, r0 adds r3, r4, 0 adds r3, 0x3E movs r0, 0x1 ands r1, r0 lsls r1, 2 ldrb r2, [r3] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] pop {r4} pop {r0} bx r0 thumb_func_end sub_80CBDB0 thumb_func_start sub_80CBDF4 sub_80CBDF4: @ 80CBDF4 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _080CBF48 @ =gTasks adds r5, r0, r1 ldr r4, _080CBF4C @ =gUnknown_0202F7C9 ldrb r0, [r4] bl sub_8079E90 lsls r0, 24 lsrs r0, 24 subs r0, 0x1 strh r0, [r5, 0x10] ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x14] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x16] ldrb r0, [r4] movs r1, 0x1 bl sub_807A100 strh r0, [r5, 0x1C] ldrb r0, [r4] movs r1, 0 bl sub_807A100 strh r0, [r5, 0x1E] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 movs r2, 0x1 negs r2, r2 adds r1, r2, 0 cmp r0, 0x1 bne _080CBE5C movs r1, 0x1 _080CBE5C: strh r1, [r5, 0x12] movs r3, 0x12 ldrsh r0, [r5, r3] lsls r0, 6 movs r1, 0x38 subs r1, r0 strh r1, [r5, 0x1A] ldrh r0, [r5, 0x16] subs r0, r1 ldrh r1, [r5, 0x14] adds r0, r1 strh r0, [r5, 0x18] ldr r0, _080CBF50 @ =gSpriteTemplate_83D6884 movs r2, 0x18 ldrsh r1, [r5, r2] movs r3, 0x1A ldrsh r2, [r5, r3] ldrb r3, [r5, 0x10] bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0xC] cmp r0, 0x40 bne _080CBE94 adds r0, r6, 0 bl move_anim_task_del _080CBE94: ldr r4, _080CBF54 @ =gSprites movs r0, 0xC ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0xA strh r1, [r0, 0x2E] movs r2, 0xC ldrsh r1, [r5, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r5, 0x18] strh r1, [r0, 0x30] movs r3, 0xC ldrsh r0, [r5, r3] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r4 movs r1, 0x1C ldrsh r0, [r5, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 adds r0, 0xA movs r3, 0x12 ldrsh r1, [r5, r3] muls r1, r0 ldrh r0, [r5, 0x14] subs r0, r1 strh r0, [r2, 0x32] movs r0, 0xC ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r5, 0x1A] strh r1, [r0, 0x34] movs r1, 0xC ldrsh r0, [r5, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 movs r2, 0x1E ldrsh r0, [r5, r2] lsrs r2, r0, 31 adds r0, r2 asrs r0, 1 adds r0, 0xA movs r3, 0x12 ldrsh r2, [r5, r3] muls r0, r2 ldrh r2, [r5, 0x16] adds r0, r2 strh r0, [r1, 0x36] movs r3, 0xC ldrsh r1, [r5, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl sub_80CC338 movs r1, 0xC ldrsh r2, [r5, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 strh r0, [r1, 0x38] movs r2, 0xC ldrsh r1, [r5, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl sub_80786EC ldr r0, _080CBF58 @ =sub_80CBF5C str r0, [r5] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CBF48: .4byte gTasks _080CBF4C: .4byte gUnknown_0202F7C9 _080CBF50: .4byte gSpriteTemplate_83D6884 _080CBF54: .4byte gSprites _080CBF58: .4byte sub_80CBF5C thumb_func_end sub_80CBDF4 thumb_func_start sub_80CBF5C sub_80CBF5C: @ 80CBF5C push {r4-r6,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080CBFA0 @ =gTasks adds r6, r0, r1 movs r0, 0xC ldrsh r1, [r6, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080CBFA4 @ =gSprites adds r4, r0, r1 movs r1, 0x8 ldrsh r5, [r6, r1] cmp r5, 0x7 bne _080CBF84 b _080CC1B4 _080CBF84: cmp r5, 0x7 bgt _080CBFD2 cmp r5, 0x3 bne _080CBF8E b _080CC0A6 _080CBF8E: cmp r5, 0x3 bgt _080CBFA8 cmp r5, 0x1 beq _080CC038 cmp r5, 0x1 bgt _080CC088 cmp r5, 0 beq _080CC01A b _080CC330 .align 2, 0 _080CBFA0: .4byte gTasks _080CBFA4: .4byte gSprites _080CBFA8: cmp r5, 0x5 bne _080CBFAE b _080CC11C _080CBFAE: cmp r5, 0x5 ble _080CBFB4 b _080CC196 _080CBFB4: adds r0, r6, 0 adds r1, r2, 0 bl sub_80CC358 adds r0, r4, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 bne _080CBFCA b _080CC330 _080CBFCA: movs r0, 0x5 strh r0, [r6, 0x26] movs r0, 0xFF b _080CC32E _080CBFD2: cmp r5, 0xB bne _080CBFD8 b _080CC298 _080CBFD8: cmp r5, 0xB bgt _080CC006 cmp r5, 0x9 bne _080CBFE2 b _080CC206 _080CBFE2: cmp r5, 0x9 ble _080CBFE8 b _080CC27C _080CBFE8: adds r0, r6, 0 adds r1, r2, 0 bl sub_80CC358 adds r0, r4, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 bne _080CBFFE b _080CC330 _080CBFFE: movs r0, 0x9 strh r0, [r6, 0x26] movs r0, 0xFF b _080CC32E _080CC006: cmp r5, 0xD bne _080CC00C b _080CC30A _080CC00C: cmp r5, 0xD bge _080CC012 b _080CC2EA _080CC012: cmp r5, 0xFF bne _080CC018 b _080CC31A _080CC018: b _080CC330 _080CC01A: adds r0, r6, 0 adds r1, r2, 0 bl sub_80CC358 adds r0, r4, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 bne _080CC030 b _080CC330 _080CC030: movs r0, 0x1 strh r0, [r6, 0x26] movs r0, 0xFF b _080CC32E _080CC038: ldrh r2, [r4, 0x24] ldrh r3, [r4, 0x20] adds r2, r3 movs r0, 0 strh r2, [r4, 0x20] ldrh r1, [r4, 0x26] ldrh r3, [r4, 0x22] adds r1, r3 strh r1, [r4, 0x22] strh r0, [r4, 0x24] strh r0, [r4, 0x26] movs r0, 0xA strh r0, [r4, 0x2E] strh r2, [r4, 0x30] ldrh r0, [r6, 0x14] strh r0, [r4, 0x32] strh r1, [r4, 0x34] ldrh r0, [r6, 0x16] strh r0, [r4, 0x36] adds r0, r4, 0 bl sub_80CC338 strh r0, [r4, 0x38] ldrh r0, [r6, 0x10] adds r0, 0x2 strh r0, [r6, 0x10] strh r5, [r6, 0xE] adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] ldrb r1, [r6, 0xE] adds r0, r4, 0 bl StartSpriteAnim adds r0, r4, 0 bl sub_80786EC ldrh r0, [r6, 0x8] adds r0, 0x1 b _080CC32E _080CC088: adds r0, r6, 0 adds r1, r2, 0 bl sub_80CC358 adds r0, r4, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 bne _080CC09E b _080CC330 _080CC09E: movs r0, 0x3 strh r0, [r6, 0x26] movs r0, 0xFF b _080CC32E _080CC0A6: ldrh r1, [r4, 0x24] ldrh r0, [r4, 0x20] adds r1, r0 movs r0, 0 strh r1, [r4, 0x20] ldrh r2, [r4, 0x26] ldrh r3, [r4, 0x22] adds r2, r3 strh r2, [r4, 0x22] strh r0, [r4, 0x24] strh r0, [r4, 0x26] movs r0, 0xA strh r0, [r4, 0x2E] strh r1, [r4, 0x30] movs r1, 0x1C ldrsh r0, [r6, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 adds r0, 0xA movs r3, 0x12 ldrsh r1, [r6, r3] muls r1, r0 ldrh r0, [r6, 0x14] subs r0, r1 strh r0, [r4, 0x32] strh r2, [r4, 0x34] movs r1, 0x1E ldrsh r0, [r6, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 adds r0, 0xA movs r2, 0x12 ldrsh r1, [r6, r2] muls r1, r0 ldrh r0, [r6, 0x16] subs r0, r1 strh r0, [r4, 0x36] adds r0, r4, 0 bl sub_80CC338 strh r0, [r4, 0x38] movs r0, 0x2 strh r0, [r6, 0xE] ldrh r0, [r6, 0x10] adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] ldrb r1, [r6, 0xE] adds r0, r4, 0 bl StartSpriteAnim adds r0, r4, 0 bl sub_80786EC ldrh r0, [r6, 0x8] adds r0, 0x1 b _080CC32E _080CC11C: ldrh r1, [r4, 0x24] ldrh r3, [r4, 0x20] adds r1, r3 movs r0, 0 strh r1, [r4, 0x20] ldrh r2, [r4, 0x26] ldrh r3, [r4, 0x22] adds r2, r3 strh r2, [r4, 0x22] strh r0, [r4, 0x24] strh r0, [r4, 0x26] movs r0, 0xA strh r0, [r4, 0x2E] strh r1, [r4, 0x30] movs r1, 0x1C ldrsh r0, [r6, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 adds r0, 0xA movs r3, 0x12 ldrsh r1, [r6, r3] muls r0, r1 ldrh r1, [r6, 0x14] adds r0, r1 strh r0, [r4, 0x32] strh r2, [r4, 0x34] movs r2, 0x1E ldrsh r0, [r6, r2] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 adds r0, 0xA movs r3, 0x12 ldrsh r1, [r6, r3] muls r0, r1 ldrh r1, [r6, 0x16] adds r0, r1 strh r0, [r4, 0x36] adds r0, r4, 0 bl sub_80CC338 strh r0, [r4, 0x38] ldrh r1, [r6, 0x10] subs r1, 0x2 strh r1, [r6, 0x10] movs r0, 0x3 strh r0, [r6, 0xE] adds r0, r4, 0 adds r0, 0x43 strb r1, [r0] ldrb r1, [r6, 0xE] adds r0, r4, 0 bl StartSpriteAnim adds r0, r4, 0 bl sub_80786EC ldrh r0, [r6, 0x8] adds r0, 0x1 b _080CC32E _080CC196: adds r0, r6, 0 adds r1, r2, 0 bl sub_80CC358 adds r0, r4, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 bne _080CC1AC b _080CC330 _080CC1AC: movs r0, 0x7 strh r0, [r6, 0x26] movs r0, 0xFF b _080CC32E _080CC1B4: ldrh r2, [r4, 0x24] ldrh r3, [r4, 0x20] adds r2, r3 movs r0, 0 strh r2, [r4, 0x20] ldrh r1, [r4, 0x26] ldrh r3, [r4, 0x22] adds r1, r3 strh r1, [r4, 0x22] strh r0, [r4, 0x24] strh r0, [r4, 0x26] movs r0, 0xA strh r0, [r4, 0x2E] strh r2, [r4, 0x30] ldrh r0, [r6, 0x14] strh r0, [r4, 0x32] strh r1, [r4, 0x34] ldrh r0, [r6, 0x16] strh r0, [r4, 0x36] adds r0, r4, 0 bl sub_80CC338 strh r0, [r4, 0x38] ldrh r1, [r6, 0x10] adds r1, 0x2 strh r1, [r6, 0x10] movs r0, 0x4 strh r0, [r6, 0xE] adds r0, r4, 0 adds r0, 0x43 strb r1, [r0] ldrb r1, [r6, 0xE] adds r0, r4, 0 bl StartSpriteAnim adds r0, r4, 0 bl sub_80786EC ldrh r0, [r6, 0x8] adds r0, 0x1 b _080CC32E _080CC206: ldrh r1, [r4, 0x24] ldrh r0, [r4, 0x20] adds r1, r0 movs r0, 0 strh r1, [r4, 0x20] ldrh r2, [r4, 0x26] ldrh r3, [r4, 0x22] adds r2, r3 strh r2, [r4, 0x22] strh r0, [r4, 0x24] strh r0, [r4, 0x26] movs r0, 0xA strh r0, [r4, 0x2E] strh r1, [r4, 0x30] movs r1, 0x1C ldrsh r0, [r6, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 adds r0, 0xA movs r3, 0x12 ldrsh r1, [r6, r3] muls r1, r0 ldrh r0, [r6, 0x14] subs r0, r1 strh r0, [r4, 0x32] strh r2, [r4, 0x34] movs r1, 0x1E ldrsh r0, [r6, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 adds r0, 0xA movs r2, 0x12 ldrsh r1, [r6, r2] muls r0, r1 ldrh r3, [r6, 0x16] adds r0, r3 strh r0, [r4, 0x36] adds r0, r4, 0 bl sub_80CC338 strh r0, [r4, 0x38] movs r0, 0x5 strh r0, [r6, 0xE] ldrh r0, [r6, 0x10] adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] ldrb r1, [r6, 0xE] adds r0, r4, 0 bl StartSpriteAnim adds r0, r4, 0 bl sub_80786EC ldrh r0, [r6, 0x8] adds r0, 0x1 b _080CC32E _080CC27C: adds r0, r6, 0 adds r1, r2, 0 bl sub_80CC358 adds r0, r4, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080CC330 movs r0, 0xB strh r0, [r6, 0x26] movs r0, 0xFF b _080CC32E _080CC298: ldrh r2, [r4, 0x24] ldrh r0, [r4, 0x20] adds r2, r0 movs r0, 0 strh r2, [r4, 0x20] ldrh r1, [r4, 0x26] ldrh r3, [r4, 0x22] adds r1, r3 strh r1, [r4, 0x22] strh r0, [r4, 0x24] strh r0, [r4, 0x26] movs r0, 0xA strh r0, [r4, 0x2E] strh r2, [r4, 0x30] ldrh r0, [r6, 0x18] strh r0, [r4, 0x32] strh r1, [r4, 0x34] ldrh r0, [r6, 0x1A] strh r0, [r4, 0x36] adds r0, r4, 0 bl sub_80CC338 strh r0, [r4, 0x38] ldrh r1, [r6, 0x10] subs r1, 0x2 strh r1, [r6, 0x10] movs r0, 0x6 strh r0, [r6, 0xE] adds r0, r4, 0 adds r0, 0x43 strb r1, [r0] ldrb r1, [r6, 0xE] adds r0, r4, 0 bl StartSpriteAnim adds r0, r4, 0 bl sub_80786EC ldrh r0, [r6, 0x8] adds r0, 0x1 b _080CC32E _080CC2EA: adds r0, r6, 0 adds r1, r2, 0 bl sub_80CC358 adds r0, r4, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080CC330 adds r0, r4, 0 bl DestroySprite ldrh r0, [r6, 0x8] adds r0, 0x1 b _080CC32E _080CC30A: movs r1, 0x20 ldrsh r0, [r6, r1] cmp r0, 0 bne _080CC330 adds r0, r2, 0 bl move_anim_task_del b _080CC330 _080CC31A: ldrh r0, [r6, 0xA] adds r0, 0x1 strh r0, [r6, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 ble _080CC330 movs r0, 0 strh r0, [r6, 0xA] ldrh r0, [r6, 0x26] _080CC32E: strh r0, [r6, 0x8] _080CC330: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80CBF5C thumb_func_start sub_80CC338 sub_80CC338: @ 80CC338 push {lr} movs r2, 0x8 movs r3, 0x36 ldrsh r1, [r0, r3] movs r3, 0x22 ldrsh r0, [r0, r3] cmp r1, r0 bge _080CC34E negs r0, r2 lsls r0, 16 lsrs r2, r0, 16 _080CC34E: lsls r0, r2, 16 asrs r0, 16 pop {r1} bx r1 thumb_func_end sub_80CC338 thumb_func_start sub_80CC358 sub_80CC358: @ 80CC358 push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 lsls r1, 24 lsrs r7, r1, 24 ldrh r0, [r6, 0x24] adds r0, 0x1 strh r0, [r6, 0x24] lsls r0, 16 cmp r0, 0 ble _080CC3EE movs r0, 0 strh r0, [r6, 0x24] ldr r0, _080CC3F8 @ =gSprites mov r8, r0 movs r2, 0xC ldrsh r1, [r6, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 ldrh r1, [r0, 0x24] ldrh r2, [r0, 0x20] adds r1, r2 ldrh r2, [r0, 0x26] ldrh r0, [r0, 0x22] adds r2, r0 ldr r0, _080CC3FC @ =gSpriteTemplate_83D6884 lsls r1, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 ldrb r3, [r6, 0x10] bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _080CC3EE lsls r5, r0, 4 adds r5, r0 lsls r5, 2 mov r0, r8 adds r4, r5, r0 strh r7, [r4, 0x3A] movs r0, 0xC strh r0, [r4, 0x3C] ldr r0, _080CC400 @ =gTasks lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x20] adds r0, 0x1 strh r0, [r1, 0x20] ldrh r2, [r6, 0x22] movs r0, 0x1 ands r0, r2 strh r0, [r4, 0x2E] ldrh r0, [r1, 0x22] adds r0, 0x1 strh r0, [r1, 0x22] ldrb r1, [r6, 0xE] adds r0, r4, 0 bl StartSpriteAnim ldrh r0, [r6, 0x10] adds r4, 0x43 strb r0, [r4] mov r0, r8 adds r0, 0x1C adds r5, r0 ldr r0, _080CC404 @ =sub_80CC408 str r0, [r5] _080CC3EE: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CC3F8: .4byte gSprites _080CC3FC: .4byte gSpriteTemplate_83D6884 _080CC400: .4byte gTasks _080CC404: .4byte sub_80CC408 thumb_func_end sub_80CC358 thumb_func_start sub_80CC408 sub_80CC408: @ 80CC408 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080CC46A movs r0, 0 strh r0, [r4, 0x2E] adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _080CC46A ldr r3, _080CC470 @ =gTasks movs r0, 0x3C ldrsh r1, [r4, r0] lsls r1, 1 movs r0, 0x3A ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] adds r0, r4, 0 bl DestroySprite _080CC46A: pop {r4} pop {r0} bx r0 .align 2, 0 _080CC470: .4byte gTasks thumb_func_end sub_80CC408 thumb_func_start sub_80CC474 sub_80CC474: @ 80CC474 push {r4-r7,lr} adds r4, r0, 0 ldr r0, _080CC488 @ =gUnknown_03004B00 movs r1, 0xC ldrsh r0, [r0, r1] cmp r0, 0 bne _080CC490 ldr r0, _080CC48C @ =gUnknown_0202F7C8 b _080CC492 .align 2, 0 _080CC488: .4byte gUnknown_03004B00 _080CC48C: .4byte gUnknown_0202F7C8 _080CC490: ldr r0, _080CC4B0 @ =gUnknown_0202F7C9 _080CC492: ldrb r6, [r0] adds r0, r6, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CC4BC movs r0, 0 strh r0, [r4, 0x36] ldr r1, _080CC4B4 @ =gUnknown_03004B00 ldrh r0, [r1, 0x6] strh r0, [r4, 0x32] ldr r0, _080CC4B8 @ =0x0000fff0 b _080CC4CC .align 2, 0 _080CC4B0: .4byte gUnknown_0202F7C9 _080CC4B4: .4byte gUnknown_03004B00 _080CC4B8: .4byte 0x0000fff0 _080CC4BC: movs r0, 0x1 strh r0, [r4, 0x36] ldr r1, _080CC4F0 @ =gUnknown_03004B00 ldrh r0, [r1, 0x6] negs r0, r0 strh r0, [r4, 0x32] movs r0, 0x80 lsls r0, 1 _080CC4CC: strh r0, [r4, 0x20] adds r7, r1, 0 adds r5, r7, 0 ldrh r0, [r5, 0x2] strh r0, [r4, 0x30] ldrh r0, [r5, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r5, 0x8] strh r0, [r4, 0x34] movs r1, 0xA ldrsh r0, [r5, r1] cmp r0, 0x1 beq _080CC502 cmp r0, 0x1 bgt _080CC4F4 cmp r0, 0 beq _080CC4FE b _080CC56C .align 2, 0 _080CC4F0: .4byte gUnknown_03004B00 _080CC4F4: cmp r0, 0x2 beq _080CC508 cmp r0, 0x3 beq _080CC534 b _080CC56C _080CC4FE: ldrh r0, [r5] b _080CC518 _080CC502: ldrh r0, [r5] strh r0, [r4, 0x22] b _080CC54E _080CC508: adds r0, r6, 0 movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r5, [r5] adds r0, r5 _080CC518: strh r0, [r4, 0x22] adds r0, r6, 0 bl sub_8079ED4 movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x5] b _080CC56C _080CC534: ldr r0, _080CC578 @ =gUnknown_0202F7C9 ldrb r0, [r0] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r7, [r7] adds r0, r7 strh r0, [r4, 0x22] movs r0, 0x1 bl obj_id_for_side_relative_to_move _080CC54E: adds r0, r6, 0 bl sub_8079ED4 lsls r0, 24 lsrs r0, 24 adds r0, 0x1 movs r1, 0x3 ands r0, r1 lsls r0, 2 ldrb r2, [r4, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r4, 0x5] _080CC56C: ldr r0, _080CC57C @ =sub_80CC580 str r0, [r4, 0x1C] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CC578: .4byte gUnknown_0202F7C9 _080CC57C: .4byte sub_80CC580 thumb_func_end sub_80CC474 thumb_func_start sub_80CC580 sub_80CC580: @ 80CC580 push {r4,r5,lr} adds r4, r0, 0 movs r0, 0x3C ldrsh r3, [r4, r0] ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] movs r1, 0x30 ldrsh r2, [r4, r1] ldr r1, _080CC5D4 @ =gSineTable movs r5, 0x2E ldrsh r0, [r4, r5] lsls r0, 1 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] muls r0, r2 asrs r0, 8 strh r0, [r4, 0x26] movs r2, 0x32 ldrsh r0, [r4, r2] muls r0, r3 strh r0, [r4, 0x24] movs r5, 0x34 ldrsh r0, [r4, r5] muls r0, r3 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x2E] movs r1, 0x36 ldrsh r0, [r4, r1] cmp r0, 0 bne _080CC5D8 movs r2, 0x24 ldrsh r0, [r4, r2] movs r5, 0x20 ldrsh r1, [r4, r5] adds r0, r1 cmp r0, 0xF7 ble _080CC5F0 b _080CC5EA .align 2, 0 _080CC5D4: .4byte gSineTable _080CC5D8: movs r1, 0x24 ldrsh r0, [r4, r1] movs r2, 0x20 ldrsh r1, [r4, r2] adds r0, r1 movs r1, 0x10 negs r1, r1 cmp r0, r1 bgt _080CC5F0 _080CC5EA: adds r0, r4, 0 bl move_anim_8074EE0 _080CC5F0: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80CC580 thumb_func_start sub_80CC5F8 sub_80CC5F8: @ 80CC5F8 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _080CC618 @ =gTasks adds r5, r0, r1 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0 beq _080CC61C cmp r0, 0x1 beq _080CC650 b _080CC6AA .align 2, 0 _080CC618: .4byte gTasks _080CC61C: ldr r0, _080CC648 @ =0x0000274f bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 movs r2, 0x80 lsls r2, 1 adds r4, r2, 0 adds r0, r4 strh r0, [r5, 0x18] ldr r0, _080CC64C @ =0x000027b0 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 adds r0, r4 strh r0, [r5, 0x20] ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] b _080CC6AA .align 2, 0 _080CC648: .4byte 0x0000274f _080CC64C: .4byte 0x000027b0 _080CC650: ldrh r0, [r5, 0x1A] adds r0, 0x1 movs r7, 0 strh r0, [r5, 0x1A] lsls r0, 16 cmp r0, 0 blt _080CC6AA strh r7, [r5, 0x1A] ldrh r0, [r5, 0x18] ldrb r2, [r5, 0x1C] ldr r4, _080CC6C4 @ =gUnknown_083D6984 movs r3, 0x1E ldrsh r1, [r5, r3] lsls r1, 1 adds r1, r4 ldrh r3, [r1] movs r1, 0x10 bl BlendPalette ldrh r0, [r5, 0x20] ldrb r2, [r5, 0x1C] movs r3, 0x1E ldrsh r1, [r5, r3] lsls r1, 1 adds r1, r4 ldrh r3, [r1] movs r1, 0x10 bl BlendPalette ldrh r0, [r5, 0x1C] adds r0, 0x1 strh r0, [r5, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x11 bne _080CC6AA strh r7, [r5, 0x1C] ldrh r0, [r5, 0x1E] adds r0, 0x1 strh r0, [r5, 0x1E] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 bne _080CC6AA strh r7, [r5, 0x1E] _080CC6AA: ldr r0, _080CC6C8 @ =gUnknown_03004B00 movs r2, 0xE ldrsh r1, [r0, r2] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080CC6BE adds r0, r6, 0 bl move_anim_task_del _080CC6BE: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CC6C4: .4byte gUnknown_083D6984 _080CC6C8: .4byte gUnknown_03004B00 thumb_func_end sub_80CC5F8 thumb_func_start sub_80CC6CC sub_80CC6CC: @ 80CC6CC push {r4-r7,lr} sub sp, 0x4 adds r6, r0, 0 ldr r1, _080CC6E4 @ =gUnknown_03004B00 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 bne _080CC6E8 adds r0, r6, 0 bl move_anim_8072740 b _080CC7C2 .align 2, 0 _080CC6E4: .4byte gUnknown_03004B00 _080CC6E8: movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 bne _080CC6F8 ldr r4, _080CC6F4 @ =gUnknown_0202F7C8 b _080CC6FA .align 2, 0 _080CC6F4: .4byte gUnknown_0202F7C8 _080CC6F8: ldr r4, _080CC734 @ =gUnknown_0202F7C9 _080CC6FA: ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r5, r0, 24 ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080CC738 @ =gUnknown_03004B00 ldrh r1, [r0, 0x8] strh r1, [r6, 0x2E] movs r3, 0x2 ldrsh r1, [r0, r3] adds r7, r0, 0 cmp r1, 0 bne _080CC73C ldrh r0, [r7, 0x4] adds r0, r5 strh r0, [r6, 0x20] ldrh r0, [r7, 0x6] adds r0, r2 strh r0, [r6, 0x22] strh r5, [r6, 0x38] strh r2, [r6, 0x3A] b _080CC74C .align 2, 0 _080CC734: .4byte gUnknown_0202F7C9 _080CC738: .4byte gUnknown_03004B00 _080CC73C: strh r5, [r6, 0x20] strh r2, [r6, 0x22] ldrh r0, [r7, 0x4] adds r0, r5 strh r0, [r6, 0x38] ldrh r0, [r7, 0x6] adds r0, r2 strh r0, [r6, 0x3A] _080CC74C: ldrh r4, [r6, 0x20] lsls r0, r4, 4 strh r0, [r6, 0x30] ldrh r5, [r6, 0x22] lsls r0, r5, 4 strh r0, [r6, 0x32] movs r1, 0x38 ldrsh r0, [r6, r1] movs r2, 0x20 ldrsh r1, [r6, r2] subs r0, r1 lsls r0, 4 movs r3, 0x8 ldrsh r1, [r7, r3] bl __divsi3 strh r0, [r6, 0x34] movs r1, 0x3A ldrsh r0, [r6, r1] movs r2, 0x22 ldrsh r1, [r6, r2] subs r0, r1 lsls r0, 4 movs r3, 0x8 ldrsh r1, [r7, r3] bl __divsi3 strh r0, [r6, 0x36] ldrh r0, [r6, 0x38] subs r0, r4 lsls r0, 16 asrs r0, 16 ldrh r1, [r6, 0x3A] subs r1, r5 lsls r1, 16 asrs r1, 16 bl sub_80790F0 lsls r0, 16 lsrs r4, r0, 16 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080CC7AE ldr r1, _080CC7CC @ =0xffff8000 adds r0, r4, r1 lsls r0, 16 lsrs r4, r0, 16 _080CC7AE: movs r3, 0x80 lsls r3, 1 str r4, [sp] adds r0, r6, 0 movs r1, 0 adds r2, r3, 0 bl sub_8078FDC ldr r0, _080CC7D0 @ =sub_80CC7D4 str r0, [r6, 0x1C] _080CC7C2: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CC7CC: .4byte 0xffff8000 _080CC7D0: .4byte sub_80CC7D4 thumb_func_end sub_80CC6CC thumb_func_start sub_80CC7D4 sub_80CC7D4: @ 80CC7D4 push {r4,lr} adds r2, r0, 0 ldrh r3, [r2, 0x2E] movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0 beq _080CC804 ldrh r0, [r2, 0x34] ldrh r4, [r2, 0x30] adds r0, r4 strh r0, [r2, 0x30] ldrh r1, [r2, 0x36] ldrh r4, [r2, 0x32] adds r1, r4 strh r1, [r2, 0x32] lsls r0, 16 asrs r0, 20 strh r0, [r2, 0x20] lsls r1, 16 asrs r1, 20 strh r1, [r2, 0x22] subs r0, r3, 0x1 strh r0, [r2, 0x2E] b _080CC80A _080CC804: adds r0, r2, 0 bl move_anim_8074EE0 _080CC80A: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CC7D4 thumb_func_start sub_80CC810 sub_80CC810: @ 80CC810 push {lr} adds r2, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080CC826 adds r0, r2, 0 bl move_anim_8072740 _080CC826: pop {r0} bx r0 thumb_func_end sub_80CC810 thumb_func_start sub_80CC82C sub_80CC82C: @ 80CC82C push {r4,lr} adds r4, r0, 0 ldr r0, _080CC84C @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CC854 ldr r2, _080CC850 @ =gUnknown_03004B00 ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 strh r0, [r4, 0x20] ldrh r0, [r2, 0x2] b _080CC860 .align 2, 0 _080CC84C: .4byte gUnknown_0202F7C8 _080CC850: .4byte gUnknown_03004B00 _080CC854: ldr r0, _080CC878 @ =gUnknown_03004B00 ldrh r1, [r0] ldrh r2, [r4, 0x20] adds r1, r2 strh r1, [r4, 0x20] ldrh r0, [r0, 0x2] _080CC860: ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldr r0, _080CC87C @ =sub_8078600 str r0, [r4, 0x1C] ldr r1, _080CC880 @ =move_anim_8072740 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4} pop {r0} bx r0 .align 2, 0 _080CC878: .4byte gUnknown_03004B00 _080CC87C: .4byte sub_8078600 _080CC880: .4byte move_anim_8072740 thumb_func_end sub_80CC82C thumb_func_start sub_80CC884 sub_80CC884: @ 80CC884 push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080CC8BC @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080CC89E adds r0, r5, 0 movs r1, 0x1 bl StartSpriteAnim _080CC89E: ldr r0, _080CC8C0 @ =sub_80CC810 str r0, [r5, 0x1C] ldr r4, _080CC8C4 @ =gUnknown_03004B00 movs r0, 0 ldrsh r1, [r4, r0] adds r0, r5, 0 bl sub_807867C ldrh r0, [r4, 0x2] ldrh r1, [r5, 0x22] adds r0, r1 strh r0, [r5, 0x22] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CC8BC: .4byte gUnknown_0202F7C8 _080CC8C0: .4byte sub_80CC810 _080CC8C4: .4byte gUnknown_03004B00 thumb_func_end sub_80CC884 thumb_func_start sub_80CC8C8 sub_80CC8C8: @ 80CC8C8 push {r4,lr} adds r4, r0, 0 ldr r1, _080CC908 @ =gUnknown_03004B00 ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] ldrh r0, [r1, 0x2] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] ldrh r0, [r1, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x6] strh r0, [r4, 0x30] ldrh r0, [r1, 0x8] strh r0, [r4, 0x34] ldrh r0, [r1, 0xA] strh r0, [r4, 0x38] ldrb r1, [r1, 0xC] adds r0, r4, 0 bl StartSpriteAffineAnim ldr r1, _080CC90C @ =move_anim_8074EE0 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080CC910 @ =sub_8078504 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080CC908: .4byte gUnknown_03004B00 _080CC90C: .4byte move_anim_8074EE0 _080CC910: .4byte sub_8078504 thumb_func_end sub_80CC8C8 thumb_func_start sub_80CC914 sub_80CC914: @ 80CC914 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080CC964 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080CC948 ldrh r0, [r5, 0x22] adds r0, 0x8 strh r0, [r5, 0x22] _080CC948: ldr r0, _080CC968 @ =sub_80CCB00 str r0, [r5, 0x1C] ldr r0, _080CC96C @ =gUnknown_03004B00 movs r2, 0x4 ldrsh r1, [r0, r2] adds r3, r0, 0 cmp r1, 0 bne _080CC970 ldrh r0, [r3] ldrh r1, [r5, 0x20] adds r0, r1 strh r0, [r5, 0x20] b _080CC984 .align 2, 0 _080CC964: .4byte gUnknown_0202F7C9 _080CC968: .4byte sub_80CCB00 _080CC96C: .4byte gUnknown_03004B00 _080CC970: ldrh r0, [r5, 0x20] ldrh r1, [r3] subs r0, r1 strh r0, [r5, 0x20] adds r2, r5, 0 adds r2, 0x3F ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] _080CC984: ldrh r0, [r3, 0x2] ldrh r2, [r5, 0x22] adds r0, r2 strh r0, [r5, 0x22] ldr r1, _080CC9B8 @ =0xfffffc00 adds r0, r1, 0 ldrh r2, [r5, 0x30] adds r1, r0, r2 strh r1, [r5, 0x30] movs r2, 0x80 lsls r2, 3 adds r0, r2, 0 ldrh r2, [r5, 0x32] adds r0, r2 strh r0, [r5, 0x32] ldrh r0, [r3, 0x4] strh r0, [r5, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bne _080CC9B2 negs r0, r1 strh r0, [r5, 0x30] _080CC9B2: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CC9B8: .4byte 0xfffffc00 thumb_func_end sub_80CC914 thumb_func_start sub_80CC9BC sub_80CC9BC: @ 80CC9BC push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 ldr r0, _080CC9D8 @ =gUnknown_03004B00 movs r1, 0x6 ldrsh r0, [r0, r1] cmp r0, 0x1 beq _080CC9DC cmp r0, 0x1 ble _080CCA58 cmp r0, 0x2 beq _080CC9FC b _080CCA58 .align 2, 0 _080CC9D8: .4byte gUnknown_03004B00 _080CC9DC: ldr r5, _080CC9F8 @ =gUnknown_0202F7C9 ldrb r0, [r5] movs r4, 0x2 eors r0, r4 movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r5] eors r4, r0 adds r0, r4, 0 b _080CCA68 .align 2, 0 _080CC9F8: .4byte gUnknown_0202F7C9 _080CC9FC: ldr r5, _080CCA54 @ =gUnknown_0202F7C9 ldrb r0, [r5] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r5] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r4, r0, 24 ldrb r0, [r5] movs r2, 0x2 mov r8, r2 mov r1, r8 eors r0, r1 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080CCA72 ldrb r0, [r5] mov r2, r8 eors r0, r2 movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, r7 lsrs r7, r0, 1 ldrb r0, [r5] mov r1, r8 eors r0, r1 movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, r4 lsrs r4, r0, 1 b _080CCA72 .align 2, 0 _080CCA54: .4byte gUnknown_0202F7C9 _080CCA58: ldr r4, _080CCAA4 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r4] _080CCA68: movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r4, r0, 24 _080CCA72: strh r7, [r6, 0x20] strh r4, [r6, 0x22] ldr r0, _080CCAA4 @ =gUnknown_0202F7C9 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080CCA8A ldrh r0, [r6, 0x22] adds r0, 0x8 strh r0, [r6, 0x22] _080CCA8A: ldr r0, _080CCAA8 @ =sub_80CCB00 str r0, [r6, 0x1C] ldr r0, _080CCAAC @ =gUnknown_03004B00 movs r2, 0x4 ldrsh r1, [r0, r2] adds r3, r0, 0 cmp r1, 0 bne _080CCAB0 ldrh r0, [r3] ldrh r1, [r6, 0x20] adds r0, r1 strh r0, [r6, 0x20] b _080CCAC4 .align 2, 0 _080CCAA4: .4byte gUnknown_0202F7C9 _080CCAA8: .4byte sub_80CCB00 _080CCAAC: .4byte gUnknown_03004B00 _080CCAB0: ldrh r0, [r6, 0x20] ldrh r1, [r3] subs r0, r1 strh r0, [r6, 0x20] adds r2, r6, 0 adds r2, 0x3F ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] _080CCAC4: ldrh r0, [r3, 0x2] ldrh r2, [r6, 0x22] adds r0, r2 strh r0, [r6, 0x22] ldr r1, _080CCAFC @ =0xfffffc00 adds r0, r1, 0 ldrh r2, [r6, 0x30] adds r1, r0, r2 strh r1, [r6, 0x30] movs r2, 0x80 lsls r2, 3 adds r0, r2, 0 ldrh r2, [r6, 0x32] adds r0, r2 strh r0, [r6, 0x32] ldrh r0, [r3, 0x4] strh r0, [r6, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bne _080CCAF2 negs r0, r1 strh r0, [r6, 0x30] _080CCAF2: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CCAFC: .4byte 0xfffffc00 thumb_func_end sub_80CC9BC thumb_func_start sub_80CCB00 sub_80CCB00: @ 80CCB00 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x30] ldrh r2, [r4, 0x34] adds r0, r1, r2 strh r0, [r4, 0x34] ldrh r0, [r4, 0x32] ldrh r2, [r4, 0x36] adds r0, r2 strh r0, [r4, 0x36] movs r2, 0x38 ldrsh r0, [r4, r2] cmp r0, 0 bne _080CCB22 adds r0, r1, 0 adds r0, 0x18 b _080CCB26 _080CCB22: adds r0, r1, 0 subs r0, 0x18 _080CCB26: strh r0, [r4, 0x30] ldrh r0, [r4, 0x32] subs r0, 0x18 strh r0, [r4, 0x32] ldrh r0, [r4, 0x34] lsls r0, 16 asrs r0, 24 strh r0, [r4, 0x24] ldrh r0, [r4, 0x36] lsls r0, 16 asrs r0, 24 strh r0, [r4, 0x26] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 bne _080CCB5C ldr r1, _080CCB64 @ =move_anim_8072740 adds r0, r4, 0 bl oamt_set_x3A_32 movs r0, 0x3 strh r0, [r4, 0x2E] ldr r0, _080CCB68 @ =sub_80782D8 str r0, [r4, 0x1C] _080CCB5C: pop {r4} pop {r0} bx r0 .align 2, 0 _080CCB64: .4byte move_anim_8072740 _080CCB68: .4byte sub_80782D8 thumb_func_end sub_80CCB00 thumb_func_start unref_sub_80CCB6C unref_sub_80CCB6C: @ 80CCB6C push {r4,r5,lr} adds r5, r0, 0 ldrh r1, [r5, 0x32] movs r2, 0x32 ldrsh r0, [r5, r2] cmp r0, 0x1 ble _080CCC10 ldrh r1, [r5, 0x34] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080CCBC8 adds r3, r5, 0 adds r3, 0x3E ldrb r1, [r3] movs r2, 0x5 negs r2, r2 adds r0, r2, 0 ands r0, r1 strb r0, [r3] ldr r4, _080CCBC4 @ =gSprites movs r0, 0x2E ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r3, [r0] adds r1, r2, 0 ands r1, r3 strb r1, [r0] movs r0, 0x30 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] ands r2, r1 strb r2, [r0] b _080CCBFE .align 2, 0 _080CCBC4: .4byte gSprites _080CCBC8: adds r1, r5, 0 adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] ldr r3, _080CCC0C @ =gSprites movs r0, 0x2E ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r1, [r0] orrs r1, r2 strb r1, [r0] movs r0, 0x30 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r1, [r0] orrs r1, r2 strb r1, [r0] _080CCBFE: movs r0, 0 strh r0, [r5, 0x32] ldrh r0, [r5, 0x34] adds r0, 0x1 strh r0, [r5, 0x34] b _080CCC14 .align 2, 0 _080CCC0C: .4byte gSprites _080CCC10: adds r0, r1, 0x1 strh r0, [r5, 0x32] _080CCC14: movs r1, 0x34 ldrsh r0, [r5, r1] cmp r0, 0xA bne _080CCC44 movs r2, 0x2E ldrsh r1, [r5, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _080CCC4C @ =gSprites adds r0, r4 bl DestroySprite movs r0, 0x30 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite adds r0, r5, 0 bl move_anim_8072740 _080CCC44: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CCC4C: .4byte gSprites thumb_func_end unref_sub_80CCB6C thumb_func_start sub_80CCC50 sub_80CCC50: @ 80CCC50 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080CCC70 @ =gUnknown_03004B00 ldrh r0, [r4, 0x4] strh r0, [r5, 0x2E] ldr r0, _080CCC74 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CCC78 ldrh r0, [r5, 0x20] ldrh r1, [r4] subs r0, r1 b _080CCC7E .align 2, 0 _080CCC70: .4byte gUnknown_03004B00 _080CCC74: .4byte gUnknown_0202F7C8 _080CCC78: ldrh r0, [r4] ldrh r1, [r5, 0x20] adds r0, r1 _080CCC7E: strh r0, [r5, 0x20] ldr r4, _080CCCAC @ =gUnknown_03004B00 ldrb r1, [r4, 0xA] adds r0, r5, 0 bl StartSpriteAnim ldrh r0, [r4, 0x6] negs r0, r0 strh r0, [r5, 0x30] ldrh r0, [r4, 0x2] ldrh r1, [r5, 0x22] adds r0, r1 strh r0, [r5, 0x22] ldrh r0, [r4, 0x8] strh r0, [r5, 0x34] ldr r1, _080CCCB0 @ =sub_80CCCB4 str r1, [r5, 0x1C] adds r0, r5, 0 bl _call_via_r1 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CCCAC: .4byte gUnknown_03004B00 _080CCCB0: .4byte sub_80CCCB4 thumb_func_end sub_80CCC50 thumb_func_start sub_80CCCB4 sub_80CCCB4: @ 80CCCB4 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] movs r1, 0x64 bl Cos strh r0, [r4, 0x24] movs r2, 0x2E ldrsh r0, [r4, r2] movs r1, 0x14 bl Sin strh r0, [r4, 0x26] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x7F bgt _080CCCE0 adds r1, r4, 0 adds r1, 0x43 movs r0, 0 b _080CCCE6 _080CCCE0: adds r1, r4, 0 adds r1, 0x43 movs r0, 0xE _080CCCE6: strb r0, [r1] ldrh r0, [r4, 0x30] ldrh r2, [r4, 0x2E] adds r0, r2 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x38] adds r0, 0x82 strh r0, [r4, 0x38] lsls r0, 16 asrs r0, 24 ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 movs r2, 0x34 ldrsh r1, [r4, r2] cmp r0, r1 bne _080CCD1C adds r0, r4, 0 bl move_anim_8072740 _080CCD1C: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CCCB4 thumb_func_start sub_80CCD24 sub_80CCD24: @ 80CCD24 push {r4-r6,lr} adds r5, r0, 0 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080CCD3A ldr r1, _080CCD98 @ =gUnknown_03004B00 ldrh r0, [r1, 0x2] adds r0, 0x8 strh r0, [r1, 0x2] _080CCD3A: ldr r6, _080CCD9C @ =gUnknown_0202F7C8 ldrb r0, [r6] movs r1, 0 bl sub_8077EE4 lsls r0, 24 ldr r4, _080CCD98 @ =gUnknown_03004B00 lsrs r0, 24 ldrh r1, [r4] adds r0, r1 strh r0, [r5, 0x20] ldrb r0, [r6] movs r1, 0x1 bl sub_8077EE4 lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x2] adds r0, r4 strh r0, [r5, 0x22] ldrb r0, [r6] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CCD78 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080CCDA0 _080CCD78: ldrb r0, [r6] bl sub_8079ED4 lsls r0, 24 lsrs r0, 24 adds r0, 0x1 movs r1, 0x3 ands r0, r1 lsls r0, 2 ldrb r2, [r5, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r5, 0x5] b _080CCDB8 .align 2, 0 _080CCD98: .4byte gUnknown_03004B00 _080CCD9C: .4byte gUnknown_0202F7C8 _080CCDA0: ldrb r0, [r6] bl sub_8079ED4 movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r5, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] _080CCDB8: ldr r0, _080CCDF8 @ =gUnknown_03004B00 ldrh r0, [r0, 0x4] strh r0, [r5, 0x2E] ldr r0, _080CCDFC @ =0x00002828 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 movs r3, 0x80 lsls r3, 1 adds r0, r3 strh r0, [r5, 0x32] movs r2, 0x10 movs r0, 0x10 strh r0, [r5, 0x3C] ldr r1, _080CCE00 @ =REG_BLDCNT movs r3, 0xFD lsls r3, 6 adds r0, r3, 0 strh r0, [r1] ldr r3, _080CCE04 @ =REG_BLDALPHA ldrh r1, [r5, 0x3C] lsls r0, r1, 8 subs r2, r1 orrs r0, r2 strh r0, [r3] ldr r0, _080CCE08 @ =sub_80CCE0C str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CCDF8: .4byte gUnknown_03004B00 _080CCDFC: .4byte 0x00002828 _080CCE00: .4byte REG_BLDCNT _080CCE04: .4byte REG_BLDALPHA _080CCE08: .4byte sub_80CCE0C thumb_func_end sub_80CCD24 thumb_func_start sub_80CCE0C sub_80CCE0C: @ 80CCE0C push {r4-r6,lr} adds r4, r0, 0 ldrh r0, [r4, 0x38] adds r0, 0x60 strh r0, [r4, 0x38] lsls r0, 16 asrs r0, 24 negs r0, r0 strh r0, [r4, 0x24] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080CCE6A movs r0, 0 strh r0, [r4, 0x30] ldr r1, _080CCEB0 @ =gPlttBufferFaded movs r2, 0x32 ldrsh r0, [r4, r2] adds r0, 0x1 lsls r0, 1 adds r0, r1 ldrh r5, [r0] movs r2, 0 adds r6, r1, 0 adds r3, r6, 0 _080CCE44: movs r1, 0x32 ldrsh r0, [r4, r1] adds r2, 0x1 adds r0, r2 lsls r1, r0, 1 adds r1, r3 adds r0, 0x1 lsls r0, 1 adds r0, r3 ldrh r0, [r0] strh r0, [r1] cmp r2, 0x5 ble _080CCE44 movs r2, 0x32 ldrsh r0, [r4, r2] adds r0, 0x7 lsls r0, 1 adds r0, r6 strh r5, [r0] _080CCE6A: ldrh r2, [r4, 0x3C] movs r1, 0x3C ldrsh r0, [r4, r1] cmp r0, 0x6 ble _080CCE9E movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 ble _080CCEB8 ldrh r0, [r4, 0x3A] adds r0, 0x1 strh r0, [r4, 0x3A] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080CCE9E movs r0, 0 strh r0, [r4, 0x3A] subs r2, 0x1 strh r2, [r4, 0x3C] ldr r3, _080CCEB4 @ =REG_BLDALPHA lsls r1, r2, 8 movs r0, 0x10 subs r0, r2 orrs r1, r0 strh r1, [r3] _080CCE9E: ldrh r1, [r4, 0x2E] movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0 ble _080CCEB8 subs r0, r1, 0x1 strh r0, [r4, 0x2E] b _080CCEF4 .align 2, 0 _080CCEB0: .4byte gPlttBufferFaded _080CCEB4: .4byte REG_BLDALPHA _080CCEB8: ldrh r0, [r4, 0x3A] adds r0, 0x1 strh r0, [r4, 0x3A] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080CCEF4 movs r0, 0 strh r0, [r4, 0x3A] ldrh r1, [r4, 0x3C] adds r1, 0x1 strh r1, [r4, 0x3C] ldr r3, _080CCEFC @ =REG_BLDALPHA lsls r2, r1, 8 movs r0, 0x10 subs r0, r1 orrs r2, r0 strh r2, [r3] movs r1, 0x3C ldrsh r0, [r4, r1] cmp r0, 0x10 bne _080CCEF4 adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _080CCF00 @ =sub_807861C str r0, [r4, 0x1C] _080CCEF4: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CCEFC: .4byte REG_BLDALPHA _080CCF00: .4byte sub_807861C thumb_func_end sub_80CCE0C thumb_func_start sub_80CCF04 sub_80CCF04: @ 80CCF04 push {r4-r6,lr} adds r4, r0, 0 ldr r6, _080CCF5C @ =gUnknown_0202F7C9 ldrb r0, [r6] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 movs r5, 0 strh r0, [r4, 0x20] ldrb r0, [r6] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldr r1, _080CCF60 @ =0x0000ffe8 adds r0, r1 strh r0, [r4, 0x22] strh r5, [r4, 0x2E] strh r5, [r4, 0x30] strh r5, [r4, 0x32] strh r5, [r4, 0x34] strh r5, [r4, 0x36] strh r5, [r4, 0x3A] movs r0, 0x10 strh r0, [r4, 0x3C] ldr r1, _080CCF64 @ =REG_BLDCNT movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] ldr r2, _080CCF68 @ =REG_BLDALPHA ldrh r0, [r4, 0x3C] lsls r0, 8 ldrh r1, [r4, 0x3A] orrs r0, r1 strh r0, [r2] ldr r0, _080CCF6C @ =sub_80CCF70 str r0, [r4, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CCF5C: .4byte gUnknown_0202F7C9 _080CCF60: .4byte 0x0000ffe8 _080CCF64: .4byte REG_BLDCNT _080CCF68: .4byte REG_BLDALPHA _080CCF6C: .4byte sub_80CCF70 thumb_func_end sub_80CCF04 thumb_func_start sub_80CCF70 sub_80CCF70: @ 80CCF70 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x4 bls _080CCF7E b _080CD0C0 _080CCF7E: lsls r0, 2 ldr r1, _080CCF88 @ =_080CCF8C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080CCF88: .4byte _080CCF8C .align 2, 0 _080CCF8C: .4byte _080CCFA0 .4byte _080CD004 .4byte _080CD020 .4byte _080CD09C .4byte _080CD0B0 _080CCFA0: ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 cmp r0, 0 bgt _080CCFAE b _080CD0C0 _080CCFAE: movs r0, 0 strh r0, [r4, 0x32] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080CCFD0 ldrh r1, [r4, 0x3A] movs r2, 0x3A ldrsh r0, [r4, r2] cmp r0, 0xF bgt _080CCFDE adds r0, r1, 0x1 strh r0, [r4, 0x3A] b _080CCFDE _080CCFD0: ldrh r1, [r4, 0x3C] movs r2, 0x3C ldrsh r0, [r4, r2] cmp r0, 0 ble _080CCFDE subs r0, r1, 0x1 strh r0, [r4, 0x3C] _080CCFDE: ldr r2, _080CD000 @ =REG_BLDALPHA ldrh r0, [r4, 0x3C] lsls r0, 8 ldrh r1, [r4, 0x3A] orrs r0, r1 strh r0, [r2] movs r1, 0x3A ldrsh r0, [r4, r1] cmp r0, 0x10 bne _080CD0C0 movs r2, 0x3C ldrsh r0, [r4, r2] cmp r0, 0 bne _080CD0C0 strh r0, [r4, 0x30] b _080CD0A8 .align 2, 0 _080CD000: .4byte REG_BLDALPHA _080CD004: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _080CD0C0 movs r0, 0 strh r0, [r4, 0x30] adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim b _080CD0A8 _080CD020: adds r0, r4, 0 movs r1, 0x10 movs r2, 0x4 bl sub_80CD0CC ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _080CD042 movs r0, 0 strh r0, [r4, 0x30] ldrh r0, [r4, 0x22] adds r0, 0x1 strh r0, [r4, 0x22] _080CD042: ldrh r0, [r4, 0x32] adds r1, r0, 0x1 strh r1, [r4, 0x32] lsls r0, r1, 16 asrs r0, 16 cmp r0, 0x1D ble _080CD0C0 movs r0, 0x1 ands r1, r0 cmp r1, 0 beq _080CD068 ldrh r1, [r4, 0x3A] movs r2, 0x3A ldrsh r0, [r4, r2] cmp r0, 0 ble _080CD076 subs r0, r1, 0x1 strh r0, [r4, 0x3A] b _080CD076 _080CD068: ldrh r1, [r4, 0x3C] movs r2, 0x3C ldrsh r0, [r4, r2] cmp r0, 0xF bgt _080CD076 adds r0, r1, 0x1 strh r0, [r4, 0x3C] _080CD076: ldr r0, _080CD098 @ =REG_BLDALPHA ldrh r1, [r4, 0x3C] lsls r1, 8 ldrh r2, [r4, 0x3A] orrs r1, r2 strh r1, [r0] movs r0, 0x3A ldrsh r1, [r4, r0] cmp r1, 0 bne _080CD0C0 movs r2, 0x3C ldrsh r0, [r4, r2] cmp r0, 0x10 bne _080CD0C0 strh r1, [r4, 0x30] strh r1, [r4, 0x32] b _080CD0A8 .align 2, 0 _080CD098: .4byte REG_BLDALPHA _080CD09C: adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _080CD0A8: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _080CD0C0 _080CD0B0: ldr r0, _080CD0C8 @ =REG_BLDCNT movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, r4, 0 bl move_anim_8072740 _080CD0C0: pop {r4} pop {r0} bx r0 .align 2, 0 _080CD0C8: .4byte REG_BLDCNT thumb_func_end sub_80CCF70 thumb_func_start sub_80CD0CC sub_80CD0CC: @ 80CD0CC push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0xB bgt _080CD0DE ldrh r0, [r4, 0x36] adds r0, 0x2 strh r0, [r4, 0x36] _080CD0DE: ldrh r5, [r4, 0x34] adds r0, r5, 0 subs r0, 0x12 lsls r0, 16 lsrs r0, 16 adds r1, r5, 0 cmp r0, 0x17 bhi _080CD0F4 ldrh r0, [r4, 0x36] subs r0, 0x2 strh r0, [r4, 0x36] _080CD0F4: lsls r0, r1, 16 asrs r0, 16 cmp r0, 0x2F ble _080CD102 ldrh r0, [r4, 0x36] adds r0, 0x2 strh r0, [r4, 0x36] _080CD102: movs r1, 0x36 ldrsh r0, [r4, r1] movs r1, 0x9 bl __divsi3 strh r0, [r4, 0x24] movs r1, 0x36 ldrsh r0, [r4, r1] movs r1, 0xE bl __divsi3 strh r0, [r4, 0x26] lsls r0, 16 cmp r0, 0 bge _080CD128 movs r1, 0x26 ldrsh r0, [r4, r1] negs r0, r0 strh r0, [r4, 0x26] _080CD128: adds r0, r5, 0x1 strh r0, [r4, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x3B ble _080CD138 movs r0, 0 strh r0, [r4, 0x34] _080CD138: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80CD0CC thumb_func_start sub_80CD140 sub_80CD140: @ 80CD140 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080CD184 @ =gUnknown_03004B00 movs r1, 0x4 ldrsh r0, [r5, r1] cmp r0, 0 bne _080CD154 adds r0, r4, 0 bl sub_8078650 _080CD154: movs r0, 0 ldrsh r1, [r5, r0] adds r0, r4, 0 bl sub_807867C ldrh r0, [r5, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldrh r0, [r5, 0xA] strh r0, [r4, 0x2E] ldrh r0, [r5, 0x6] strh r0, [r4, 0x30] ldrh r0, [r5, 0x8] strh r0, [r4, 0x32] ldr r1, _080CD188 @ =move_anim_8072740 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080CD18C @ =sub_8078394 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CD184: .4byte gUnknown_03004B00 _080CD188: .4byte move_anim_8072740 _080CD18C: .4byte sub_8078394 thumb_func_end sub_80CD140 thumb_func_start sub_80CD190 sub_80CD190: @ 80CD190 push {r4-r6,lr} adds r5, r0, 0 ldr r0, _080CD1A4 @ =gUnknown_03004B00 movs r1, 0x4 ldrsh r0, [r0, r1] cmp r0, 0 bne _080CD1AC ldr r0, _080CD1A8 @ =gUnknown_0202F7C8 b _080CD1AE .align 2, 0 _080CD1A4: .4byte gUnknown_03004B00 _080CD1A8: .4byte gUnknown_0202F7C8 _080CD1AC: ldr r0, _080CD1F0 @ =gUnknown_0202F7C9 _080CD1AE: ldrb r6, [r0] bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _080CD1F8 movs r1, 0x2 adds r0, r6, 0 eors r0, r1 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080CD1F8 ldr r4, _080CD1F4 @ =gUnknown_03004B00 ldrb r1, [r4, 0xC] adds r2, r5, 0 adds r2, 0x20 adds r3, r5, 0 adds r3, 0x22 adds r0, r6, 0 bl sub_807A3FC movs r2, 0 ldrsh r1, [r4, r2] adds r0, r5, 0 bl sub_807867C ldrh r0, [r4, 0x2] ldrh r1, [r5, 0x22] adds r0, r1 strh r0, [r5, 0x22] b _080CD248 .align 2, 0 _080CD1F0: .4byte gUnknown_0202F7C9 _080CD1F4: .4byte gUnknown_03004B00 _080CD1F8: ldr r4, _080CD218 @ =gUnknown_03004B00 movs r2, 0xC ldrsh r0, [r4, r2] cmp r0, 0 bne _080CD21C adds r0, r6, 0 movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] adds r0, r6, 0 movs r1, 0x1 b _080CD22E .align 2, 0 _080CD218: .4byte gUnknown_03004B00 _080CD21C: adds r0, r6, 0 movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] adds r0, r6, 0 movs r1, 0x3 _080CD22E: bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x2] adds r0, r4 strh r0, [r5, 0x22] ldr r0, _080CD268 @ =gUnknown_03004B00 movs r2, 0 ldrsh r1, [r0, r2] adds r0, r5, 0 bl sub_807867C _080CD248: ldr r1, _080CD268 @ =gUnknown_03004B00 ldrh r0, [r1, 0xA] strh r0, [r5, 0x2E] ldrh r0, [r1, 0x6] strh r0, [r5, 0x30] ldrh r0, [r1, 0x8] strh r0, [r5, 0x32] ldr r1, _080CD26C @ =move_anim_8072740 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080CD270 @ =sub_8078394 str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CD268: .4byte gUnknown_03004B00 _080CD26C: .4byte move_anim_8072740 _080CD270: .4byte sub_8078394 thumb_func_end sub_80CD190 thumb_func_start sub_80CD274 sub_80CD274: @ 80CD274 push {r4,lr} adds r4, r0, 0 bl sub_8078650 ldr r0, _080CD2A0 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080CD2A8 ldr r0, _080CD2A4 @ =gUnknown_03004B00 ldrh r1, [r0] ldrh r2, [r4, 0x20] adds r1, r2 strh r1, [r4, 0x20] ldrh r0, [r0, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] b _080CD2C2 .align 2, 0 _080CD2A0: .4byte gUnknown_0202F7C8 _080CD2A4: .4byte gUnknown_03004B00 _080CD2A8: ldr r2, _080CD2CC @ =gUnknown_03004B00 ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 strh r0, [r4, 0x20] ldrh r0, [r2, 0x2] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAnim _080CD2C2: ldr r0, _080CD2D0 @ =sub_80CD2D4 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080CD2CC: .4byte gUnknown_03004B00 _080CD2D0: .4byte sub_80CD2D4 thumb_func_end sub_80CD274 thumb_func_start sub_80CD2D4 sub_80CD2D4: @ 80CD2D4 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x1E ble _080CD30C movs r0, 0x2E ldrsh r1, [r4, r0] movs r0, 0x1E subs r0, r1 movs r1, 0x3 bl __divsi3 strh r0, [r4, 0x26] movs r1, 0x30 ldrsh r0, [r4, r1] lsls r0, 18 asrs r0, 16 movs r1, 0x3 bl Sin strh r0, [r4, 0x24] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] _080CD30C: adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080CD320 adds r0, r4, 0 bl move_anim_8072740 _080CD320: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CD2D4 thumb_func_start sub_80CD328 sub_80CD328: @ 80CD328 push {r4,lr} adds r4, r0, 0 bl sub_8078650 ldr r0, _080CD358 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080CD360 ldr r1, _080CD35C @ =gUnknown_03004B00 ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] ldrh r0, [r1, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] movs r0, 0x1 strh r0, [r4, 0x34] b _080CD37E .align 2, 0 _080CD358: .4byte gUnknown_0202F7C8 _080CD35C: .4byte gUnknown_03004B00 _080CD360: ldr r2, _080CD388 @ =gUnknown_03004B00 ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 strh r0, [r4, 0x20] ldrh r0, [r2, 0x2] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] ldr r0, _080CD38C @ =0x0000ffff strh r0, [r4, 0x34] adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim _080CD37E: ldr r0, _080CD390 @ =sub_80CD394 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080CD388: .4byte gUnknown_03004B00 _080CD38C: .4byte 0x0000ffff _080CD390: .4byte sub_80CD394 thumb_func_end sub_80CD328 thumb_func_start sub_80CD394 sub_80CD394: @ 80CD394 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] movs r1, 0x28 bl __divsi3 negs r0, r0 strh r0, [r4, 0x26] movs r2, 0x36 ldrsh r0, [r4, r2] movs r1, 0xA bl __divsi3 strh r0, [r4, 0x24] movs r1, 0x34 ldrsh r0, [r4, r1] lsls r0, 1 ldrh r2, [r4, 0x36] adds r0, r2 strh r0, [r4, 0x36] ldrh r0, [r4, 0x30] ldrh r2, [r4, 0x2E] adds r1, r0, r2 strh r1, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x3C ble _080CD3D8 adds r0, r4, 0 bl move_anim_8074EE0 _080CD3D8: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CD394 thumb_func_start sub_80CD3E0 sub_80CD3E0: @ 80CD3E0 push {lr} ldrh r1, [r0, 0x20] subs r1, 0x20 strh r1, [r0, 0x20] ldrh r1, [r0, 0x22] subs r1, 0x20 strh r1, [r0, 0x22] movs r1, 0x14 strh r1, [r0, 0x2E] ldr r1, _080CD400 @ =sub_80782D8 str r1, [r0, 0x1C] ldr r1, _080CD404 @ =sub_80CD408 bl oamt_set_x3A_32 pop {r0} bx r0 .align 2, 0 _080CD400: .4byte sub_80782D8 _080CD404: .4byte sub_80CD408 thumb_func_end sub_80CD3E0 thumb_func_start sub_80CD408 sub_80CD408: @ 80CD408 push {r4-r6,lr} adds r5, r0, 0 ldrh r6, [r5, 0x38] movs r1, 0x1 adds r0, r1, 0 ands r0, r6 cmp r0, 0 beq _080CD41E cmp r0, 0x1 beq _080CD438 b _080CD49E _080CD41E: strh r1, [r5, 0x2E] ldr r0, _080CD430 @ =sub_80782D8 str r0, [r5, 0x1C] ldr r1, _080CD434 @ =sub_80CD408 adds r0, r5, 0 bl oamt_set_x3A_32 b _080CD49E .align 2, 0 _080CD430: .4byte sub_80782D8 _080CD434: .4byte sub_80CD408 _080CD438: ldrh r3, [r5, 0x24] ldrh r0, [r5, 0x20] adds r3, r0 movs r0, 0 strh r3, [r5, 0x20] ldrh r4, [r5, 0x26] ldrh r1, [r5, 0x22] adds r4, r1 strh r4, [r5, 0x22] strh r0, [r5, 0x26] strh r0, [r5, 0x24] movs r0, 0x8 strh r0, [r5, 0x2E] ldr r2, _080CD4AC @ =gUnknown_083D6DDC lsls r0, r6, 16 asrs r0, 24 lsls r0, 1 adds r1, r0, r2 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 adds r3, r1 strh r3, [r5, 0x32] adds r2, 0x1 adds r0, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r4, r0 strh r4, [r5, 0x36] ldr r0, _080CD4B0 @ =sub_8078B34 str r0, [r5, 0x1C] ldr r1, _080CD4B4 @ =sub_80CD4B8 adds r0, r5, 0 bl oamt_set_x3A_32 movs r1, 0x80 lsls r1, 1 adds r0, r1, 0 ldrh r1, [r5, 0x38] adds r0, r1 strh r0, [r5, 0x38] movs r0, 0x3F bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0xD2 bl PlaySE12WithPanning _080CD49E: ldrh r0, [r5, 0x38] movs r1, 0x1 eors r0, r1 strh r0, [r5, 0x38] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CD4AC: .4byte gUnknown_083D6DDC _080CD4B0: .4byte sub_8078B34 _080CD4B4: .4byte sub_80CD4B8 thumb_func_end sub_80CD408 thumb_func_start sub_80CD4B8 sub_80CD4B8: @ 80CD4B8 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x38] lsls r0, 16 asrs r0, 24 cmp r0, 0x4 bne _080CD4E0 movs r0, 0xA strh r0, [r2, 0x2E] ldr r0, _080CD4D8 @ =sub_80782D8 str r0, [r2, 0x1C] ldr r1, _080CD4DC @ =sub_80CD4EC adds r0, r2, 0 bl oamt_set_x3A_32 b _080CD4E4 .align 2, 0 _080CD4D8: .4byte sub_80782D8 _080CD4DC: .4byte sub_80CD4EC _080CD4E0: ldr r0, _080CD4E8 @ =sub_80CD408 str r0, [r2, 0x1C] _080CD4E4: pop {r0} bx r0 .align 2, 0 _080CD4E8: .4byte sub_80CD408 thumb_func_end sub_80CD4B8 thumb_func_start sub_80CD4EC sub_80CD4EC: @ 80CD4EC push {r4-r7,lr} adds r5, r0, 0 ldrh r1, [r5, 0x6] cmp r1, 0 bne _080CD514 movs r0, 0x3 strh r0, [r5, 0x2E] strh r1, [r5, 0x30] strh r1, [r5, 0x32] ldr r0, _080CD50C @ =sub_80782D8 str r0, [r5, 0x1C] ldr r1, _080CD510 @ =sub_80CD5A8 adds r0, r5, 0 bl oamt_set_x3A_32 b _080CD594 .align 2, 0 _080CD50C: .4byte sub_80782D8 _080CD510: .4byte sub_80CD5A8 _080CD514: ldrh r0, [r5, 0x6] cmp r0, 0x2 beq _080CD534 cmp r0, 0x2 bgt _080CD524 cmp r0, 0x1 beq _080CD52A b _080CD548 _080CD524: cmp r0, 0x3 beq _080CD53C b _080CD548 _080CD52A: ldr r6, _080CD530 @ =0x0000fff8 adds r7, r6, 0 b _080CD54C .align 2, 0 _080CD530: .4byte 0x0000fff8 _080CD534: ldr r7, _080CD538 @ =0x0000fff8 b _080CD54A .align 2, 0 _080CD538: .4byte 0x0000fff8 _080CD53C: movs r7, 0x8 ldr r6, _080CD544 @ =0x0000fff8 b _080CD54C .align 2, 0 _080CD544: .4byte 0x0000fff8 _080CD548: movs r7, 0x8 _080CD54A: movs r6, 0x8 _080CD54C: ldrh r0, [r5, 0x24] ldrh r1, [r5, 0x20] adds r0, r1 movs r1, 0 strh r0, [r5, 0x20] ldrh r0, [r5, 0x26] ldrh r2, [r5, 0x22] adds r0, r2 strh r0, [r5, 0x22] strh r1, [r5, 0x26] strh r1, [r5, 0x24] movs r0, 0x6 strh r0, [r5, 0x2E] ldr r4, _080CD59C @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, r7 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, r6 strh r0, [r5, 0x36] ldr r0, _080CD5A0 @ =sub_8078B34 str r0, [r5, 0x1C] ldr r1, _080CD5A4 @ =sub_80CD654 adds r0, r5, 0 bl oamt_set_x3A_32 _080CD594: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CD59C: .4byte gUnknown_0202F7C9 _080CD5A0: .4byte sub_8078B34 _080CD5A4: .4byte sub_80CD654 thumb_func_end sub_80CD4EC thumb_func_start sub_80CD5A8 sub_80CD5A8: @ 80CD5A8 push {r4,lr} sub sp, 0xC adds r4, r0, 0 movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0 bne _080CD5C8 ldrh r0, [r4, 0x30] adds r0, 0x3 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 ble _080CD5D8 movs r0, 0x10 b _080CD5D6 _080CD5C8: ldrh r0, [r4, 0x30] subs r0, 0x3 strh r0, [r4, 0x30] lsls r0, 16 cmp r0, 0 bge _080CD5D8 movs r0, 0 _080CD5D6: strh r0, [r4, 0x30] _080CD5D8: movs r0, 0x1 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x1 movs r2, 0x1 movs r3, 0x1 bl sub_80791A8 ldrh r1, [r4, 0x30] lsls r1, 24 lsrs r1, 24 ldr r2, _080CD634 @ =0x00007fff bl BlendPalettes movs r3, 0x30 ldrsh r0, [r4, r3] cmp r0, 0x10 bne _080CD640 ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] ldrb r1, [r4, 0x5] lsrs r1, 4 lsls r0, r1, 5 ldr r2, _080CD638 @ =gPlttBufferUnfaded + 0x210 adds r0, r2 lsls r1, 4 ldr r3, _080CD63C @ =0x00000101 adds r2, r3, 0 orrs r1, r2 movs r2, 0x4 bl LoadPalette movs r0, 0x3F bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0xC0 bl PlaySE12WithPanning b _080CD648 .align 2, 0 _080CD634: .4byte 0x00007fff _080CD638: .4byte gPlttBufferUnfaded + 0x210 _080CD63C: .4byte 0x00000101 _080CD640: cmp r0, 0 bne _080CD648 ldr r0, _080CD650 @ =sub_80CD654 str r0, [r4, 0x1C] _080CD648: add sp, 0xC pop {r4} pop {r0} bx r0 .align 2, 0 _080CD650: .4byte sub_80CD654 thumb_func_end sub_80CD5A8 thumb_func_start sub_80CD654 sub_80CD654: @ 80CD654 push {lr} adds r2, r0, 0 ldr r0, _080CD670 @ =gUnknown_03004B00 ldrh r1, [r0, 0xE] ldr r0, _080CD674 @ =0x0000ffff cmp r1, r0 bne _080CD66C movs r0, 0 strh r0, [r2, 0x30] strh r0, [r2, 0x2E] ldr r0, _080CD678 @ =sub_80CD67C str r0, [r2, 0x1C] _080CD66C: pop {r0} bx r0 .align 2, 0 _080CD670: .4byte gUnknown_03004B00 _080CD674: .4byte 0x0000ffff _080CD678: .4byte sub_80CD67C thumb_func_end sub_80CD654 thumb_func_start sub_80CD67C sub_80CD67C: @ 80CD67C push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] movs r1, 0x3 bl __modsi3 lsls r0, 16 cmp r0, 0 bne _080CD6B0 ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _080CD6B0: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0x8 bne _080CD6C4 adds r0, r4, 0 bl move_anim_8072740 _080CD6C4: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CD67C thumb_func_start sub_80CD6CC sub_80CD6CC: @ 80CD6CC push {r4,lr} adds r3, r0, 0 ldr r0, _080CD6EC @ =gUnknown_03004B00 ldrh r0, [r0] strh r0, [r3, 0x6] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bne _080CD6F0 ldrh r0, [r3, 0x20] subs r0, 0x18 strh r0, [r3, 0x20] ldrh r0, [r3, 0x22] subs r0, 0x18 strh r0, [r3, 0x22] b _080CD742 .align 2, 0 _080CD6EC: .4byte gUnknown_03004B00 _080CD6F0: cmp r0, 0x2 bne _080CD70C ldrh r0, [r3, 0x20] subs r0, 0x18 strh r0, [r3, 0x20] ldrh r0, [r3, 0x22] adds r0, 0x18 strh r0, [r3, 0x22] ldrb r1, [r3, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x20 b _080CD73E _080CD70C: cmp r0, 0x3 bne _080CD728 ldrh r0, [r3, 0x20] adds r0, 0x18 strh r0, [r3, 0x20] ldrh r0, [r3, 0x22] subs r0, 0x18 strh r0, [r3, 0x22] ldrb r1, [r3, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x10 b _080CD73E _080CD728: ldrh r0, [r3, 0x20] adds r0, 0x18 strh r0, [r3, 0x20] ldrh r0, [r3, 0x22] adds r0, 0x18 strh r0, [r3, 0x22] ldrb r1, [r3, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x30 _080CD73E: orrs r0, r1 strb r0, [r3, 0x3] _080CD742: ldrh r2, [r3, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x10 ldr r4, _080CD768 @ =0x000003ff adds r0, r4, 0 ands r1, r0 ldr r0, _080CD76C @ =0xfffffc00 ands r0, r2 orrs r0, r1 strh r0, [r3, 0x4] ldr r1, _080CD770 @ =sub_80CD3E0 str r1, [r3, 0x1C] adds r0, r3, 0 bl _call_via_r1 pop {r4} pop {r0} bx r0 .align 2, 0 _080CD768: .4byte 0x000003ff _080CD76C: .4byte 0xfffffc00 _080CD770: .4byte sub_80CD3E0 thumb_func_end sub_80CD6CC thumb_func_start sub_80CD774 sub_80CD774: @ 80CD774 push {lr} adds r3, r0, 0 adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] movs r0, 0 strh r0, [r3, 0x2E] ldr r0, _080CD79C @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x1 beq _080CD7B0 cmp r0, 0x1 bgt _080CD7A0 cmp r0, 0 beq _080CD7A6 b _080CD7C0 .align 2, 0 _080CD79C: .4byte gUnknown_03004B00 _080CD7A0: cmp r0, 0x2 beq _080CD7B8 b _080CD7C0 _080CD7A6: ldr r0, _080CD7AC @ =sub_80CD7CC b _080CD7C2 .align 2, 0 _080CD7AC: .4byte sub_80CD7CC _080CD7B0: ldr r0, _080CD7B4 @ =sub_80CD8A8 b _080CD7C2 .align 2, 0 _080CD7B4: .4byte sub_80CD8A8 _080CD7B8: ldr r0, _080CD7BC @ =sub_80CD8F8 b _080CD7C2 .align 2, 0 _080CD7BC: .4byte sub_80CD8F8 _080CD7C0: ldr r0, _080CD7C8 @ =sub_80CD9B8 _080CD7C2: str r0, [r3, 0x1C] pop {r0} bx r0 .align 2, 0 _080CD7C8: .4byte sub_80CD9B8 thumb_func_end sub_80CD774 thumb_func_start sub_80CD7CC sub_80CD7CC: @ 80CD7CC push {r4,r5,lr} adds r4, r0, 0 movs r0, 0x6 strh r0, [r4, 0x2E] ldr r5, _080CD80C @ =gUnknown_0202F7C8 ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 movs r2, 0x2 negs r2, r2 adds r1, r2, 0 cmp r0, 0 beq _080CD7EA movs r1, 0x2 _080CD7EA: strh r1, [r4, 0x30] movs r0, 0 strh r0, [r4, 0x32] ldr r1, _080CD810 @ =gUnknown_02024BE0 ldrb r0, [r5] adds r0, r1 ldrb r0, [r0] strh r0, [r4, 0x34] ldr r1, _080CD814 @ =sub_80CD81C adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080CD818 @ =sub_8078458 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CD80C: .4byte gUnknown_0202F7C8 _080CD810: .4byte gUnknown_02024BE0 _080CD814: .4byte sub_80CD81C _080CD818: .4byte sub_8078458 thumb_func_end sub_80CD7CC thumb_func_start sub_80CD81C sub_80CD81C: @ 80CD81C push {r4-r6,lr} adds r5, r0, 0 movs r0, 0x2E ldrsh r6, [r5, r0] cmp r6, 0 bne _080CD858 ldr r1, _080CD898 @ =gUnknown_02024BE0 ldr r4, _080CD89C @ =gUnknown_0202F7C8 ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] strh r0, [r5, 0x34] movs r1, 0 bl sub_8078E70 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x3A] ldr r2, _080CD8A0 @ =0xfffffd00 adds r1, r2, 0 cmp r0, 0 beq _080CD854 movs r0, 0xC0 lsls r0, 2 adds r1, r0, 0 _080CD854: strh r1, [r5, 0x36] strh r6, [r5, 0x38] _080CD858: ldrh r0, [r5, 0x36] ldrh r1, [r5, 0x38] adds r0, r1 strh r0, [r5, 0x38] ldrh r0, [r5, 0x34] lsls r0, 24 lsrs r0, 24 movs r2, 0x80 lsls r2, 1 ldrh r3, [r5, 0x38] adds r1, r2, 0 bl obj_id_set_rotscale ldrh r0, [r5, 0x34] lsls r0, 24 lsrs r0, 24 bl sub_8078F9C ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 ble _080CD892 movs r0, 0 strh r0, [r5, 0x2E] ldr r0, _080CD8A4 @ =sub_80CD9B8 str r0, [r5, 0x1C] _080CD892: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CD898: .4byte gUnknown_02024BE0 _080CD89C: .4byte gUnknown_0202F7C8 _080CD8A0: .4byte 0xfffffd00 _080CD8A4: .4byte sub_80CD9B8 thumb_func_end sub_80CD81C thumb_func_start sub_80CD8A8 sub_80CD8A8: @ 80CD8A8 push {r4,r5,lr} adds r4, r0, 0 movs r0, 0x4 strh r0, [r4, 0x2E] ldr r5, _080CD8E8 @ =gUnknown_0202F7C8 ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 movs r1, 0x3 cmp r0, 0 beq _080CD8C6 movs r0, 0x3 negs r0, r0 adds r1, r0, 0 _080CD8C6: strh r1, [r4, 0x30] movs r0, 0 strh r0, [r4, 0x32] ldr r1, _080CD8EC @ =gUnknown_02024BE0 ldrb r0, [r5] adds r0, r1 ldrb r0, [r0] strh r0, [r4, 0x34] ldr r1, _080CD8F0 @ =sub_80CD9B8 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080CD8F4 @ =sub_8078458 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CD8E8: .4byte gUnknown_0202F7C8 _080CD8EC: .4byte gUnknown_02024BE0 _080CD8F0: .4byte sub_80CD9B8 _080CD8F4: .4byte sub_8078458 thumb_func_end sub_80CD8A8 thumb_func_start sub_80CD8F8 sub_80CD8F8: @ 80CD8F8 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x2E] adds r0, 0x1 strh r0, [r1, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _080CD912 movs r0, 0 strh r0, [r1, 0x2E] ldr r0, _080CD918 @ =sub_80CD91C str r0, [r1, 0x1C] _080CD912: pop {r0} bx r0 .align 2, 0 _080CD918: .4byte sub_80CD91C thumb_func_end sub_80CD8F8 thumb_func_start sub_80CD91C sub_80CD91C: @ 80CD91C push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0 bne _080CD96C ldr r1, _080CD958 @ =gUnknown_02024BE0 ldr r4, _080CD95C @ =gUnknown_0202F7C8 ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] strh r0, [r5, 0x34] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x3A] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CD960 movs r0, 0xFC lsls r0, 8 strh r0, [r5, 0x36] movs r0, 0xC0 lsls r0, 4 b _080CD96A .align 2, 0 _080CD958: .4byte gUnknown_02024BE0 _080CD95C: .4byte gUnknown_0202F7C8 _080CD960: movs r0, 0x80 lsls r0, 3 strh r0, [r5, 0x36] movs r0, 0xF4 lsls r0, 8 _080CD96A: strh r0, [r5, 0x38] _080CD96C: ldrh r0, [r5, 0x36] ldrh r1, [r5, 0x38] adds r0, r1 strh r0, [r5, 0x38] ldrh r0, [r5, 0x34] lsls r0, 24 lsrs r0, 24 movs r2, 0x80 lsls r2, 1 ldrh r3, [r5, 0x38] adds r1, r2, 0 bl obj_id_set_rotscale ldrh r0, [r5, 0x34] lsls r0, 24 lsrs r0, 24 bl sub_8078F9C ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _080CD9AC ldrh r0, [r5, 0x34] lsls r0, 24 lsrs r0, 24 bl sub_8078F40 ldr r0, _080CD9B4 @ =sub_80CD9B8 str r0, [r5, 0x1C] _080CD9AC: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CD9B4: .4byte sub_80CD9B8 thumb_func_end sub_80CD91C thumb_func_start sub_80CD9B8 sub_80CD9B8: @ 80CD9B8 push {lr} bl move_anim_8072740 pop {r0} bx r0 thumb_func_end sub_80CD9B8 thumb_func_start sub_80CD9C4 sub_80CD9C4: @ 80CD9C4 movs r1, 0 strh r1, [r0, 0x2E] ldr r1, _080CD9D0 @ =sub_80CD9D4 str r1, [r0, 0x1C] bx lr .align 2, 0 _080CD9D0: .4byte sub_80CD9D4 thumb_func_end sub_80CD9C4 thumb_func_start sub_80CD9D4 sub_80CD9D4: @ 80CD9D4 push {r4,r5,lr} adds r4, r0, 0 movs r0, 0x2E ldrsh r5, [r4, r0] cmp r5, 0x1 beq _080CDA2E cmp r5, 0x1 bgt _080CD9EA cmp r5, 0 beq _080CD9F0 b _080CDAC2 _080CD9EA: cmp r5, 0x2 beq _080CDA80 b _080CDAC2 _080CD9F0: strh r5, [r4, 0x30] ldr r1, _080CDA74 @ =gUnknown_02024BE0 ldr r2, _080CDA78 @ =gUnknown_0202F7C8 ldrb r0, [r2] adds r0, r1 ldrb r0, [r0] strh r0, [r4, 0x32] ldrb r0, [r2] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x34] ldr r2, _080CDA7C @ =0xfffffe00 adds r1, r2, 0 cmp r0, 0 beq _080CDA18 movs r0, 0x80 lsls r0, 2 adds r1, r0, 0 _080CDA18: strh r1, [r4, 0x36] strh r5, [r4, 0x38] ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_8078E70 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] _080CDA2E: ldrh r0, [r4, 0x36] ldrh r1, [r4, 0x38] adds r0, r1 strh r0, [r4, 0x38] ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 movs r2, 0x80 lsls r2, 1 ldrh r3, [r4, 0x38] adds r1, r2, 0 bl obj_id_set_rotscale ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 bl sub_8078F9C ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 ble _080CDAC2 movs r0, 0 strh r0, [r4, 0x30] movs r2, 0x36 ldrsh r0, [r4, r2] negs r0, r0 strh r0, [r4, 0x36] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _080CDAC2 .align 2, 0 _080CDA74: .4byte gUnknown_02024BE0 _080CDA78: .4byte gUnknown_0202F7C8 _080CDA7C: .4byte 0xfffffe00 _080CDA80: ldrh r0, [r4, 0x36] ldrh r1, [r4, 0x38] adds r0, r1 strh r0, [r4, 0x38] ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 movs r2, 0x80 lsls r2, 1 ldrh r3, [r4, 0x38] adds r1, r2, 0 bl obj_id_set_rotscale ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 bl sub_8078F9C ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 ble _080CDAC2 ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 bl sub_8078F40 adds r0, r4, 0 bl move_anim_8072740 _080CDAC2: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80CD9D4 thumb_func_start sub_80CDAC8 sub_80CDAC8: @ 80CDAC8 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r1, _080CDB0C @ =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r5, r0, r1 ldr r1, _080CDB10 @ =gUnknown_02024BE0 ldr r2, _080CDB14 @ =gUnknown_0202F7C8 ldrb r0, [r2] adds r0, r1 ldrb r0, [r0] movs r4, 0 strh r0, [r5, 0x8] ldrb r0, [r2] bl battle_side_get_owner lsls r0, 24 lsrs r2, r0, 24 strh r2, [r5, 0xA] strh r4, [r5, 0xC] ldr r0, _080CDB18 @ =gUnknown_03004B00 movs r3, 0 ldrsh r1, [r0, r3] cmp r1, 0 beq _080CDB1C cmp r1, 0x1 beq _080CDB38 adds r0, r6, 0 bl move_anim_task_del b _080CDB56 .align 2, 0 _080CDB0C: .4byte gTasks _080CDB10: .4byte gUnknown_02024BE0 _080CDB14: .4byte gUnknown_0202F7C8 _080CDB18: .4byte gUnknown_03004B00 _080CDB1C: strh r1, [r5, 0xC] movs r0, 0x8 strh r0, [r5, 0xE] strh r1, [r5, 0x10] movs r0, 0x3 strh r0, [r5, 0x12] cmp r2, 0 bne _080CDB30 negs r0, r0 strh r0, [r5, 0x12] _080CDB30: ldr r0, _080CDB34 @ =sub_80CDB60 b _080CDB54 .align 2, 0 _080CDB34: .4byte sub_80CDB60 _080CDB38: movs r0, 0x8 strh r0, [r5, 0xE] movs r0, 0xC0 lsls r0, 3 strh r0, [r5, 0x10] movs r1, 0xC0 strh r1, [r5, 0x12] cmp r2, 0 bne _080CDB52 negs r0, r0 strh r0, [r5, 0x10] negs r0, r1 strh r0, [r5, 0x12] _080CDB52: ldr r0, _080CDB5C @ =sub_80CDD20 _080CDB54: str r0, [r5] _080CDB56: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CDB5C: .4byte sub_80CDD20 thumb_func_end sub_80CDAC8 thumb_func_start sub_80CDB60 sub_80CDB60: @ 80CDB60 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080CDB84 @ =gTasks adds r4, r0, r1 movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0x4 bls _080CDB7A b _080CDD1A _080CDB7A: lsls r0, 2 ldr r1, _080CDB88 @ =_080CDB8C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080CDB84: .4byte gTasks _080CDB88: .4byte _080CDB8C .align 2, 0 _080CDB8C: .4byte _080CDBA0 .4byte _080CDBD2 .4byte _080CDC2C .4byte _080CDCA4 .4byte _080CDCE8 _080CDBA0: movs r2, 0xE ldrsh r1, [r4, r2] cmp r1, 0 beq _080CDBB0 ldrh r2, [r4, 0x12] ldrh r3, [r4, 0x10] adds r2, r3 b _080CDCF6 _080CDBB0: movs r0, 0x8 strh r0, [r4, 0xE] strh r1, [r4, 0x10] movs r1, 0xA ldrsh r0, [r4, r1] movs r1, 0xC0 cmp r0, 0 bne _080CDBC6 movs r2, 0xC0 negs r2, r2 adds r1, r2, 0 _080CDBC6: strh r1, [r4, 0x12] ldrb r0, [r4, 0x8] movs r1, 0 bl sub_8078E70 b _080CDCDC _080CDBD2: movs r3, 0xE ldrsh r0, [r4, r3] cmp r0, 0 beq _080CDBF8 ldrh r0, [r4, 0x12] ldrh r1, [r4, 0x10] adds r0, r1 strh r0, [r4, 0x10] ldrb r0, [r4, 0x8] movs r2, 0x80 lsls r2, 1 ldrh r3, [r4, 0x10] adds r1, r2, 0 bl obj_id_set_rotscale ldrb r0, [r4, 0x8] bl sub_8078F9C b _080CDD08 _080CDBF8: movs r0, 0x8 strh r0, [r4, 0xE] ldr r2, _080CDC28 @ =gSprites movs r3, 0x8 ldrsh r1, [r4, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x24] strh r0, [r4, 0x10] movs r1, 0xA ldrsh r0, [r4, r1] movs r2, 0x2 negs r2, r2 adds r1, r2, 0 cmp r0, 0 bne _080CDC1E movs r1, 0x2 _080CDC1E: strh r1, [r4, 0x12] movs r0, 0x1 strh r0, [r4, 0x14] b _080CDCDC .align 2, 0 _080CDC28: .4byte gSprites _080CDC2C: ldrh r2, [r4, 0xE] movs r3, 0xE ldrsh r0, [r4, r3] cmp r0, 0 beq _080CDC88 ldrh r1, [r4, 0x14] movs r3, 0x14 ldrsh r0, [r4, r3] cmp r0, 0 beq _080CDC46 subs r0, r1, 0x1 strh r0, [r4, 0x14] b _080CDD1A _080CDC46: movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _080CDC68 ldr r2, _080CDC64 @ =gSprites movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r4, 0x12] ldrh r2, [r4, 0x10] adds r1, r2 b _080CDC7C .align 2, 0 _080CDC64: .4byte gSprites _080CDC68: ldr r2, _080CDC84 @ =gSprites movs r3, 0x8 ldrsh r1, [r4, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r4, 0x10] ldrh r2, [r4, 0x12] subs r1, r2 _080CDC7C: strh r1, [r0, 0x24] movs r0, 0x1 strh r0, [r4, 0x14] b _080CDD08 .align 2, 0 _080CDC84: .4byte gSprites _080CDC88: ldr r2, _080CDCA0 @ =gSprites movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r4, 0x10] strh r1, [r0, 0x24] movs r0, 0xC strh r0, [r4, 0xE] b _080CDCDC .align 2, 0 _080CDCA0: .4byte gSprites _080CDCA4: ldrh r1, [r4, 0xE] movs r2, 0xE ldrsh r0, [r4, r2] cmp r0, 0 beq _080CDCB4 subs r0, r1, 0x1 strh r0, [r4, 0xE] b _080CDD1A _080CDCB4: movs r0, 0x3 strh r0, [r4, 0xE] ldr r2, _080CDCE4 @ =gSprites movs r3, 0x8 ldrsh r1, [r4, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x24] strh r0, [r4, 0x10] movs r1, 0xA ldrsh r0, [r4, r1] movs r2, 0x8 negs r2, r2 adds r1, r2, 0 cmp r0, 0 bne _080CDCDA movs r1, 0x8 _080CDCDA: strh r1, [r4, 0x12] _080CDCDC: ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] b _080CDD1A .align 2, 0 _080CDCE4: .4byte gSprites _080CDCE8: movs r3, 0xE ldrsh r0, [r4, r3] cmp r0, 0 beq _080CDD14 ldrh r2, [r4, 0x12] ldrh r0, [r4, 0x10] adds r2, r0 _080CDCF6: strh r2, [r4, 0x10] ldr r3, _080CDD10 @ =gSprites movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r2, [r0, 0x24] _080CDD08: ldrh r0, [r4, 0xE] subs r0, 0x1 strh r0, [r4, 0xE] b _080CDD1A .align 2, 0 _080CDD10: .4byte gSprites _080CDD14: adds r0, r2, 0 bl move_anim_task_del _080CDD1A: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CDB60 thumb_func_start sub_80CDD20 sub_80CDD20: @ 80CDD20 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080CDD5C @ =gTasks adds r4, r0, r1 movs r1, 0xE ldrsh r0, [r4, r1] cmp r0, 0 beq _080CDD60 ldrh r0, [r4, 0x10] ldrh r1, [r4, 0x12] subs r0, r1 strh r0, [r4, 0x10] ldrb r0, [r4, 0x8] movs r2, 0x80 lsls r2, 1 ldrh r3, [r4, 0x10] adds r1, r2, 0 bl obj_id_set_rotscale ldrb r0, [r4, 0x8] bl sub_8078F9C ldrh r0, [r4, 0xE] subs r0, 0x1 strh r0, [r4, 0xE] b _080CDD6C .align 2, 0 _080CDD5C: .4byte gTasks _080CDD60: ldrb r0, [r4, 0x8] bl sub_8078F40 adds r0, r5, 0 bl move_anim_task_del _080CDD6C: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80CDD20 thumb_func_start sub_80CDD74 sub_80CDD74: @ 80CDD74 push {r4-r6,lr} adds r5, r0, 0 ldr r6, _080CDD88 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _080CDD90 ldr r4, _080CDD8C @ =gUnknown_0202F7C8 b _080CDD92 .align 2, 0 _080CDD88: .4byte gUnknown_03004B00 _080CDD8C: .4byte gUnknown_0202F7C8 _080CDD90: ldr r4, _080CDDD0 @ =gUnknown_0202F7C9 _080CDD92: ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x2] adds r0, r1 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x4] adds r0, r6 strh r0, [r5, 0x22] movs r0, 0 strh r0, [r5, 0x2E] strh r0, [r5, 0x30] ldr r1, _080CDDD4 @ =sub_80CDEC0 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080CDDD8 @ =sub_8078600 str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CDDD0: .4byte gUnknown_0202F7C9 _080CDDD4: .4byte sub_80CDEC0 _080CDDD8: .4byte sub_8078600 thumb_func_end sub_80CDD74 thumb_func_start sub_80CDDDC sub_80CDDDC: @ 80CDDDC push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080CDE14 @ =gUnknown_0202F7C9 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldr r1, _080CDE18 @ =0x0000ffd0 adds r0, r1 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] ldr r1, _080CDE1C @ =sub_80CDE78 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080CDE20 @ =sub_8078600 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CDE14: .4byte gUnknown_0202F7C9 _080CDE18: .4byte 0x0000ffd0 _080CDE1C: .4byte sub_80CDE78 _080CDE20: .4byte sub_8078600 thumb_func_end sub_80CDDDC thumb_func_start sub_80CDE24 sub_80CDE24: @ 80CDE24 push {r4-r6,lr} adds r4, r0, 0 ldr r5, _080CDE68 @ =gUnknown_0202F7C9 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldr r1, _080CDE6C @ =gUnknown_03004B00 ldr r2, _080CDE70 @ =0x0000ffd0 adds r0, r2 ldrh r1, [r1] adds r0, r1 movs r6, 0 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAnim strh r6, [r4, 0x2E] strh r6, [r4, 0x30] ldr r0, _080CDE74 @ =sub_80CDEC0 str r0, [r4, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CDE68: .4byte gUnknown_0202F7C9 _080CDE6C: .4byte gUnknown_03004B00 _080CDE70: .4byte 0x0000ffd0 _080CDE74: .4byte sub_80CDEC0 thumb_func_end sub_80CDE24 thumb_func_start sub_80CDE78 sub_80CDE78: @ 80CDE78 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _080CDEA2 movs r0, 0xC strh r0, [r4, 0x2E] movs r0, 0x8 strh r0, [r4, 0x30] movs r0, 0 strh r0, [r4, 0x32] ldr r1, _080CDEA8 @ =sub_80CDEB0 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080CDEAC @ =sub_8078364 str r0, [r4, 0x1C] _080CDEA2: pop {r4} pop {r0} bx r0 .align 2, 0 _080CDEA8: .4byte sub_80CDEB0 _080CDEAC: .4byte sub_8078364 thumb_func_end sub_80CDE78 thumb_func_start sub_80CDEB0 sub_80CDEB0: @ 80CDEB0 movs r1, 0 strh r1, [r0, 0x2E] strh r1, [r0, 0x30] ldr r1, _080CDEBC @ =sub_80CDEC0 str r1, [r0, 0x1C] bx lr .align 2, 0 _080CDEBC: .4byte sub_80CDEC0 thumb_func_end sub_80CDEB0 thumb_func_start sub_80CDEC0 sub_80CDEC0: @ 80CDEC0 push {lr} adds r3, r0, 0 ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080CDF08 movs r0, 0 strh r0, [r3, 0x2E] movs r0, 0x3E adds r0, r3 mov r12, r0 ldrb r2, [r0] lsrs r1, r2, 2 movs r0, 0x1 eors r1, r0 ands r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] ldrh r0, [r3, 0x30] adds r0, 0x1 strh r0, [r3, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _080CDF08 adds r0, r3, 0 bl move_anim_8072740 _080CDF08: pop {r0} bx r0 thumb_func_end sub_80CDEC0 thumb_func_start sub_80CDF0C sub_80CDF0C: @ 80CDF0C push {r4-r6,lr} adds r5, r0, 0 ldr r6, _080CDF20 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _080CDF28 ldr r4, _080CDF24 @ =gUnknown_0202F7C8 b _080CDF2A .align 2, 0 _080CDF20: .4byte gUnknown_03004B00 _080CDF24: .4byte gUnknown_0202F7C8 _080CDF28: ldr r4, _080CDF64 @ =gUnknown_0202F7C9 _080CDF2A: ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x2] adds r0, r1 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x4] adds r0, r6 strh r0, [r5, 0x22] movs r0, 0 strh r0, [r5, 0x2E] ldr r0, _080CDF68 @ =gUnknown_03004B00 ldrh r0, [r0, 0x6] strh r0, [r5, 0x30] ldr r0, _080CDF6C @ =sub_80CDF70 str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CDF64: .4byte gUnknown_0202F7C9 _080CDF68: .4byte gUnknown_03004B00 _080CDF6C: .4byte sub_80CDF70 thumb_func_end sub_80CDF0C thumb_func_start sub_80CDF70 sub_80CDF70: @ 80CDF70 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] lsls r0, 16 asrs r0, 16 movs r3, 0x30 ldrsh r1, [r2, r3] cmp r0, r1 ble _080CDF90 movs r0, 0 strh r0, [r2, 0x2E] ldrh r0, [r2, 0x22] subs r0, 0x1 strh r0, [r2, 0x22] _080CDF90: ldrh r0, [r2, 0x22] ldrh r1, [r2, 0x2E] subs r0, r1 strh r0, [r2, 0x22] adds r0, r2, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080CDFAC adds r0, r2, 0 bl move_anim_8072740 _080CDFAC: pop {r0} bx r0 thumb_func_end sub_80CDF70 thumb_func_start sub_80CDFB0 sub_80CDFB0: @ 80CDFB0 push {r4-r6,lr} adds r4, r0, 0 ldr r6, _080CDFF8 @ =gUnknown_0202F7C8 ldrb r0, [r6] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 movs r5, 0 strh r0, [r4, 0x20] ldrb r0, [r6] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 subs r0, 0xC strh r0, [r4, 0x22] strh r5, [r4, 0x2E] movs r0, 0x2 strh r0, [r4, 0x30] strh r5, [r4, 0x32] strh r5, [r4, 0x34] strh r5, [r4, 0x36] subs r0, 0x42 bl sub_8076F98 lsls r0, 24 asrs r0, 24 strh r0, [r4, 0x38] ldr r0, _080CDFFC @ =sub_80CE000 str r0, [r4, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CDFF8: .4byte gUnknown_0202F7C8 _080CDFFC: .4byte sub_80CE000 thumb_func_end sub_80CDFB0 thumb_func_start sub_80CE000 sub_80CE000: @ 80CE000 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 movs r2, 0x30 ldrsh r1, [r4, r2] cmp r0, r1 blt _080CE06C adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsrs r1, r2, 2 movs r0, 0x1 eors r1, r0 ands r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] movs r1, 0x4 ands r0, r1 cmp r0, 0 bne _080CE052 ldrh r0, [r4, 0x36] adds r0, 0x1 strh r0, [r4, 0x36] movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _080CE052 ldrh r1, [r4, 0x38] lsls r1, 24 asrs r1, 24 movs r0, 0xC2 bl PlaySE12WithPanning _080CE052: movs r1, 0 strh r1, [r4, 0x2E] ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080CE06C strh r1, [r4, 0x32] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] _080CE06C: adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080CE096 movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0x10 ble _080CE096 adds r0, r4, 0 adds r0, 0x3E ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080CE096 adds r0, r4, 0 bl move_anim_8072740 _080CE096: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CE000 thumb_func_start sub_80CE09C sub_80CE09C: @ 80CE09C push {r4-r6,lr} adds r6, r0, 0 movs r1, 0x2E ldrsh r0, [r6, r1] cmp r0, 0 bne _080CE0E6 ldr r4, _080CE0FC @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 ldr r5, _080CE100 @ =gUnknown_03004B00 lsrs r0, 24 ldrh r1, [r5] adds r0, r1 strh r0, [r6, 0x20] ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x2] adds r0, r5 strh r0, [r6, 0x22] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080CE0E0 ldrh r0, [r6, 0x22] adds r0, 0xA strh r0, [r6, 0x22] _080CE0E0: ldrh r0, [r6, 0x2E] adds r0, 0x1 strh r0, [r6, 0x2E] _080CE0E6: ldr r0, _080CE100 @ =gUnknown_03004B00 ldrh r1, [r0, 0xE] ldr r0, _080CE104 @ =0x0000ffff cmp r1, r0 bne _080CE0F6 adds r0, r6, 0 bl move_anim_8072740 _080CE0F6: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CE0FC: .4byte gUnknown_0202F7C8 _080CE100: .4byte gUnknown_03004B00 _080CE104: .4byte 0x0000ffff thumb_func_end sub_80CE09C thumb_func_start sub_80CE108 sub_80CE108: @ 80CE108 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080CE128 @ =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r4, r0, r1 movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0x1 bne _080CE134 ldr r1, _080CE12C @ =gUnknown_03004B00 ldr r0, _080CE130 @ =0x0000ffff strh r0, [r1, 0xE] b _080CE16C .align 2, 0 _080CE128: .4byte gTasks _080CE12C: .4byte gUnknown_03004B00 _080CE130: .4byte 0x0000ffff _080CE134: cmp r0, 0x2 bne _080CE140 adds r0, r2, 0 bl move_anim_task_del b _080CE172 _080CE140: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _080CE172 movs r0, 0 strh r0, [r4, 0x8] ldrh r1, [r4, 0xA] adds r1, 0x1 strh r1, [r4, 0xA] ldr r3, _080CE178 @ =REG_BLDALPHA lsls r2, r1, 8 movs r0, 0x10 subs r0, r1 orrs r2, r0 strh r2, [r3] movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0x10 bne _080CE172 _080CE16C: ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] _080CE172: pop {r4} pop {r0} bx r0 .align 2, 0 _080CE178: .4byte REG_BLDALPHA thumb_func_end sub_80CE108 thumb_func_start sub_80CE17C sub_80CE17C: @ 80CE17C push {r4,lr} adds r4, r0, 0 movs r1, 0 bl sub_8078764 adds r2, r4, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x40 orrs r0, r1 strb r0, [r2] ldr r0, _080CE1A4 @ =gUnknown_03004B00 ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] ldr r0, _080CE1A8 @ =sub_80CE1AC str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080CE1A4: .4byte gUnknown_03004B00 _080CE1A8: .4byte sub_80CE1AC thumb_func_end sub_80CE17C thumb_func_start sub_80CE1AC sub_80CE1AC: @ 80CE1AC push {r4,r5,lr} adds r5, r0, 0 ldrh r1, [r5, 0x2E] movs r2, 0x2E ldrsh r0, [r5, r2] cmp r0, 0 beq _080CE1C0 subs r0, r1, 0x1 strh r0, [r5, 0x2E] b _080CE1FC _080CE1C0: adds r2, r5, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r2] movs r0, 0x1E strh r0, [r5, 0x2E] ldr r4, _080CE204 @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] ldr r0, _080CE208 @ =sub_8078B34 str r0, [r5, 0x1C] ldr r1, _080CE20C @ =move_anim_8072740 adds r0, r5, 0 bl oamt_set_x3A_32 _080CE1FC: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CE204: .4byte gUnknown_0202F7C8 _080CE208: .4byte sub_8078B34 _080CE20C: .4byte move_anim_8072740 thumb_func_end sub_80CE1AC thumb_func_start sub_80CE210 sub_80CE210: @ 80CE210 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080CE258 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r3, r0, r1 ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _080CE252 movs r0, 0 strh r0, [r3, 0x8] ldrh r1, [r3, 0xA] adds r1, 0x1 strh r1, [r3, 0xA] ldr r2, _080CE25C @ =REG_BLDALPHA movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r1, 0xA ldrsh r0, [r3, r1] cmp r0, 0x10 bne _080CE252 adds r0, r4, 0 bl move_anim_task_del _080CE252: pop {r4} pop {r0} bx r0 .align 2, 0 _080CE258: .4byte gTasks _080CE25C: .4byte REG_BLDALPHA thumb_func_end sub_80CE210 thumb_func_start unref_sub_80CE260 unref_sub_80CE260: @ 80CE260 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 movs r4, 0 ldr r0, _080CE2C8 @ =gUnknown_02024A68 ldrb r0, [r0] cmp r4, r0 bcs _080CE2BC ldr r6, _080CE2CC @ =gUnknown_03004B00 ldr r5, _080CE2D0 @ =gUnknown_03004340 _080CE274: movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0x1 bne _080CE290 adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080CE290 adds r0, r4, r5 ldrb r0, [r0] bl sub_8043DB0 _080CE290: movs r1, 0x2 ldrsh r0, [r6, r1] cmp r0, 0x1 bne _080CE2AE adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080CE2AE adds r0, r4, r5 ldrb r0, [r0] bl sub_8043DB0 _080CE2AE: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080CE2C8 @ =gUnknown_02024A68 ldrb r0, [r0] cmp r4, r0 bcc _080CE274 _080CE2BC: adds r0, r7, 0 bl move_anim_task_del pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CE2C8: .4byte gUnknown_02024A68 _080CE2CC: .4byte gUnknown_03004B00 _080CE2D0: .4byte gUnknown_03004340 thumb_func_end unref_sub_80CE260 thumb_func_start unref_sub_80CE2D4 unref_sub_80CE2D4: @ 80CE2D4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 b _080CE2EE _080CE2DE: ldr r0, _080CE304 @ =gUnknown_03004340 adds r0, r4, r0 ldrb r0, [r0] bl sub_8043DFC adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _080CE2EE: ldr r0, _080CE308 @ =gUnknown_02024A68 ldrb r0, [r0] cmp r4, r0 bcc _080CE2DE adds r0, r5, 0 bl move_anim_task_del pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CE304: .4byte gUnknown_03004340 _080CE308: .4byte gUnknown_02024A68 thumb_func_end unref_sub_80CE2D4 thumb_func_start sub_80CE30C sub_80CE30C: @ 80CE30C push {r4,lr} adds r4, r0, 0 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080CE322 movs r0, 0x30 strh r0, [r4, 0x20] movs r0, 0x28 b _080CE32A _080CE322: ldr r0, _080CE34C @ =gUnknown_03004B00 ldrh r1, [r0] strh r1, [r4, 0x20] ldrh r0, [r0, 0x2] _080CE32A: strh r0, [r4, 0x22] ldrb r1, [r4, 0x1] movs r0, 0x3F ands r0, r1 strb r0, [r4, 0x1] ldrb r0, [r4, 0x3] movs r1, 0xC0 orrs r0, r1 strb r0, [r4, 0x3] movs r0, 0 strh r0, [r4, 0x2E] ldr r0, _080CE350 @ =sub_80CE354 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080CE34C: .4byte gUnknown_03004B00 _080CE350: .4byte sub_80CE354 thumb_func_end sub_80CE30C thumb_func_start sub_80CE354 sub_80CE354: @ 80CE354 push {lr} adds r1, r0, 0 movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0 beq _080CE366 adds r0, r1, 0 bl move_anim_8072740 _080CE366: pop {r0} bx r0 thumb_func_end sub_80CE354 thumb_func_start sub_80CE36C sub_80CE36C: @ 80CE36C push {r4,lr} adds r4, r0, 0 ldr r0, _080CE3A4 @ =gUnknown_0202F7C8 ldrb r0, [r0] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 ldr r2, _080CE3A8 @ =gUnknown_03004B00 lsrs r0, 24 ldrh r1, [r2] adds r0, r1 movs r1, 0 strh r0, [r4, 0x20] ldrh r0, [r2, 0x2] strh r0, [r4, 0x22] strh r1, [r4, 0x2E] strh r1, [r4, 0x30] strh r1, [r4, 0x32] strh r1, [r4, 0x34] movs r0, 0x1 strh r0, [r4, 0x36] ldr r0, _080CE3AC @ =sub_80CE3B0 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080CE3A4: .4byte gUnknown_0202F7C8 _080CE3A8: .4byte gUnknown_03004B00 _080CE3AC: .4byte sub_80CE3B0 thumb_func_end sub_80CE36C thumb_func_start sub_80CE3B0 sub_80CE3B0: @ 80CE3B0 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x30] adds r0, 0x1 strh r0, [r1, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080CE3DA movs r0, 0 strh r0, [r1, 0x30] ldrh r2, [r1, 0x32] movs r3, 0x32 ldrsh r0, [r1, r3] cmp r0, 0x77 bgt _080CE3DA ldrh r0, [r1, 0x22] adds r0, 0x1 strh r0, [r1, 0x22] adds r0, r2, 0x1 strh r0, [r1, 0x32] _080CE3DA: movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0 beq _080CE3E8 adds r0, r1, 0 bl move_anim_8072740 _080CE3E8: pop {r0} bx r0 thumb_func_end sub_80CE3B0 thumb_func_start sub_80CE3EC sub_80CE3EC: @ 80CE3EC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC lsls r0, 24 lsrs r7, r0, 24 movs r4, 0 str r4, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80791A8 mov r8, r0 ldr r0, _080CE4BC @ =0x0000ffff mov r1, r8 ands r1, r0 mov r8, r1 ldr r0, _080CE4C0 @ =gTasks mov r9, r0 lsls r5, r7, 2 adds r5, r7 lsls r5, 3 adds r6, r5, r0 strh r4, [r6, 0x8] strh r4, [r6, 0xA] strh r4, [r6, 0xC] strh r1, [r6, 0xE] strh r4, [r6, 0x10] strh r4, [r6, 0x12] strh r4, [r6, 0x14] movs r0, 0xD strh r0, [r6, 0x16] movs r0, 0xE strh r0, [r6, 0x18] movs r0, 0xF strh r0, [r6, 0x1A] movs r0, 0x1 movs r1, 0x1 movs r2, 0x1 movs r3, 0x1 bl sub_80792C0 mov r10, r0 mov r1, r8 orrs r1, r0 mov r8, r1 movs r0, 0x8 add r9, r0 add r5, r9 adds r0, r5, 0 adds r0, 0x1C adds r5, 0x1E adds r1, r5, 0 mov r2, r8 bl sub_8079BF4 ldr r0, _080CE4C4 @ =0x000027d2 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 movs r4, 0x80 lsls r4, 9 adds r1, r4, 0 lsls r1, r0 mov r0, r10 orrs r0, r1 mov r10, r0 ldr r0, _080CE4C8 @ =0x000027d3 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 lsls r4, r0 mov r1, r10 orrs r4, r1 ldr r0, _080CE4CC @ =0x00007fbb str r0, [sp] adds r0, r4, 0 movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _080CE4D0 @ =sub_80CE4D4 str r1, [r6] adds r0, r7, 0 bl _call_via_r1 add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CE4BC: .4byte 0x0000ffff _080CE4C0: .4byte gTasks _080CE4C4: .4byte 0x000027d2 _080CE4C8: .4byte 0x000027d3 _080CE4CC: .4byte 0x00007fbb _080CE4D0: .4byte sub_80CE4D4 thumb_func_end sub_80CE3EC thumb_func_start sub_80CE4D4 sub_80CE4D4: @ 80CE4D4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080CE4FC @ =gTasks adds r4, r0, r1 movs r0, 0x8 ldrsh r1, [r4, r0] cmp r1, 0x1 beq _080CE5C0 cmp r1, 0x1 bgt _080CE500 cmp r1, 0 beq _080CE50E b _080CE65E .align 2, 0 _080CE4FC: .4byte gTasks _080CE500: cmp r1, 0x2 bne _080CE506 b _080CE618 _080CE506: cmp r1, 0x3 bne _080CE50C b _080CE64C _080CE50C: b _080CE65E _080CE50E: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 cmp r0, 0 bgt _080CE51C b _080CE65E _080CE51C: strh r1, [r4, 0xA] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0xF bgt _080CE568 ldrh r0, [r4, 0x16] ldrh r1, [r4, 0x10] adds r0, r1 strh r0, [r4, 0x10] ldrh r2, [r4, 0x18] ldrh r3, [r4, 0x12] adds r2, r3 strh r2, [r4, 0x12] ldrh r1, [r4, 0x1A] ldrh r5, [r4, 0x14] adds r1, r5 strh r1, [r4, 0x14] lsls r0, 16 asrs r0, 19 lsls r0, 16 lsrs r0, 16 lsls r2, 16 asrs r2, 19 lsls r2, 16 lsls r1, 16 asrs r1, 19 lsls r1, 16 lsrs r2, 11 orrs r0, r2 lsrs r1, 6 orrs r0, r1 lsls r0, 16 lsrs r0, 16 mov r12, r0 b _080CE572 _080CE568: ldr r7, _080CE5B8 @ =0x00007fbb mov r12, r7 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080CE572: movs r2, 0x1 movs r3, 0 movs r1, 0 _080CE578: movs r5, 0xE ldrsh r0, [r4, r5] ands r0, r2 lsls r5, r2, 17 adds r6, r3, 0 adds r6, 0x10 adds r1, 0x1 mov r8, r1 cmp r0, 0 beq _080CE5A4 movs r1, 0x1 ldr r2, _080CE5BC @ =gPlttBufferFaded _080CE590: adds r0, r3, r1 lsls r0, 1 adds r0, r2 mov r7, r12 strh r7, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0xF bls _080CE590 _080CE5A4: lsrs r2, r5, 16 lsls r0, r6, 16 lsrs r3, r0, 16 mov r1, r8 lsls r0, r1, 16 lsrs r1, r0, 16 cmp r1, 0xF bls _080CE578 b _080CE65E .align 2, 0 _080CE5B8: .4byte 0x00007fbb _080CE5BC: .4byte gPlttBufferFaded _080CE5C0: ldr r0, _080CE608 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080CE65E movs r2, 0 ldr r3, _080CE60C @ =gSprites movs r5, 0x14 adds r5, r3 mov r12, r5 ldr r7, _080CE610 @ =gBattleAnimSpriteTemplate_83D6FC8 mov r8, r7 ldr r6, _080CE614 @ =gBattleAnimSpriteTemplate_83D6FF8 movs r5, 0x1 _080CE5DE: lsls r0, r2, 4 adds r0, r2 lsls r1, r0, 2 mov r7, r12 adds r0, r1, r7 ldr r0, [r0] cmp r0, r8 beq _080CE5F2 cmp r0, r6 bne _080CE5F6 _080CE5F2: adds r0, r1, r3 strh r5, [r0, 0x2E] _080CE5F6: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3F bls _080CE5DE movs r0, 0 strh r0, [r4, 0xA] b _080CE640 .align 2, 0 _080CE608: .4byte gPaletteFade _080CE60C: .4byte gSprites _080CE610: .4byte gBattleAnimSpriteTemplate_83D6FC8 _080CE614: .4byte gBattleAnimSpriteTemplate_83D6FF8 _080CE618: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1E ble _080CE65E movs r1, 0x24 ldrsh r0, [r4, r1] movs r2, 0x26 ldrsh r1, [r4, r2] bl sub_8079BFC ldr r1, _080CE648 @ =0x00007fbb str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade _080CE640: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080CE65E .align 2, 0 _080CE648: .4byte 0x00007fbb _080CE64C: ldr r0, _080CE66C @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080CE65E adds r0, r2, 0 bl move_anim_task_del _080CE65E: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CE66C: .4byte gPaletteFade thumb_func_end sub_80CE4D4 thumb_func_start sub_80CE670 sub_80CE670: @ 80CE670 push {r4-r6,lr} adds r5, r0, 0 ldr r6, _080CE6F4 @ =gUnknown_03004B00 movs r1, 0x4 ldrsh r0, [r6, r1] cmp r0, 0x1 bgt _080CE682 movs r0, 0x2 strh r0, [r6, 0x4] _080CE682: movs r1, 0x4 ldrsh r0, [r6, r1] cmp r0, 0x7F ble _080CE68E movs r0, 0x7F strh r0, [r6, 0x4] _080CE68E: movs r0, 0 strh r0, [r5, 0x2E] ldrh r0, [r6, 0x4] strh r0, [r5, 0x30] ldr r4, _080CE6F8 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r6] adds r0, r1 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x2] adds r0, r6 strh r0, [r5, 0x22] ldrh r1, [r5, 0x20] strh r1, [r5, 0x3A] strh r0, [r5, 0x3C] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080CE700 ldrb r1, [r5, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x10 orrs r0, r1 strb r0, [r5, 0x3] ldrh r0, [r5, 0x20] adds r0, 0x28 strh r0, [r5, 0x20] ldrh r4, [r5, 0x22] adds r4, 0x14 strh r4, [r5, 0x22] lsls r0, 7 strh r0, [r5, 0x32] movs r0, 0x30 ldrsh r1, [r5, r0] ldr r0, _080CE6FC @ =0xffffec00 b _080CE726 .align 2, 0 _080CE6F4: .4byte gUnknown_03004B00 _080CE6F8: .4byte gUnknown_0202F7C9 _080CE6FC: .4byte 0xffffec00 _080CE700: ldr r0, _080CE740 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080CE748 ldrh r0, [r5, 0x20] subs r0, 0x28 strh r0, [r5, 0x20] ldrh r4, [r5, 0x22] adds r4, 0x14 strh r4, [r5, 0x22] lsls r0, 7 strh r0, [r5, 0x32] movs r0, 0x30 ldrsh r1, [r5, r0] movs r0, 0xA0 lsls r0, 5 _080CE726: bl __divsi3 strh r0, [r5, 0x34] lsls r4, 7 strh r4, [r5, 0x36] movs r0, 0x30 ldrsh r1, [r5, r0] ldr r0, _080CE744 @ =0xfffff600 bl __divsi3 strh r0, [r5, 0x38] b _080CE784 .align 2, 0 _080CE740: .4byte gUnknown_0202F7C8 _080CE744: .4byte 0xfffff600 _080CE748: ldrh r0, [r5, 0x20] adds r0, 0x28 strh r0, [r5, 0x20] ldrh r4, [r5, 0x22] subs r4, 0x14 strh r4, [r5, 0x22] lsls r0, 7 strh r0, [r5, 0x32] movs r0, 0x30 ldrsh r1, [r5, r0] ldr r0, _080CE790 @ =0xffffec00 bl __divsi3 strh r0, [r5, 0x34] lsls r4, 7 strh r4, [r5, 0x36] movs r0, 0x30 ldrsh r1, [r5, r0] movs r0, 0xA0 lsls r0, 4 bl __divsi3 strh r0, [r5, 0x38] ldrb r1, [r5, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x30 orrs r0, r1 strb r0, [r5, 0x3] _080CE784: ldr r0, _080CE794 @ =sub_80CE798 str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CE790: .4byte 0xffffec00 _080CE794: .4byte sub_80CE798 thumb_func_end sub_80CE670 thumb_func_start sub_80CE798 sub_80CE798: @ 80CE798 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x34] ldrh r1, [r2, 0x32] adds r0, r1 strh r0, [r2, 0x32] ldrh r1, [r2, 0x38] ldrh r3, [r2, 0x36] adds r1, r3 strh r1, [r2, 0x36] lsls r0, 16 asrs r0, 23 strh r0, [r2, 0x20] lsls r1, 16 asrs r1, 23 strh r1, [r2, 0x22] ldrh r0, [r2, 0x30] subs r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bne _080CE7CE ldrh r0, [r2, 0x3A] strh r0, [r2, 0x20] ldrh r0, [r2, 0x3C] strh r0, [r2, 0x22] _080CE7CE: movs r1, 0x30 ldrsh r0, [r2, r1] cmp r0, 0 bne _080CE7DC adds r0, r2, 0 bl move_anim_8072740 _080CE7DC: pop {r0} bx r0 thumb_func_end sub_80CE798 thumb_func_start sub_80CE7E0 sub_80CE7E0: @ 80CE7E0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r0, 2 add r0, r8 lsls r0, 3 ldr r1, _080CE870 @ =gTasks adds r6, r0, r1 movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x8] ldr r0, _080CE874 @ =0x00002771 bl AllocSpritePalette lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0xA] movs r1, 0xA ldrsh r0, [r6, r1] lsls r0, 20 movs r1, 0x80 lsls r1, 17 adds r0, r1 lsrs r3, r0, 16 ldr r2, _080CE878 @ =gSprites movs r0, 0x8 ldrsh r1, [r6, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x5] lsrs r0, 4 adds r0, 0x10 lsls r4, r0, 4 movs r5, 0x1 ldr r2, _080CE87C @ =gPlttBufferUnfaded _080CE838: adds r1, r3, r5 lsls r1, 1 adds r1, r2 adds r0, r4, r5 lsls r0, 1 adds r0, r2 ldrh r0, [r0] strh r0, [r1] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0xF bls _080CE838 adds r0, r3, 0 movs r1, 0x10 movs r2, 0xB movs r3, 0 bl BlendPalette movs r0, 0 strh r0, [r6, 0xE] movs r5, 0 ldr r7, _080CE878 @ =gSprites movs r1, 0x1C adds r1, r7 mov r9, r1 b _080CE8B4 .align 2, 0 _080CE870: .4byte gTasks _080CE874: .4byte 0x00002771 _080CE878: .4byte gSprites _080CE87C: .4byte gPlttBufferUnfaded _080CE880: lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r4, r2, r7 ldrb r1, [r6, 0xA] lsls r1, 4 ldrb r3, [r4, 0x5] movs r0, 0xF ands r0, r3 orrs r0, r1 strb r0, [r4, 0x5] movs r0, 0 strh r0, [r4, 0x2E] lsls r0, r5, 7 strh r0, [r4, 0x30] mov r0, r8 strh r0, [r4, 0x32] add r2, r9 ldr r0, _080CE8E4 @ =sub_80CE974 str r0, [r2] ldrh r0, [r6, 0xE] adds r0, 0x1 strh r0, [r6, 0xE] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 _080CE8B4: cmp r5, 0x1 bhi _080CE8C6 movs r0, 0 bl duplicate_obj_of_side_rel2move_in_transparent_mode lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _080CE880 _080CE8C6: ldr r0, _080CE8E8 @ =sub_80CE910 str r0, [r6] ldr r0, _080CE8EC @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080CE8F4 movs r2, 0x80 lsls r2, 19 ldrh r1, [r2] ldr r0, _080CE8F0 @ =0x0000fdff b _080CE8FC .align 2, 0 _080CE8E4: .4byte sub_80CE974 _080CE8E8: .4byte sub_80CE910 _080CE8EC: .4byte gUnknown_0202F7C8 _080CE8F0: .4byte 0x0000fdff _080CE8F4: movs r2, 0x80 lsls r2, 19 ldrh r1, [r2] ldr r0, _080CE90C @ =0x0000fbff _080CE8FC: ands r0, r1 strh r0, [r2] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CE90C: .4byte 0x0000fbff thumb_func_end sub_80CE7E0 thumb_func_start sub_80CE910 sub_80CE910: @ 80CE910 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080CE944 @ =gTasks adds r0, r1 movs r1, 0xE ldrsh r0, [r0, r1] cmp r0, 0 bne _080CE968 ldr r0, _080CE948 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080CE94C movs r0, 0x80 lsls r0, 19 ldrh r1, [r0] movs r3, 0x80 lsls r3, 2 b _080CE956 .align 2, 0 _080CE944: .4byte gTasks _080CE948: .4byte gUnknown_0202F7C8 _080CE94C: movs r0, 0x80 lsls r0, 19 ldrh r1, [r0] movs r3, 0x80 lsls r3, 3 _080CE956: adds r2, r3, 0 orrs r1, r2 strh r1, [r0] ldr r0, _080CE970 @ =0x00002771 bl FreeSpritePaletteByTag adds r0, r4, 0 bl move_anim_task_del _080CE968: pop {r4} pop {r0} bx r0 .align 2, 0 _080CE970: .4byte 0x00002771 thumb_func_end sub_80CE910 thumb_func_start sub_80CE974 sub_80CE974: @ 80CE974 push {r4,r5,lr} adds r5, r0, 0 ldrh r0, [r5, 0x34] adds r0, 0x1 strh r0, [r5, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080CE990 movs r0, 0 strh r0, [r5, 0x34] ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] _080CE990: movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0x40 ble _080CE9B8 ldr r2, _080CE9B4 @ =gTasks movs r0, 0x32 ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrh r1, [r0, 0xE] subs r1, 0x1 strh r1, [r0, 0xE] adds r0, r5, 0 bl obj_delete_but_dont_free_vram b _080CE9FA .align 2, 0 _080CE9B4: .4byte gTasks _080CE9B8: ldr r4, _080CEA00 @ =gSineTable movs r1, 0x2E ldrsh r0, [r5, r1] lsls r0, 1 adds r0, r4 movs r2, 0 ldrsh r0, [r0, r2] movs r1, 0x6 bl __divsi3 strh r0, [r5, 0x36] movs r1, 0x2E ldrsh r0, [r5, r1] lsls r0, 1 adds r0, r4 movs r2, 0 ldrsh r0, [r0, r2] movs r1, 0xD bl __divsi3 strh r0, [r5, 0x38] ldrh r1, [r5, 0x30] adds r1, r0 movs r0, 0xFF ands r1, r0 strh r1, [r5, 0x30] movs r1, 0x30 ldrsh r0, [r5, r1] movs r2, 0x36 ldrsh r1, [r5, r2] bl Sin strh r0, [r5, 0x24] _080CE9FA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CEA00: .4byte gSineTable thumb_func_end sub_80CE974 thumb_func_start sub_80CEA04 sub_80CEA04: @ 80CEA04 push {r4,lr} adds r4, r0, 0 ldr r1, _080CEA18 @ =move_anim_8072740 bl oamt_set_x3A_32 ldr r0, _080CEA1C @ =sub_8078600 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080CEA18: .4byte move_anim_8072740 _080CEA1C: .4byte sub_8078600 thumb_func_end sub_80CEA04 thumb_func_start sub_80CEA20 sub_80CEA20: @ 80CEA20 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r4, _080CEAD0 @ =gUnknown_083D712C ldrh r0, [r4] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0xFF beq _080CEA64 lsls r0, r3, 20 movs r1, 0x80 lsls r1, 17 adds r0, r1 lsrs r3, r0, 16 movs r2, 0x1 ldr r5, _080CEAD4 @ =gPlttBufferFaded _080CEA4C: adds r1, r3, r2 lsls r1, 1 adds r1, r5 lsls r0, r2, 1 adds r0, r4 ldrh r0, [r0] strh r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x5 bls _080CEA4C _080CEA64: movs r4, 0x1 ldr r0, _080CEAD0 @ =gUnknown_083D712C mov r8, r0 _080CEA6A: lsls r0, r4, 1 adds r0, r4 lsls r5, r0, 2 mov r1, r8 adds r0, r5, r1 ldrh r0, [r0] bl AllocSpritePalette lsls r0, 24 lsrs r3, r0, 24 adds r4, 0x1 mov r12, r4 cmp r3, 0xFF beq _080CEAB2 lsls r0, r3, 20 movs r1, 0x80 lsls r1, 17 adds r0, r1 lsrs r3, r0, 16 movs r2, 0x1 ldr r7, _080CEAD4 @ =gPlttBufferFaded ldr r6, _080CEAD0 @ =gUnknown_083D712C adds r4, r5, 0 _080CEA98: adds r1, r3, r2 lsls r1, 1 adds r1, r7 lsls r0, r2, 1 adds r0, r4 adds r0, r6 ldrh r0, [r0] strh r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x5 bls _080CEA98 _080CEAB2: mov r1, r12 lsls r0, r1, 16 lsrs r4, r0, 16 cmp r4, 0x3 bls _080CEA6A mov r0, r9 bl move_anim_task_del pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CEAD0: .4byte gUnknown_083D712C _080CEAD4: .4byte gPlttBufferFaded thumb_func_end sub_80CEA20 thumb_func_start sub_80CEAD8 sub_80CEAD8: @ 80CEAD8 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0x1 ldr r6, _080CEB08 @ =gUnknown_083D712C _080CEAE2: lsls r0, r4, 1 adds r0, r4 lsls r0, 2 adds r0, r6 ldrh r0, [r0] bl FreeSpritePaletteByTag adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x3 bls _080CEAE2 adds r0, r5, 0 bl move_anim_task_del pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CEB08: .4byte gUnknown_083D712C thumb_func_end sub_80CEAD8 thumb_func_start sub_80CEB0C sub_80CEB0C: @ 80CEB0C push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 bl sub_8078650 ldr r4, _080CEB64 @ =gUnknown_03004B00 ldrb r1, [r4] adds r0, r5, 0 bl StartSpriteAnim ldr r2, _080CEB68 @ =gUnknown_083D712C movs r0, 0x2 ldrsh r1, [r4, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _080CEB48 lsls r2, r0, 4 ldrb r1, [r5, 0x5] movs r0, 0xF ands r0, r1 orrs r0, r2 strb r0, [r5, 0x5] _080CEB48: ldrh r0, [r4, 0x2] movs r1, 0 strh r0, [r5, 0x30] strh r1, [r5, 0x32] ldrh r0, [r4, 0x4] strh r0, [r5, 0x34] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080CEB6C movs r6, 0x30 movs r3, 0x28 b _080CEB86 .align 2, 0 _080CEB64: .4byte gUnknown_03004B00 _080CEB68: .4byte gUnknown_083D712C _080CEB6C: ldr r4, _080CEBBC @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r3, r0, 24 _080CEB86: ldrh r0, [r5, 0x20] lsls r1, r0, 4 strh r1, [r5, 0x36] ldrh r1, [r5, 0x22] lsls r2, r1, 4 strh r2, [r5, 0x38] subs r0, r6, r0 lsls r0, 16 asrs r0, 16 subs r1, r3, r1 lsls r1, 16 asrs r1, 16 adds r2, r5, 0 adds r2, 0x3A adds r3, r5, 0 adds r3, 0x3C movs r4, 0x28 str r4, [sp] bl sub_80CEBC4 ldr r0, _080CEBC0 @ =sub_80CEC1C str r0, [r5, 0x1C] add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CEBBC: .4byte gUnknown_0202F7C9 _080CEBC0: .4byte sub_80CEC1C thumb_func_end sub_80CEB0C thumb_func_start sub_80CEBC4 sub_80CEBC4: @ 80CEBC4 push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r2, 0 mov r8, r3 ldr r2, [sp, 0x18] lsls r1, 16 lsrs r6, r1, 16 lsls r2, 24 lsrs r1, r2, 24 lsls r0, 16 asrs r2, r0, 16 cmp r2, 0 bge _080CEBE6 lsls r0, r1, 24 negs r0, r0 lsrs r1, r0, 24 _080CEBE6: lsls r5, r2, 8 lsls r1, 24 asrs r1, 24 adds r0, r5, 0 bl __divsi3 adds r4, r0, 0 cmp r4, 0 bne _080CEBFA movs r4, 0x1 _080CEBFA: adds r0, r5, 0 adds r1, r4, 0 bl __divsi3 strh r0, [r7] lsls r0, r6, 16 asrs r0, 8 adds r1, r4, 0 bl __divsi3 mov r1, r8 strh r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80CEBC4 thumb_func_start sub_80CEC1C sub_80CEC1C: @ 80CEC1C push {r4,r5,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 movs r5, 0 strh r0, [r4, 0x2E] movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r1, r0, r1 adds r0, r1, 0 cmp r1, 0 bge _080CEC38 adds r0, 0xFF _080CEC38: asrs r0, 8 lsls r0, 8 subs r0, r1, r0 ldrh r1, [r4, 0x3A] ldrh r2, [r4, 0x36] adds r1, r2 strh r1, [r4, 0x36] ldrh r2, [r4, 0x3C] ldrh r3, [r4, 0x38] adds r2, r3 strh r2, [r4, 0x38] lsls r1, 16 asrs r1, 20 strh r1, [r4, 0x20] lsls r2, 16 asrs r2, 20 strh r2, [r4, 0x22] lsls r0, 16 asrs r0, 16 movs r1, 0xF bl Sin strh r0, [r4, 0x26] ldrh r2, [r4, 0x22] ldrh r0, [r4, 0x20] adds r0, 0x10 lsls r0, 16 movs r1, 0x88 lsls r1, 17 cmp r0, r1 bhi _080CEC86 lsls r0, r2, 16 asrs r1, r0, 16 movs r0, 0x10 negs r0, r0 cmp r1, r0 blt _080CEC86 cmp r1, 0x80 ble _080CEC8E _080CEC86: adds r0, r4, 0 bl move_anim_8074EE0 b _080CECDE _080CEC8E: movs r0, 0x34 ldrsh r1, [r4, r0] cmp r1, 0 beq _080CECDE ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, r1 ble _080CECDE strh r5, [r4, 0x32] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 ble _080CECB6 strh r5, [r4, 0x30] _080CECB6: ldr r2, _080CECE4 @ =gUnknown_083D712C movs r3, 0x30 ldrsh r1, [r4, r3] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _080CECDE lsls r2, r0, 4 ldrb r1, [r4, 0x5] movs r0, 0xF ands r0, r1 orrs r0, r2 strb r0, [r4, 0x5] _080CECDE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CECE4: .4byte gUnknown_083D712C thumb_func_end sub_80CEC1C thumb_func_start sub_80CECE8 sub_80CECE8: @ 80CECE8 push {r4-r7,lr} adds r6, r0, 0 ldr r7, _080CED6C @ =gUnknown_0202F7C8 ldrb r0, [r7] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080CED06 ldr r1, _080CED70 @ =gUnknown_03004B00 movs r2, 0x2 ldrsh r0, [r1, r2] negs r0, r0 strh r0, [r1, 0x2] _080CED06: ldrb r0, [r7] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 ldr r4, _080CED70 @ =gUnknown_03004B00 lsrs r0, 24 ldrh r1, [r4, 0x2] adds r0, r1 movs r5, 0 strh r0, [r6, 0x20] ldrb r0, [r7] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r2, [r4, 0x4] adds r0, r2 strh r0, [r6, 0x22] ldrb r1, [r4] adds r0, r6, 0 bl StartSpriteAnim strh r5, [r6, 0x32] strh r5, [r6, 0x34] ldrh r0, [r6, 0x20] lsls r0, 4 strh r0, [r6, 0x36] ldrh r0, [r6, 0x22] lsls r0, 4 strh r0, [r6, 0x38] movs r1, 0x2 ldrsh r0, [r4, r1] lsls r0, 4 movs r1, 0x5 bl __divsi3 strh r0, [r6, 0x3A] movs r2, 0x4 ldrsh r0, [r4, r2] lsls r0, 7 movs r1, 0x5 bl __divsi3 strh r0, [r6, 0x3C] ldr r0, _080CED74 @ =sub_80CED78 str r0, [r6, 0x1C] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CED6C: .4byte gUnknown_0202F7C8 _080CED70: .4byte gUnknown_03004B00 _080CED74: .4byte sub_80CED78 thumb_func_end sub_80CECE8 thumb_func_start sub_80CED78 sub_80CED78: @ 80CED78 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x3A] ldrh r1, [r4, 0x36] adds r0, r1 strh r0, [r4, 0x36] ldrh r1, [r4, 0x3C] ldrh r2, [r4, 0x38] adds r1, r2 strh r1, [r4, 0x38] lsls r0, 16 asrs r0, 20 strh r0, [r4, 0x20] lsls r1, 16 asrs r1, 20 strh r1, [r4, 0x22] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x5 ble _080CEDD6 movs r2, 0x34 ldrsh r0, [r4, r2] cmp r0, 0 bne _080CEDD6 ldrh r0, [r4, 0x32] adds r0, 0x10 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x32] movs r1, 0x32 ldrsh r0, [r4, r1] movs r1, 0x12 bl Cos strh r0, [r4, 0x24] movs r2, 0x32 ldrsh r0, [r4, r2] movs r1, 0x12 bl Sin strh r0, [r4, 0x26] movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0 bne _080CEDD6 movs r0, 0x1 strh r0, [r4, 0x34] _080CEDD6: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x30 bne _080CEDEA adds r0, r4, 0 bl move_anim_8074EE0 _080CEDEA: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CED78 thumb_func_start sub_80CEDF0 sub_80CEDF0: @ 80CEDF0 push {r4-r6,lr} adds r5, r0, 0 ldr r0, _080CEE10 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x1 bne _080CEE14 ldrb r0, [r5, 0x3] movs r1, 0x3F negs r1, r1 ands r1, r0 movs r0, 0x10 orrs r1, r0 strb r1, [r5, 0x3] movs r6, 0x10 b _080CEE16 .align 2, 0 _080CEE10: .4byte gUnknown_03004B00 _080CEE14: ldr r6, _080CEE50 @ =0x0000fff0 _080CEE16: ldr r4, _080CEE54 @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, r6 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, 0x8 strh r0, [r5, 0x22] movs r0, 0x8 strh r0, [r5, 0x2E] ldr r0, _080CEE58 @ =sub_80782D8 str r0, [r5, 0x1C] ldr r1, _080CEE5C @ =move_anim_8072740 adds r0, r5, 0 bl oamt_set_x3A_32 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CEE50: .4byte 0x0000fff0 _080CEE54: .4byte gUnknown_0202F7C8 _080CEE58: .4byte sub_80782D8 _080CEE5C: .4byte move_anim_8072740 thumb_func_end sub_80CEDF0 thumb_func_start sub_80CEE60 sub_80CEE60: @ 80CEE60 push {r4,r5,lr} adds r4, r0, 0 bl sub_8078650 ldrh r0, [r4, 0x22] adds r0, 0x8 strh r0, [r4, 0x22] ldr r5, _080CEED8 @ =gUnknown_03004B00 ldrb r1, [r5, 0x2] adds r0, r4, 0 bl StartSpriteAnim ldr r2, _080CEEDC @ =gUnknown_083D712C movs r0, 0x4 ldrsh r1, [r5, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _080CEEA0 lsls r2, r0, 4 ldrb r1, [r4, 0x5] movs r0, 0xF ands r0, r1 orrs r0, r2 strb r0, [r4, 0x5] _080CEEA0: movs r1, 0 ldrsh r0, [r5, r1] movs r2, 0x20 cmp r0, 0 bne _080CEEAC ldr r2, _080CEEE0 @ =0x0000ffe0 _080CEEAC: movs r0, 0x28 strh r0, [r4, 0x2E] ldrh r1, [r4, 0x20] strh r1, [r4, 0x30] lsls r0, r2, 16 asrs r0, 16 adds r0, r1 strh r0, [r4, 0x32] ldrh r0, [r4, 0x22] strh r0, [r4, 0x34] subs r0, 0x28 strh r0, [r4, 0x36] adds r0, r4, 0 bl obj_translate_based_on_private_1_2_3_4 ldrh r0, [r5, 0x6] strh r0, [r4, 0x38] ldr r0, _080CEEE4 @ =sub_80CEEE8 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CEED8: .4byte gUnknown_03004B00 _080CEEDC: .4byte gUnknown_083D712C _080CEEE0: .4byte 0x0000ffe0 _080CEEE4: .4byte sub_80CEEE8 thumb_func_end sub_80CEE60 thumb_func_start sub_80CEEE8 sub_80CEEE8: @ 80CEEE8 push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 bne _080CEF38 movs r1, 0x38 ldrsh r0, [r4, r1] movs r1, 0x8 bl Sin lsls r0, 16 lsrs r1, r0, 16 ldrh r2, [r4, 0x24] movs r3, 0x24 ldrsh r0, [r4, r3] cmp r0, 0 bge _080CEF14 lsls r0, r1, 16 negs r0, r0 lsrs r1, r0, 16 _080CEF14: lsls r0, r1, 16 asrs r0, 16 adds r0, r2 strh r0, [r4, 0x24] movs r1, 0x38 ldrsh r0, [r4, r1] movs r1, 0x4 bl Sin ldrh r3, [r4, 0x26] adds r0, r3 strh r0, [r4, 0x26] ldrh r0, [r4, 0x38] adds r0, 0x8 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] b _080CEF3E _080CEF38: adds r0, r4, 0 bl move_anim_8072740 _080CEF3E: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CEEE8 thumb_func_start sub_80CEF44 sub_80CEF44: @ 80CEF44 push {r4-r6,lr} adds r6, r1, 0 lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080CEF64 adds r0, r5, 0 movs r1, 0x5 bl sub_807A100 adds r0, 0x8 b _080CEF6E _080CEF64: adds r0, r5, 0 movs r1, 0x4 bl sub_807A100 subs r0, 0x8 _080CEF6E: strh r0, [r6, 0x20] adds r0, r5, 0 movs r1, 0x3 bl sub_8077ABC adds r4, r0, 0 adds r0, r5, 0 movs r1, 0 bl sub_807A100 lsls r4, 24 lsrs r4, 24 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _080CEF90 adds r0, 0x3 _080CEF90: asrs r0, 2 subs r0, r4, r0 strh r0, [r6, 0x22] pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80CEF44 thumb_func_start sub_80CEF9C sub_80CEF9C: @ 80CEF9C push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080CEFB0 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080CEFB8 ldr r0, _080CEFB4 @ =gUnknown_0202F7C8 b _080CEFBA .align 2, 0 _080CEFB0: .4byte gUnknown_03004B00 _080CEFB4: .4byte gUnknown_0202F7C8 _080CEFB8: ldr r0, _080CEFF8 @ =gUnknown_0202F7C9 _080CEFBA: ldrb r4, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_80CEF44 adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r1, 31 ldr r0, _080CEFFC @ =gUnknown_03004B00 ldrh r0, [r0, 0x2] strh r0, [r5, 0x2E] adds r0, r1, 0x2 strh r0, [r5, 0x30] adds r0, r5, 0 bl StartSpriteAnim ldr r1, _080CF000 @ =sub_80CF008 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080CF004 @ =sub_8078600 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CEFF8: .4byte gUnknown_0202F7C9 _080CEFFC: .4byte gUnknown_03004B00 _080CF000: .4byte sub_80CF008 _080CF004: .4byte sub_8078600 thumb_func_end sub_80CEF9C thumb_func_start sub_80CF008 sub_80CF008: @ 80CF008 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] subs r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 cmp r0, 0 bne _080CF030 ldr r1, _080CF038 @ =move_anim_8072740 adds r0, r4, 0 bl oamt_set_x3A_32 ldrh r1, [r4, 0x30] lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim ldr r0, _080CF03C @ =sub_8078600 str r0, [r4, 0x1C] _080CF030: pop {r4} pop {r0} bx r0 .align 2, 0 _080CF038: .4byte move_anim_8072740 _080CF03C: .4byte sub_8078600 thumb_func_end sub_80CF008 thumb_func_start sub_80CF040 sub_80CF040: @ 80CF040 push {r4,lr} adds r4, r0, 0 ldr r0, _080CF054 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080CF05C ldr r0, _080CF058 @ =gUnknown_0202F7C8 b _080CF05E .align 2, 0 _080CF054: .4byte gUnknown_03004B00 _080CF058: .4byte gUnknown_0202F7C8 _080CF05C: ldr r0, _080CF07C @ =gUnknown_0202F7C9 _080CF05E: ldrb r0, [r0] adds r1, r4, 0 bl sub_80CEF44 movs r0, 0 strh r0, [r4, 0x2E] ldr r1, _080CF080 @ =sub_80CF088 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080CF084 @ =sub_80785E4 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080CF07C: .4byte gUnknown_0202F7C9 _080CF080: .4byte sub_80CF088 _080CF084: .4byte sub_80785E4 thumb_func_end sub_80CF040 thumb_func_start sub_80CF088 sub_80CF088: @ 80CF088 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 ble _080CF0AE adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim ldr r1, _080CF0B4 @ =move_anim_8074EE0 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080CF0B8 @ =sub_80785E4 str r0, [r4, 0x1C] _080CF0AE: pop {r4} pop {r0} bx r0 .align 2, 0 _080CF0B4: .4byte move_anim_8074EE0 _080CF0B8: .4byte sub_80785E4 thumb_func_end sub_80CF088 thumb_func_start sub_80CF0BC sub_80CF0BC: @ 80CF0BC push {r4-r6,lr} adds r4, r0, 0 ldr r0, _080CF0D0 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080CF0D8 ldr r0, _080CF0D4 @ =gUnknown_0202F7C8 b _080CF0DA .align 2, 0 _080CF0D0: .4byte gUnknown_03004B00 _080CF0D4: .4byte gUnknown_0202F7C8 _080CF0D8: ldr r0, _080CF12C @ =gUnknown_0202F7C9 _080CF0DA: ldrb r5, [r0] adds r0, r5, 0 movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 movs r6, 0 strh r0, [r4, 0x20] adds r0, r5, 0 movs r1, 0x2 bl sub_807A100 strh r0, [r4, 0x22] lsls r0, 16 asrs r0, 16 cmp r0, 0x9 bgt _080CF102 movs r0, 0xA strh r0, [r4, 0x22] _080CF102: movs r0, 0x1 strh r0, [r4, 0x2E] strh r6, [r4, 0x30] adds r1, r4, 0 adds r1, 0x43 ldrb r0, [r1] strh r0, [r4, 0x32] ldrb r0, [r1] adds r0, 0x4 strh r0, [r4, 0x34] strh r6, [r4, 0x36] ldr r1, _080CF130 @ =sub_80CF138 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080CF134 @ =sub_80785E4 str r0, [r4, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CF12C: .4byte gUnknown_0202F7C9 _080CF130: .4byte sub_80CF138 _080CF134: .4byte sub_80785E4 thumb_func_end sub_80CF0BC thumb_func_start sub_80CF138 sub_80CF138: @ 80CF138 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x36] adds r0, 0x1 strh r0, [r1, 0x36] lsls r0, 16 asrs r0, 16 cmp r0, 0xC ble _080CF14E ldr r0, _080CF154 @ =sub_80CF158 str r0, [r1, 0x1C] _080CF14E: pop {r0} bx r0 .align 2, 0 _080CF154: .4byte sub_80CF158 thumb_func_end sub_80CF138 thumb_func_start sub_80CF158 sub_80CF158: @ 80CF158 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x30] adds r1, r0, 0x4 strh r1, [r2, 0x30] lsls r0, r1, 16 asrs r0, 16 cmp r0, 0xFE ble _080CF18A ldrh r0, [r2, 0x2E] subs r0, 0x1 strh r0, [r2, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0 bne _080CF184 strh r0, [r2, 0x24] ldr r0, _080CF180 @ =sub_80CF088 str r0, [r2, 0x1C] b _080CF1C0 .align 2, 0 _080CF180: .4byte sub_80CF088 _080CF184: movs r0, 0xFF ands r1, r0 strh r1, [r2, 0x30] _080CF18A: movs r1, 0x30 ldrsh r0, [r2, r1] cmp r0, 0x4F ble _080CF19A ldrh r0, [r2, 0x34] adds r1, r2, 0 adds r1, 0x43 strb r0, [r1] _080CF19A: movs r3, 0x30 ldrsh r0, [r2, r3] cmp r0, 0x9F ble _080CF1AA ldrh r0, [r2, 0x32] adds r1, r2, 0 adds r1, 0x43 strb r0, [r1] _080CF1AA: ldr r1, _080CF1C4 @ =gSineTable movs r3, 0x30 ldrsh r0, [r2, r3] lsls r0, 1 adds r0, r1 ldrh r0, [r0] lsls r0, 16 asrs r0, 19 asrs r1, r0, 1 adds r0, r1 strh r0, [r2, 0x24] _080CF1C0: pop {r0} bx r0 .align 2, 0 _080CF1C4: .4byte gSineTable thumb_func_end sub_80CF158 thumb_func_start sub_80CF1C8 sub_80CF1C8: @ 80CF1C8 push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080CF1DC @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080CF1E4 ldr r0, _080CF1E0 @ =gUnknown_0202F7C8 b _080CF1E6 .align 2, 0 _080CF1DC: .4byte gUnknown_03004B00 _080CF1E0: .4byte gUnknown_0202F7C8 _080CF1E4: ldr r0, _080CF208 @ =gUnknown_0202F7C9 _080CF1E6: ldrb r4, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_80CEF44 adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080CF20C adds r0, r5, 0 movs r1, 0 bl StartSpriteAnim movs r0, 0x2 b _080CF216 .align 2, 0 _080CF208: .4byte gUnknown_0202F7C9 _080CF20C: adds r0, r5, 0 movs r1, 0x1 bl StartSpriteAnim movs r0, 0x3 _080CF216: strh r0, [r5, 0x2E] ldr r0, _080CF224 @ =sub_80CF228 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CF224: .4byte sub_80CF228 thumb_func_end sub_80CF1C8 thumb_func_start sub_80CF228 sub_80CF228: @ 80CF228 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0xA ble _080CF256 movs r0, 0 strh r0, [r4, 0x30] ldrh r1, [r4, 0x2E] lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim ldr r1, _080CF25C @ =sub_80CF264 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080CF260 @ =sub_8078600 str r0, [r4, 0x1C] _080CF256: pop {r4} pop {r0} bx r0 .align 2, 0 _080CF25C: .4byte sub_80CF264 _080CF260: .4byte sub_8078600 thumb_func_end sub_80CF228 thumb_func_start sub_80CF264 sub_80CF264: @ 80CF264 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x30] adds r0, 0x1 strh r0, [r1, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 ble _080CF27C adds r0, r1, 0 bl move_anim_8072740 _080CF27C: pop {r0} bx r0 thumb_func_end sub_80CF264 thumb_func_start sub_80CF280 sub_80CF280: @ 80CF280 push {r4,r5,lr} adds r4, r0, 0 bl sub_8078650 ldr r5, _080CF2C4 @ =gUnknown_03004B00 movs r0, 0 ldrsh r1, [r5, r0] adds r0, r4, 0 bl sub_807867C ldrh r0, [r5, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldrh r0, [r5, 0x4] strh r0, [r4, 0x30] ldrh r0, [r5, 0x8] strh r0, [r4, 0x32] ldrh r0, [r5, 0xA] strh r0, [r4, 0x34] ldrh r0, [r5, 0x6] strh r0, [r4, 0x36] ldr r1, _080CF2C8 @ =move_anim_8074EE0 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r1, _080CF2CC @ =sub_8078278 str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CF2C4: .4byte gUnknown_03004B00 _080CF2C8: .4byte move_anim_8074EE0 _080CF2CC: .4byte sub_8078278 thumb_func_end sub_80CF280 thumb_func_start sub_80CF2D0 sub_80CF2D0: @ 80CF2D0 push {r4,lr} adds r4, r0, 0 ldr r0, _080CF2E4 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080CF2EC ldr r0, _080CF2E8 @ =gUnknown_0202F7C8 b _080CF2EE .align 2, 0 _080CF2E4: .4byte gUnknown_03004B00 _080CF2E8: .4byte gUnknown_0202F7C8 _080CF2EC: ldr r0, _080CF308 @ =gUnknown_0202F7C9 _080CF2EE: ldrb r0, [r0] adds r1, r4, 0 bl sub_80CEF44 movs r0, 0 strh r0, [r4, 0x2E] strh r0, [r4, 0x30] ldr r0, _080CF30C @ =sub_80CF310 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080CF308: .4byte gUnknown_0202F7C9 _080CF30C: .4byte sub_80CF310 thumb_func_end sub_80CF2D0 thumb_func_start sub_80CF310 sub_80CF310: @ 80CF310 push {lr} adds r1, r0, 0 movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0x1 beq _080CF342 cmp r0, 0x1 bgt _080CF326 cmp r0, 0 beq _080CF32C b _080CF370 _080CF326: cmp r0, 0x2 beq _080CF35C b _080CF370 _080CF32C: ldrh r0, [r1, 0x26] subs r0, 0x3 strh r0, [r1, 0x26] ldrh r0, [r1, 0x30] adds r0, 0x1 strh r0, [r1, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 bne _080CF370 b _080CF354 _080CF342: ldrh r0, [r1, 0x26] adds r0, 0x3 strh r0, [r1, 0x26] ldrh r0, [r1, 0x30] subs r0, 0x1 strh r0, [r1, 0x30] lsls r0, 16 cmp r0, 0 bne _080CF370 _080CF354: ldrh r0, [r1, 0x2E] adds r0, 0x1 strh r0, [r1, 0x2E] b _080CF370 _080CF35C: ldrh r0, [r1, 0x30] adds r0, 0x1 strh r0, [r1, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x40 bne _080CF370 adds r0, r1, 0 bl move_anim_8072740 _080CF370: pop {r0} bx r0 thumb_func_end sub_80CF310 thumb_func_start sub_80CF374 sub_80CF374: @ 80CF374 push {r4,lr} adds r4, r0, 0 ldr r3, _080CF3C0 @ =gSprites movs r0, 0x32 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r4, 0x30] ldrh r2, [r0, 0x24] adds r1, r2 strh r1, [r0, 0x24] movs r1, 0x30 ldrsh r0, [r4, r1] negs r0, r0 strh r0, [r4, 0x30] movs r0, 0x2E ldrsh r2, [r4, r0] cmp r2, 0 bne _080CF3B2 movs r0, 0x32 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r2, [r0, 0x24] adds r0, r4, 0 bl move_anim_8074EE0 _080CF3B2: ldrh r0, [r4, 0x2E] subs r0, 0x1 strh r0, [r4, 0x2E] pop {r4} pop {r0} bx r0 .align 2, 0 _080CF3C0: .4byte gSprites thumb_func_end sub_80CF374 thumb_func_start sub_80CF3C4 sub_80CF3C4: @ 80CF3C4 push {r4-r6,lr} adds r5, r0, 0 ldr r4, _080CF40C @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r1, _080CF410 @ =gUnknown_02024BE0 ldr r0, _080CF414 @ =gUnknown_0202F7C9 ldrb r0, [r0] adds r0, r1 ldrb r6, [r0] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CF41C ldr r0, _080CF418 @ =gUnknown_03004B00 ldrh r1, [r5, 0x20] ldrh r2, [r0] subs r1, r2 strh r1, [r5, 0x20] adds r1, r0, 0 b _080CF426 .align 2, 0 _080CF40C: .4byte gUnknown_0202F7C8 _080CF410: .4byte gUnknown_02024BE0 _080CF414: .4byte gUnknown_0202F7C9 _080CF418: .4byte gUnknown_03004B00 _080CF41C: ldr r1, _080CF450 @ =gUnknown_03004B00 ldrh r0, [r1] ldrh r2, [r5, 0x20] adds r0, r2 strh r0, [r5, 0x20] _080CF426: ldrh r0, [r1, 0x2] ldrh r2, [r5, 0x22] adds r0, r2 strh r0, [r5, 0x22] ldrh r0, [r1, 0x4] strh r0, [r5, 0x2E] ldrh r0, [r1, 0x6] strh r0, [r5, 0x30] strh r6, [r5, 0x32] ldr r0, _080CF454 @ =sub_80CF374 str r0, [r5, 0x1C] adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CF450: .4byte gUnknown_03004B00 _080CF454: .4byte sub_80CF374 thumb_func_end sub_80CF3C4 thumb_func_start sub_80CF458 sub_80CF458: @ 80CF458 push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r1, _080CF484 @ =gUnknown_03004B00 ldrh r0, [r1, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x6] strh r0, [r4, 0x30] ldrh r0, [r1, 0x8] strh r0, [r4, 0x38] ldr r0, _080CF488 @ =sub_80782D8 str r0, [r4, 0x1C] ldr r1, _080CF48C @ =sub_80CF490 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4} pop {r0} bx r0 .align 2, 0 _080CF484: .4byte gUnknown_03004B00 _080CF488: .4byte sub_80782D8 _080CF48C: .4byte sub_80CF490 thumb_func_end sub_80CF458 thumb_func_start sub_80CF490 sub_80CF490: @ 80CF490 push {lr} ldrh r1, [r0, 0x30] strh r1, [r0, 0x2E] ldrh r1, [r0, 0x20] strh r1, [r0, 0x32] ldrh r1, [r0, 0x22] adds r1, 0xF strh r1, [r0, 0x36] ldr r1, _080CF4B0 @ =sub_8078B34 str r1, [r0, 0x1C] ldr r1, _080CF4B4 @ =sub_80CF4B8 bl oamt_set_x3A_32 pop {r0} bx r0 .align 2, 0 _080CF4B0: .4byte sub_8078B34 _080CF4B4: .4byte sub_80CF4B8 thumb_func_end sub_80CF490 thumb_func_start sub_80CF4B8 sub_80CF4B8: @ 80CF4B8 push {lr} adds r1, r0, 0 ldrh r2, [r1, 0x38] movs r3, 0x38 ldrsh r0, [r1, r3] cmp r0, 0 bne _080CF4CE adds r0, r1, 0 bl move_anim_8072740 b _080CF4D2 _080CF4CE: subs r0, r2, 0x1 strh r0, [r1, 0x38] _080CF4D2: pop {r0} bx r0 thumb_func_end sub_80CF4B8 thumb_func_start sub_80CF4D8 sub_80CF4D8: @ 80CF4D8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _080CF504 @ =gUnknown_02024BE0 ldr r0, _080CF508 @ =gUnknown_0202F7C8 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_8078E70 ldr r1, _080CF50C @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080CF510 @ =sub_80CF514 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080CF504: .4byte gUnknown_02024BE0 _080CF508: .4byte gUnknown_0202F7C8 _080CF50C: .4byte gTasks _080CF510: .4byte sub_80CF514 thumb_func_end sub_80CF4D8 thumb_func_start sub_80CF514 sub_80CF514: @ 80CF514 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080CF544 @ =gUnknown_02024BE0 ldr r0, _080CF548 @ =gUnknown_0202F7C8 ldrb r0, [r0] adds r1, r0, r1 ldrb r4, [r1] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080CF550 ldr r1, _080CF54C @ =gTasks lsls r2, r5, 2 adds r0, r2, r5 lsls r0, 3 adds r0, r1 ldrh r0, [r0, 0x8] negs r0, r0 lsls r0, 16 lsrs r3, r0, 16 adds r6, r2, 0 b _080CF55E .align 2, 0 _080CF544: .4byte gUnknown_02024BE0 _080CF548: .4byte gUnknown_0202F7C8 _080CF54C: .4byte gTasks _080CF550: ldr r2, _080CF590 @ =gTasks lsls r1, r5, 2 adds r0, r1, r5 lsls r0, 3 adds r0, r2 ldrh r3, [r0, 0x8] adds r6, r1, 0 _080CF55E: movs r2, 0x80 lsls r2, 1 adds r0, r4, 0 adds r1, r2, 0 bl obj_id_set_rotscale ldr r1, _080CF590 @ =gTasks adds r0, r6, r5 lsls r0, 3 adds r1, r0, r1 movs r2, 0xA ldrsh r0, [r1, r2] cmp r0, 0 bne _080CF598 ldrh r0, [r1, 0x8] adds r0, 0xB0 strh r0, [r1, 0x8] ldr r1, _080CF594 @ =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r0, r1 ldrh r1, [r0, 0x26] adds r1, 0x1 b _080CF5C2 .align 2, 0 _080CF590: .4byte gTasks _080CF594: .4byte gSprites _080CF598: cmp r0, 0x1 bne _080CF5AE ldrh r0, [r1, 0xE] adds r0, 0x1 strh r0, [r1, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x1E bne _080CF608 movs r0, 0x2 b _080CF606 _080CF5AE: ldrh r0, [r1, 0x8] subs r0, 0xB0 strh r0, [r1, 0x8] ldr r1, _080CF5FC @ =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r0, r1 ldrh r1, [r0, 0x26] subs r1, 0x1 _080CF5C2: strh r1, [r0, 0x26] adds r0, r4, 0 bl sub_8078F9C ldr r0, _080CF600 @ =gTasks adds r1, r6, r5 lsls r1, 3 adds r1, r0 movs r3, 0x8 ldrsh r2, [r1, r3] movs r0, 0xF2 lsls r0, 4 cmp r2, r0 beq _080CF5E2 cmp r2, 0 bne _080CF608 _080CF5E2: ldrh r2, [r1, 0xA] movs r3, 0xA ldrsh r0, [r1, r3] cmp r0, 0x2 bne _080CF604 adds r0, r4, 0 bl sub_8078F40 adds r0, r5, 0 bl move_anim_task_del b _080CF608 .align 2, 0 _080CF5FC: .4byte gSprites _080CF600: .4byte gTasks _080CF604: adds r0, r2, 0x1 _080CF606: strh r0, [r1, 0xA] _080CF608: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80CF514 thumb_func_start sub_80CF610 sub_80CF610: @ 80CF610 push {r4,r5,lr} adds r4, r0, 0 bl sub_8078650 ldr r5, _080CF658 @ =gUnknown_03004B00 movs r0, 0 ldrsh r1, [r5, r0] adds r0, r4, 0 bl sub_807867C ldrh r0, [r5, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldr r0, _080CF65C @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CF660 adds r2, r4, 0 adds r2, 0x3F ldrb r0, [r2] movs r1, 0x1 orrs r1, r0 strb r1, [r2] movs r3, 0x4 ldrsh r0, [r5, r3] cmp r0, 0 beq _080CF674 movs r0, 0x2 orrs r1, r0 strb r1, [r2] b _080CF674 .align 2, 0 _080CF658: .4byte gUnknown_03004B00 _080CF65C: .4byte gUnknown_0202F7C8 _080CF660: movs r1, 0x4 ldrsh r0, [r5, r1] cmp r0, 0 beq _080CF674 adds r2, r4, 0 adds r2, 0x3F ldrb r0, [r2] movs r1, 0x2 orrs r0, r1 strb r0, [r2] _080CF674: ldr r0, _080CF688 @ =sub_8078600 str r0, [r4, 0x1C] ldr r1, _080CF68C @ =move_anim_8072740 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CF688: .4byte sub_8078600 _080CF68C: .4byte move_anim_8072740 thumb_func_end sub_80CF610 thumb_func_start sub_80CF690 sub_80CF690: @ 80CF690 push {r4,lr} adds r4, r0, 0 movs r1, 0 bl sub_80787B0 ldr r0, _080CF6AC @ =sub_80785E4 str r0, [r4, 0x1C] ldr r1, _080CF6B0 @ =sub_80CF6B4 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4} pop {r0} bx r0 .align 2, 0 _080CF6AC: .4byte sub_80785E4 _080CF6B0: .4byte sub_80CF6B4 thumb_func_end sub_80CF690 thumb_func_start sub_80CF6B4 sub_80CF6B4: @ 80CF6B4 push {lr} movs r1, 0x6 strh r1, [r0, 0x2E] ldrh r1, [r0, 0x20] strh r1, [r0, 0x32] ldrh r1, [r0, 0x22] subs r1, 0x20 strh r1, [r0, 0x36] ldr r1, _080CF6D4 @ =sub_8078B34 str r1, [r0, 0x1C] ldr r1, _080CF6D8 @ =move_anim_8072740 bl oamt_set_x3A_32 pop {r0} bx r0 .align 2, 0 _080CF6D4: .4byte sub_8078B34 _080CF6D8: .4byte move_anim_8072740 thumb_func_end sub_80CF6B4 thumb_func_start sub_80CF6DC sub_80CF6DC: @ 80CF6DC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r5, r0, 0 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080CF700 ldr r1, _080CF6FC @ =gUnknown_03004B00 ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] b _080CF722 .align 2, 0 _080CF6FC: .4byte gUnknown_03004B00 _080CF700: ldr r0, _080CF7C8 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CF722 ldr r1, _080CF7CC @ =gUnknown_03004B00 ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] ldrh r0, [r1, 0x2] negs r0, r0 strh r0, [r1, 0x2] ldrh r0, [r1, 0x6] negs r0, r0 strh r0, [r1, 0x6] _080CF722: adds r0, r5, 0 movs r1, 0x1 bl sub_80787B0 ldr r4, _080CF7D0 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 ldr r6, _080CF7CC @ =gUnknown_03004B00 lsrs r0, 24 ldrh r1, [r6, 0x4] adds r0, r1 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r2, [r6, 0x6] adds r0, r2 lsls r0, 16 lsrs r0, 16 adds r7, r0, 0 ldrh r1, [r5, 0x20] mov r2, r8 lsls r0, r2, 16 asrs r0, 16 subs r0, r1 lsls r0, 16 asrs r0, 16 ldrh r2, [r5, 0x22] lsls r1, r7, 16 asrs r1, 16 subs r1, r2 lsls r1, 16 asrs r1, 16 bl sub_80790F0 lsls r0, 16 movs r1, 0xF0 lsls r1, 24 adds r0, r1 lsrs r4, r0, 16 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080CF794 ldr r2, _080CF7D4 @ =0xffffa000 adds r0, r4, r2 lsls r0, 16 lsrs r4, r0, 16 _080CF794: movs r3, 0x80 lsls r3, 1 str r4, [sp] adds r0, r5, 0 movs r1, 0 adds r2, r3, 0 bl sub_8078FDC ldrh r0, [r6, 0x8] strh r0, [r5, 0x2E] mov r0, r8 strh r0, [r5, 0x32] strh r7, [r5, 0x36] ldr r0, _080CF7D8 @ =sub_8078B34 str r0, [r5, 0x1C] ldr r1, _080CF7DC @ =move_anim_8072740 adds r0, r5, 0 bl oamt_set_x3A_32 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CF7C8: .4byte gUnknown_0202F7C8 _080CF7CC: .4byte gUnknown_03004B00 _080CF7D0: .4byte gUnknown_0202F7C9 _080CF7D4: .4byte 0xffffa000 _080CF7D8: .4byte sub_8078B34 _080CF7DC: .4byte move_anim_8072740 thumb_func_end sub_80CF6DC thumb_func_start sub_80CF7E0 sub_80CF7E0: @ 80CF7E0 push {lr} adds r3, r0, 0 ldrh r0, [r3, 0x2E] subs r1, r0, 0x1 strh r1, [r3, 0x2E] lsls r0, 16 cmp r0, 0 bgt _080CF80A ldr r2, _080CF810 @ =gTasks movs r0, 0x3C ldrsh r1, [r3, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrh r1, [r0, 0xA] subs r1, 0x1 strh r1, [r0, 0xA] adds r0, r3, 0 bl DestroySprite _080CF80A: pop {r0} bx r0 .align 2, 0 _080CF810: .4byte gTasks thumb_func_end sub_80CF7E0 thumb_func_start sub_80CF814 sub_80CF814: @ 80CF814 push {r4,lr} adds r2, r0, 0 movs r0, 0x3C ldrsh r1, [r2, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _080CF844 @ =gTasks adds r4, r0, r1 movs r3, 0x2E ldrsh r1, [r2, r3] movs r3, 0x12 ldrsh r0, [r4, r3] cmp r1, r0 ble _080CF848 ldrh r0, [r2, 0x34] ldrh r1, [r2, 0x38] adds r0, r1 strh r0, [r2, 0x38] ldrh r0, [r2, 0x36] ldrh r3, [r2, 0x3A] adds r0, r3 b _080CF856 .align 2, 0 _080CF844: .4byte gTasks _080CF848: ldrh r0, [r2, 0x38] ldrh r1, [r2, 0x34] subs r0, r1 strh r0, [r2, 0x38] ldrh r0, [r2, 0x3A] ldrh r1, [r2, 0x36] subs r0, r1 _080CF856: strh r0, [r2, 0x3A] ldrh r0, [r2, 0x38] ldrh r1, [r2, 0x30] adds r3, r0, r1 strh r3, [r2, 0x30] ldrh r0, [r2, 0x3A] ldrh r1, [r2, 0x32] adds r0, r1 strh r0, [r2, 0x32] ldrh r1, [r4, 0x16] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080CF87A lsls r0, r3, 16 lsrs r0, 24 negs r0, r0 b _080CF87E _080CF87A: lsls r0, r3, 16 lsrs r0, 24 _080CF87E: strh r0, [r2, 0x24] ldrh r1, [r4, 0x18] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080CF892 ldrh r0, [r2, 0x32] lsrs r0, 8 negs r0, r0 b _080CF896 _080CF892: ldrh r0, [r2, 0x32] lsrs r0, 8 _080CF896: strh r0, [r2, 0x26] ldrh r0, [r2, 0x2E] subs r1, r0, 0x1 strh r1, [r2, 0x2E] lsls r0, 16 cmp r0, 0 bgt _080CF8AC movs r0, 0x1E strh r0, [r2, 0x2E] ldr r0, _080CF8B4 @ =sub_80CF7E0 str r0, [r2, 0x1C] _080CF8AC: pop {r4} pop {r0} bx r0 .align 2, 0 _080CF8B4: .4byte sub_80CF7E0 thumb_func_end sub_80CF814 thumb_func_start sub_80CF8B8 sub_80CF8B8: @ 80CF8B8 push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 movs r0, 0x3C ldrsh r1, [r7, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _080CF8FC @ =gTasks adds r6, r0, r1 ldrh r2, [r6, 0x16] movs r1, 0x2 negs r1, r1 adds r0, r1, 0 ands r0, r2 ldrh r3, [r7, 0x30] adds r2, r0, r3 strh r2, [r7, 0x30] ldrh r0, [r6, 0x18] ands r1, r0 ldrh r0, [r7, 0x32] adds r1, r0 strh r1, [r7, 0x32] ldrh r1, [r6, 0x16] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080CF900 lsls r0, r2, 16 lsrs r0, 24 negs r0, r0 b _080CF904 .align 2, 0 _080CF8FC: .4byte gTasks _080CF900: lsls r0, r2, 16 lsrs r0, 24 _080CF904: strh r0, [r7, 0x24] ldrh r1, [r6, 0x18] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080CF918 ldrh r0, [r7, 0x32] lsrs r0, 8 negs r0, r0 b _080CF91C _080CF918: ldrh r0, [r7, 0x32] lsrs r0, 8 _080CF91C: strh r0, [r7, 0x26] ldrh r0, [r7, 0x2E] subs r1, r0, 0x1 strh r1, [r7, 0x2E] lsls r0, 16 cmp r0, 0 bgt _080CF9E8 movs r4, 0 movs r0, 0x8 strh r0, [r7, 0x2E] movs r0, 0x4 strh r0, [r6, 0x12] movs r0, 0x80 lsls r0, 5 bl sub_81174E0 lsls r0, 16 lsrs r5, r0, 16 ldrh r0, [r7, 0x24] ldrh r1, [r7, 0x20] adds r2, r0, r1 strh r2, [r7, 0x20] ldrh r0, [r7, 0x26] ldrh r3, [r7, 0x22] adds r0, r3 strh r0, [r7, 0x22] strh r4, [r7, 0x26] strh r4, [r7, 0x24] ldrh r3, [r6, 0x1E] movs r0, 0x1E ldrsh r1, [r6, r0] lsls r0, r2, 16 asrs r0, 16 cmp r1, r0 blt _080CF966 subs r0, r3, r2 b _080CF968 _080CF966: subs r0, r2, r3 _080CF968: lsls r0, 24 lsrs r4, r0, 16 ldrh r3, [r6, 0x20] movs r0, 0x20 ldrsh r1, [r6, r0] ldrh r2, [r7, 0x22] movs r6, 0x22 ldrsh r0, [r7, r6] cmp r1, r0 blt _080CF980 subs r0, r3, r2 b _080CF982 _080CF980: subs r0, r2, r3 _080CF982: lsls r0, 24 lsrs r0, 16 mov r8, r0 movs r0, 0 strh r0, [r7, 0x32] strh r0, [r7, 0x30] strh r0, [r7, 0x3A] strh r0, [r7, 0x38] lsls r0, r4, 16 asrs r0, 16 lsls r5, 16 asrs r5, 16 adds r1, r5, 0 bl sub_81174C4 adds r4, r0, 0 lsls r4, 16 asrs r4, 16 movs r6, 0xE0 lsls r6, 1 adds r0, r6, 0 bl sub_81174E0 adds r1, r0, 0 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 bl sub_81174C4 strh r0, [r7, 0x34] mov r1, r8 lsls r0, r1, 16 asrs r0, 16 adds r1, r5, 0 bl sub_81174C4 adds r4, r0, 0 lsls r4, 16 asrs r4, 16 adds r0, r6, 0 bl sub_81174E0 adds r1, r0, 0 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 bl sub_81174C4 strh r0, [r7, 0x36] ldr r0, _080CF9F4 @ =sub_80CF814 str r0, [r7, 0x1C] _080CF9E8: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CF9F4: .4byte sub_80CF814 thumb_func_end sub_80CF8B8 thumb_func_start sub_80CF9F8 sub_80CF9F8: @ 80CF9F8 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080CFA1C @ =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 movs r1, 0xA ldrsh r0, [r0, r1] cmp r0, 0 bne _080CFA16 adds r0, r2, 0 bl move_anim_task_del _080CFA16: pop {r0} bx r0 .align 2, 0 _080CFA1C: .4byte gTasks thumb_func_end sub_80CF9F8 thumb_func_start sub_80CFA20 sub_80CFA20: @ 80CFA20 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 ldr r1, _080CFA74 @ =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r5, r0, r1 ldrh r0, [r5, 0x8] subs r1, r0, 0x1 strh r1, [r5, 0x8] lsls r0, 16 cmp r0, 0 bgt _080CFAF4 ldr r0, _080CFA78 @ =gSpriteTemplate_83D74BC movs r2, 0x1A ldrsh r1, [r5, r2] movs r3, 0x1C ldrsh r2, [r5, r3] ldrb r3, [r5, 0xC] ldrb r4, [r5, 0xA] subs r3, r4 lsls r3, 24 lsrs r3, 24 bl CreateSprite lsls r0, 24 lsrs r0, 24 mov r12, r0 lsls r0, 4 add r0, r12 lsls r0, 2 ldr r1, _080CFA7C @ =gSprites adds r6, r0, r1 movs r1, 0x10 ldrsh r0, [r5, r1] cmp r0, 0x1 beq _080CFA80 cmp r0, 0x2 beq _080CFA96 b _080CFAA4 .align 2, 0 _080CFA74: .4byte gTasks _080CFA78: .4byte gSpriteTemplate_83D74BC _080CFA7C: .4byte gSprites _080CFA80: ldrb r2, [r6, 0x3] lsls r1, r2, 26 lsrs r1, 27 movs r0, 0x18 orrs r1, r0 lsls r1, 1 subs r0, 0x57 ands r0, r2 orrs r0, r1 strb r0, [r6, 0x3] b _080CFAA4 _080CFA96: ldrb r0, [r6, 0x3] movs r1, 0x3F negs r1, r1 ands r1, r0 movs r0, 0x10 orrs r1, r0 strb r1, [r6, 0x3] _080CFAA4: ldr r3, _080CFAFC @ =gTasks lsls r2, r7, 2 adds r2, r7 lsls r2, 3 adds r4, r2, r3 ldrh r0, [r4, 0x12] ldrh r1, [r4, 0x14] subs r0, r1 strh r0, [r6, 0x2E] strh r7, [r6, 0x3C] movs r1, 0xA ldrsh r0, [r4, r1] adds r0, 0xD lsls r0, 1 adds r0, r2 adds r3, 0x8 adds r0, r3 mov r2, r12 strh r2, [r0] ldrh r0, [r4, 0xE] strh r0, [r4, 0x8] ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] movs r0, 0x3F negs r0, r0 bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0x9A bl PlaySE12WithPanning movs r3, 0xA ldrsh r0, [r4, r3] cmp r0, 0x2 ble _080CFAF4 ldr r0, _080CFB00 @ =sub_80CF9F8 str r0, [r4] _080CFAF4: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CFAFC: .4byte gTasks _080CFB00: .4byte sub_80CF9F8 thumb_func_end sub_80CFA20 thumb_func_start sub_80CFB04 sub_80CFB04: @ 80CFB04 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r7, r0, 24 movs r0, 0 mov r9, r0 movs r5, 0 mov r0, sp mov r1, r9 strh r1, [r0] mov r4, sp adds r4, 0x2 strh r1, [r4] bl sub_8076BE0 lsls r0, 24 mov r10, r4 cmp r0, 0 beq _080CFB70 ldr r1, _080CFB60 @ =gTasks lsls r2, r7, 2 adds r0, r2, r7 lsls r0, 3 adds r0, r1 movs r1, 0x2 strh r1, [r0, 0x10] ldr r3, _080CFB64 @ =gUnknown_03004B00 ldrh r0, [r3] negs r0, r0 strh r0, [r3] ldrh r1, [r3, 0x4] movs r0, 0x1 ands r0, r1 mov r8, r2 cmp r0, 0 beq _080CFB68 movs r0, 0x2 negs r0, r0 ands r0, r1 strh r0, [r3, 0x4] b _080CFBCA .align 2, 0 _080CFB60: .4byte gTasks _080CFB64: .4byte gUnknown_03004B00 _080CFB68: movs r0, 0x1 orrs r0, r1 strh r0, [r3, 0x4] b _080CFBCA _080CFB70: ldr r1, _080CFBB4 @ =gUnknown_02024A72 ldr r0, _080CFBB8 @ =gUnknown_0202F7C9 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] movs r3, 0x1 adds r0, r3, 0 ands r0, r1 lsls r2, r7, 2 mov r8, r2 cmp r0, 0 bne _080CFBCA ldr r1, _080CFBBC @ =gTasks adds r0, r2, r7 lsls r0, 3 adds r0, r1 strh r3, [r0, 0x10] ldr r2, _080CFBC0 @ =gUnknown_03004B00 ldrh r0, [r2] negs r0, r0 strh r0, [r2] ldrh r0, [r2, 0x2] negs r0, r0 strh r0, [r2, 0x2] ldrh r1, [r2, 0x4] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _080CFBC4 movs r0, 0x2 negs r0, r0 ands r0, r1 b _080CFBC8 .align 2, 0 _080CFBB4: .4byte gUnknown_02024A72 _080CFBB8: .4byte gUnknown_0202F7C9 _080CFBBC: .4byte gTasks _080CFBC0: .4byte gUnknown_03004B00 _080CFBC4: movs r0, 0x1 orrs r0, r1 _080CFBC8: strh r0, [r2, 0x4] _080CFBCA: ldr r5, _080CFC24 @ =gUnknown_0202F7C8 ldrb r0, [r5] movs r1, 0 bl sub_8077ABC ldr r1, _080CFC28 @ =gTasks mov r3, r8 adds r4, r3, r7 lsls r4, 3 adds r4, r1 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1A] adds r6, r0, 0 ldrb r0, [r5] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1C] mov r9, r0 ldr r0, _080CFC2C @ =gUnknown_020239F8 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080CFC34 ldr r4, _080CFC30 @ =gUnknown_0202F7C9 ldrb r1, [r4] movs r0, 0x2 eors r0, r1 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080CFC34 ldrb r0, [r4] movs r1, 0 mov r2, sp mov r3, r10 bl sub_807A3FC b _080CFC56 .align 2, 0 _080CFC24: .4byte gUnknown_0202F7C8 _080CFC28: .4byte gTasks _080CFC2C: .4byte gUnknown_020239F8 _080CFC30: .4byte gUnknown_0202F7C9 _080CFC34: mov r5, sp ldr r4, _080CFC90 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5] ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 mov r1, r10 strh r0, [r1] _080CFC56: mov r4, sp ldr r0, _080CFC94 @ =gTasks mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r1, r0 mov r2, sp ldr r3, _080CFC98 @ =gUnknown_03004B00 ldrh r0, [r3] ldrh r2, [r2] adds r0, r2 strh r0, [r1, 0x1E] strh r0, [r4] ldrh r0, [r3, 0x2] mov r3, r10 ldrh r3, [r3] adds r0, r3 strh r0, [r1, 0x20] mov r1, r10 strh r0, [r1] mov r0, sp ldrh r2, [r0] movs r3, 0 ldrsh r0, [r0, r3] adds r1, r6, 0 cmp r0, r1 blt _080CFC9C subs r0, r2, r1 b _080CFC9E .align 2, 0 _080CFC90: .4byte gUnknown_0202F7C9 _080CFC94: .4byte gTasks _080CFC98: .4byte gUnknown_03004B00 _080CFC9C: subs r0, r1, r2 _080CFC9E: lsls r0, 16 lsrs r0, 16 lsls r4, r0, 16 asrs r4, 16 ldr r5, _080CFD14 @ =gUnknown_03004B00 ldrh r1, [r5, 0x4] movs r0, 0x2 negs r0, r0 ands r0, r1 lsls r0, 16 asrs r0, 16 bl sub_81174E0 adds r1, r0, 0 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 bl sub_81174C4 ldr r2, _080CFD18 @ =gTasks mov r3, r8 adds r1, r3, r7 lsls r1, 3 adds r6, r1, r2 strh r0, [r6, 0x12] movs r1, 0x12 ldrsh r0, [r6, r1] movs r1, 0x80 bl sub_81174C4 strh r0, [r6, 0x14] ldrh r0, [r5, 0x4] strh r0, [r6, 0x16] mov r2, r10 ldrh r1, [r2] movs r3, 0 ldrsh r0, [r2, r3] mov r4, r9 cmp r0, r4 blt _080CFD1C subs r4, r1, r4 lsls r4, 16 asrs r4, 16 movs r1, 0x12 ldrsh r0, [r6, r1] bl sub_81174E0 adds r1, r0, 0 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 bl sub_81174C4 movs r1, 0x2 negs r1, r1 ands r1, r0 strh r1, [r6, 0x18] b _080CFD3C .align 2, 0 _080CFD14: .4byte gUnknown_03004B00 _080CFD18: .4byte gTasks _080CFD1C: subs r4, r1 lsls r4, 16 asrs r4, 16 movs r2, 0x12 ldrsh r0, [r6, r2] bl sub_81174E0 adds r1, r0, 0 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 bl sub_81174C4 movs r1, 0x1 orrs r0, r1 strh r0, [r6, 0x18] _080CFD3C: ldr r1, _080CFD7C @ =gTasks mov r3, r8 adds r0, r3, r7 lsls r0, 3 adds r5, r0, r1 ldr r4, _080CFD80 @ =gUnknown_03004B00 ldrh r0, [r4, 0x6] strh r0, [r5, 0xE] ldrh r1, [r4, 0x8] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080CFD8C movs r0, 0x80 eors r0, r1 strh r0, [r4, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x3F ble _080CFDB4 ldr r0, _080CFD84 @ =gUnknown_0202F7C9 ldrb r0, [r0] bl sub_8079E90 lsls r0, 24 lsrs r0, 24 ldr r2, _080CFD88 @ =0x0000ffc0 adds r1, r2, 0 ldrh r4, [r4, 0x8] adds r1, r4 adds r0, r1 b _080CFDC4 .align 2, 0 _080CFD7C: .4byte gTasks _080CFD80: .4byte gUnknown_03004B00 _080CFD84: .4byte gUnknown_0202F7C9 _080CFD88: .4byte 0x0000ffc0 _080CFD8C: lsls r0, r1, 16 asrs r0, 16 cmp r0, 0x3F ble _080CFDB4 ldr r0, _080CFDAC @ =gUnknown_0202F7C9 ldrb r0, [r0] bl sub_8079E90 lsls r0, 24 lsrs r0, 24 ldr r3, _080CFDB0 @ =0x0000ffc0 adds r1, r3, 0 ldrh r4, [r4, 0x8] adds r1, r4 adds r0, r1 b _080CFDC4 .align 2, 0 _080CFDAC: .4byte gUnknown_0202F7C9 _080CFDB0: .4byte 0x0000ffc0 _080CFDB4: ldr r0, _080CFDF0 @ =gUnknown_0202F7C9 ldrb r0, [r0] bl sub_8079E90 lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x8] subs r0, r1 _080CFDC4: strh r0, [r5, 0xC] ldr r0, _080CFDF4 @ =gTasks mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r1, r0 movs r3, 0xC ldrsh r0, [r1, r3] cmp r0, 0x2 bgt _080CFDDC movs r0, 0x3 strh r0, [r1, 0xC] _080CFDDC: ldr r0, _080CFDF8 @ =sub_80CFA20 str r0, [r1] add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CFDF0: .4byte gUnknown_0202F7C9 _080CFDF4: .4byte gTasks _080CFDF8: .4byte sub_80CFA20 thumb_func_end sub_80CFB04 thumb_func_start sub_80CFDFC sub_80CFDFC: @ 80CFDFC push {r4,lr} adds r4, r0, 0 movs r1, 0 bl sub_80787B0 ldr r0, _080CFE24 @ =gSpriteTemplate_83D75AC ldrh r0, [r0, 0x2] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 movs r1, 0x80 lsls r1, 1 adds r0, r1 strh r0, [r4, 0x2E] ldr r0, _080CFE28 @ =sub_80CFE2C str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080CFE24: .4byte gSpriteTemplate_83D75AC _080CFE28: .4byte sub_80CFE2C thumb_func_end sub_80CFDFC thumb_func_start sub_80CFE2C sub_80CFE2C: @ 80CFE2C push {r4-r7,lr} adds r4, r0, 0 ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 bne _080CFE90 movs r0, 0 strh r0, [r4, 0x30] ldrh r5, [r4, 0x2E] ldr r1, _080CFE98 @ =gPlttBufferFaded adds r0, r5, 0 adds r0, 0x8 lsls r0, 1 adds r0, r1 ldrh r7, [r0] adds r6, r1, 0 adds r1, r5, 0 adds r1, 0x9 lsls r0, r5, 1 adds r0, r6 adds r2, r0, 0 adds r2, 0x10 movs r3, 0x7 lsls r1, 1 adds r1, r6 _080CFE64: ldrh r0, [r1] strh r0, [r2] adds r1, 0x2 adds r2, 0x2 subs r3, 0x1 cmp r3, 0 bge _080CFE64 adds r0, r5, 0 adds r0, 0xF lsls r0, 1 adds r0, r6 strh r7, [r0] ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x18 bne _080CFE90 adds r0, r4, 0 bl move_anim_8072740 _080CFE90: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CFE98: .4byte gPlttBufferFaded thumb_func_end sub_80CFE2C thumb_func_start sub_80CFE9C sub_80CFE9C: @ 80CFE9C push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r4, _080CFF3C @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 ldr r4, _080CFF40 @ =gUnknown_03004B00 lsrs r0, 24 ldrh r1, [r4, 0x6] adds r0, r1 lsls r0, 16 lsrs r7, r0, 16 ldr r0, _080CFF44 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CFEE0 ldrh r0, [r4, 0x4] negs r0, r0 strh r0, [r4, 0x4] _080CFEE0: lsls r0, r6, 16 asrs r0, 16 ldrh r1, [r4, 0x4] adds r0, r1 lsls r0, 16 ldrh r1, [r5, 0x20] lsrs r6, r0, 16 asrs r0, 16 subs r0, r1 lsls r0, 16 asrs r0, 16 ldrh r2, [r5, 0x22] lsls r1, r7, 16 asrs r1, 16 subs r1, r2 lsls r1, 16 asrs r1, 16 bl sub_80790F0 lsls r0, 16 movs r1, 0xC0 lsls r1, 24 adds r0, r1 lsrs r0, 16 movs r3, 0x80 lsls r3, 1 str r0, [sp] adds r0, r5, 0 movs r1, 0 adds r2, r3, 0 bl sub_8078FDC ldrh r0, [r4, 0x8] strh r0, [r5, 0x2E] strh r6, [r5, 0x32] strh r7, [r5, 0x36] ldr r0, _080CFF48 @ =sub_8078C00 str r0, [r5, 0x1C] ldr r1, _080CFF4C @ =move_anim_8072740 adds r0, r5, 0 bl oamt_set_x3A_32 add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CFF3C: .4byte gUnknown_0202F7C9 _080CFF40: .4byte gUnknown_03004B00 _080CFF44: .4byte gUnknown_0202F7C8 _080CFF48: .4byte sub_8078C00 _080CFF4C: .4byte move_anim_8072740 thumb_func_end sub_80CFE9C thumb_func_start sub_80CFF50 sub_80CFF50: @ 80CFF50 ldr r1, _080CFF60 @ =0x0000fff0 strh r1, [r0, 0x32] ldrh r1, [r0, 0x22] adds r1, 0x8 strh r1, [r0, 0x22] ldr r1, _080CFF64 @ =sub_80CFF68 str r1, [r0, 0x1C] bx lr .align 2, 0 _080CFF60: .4byte 0x0000fff0 _080CFF64: .4byte sub_80CFF68 thumb_func_end sub_80CFF50 thumb_func_start sub_80CFF68 sub_80CFF68: @ 80CFF68 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x80 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 24 strh r0, [r4, 0x24] ldr r0, _080CFFD4 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080CFF8C ldrh r0, [r4, 0x24] negs r0, r0 strh r0, [r4, 0x24] _080CFF8C: movs r1, 0x30 ldrsh r0, [r4, r1] movs r2, 0x32 ldrsh r1, [r4, r2] bl Sin strh r0, [r4, 0x26] ldrh r0, [r4, 0x30] adds r0, 0x5 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x7E ble _080CFFCC movs r0, 0 strh r0, [r4, 0x30] movs r1, 0x32 ldrsh r0, [r4, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 strh r0, [r4, 0x32] ldrh r0, [r4, 0x34] adds r0, 0x1 strh r0, [r4, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 bne _080CFFCC adds r0, r4, 0 bl move_anim_8072740 _080CFFCC: pop {r4} pop {r0} bx r0 .align 2, 0 _080CFFD4: .4byte gUnknown_0202F7C8 thumb_func_end sub_80CFF68 thumb_func_start sub_80CFFD8 sub_80CFFD8: @ 80CFFD8 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 movs r0, 0x14 strh r0, [r4, 0x2E] ldr r5, _080D0024 @ =gUnknown_0202F7C9 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] ldr r0, _080D0028 @ =sub_8078B34 str r0, [r4, 0x1C] adds r2, r4, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] ldr r1, _080D002C @ =sub_80D0030 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D0024: .4byte gUnknown_0202F7C9 _080D0028: .4byte sub_8078B34 _080D002C: .4byte sub_80D0030 thumb_func_end sub_80CFFD8 thumb_func_start sub_80D0030 sub_80D0030: @ 80D0030 push {r4,lr} adds r4, r0, 0 movs r0, 0x3F bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0xA6 bl PlaySE12WithPanning ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 movs r1, 0 strh r0, [r4, 0x20] ldrh r0, [r4, 0x26] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] strh r1, [r4, 0x26] strh r1, [r4, 0x24] movs r2, 0 movs r1, 0x7 adds r0, r4, 0 adds r0, 0x3C _080D0064: strh r2, [r0] subs r0, 0x2 subs r1, 0x1 cmp r1, 0 bge _080D0064 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x7 ands r0, r1 ldr r2, _080D00AC @ =0x0000fff4 adds r1, r2, 0 subs r1, r0 strh r1, [r4, 0x3A] bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA0 bl __umodsi3 adds r0, 0xA0 strh r0, [r4, 0x3C] ldr r0, _080D00B0 @ =sub_80D00B4 str r0, [r4, 0x1C] adds r2, r4, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] pop {r4} pop {r0} bx r0 .align 2, 0 _080D00AC: .4byte 0x0000fff4 _080D00B0: .4byte sub_80D00B4 thumb_func_end sub_80D0030 thumb_func_start sub_80D00B4 sub_80D00B4: @ 80D00B4 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x3C] ldrh r2, [r4, 0x2E] adds r0, r1, r2 strh r0, [r4, 0x2E] lsls r0, 16 asrs r2, r0, 24 strh r2, [r4, 0x24] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080D00D2 negs r0, r2 strh r0, [r4, 0x24] _080D00D2: movs r1, 0x30 ldrsh r0, [r4, r1] movs r2, 0x3A ldrsh r1, [r4, r2] bl Sin strh r0, [r4, 0x26] ldrh r0, [r4, 0x30] adds r0, 0x8 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x7E ble _080D0112 movs r0, 0 strh r0, [r4, 0x30] movs r1, 0x32 ldrsh r0, [r4, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 strh r0, [r4, 0x32] ldrh r0, [r4, 0x34] adds r0, 0x1 strh r0, [r4, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bne _080D0112 adds r0, r4, 0 bl move_anim_8072740 _080D0112: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D00B4 thumb_func_start sub_80D0118 sub_80D0118: @ 80D0118 push {r4,lr} adds r4, r0, 0 movs r1, 0 bl sub_80787B0 ldr r0, _080D0168 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D0136 ldrh r0, [r4, 0x22] adds r0, 0x10 strh r0, [r4, 0x22] _080D0136: ldr r1, _080D016C @ =gUnknown_03004B00 ldrh r0, [r1, 0x8] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x4] strh r0, [r4, 0x30] ldrh r0, [r1, 0xA] strh r0, [r4, 0x32] ldrh r0, [r1, 0xC] strh r0, [r4, 0x34] ldrh r0, [r1, 0x6] strh r0, [r4, 0x36] ldr r0, _080D0170 @ =sub_8078114 str r0, [r4, 0x1C] ldr r1, _080D0174 @ =move_anim_8072740 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4} pop {r0} bx r0 .align 2, 0 _080D0168: .4byte gUnknown_0202F7C8 _080D016C: .4byte gUnknown_03004B00 _080D0170: .4byte sub_8078114 _080D0174: .4byte move_anim_8072740 thumb_func_end sub_80D0118 thumb_func_start sub_80D0178 sub_80D0178: @ 80D0178 push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 movs r7, 0x20 ldr r4, _080D01F4 @ =0x0000ffe0 movs r0, 0x10 mov r8, r0 ldr r6, _080D01F8 @ =0x0000fff0 ldr r0, _080D01FC @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _080D01A4 adds r7, r4, 0 movs r4, 0x20 mov r8, r6 movs r6, 0x10 adds r0, r5, 0 movs r1, 0x1 bl StartSpriteAnim _080D01A4: lsls r0, r7, 16 asrs r0, 16 ldrh r1, [r5, 0x20] adds r0, r1 strh r0, [r5, 0x20] lsls r0, r4, 16 asrs r0, 16 ldrh r1, [r5, 0x22] adds r0, r1 strh r0, [r5, 0x22] movs r0, 0x6 strh r0, [r5, 0x2E] ldr r4, _080D0200 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 add r0, r8 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, r6 strh r0, [r5, 0x36] ldr r0, _080D0204 @ =sub_8078B34 str r0, [r5, 0x1C] ldr r1, _080D0208 @ =sub_80D020C adds r0, r5, 0 bl oamt_set_x3A_32 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D01F4: .4byte 0x0000ffe0 _080D01F8: .4byte 0x0000fff0 _080D01FC: .4byte gUnknown_03004B00 _080D0200: .4byte gUnknown_0202F7C9 _080D0204: .4byte sub_8078B34 _080D0208: .4byte sub_80D020C thumb_func_end sub_80D0178 thumb_func_start sub_80D020C sub_80D020C: @ 80D020C push {lr} adds r2, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080D0222 adds r0, r2, 0 bl move_anim_8072740 _080D0222: pop {r0} bx r0 thumb_func_end sub_80D020C thumb_func_start sub_80D0228 sub_80D0228: @ 80D0228 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r5, r0, 0 movs r0, 0x20 mov r8, r0 ldr r4, _080D02BC @ =0x0000ffe0 movs r2, 0x10 mov r9, r2 ldr r6, _080D02C0 @ =0x0000fff0 ldr r7, _080D02C4 @ =gUnknown_03004B00 ldrh r1, [r7] movs r2, 0 ldrsh r0, [r7, r2] cmp r0, 0 beq _080D025C mov r8, r4 movs r4, 0x20 mov r9, r6 movs r6, 0x10 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl StartSpriteAnim _080D025C: mov r0, r8 lsls r1, r0, 16 asrs r1, 16 ldrh r2, [r5, 0x20] adds r1, r2 strh r1, [r5, 0x20] lsls r0, r4, 16 asrs r0, 16 ldrh r2, [r5, 0x22] adds r0, r2 strh r0, [r5, 0x22] movs r0, 0x6 strh r0, [r5, 0x2E] strh r1, [r5, 0x30] ldr r4, _080D02C8 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 add r0, r9 strh r0, [r5, 0x32] ldrh r0, [r5, 0x22] strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, r6 strh r0, [r5, 0x36] adds r0, r5, 0 bl obj_translate_based_on_private_1_2_3_4 ldrh r0, [r7] strh r0, [r5, 0x38] ldrh r0, [r5, 0x2E] strh r0, [r5, 0x3A] ldr r0, _080D02CC @ =sub_80D02D0 str r0, [r5, 0x1C] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D02BC: .4byte 0x0000ffe0 _080D02C0: .4byte 0x0000fff0 _080D02C4: .4byte gUnknown_03004B00 _080D02C8: .4byte gUnknown_0202F7C9 _080D02CC: .4byte sub_80D02D0 thumb_func_end sub_80D0228 thumb_func_start sub_80D02D0 sub_80D02D0: @ 80D02D0 push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 beq _080D0334 adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080D0334 adds r0, r4, 0 movs r1, 0 bl SeekSpriteAnim adds r2, r4, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x40 orrs r0, r1 strb r0, [r2] ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 movs r2, 0 strh r0, [r4, 0x20] ldrh r0, [r4, 0x26] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] movs r0, 0x2 strh r0, [r4, 0x24] ldr r0, _080D033C @ =0x0000fffe strh r0, [r4, 0x26] ldrh r0, [r4, 0x3A] strh r0, [r4, 0x2E] ldrh r0, [r4, 0x30] movs r1, 0x1 eors r0, r1 strh r0, [r4, 0x30] ldrh r0, [r4, 0x32] eors r0, r1 strh r0, [r4, 0x32] strh r2, [r4, 0x36] strh r2, [r4, 0x34] ldr r0, _080D0340 @ =sub_80D0344 str r0, [r4, 0x1C] _080D0334: pop {r4} pop {r0} bx r0 .align 2, 0 _080D033C: .4byte 0x0000fffe _080D0340: .4byte sub_80D0344 thumb_func_end sub_80D02D0 thumb_func_start sub_80D0344 sub_80D0344: @ 80D0344 push {r4,lr} adds r4, r0, 0 movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0 beq _080D035C ldrh r0, [r4, 0x24] negs r0, r0 strh r0, [r4, 0x24] ldrh r0, [r4, 0x26] negs r0, r0 strh r0, [r4, 0x26] _080D035C: ldrh r0, [r4, 0x34] movs r1, 0x1 eors r0, r1 movs r1, 0 strh r0, [r4, 0x34] ldrh r0, [r4, 0x36] adds r0, 0x1 strh r0, [r4, 0x36] lsls r0, 16 asrs r0, 16 cmp r0, 0x33 bne _080D039E strh r1, [r4, 0x26] strh r1, [r4, 0x24] strh r1, [r4, 0x36] strh r1, [r4, 0x34] adds r2, r4, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r2] ldrh r0, [r4, 0x38] movs r1, 0x1 eors r1, r0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim ldr r0, _080D03A4 @ =sub_80D03A8 str r0, [r4, 0x1C] _080D039E: pop {r4} pop {r0} bx r0 .align 2, 0 _080D03A4: .4byte sub_80D03A8 thumb_func_end sub_80D0344 thumb_func_start sub_80D03A8 sub_80D03A8: @ 80D03A8 push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 beq _080D03BC adds r0, r4, 0 bl move_anim_8072740 _080D03BC: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D03A8 thumb_func_start sub_80D03C4 sub_80D03C4: @ 80D03C4 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 movs r0, 0x1 bl obj_id_for_side_relative_to_move adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 movs r1, 0x1 bl sub_8078E70 adds r0, r4, 0 movs r1, 0xD0 movs r2, 0xD0 movs r3, 0 bl obj_id_set_rotscale ldr r1, _080D041C @ =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x5] lsrs r0, 4 adds r0, 0x10 movs r1, 0 bl sub_8079108 ldr r1, _080D0420 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0x50 strh r1, [r0, 0x8] ldr r1, _080D0424 @ =sub_80D0428 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D041C: .4byte gSprites _080D0420: .4byte gTasks _080D0424: .4byte sub_80D0428 thumb_func_end sub_80D03C4 thumb_func_start sub_80D0428 sub_80D0428: @ 80D0428 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080D0480 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x8] subs r1, 0x1 strh r1, [r0, 0x8] lsls r1, 16 asrs r1, 16 movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080D0478 movs r0, 0x1 bl obj_id_for_side_relative_to_move adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_8078F40 ldr r1, _080D0484 @ =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x5] lsrs r0, 4 adds r0, 0x10 movs r1, 0x1 bl sub_8079108 adds r0, r5, 0 bl move_anim_task_del _080D0478: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D0480: .4byte gTasks _080D0484: .4byte gSprites thumb_func_end sub_80D0428 thumb_func_start sub_80D0488 sub_80D0488: @ 80D0488 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _080D04D4 @ =gTasks adds r4, r0 movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 movs r5, 0 strh r0, [r4, 0x8] movs r1, 0 bl sub_8078E70 strh r5, [r4, 0xA] strh r5, [r4, 0xC] strh r5, [r4, 0xE] movs r0, 0x80 lsls r0, 1 strh r0, [r4, 0x10] strh r5, [r4, 0x12] strh r5, [r4, 0x14] ldr r0, _080D04D8 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl sub_8079E90 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x16] ldr r0, _080D04DC @ =sub_80D04E0 str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D04D4: .4byte gTasks _080D04D8: .4byte gUnknown_0202F7C8 _080D04DC: .4byte sub_80D04E0 thumb_func_end sub_80D0488 thumb_func_start sub_80D04E0 sub_80D04E0: @ 80D04E0 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080D0504 @ =gTasks adds r4, r0, r1 movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0x5 bls _080D04FA b _080D060A _080D04FA: lsls r0, 2 ldr r1, _080D0508 @ =_080D050C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080D0504: .4byte gTasks _080D0508: .4byte _080D050C .align 2, 0 _080D050C: .4byte _080D0524 .4byte _080D056C .4byte _080D05A2 .4byte _080D05A8 .4byte _080D05B8 .4byte _080D05EC _080D0524: movs r2, 0xC ldrsh r0, [r4, r2] cmp r0, 0 beq _080D0534 cmp r0, 0x3 beq _080D0534 cmp r0, 0x6 bne _080D053C _080D0534: adds r0, r4, 0 adds r1, r5, 0 bl sub_80D0614 _080D053C: ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] ldrh r0, [r4, 0x10] adds r0, 0x28 strh r0, [r4, 0x10] ldrb r0, [r4, 0x8] movs r1, 0x10 ldrsh r2, [r4, r1] adds r1, r2, 0 movs r3, 0 bl obj_id_set_rotscale ldrb r0, [r4, 0x8] bl sub_8079A64 movs r2, 0xC ldrsh r0, [r4, r2] cmp r0, 0x20 bne _080D060A ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] b _080D05E4 _080D056C: movs r1, 0x14 ldrsh r0, [r4, r1] cmp r0, 0 bne _080D060A movs r2, 0x12 ldrsh r1, [r4, r2] cmp r1, 0x3 bne _080D0582 strh r0, [r4, 0xC] strh r1, [r4, 0xA] b _080D060A _080D0582: strh r0, [r4, 0xC] strh r0, [r4, 0xE] movs r2, 0x80 lsls r2, 1 strh r2, [r4, 0x10] ldrb r0, [r4, 0x8] adds r1, r2, 0 movs r3, 0 bl obj_id_set_rotscale ldrb r0, [r4, 0x8] bl sub_8079A64 movs r0, 0x2 strh r0, [r4, 0xA] b _080D060A _080D05A2: movs r0, 0 strh r0, [r4, 0xA] b _080D060A _080D05A8: ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x20 ble _080D060A b _080D05E0 _080D05B8: ldrh r0, [r4, 0xC] adds r0, 0x2 strh r0, [r4, 0xC] ldrh r0, [r4, 0x10] subs r0, 0x50 strh r0, [r4, 0x10] ldrb r0, [r4, 0x8] movs r1, 0x10 ldrsh r2, [r4, r1] adds r1, r2, 0 movs r3, 0 bl obj_id_set_rotscale ldrb r0, [r4, 0x8] bl sub_8079A64 movs r2, 0xC ldrsh r0, [r4, r2] cmp r0, 0x20 bne _080D060A _080D05E0: movs r0, 0 strh r0, [r4, 0xC] _080D05E4: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] b _080D060A _080D05EC: ldrb r0, [r4, 0x8] bl sub_8078F40 ldr r2, _080D0610 @ =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0 strh r1, [r0, 0x26] adds r0, r5, 0 bl move_anim_task_del _080D060A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D0610: .4byte gSprites thumb_func_end sub_80D04E0 thumb_func_start sub_80D0614 sub_80D0614: @ 80D0614 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r7, r0, 0 lsls r1, 24 lsrs r1, 24 mov r9, r1 movs r0, 0 bl duplicate_obj_of_side_rel2move_in_transparent_mode lsls r0, 16 lsrs r0, 16 mov r8, r0 lsls r0, 16 asrs r4, r0, 16 cmp r4, 0 blt _080D06EE bl AllocOamMatrix lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0xFF bne _080D0658 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r1, _080D0654 @ =gSprites adds r0, r1 bl obj_delete_but_dont_free_vram b _080D06EE .align 2, 0 _080D0654: .4byte gSprites _080D0658: ldr r5, _080D06FC @ =gSprites lsls r3, r4, 4 adds r3, r4 lsls r3, 2 adds r4, r3, r5 ldrb r1, [r4, 0x1] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x4 orrs r0, r1 movs r1, 0x3 orrs r0, r1 strb r0, [r4, 0x1] adds r2, r4, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] movs r0, 0x1F ands r6, r0 lsls r2, r6, 1 ldrb r1, [r4, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 orrs r0, r2 strb r0, [r4, 0x3] ldrb r0, [r7, 0x16] ldrb r1, [r7, 0xE] subs r0, r1 adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] ldrh r0, [r7, 0xE] adds r0, 0x1 strh r0, [r7, 0xE] ldrh r0, [r7, 0x14] adds r0, 0x1 strh r0, [r7, 0x14] movs r0, 0x10 strh r0, [r4, 0x2E] mov r0, r9 strh r0, [r4, 0x30] movs r0, 0x6 strh r0, [r4, 0x32] adds r5, 0x1C adds r3, r5 ldr r0, _080D0700 @ =sub_80D0704 str r0, [r3] mov r1, r8 lsls r0, r1, 24 lsrs r0, 24 movs r1, 0x10 ldrsh r2, [r7, r1] adds r1, r2, 0 movs r3, 0 bl obj_id_set_rotscale ldrb r0, [r4, 0x1] movs r3, 0x4 negs r3, r3 ands r3, r0 movs r0, 0x1 orrs r3, r0 strb r3, [r4, 0x1] lsrs r1, r3, 6 ldrb r2, [r4, 0x3] lsrs r2, 6 lsls r3, 30 lsrs r3, 30 adds r0, r4, 0 bl CalcCenterToCornerVec _080D06EE: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D06FC: .4byte gSprites _080D0700: .4byte sub_80D0704 thumb_func_end sub_80D0614 thumb_func_start sub_80D0704 sub_80D0704: @ 80D0704 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] subs r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 cmp r0, 0 bne _080D0742 ldr r3, _080D0748 @ =gTasks movs r0, 0x32 ldrsh r1, [r4, r0] lsls r1, 1 movs r0, 0x30 ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix adds r0, r4, 0 bl obj_delete_but_dont_free_vram _080D0742: pop {r4} pop {r0} bx r0 .align 2, 0 _080D0748: .4byte gTasks thumb_func_end sub_80D0704 thumb_func_start sub_80D074C sub_80D074C: @ 80D074C push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080D0770 @ =gTasks adds r4, r0, r1 ldr r5, _080D0774 @ =gUnknown_03004B00 movs r1, 0x2 ldrsh r0, [r5, r1] cmp r0, 0 bne _080D0778 adds r0, r2, 0 bl move_anim_task_del b _080D079E .align 2, 0 _080D0770: .4byte gTasks _080D0774: .4byte gUnknown_03004B00 _080D0778: ldrb r0, [r5] bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 movs r2, 0 strh r1, [r4, 0x8] strh r2, [r4, 0xA] ldrh r0, [r5, 0x2] strh r0, [r4, 0xC] strh r2, [r4, 0xE] strh r2, [r4, 0x10] ldr r2, _080D07A4 @ =gUnknown_083D76F4 adds r0, r4, 0 bl sub_80798F4 ldr r0, _080D07A8 @ =sub_80D07AC str r0, [r4] _080D079E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D07A4: .4byte gUnknown_083D76F4 _080D07A8: .4byte sub_80D07AC thumb_func_end sub_80D074C thumb_func_start sub_80D07AC sub_80D07AC: @ 80D07AC push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _080D07D0 @ =gTasks adds r4, r0, r1 movs r0, 0xA ldrsh r5, [r4, r0] cmp r5, 0x1 beq _080D0814 cmp r5, 0x1 bgt _080D07D4 cmp r5, 0 beq _080D07DE b _080D08BC .align 2, 0 _080D07D0: .4byte gTasks _080D07D4: cmp r5, 0x2 beq _080D0848 cmp r5, 0x3 beq _080D0878 b _080D08BC _080D07DE: adds r0, r4, 0 bl sub_807992C ldrh r2, [r4, 0x10] adds r2, 0x3 strh r2, [r4, 0x10] ldr r3, _080D0810 @ =gSprites movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r0, 0x26] adds r1, r2 strh r1, [r0, 0x26] ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _080D08BC strh r5, [r4, 0xE] b _080D0870 .align 2, 0 _080D0810: .4byte gSprites _080D0814: adds r0, r4, 0 bl sub_807992C ldr r2, _080D0844 @ =gSprites movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r4, 0x10] ldrh r2, [r0, 0x26] adds r1, r2 strh r1, [r0, 0x26] ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _080D08BC movs r0, 0 strh r0, [r4, 0xE] b _080D0870 .align 2, 0 _080D0844: .4byte gSprites _080D0848: movs r1, 0x10 ldrsh r0, [r4, r1] cmp r0, 0 beq _080D0870 ldr r2, _080D086C @ =gSprites movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x26] subs r1, 0x2 strh r1, [r0, 0x26] ldrh r0, [r4, 0x10] subs r0, 0x2 strh r0, [r4, 0x10] b _080D08BC .align 2, 0 _080D086C: .4byte gSprites _080D0870: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] b _080D08BC _080D0878: adds r0, r4, 0 bl sub_807992C lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _080D08BC ldrh r0, [r4, 0xC] subs r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 cmp r0, 0 bne _080D08B0 ldr r2, _080D08AC @ =gSprites movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r5, [r0, 0x26] adds r0, r6, 0 bl move_anim_task_del b _080D08BC .align 2, 0 _080D08AC: .4byte gSprites _080D08B0: ldrb r1, [r4, 0x8] ldr r2, _080D08C4 @ =gUnknown_083D76F4 adds r0, r4, 0 bl sub_80798F4 strh r5, [r4, 0xA] _080D08BC: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D08C4: .4byte gUnknown_083D76F4 thumb_func_end sub_80D07AC thumb_func_start sub_80D08C8 sub_80D08C8: @ 80D08C8 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _080D08F8 @ =gTasks adds r4, r0 movs r0, 0 bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r2, _080D08FC @ =gUnknown_083D7714 adds r0, r4, 0 bl sub_80798F4 ldr r0, _080D0900 @ =sub_80D0904 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080D08F8: .4byte gTasks _080D08FC: .4byte gUnknown_083D7714 _080D0900: .4byte sub_80D0904 thumb_func_end sub_80D08C8 thumb_func_start sub_80D0904 sub_80D0904: @ 80D0904 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080D092C @ =gTasks adds r0, r1 bl sub_807992C lsls r0, 24 cmp r0, 0 bne _080D0924 adds r0, r4, 0 bl move_anim_task_del _080D0924: pop {r4} pop {r0} bx r0 .align 2, 0 _080D092C: .4byte gTasks thumb_func_end sub_80D0904 thumb_func_start sub_80D0930 sub_80D0930: @ 80D0930 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080D0960 @ =gUnknown_0202F7C8 ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D0964 adds r0, r4, 0 movs r1, 0 bl StartSpriteAnim ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, 0x20 strh r0, [r4, 0x20] movs r0, 0x40 b _080D097E .align 2, 0 _080D0960: .4byte gUnknown_0202F7C8 _080D0964: adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAnim ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 subs r0, 0x20 strh r0, [r4, 0x20] ldr r0, _080D09B0 @ =0x0000ffc0 _080D097E: strh r0, [r4, 0x30] ldr r0, _080D09B4 @ =gUnknown_0202F7C8 ldrb r0, [r0] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 movs r1, 0 strh r0, [r4, 0x22] movs r0, 0x34 strh r0, [r4, 0x2E] strh r1, [r4, 0x32] strh r1, [r4, 0x34] strh r1, [r4, 0x36] ldr r1, _080D09B8 @ =move_anim_8072740 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080D09BC @ =sub_8078394 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D09B0: .4byte 0x0000ffc0 _080D09B4: .4byte gUnknown_0202F7C8 _080D09B8: .4byte move_anim_8072740 _080D09BC: .4byte sub_8078394 thumb_func_end sub_80D0930 thumb_func_start sub_80D09C0 sub_80D09C0: @ 80D09C0 push {r4-r6,lr} adds r6, r0, 0 ldr r0, _080D09D4 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D09DC ldr r0, _080D09D8 @ =gUnknown_0202F7C8 b _080D09DE .align 2, 0 _080D09D4: .4byte gUnknown_03004B00 _080D09D8: .4byte gUnknown_0202F7C8 _080D09DC: ldr r0, _080D0A3C @ =gUnknown_0202F7C9 _080D09DE: ldrb r5, [r0] adds r0, r5, 0 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080D09F8 ldr r1, _080D0A40 @ =gUnknown_03004B00 movs r2, 0x2 ldrsh r0, [r1, r2] negs r0, r0 strh r0, [r1, 0x2] _080D09F8: adds r0, r5, 0 movs r1, 0x2 bl sub_8077ABC lsls r0, 24 ldr r4, _080D0A40 @ =gUnknown_03004B00 lsrs r0, 24 ldrh r1, [r4, 0x2] adds r0, r1 strh r0, [r6, 0x20] adds r0, r5, 0 movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x4] adds r0, r4 strh r0, [r6, 0x22] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 bgt _080D0A2A movs r0, 0x8 strh r0, [r6, 0x22] _080D0A2A: ldr r1, _080D0A44 @ =move_anim_8074EE0 adds r0, r6, 0 bl oamt_set_x3A_32 ldr r0, _080D0A48 @ =sub_80785E4 str r0, [r6, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D0A3C: .4byte gUnknown_0202F7C9 _080D0A40: .4byte gUnknown_03004B00 _080D0A44: .4byte move_anim_8074EE0 _080D0A48: .4byte sub_80785E4 thumb_func_end sub_80D09C0 thumb_func_start sub_80D0A4C sub_80D0A4C: @ 80D0A4C push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _080D0A80 @ =gTasks adds r4, r0 movs r0, 0 bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 movs r0, 0 strh r1, [r4, 0x8] strh r0, [r4, 0xA] ldr r2, _080D0A84 @ =gUnknown_083D77B0 adds r0, r4, 0 bl sub_80798F4 ldr r0, _080D0A88 @ =sub_80D0A8C str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080D0A80: .4byte gTasks _080D0A84: .4byte gUnknown_083D77B0 _080D0A88: .4byte sub_80D0A8C thumb_func_end sub_80D0A4C thumb_func_start sub_80D0A8C sub_80D0A8C: @ 80D0A8C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080D0AB4 @ =gTasks adds r0, r1 bl sub_807992C lsls r0, 24 cmp r0, 0 bne _080D0AAC adds r0, r4, 0 bl move_anim_task_del _080D0AAC: pop {r4} pop {r0} bx r0 .align 2, 0 _080D0AB4: .4byte gTasks thumb_func_end sub_80D0A8C thumb_func_start sub_80D0AB8 sub_80D0AB8: @ 80D0AB8 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080D0B2C @ =gTasks adds r4, r1, r0 movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 movs r2, 0 strh r0, [r4, 0x8] strh r2, [r4, 0xA] movs r0, 0x4 strh r0, [r4, 0xC] movs r0, 0x7 strh r0, [r4, 0xE] movs r0, 0x3 strh r0, [r4, 0x10] ldr r3, _080D0B30 @ =gSprites movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x20] strh r0, [r4, 0x12] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x22] strh r0, [r4, 0x14] strh r2, [r4, 0x16] strh r2, [r4, 0x18] movs r0, 0x2 strh r0, [r4, 0x1A] ldr r0, _080D0B34 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080D0B22 movs r1, 0xC ldrsh r0, [r4, r1] negs r0, r0 strh r0, [r4, 0xC] _080D0B22: ldr r0, _080D0B38 @ =sub_80D0B3C str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080D0B2C: .4byte gTasks _080D0B30: .4byte gSprites _080D0B34: .4byte gUnknown_0202F7C8 _080D0B38: .4byte sub_80D0B3C thumb_func_end sub_80D0AB8 thumb_func_start sub_80D0B3C sub_80D0B3C: @ 80D0B3C push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080D0B84 @ =gTasks adds r3, r0, r1 ldrh r0, [r3, 0x16] adds r0, 0x1 strh r0, [r3, 0x16] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _080D0BA2 movs r0, 0 strh r0, [r3, 0x16] ldrh r0, [r3, 0x18] adds r0, 0x1 strh r0, [r3, 0x18] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080D0B8C ldr r2, _080D0B88 @ =gSprites movs r0, 0x8 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r3, 0x1A] ldrh r2, [r0, 0x22] adds r1, r2 b _080D0BA0 .align 2, 0 _080D0B84: .4byte gTasks _080D0B88: .4byte gSprites _080D0B8C: ldr r2, _080D0BB4 @ =gSprites movs r5, 0x8 ldrsh r1, [r3, r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x22] ldrh r2, [r3, 0x1A] subs r1, r2 _080D0BA0: strh r1, [r0, 0x22] _080D0BA2: movs r1, 0xA ldrsh r0, [r3, r1] cmp r0, 0x1 beq _080D0BF0 cmp r0, 0x1 bgt _080D0BB8 cmp r0, 0 beq _080D0BBE b _080D0C80 .align 2, 0 _080D0BB4: .4byte gSprites _080D0BB8: cmp r0, 0x2 beq _080D0C20 b _080D0C80 _080D0BBE: ldr r2, _080D0BEC @ =gSprites movs r5, 0x8 ldrsh r1, [r3, r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r3, 0xC] ldrh r2, [r0, 0x20] adds r1, r2 strh r1, [r0, 0x20] ldrh r0, [r3, 0xE] subs r0, 0x1 strh r0, [r3, 0xE] lsls r0, 16 cmp r0, 0 bne _080D0C80 movs r0, 0xE strh r0, [r3, 0xE] movs r0, 0x1 strh r0, [r3, 0xA] b _080D0C80 .align 2, 0 _080D0BEC: .4byte gSprites _080D0BF0: ldr r2, _080D0C1C @ =gSprites movs r5, 0x8 ldrsh r1, [r3, r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x20] ldrh r2, [r3, 0xC] subs r1, r2 strh r1, [r0, 0x20] ldrh r0, [r3, 0xE] subs r0, 0x1 strh r0, [r3, 0xE] lsls r0, 16 cmp r0, 0 bne _080D0C80 movs r0, 0x7 strh r0, [r3, 0xE] movs r0, 0x2 strh r0, [r3, 0xA] b _080D0C80 .align 2, 0 _080D0C1C: .4byte gSprites _080D0C20: ldr r2, _080D0C58 @ =gSprites movs r0, 0x8 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r3, 0xC] ldrh r5, [r0, 0x20] adds r1, r5 strh r1, [r0, 0x20] ldrh r0, [r3, 0xE] subs r0, 0x1 strh r0, [r3, 0xE] lsls r0, 16 asrs r1, r0, 16 cmp r1, 0 bne _080D0C80 ldrh r0, [r3, 0x10] subs r0, 0x1 strh r0, [r3, 0x10] lsls r0, 16 cmp r0, 0 beq _080D0C5C movs r0, 0x7 strh r0, [r3, 0xE] strh r1, [r3, 0xA] b _080D0C80 .align 2, 0 _080D0C58: .4byte gSprites _080D0C5C: ldrh r1, [r3, 0x18] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080D0C7A movs r0, 0x8 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x22] ldrh r2, [r3, 0x1A] subs r1, r2 strh r1, [r0, 0x22] _080D0C7A: adds r0, r4, 0 bl move_anim_task_del _080D0C80: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80D0B3C thumb_func_start sub_80D0C88 sub_80D0C88: @ 80D0C88 push {r4-r6,lr} sub sp, 0xC lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080D0CD8 @ =gTasks adds r5, r1, r0 ldr r4, _080D0CDC @ =gUnknown_0202F7C9 ldrb r0, [r4] bl sub_8077FC0 lsls r0, 24 lsrs r0, 24 adds r0, 0x20 movs r1, 0 strh r0, [r5, 0x8] movs r0, 0x4 strh r0, [r5, 0xA] strh r1, [r5, 0xC] strh r1, [r5, 0xE] strh r1, [r5, 0x10] strh r1, [r5, 0x12] ldrb r0, [r4] bl sub_807A100 strh r0, [r5, 0x26] ldrb r0, [r4] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080D0CE8 ldr r0, _080D0CE0 @ =gUnknown_030042C0 ldrh r0, [r0] strh r0, [r5, 0x14] ldr r0, _080D0CE4 @ =REG_BG1HOFS b _080D0CF0 .align 2, 0 _080D0CD8: .4byte gTasks _080D0CDC: .4byte gUnknown_0202F7C9 _080D0CE0: .4byte gUnknown_030042C0 _080D0CE4: .4byte REG_BG1HOFS _080D0CE8: ldr r0, _080D0D54 @ =gUnknown_03004288 ldrh r0, [r0] strh r0, [r5, 0x14] ldr r0, _080D0D58 @ =REG_BG2HOFS _080D0CF0: str r0, [sp] ldrh r0, [r5, 0x8] adds r1, r0, 0 subs r1, 0x40 lsls r2, r1, 16 lsls r0, 16 cmp r2, r0 bgt _080D0D2E ldr r4, _080D0D5C @ =gUnknown_03004DE0 movs r0, 0xF0 lsls r0, 3 adds r6, r4, r0 _080D0D08: asrs r3, r2, 16 cmp r3, 0 blt _080D0D20 lsls r1, r3, 1 adds r2, r1, r4 ldrh r0, [r5, 0x14] adds r0, 0xF0 strh r0, [r2] adds r1, r6 ldrh r0, [r5, 0x14] adds r0, 0xF0 strh r0, [r1] _080D0D20: adds r0, r3, 0x1 lsls r2, r0, 16 asrs r1, r2, 16 movs r3, 0x8 ldrsh r0, [r5, r3] cmp r1, r0 ble _080D0D08 _080D0D2E: ldr r0, _080D0D60 @ =0xa2600001 str r0, [sp, 0x4] mov r1, sp movs r2, 0 movs r0, 0x1 strb r0, [r1, 0x8] mov r0, sp strb r2, [r0, 0x9] ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] bl sub_80895F8 ldr r0, _080D0D64 @ =sub_80D0D68 str r0, [r5] add sp, 0xC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D0D54: .4byte gUnknown_03004288 _080D0D58: .4byte REG_BG2HOFS _080D0D5C: .4byte gUnknown_03004DE0 _080D0D60: .4byte 0xa2600001 _080D0D64: .4byte sub_80D0D68 thumb_func_end sub_80D0C88 thumb_func_start sub_80D0D68 sub_80D0D68: @ 80D0D68 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080D0D88 @ =gTasks adds r3, r0, r1 movs r1, 0x10 ldrsh r0, [r3, r1] cmp r0, 0 beq _080D0D8C cmp r0, 0x1 beq _080D0DA2 b _080D0E22 .align 2, 0 _080D0D88: .4byte gTasks _080D0D8C: ldrh r0, [r3, 0x12] adds r0, 0x1 strh r0, [r3, 0x12] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 ble _080D0E22 ldrh r0, [r3, 0x10] adds r0, 0x1 strh r0, [r3, 0x10] b _080D0E22 _080D0DA2: ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 ble _080D0E22 movs r0, 0 strh r0, [r3, 0xA] ldrh r1, [r3, 0xE] movs r0, 0x3 ands r0, r1 strh r0, [r3, 0xC] ldrh r0, [r3, 0x8] subs r0, r1 strh r0, [r3, 0x12] movs r2, 0xC ldrsh r1, [r3, r2] cmp r1, 0x1 beq _080D0DD8 cmp r1, 0x1 ble _080D0DE0 cmp r1, 0x2 beq _080D0DDC cmp r1, 0x3 beq _080D0DDC b _080D0DE0 _080D0DD8: subs r0, 0x2 b _080D0DDE _080D0DDC: adds r0, 0x1 _080D0DDE: strh r0, [r3, 0x12] _080D0DE0: movs r1, 0x12 ldrsh r0, [r3, r1] cmp r0, 0 blt _080D0E04 ldr r2, _080D0E28 @ =gUnknown_03004DE0 lsls r0, 1 adds r0, r2 ldrh r1, [r3, 0x14] strh r1, [r0] movs r1, 0x12 ldrsh r0, [r3, r1] lsls r0, 1 movs r1, 0xF0 lsls r1, 3 adds r2, r1 adds r0, r2 ldrh r1, [r3, 0x14] strh r1, [r0] _080D0E04: ldrh r0, [r3, 0xE] adds r0, 0x1 strh r0, [r3, 0xE] lsls r0, 16 asrs r0, 16 movs r2, 0x26 ldrsh r1, [r3, r2] cmp r0, r1 blt _080D0E22 ldr r1, _080D0E2C @ =gUnknown_03004DC0 movs r0, 0x3 strb r0, [r1, 0x15] adds r0, r4, 0 bl move_anim_task_del _080D0E22: pop {r4} pop {r0} bx r0 .align 2, 0 _080D0E28: .4byte gUnknown_03004DE0 _080D0E2C: .4byte gUnknown_03004DC0 thumb_func_end sub_80D0D68 thumb_func_start sub_80D0E30 sub_80D0E30: @ 80D0E30 push {r4-r6,lr} adds r4, r0, 0 ldr r6, _080D0E84 @ =gUnknown_0202F7C9 ldrb r0, [r6] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 subs r0, 0x10 movs r5, 0 strh r0, [r4, 0x20] ldrb r0, [r6] bl sub_8077FC0 lsls r0, 24 lsrs r0, 24 adds r0, 0x10 strh r0, [r4, 0x22] strh r5, [r4, 0x2E] strh r5, [r4, 0x30] strh r5, [r4, 0x32] movs r0, 0x10 strh r0, [r4, 0x34] strh r5, [r4, 0x36] ldrb r0, [r6] movs r1, 0 bl sub_807A100 adds r0, 0x2 strh r0, [r4, 0x38] movs r0, 0x3F bl sub_8076F98 lsls r0, 24 asrs r0, 24 strh r0, [r4, 0x3A] ldr r0, _080D0E88 @ =sub_80D0E8C str r0, [r4, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D0E84: .4byte gUnknown_0202F7C9 _080D0E88: .4byte sub_80D0E8C thumb_func_end sub_80D0E30 thumb_func_start sub_80D0E8C sub_80D0E8C: @ 80D0E8C push {r4,lr} adds r4, r0, 0 movs r0, 0x2E ldrsh r1, [r4, r0] cmp r1, 0x1 beq _080D0EF0 cmp r1, 0x1 bgt _080D0EA2 cmp r1, 0 beq _080D0EA8 b _080D0FD0 _080D0EA2: cmp r1, 0x2 beq _080D0F82 b _080D0FD0 _080D0EA8: ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D0ED2 strh r1, [r4, 0x32] adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsrs r1, r2, 2 movs r0, 0x1 eors r1, r0 ands r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _080D0ED2: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 ble _080D0FD0 adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x5 negs r1, r1 ands r1, r0 strb r1, [r2] b _080D0F7A _080D0EF0: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 ble _080D0F36 ldrh r2, [r4, 0x32] movs r3, 0x32 ldrsh r1, [r4, r3] movs r3, 0x38 ldrsh r0, [r4, r3] cmp r1, r0 bge _080D0F36 movs r0, 0 strh r0, [r4, 0x30] ldrh r0, [r4, 0x22] subs r0, 0x1 strh r0, [r4, 0x22] adds r0, r2, 0x1 strh r0, [r4, 0x32] movs r1, 0x32 ldrsh r0, [r4, r1] movs r1, 0xA bl __modsi3 lsls r0, 16 cmp r0, 0 bne _080D0F36 ldrh r1, [r4, 0x3A] lsls r1, 24 asrs r1, 24 movs r0, 0xCD bl PlaySE12WithPanning _080D0F36: ldrh r0, [r4, 0x34] ldrh r2, [r4, 0x36] adds r1, r0, r2 strh r1, [r4, 0x36] lsls r0, r1, 16 asrs r2, r0, 16 cmp r2, 0x1F ble _080D0F4A movs r0, 0x40 b _080D0F58 _080D0F4A: movs r0, 0x20 negs r0, r0 cmp r2, r0 bgt _080D0F64 movs r2, 0x40 negs r2, r2 adds r0, r2, 0 _080D0F58: subs r0, r1 strh r0, [r4, 0x36] movs r3, 0x34 ldrsh r0, [r4, r3] negs r0, r0 strh r0, [r4, 0x34] _080D0F64: ldrh r0, [r4, 0x36] movs r2, 0 strh r0, [r4, 0x24] movs r0, 0x38 ldrsh r1, [r4, r0] movs r3, 0x32 ldrsh r0, [r4, r3] cmp r1, r0 bne _080D0FD0 strh r2, [r4, 0x30] strh r2, [r4, 0x32] _080D0F7A: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _080D0FD0 _080D0F82: ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D0FAE movs r0, 0 strh r0, [r4, 0x32] adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsrs r1, r2, 2 movs r0, 0x1 eors r1, r0 ands r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _080D0FAE: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 ble _080D0FD0 adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] adds r0, r4, 0 bl move_anim_8072740 _080D0FD0: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D0E8C thumb_func_start sub_80D0FD8 sub_80D0FD8: @ 80D0FD8 push {r4-r7,lr} sub sp, 0x4 adds r6, r0, 0 movs r5, 0 mov r0, sp strh r5, [r0] mov r1, sp adds r1, 0x2 strh r5, [r1] ldr r0, _080D0FFC @ =gUnknown_03004B00 movs r3, 0x4 ldrsh r2, [r0, r3] adds r7, r1, 0 adds r1, r0, 0 cmp r2, 0 bne _080D1004 ldr r0, _080D1000 @ =gUnknown_0202F7C8 b _080D1006 .align 2, 0 _080D0FFC: .4byte gUnknown_03004B00 _080D1000: .4byte gUnknown_0202F7C8 _080D1004: ldr r0, _080D1040 @ =gUnknown_0202F7C9 _080D1006: ldrb r5, [r0] ldrb r1, [r1, 0x6] movs r0, 0x1 adds r4, r0, 0 eors r4, r1 bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _080D107E movs r1, 0x2 adds r0, r5, 0 eors r0, r1 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080D107E adds r0, r5, 0 adds r1, r4, 0 mov r2, sp adds r3, r7, 0 bl sub_807A3FC cmp r4, 0 bne _080D1044 adds r0, r5, 0 movs r1, 0 b _080D1048 .align 2, 0 _080D1040: .4byte gUnknown_0202F7C9 _080D1044: adds r0, r5, 0 movs r1, 0x2 _080D1048: bl sub_8077ABC lsls r0, 24 lsrs r4, r0, 24 adds r0, r5, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D1074 ldr r2, _080D1070 @ =gUnknown_03004B00 mov r0, sp ldrh r1, [r0] subs r1, r4 ldrh r0, [r2] subs r1, r0 subs r0, r1 strh r0, [r2] b _080D107E .align 2, 0 _080D1070: .4byte gUnknown_03004B00 _080D1074: ldr r1, _080D1090 @ =gUnknown_03004B00 mov r0, sp ldrh r0, [r0] subs r0, r4 strh r0, [r1] _080D107E: ldr r1, _080D1094 @ =sub_80793C4 str r1, [r6, 0x1C] adds r0, r6, 0 bl _call_via_r1 add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D1090: .4byte gUnknown_03004B00 _080D1094: .4byte sub_80793C4 thumb_func_end sub_80D0FD8 thumb_func_start sub_80D1098 sub_80D1098: @ 80D1098 push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 beq _080D10B2 adds r0, r4, 0 bl FreeSpriteOamMatrix adds r0, r4, 0 bl move_anim_8072740 _080D10B2: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D1098 thumb_func_start sub_80D10B8 sub_80D10B8: @ 80D10B8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r5, r0, 0 movs r6, 0 mov r0, sp strh r6, [r0] mov r1, sp adds r1, 0x2 strh r6, [r1] ldr r0, _080D10E4 @ =gUnknown_03004B00 movs r2, 0xA ldrsh r0, [r0, r2] cmp r0, 0 bne _080D10F0 ldr r0, _080D10E8 @ =gUnknown_0202F7C8 ldrb r7, [r0] ldr r0, _080D10EC @ =gUnknown_0202F7C9 b _080D10F6 .align 2, 0 _080D10E4: .4byte gUnknown_03004B00 _080D10E8: .4byte gUnknown_0202F7C8 _080D10EC: .4byte gUnknown_0202F7C9 _080D10F0: ldr r0, _080D1110 @ =gUnknown_0202F7C9 ldrb r7, [r0] ldr r0, _080D1114 @ =gUnknown_0202F7C8 _080D10F6: ldrb r0, [r0] mov r8, r0 ldr r0, _080D1118 @ =gUnknown_03004B00 movs r3, 0xC ldrsh r0, [r0, r3] cmp r0, 0 bne _080D111C movs r0, 0 mov r10, r0 movs r1, 0x1 str r1, [sp, 0x4] b _080D1124 .align 2, 0 _080D1110: .4byte gUnknown_0202F7C9 _080D1114: .4byte gUnknown_0202F7C8 _080D1118: .4byte gUnknown_03004B00 _080D111C: movs r2, 0x2 mov r10, r2 movs r3, 0x3 str r3, [sp, 0x4] _080D1124: adds r0, r7, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D1180 adds r0, r7, 0 mov r1, r10 bl sub_8077ABC lsls r0, 24 ldr r1, _080D1164 @ =gUnknown_03004B00 lsrs r0, 24 ldrh r1, [r1] adds r0, r1 lsls r0, 16 lsrs r0, 16 mov r9, r0 movs r0, 0x2 mov r4, r8 eors r4, r0 adds r0, r4, 0 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080D1170 ldr r2, _080D1168 @ =gSprites ldr r0, _080D116C @ =gUnknown_02024BE0 adds r0, r4, r0 b _080D120A .align 2, 0 _080D1164: .4byte gUnknown_03004B00 _080D1168: .4byte gSprites _080D116C: .4byte gUnknown_02024BE0 _080D1170: ldr r2, _080D1178 @ =gSprites ldr r0, _080D117C @ =gUnknown_02024BE0 add r0, r8 b _080D120A .align 2, 0 _080D1178: .4byte gSprites _080D117C: .4byte gUnknown_02024BE0 _080D1180: adds r0, r7, 0 mov r1, r10 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldr r1, _080D11EC @ =gUnknown_03004B00 ldrh r1, [r1] subs r0, r1 lsls r0, 16 lsrs r0, 16 mov r9, r0 ldr r0, _080D11F0 @ =gMain ldr r1, _080D11F4 @ =0x0000043d adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080D1204 adds r4, r7, 0 movs r0, 0x2 eors r4, r0 adds r0, r4, 0 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080D1204 ldr r3, _080D11F8 @ =gSprites ldr r2, _080D11FC @ =gUnknown_02024BE0 adds r0, r7, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r6, r0, r3 adds r2, r4, r2 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, r0, r3 movs r3, 0x20 ldrsh r1, [r6, r3] movs r3, 0x20 ldrsh r0, [r2, r3] cmp r1, r0 bge _080D1200 adds r0, r2, 0 adds r0, 0x43 ldrb r0, [r0] adds r0, 0x1 b _080D121A .align 2, 0 _080D11EC: .4byte gUnknown_03004B00 _080D11F0: .4byte gMain _080D11F4: .4byte 0x0000043d _080D11F8: .4byte gSprites _080D11FC: .4byte gUnknown_02024BE0 _080D1200: adds r0, r6, 0 b _080D1214 _080D1204: ldr r2, _080D1268 @ =gSprites ldr r0, _080D126C @ =gUnknown_02024BE0 adds r0, r7, r0 _080D120A: ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 _080D1214: adds r0, 0x43 ldrb r0, [r0] subs r0, 0x1 _080D121A: adds r1, r5, 0 adds r1, 0x43 strb r0, [r1] adds r0, r7, 0 ldr r1, [sp, 0x4] bl sub_8077ABC lsls r0, 24 ldr r4, _080D1270 @ =gUnknown_03004B00 lsrs r0, 24 ldrh r1, [r4, 0x2] adds r0, r1 lsls r0, 16 lsrs r6, r0, 16 ldr r0, _080D1274 @ =gMain ldr r2, _080D1278 @ =0x0000043d adds r0, r2 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080D127C mov r0, r8 movs r1, 0x2 eors r0, r1 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080D127C ldrb r1, [r4, 0xC] mov r0, r8 mov r2, sp mov r3, sp adds r3, 0x2 bl sub_807A3FC b _080D129C .align 2, 0 _080D1268: .4byte gSprites _080D126C: .4byte gUnknown_02024BE0 _080D1270: .4byte gUnknown_03004B00 _080D1274: .4byte gMain _080D1278: .4byte 0x0000043d _080D127C: mov r4, sp mov r0, r8 mov r1, r10 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4] mov r0, r8 ldr r1, [sp, 0x4] bl sub_8077ABC lsls r0, 24 lsrs r0, 24 mov r3, sp strh r0, [r3, 0x2] _080D129C: mov r0, r8 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D12C0 mov r3, sp mov r2, sp ldr r1, _080D12BC @ =gUnknown_03004B00 ldrh r0, [r1, 0x6] ldrh r2, [r2] adds r0, r2 strh r0, [r3] adds r2, r1, 0 b _080D12CE .align 2, 0 _080D12BC: .4byte gUnknown_03004B00 _080D12C0: mov r3, sp mov r0, sp ldr r2, _080D1310 @ =gUnknown_03004B00 ldrh r0, [r0] ldrh r1, [r2, 0x6] subs r0, r1 strh r0, [r3] _080D12CE: ldrh r1, [r2, 0x8] mov r0, sp ldrh r0, [r0, 0x2] adds r1, r0 mov r3, sp strh r1, [r3, 0x2] mov r0, r9 strh r0, [r5, 0x30] strh r0, [r5, 0x20] strh r6, [r5, 0x34] strh r6, [r5, 0x22] mov r0, sp ldrh r0, [r0] strh r0, [r5, 0x32] strh r1, [r5, 0x36] ldrh r0, [r2] strh r0, [r5, 0x2E] adds r0, r5, 0 bl obj_translate_based_on_private_1_2_3_4 ldr r1, _080D1314 @ =sub_80D1098 str r1, [r5, 0x1C] adds r0, r5, 0 bl _call_via_r1 add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D1310: .4byte gUnknown_03004B00 _080D1314: .4byte sub_80D1098 thumb_func_end sub_80D10B8 thumb_func_start sub_80D1318 sub_80D1318: @ 80D1318 push {r4,lr} adds r4, r0, 0 ldr r0, _080D1358 @ =0x000027db bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _080D133E lsls r0, 20 ldr r1, _080D135C @ =0x01010000 adds r0, r1 lsrs r0, 16 ldr r1, _080D1360 @ =gUnknown_03004B00 ldrb r2, [r1, 0xA] ldrh r3, [r1, 0x8] movs r1, 0xF bl BlendPalette _080D133E: adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim ldr r1, _080D1364 @ =sub_80793C4 str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4} pop {r0} bx r0 .align 2, 0 _080D1358: .4byte 0x000027db _080D135C: .4byte 0x01010000 _080D1360: .4byte gUnknown_03004B00 _080D1364: .4byte sub_80793C4 thumb_func_end sub_80D1318 thumb_func_start sub_80D1368 sub_80D1368: @ 80D1368 push {r4,lr} adds r4, r0, 0 movs r1, 0 bl sub_80787B0 ldr r0, _080D139C @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 movs r1, 0xA0 cmp r0, 0 beq _080D1384 ldr r1, _080D13A0 @ =0x0000ff60 _080D1384: movs r0, 0xE0 lsls r0, 2 strh r0, [r4, 0x2E] strh r1, [r4, 0x30] ldr r0, _080D13A4 @ =gUnknown_03004B00 ldrh r0, [r0, 0x4] strh r0, [r4, 0x3C] ldr r0, _080D13A8 @ =sub_80D13AC str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080D139C: .4byte gUnknown_0202F7C8 _080D13A0: .4byte 0x0000ff60 _080D13A4: .4byte gUnknown_03004B00 _080D13A8: .4byte sub_80D13AC thumb_func_end sub_80D1368 thumb_func_start sub_80D13AC sub_80D13AC: @ 80D13AC push {r4,r5,lr} adds r4, r0, 0 ldrh r2, [r4, 0x2E] lsls r0, r2, 16 asrs r0, 24 ldrh r1, [r4, 0x26] subs r1, r0 movs r5, 0 strh r1, [r4, 0x26] ldrh r0, [r4, 0x30] lsls r0, 16 asrs r0, 24 strh r0, [r4, 0x24] subs r2, 0x20 strh r2, [r4, 0x2E] ldr r0, _080D1418 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 movs r1, 0xA0 cmp r0, 0 beq _080D13DC ldr r1, _080D141C @ =0x0000ff60 _080D13DC: lsls r0, r1, 16 asrs r0, 16 ldrh r1, [r4, 0x30] adds r0, r1 strh r0, [r4, 0x30] ldrh r1, [r4, 0x26] movs r2, 0x26 ldrsh r0, [r4, r2] cmp r0, 0 ble _080D1410 ldrh r2, [r4, 0x22] adds r0, r1, r2 strh r0, [r4, 0x22] ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] strh r5, [r4, 0x26] strh r5, [r4, 0x24] strh r5, [r4, 0x2E] adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim ldr r0, _080D1420 @ =sub_80D1424 str r0, [r4, 0x1C] _080D1410: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D1418: .4byte gUnknown_0202F7C8 _080D141C: .4byte 0x0000ff60 _080D1420: .4byte sub_80D1424 thumb_func_end sub_80D13AC thumb_func_start sub_80D1424 sub_80D1424: @ 80D1424 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r1, r0, 0x1 strh r1, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x13 ble _080D1442 adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAffineAnim ldr r0, _080D1448 @ =sub_80D144C str r0, [r4, 0x1C] _080D1442: pop {r4} pop {r0} bx r0 .align 2, 0 _080D1448: .4byte sub_80D144C thumb_func_end sub_80D1424 thumb_func_start sub_80D144C sub_80D144C: @ 80D144C push {r4,lr} adds r4, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080D14B2 adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim movs r0, 0 strh r0, [r4, 0x2E] movs r1, 0x3C ldrsh r0, [r4, r1] cmp r0, 0 bne _080D1498 ldrh r2, [r4, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x10 ldr r3, _080D148C @ =0x000003ff adds r0, r3, 0 ands r1, r0 ldr r0, _080D1490 @ =0xfffffc00 ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] ldr r0, _080D1494 @ =sub_80D14C4 b _080D14B0 .align 2, 0 _080D148C: .4byte 0x000003ff _080D1490: .4byte 0xfffffc00 _080D1494: .4byte sub_80D14C4 _080D1498: ldrh r2, [r4, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x20 ldr r3, _080D14B8 @ =0x000003ff adds r0, r3, 0 ands r1, r0 ldr r0, _080D14BC @ =0xfffffc00 ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] ldr r0, _080D14C0 @ =sub_80D154C _080D14B0: str r0, [r4, 0x1C] _080D14B2: pop {r4} pop {r0} bx r0 .align 2, 0 _080D14B8: .4byte 0x000003ff _080D14BC: .4byte 0xfffffc00 _080D14C0: .4byte sub_80D154C thumb_func_end sub_80D144C thumb_func_start sub_80D14C4 sub_80D14C4: @ 80D14C4 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x26] subs r0, 0x2 strh r0, [r2, 0x26] ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x9 bne _080D14F8 movs r0, 0x10 strh r0, [r2, 0x2E] movs r0, 0 strh r0, [r2, 0x30] ldr r1, _080D14FC @ =REG_BLDCNT movs r3, 0xFD lsls r3, 6 adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 ldrh r0, [r2, 0x2E] strh r0, [r1] ldr r0, _080D1500 @ =sub_80D1504 str r0, [r2, 0x1C] _080D14F8: pop {r0} bx r0 .align 2, 0 _080D14FC: .4byte REG_BLDCNT _080D1500: .4byte sub_80D1504 thumb_func_end sub_80D14C4 thumb_func_start sub_80D1504 sub_80D1504: @ 80D1504 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x30] adds r1, r0, 0x1 strh r1, [r4, 0x30] lsls r0, 16 asrs r0, 16 movs r1, 0x3 bl __modsi3 lsls r0, 16 cmp r0, 0 bne _080D153C ldrh r1, [r4, 0x2E] subs r1, 0x1 strh r1, [r4, 0x2E] ldr r2, _080D1544 @ =REG_BLDALPHA movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _080D153C ldr r0, _080D1548 @ =sub_80D154C str r0, [r4, 0x1C] _080D153C: pop {r4} pop {r0} bx r0 .align 2, 0 _080D1544: .4byte REG_BLDALPHA _080D1548: .4byte sub_80D154C thumb_func_end sub_80D1504 thumb_func_start sub_80D154C sub_80D154C: @ 80D154C push {lr} adds r3, r0, 0 ldr r0, _080D1574 @ =gUnknown_03004B00 ldrh r1, [r0, 0xE] ldr r0, _080D1578 @ =0x0000ffff cmp r1, r0 bne _080D1584 adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] movs r1, 0x3C ldrsh r0, [r3, r1] cmp r0, 0 bne _080D1580 ldr r0, _080D157C @ =sub_80D158C b _080D1582 .align 2, 0 _080D1574: .4byte gUnknown_03004B00 _080D1578: .4byte 0x0000ffff _080D157C: .4byte sub_80D158C _080D1580: ldr r0, _080D1588 @ =move_anim_8072740 _080D1582: str r0, [r3, 0x1C] _080D1584: pop {r0} bx r0 .align 2, 0 _080D1588: .4byte move_anim_8072740 thumb_func_end sub_80D154C thumb_func_start sub_80D158C sub_80D158C: @ 80D158C push {lr} ldr r1, _080D15A0 @ =REG_BLDCNT movs r2, 0 strh r2, [r1] adds r1, 0x2 strh r2, [r1] bl move_anim_8072740 pop {r0} bx r0 .align 2, 0 _080D15A0: .4byte REG_BLDCNT thumb_func_end sub_80D158C thumb_func_start sub_80D15A4 sub_80D15A4: @ 80D15A4 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _080D15D4 @ =gTasks adds r4, r0 movs r0, 0 bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 strh r1, [r4, 0x8] ldr r2, _080D15D8 @ =gUnknown_083D79BC adds r0, r4, 0 bl sub_80798F4 ldr r0, _080D15DC @ =sub_80D15E0 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080D15D4: .4byte gTasks _080D15D8: .4byte gUnknown_083D79BC _080D15DC: .4byte sub_80D15E0 thumb_func_end sub_80D15A4 thumb_func_start sub_80D15E0 sub_80D15E0: @ 80D15E0 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080D1630 @ =gTasks adds r4, r0, r1 adds r0, r4, 0 bl sub_807992C lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 bne _080D162A ldr r2, _080D1634 @ =gSprites movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r3, [r0, 0x26] movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] adds r0, r5, 0 bl move_anim_task_del _080D162A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D1630: .4byte gTasks _080D1634: .4byte gSprites thumb_func_end sub_80D15E0 thumb_func_start sub_80D1638 sub_80D1638: @ 80D1638 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080D166C @ =gTasks adds r4, r1, r0 movs r0, 0 strh r0, [r4, 0x8] strh r0, [r4, 0xA] strh r0, [r4, 0xC] strh r0, [r4, 0xE] movs r0, 0x3 strh r0, [r4, 0x20] ldr r0, _080D1670 @ =gUnknown_0202F7C9 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D1678 ldr r0, _080D1674 @ =0x0000ffff strh r0, [r4, 0x22] movs r0, 0x8 b _080D167E .align 2, 0 _080D166C: .4byte gTasks _080D1670: .4byte gUnknown_0202F7C9 _080D1674: .4byte 0x0000ffff _080D1678: movs r0, 0x1 strh r0, [r4, 0x22] ldr r0, _080D1698 @ =0x0000fff8 _080D167E: strh r0, [r4, 0x24] movs r0, 0x1 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] ldr r0, _080D169C @ =sub_80D16A0 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080D1698: .4byte 0x0000fff8 _080D169C: .4byte sub_80D16A0 thumb_func_end sub_80D1638 thumb_func_start sub_80D16A0 sub_80D16A0: @ 80D16A0 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080D16C4 @ =gTasks adds r3, r0, r1 movs r0, 0x8 ldrsh r4, [r3, r0] cmp r4, 0x1 beq _080D16F4 cmp r4, 0x1 bgt _080D16C8 cmp r4, 0 beq _080D16D2 b _080D17BA .align 2, 0 _080D16C4: .4byte gTasks _080D16C8: cmp r4, 0x2 beq _080D1770 cmp r4, 0x3 beq _080D178A b _080D17BA _080D16D2: ldr r2, _080D16F0 @ =gSprites movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r3, 0x24] ldrh r2, [r0, 0x24] adds r1, r2 strh r1, [r0, 0x24] strh r4, [r3, 0xA] strh r4, [r3, 0xC] strh r4, [r3, 0xE] b _080D1782 .align 2, 0 _080D16F0: .4byte gSprites _080D16F4: ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D17BA movs r0, 0 strh r0, [r3, 0xA] ldrh r0, [r3, 0xC] adds r0, 0x1 strh r0, [r3, 0xC] ands r0, r4 lsls r0, 16 cmp r0, 0 beq _080D172C ldr r2, _080D1728 @ =gSprites movs r4, 0x26 ldrsh r1, [r3, r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x24] adds r1, 0x6 b _080D173E .align 2, 0 _080D1728: .4byte gSprites _080D172C: ldr r2, _080D176C @ =gSprites movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x24] subs r1, 0x6 _080D173E: strh r1, [r0, 0x24] ldrh r0, [r3, 0xE] adds r0, 0x1 strh r0, [r3, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 ble _080D17BA ldrh r1, [r3, 0xC] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080D1782 movs r1, 0x26 ldrsh r0, [r3, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrh r0, [r1, 0x24] subs r0, 0x6 strh r0, [r1, 0x24] b _080D1782 .align 2, 0 _080D176C: .4byte gSprites _080D1770: ldrh r0, [r3, 0x20] subs r0, 0x1 strh r0, [r3, 0x20] lsls r0, 16 cmp r0, 0 beq _080D1782 movs r0, 0 strh r0, [r3, 0x8] b _080D17BA _080D1782: ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] b _080D17BA _080D178A: ldr r2, _080D17C0 @ =gSprites movs r4, 0x26 ldrsh r1, [r3, r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r3, 0x22] ldrh r4, [r0, 0x24] adds r1, r4 strh r1, [r0, 0x24] movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x24 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D17BA adds r0, r5, 0 bl move_anim_task_del _080D17BA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D17C0: .4byte gSprites thumb_func_end sub_80D16A0 thumb_func_start sub_80D17C4 sub_80D17C4: @ 80D17C4 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _080D1800 @ =gTasks adds r4, r0 movs r0, 0 strh r0, [r4, 0x8] strh r0, [r4, 0xA] strh r0, [r4, 0xC] strh r0, [r4, 0xE] movs r0, 0x1 strh r0, [r4, 0x10] movs r0, 0xE strh r0, [r4, 0x22] movs r0, 0x2 strh r0, [r4, 0x24] movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] ldr r0, _080D1804 @ =sub_80D1808 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080D1800: .4byte gTasks _080D1804: .4byte sub_80D1808 thumb_func_end sub_80D17C4 thumb_func_start sub_80D1808 sub_80D1808: @ 80D1808 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080D185C @ =gTasks adds r4, r0, r1 movs r0, 0x8 ldrsh r2, [r4, r0] cmp r2, 0 bne _080D18CE ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 movs r3, 0x10 ldrsh r1, [r4, r3] cmp r0, r1 ble _080D18CE strh r2, [r4, 0xA] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080D1864 ldr r3, _080D1860 @ =gSprites movs r6, 0x26 ldrsh r1, [r4, r6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 b _080D187A .align 2, 0 _080D185C: .4byte gTasks _080D1860: .4byte gSprites _080D1864: ldr r3, _080D18AC @ =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 _080D187A: strb r1, [r0] ldrh r0, [r4, 0xE] adds r0, 0x1 movs r2, 0 strh r0, [r4, 0xE] lsls r0, 16 asrs r0, 16 movs r6, 0x22 ldrsh r1, [r4, r6] cmp r0, r1 blt _080D18CE ldrh r0, [r4, 0x10] adds r0, 0x1 strh r0, [r4, 0x10] lsls r0, 16 asrs r0, 16 movs r6, 0x24 ldrsh r1, [r4, r6] cmp r0, r1 bge _080D18B0 strh r2, [r4, 0xA] strh r2, [r4, 0xC] strh r2, [r4, 0xE] b _080D18CE .align 2, 0 _080D18AC: .4byte gSprites _080D18B0: movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] adds r0, r5, 0 bl move_anim_task_del _080D18CE: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80D1808 thumb_func_start sub_80D18D4 sub_80D18D4: @ 80D18D4 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _080D1924 @ =gTasks adds r4, r0 movs r0, 0 strh r0, [r4, 0x8] movs r1, 0x4 strh r1, [r4, 0xA] strh r0, [r4, 0xC] strh r0, [r4, 0xE] strh r0, [r4, 0x10] strh r0, [r4, 0x12] strh r0, [r4, 0x14] strh r0, [r4, 0x16] strh r0, [r4, 0x18] strh r0, [r4, 0x22] ldr r5, _080D1928 @ =gUnknown_0202F7C8 ldrb r0, [r5] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x24] ldrb r0, [r5] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] ldr r0, _080D192C @ =sub_80D1930 str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D1924: .4byte gTasks _080D1928: .4byte gUnknown_0202F7C8 _080D192C: .4byte sub_80D1930 thumb_func_end sub_80D18D4 thumb_func_start sub_80D1930 sub_80D1930: @ 80D1930 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _080D1954 @ =gTasks adds r4, r0, r1 movs r0, 0x18 ldrsh r2, [r4, r0] cmp r2, 0x1 beq _080D199C cmp r2, 0x1 bgt _080D1958 cmp r2, 0 beq _080D195E b _080D19B8 .align 2, 0 _080D1954: .4byte gTasks _080D1958: cmp r2, 0x2 beq _080D19B4 b _080D19B8 _080D195E: ldrh r0, [r4, 0x10] adds r0, 0x1 strh r0, [r4, 0x10] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D19B8 strh r2, [r4, 0x10] ldrh r0, [r4, 0x12] adds r0, 0x1 movs r1, 0x1 ands r0, r1 strh r0, [r4, 0x12] ldrh r0, [r4, 0x14] adds r0, 0x1 strh r0, [r4, 0x14] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 ble _080D19B8 movs r1, 0x16 ldrsh r0, [r4, r1] cmp r0, 0 bne _080D1996 strh r2, [r4, 0x14] movs r0, 0x1 strh r0, [r4, 0x18] b _080D19B8 _080D1996: movs r0, 0x2 strh r0, [r4, 0x18] b _080D19B8 _080D199C: movs r1, 0 strh r1, [r4, 0x12] ldrh r0, [r4, 0x10] adds r0, 0x1 strh r0, [r4, 0x10] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 ble _080D19B8 strh r2, [r4, 0x16] strh r1, [r4, 0x18] b _080D19B8 _080D19B4: movs r0, 0x1 strh r0, [r4, 0x12] _080D19B8: movs r2, 0x8 ldrsh r5, [r4, r2] cmp r5, 0 beq _080D19C6 cmp r5, 0x1 beq _080D1A5C b _080D1A6A _080D19C6: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 ble _080D1A6A strh r5, [r4, 0xA] ldr r0, _080D1A50 @ =gSpriteTemplate_83D79E8 movs r3, 0x24 ldrsh r1, [r4, r3] movs r3, 0x26 ldrsh r2, [r4, r3] movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _080D1A6A ldr r0, _080D1A54 @ =gSprites lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r0 strh r6, [r1, 0x2E] movs r0, 0xD strh r0, [r1, 0x30] ldr r2, _080D1A58 @ =gUnknown_083D7A00 movs r3, 0xC ldrsh r0, [r4, r3] lsls r0, 1 adds r0, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 strh r0, [r1, 0x24] movs r3, 0xC ldrsh r0, [r4, r3] lsls r0, 1 adds r2, 0x1 adds r0, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 strh r0, [r1, 0x26] ldrh r0, [r4, 0x22] adds r0, 0x1 strh r0, [r4, 0x22] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 ble _080D1A6A strh r5, [r4, 0xC] ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 ble _080D1A6A ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080D1A6A .align 2, 0 _080D1A50: .4byte gSpriteTemplate_83D79E8 _080D1A54: .4byte gSprites _080D1A58: .4byte gUnknown_083D7A00 _080D1A5C: movs r1, 0x22 ldrsh r0, [r4, r1] cmp r0, 0 bne _080D1A6A adds r0, r6, 0 bl move_anim_task_del _080D1A6A: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80D1930 thumb_func_start sub_80D1A70 sub_80D1A70: @ 80D1A70 push {r4,lr} adds r3, r0, 0 ldr r4, _080D1AD8 @ =gTasks movs r0, 0x2E ldrsh r1, [r3, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 movs r1, 0x3E adds r1, r3 mov r12, r1 movs r2, 0x1 ldrb r1, [r0, 0x12] ands r1, r2 lsls r1, 2 mov r0, r12 ldrb r2, [r0] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] adds r0, r3, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080D1AD2 movs r0, 0x30 ldrsh r1, [r3, r0] lsls r1, 1 movs r0, 0x2E ldrsh r2, [r3, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r0, r4, 0 adds r0, 0x8 adds r1, r0 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] adds r0, r3, 0 bl DestroySprite _080D1AD2: pop {r4} pop {r0} bx r0 .align 2, 0 _080D1AD8: .4byte gTasks thumb_func_end sub_80D1A70 thumb_func_start sub_80D1ADC sub_80D1ADC: @ 80D1ADC push {r4-r6,lr} sub sp, 0x8 lsls r0, 24 lsrs r6, r0, 24 ldr r0, _080D1B34 @ =0x000027de bl IndexOfSpritePaletteTag mov r1, sp strb r0, [r1] movs r5, 0x1 ldr r0, _080D1B38 @ =0x00002710 adds r4, r0, 0 _080D1AF4: subs r0, r4, r5 lsls r0, 16 lsrs r0, 16 bl AllocSpritePalette mov r2, sp adds r1, r2, r5 strb r0, [r1] adds r5, 0x1 cmp r5, 0x4 ble _080D1AF4 ldr r4, _080D1B3C @ =gBattleAnimSpritePalette_206 bl sub_8076BE0 lsls r0, 24 ldr r1, _080D1B40 @ =0x02018000 cmp r0, 0 beq _080D1B1C ldr r0, _080D1B44 @ =0xffffc800 adds r1, r0 _080D1B1C: adds r0, r4, 0 bl sub_800D238 movs r5, 0 _080D1B24: lsls r4, r5, 5 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080D1B4C ldr r0, _080D1B48 @ =0x02014800 b _080D1B4E .align 2, 0 _080D1B34: .4byte 0x000027de _080D1B38: .4byte 0x00002710 _080D1B3C: .4byte gBattleAnimSpritePalette_206 _080D1B40: .4byte 0x02018000 _080D1B44: .4byte 0xffffc800 _080D1B48: .4byte 0x02014800 _080D1B4C: ldr r0, _080D1B7C @ =0x02018000 _080D1B4E: adds r2, r4, r0 mov r1, sp adds r0, r1, r5 ldrb r1, [r0] lsls r1, 20 movs r0, 0x80 lsls r0, 17 adds r1, r0 lsrs r1, 16 adds r0, r2, 0 movs r2, 0x20 bl LoadPalette adds r5, 0x1 cmp r5, 0x4 ble _080D1B24 adds r0, r6, 0 bl move_anim_task_del add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D1B7C: .4byte 0x02018000 thumb_func_end sub_80D1ADC thumb_func_start sub_80D1B80 sub_80D1B80: @ 80D1B80 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r5, _080D1BA4 @ =gUnknown_083D7A5C movs r4, 0x4 _080D1B8A: ldrh r0, [r5] bl FreeSpritePaletteByTag adds r5, 0x2 subs r4, 0x1 cmp r4, 0 bge _080D1B8A adds r0, r6, 0 bl move_anim_task_del pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D1BA4: .4byte gUnknown_083D7A5C thumb_func_end sub_80D1B80 thumb_func_start sub_80D1BA8 sub_80D1BA8: @ 80D1BA8 push {r4,r5,lr} adds r5, r0, 0 lsls r1, 24 lsls r2, 24 lsrs r3, r2, 24 movs r0, 0x1 ands r3, r0 negs r0, r3 orrs r0, r3 asrs r0, 31 movs r3, 0x20 ands r0, r3 ldrh r4, [r5, 0x4] lsls r3, r4, 22 lsrs r3, 22 lsrs r1, 22 adds r0, r1 adds r3, r0 ldr r1, _080D1BFC @ =0x000003ff adds r0, r1, 0 ands r3, r0 ldr r0, _080D1C00 @ =0xfffffc00 ands r0, r4 orrs r0, r3 strh r0, [r5, 0x4] ldr r0, _080D1C04 @ =gUnknown_083D7A5C lsrs r2, 25 lsls r2, 1 adds r2, r0 ldrh r0, [r2] bl IndexOfSpritePaletteTag lsls r0, 4 ldrb r2, [r5, 0x5] movs r1, 0xF ands r1, r2 orrs r1, r0 strb r1, [r5, 0x5] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D1BFC: .4byte 0x000003ff _080D1C00: .4byte 0xfffffc00 _080D1C04: .4byte gUnknown_083D7A5C thumb_func_end sub_80D1BA8 thumb_func_start sub_80D1C08 sub_80D1C08: @ 80D1C08 push {r4-r6,lr} adds r5, r0, 0 movs r1, 0 bl sub_80787B0 ldr r6, _080D1C70 @ =gUnknown_0202F7C8 ldrb r0, [r6] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D1C28 ldr r1, _080D1C74 @ =gUnknown_03004B00 ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080D1C28: ldr r4, _080D1C74 @ =gUnknown_03004B00 ldrh r0, [r4, 0x8] strh r0, [r5, 0x2E] ldrb r0, [r6] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] adds r0, r1 strh r0, [r5, 0x32] ldrb r0, [r6] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x6] adds r0, r1 strh r0, [r5, 0x36] ldr r0, _080D1C78 @ =sub_8078B34 str r0, [r5, 0x1C] ldr r1, _080D1C7C @ =move_anim_8072740 adds r0, r5, 0 bl oamt_set_x3A_32 ldrb r1, [r4, 0xA] ldrb r2, [r4, 0xC] adds r0, r5, 0 bl sub_80D1BA8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D1C70: .4byte gUnknown_0202F7C8 _080D1C74: .4byte gUnknown_03004B00 _080D1C78: .4byte sub_8078B34 _080D1C7C: .4byte move_anim_8072740 thumb_func_end sub_80D1C08 thumb_func_start sub_80D1C80 sub_80D1C80: @ 80D1C80 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bne _080D1C9A adds r0, r4, 0 movs r1, 0 bl sub_80787B0 _080D1C9A: movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x8 bl Sin strh r0, [r4, 0x24] ldrh r2, [r4, 0x32] lsls r0, r2, 16 asrs r0, 24 strh r0, [r4, 0x26] ldrh r0, [r4, 0x30] adds r0, 0x7 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x30] subs r2, 0x80 strh r2, [r4, 0x32] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x3C bne _080D1CCA adds r0, r4, 0 bl move_anim_8072740 _080D1CCA: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D1C80 thumb_func_start sub_80D1CD0 sub_80D1CD0: @ 80D1CD0 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8076BE0 lsls r0, 24 movs r2, 0xF0 cmp r0, 0 beq _080D1CE4 movs r2, 0x98 _080D1CE4: movs r3, 0 ldr r0, _080D1D2C @ =gUnknown_030042C4 strh r2, [r0] ldr r0, _080D1D30 @ =gUnknown_03004240 movs r1, 0xA0 strh r1, [r0] ldr r0, _080D1D34 @ =REG_WIN0H strh r2, [r0] adds r0, 0x4 strh r1, [r0] ldr r1, _080D1D38 @ =REG_WININ ldr r5, _080D1D3C @ =0x00003f1f adds r0, r5, 0 strh r0, [r1] adds r1, 0x2 adds r5, 0x20 adds r0, r5, 0 strh r0, [r1] adds r1, 0x6 movs r0, 0xC8 strh r0, [r1] adds r1, 0x4 movs r0, 0x10 strh r0, [r1] ldr r1, _080D1D40 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 strh r3, [r0, 0x8] strh r2, [r0, 0xA] ldr r1, _080D1D44 @ =sub_80D1D48 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D1D2C: .4byte gUnknown_030042C4 _080D1D30: .4byte gUnknown_03004240 _080D1D34: .4byte REG_WIN0H _080D1D38: .4byte REG_WININ _080D1D3C: .4byte 0x00003f1f _080D1D40: .4byte gTasks _080D1D44: .4byte sub_80D1D48 thumb_func_end sub_80D1CD0 thumb_func_start sub_80D1D48 sub_80D1D48: @ 80D1D48 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080D1D7C @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r3, r1, r2 ldrh r0, [r3, 0x8] adds r4, r0, 0 adds r4, 0xD strh r4, [r3, 0x8] ldrh r0, [r3, 0xA] adds r2, r0, 0 subs r2, 0xD strh r2, [r3, 0xA] lsls r1, r4, 16 lsls r0, r2, 16 cmp r1, r0 blt _080D1D88 ldr r0, _080D1D80 @ =gUnknown_030042C4 movs r1, 0 strh r1, [r0] ldr r0, _080D1D84 @ =sub_80D1D9C str r0, [r3] b _080D1D90 .align 2, 0 _080D1D7C: .4byte gTasks _080D1D80: .4byte gUnknown_030042C4 _080D1D84: .4byte sub_80D1D9C _080D1D88: ldr r1, _080D1D98 @ =gUnknown_030042C4 lsls r0, r4, 8 orrs r2, r0 strh r2, [r1] _080D1D90: pop {r4} pop {r0} bx r0 .align 2, 0 _080D1D98: .4byte gUnknown_030042C4 thumb_func_end sub_80D1D48 thumb_func_start sub_80D1D9C sub_80D1D9C: @ 80D1D9C push {r4,r5,lr} sub sp, 0xC lsls r0, 24 lsrs r0, 24 adds r2, r0, 0 ldr r5, _080D1DEC @ =gTasks lsls r0, r2, 2 adds r0, r2 lsls r3, r0, 3 adds r1, r3, r5 ldrh r0, [r1, 0x1C] adds r0, 0x1 movs r4, 0 strh r0, [r1, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 bne _080D1DF8 movs r0, 0x88 strh r0, [r1, 0x1E] adds r0, r5, r3 adds r0, 0x1E ldr r1, _080D1DF0 @ =REG_BLDCNT movs r2, 0x2 bl RequestSpriteCopy str r4, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80791A8 ldr r2, _080D1DF4 @ =0x00007fff movs r1, 0x10 bl BlendPalettes b _080D1E1E .align 2, 0 _080D1DEC: .4byte gTasks _080D1DF0: .4byte REG_BLDCNT _080D1DF4: .4byte 0x00007fff _080D1DF8: cmp r0, 0x4 ble _080D1E1E ldr r0, _080D1E28 @ =gUnknown_030042C4 strh r4, [r0] ldr r0, _080D1E2C @ =gUnknown_03004240 strh r4, [r0] ldr r0, _080D1E30 @ =REG_WININ ldr r3, _080D1E34 @ =0x00003f3f adds r1, r3, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x6 strh r4, [r0] adds r0, 0x4 strh r4, [r0] adds r0, r2, 0 bl move_anim_task_del _080D1E1E: add sp, 0xC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D1E28: .4byte gUnknown_030042C4 _080D1E2C: .4byte gUnknown_03004240 _080D1E30: .4byte REG_WININ _080D1E34: .4byte 0x00003f3f thumb_func_end sub_80D1D9C thumb_func_start sub_80D1E38 sub_80D1E38: @ 80D1E38 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 movs r0, 0x1 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080D1E88 @ =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r5, r0, r1 ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bne _080D1E94 movs r0, 0x1 bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r2, _080D1E8C @ =gUnknown_083D7A98 adds r0, r5, 0 bl sub_80798F4 ldr r1, _080D1E90 @ =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r0, r1 movs r1, 0x4 strh r1, [r0, 0x24] b _080D1EBC .align 2, 0 _080D1E88: .4byte gTasks _080D1E8C: .4byte gUnknown_083D7A98 _080D1E90: .4byte gSprites _080D1E94: ldr r1, _080D1EC4 @ =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r4, r0, r1 ldrh r0, [r4, 0x24] negs r0, r0 strh r0, [r4, 0x24] adds r0, r5, 0 bl sub_807992C lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080D1EBC strh r0, [r4, 0x24] strh r0, [r4, 0x26] adds r0, r6, 0 bl move_anim_task_del _080D1EBC: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D1EC4: .4byte gSprites thumb_func_end sub_80D1E38 thumb_func_start sub_80D1EC8 sub_80D1EC8: @ 80D1EC8 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080D1F18 @ =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r5, r0, r1 ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bne _080D1F24 movs r0, 0 bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r2, _080D1F1C @ =gUnknown_083D7A98 adds r0, r5, 0 bl sub_80798F4 ldr r1, _080D1F20 @ =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r0, r1 movs r1, 0x4 strh r1, [r0, 0x24] b _080D1F4C .align 2, 0 _080D1F18: .4byte gTasks _080D1F1C: .4byte gUnknown_083D7A98 _080D1F20: .4byte gSprites _080D1F24: ldr r1, _080D1F54 @ =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r4, r0, r1 ldrh r0, [r4, 0x24] negs r0, r0 strh r0, [r4, 0x24] adds r0, r5, 0 bl sub_807992C lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080D1F4C strh r0, [r4, 0x24] strh r0, [r4, 0x26] adds r0, r6, 0 bl move_anim_task_del _080D1F4C: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D1F54: .4byte gSprites thumb_func_end sub_80D1EC8 thumb_func_start sub_80D1F58 sub_80D1F58: @ 80D1F58 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 movs r0, 0x5F strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] ldr r5, _080D1F9C @ =gUnknown_0202F7C9 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrh r0, [r4, 0x22] strh r0, [r4, 0x34] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] adds r0, r4, 0 bl obj_translate_based_on_private_1_2_3_4 ldr r0, _080D1FA0 @ =sub_80D1FA4 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D1F9C: .4byte gUnknown_0202F7C9 _080D1FA0: .4byte sub_80D1FA4 thumb_func_end sub_80D1F58 thumb_func_start sub_80D1FA4 sub_80D1FA4: @ 80D1FA4 push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 bne _080D1FCE movs r1, 0x38 ldrsh r0, [r4, r1] movs r1, 0xE bl Sin ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x38] adds r0, 0x4 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] b _080D1FD4 _080D1FCE: adds r0, r4, 0 bl move_anim_8072740 _080D1FD4: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D1FA4 thumb_func_start sub_80D1FDC sub_80D1FDC: @ 80D1FDC push {r4,lr} adds r4, r0, 0 ldrh r2, [r4, 0x2E] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _080D2000 ldr r1, _080D1FFC @ =gUnknown_03004B00 ldrh r0, [r1] strh r0, [r4, 0x30] ldrh r0, [r1, 0x2] strh r0, [r4, 0x32] adds r0, r2, 0x1 strh r0, [r4, 0x2E] b _080D205C .align 2, 0 _080D1FFC: .4byte gUnknown_03004B00 _080D2000: ldrh r0, [r4, 0x30] ldrh r2, [r4, 0x36] adds r0, r2 strh r0, [r4, 0x36] lsls r0, 16 asrs r0, 24 strh r0, [r4, 0x24] movs r1, 0x34 ldrsh r0, [r4, r1] movs r2, 0x32 ldrsh r1, [r4, r2] bl Sin strh r0, [r4, 0x26] ldrh r0, [r4, 0x34] adds r0, 0x3 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x34] cmp r0, 0x64 ble _080D204E movs r0, 0x34 ldrsh r1, [r4, r0] lsrs r0, r1, 31 adds r0, r1, r0 asrs r0, 1 lsls r0, 1 subs r1, r0 adds r3, r4, 0 adds r3, 0x3E movs r0, 0x1 ands r1, r0 lsls r1, 2 ldrb r2, [r3] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _080D204E: movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0x78 ble _080D205C adds r0, r4, 0 bl move_anim_8072740 _080D205C: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D1FDC thumb_func_start sub_80D2064 sub_80D2064: @ 80D2064 push {lr} ldr r2, _080D2088 @ =gUnknown_03004B00 ldrh r1, [r2] strh r1, [r0, 0x20] movs r1, 0xA0 strh r1, [r0, 0x22] ldrh r1, [r2, 0x4] strh r1, [r0, 0x2E] ldrh r1, [r2, 0x2] strh r1, [r0, 0x30] ldr r1, _080D208C @ =sub_80782D8 str r1, [r0, 0x1C] ldr r1, _080D2090 @ =sub_80D2094 bl oamt_set_x3A_32 pop {r0} bx r0 .align 2, 0 _080D2088: .4byte gUnknown_03004B00 _080D208C: .4byte sub_80782D8 _080D2090: .4byte sub_80D2094 thumb_func_end sub_80D2064 thumb_func_start sub_80D2094 sub_80D2094: @ 80D2094 push {r4,r5,lr} adds r4, r0, 0 ldrh r0, [r4, 0x30] ldrh r1, [r4, 0x32] adds r0, r1 strh r0, [r4, 0x32] lsls r0, 16 lsrs r0, 24 negs r0, r0 strh r0, [r4, 0x26] movs r1, 0x34 ldrsh r0, [r4, r1] movs r1, 0x4 bl Sin strh r0, [r4, 0x24] ldrh r0, [r4, 0x34] adds r0, 0x3 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x34] ldrh r0, [r4, 0x26] ldrh r1, [r4, 0x22] adds r0, r1 lsls r0, 16 asrs r5, r0, 16 cmp r5, 0x48 bgt _080D20FA movs r0, 0x34 ldrsh r1, [r4, r0] lsrs r0, r1, 31 adds r0, r1, r0 asrs r0, 1 lsls r0, 1 subs r1, r0 adds r3, r4, 0 adds r3, 0x3E movs r0, 0x1 ands r1, r0 lsls r1, 2 ldrb r2, [r3] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] cmp r5, 0x40 bgt _080D20FA adds r0, r4, 0 bl move_anim_8072740 _080D20FA: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80D2094 thumb_func_start sub_80D2100 sub_80D2100: @ 80D2100 push {r4,r5,lr} sub sp, 0x10 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080D21BC @ =REG_BLDCNT ldr r2, _080D21C0 @ =0x00003f42 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r2, 0x80 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r4, _080D21C4 @ =REG_BG1CNT ldrb r0, [r4] movs r1, 0x3 orrs r0, r1 strb r0, [r4] ldrb r1, [r4, 0x1] movs r0, 0x3F ands r0, r1 strb r0, [r4, 0x1] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080D2144 ldrb r0, [r4] movs r1, 0xD negs r1, r1 ands r1, r0 movs r0, 0x4 orrs r1, r0 strb r1, [r4] _080D2144: ldr r0, _080D21C8 @ =gUnknown_030042C0 movs r1, 0 strh r1, [r0] ldr r0, _080D21CC @ =gUnknown_030041B4 strh r1, [r0] ldr r0, _080D21D0 @ =REG_BG1HOFS strh r1, [r0] adds r0, 0x2 strh r1, [r0] mov r0, sp bl sub_8078914 ldr r1, [sp, 0x4] movs r0, 0 str r0, [sp, 0xC] ldr r2, _080D21D4 @ =0x040000d4 add r0, sp, 0xC str r0, [r2] str r1, [r2, 0x4] ldr r0, _080D21D8 @ =0x85000400 str r0, [r2, 0x8] ldr r0, [r2, 0x8] ldr r0, _080D21DC @ =gAttractTilemap bl LZDecompressVram ldr r0, _080D21E0 @ =gAttractGfx ldr r1, [sp] bl LZDecompressVram ldr r0, _080D21E4 @ =gAttractPal mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 movs r2, 0x20 bl LoadCompressedPalette bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080D21A4 mov r0, sp ldrb r0, [r0, 0x8] ldr r1, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_80763FC _080D21A4: ldr r0, _080D21E8 @ =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _080D21EC @ =sub_80D21F0 str r0, [r1] add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D21BC: .4byte REG_BLDCNT _080D21C0: .4byte 0x00003f42 _080D21C4: .4byte REG_BG1CNT _080D21C8: .4byte gUnknown_030042C0 _080D21CC: .4byte gUnknown_030041B4 _080D21D0: .4byte REG_BG1HOFS _080D21D4: .4byte 0x040000d4 _080D21D8: .4byte 0x85000400 _080D21DC: .4byte gAttractTilemap _080D21E0: .4byte gAttractGfx _080D21E4: .4byte gAttractPal _080D21E8: .4byte gTasks _080D21EC: .4byte sub_80D21F0 thumb_func_end sub_80D2100 thumb_func_start sub_80D21F0 sub_80D21F0: @ 80D21F0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080D2220 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r2, 0x20 ldrsh r0, [r0, r2] adds r2, r1, 0 cmp r0, 0x4 bls _080D2216 b _080D238C _080D2216: lsls r0, 2 ldr r1, _080D2224 @ =_080D2228 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080D2220: .4byte gTasks _080D2224: .4byte _080D2228 .align 2, 0 _080D2228: .4byte _080D223C .4byte _080D2284 .4byte _080D22A6 .4byte _080D22E8 .4byte _080D236C _080D223C: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r3, r0, r2 ldrh r0, [r3, 0x1C] adds r0, 0x1 movs r4, 0 strh r0, [r3, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 beq _080D2256 b _080D238C _080D2256: strh r4, [r3, 0x1C] ldrh r1, [r3, 0x1E] adds r1, 0x1 strh r1, [r3, 0x1E] ldr r2, _080D2280 @ =REG_BLDALPHA movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r1, 0x1E ldrsh r0, [r3, r1] cmp r0, 0x10 beq _080D2274 b _080D238C _080D2274: ldrh r0, [r3, 0x20] adds r0, 0x1 strh r0, [r3, 0x20] strh r4, [r3, 0x1E] b _080D238C .align 2, 0 _080D2280: .4byte REG_BLDALPHA _080D2284: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r1, r0, r2 ldrh r0, [r1, 0x1E] adds r0, 0x1 strh r0, [r1, 0x1E] lsls r0, 16 asrs r0, 16 cmp r0, 0x8D bne _080D238C movs r0, 0x10 strh r0, [r1, 0x1E] ldrh r0, [r1, 0x20] adds r0, 0x1 strh r0, [r1, 0x20] b _080D238C _080D22A6: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r3, r0, r2 ldrh r0, [r3, 0x1C] adds r0, 0x1 strh r0, [r3, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _080D238C movs r0, 0 strh r0, [r3, 0x1C] ldrh r1, [r3, 0x1E] subs r1, 0x1 strh r1, [r3, 0x1E] ldr r2, _080D22E4 @ =REG_BLDALPHA movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r2, 0x1E ldrsh r1, [r3, r2] cmp r1, 0 bne _080D238C ldrh r0, [r3, 0x20] adds r0, 0x1 strh r0, [r3, 0x20] strh r1, [r3, 0x1E] b _080D238C .align 2, 0 _080D22E4: .4byte REG_BLDALPHA _080D22E8: mov r0, sp bl sub_8078914 ldr r2, [sp] movs r3, 0x80 lsls r3, 6 lsls r0, r5, 2 mov r10, r0 add r6, sp, 0xC movs r7, 0 ldr r1, _080D239C @ =0x040000d4 movs r4, 0x80 lsls r4, 5 mov r8, r6 ldr r0, _080D23A0 @ =0x85000400 mov r12, r0 movs r0, 0x85 lsls r0, 24 mov r9, r0 _080D230E: str r7, [sp, 0xC] mov r0, r8 str r0, [r1] str r2, [r1, 0x4] mov r0, r12 str r0, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r4 subs r3, r4 cmp r3, r4 bhi _080D230E str r7, [sp, 0xC] str r6, [r1] str r2, [r1, 0x4] lsrs r0, r3, 2 mov r2, r9 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r1, [sp, 0x4] movs r0, 0 str r0, [sp, 0xC] ldr r0, _080D239C @ =0x040000d4 str r6, [r0] str r1, [r0, 0x4] ldr r1, _080D23A4 @ =0x85000200 str r1, [r0, 0x8] ldr r0, [r0, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080D235C ldr r2, _080D23A8 @ =REG_BG1CNT ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _080D235C: ldr r0, _080D23AC @ =gTasks mov r2, r10 adds r1, r2, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x20] adds r0, 0x1 strh r0, [r1, 0x20] _080D236C: ldr r0, _080D23B0 @ =REG_BLDCNT movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r2, _080D23A8 @ =REG_BG1CNT ldrb r1, [r2] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2] adds r0, r5, 0 bl move_anim_task_del _080D238C: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D239C: .4byte 0x040000d4 _080D23A0: .4byte 0x85000400 _080D23A4: .4byte 0x85000200 _080D23A8: .4byte REG_BG1CNT _080D23AC: .4byte gTasks _080D23B0: .4byte REG_BLDCNT thumb_func_end sub_80D21F0 thumb_func_start sub_80D23B4 sub_80D23B4: @ 80D23B4 push {r4,r5,lr} sub sp, 0x10 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080D2438 @ =REG_BLDCNT ldr r2, _080D243C @ =0x00003f42 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r2, 0x80 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r4, _080D2440 @ =REG_BG1CNT ldrb r1, [r4] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4] ldrb r1, [r4, 0x1] movs r0, 0x3F ands r0, r1 strb r0, [r4, 0x1] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080D23FE ldrb r0, [r4] movs r1, 0xD negs r1, r1 ands r1, r0 movs r0, 0x4 orrs r1, r0 strb r1, [r4] _080D23FE: ldr r0, _080D2444 @ =gUnknown_030042C0 movs r1, 0 strh r1, [r0] ldr r0, _080D2448 @ =gUnknown_030041B4 strh r1, [r0] ldr r0, _080D244C @ =REG_BG1HOFS strh r1, [r0] adds r0, 0x2 strh r1, [r0] mov r0, sp bl sub_8078914 ldr r2, [sp, 0x4] movs r0, 0 str r0, [sp, 0xC] ldr r1, _080D2450 @ =0x040000d4 add r0, sp, 0xC str r0, [r1] str r2, [r1, 0x4] ldr r0, _080D2454 @ =0x85000400 str r0, [r1, 0x8] ldr r0, [r1, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080D245C ldr r0, _080D2458 @ =gBattleAnimBackgroundTilemap_ScaryFaceContest b _080D246E .align 2, 0 _080D2438: .4byte REG_BLDCNT _080D243C: .4byte 0x00003f42 _080D2440: .4byte REG_BG1CNT _080D2444: .4byte gUnknown_030042C0 _080D2448: .4byte gUnknown_030041B4 _080D244C: .4byte REG_BG1HOFS _080D2450: .4byte 0x040000d4 _080D2454: .4byte 0x85000400 _080D2458: .4byte gBattleAnimBackgroundTilemap_ScaryFaceContest _080D245C: ldr r0, _080D2478 @ =gUnknown_0202F7C9 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080D2480 ldr r0, _080D247C @ =gBattleAnimBackgroundTilemap_ScaryFacePlayer _080D246E: ldr r1, [sp, 0x4] bl LZDecompressVram b _080D2488 .align 2, 0 _080D2478: .4byte gUnknown_0202F7C9 _080D247C: .4byte gBattleAnimBackgroundTilemap_ScaryFacePlayer _080D2480: ldr r0, _080D24CC @ =gBattleAnimBackgroundTilemap_ScaryFaceOpponent ldr r1, [sp, 0x4] bl LZDecompressVram _080D2488: ldr r0, _080D24D0 @ =gBattleAnimBackgroundImage_ScaryFace ldr r1, [sp] bl LZDecompressVram ldr r0, _080D24D4 @ =gBattleAnimBackgroundPalette_ScaryFace mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 movs r2, 0x20 bl LoadCompressedPalette bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080D24B6 mov r0, sp ldrb r0, [r0, 0x8] ldr r1, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_80763FC _080D24B6: ldr r0, _080D24D8 @ =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _080D24DC @ =sub_80D24E0 str r0, [r1] add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D24CC: .4byte gBattleAnimBackgroundTilemap_ScaryFaceOpponent _080D24D0: .4byte gBattleAnimBackgroundImage_ScaryFace _080D24D4: .4byte gBattleAnimBackgroundPalette_ScaryFace _080D24D8: .4byte gTasks _080D24DC: .4byte sub_80D24E0 thumb_func_end sub_80D23B4 thumb_func_start sub_80D24E0 sub_80D24E0: @ 80D24E0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080D2510 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r2, 0x20 ldrsh r0, [r0, r2] adds r2, r1, 0 cmp r0, 0x4 bls _080D2506 b _080D267C _080D2506: lsls r0, 2 ldr r1, _080D2514 @ =_080D2518 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080D2510: .4byte gTasks _080D2514: .4byte _080D2518 .align 2, 0 _080D2518: .4byte _080D252C .4byte _080D2574 .4byte _080D2596 .4byte _080D25D8 .4byte _080D265C _080D252C: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r3, r0, r2 ldrh r0, [r3, 0x1C] adds r0, 0x1 movs r4, 0 strh r0, [r3, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 beq _080D2546 b _080D267C _080D2546: strh r4, [r3, 0x1C] ldrh r1, [r3, 0x1E] adds r1, 0x1 strh r1, [r3, 0x1E] ldr r2, _080D2570 @ =REG_BLDALPHA movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r1, 0x1E ldrsh r0, [r3, r1] cmp r0, 0xE beq _080D2564 b _080D267C _080D2564: ldrh r0, [r3, 0x20] adds r0, 0x1 strh r0, [r3, 0x20] strh r4, [r3, 0x1E] b _080D267C .align 2, 0 _080D2570: .4byte REG_BLDALPHA _080D2574: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r1, r0, r2 ldrh r0, [r1, 0x1E] adds r0, 0x1 strh r0, [r1, 0x1E] lsls r0, 16 asrs r0, 16 cmp r0, 0x15 bne _080D267C movs r0, 0xE strh r0, [r1, 0x1E] ldrh r0, [r1, 0x20] adds r0, 0x1 strh r0, [r1, 0x20] b _080D267C _080D2596: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r3, r0, r2 ldrh r0, [r3, 0x1C] adds r0, 0x1 strh r0, [r3, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 bne _080D267C movs r0, 0 strh r0, [r3, 0x1C] ldrh r1, [r3, 0x1E] subs r1, 0x1 strh r1, [r3, 0x1E] ldr r2, _080D25D4 @ =REG_BLDALPHA movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r2, 0x1E ldrsh r1, [r3, r2] cmp r1, 0 bne _080D267C ldrh r0, [r3, 0x20] adds r0, 0x1 strh r0, [r3, 0x20] strh r1, [r3, 0x1E] b _080D267C .align 2, 0 _080D25D4: .4byte REG_BLDALPHA _080D25D8: mov r0, sp bl sub_8078914 ldr r2, [sp] movs r3, 0x80 lsls r3, 6 lsls r0, r5, 2 mov r10, r0 add r6, sp, 0xC movs r7, 0 ldr r1, _080D268C @ =0x040000d4 movs r4, 0x80 lsls r4, 5 mov r8, r6 ldr r0, _080D2690 @ =0x85000400 mov r12, r0 movs r0, 0x85 lsls r0, 24 mov r9, r0 _080D25FE: str r7, [sp, 0xC] mov r0, r8 str r0, [r1] str r2, [r1, 0x4] mov r0, r12 str r0, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r4 subs r3, r4 cmp r3, r4 bhi _080D25FE str r7, [sp, 0xC] str r6, [r1] str r2, [r1, 0x4] lsrs r0, r3, 2 mov r2, r9 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r1, [sp, 0x4] movs r0, 0 str r0, [sp, 0xC] ldr r0, _080D268C @ =0x040000d4 str r6, [r0] str r1, [r0, 0x4] ldr r1, _080D2694 @ =0x85000200 str r1, [r0, 0x8] ldr r0, [r0, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080D264C ldr r2, _080D2698 @ =REG_BG1CNT ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _080D264C: ldr r0, _080D269C @ =gTasks mov r2, r10 adds r1, r2, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x20] adds r0, 0x1 strh r0, [r1, 0x20] _080D265C: ldr r0, _080D26A0 @ =REG_BLDCNT movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r2, _080D2698 @ =REG_BG1CNT ldrb r1, [r2] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2] adds r0, r5, 0 bl move_anim_task_del _080D267C: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D268C: .4byte 0x040000d4 _080D2690: .4byte 0x85000400 _080D2694: .4byte 0x85000200 _080D2698: .4byte REG_BG1CNT _080D269C: .4byte gTasks _080D26A0: .4byte REG_BLDCNT thumb_func_end sub_80D24E0 thumb_func_start sub_80D26A4 sub_80D26A4: @ 80D26A4 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080D26F8 @ =gUnknown_0202F7C8 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] adds r2, r4, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] ldr r1, _080D26FC @ =gUnknown_03004B00 ldrh r0, [r1] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x2] strh r0, [r4, 0x30] ldrb r0, [r5] bl sub_8079E90 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x3C] ldr r1, _080D2700 @ =sub_80D2704 str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D26F8: .4byte gUnknown_0202F7C8 _080D26FC: .4byte gUnknown_03004B00 _080D2700: .4byte sub_80D2704 thumb_func_end sub_80D26A4 thumb_func_start sub_80D2704 sub_80D2704: @ 80D2704 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x30] subs r0, 0x40 lsls r0, 16 lsrs r0, 16 cmp r0, 0x7F bhi _080D271A ldrh r0, [r4, 0x3C] adds r0, 0x1 b _080D271E _080D271A: ldrh r0, [r4, 0x3C] subs r0, 0x1 _080D271E: adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] movs r1, 0x30 ldrsh r0, [r4, r1] ldrh r1, [r4, 0x32] lsls r1, 16 asrs r1, 24 bl Sin strh r0, [r4, 0x24] movs r2, 0x30 ldrsh r0, [r4, r2] ldrh r1, [r4, 0x34] lsls r1, 16 asrs r1, 24 bl Cos strh r0, [r4, 0x26] ldrh r0, [r4, 0x30] adds r0, 0x9 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x30] movs r3, 0x38 ldrsh r2, [r4, r3] cmp r2, 0 beq _080D2790 cmp r2, 0x1 bne _080D27C0 ldr r1, _080D2788 @ =0xfffffc00 adds r0, r1, 0 ldrh r2, [r4, 0x32] adds r0, r2 strh r0, [r4, 0x32] ldr r3, _080D278C @ =0xffffff00 adds r0, r3, 0 ldrh r1, [r4, 0x34] adds r0, r1 strh r0, [r4, 0x34] ldrh r0, [r4, 0x36] adds r0, 0x1 strh r0, [r4, 0x36] lsls r0, 16 asrs r0, 16 movs r2, 0x2E ldrsh r1, [r4, r2] cmp r0, r1 bne _080D27C0 movs r0, 0x2 strh r0, [r4, 0x38] b _080D27D0 .align 2, 0 _080D2788: .4byte 0xfffffc00 _080D278C: .4byte 0xffffff00 _080D2790: movs r3, 0x80 lsls r3, 3 adds r0, r3, 0 ldrh r1, [r4, 0x32] adds r0, r1 strh r0, [r4, 0x32] movs r3, 0x80 lsls r3, 1 adds r0, r3, 0 ldrh r1, [r4, 0x34] adds r0, r1 strh r0, [r4, 0x34] ldrh r0, [r4, 0x36] adds r0, 0x1 strh r0, [r4, 0x36] lsls r0, 16 asrs r0, 16 movs r3, 0x2E ldrsh r1, [r4, r3] cmp r0, r1 bne _080D27C0 strh r2, [r4, 0x36] movs r0, 0x1 strh r0, [r4, 0x38] _080D27C0: ldr r0, _080D27D8 @ =gUnknown_03004B00 ldrh r1, [r0, 0xE] ldr r0, _080D27DC @ =0x0000ffff cmp r1, r0 bne _080D27D0 adds r0, r4, 0 bl move_anim_8072740 _080D27D0: pop {r4} pop {r0} bx r0 .align 2, 0 _080D27D8: .4byte gUnknown_03004B00 _080D27DC: .4byte 0x0000ffff thumb_func_end sub_80D2704 thumb_func_start sub_80D27E0 sub_80D27E0: @ 80D27E0 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080D2828 @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r4, _080D282C @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0xA bl Sin strh r0, [r5, 0x2E] movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0x7 bl Cos strh r0, [r5, 0x30] ldr r0, _080D2830 @ =sub_80D2834 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D2828: .4byte gUnknown_0202F7C8 _080D282C: .4byte gUnknown_03004B00 _080D2830: .4byte sub_80D2834 thumb_func_end sub_80D27E0 thumb_func_start sub_80D2834 sub_80D2834: @ 80D2834 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x2E] ldrh r1, [r2, 0x24] adds r0, r1 strh r0, [r2, 0x24] ldrh r0, [r2, 0x30] ldrh r3, [r2, 0x26] adds r0, r3 strh r0, [r2, 0x26] movs r1, 0x20 ldrsh r0, [r2, r1] movs r3, 0x24 ldrsh r1, [r2, r3] adds r0, r1 adds r0, 0x10 movs r1, 0x88 lsls r1, 1 cmp r0, r1 bhi _080D2872 movs r0, 0x22 ldrsh r1, [r2, r0] movs r3, 0x26 ldrsh r0, [r2, r3] adds r1, r0 cmp r1, 0xA0 bgt _080D2872 movs r0, 0x10 negs r0, r0 cmp r1, r0 bge _080D2878 _080D2872: adds r0, r2, 0 bl move_anim_8072740 _080D2878: pop {r0} bx r0 thumb_func_end sub_80D2834 thumb_func_start sub_80D287C sub_80D287C: @ 80D287C push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x2E] ldrh r1, [r2, 0x24] adds r0, r1 strh r0, [r2, 0x24] ldrh r0, [r2, 0x30] ldrh r3, [r2, 0x26] adds r0, r3 strh r0, [r2, 0x26] ldrh r0, [r2, 0x34] adds r1, r0, 0x1 strh r1, [r2, 0x34] lsls r0, 16 asrs r0, 16 movs r3, 0x32 ldrsh r1, [r2, r3] cmp r0, r1 blt _080D28A8 adds r0, r2, 0 bl move_anim_8072740 _080D28A8: pop {r0} bx r0 thumb_func_end sub_80D287C thumb_func_start sub_80D28AC sub_80D28AC: @ 80D28AC push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080D28F8 @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r4, _080D28FC @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0xA bl Sin strh r0, [r5, 0x2E] movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0x7 bl Cos strh r0, [r5, 0x30] ldrh r0, [r4, 0x2] strh r0, [r5, 0x32] ldr r0, _080D2900 @ =sub_80D287C str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D28F8: .4byte gUnknown_0202F7C8 _080D28FC: .4byte gUnknown_03004B00 _080D2900: .4byte sub_80D287C thumb_func_end sub_80D28AC thumb_func_start sub_80D2904 sub_80D2904: @ 80D2904 push {lr} adds r2, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080D291A adds r0, r2, 0 bl move_anim_8072740 _080D291A: pop {r0} bx r0 thumb_func_end sub_80D2904 thumb_func_start sub_80D2920 sub_80D2920: @ 80D2920 push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r0, _080D2934 @ =sub_80D2904 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080D2934: .4byte sub_80D2904 thumb_func_end sub_80D2920 thumb_func_start sub_80D2938 sub_80D2938: @ 80D2938 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _080D2956 ldr r0, _080D29C8 @ =gUnknown_03004B00 ldrh r1, [r0] ldrh r2, [r4, 0x20] adds r1, r2 strh r1, [r4, 0x20] ldrh r0, [r0, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] _080D2956: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] movs r2, 0x2E ldrsh r1, [r4, r2] lsls r0, r1, 2 adds r0, r1 lsls r5, r0, 1 movs r0, 0xFF ands r5, r0 adds r0, r5, 0 movs r1, 0x50 bl Sin lsls r0, 16 asrs r0, 24 strh r0, [r4, 0x24] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x4F bgt _080D299A adds r0, r5, 0 movs r1, 0x50 bl Cos movs r2, 0x2E ldrsh r1, [r4, r2] lsrs r2, r1, 31 adds r1, r2 asrs r1, 1 lsls r0, 16 asrs r0, 24 adds r1, r0 strh r1, [r4, 0x26] _080D299A: movs r0, 0x2E ldrsh r2, [r4, r0] cmp r2, 0x5A ble _080D29B8 ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] movs r0, 0x32 ldrsh r1, [r4, r0] lsrs r0, r1, 31 adds r1, r0 asrs r1, 1 ldrh r0, [r4, 0x24] subs r0, r1 strh r0, [r4, 0x24] _080D29B8: cmp r2, 0x64 ble _080D29C2 adds r0, r4, 0 bl move_anim_8072740 _080D29C2: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D29C8: .4byte gUnknown_03004B00 thumb_func_end sub_80D2938 thumb_func_start sub_80D29CC sub_80D29CC: @ 80D29CC push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] movs r1, 0x34 ldrsh r0, [r4, r1] movs r1, 0x5 bl Sin strh r0, [r4, 0x24] movs r1, 0x38 ldrsh r0, [r4, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x34] adds r0, 0x3 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x34] movs r1, 0x38 ldrsh r0, [r4, r1] cmp r0, 0x14 ble _080D2A22 adds r1, r0, 0 lsrs r0, r1, 31 adds r0, r1, r0 asrs r0, 1 lsls r0, 1 subs r1, r0 adds r3, r4, 0 adds r3, 0x3E movs r0, 0x1 ands r1, r0 lsls r1, 2 ldrb r2, [r3] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _080D2A22: movs r1, 0x38 ldrsh r0, [r4, r1] cmp r0, 0x1E ble _080D2A30 adds r0, r4, 0 bl move_anim_8072740 _080D2A30: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D29CC thumb_func_start sub_80D2A38 sub_80D2A38: @ 80D2A38 push {r4,r5,lr} adds r4, r0, 0 ldrh r2, [r4, 0x2E] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _080D2A5C ldr r1, _080D2A58 @ =gUnknown_03004B00 ldrh r0, [r1] strh r0, [r4, 0x30] ldrh r0, [r1, 0x2] strh r0, [r4, 0x32] adds r0, r2, 0x1 strh r0, [r4, 0x2E] b _080D2AB0 .align 2, 0 _080D2A58: .4byte gUnknown_03004B00 _080D2A5C: ldrh r0, [r4, 0x30] ldrh r2, [r4, 0x36] adds r0, r2 movs r5, 0 strh r0, [r4, 0x36] lsls r0, 16 asrs r0, 24 strh r0, [r4, 0x24] movs r1, 0x34 ldrsh r0, [r4, r1] movs r2, 0x32 ldrsh r1, [r4, r2] bl Sin adds r2, r0, 0 strh r2, [r4, 0x26] ldrh r0, [r4, 0x34] adds r0, 0x3 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x34] cmp r0, 0x46 ble _080D2AB0 ldr r0, _080D2AB8 @ =sub_80D29CC str r0, [r4, 0x1C] ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] ldrh r1, [r4, 0x22] adds r0, r2, r1 strh r0, [r4, 0x22] strh r5, [r4, 0x24] strh r5, [r4, 0x26] bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xB4 bl __umodsi3 strh r0, [r4, 0x34] _080D2AB0: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D2AB8: .4byte sub_80D29CC thumb_func_end sub_80D2A38 thumb_func_start sub_80D2ABC sub_80D2ABC: @ 80D2ABC push {r4,lr} adds r4, r0, 0 movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0 bne _080D2AF6 ldr r1, _080D2BB8 @ =gUnknown_03004B00 ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] ldrh r0, [r1, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] adds r0, r4, 0 movs r1, 0 bl StartSpriteAnim ldr r0, _080D2BBC @ =gUnknown_0202F7C9 ldrb r0, [r0] bl sub_8079E90 subs r0, 0x1 adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] movs r0, 0x1 strh r0, [r4, 0x32] _080D2AF6: ldrh r0, [r4, 0x32] ldrh r2, [r4, 0x2E] adds r0, r2 strh r0, [r4, 0x2E] movs r1, 0x2E ldrsh r0, [r4, r1] lsls r1, r0, 2 adds r0, r1, 0 cmp r1, 0 bge _080D2B0C adds r0, 0xFF _080D2B0C: asrs r0, 8 lsls r0, 8 subs r0, r1, r0 strh r0, [r4, 0x30] lsls r0, 16 cmp r0, 0 bge _080D2B1E movs r0, 0 strh r0, [r4, 0x30] _080D2B1E: movs r0, 0x30 ldrsh r2, [r4, r0] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bge _080D2B2C adds r0, 0x3 _080D2B2C: asrs r0, 2 movs r1, 0x1E subs r1, r0 adds r0, r2, 0 bl Cos strh r0, [r4, 0x24] movs r0, 0x30 ldrsh r2, [r4, r0] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bge _080D2B48 adds r0, 0x7 _080D2B48: asrs r0, 3 movs r1, 0xA subs r1, r0 adds r0, r2, 0 bl Sin strh r0, [r4, 0x26] movs r2, 0x30 ldrsh r0, [r4, r2] cmp r0, 0x80 ble _080D2B6C ldrh r1, [r4, 0x32] movs r2, 0x32 ldrsh r0, [r4, r2] cmp r0, 0 ble _080D2B6C ldr r0, _080D2BC0 @ =0x0000ffff strh r0, [r4, 0x32] _080D2B6C: movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0 bne _080D2B80 movs r2, 0x32 ldrsh r0, [r4, r2] cmp r0, 0 bge _080D2B80 movs r0, 0x1 strh r0, [r4, 0x32] _080D2B80: ldrh r0, [r4, 0x34] adds r1, r0, 0x1 strh r1, [r4, 0x34] subs r0, 0x9 lsls r0, 16 lsrs r0, 16 cmp r0, 0x46 bls _080D2BC4 movs r0, 0x2E ldrsh r1, [r4, r0] lsrs r0, r1, 31 adds r0, r1, r0 asrs r0, 1 lsls r0, 1 subs r1, r0 adds r3, r4, 0 adds r3, 0x3E movs r0, 0x1 ands r1, r0 lsls r1, 2 ldrb r2, [r3] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] b _080D2BD2 .align 2, 0 _080D2BB8: .4byte gUnknown_03004B00 _080D2BBC: .4byte gUnknown_0202F7C9 _080D2BC0: .4byte 0x0000ffff _080D2BC4: adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] _080D2BD2: movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0x5A ble _080D2BE0 adds r0, r4, 0 bl move_anim_8072740 _080D2BE0: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D2ABC thumb_func_start sub_80D2BE8 sub_80D2BE8: @ 80D2BE8 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _080D2C1C ldr r1, _080D2C18 @ =gUnknown_03004B00 ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] ldrh r0, [r1, 0x2] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] ldrb r1, [r1, 0x4] adds r0, r4, 0 bl StartSpriteAnim ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _080D2C30 .align 2, 0 _080D2C18: .4byte gUnknown_03004B00 _080D2C1C: adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080D2C30 adds r0, r4, 0 bl move_anim_8072740 _080D2C30: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D2BE8 thumb_func_start sub_80D2C38 sub_80D2C38: @ 80D2C38 push {r4,r5,lr} adds r5, r0, 0 ldr r1, _080D2C50 @ =gUnknown_03004B00 movs r2, 0x4 ldrsh r0, [r1, r2] cmp r0, 0 bne _080D2C54 adds r0, r5, 0 bl move_anim_8072740 b _080D2CB8 .align 2, 0 _080D2C50: .4byte gUnknown_03004B00 _080D2C54: movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 bne _080D2C64 ldr r4, _080D2C60 @ =gUnknown_0202F7C8 b _080D2C66 .align 2, 0 _080D2C60: .4byte gUnknown_0202F7C8 _080D2C64: ldr r4, _080D2C94 @ =gUnknown_0202F7C9 _080D2C66: ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r0, _080D2C98 @ =gUnknown_03004B00 movs r2, 0x2 ldrsh r1, [r0, r2] adds r2, r0, 0 cmp r1, 0 bne _080D2C9C ldrh r0, [r5, 0x20] adds r0, 0x20 b _080D2CA0 .align 2, 0 _080D2C94: .4byte gUnknown_0202F7C9 _080D2C98: .4byte gUnknown_03004B00 _080D2C9C: ldrh r0, [r5, 0x20] subs r0, 0x20 _080D2CA0: strh r0, [r5, 0x20] ldrh r0, [r2, 0x4] strh r0, [r5, 0x2E] ldrh r1, [r2, 0x2] strh r1, [r5, 0x30] lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl StartSpriteAnim ldr r0, _080D2CC0 @ =sub_80D2CC4 str r0, [r5, 0x1C] _080D2CB8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D2CC0: .4byte sub_80D2CC4 thumb_func_end sub_80D2C38 thumb_func_start sub_80D2CC4 sub_80D2CC4: @ 80D2CC4 push {lr} adds r2, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080D2CF4 ldrh r0, [r2, 0x2E] subs r0, 0x1 strh r0, [r2, 0x2E] lsls r0, 16 cmp r0, 0 beq _080D2CEE ldrh r1, [r2, 0x30] lsls r1, 24 lsrs r1, 24 adds r0, r2, 0 bl StartSpriteAnim b _080D2CF4 _080D2CEE: adds r0, r2, 0 bl move_anim_8072740 _080D2CF4: pop {r0} bx r0 thumb_func_end sub_80D2CC4 thumb_func_start sub_80D2CF8 sub_80D2CF8: @ 80D2CF8 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, _080D2D2C @ =gUnknown_03004B00 ldrb r0, [r0] bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 ldr r0, _080D2D30 @ =gTasks adds r4, r0 ldr r2, _080D2D34 @ =gUnknown_083D7CA8 adds r0, r4, 0 bl sub_80798F4 ldr r0, _080D2D38 @ =sub_80D2D3C str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D2D2C: .4byte gUnknown_03004B00 _080D2D30: .4byte gTasks _080D2D34: .4byte gUnknown_083D7CA8 _080D2D38: .4byte sub_80D2D3C thumb_func_end sub_80D2CF8 thumb_func_start sub_80D2D3C sub_80D2D3C: @ 80D2D3C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080D2D64 @ =gTasks adds r0, r1 bl sub_807992C lsls r0, 24 cmp r0, 0 bne _080D2D5C adds r0, r4, 0 bl move_anim_task_del _080D2D5C: pop {r4} pop {r0} bx r0 .align 2, 0 _080D2D64: .4byte gTasks thumb_func_end sub_80D2D3C thumb_func_start sub_80D2D68 sub_80D2D68: @ 80D2D68 push {r4-r7,lr} adds r5, r0, 0 ldr r0, _080D2D7C @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D2D84 ldr r0, _080D2D80 @ =gUnknown_0202F7C8 b _080D2D86 .align 2, 0 _080D2D7C: .4byte gUnknown_03004B00 _080D2D80: .4byte gUnknown_0202F7C8 _080D2D84: ldr r0, _080D2E1C @ =gUnknown_0202F7C9 _080D2D86: ldrb r6, [r0] adds r0, r6, 0 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080D2DA0 ldr r1, _080D2E20 @ =gUnknown_03004B00 movs r2, 0x2 ldrsh r0, [r1, r2] negs r0, r0 strh r0, [r1, 0x2] _080D2DA0: adds r0, r6, 0 movs r1, 0x2 bl sub_8077ABC lsls r0, 24 ldr r7, _080D2E20 @ =gUnknown_03004B00 lsrs r0, 24 ldrh r3, [r7, 0x2] adds r0, r3 movs r4, 0 strh r0, [r5, 0x20] adds r0, r6, 0 movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r7, 0x4] adds r0, r1 strh r0, [r5, 0x22] strh r4, [r5, 0x2E] ldrh r1, [r5, 0x20] lsls r1, 3 strh r1, [r5, 0x30] lsls r0, 3 strh r0, [r5, 0x32] movs r2, 0x2 ldrsh r0, [r7, r2] lsls r0, 3 cmp r0, 0 bge _080D2DE0 adds r0, 0x7 _080D2DE0: asrs r0, 3 strh r0, [r5, 0x34] movs r3, 0x4 ldrsh r0, [r7, r3] lsls r0, 3 cmp r0, 0 bge _080D2DF0 adds r0, 0x7 _080D2DF0: asrs r0, 3 strh r0, [r5, 0x36] ldrh r2, [r5, 0x4] lsls r1, r2, 22 lsrs r1, 22 movs r3, 0x6 ldrsh r0, [r7, r3] lsls r0, 4 adds r1, r0 ldr r3, _080D2E24 @ =0x000003ff adds r0, r3, 0 ands r1, r0 ldr r0, _080D2E28 @ =0xfffffc00 ands r0, r2 orrs r0, r1 strh r0, [r5, 0x4] ldr r0, _080D2E2C @ =sub_80D2E30 str r0, [r5, 0x1C] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D2E1C: .4byte gUnknown_0202F7C9 _080D2E20: .4byte gUnknown_03004B00 _080D2E24: .4byte 0x000003ff _080D2E28: .4byte 0xfffffc00 _080D2E2C: .4byte sub_80D2E30 thumb_func_end sub_80D2D68 thumb_func_start sub_80D2E30 sub_80D2E30: @ 80D2E30 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x34] ldrh r1, [r2, 0x30] adds r0, r1 strh r0, [r2, 0x30] ldrh r1, [r2, 0x36] ldrh r3, [r2, 0x32] adds r1, r3 strh r1, [r2, 0x32] lsls r0, 16 asrs r0, 19 strh r0, [r2, 0x20] lsls r1, 16 asrs r1, 19 strh r1, [r2, 0x22] ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 ble _080D2E64 adds r0, r2, 0 bl move_anim_8072740 _080D2E64: pop {r0} bx r0 thumb_func_end sub_80D2E30 thumb_func_start sub_80D2E68 sub_80D2E68: @ 80D2E68 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _080D2E8A ldr r0, _080D2EC4 @ =gUnknown_03004B00 ldrh r1, [r0] movs r0, 0x78 subs r0, r1 strh r0, [r4, 0x30] adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _080D2E8A: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 movs r2, 0x30 ldrsh r1, [r4, r2] cmp r0, r1 bne _080D2EA8 ldrb r0, [r4, 0x5] lsrs r0, 4 adds r0, 0x10 movs r1, 0 bl sub_8079108 _080D2EA8: movs r0, 0x2E ldrsh r1, [r4, r0] movs r2, 0x30 ldrsh r0, [r4, r2] adds r0, 0x50 cmp r1, r0 bne _080D2EBC adds r0, r4, 0 bl move_anim_8072740 _080D2EBC: pop {r4} pop {r0} bx r0 .align 2, 0 _080D2EC4: .4byte gUnknown_03004B00 thumb_func_end sub_80D2E68 thumb_func_start sub_80D2EC8 sub_80D2EC8: @ 80D2EC8 push {r4-r6,lr} adds r6, r0, 0 movs r1, 0x2E ldrsh r0, [r6, r1] cmp r0, 0 bne _080D2EF6 movs r5, 0x78 strh r5, [r6, 0x20] ldr r4, _080D2F78 @ =gUnknown_03004B00 movs r2, 0 ldrsh r0, [r4, r2] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 subs r0, 0xF strh r0, [r6, 0x22] ldrb r1, [r4, 0x2] adds r0, r6, 0 bl StartSpriteAnim strh r5, [r6, 0x38] ldrh r0, [r4, 0x4] strh r0, [r6, 0x34] _080D2EF6: ldrh r0, [r6, 0x2E] adds r0, 0x1 movs r5, 0 strh r0, [r6, 0x2E] movs r1, 0x2E ldrsh r0, [r6, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 strh r0, [r6, 0x30] movs r2, 0x2E ldrsh r0, [r6, r2] lsls r4, r0, 1 adds r4, r0 ldrh r0, [r6, 0x34] adds r4, r0 movs r2, 0xFF ldrh r0, [r6, 0x3A] adds r0, 0xA movs r1, 0xFF ands r0, r1 strh r0, [r6, 0x3A] ands r4, r2 adds r0, r4, 0 movs r1, 0x64 bl Cos strh r0, [r6, 0x24] adds r0, r4, 0 movs r1, 0xA bl Sin adds r4, r0, 0 movs r1, 0x3A ldrsh r0, [r6, r1] movs r1, 0x4 bl Cos ldrh r2, [r6, 0x30] adds r4, r2 adds r0, r4 strh r0, [r6, 0x26] movs r0, 0x2E ldrsh r1, [r6, r0] movs r2, 0x38 ldrsh r0, [r6, r2] cmp r1, r0 ble _080D2F72 ldr r0, _080D2F7C @ =sub_80D2F80 str r0, [r6, 0x1C] strh r5, [r6, 0x2E] adds r0, r6, 0 bl oamt_add_pos2_onto_pos1 movs r0, 0x5 strh r0, [r6, 0x32] strh r5, [r6, 0x36] strh r5, [r6, 0x34] adds r0, r6, 0 movs r1, 0x1 bl StartSpriteAffineAnim _080D2F72: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D2F78: .4byte gUnknown_03004B00 _080D2F7C: .4byte sub_80D2F80 thumb_func_end sub_80D2EC8 thumb_func_start sub_80D2F80 sub_80D2F80: @ 80D2F80 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x2E] adds r0, 0x1 strh r0, [r1, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0xA ble _080D2F9A movs r0, 0 strh r0, [r1, 0x2E] ldr r0, _080D2FA0 @ =sub_80D2FA4 str r0, [r1, 0x1C] _080D2F9A: pop {r0} bx r0 .align 2, 0 _080D2FA0: .4byte sub_80D2FA4 thumb_func_end sub_80D2F80 thumb_func_start sub_80D2FA4 sub_80D2FA4: @ 80D2FA4 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x32] ldrh r2, [r4, 0x34] adds r0, r1, r2 strh r0, [r4, 0x34] strh r0, [r4, 0x26] adds r1, 0x1 strh r1, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x30 ble _080D2FCE lsls r0, r1, 16 cmp r0, 0 ble _080D2FCE ldrh r0, [r4, 0x36] subs r1, r0, 0x5 strh r1, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x36] _080D2FCE: movs r1, 0x36 ldrsh r0, [r4, r1] cmp r0, 0x3 ble _080D3000 movs r2, 0x32 ldrsh r1, [r4, r2] lsrs r0, r1, 31 adds r0, r1, r0 asrs r0, 1 lsls r0, 1 subs r1, r0 adds r3, r4, 0 adds r3, 0x3E movs r0, 0x1 ands r1, r0 lsls r1, 2 ldrb r2, [r3] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] adds r0, r4, 0 bl move_anim_8072740 _080D3000: movs r1, 0x36 ldrsh r0, [r4, r1] cmp r0, 0x4 bne _080D300E adds r0, r4, 0 bl move_anim_8072740 _080D300E: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D2FA4 thumb_func_start sub_80D3014 sub_80D3014: @ 80D3014 push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080D3058 @ =gUnknown_020239F8 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080D3060 ldr r4, _080D305C @ =gUnknown_0202F7C8 ldrb r1, [r4] movs r0, 0x2 eors r0, r1 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080D3060 ldrb r0, [r4] adds r2, r5, 0 adds r2, 0x20 adds r3, r5, 0 adds r3, 0x22 movs r1, 0 bl sub_807A3FC ldrh r0, [r5, 0x22] adds r0, 0x28 strh r0, [r5, 0x22] adds r0, r5, 0 movs r1, 0x1 bl StartSpriteAffineAnim b _080D3080 .align 2, 0 _080D3058: .4byte gUnknown_020239F8 _080D305C: .4byte gUnknown_0202F7C8 _080D3060: ldr r4, _080D30A0 @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, 0x28 strh r0, [r5, 0x22] _080D3080: movs r0, 0xD strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x32] ldrh r0, [r5, 0x22] subs r0, 0x48 strh r0, [r5, 0x36] ldr r0, _080D30A4 @ =sub_8078B34 str r0, [r5, 0x1C] ldr r1, _080D30A8 @ =move_anim_8072740 adds r0, r5, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D30A0: .4byte gUnknown_0202F7C8 _080D30A4: .4byte sub_8078B34 _080D30A8: .4byte move_anim_8072740 thumb_func_end sub_80D3014 thumb_func_start sub_80D30AC sub_80D30AC: @ 80D30AC push {lr} lsls r0, 24 lsrs r0, 24 ldr r3, _080D30C8 @ =gUnknown_03004B00 ldr r1, _080D30CC @ =gUnknown_0202F7B4 ldr r1, [r1] ldrb r2, [r1, 0x10] movs r1, 0x1 ands r1, r2 strh r1, [r3, 0xE] bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _080D30C8: .4byte gUnknown_03004B00 _080D30CC: .4byte gUnknown_0202F7B4 thumb_func_end sub_80D30AC thumb_func_start update_fury_cutter_counter_copy update_fury_cutter_counter_copy: @ 80D30D0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080D30E8 @ =gUnknown_03004B00 ldr r1, _080D30EC @ =gUnknown_0202F7B4 ldr r1, [r1] ldrb r1, [r1, 0x10] strh r1, [r2, 0xE] bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _080D30E8: .4byte gUnknown_03004B00 _080D30EC: .4byte gUnknown_0202F7B4 thumb_func_end update_fury_cutter_counter_copy thumb_func_start sub_80D30F0 sub_80D30F0: @ 80D30F0 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 ldr r1, _080D3178 @ =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r5, r0, r1 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0 bne _080D3118 ldr r1, _080D317C @ =gUnknown_03004B00 ldrh r0, [r1] strh r0, [r5, 0xA] ldrh r0, [r1, 0x2] strh r0, [r5, 0xC] ldrh r0, [r1, 0x4] strh r0, [r5, 0xE] _080D3118: ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] movs r2, 0x8 ldrsh r0, [r5, r2] movs r2, 0xC ldrsh r1, [r5, r2] bl __modsi3 cmp r0, 0x1 bne _080D3160 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xF0 bl __umodsi3 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x50 bl __umodsi3 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 ldr r0, _080D3180 @ =gSpriteTemplate_83D9130 adds r1, r4, 0 movs r3, 0x4 bl CreateSprite _080D3160: movs r0, 0x8 ldrsh r1, [r5, r0] movs r2, 0xE ldrsh r0, [r5, r2] cmp r1, r0 bne _080D3172 adds r0, r6, 0 bl move_anim_task_del _080D3172: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D3178: .4byte gTasks _080D317C: .4byte gUnknown_03004B00 _080D3180: .4byte gSpriteTemplate_83D9130 thumb_func_end sub_80D30F0 thumb_func_start sub_80D3184 sub_80D3184: @ 80D3184 ldr r1, _080D318C @ =sub_80D3190 str r1, [r0, 0x1C] bx lr .align 2, 0 _080D318C: .4byte sub_80D3190 thumb_func_end sub_80D3184 thumb_func_start sub_80D3190 sub_80D3190: @ 80D3190 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0xD bgt _080D31AE ldrh r0, [r2, 0x24] adds r0, 0x1 strh r0, [r2, 0x24] ldrh r0, [r2, 0x26] adds r0, 0x4 strh r0, [r2, 0x26] _080D31AE: adds r0, r2, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080D31C2 adds r0, r2, 0 bl DestroySprite _080D31C2: pop {r0} bx r0 thumb_func_end sub_80D3190 thumb_func_start sub_80D31C8 sub_80D31C8: @ 80D31C8 push {r4-r6,lr} adds r6, r0, 0 ldr r5, _080D31F0 @ =gUnknown_0202F7C8 ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D31F8 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldr r4, _080D31F4 @ =gUnknown_03004B00 ldrh r1, [r4] subs r0, r1 b _080D320A .align 2, 0 _080D31F0: .4byte gUnknown_0202F7C8 _080D31F4: .4byte gUnknown_03004B00 _080D31F8: ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 ldr r4, _080D32D0 @ =gUnknown_03004B00 lsrs r0, 24 ldrh r1, [r4] adds r0, r1 _080D320A: strh r0, [r6, 0x20] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x2] adds r0, r4 strh r0, [r6, 0x22] adds r2, r6, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x40 orrs r0, r1 strb r0, [r2] ldr r0, _080D32D4 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D3240 ldr r1, _080D32D0 @ =gUnknown_03004B00 ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080D3240: ldr r5, _080D32D0 @ =gUnknown_03004B00 ldrh r0, [r5, 0xC] strh r0, [r6, 0x2E] ldrh r0, [r6, 0x20] strh r0, [r6, 0x30] ldr r4, _080D32D8 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x32] ldrh r0, [r6, 0x22] strh r0, [r6, 0x34] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x36] adds r0, r6, 0 bl obj_translate_based_on_private_1_2_3_4 ldr r0, _080D32DC @ =SpriteCallbackDummy bl object_new_hidden_with_callback adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 strh r4, [r6, 0x38] ldrb r0, [r5, 0x8] movs r2, 0x4 ldrsh r1, [r5, r2] bl Sin ldrh r1, [r6, 0x20] subs r1, r0 strh r1, [r6, 0x20] ldrb r0, [r5, 0x8] movs r2, 0x6 ldrsh r1, [r5, r2] bl Cos ldrh r1, [r6, 0x22] subs r1, r0 strh r1, [r6, 0x22] ldr r0, _080D32E0 @ =gSprites lsls r1, r4, 4 adds r1, r4 lsls r1, 2 adds r1, r0 ldrh r0, [r5, 0x4] strh r0, [r1, 0x2E] ldrh r0, [r5, 0x6] strh r0, [r1, 0x30] ldrh r0, [r5, 0xA] strh r0, [r1, 0x32] ldrb r0, [r5, 0x8] lsls r0, 8 strh r0, [r1, 0x34] ldrh r0, [r5, 0xC] strh r0, [r1, 0x36] ldr r1, _080D32E4 @ =sub_80D32E8 str r1, [r6, 0x1C] adds r0, r6, 0 bl _call_via_r1 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D32D0: .4byte gUnknown_03004B00 _080D32D4: .4byte gUnknown_0202F7C8 _080D32D8: .4byte gUnknown_0202F7C9 _080D32DC: .4byte SpriteCallbackDummy _080D32E0: .4byte gSprites _080D32E4: .4byte sub_80D32E8 thumb_func_end sub_80D31C8 thumb_func_start sub_80D32E8 sub_80D32E8: @ 80D32E8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r5, r0, 0 ldrh r1, [r5, 0x38] lsls r1, 24 lsrs r1, 24 ldr r2, _080D3350 @ =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r7, r0, r2 ldrh r4, [r7, 0x36] lsls r4, 24 lsrs r4, 24 ldrh r0, [r7, 0x34] mov r8, r0 movs r0, 0x1 strh r0, [r5, 0x2E] adds r0, r5, 0 bl sub_8078B5C mov r1, r8 lsrs r6, r1, 8 movs r0, 0x2E ldrsh r1, [r7, r0] adds r0, r6, 0 bl Sin ldrh r1, [r5, 0x24] adds r0, r1 strh r0, [r5, 0x24] movs r0, 0x30 ldrsh r1, [r7, r0] adds r0, r6, 0 bl Cos ldrh r1, [r5, 0x26] adds r0, r1 strh r0, [r5, 0x26] ldrh r0, [r7, 0x32] mov r1, r8 adds r1, r0 strh r1, [r7, 0x34] subs r4, 0x1 lsls r4, 24 lsrs r4, 24 cmp r4, 0 beq _080D3354 strh r4, [r7, 0x36] b _080D335E .align 2, 0 _080D3350: .4byte gSprites _080D3354: ldr r0, _080D336C @ =sub_80D3370 str r0, [r5, 0x1C] adds r0, r7, 0 bl DestroySprite _080D335E: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D336C: .4byte sub_80D3370 thumb_func_end sub_80D32E8 thumb_func_start sub_80D3370 sub_80D3370: @ 80D3370 push {lr} adds r3, r0, 0 adds r3, 0x2C ldrb r2, [r3] movs r1, 0x41 negs r1, r1 ands r1, r2 strb r1, [r3] ldr r1, _080D3390 @ =sub_8078600 str r1, [r0, 0x1C] ldr r1, _080D3394 @ =sub_80D3398 bl oamt_set_x3A_32 pop {r0} bx r0 .align 2, 0 _080D3390: .4byte sub_8078600 _080D3394: .4byte sub_80D3398 thumb_func_end sub_80D3370 thumb_func_start sub_80D3398 sub_80D3398: @ 80D3398 push {lr} movs r1, 0xA strh r1, [r0, 0x2E] ldr r1, _080D33AC @ =sub_80782D8 str r1, [r0, 0x1C] ldr r1, _080D33B0 @ =move_anim_8074EE0 bl oamt_set_x3A_32 pop {r0} bx r0 .align 2, 0 _080D33AC: .4byte sub_80782D8 _080D33B0: .4byte move_anim_8074EE0 thumb_func_end sub_80D3398 thumb_func_start sub_80D33B4 sub_80D33B4: @ 80D33B4 push {r4-r7,lr} adds r5, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r0, _080D33DC @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D33E4 ldr r1, _080D33E0 @ =gUnknown_03004B00 ldrh r0, [r1, 0x4] negs r0, r0 lsls r0, 16 lsrs r6, r0, 16 adds r7, r1, 0 b _080D33EA .align 2, 0 _080D33DC: .4byte gUnknown_0202F7C8 _080D33E0: .4byte gUnknown_03004B00 _080D33E4: ldr r0, _080D3440 @ =gUnknown_03004B00 ldrh r6, [r0, 0x4] adds r7, r0, 0 _080D33EA: ldrh r0, [r7, 0x8] strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] ldr r4, _080D3444 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, r6 strh r0, [r5, 0x32] ldrh r0, [r5, 0x22] strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r7, [r7, 0x6] adds r0, r7 strh r0, [r5, 0x36] adds r0, r5, 0 bl obj_translate_based_on_private_1_2_3_4 ldr r0, _080D3448 @ =sub_80D344C str r0, [r5, 0x1C] adds r2, r5, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] ldr r1, [r5, 0x1C] adds r0, r5, 0 bl _call_via_r1 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D3440: .4byte gUnknown_03004B00 _080D3444: .4byte gUnknown_0202F7C9 _080D3448: .4byte sub_80D344C thumb_func_end sub_80D33B4 thumb_func_start sub_80D344C sub_80D344C: @ 80D344C push {r4,lr} adds r4, r0, 0 ldr r0, _080D3488 @ =gUnknown_03004B00 ldrh r1, [r0, 0xE] ldr r0, _080D348C @ =0x0000ffff cmp r1, r0 bne _080D346E adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAnim adds r2, r4, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] _080D346E: adds r0, r4, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 beq _080D3480 adds r0, r4, 0 bl move_anim_8072740 _080D3480: pop {r4} pop {r0} bx r0 .align 2, 0 _080D3488: .4byte gUnknown_03004B00 _080D348C: .4byte 0x0000ffff thumb_func_end sub_80D344C thumb_func_start sub_80D3490 sub_80D3490: @ 80D3490 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080D34C4 @ =gTasks lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldr r0, _080D34C8 @ =gUnknown_03004B00 ldrh r0, [r0] strh r0, [r4, 0x8] ldr r0, _080D34CC @ =0x0000279c bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 movs r1, 0x80 lsls r1, 1 adds r0, r1 strh r0, [r4, 0xC] ldr r0, _080D34D0 @ =sub_80D34D4 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080D34C4: .4byte gTasks _080D34C8: .4byte gUnknown_03004B00 _080D34CC: .4byte 0x0000279c _080D34D0: .4byte sub_80D34D4 thumb_func_end sub_80D3490 thumb_func_start sub_80D34D4 sub_80D34D4: @ 80D34D4 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080D354C @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r1 ldrh r0, [r2, 0x1C] adds r0, 0x1 strh r0, [r2, 0x1C] lsls r0, 16 asrs r0, 16 mov r12, r1 cmp r0, 0x3 bne _080D3526 movs r0, 0 strh r0, [r2, 0x1C] ldrh r0, [r2, 0xC] adds r0, 0x1 lsls r0, 16 lsrs r5, r0, 16 ldr r1, _080D3550 @ =gPlttBufferFaded lsls r0, r5, 1 adds r0, r1 ldrh r6, [r0] adds r7, r1, 0 adds r3, r0, 0x2 movs r1, 0x6 adds r2, r0, 0 _080D3510: ldrh r0, [r3] strh r0, [r2] adds r3, 0x2 adds r2, 0x2 subs r1, 0x1 cmp r1, 0 bge _080D3510 adds r0, r5, 0x7 lsls r0, 1 adds r0, r7 strh r6, [r0] _080D3526: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 add r0, r12 ldrh r1, [r0, 0x1E] adds r1, 0x1 strh r1, [r0, 0x1E] lsls r1, 16 asrs r1, 16 movs r2, 0x8 ldrsh r0, [r0, r2] cmp r1, r0 bne _080D3546 adds r0, r4, 0 bl move_anim_task_del _080D3546: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D354C: .4byte gTasks _080D3550: .4byte gPlttBufferFaded thumb_func_end sub_80D34D4 thumb_func_start sub_80D3554 sub_80D3554: @ 80D3554 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x1 bl sub_80787B0 movs r0, 0x1E strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] ldr r4, _080D35BC @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrh r0, [r5, 0x22] strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] adds r0, r5, 0 bl obj_translate_based_on_private_1_2_3_4 movs r0, 0x2E ldrsh r1, [r5, r0] movs r0, 0xD2 lsls r0, 8 bl __divsi3 strh r0, [r5, 0x38] ldr r0, _080D35C0 @ =gUnknown_03004B00 ldrh r2, [r0, 0x6] strh r2, [r5, 0x3C] ldrh r1, [r0, 0xE] movs r3, 0xE ldrsh r0, [r0, r3] cmp r0, 0x7F ble _080D35C4 adds r0, r1, 0 subs r0, 0x7F lsls r0, 8 strh r0, [r5, 0x3A] negs r0, r2 strh r0, [r5, 0x3C] b _080D35C8 .align 2, 0 _080D35BC: .4byte gUnknown_0202F7C9 _080D35C0: .4byte gUnknown_03004B00 _080D35C4: lsls r0, r1, 8 strh r0, [r5, 0x3A] _080D35C8: ldr r1, _080D35D8 @ =sub_80D35DC str r1, [r5, 0x1C] adds r0, r5, 0 bl _call_via_r1 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D35D8: .4byte sub_80D35DC thumb_func_end sub_80D3554 thumb_func_start sub_80D35DC sub_80D35DC: @ 80D35DC push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 beq _080D35F0 adds r0, r4, 0 bl move_anim_8072740 _080D35F0: ldrh r0, [r4, 0x3A] lsls r0, 16 asrs r0, 24 movs r2, 0x3C ldrsh r1, [r4, r2] bl Sin ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] movs r2, 0x3A ldrsh r0, [r4, r2] movs r2, 0x38 ldrsh r1, [r4, r2] adds r0, r1 asrs r0, 8 cmp r0, 0x7F ble _080D3620 movs r0, 0 strh r0, [r4, 0x3A] ldrh r0, [r4, 0x3C] negs r0, r0 strh r0, [r4, 0x3C] b _080D3628 _080D3620: ldrh r0, [r4, 0x38] ldrh r1, [r4, 0x3A] adds r0, r1 strh r0, [r4, 0x3A] _080D3628: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D35DC thumb_func_start sub_80D3630 sub_80D3630: @ 80D3630 lsls r0, 24 lsrs r0, 24 ldr r2, _080D3650 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r3, _080D3654 @ =gUnknown_03004B00 ldrh r0, [r3] movs r2, 0 strh r0, [r1, 0x8] strh r2, [r3, 0xE] ldr r0, _080D3658 @ =sub_80D365C str r0, [r1] bx lr .align 2, 0 _080D3650: .4byte gTasks _080D3654: .4byte gUnknown_03004B00 _080D3658: .4byte sub_80D365C thumb_func_end sub_80D3630 thumb_func_start sub_80D365C sub_80D365C: @ 80D365C push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r2, _080D3690 @ =gUnknown_03004B00 ldrh r0, [r2, 0xE] adds r0, 0x3 movs r1, 0xFF ands r0, r1 strh r0, [r2, 0xE] ldr r1, _080D3694 @ =gTasks lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x8] subs r1, 0x1 strh r1, [r0, 0x8] lsls r1, 16 cmp r1, 0 bne _080D368A adds r0, r3, 0 bl move_anim_task_del _080D368A: pop {r0} bx r0 .align 2, 0 _080D3690: .4byte gUnknown_03004B00 _080D3694: .4byte gTasks thumb_func_end sub_80D365C thumb_func_start sub_80D3698 sub_80D3698: @ 80D3698 push {r4-r7,lr} adds r4, r0, 0 ldr r7, _080D36E4 @ =gUnknown_0202F7C8 ldrb r0, [r7] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r7] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] ldr r6, _080D36E8 @ =0x0000fff6 strh r6, [r4, 0x26] ldrb r0, [r7] bl sub_8079E90 lsls r0, 24 lsrs r5, r0, 24 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080D36F2 ldrb r0, [r7] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D36EC movs r0, 0xA strh r0, [r4, 0x24] b _080D36F4 .align 2, 0 _080D36E4: .4byte gUnknown_0202F7C8 _080D36E8: .4byte 0x0000fff6 _080D36EC: strh r6, [r4, 0x24] subs r0, r5, 0x2 b _080D36F6 _080D36F2: strh r6, [r4, 0x24] _080D36F4: adds r0, r5, 0x2 _080D36F6: adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] ldr r0, _080D3708 @ =sub_80D370C str r0, [r4, 0x1C] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D3708: .4byte sub_80D370C thumb_func_end sub_80D3698 thumb_func_start sub_80D370C sub_80D370C: @ 80D370C push {lr} adds r2, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080D3722 adds r0, r2, 0 bl move_anim_8072740 _080D3722: pop {r0} bx r0 thumb_func_end sub_80D370C thumb_func_start sub_80D3728 sub_80D3728: @ 80D3728 push {r4-r7,lr} adds r6, r0, 0 ldr r5, _080D37E8 @ =gUnknown_0202F7C8 ldrb r0, [r5] bl battle_side_get_owner adds r4, r0, 0 ldr r0, _080D37EC @ =gUnknown_0202F7C9 ldrb r0, [r0] bl battle_side_get_owner lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _080D3772 ldr r4, _080D37F0 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r4, r1] negs r0, r0 strh r0, [r4] ldrb r0, [r5] bl battle_get_per_side_status lsls r0, 24 cmp r0, 0 beq _080D376A ldrb r0, [r5] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080D3772 _080D376A: movs r1, 0 ldrsh r0, [r4, r1] negs r0, r0 strh r0, [r4] _080D3772: ldr r5, _080D37F0 @ =gUnknown_03004B00 movs r1, 0xA ldrsh r0, [r5, r1] movs r1, 0xFF lsls r1, 8 ands r0, r1 movs r1, 0 cmp r0, 0 bne _080D3786 movs r1, 0x1 _080D3786: ldrb r0, [r5, 0xA] movs r7, 0x1 cmp r0, 0 bne _080D3790 movs r7, 0x3 _080D3790: adds r0, r6, 0 bl sub_80787B0 ldr r0, _080D37E8 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D37AA ldrh r0, [r5, 0x4] negs r0, r0 strh r0, [r5, 0x4] _080D37AA: ldrh r0, [r5, 0x8] strh r0, [r6, 0x2E] ldr r4, _080D37EC @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x4] adds r0, r1 strh r0, [r6, 0x32] ldrb r0, [r4] adds r1, r7, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x6] adds r0, r5 strh r0, [r6, 0x36] ldr r0, _080D37F4 @ =sub_8078B34 str r0, [r6, 0x1C] ldr r1, _080D37F8 @ =move_anim_8072740 adds r0, r6, 0 bl oamt_set_x3A_32 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D37E8: .4byte gUnknown_0202F7C8 _080D37EC: .4byte gUnknown_0202F7C9 _080D37F0: .4byte gUnknown_03004B00 _080D37F4: .4byte sub_8078B34 _080D37F8: .4byte move_anim_8072740 thumb_func_end sub_80D3728 thumb_func_start sub_80D37FC sub_80D37FC: @ 80D37FC push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_8078764 ldr r0, _080D382C @ =gUnknown_03004B00 ldrh r1, [r0, 0x8] strh r1, [r4, 0x2E] ldrh r0, [r0, 0x4] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x32] ldrh r0, [r4, 0x22] adds r1, r0 strh r1, [r4, 0x36] ldr r0, _080D3830 @ =sub_8078B34 str r0, [r4, 0x1C] ldr r1, _080D3834 @ =move_anim_8072740 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4} pop {r0} bx r0 .align 2, 0 _080D382C: .4byte gUnknown_03004B00 _080D3830: .4byte sub_8078B34 _080D3834: .4byte move_anim_8072740 thumb_func_end sub_80D37FC thumb_func_start sub_80D3838 sub_80D3838: @ 80D3838 push {r4,lr} adds r4, r0, 0 ldr r0, _080D3850 @ =gUnknown_03004B00 movs r1, 0x6 ldrsh r0, [r0, r1] cmp r0, 0 beq _080D3854 adds r0, r4, 0 movs r1, 0x1 bl sub_8078764 b _080D385C .align 2, 0 _080D3850: .4byte gUnknown_03004B00 _080D3854: adds r0, r4, 0 movs r1, 0x1 bl sub_80787B0 _080D385C: ldr r0, _080D386C @ =gUnknown_03004B00 ldrh r0, [r0, 0x4] strh r0, [r4, 0x3C] ldr r0, _080D3870 @ =sub_80D3874 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080D386C: .4byte gUnknown_03004B00 _080D3870: .4byte sub_80D3874 thumb_func_end sub_80D3838 thumb_func_start sub_80D3874 sub_80D3874: @ 80D3874 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0xB movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x2E] movs r1, 0x2E ldrsh r0, [r4, r1] movs r1, 0x4 bl Sin strh r0, [r4, 0x24] ldrh r0, [r4, 0x30] adds r0, 0x30 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 24 negs r0, r0 strh r0, [r4, 0x26] ldrh r0, [r4, 0x3C] subs r0, 0x1 strh r0, [r4, 0x3C] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080D38B4 adds r0, r4, 0 bl move_anim_8072740 _080D38B4: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D3874 thumb_func_start sub_80D38BC sub_80D38BC: @ 80D38BC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r1, _080D398C @ =REG_BLDCNT ldr r2, _080D3990 @ =0x00003f42 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r3, 0x80 lsls r3, 5 adds r0, r3, 0 strh r0, [r1] ldr r2, _080D3994 @ =REG_BG1CNT ldrb r1, [r2] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldrb r1, [r2, 0x1] movs r0, 0x3F ands r0, r1 movs r1, 0x40 orrs r0, r1 strb r0, [r2, 0x1] mov r0, sp bl sub_8078914 ldr r2, [sp] movs r3, 0x80 lsls r3, 6 add r6, sp, 0x10 add r0, sp, 0xC mov r12, r0 movs r5, 0 ldr r1, _080D3998 @ =0x040000d4 movs r4, 0x80 lsls r4, 5 mov r8, r6 ldr r7, _080D399C @ =0x85000400 movs r0, 0x85 lsls r0, 24 mov r9, r0 _080D3920: str r5, [sp, 0x10] mov r0, r8 str r0, [r1] str r2, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r4 subs r3, r4 cmp r3, r4 bhi _080D3920 str r5, [sp, 0x10] str r6, [r1] str r2, [r1, 0x4] lsrs r0, r3, 2 mov r2, r9 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0 mov r3, r12 strb r0, [r3] strb r0, [r3] ldr r1, [sp, 0x4] movs r0, 0 str r0, [sp, 0x10] ldr r0, _080D3998 @ =0x040000d4 str r6, [r0] str r1, [r0, 0x4] ldr r1, _080D399C @ =0x85000400 str r1, [r0, 0x8] ldr r0, [r0, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080D39B8 ldr r2, _080D3994 @ =REG_BG1CNT ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _080D39A0 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080D39A8 ldr r0, _080D39A4 @ =gUnknown_08E70968 b _080D39AA .align 2, 0 _080D398C: .4byte REG_BLDCNT _080D3990: .4byte 0x00003f42 _080D3994: .4byte REG_BG1CNT _080D3998: .4byte 0x040000d4 _080D399C: .4byte 0x85000400 _080D39A0: .4byte gUnknown_0202F7C8 _080D39A4: .4byte gUnknown_08E70968 _080D39A8: ldr r0, _080D39B4 @ =gUnknown_08E70C38 _080D39AA: ldr r1, [sp, 0x4] bl LZDecompressVram b _080D39CE .align 2, 0 _080D39B4: .4byte gUnknown_08E70C38 _080D39B8: ldr r0, _080D39F0 @ =gUnknown_08E70F0C ldr r1, [sp, 0x4] bl LZDecompressVram mov r0, sp ldrb r0, [r0, 0x8] ldr r1, [sp, 0x4] movs r2, 0 movs r3, 0x1 bl sub_80763FC _080D39CE: ldr r0, _080D39F4 @ =gBattleAnimBackgroundImage_Surf ldr r1, [sp] bl LZDecompressVram ldr r0, _080D39F8 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D3A00 ldr r0, _080D39FC @ =gBattleAnimBackgroundPalette_Surf mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 movs r2, 0x20 bl LoadCompressedPalette b _080D3A0E .align 2, 0 _080D39F0: .4byte gUnknown_08E70F0C _080D39F4: .4byte gBattleAnimBackgroundImage_Surf _080D39F8: .4byte gUnknown_03004B00 _080D39FC: .4byte gBattleAnimBackgroundPalette_Surf _080D3A00: ldr r0, _080D3A78 @ =gBattleAnimBackgroundImageMuddyWater_Pal mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 movs r2, 0x20 bl LoadCompressedPalette _080D3A0E: ldr r0, _080D3A7C @ =sub_80D3D68 ldr r4, _080D3A80 @ =gTasks mov r2, r10 lsls r5, r2, 2 adds r1, r5, r2 lsls r1, 3 adds r6, r1, r4 ldrb r1, [r6, 0x7] adds r1, 0x1 lsls r1, 24 lsrs r1, 24 bl CreateTask lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r3, 0 mov r9, r3 mov r0, r8 strh r0, [r6, 0x26] mov r1, r8 lsls r0, r1, 2 add r0, r8 lsls r0, 3 adds r7, r0, r4 mov r2, r9 strh r2, [r7, 0x8] movs r0, 0x80 lsls r0, 5 strh r0, [r7, 0xA] strh r0, [r7, 0xC] bl sub_8076BE0 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _080D3A94 ldr r3, _080D3A84 @ =0x0000ffb0 adds r0, r3, 0 ldr r1, _080D3A88 @ =gUnknown_030042C0 strh r0, [r1] ldr r2, _080D3A8C @ =0x0000ffd0 adds r0, r2, 0 ldr r3, _080D3A90 @ =gUnknown_030041B4 strh r0, [r3] movs r0, 0x2 strh r0, [r6, 0x8] movs r0, 0x1 strh r0, [r6, 0xA] mov r0, r9 strh r0, [r7, 0xE] b _080D3AEE .align 2, 0 _080D3A78: .4byte gBattleAnimBackgroundImageMuddyWater_Pal _080D3A7C: .4byte sub_80D3D68 _080D3A80: .4byte gTasks _080D3A84: .4byte 0x0000ffb0 _080D3A88: .4byte gUnknown_030042C0 _080D3A8C: .4byte 0x0000ffd0 _080D3A90: .4byte gUnknown_030041B4 _080D3A94: ldr r0, _080D3AC4 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x1 bne _080D3AD8 ldr r2, _080D3AC8 @ =0x0000ff20 adds r0, r2, 0 ldr r3, _080D3ACC @ =gUnknown_030042C0 strh r0, [r3] movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 ldr r3, _080D3AD0 @ =gUnknown_030041B4 strh r0, [r3] movs r0, 0x2 strh r0, [r6, 0x8] ldr r0, _080D3AD4 @ =0x0000ffff strh r0, [r6, 0xA] strh r1, [r7, 0xE] b _080D3AEE .align 2, 0 _080D3AC4: .4byte gUnknown_0202F7C8 _080D3AC8: .4byte 0x0000ff20 _080D3ACC: .4byte gUnknown_030042C0 _080D3AD0: .4byte gUnknown_030041B4 _080D3AD4: .4byte 0x0000ffff _080D3AD8: ldr r0, _080D3B1C @ =gUnknown_030042C0 strh r4, [r0] ldr r1, _080D3B20 @ =0x0000ffd0 adds r0, r1, 0 ldr r2, _080D3B24 @ =gUnknown_030041B4 strh r0, [r2] ldr r0, _080D3B28 @ =0x0000fffe strh r0, [r6, 0x8] movs r0, 0x1 strh r0, [r6, 0xA] strh r4, [r7, 0xE] _080D3AEE: ldr r1, _080D3B2C @ =REG_BG1HOFS ldr r3, _080D3B1C @ =gUnknown_030042C0 ldrh r0, [r3] strh r0, [r1] adds r1, 0x2 ldr r2, _080D3B24 @ =gUnknown_030041B4 ldrh r0, [r2] strh r0, [r1] ldr r1, _080D3B30 @ =gTasks mov r3, r8 lsls r0, r3, 2 add r0, r8 lsls r0, 3 adds r2, r0, r1 movs r3, 0xE ldrsh r0, [r2, r3] cmp r0, 0 bne _080D3B34 movs r0, 0x30 strh r0, [r2, 0x10] movs r0, 0x70 b _080D3B38 .align 2, 0 _080D3B1C: .4byte gUnknown_030042C0 _080D3B20: .4byte 0x0000ffd0 _080D3B24: .4byte gUnknown_030041B4 _080D3B28: .4byte 0x0000fffe _080D3B2C: .4byte REG_BG1HOFS _080D3B30: .4byte gTasks _080D3B34: movs r0, 0 strh r0, [r2, 0x10] _080D3B38: strh r0, [r2, 0x12] mov r2, r10 adds r0, r5, r2 lsls r0, 3 adds r0, r1 movs r1, 0x1 strh r1, [r0, 0x14] ldr r1, _080D3B5C @ =sub_80D3B60 str r1, [r0] add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D3B5C: .4byte sub_80D3B60 thumb_func_end sub_80D38BC thumb_func_start sub_80D3B60 sub_80D3B60: @ 80D3B60 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 lsls r0, 24 lsrs r7, r0, 24 ldr r0, _080D3D44 @ =gTasks lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r4, r0 ldrh r0, [r4, 0x8] ldr r1, _080D3D48 @ =gUnknown_030042C0 ldrh r1, [r1] adds r0, r1 ldr r2, _080D3D48 @ =gUnknown_030042C0 strh r0, [r2] ldrh r0, [r4, 0xA] ldr r3, _080D3D4C @ =gUnknown_030041B4 ldrh r3, [r3] adds r0, r3 ldr r1, _080D3D4C @ =gUnknown_030041B4 strh r0, [r1] add r5, sp, 0x4 adds r0, r5, 0 bl sub_8078914 ldrh r0, [r4, 0xA] ldrh r2, [r4, 0xC] adds r0, r2 strh r0, [r4, 0xC] ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] lsls r0, 16 asrs r0, 16 mov r10, r5 cmp r0, 0x4 bne _080D3C02 ldr r1, _080D3D50 @ =gPlttBufferFaded ldrb r0, [r5, 0x8] lsls r0, 4 adds r0, 0x7 lsls r0, 1 adds r0, r1 ldrh r6, [r0] movs r2, 0x6 adds r5, r1, 0 adds r3, r5, 0 mov r4, r10 _080D3BC8: ldrb r0, [r4, 0x8] lsls r0, 4 adds r1, r2, 0x1 adds r0, r1 lsls r1, r0, 1 adds r1, r3 subs r0, 0x1 lsls r0, 1 adds r0, r3 ldrh r0, [r0] strh r0, [r1] subs r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _080D3BC8 mov r3, r10 ldrb r0, [r3, 0x8] lsls r0, 4 adds r0, 0x1 lsls r0, 1 adds r0, r5 strh r6, [r0] ldr r1, _080D3D44 @ =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 strh r2, [r0, 0x12] _080D3C02: ldr r1, _080D3D44 @ =gTasks lsls r2, r7, 2 adds r0, r2, r7 lsls r0, 3 adds r3, r0, r1 ldrh r0, [r3, 0x14] adds r0, 0x1 strh r0, [r3, 0x14] lsls r0, 16 asrs r0, 16 adds r4, r1, 0 str r2, [sp, 0x14] cmp r0, 0x1 ble _080D3C70 movs r0, 0 strh r0, [r3, 0x14] ldrh r0, [r3, 0xE] adds r2, r0, 0x1 strh r2, [r3, 0xE] lsls r0, r2, 16 asrs r0, 16 cmp r0, 0xD bgt _080D3C4C movs r1, 0x26 ldrsh r0, [r3, r1] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r4 movs r0, 0x10 subs r0, r2 lsls r0, 8 orrs r2, r0 strh r2, [r1, 0xA] ldrh r0, [r3, 0x10] adds r0, 0x1 strh r0, [r3, 0x10] _080D3C4C: movs r2, 0xE ldrsh r0, [r3, r2] cmp r0, 0x36 ble _080D3C70 ldrh r2, [r3, 0x10] subs r2, 0x1 strh r2, [r3, 0x10] movs r1, 0x26 ldrsh r0, [r3, r1] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r4 movs r0, 0x10 subs r0, r2 lsls r0, 8 orrs r2, r0 strh r2, [r1, 0xA] _080D3C70: ldr r2, [sp, 0x14] adds r0, r2, r7 lsls r0, 3 adds r0, r4 movs r3, 0x26 ldrsh r1, [r0, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 ldrh r1, [r0, 0xA] movs r0, 0x1F ands r0, r1 cmp r0, 0 bne _080D3D32 ldr r2, [sp, 0x4] movs r3, 0x80 lsls r3, 6 add r6, sp, 0x10 movs r5, 0 ldr r1, _080D3D54 @ =0x040000d4 movs r4, 0x80 lsls r4, 5 mov r8, r6 ldr r0, _080D3D58 @ =0x85000400 mov r12, r0 movs r0, 0x85 lsls r0, 24 mov r9, r0 _080D3CAA: str r5, [sp, 0x10] mov r0, r8 str r0, [r1] str r2, [r1, 0x4] mov r0, r12 str r0, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r4 subs r3, r4 cmp r3, r4 bhi _080D3CAA str r5, [sp, 0x10] str r6, [r1] str r2, [r1, 0x4] lsrs r0, r3, 2 mov r2, r9 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] mov r0, sp movs r1, 0 strb r1, [r0] strb r1, [r0] mov r3, r10 ldr r1, [r3, 0x4] movs r4, 0 str r4, [sp, 0x10] ldr r0, _080D3D54 @ =0x040000d4 str r6, [r0] str r1, [r0, 0x4] ldr r1, _080D3D58 @ =0x85000400 str r1, [r0, 0x8] ldr r0, [r0, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080D3D02 ldr r2, _080D3D5C @ =REG_BG1CNT ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _080D3D02: ldr r0, _080D3D48 @ =gUnknown_030042C0 strh r4, [r0] ldr r1, _080D3D4C @ =gUnknown_030041B4 strh r4, [r1] ldr r0, _080D3D60 @ =REG_BLDCNT strh r4, [r0] adds r0, 0x2 strh r4, [r0] ldr r2, _080D3D44 @ =gTasks ldr r3, [sp, 0x14] adds r0, r3, r7 lsls r0, 3 adds r0, r2 movs r3, 0x26 ldrsh r1, [r0, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, _080D3D64 @ =0x0000ffff strh r1, [r0, 0x26] adds r0, r7, 0 bl move_anim_task_del _080D3D32: add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D3D44: .4byte gTasks _080D3D48: .4byte gUnknown_030042C0 _080D3D4C: .4byte gUnknown_030041B4 _080D3D50: .4byte gPlttBufferFaded _080D3D54: .4byte 0x040000d4 _080D3D58: .4byte 0x85000400 _080D3D5C: .4byte REG_BG1CNT _080D3D60: .4byte REG_BLDCNT _080D3D64: .4byte 0x0000ffff thumb_func_end sub_80D3B60 thumb_func_start sub_80D3D68 sub_80D3D68: @ 80D3D68 push {r4-r7,lr} sub sp, 0xC lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 ldr r1, _080D3D90 @ =gTasks adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 bne _080D3D84 b _080D3EBC _080D3D84: cmp r0, 0x1 bgt _080D3D94 cmp r0, 0 beq _080D3D9C b _080D4032 .align 2, 0 _080D3D90: .4byte gTasks _080D3D94: cmp r0, 0x2 bne _080D3D9A b _080D3F88 _080D3D9A: b _080D4032 _080D3D9C: movs r3, 0 movs r2, 0x10 ldrsh r0, [r4, r2] ldr r1, _080D3E6C @ =gUnknown_03004DE0 mov r12, r1 cmp r3, r0 bge _080D3DDA mov r7, r12 movs r5, 0xF0 lsls r5, 3 add r5, r12 ldr r6, _080D3E70 @ =0x0000ffff _080D3DB4: lsls r2, r3, 16 asrs r2, 16 lsls r1, r2, 1 adds r3, r1, r7 adds r1, r5 ldrh r0, [r4, 0xC] strh r0, [r1] ldrh r1, [r4, 0xC] adds r0, r6, 0 ands r0, r1 strh r0, [r3] adds r2, 0x1 lsls r2, 16 lsrs r3, r2, 16 asrs r2, 16 movs r1, 0x10 ldrsh r0, [r4, r1] cmp r2, r0 blt _080D3DB4 _080D3DDA: ldrh r3, [r4, 0x10] lsls r2, r3, 16 asrs r1, r2, 16 movs r3, 0x12 ldrsh r0, [r4, r3] cmp r1, r0 bge _080D3E14 ldr r5, _080D3E6C @ =gUnknown_03004DE0 movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 ldr r7, _080D3E70 @ =0x0000ffff _080D3DF2: asrs r2, 16 lsls r1, r2, 1 adds r3, r1, r5 adds r1, r6 ldrh r0, [r4, 0xA] strh r0, [r1] ldrh r1, [r4, 0xA] adds r0, r7, 0 ands r0, r1 strh r0, [r3] adds r2, 0x1 lsls r2, 16 asrs r1, r2, 16 movs r3, 0x12 ldrsh r0, [r4, r3] cmp r1, r0 blt _080D3DF2 _080D3E14: ldrh r3, [r4, 0x12] lsls r2, r3, 16 asrs r0, r2, 16 cmp r0, 0x9F bgt _080D3E4A ldr r5, _080D3E6C @ =gUnknown_03004DE0 movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 ldr r7, _080D3E70 @ =0x0000ffff _080D3E28: asrs r2, 16 lsls r1, r2, 1 adds r3, r1, r5 adds r1, r6 ldrh r0, [r4, 0xC] strh r0, [r1] ldrh r1, [r4, 0xC] adds r0, r7, 0 ands r0, r1 strh r0, [r3] adds r2, 0x1 lsls r2, 16 lsrs r3, r2, 16 lsls r2, r3, 16 asrs r0, r2, 16 cmp r0, 0x9F ble _080D3E28 _080D3E4A: movs r1, 0x10 ldrsh r0, [r4, r1] cmp r0, 0 bne _080D3E74 lsls r0, r3, 16 asrs r0, 15 mov r3, r12 adds r2, r0, r3 movs r1, 0xF0 lsls r1, 3 add r1, r12 adds r0, r1 ldrh r1, [r4, 0xA] strh r1, [r0] ldrh r0, [r4, 0xA] b _080D3E8A .align 2, 0 _080D3E6C: .4byte gUnknown_03004DE0 _080D3E70: .4byte 0x0000ffff _080D3E74: lsls r0, r3, 16 asrs r0, 15 mov r1, r12 adds r2, r0, r1 movs r1, 0xF0 lsls r1, 3 add r1, r12 adds r0, r1 ldrh r1, [r4, 0xC] strh r1, [r0] ldrh r0, [r4, 0xC] _080D3E8A: strh r0, [r2] ldr r0, _080D3EB4 @ =REG_BLDALPHA str r0, [sp] ldr r0, _080D3EB8 @ =0xa2600001 str r0, [sp, 0x4] mov r1, sp movs r2, 0 movs r0, 0x1 strb r0, [r1, 0x8] mov r0, sp strb r2, [r0, 0x9] ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] bl sub_80895F8 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080D4032 .align 2, 0 _080D3EB4: .4byte REG_BLDALPHA _080D3EB8: .4byte 0xa2600001 _080D3EBC: movs r2, 0xE ldrsh r1, [r4, r2] cmp r1, 0 bne _080D3ED4 ldrh r0, [r4, 0x10] subs r0, 0x1 strh r0, [r4, 0x10] lsls r0, 16 cmp r0, 0 bgt _080D3EE8 strh r1, [r4, 0x10] b _080D3EE2 _080D3ED4: ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] lsls r0, 16 asrs r0, 16 cmp r0, 0x6F ble _080D3EE8 _080D3EE2: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080D3EE8: movs r3, 0 movs r1, 0x10 ldrsh r0, [r4, r1] cmp r3, r0 bge _080D3F1C ldr r6, _080D3F80 @ =gUnknown_03004DE0 ldr r5, _080D3F84 @ =gUnknown_03004DC0 _080D3EF6: lsls r1, r3, 16 asrs r1, 16 lsls r3, r1, 1 ldrb r2, [r5, 0x14] lsls r0, r2, 4 subs r0, r2 lsls r0, 7 adds r3, r0 adds r3, r6 ldrh r0, [r4, 0xC] strh r0, [r3] adds r1, 0x1 lsls r1, 16 lsrs r3, r1, 16 asrs r1, 16 movs r2, 0x10 ldrsh r0, [r4, r2] cmp r1, r0 blt _080D3EF6 _080D3F1C: ldrh r3, [r4, 0x10] lsls r2, r3, 16 asrs r1, r2, 16 movs r3, 0x12 ldrsh r0, [r4, r3] cmp r1, r0 bge _080D3F50 ldr r6, _080D3F80 @ =gUnknown_03004DE0 ldr r5, _080D3F84 @ =gUnknown_03004DC0 _080D3F2E: asrs r3, r2, 16 lsls r2, r3, 1 ldrb r1, [r5, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 adds r2, r6 ldrh r0, [r4, 0xA] strh r0, [r2] adds r3, 0x1 lsls r2, r3, 16 asrs r1, r2, 16 movs r3, 0x12 ldrsh r0, [r4, r3] cmp r1, r0 blt _080D3F2E _080D3F50: ldrh r3, [r4, 0x12] lsls r1, r3, 16 asrs r0, r1, 16 cmp r0, 0x9F bgt _080D4032 ldr r6, _080D3F80 @ =gUnknown_03004DE0 ldr r5, _080D3F84 @ =gUnknown_03004DC0 _080D3F5E: asrs r3, r1, 16 lsls r2, r3, 1 ldrb r1, [r5, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 adds r2, r6 ldrh r0, [r4, 0xC] strh r0, [r2] adds r3, 0x1 lsls r1, r3, 16 asrs r0, r1, 16 cmp r0, 0x9F ble _080D3F5E b _080D4032 .align 2, 0 _080D3F80: .4byte gUnknown_03004DE0 _080D3F84: .4byte gUnknown_03004DC0 _080D3F88: movs r3, 0 movs r1, 0x10 ldrsh r0, [r4, r1] cmp r3, r0 bge _080D3FBC ldr r6, _080D403C @ =gUnknown_03004DE0 ldr r5, _080D4040 @ =gUnknown_03004DC0 _080D3F96: lsls r1, r3, 16 asrs r1, 16 lsls r3, r1, 1 ldrb r2, [r5, 0x14] lsls r0, r2, 4 subs r0, r2 lsls r0, 7 adds r3, r0 adds r3, r6 ldrh r0, [r4, 0xC] strh r0, [r3] adds r1, 0x1 lsls r1, 16 lsrs r3, r1, 16 asrs r1, 16 movs r2, 0x10 ldrsh r0, [r4, r2] cmp r1, r0 blt _080D3F96 _080D3FBC: ldrh r3, [r4, 0x10] lsls r2, r3, 16 asrs r1, r2, 16 movs r3, 0x12 ldrsh r0, [r4, r3] cmp r1, r0 bge _080D3FF0 ldr r6, _080D403C @ =gUnknown_03004DE0 ldr r5, _080D4040 @ =gUnknown_03004DC0 _080D3FCE: asrs r3, r2, 16 lsls r2, r3, 1 ldrb r1, [r5, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 adds r2, r6 ldrh r0, [r4, 0xA] strh r0, [r2] adds r3, 0x1 lsls r2, r3, 16 asrs r1, r2, 16 movs r3, 0x12 ldrsh r0, [r4, r3] cmp r1, r0 blt _080D3FCE _080D3FF0: ldrh r3, [r4, 0x12] lsls r1, r3, 16 asrs r0, r1, 16 cmp r0, 0x9F bgt _080D401C ldr r6, _080D403C @ =gUnknown_03004DE0 ldr r5, _080D4040 @ =gUnknown_03004DC0 _080D3FFE: asrs r3, r1, 16 lsls r2, r3, 1 ldrb r1, [r5, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 adds r2, r6 ldrh r0, [r4, 0xC] strh r0, [r2] adds r3, 0x1 lsls r1, r3, 16 asrs r0, r1, 16 cmp r0, 0x9F ble _080D3FFE _080D401C: movs r0, 0x26 ldrsh r1, [r4, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080D4032 bl remove_some_task adds r0, r7, 0 bl DestroyTask _080D4032: add sp, 0xC pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D403C: .4byte gUnknown_03004DE0 _080D4040: .4byte gUnknown_03004DC0 thumb_func_end sub_80D3D68 thumb_func_start sub_80D4044 sub_80D4044: @ 80D4044 push {r4-r6,lr} adds r4, r0, 0 ldrh r2, [r4, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x8 ldr r3, _080D4098 @ =0x000003ff adds r0, r3, 0 ands r1, r0 ldr r0, _080D409C @ =0xfffffc00 ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] adds r0, r4, 0 movs r1, 0x1 bl sub_8078764 bl Random movs r5, 0xFF ands r5, r0 movs r0, 0x80 lsls r0, 1 adds r6, r0, 0 orrs r5, r6 bl Random ldr r1, _080D40A0 @ =0x000001ff ands r1, r0 adds r0, r1, 0 cmp r0, 0xFF ble _080D408A subs r0, r6, r0 lsls r0, 16 lsrs r1, r0, 16 _080D408A: strh r5, [r4, 0x30] strh r1, [r4, 0x32] ldr r0, _080D40A4 @ =sub_80D40A8 str r0, [r4, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D4098: .4byte 0x000003ff _080D409C: .4byte 0xfffffc00 _080D40A0: .4byte 0x000001ff _080D40A4: .4byte sub_80D40A8 thumb_func_end sub_80D4044 thumb_func_start sub_80D40A8 sub_80D40A8: @ 80D40A8 push {r4,lr} adds r2, r0, 0 ldrh r0, [r2, 0x30] ldrh r1, [r2, 0x34] adds r3, r0, r1 strh r3, [r2, 0x34] ldrh r1, [r2, 0x32] ldrh r4, [r2, 0x36] adds r1, r4 strh r1, [r2, 0x36] movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _080D40CC lsls r0, r3, 16 asrs r0, 24 negs r0, r0 b _080D40D0 _080D40CC: lsls r0, r3, 16 asrs r0, 24 _080D40D0: strh r0, [r2, 0x24] ldrh r0, [r2, 0x36] lsls r0, 16 asrs r0, 24 strh r0, [r2, 0x26] ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x15 bne _080D40EE adds r0, r2, 0 bl move_anim_8072740 _080D40EE: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D40A8 thumb_func_start sub_80D40F4 sub_80D40F4: @ 80D40F4 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _080D4144 @ =gTasks adds r4, r0 movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] ldr r2, _080D4148 @ =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x22] strh r0, [r4, 0x12] bl sub_80D4394 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xA] ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_8078E70 ldr r0, _080D414C @ =sub_80D4150 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080D4144: .4byte gTasks _080D4148: .4byte gSprites _080D414C: .4byte sub_80D4150 thumb_func_end sub_80D40F4 thumb_func_start sub_80D4150 sub_80D4150: @ 80D4150 push {r4-r6,lr} sub sp, 0xC lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080D4178 @ =gTasks adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x7 bls _080D416C b _080D438A _080D416C: lsls r0, 2 ldr r1, _080D417C @ =_080D4180 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080D4178: .4byte gTasks _080D417C: .4byte _080D4180 .align 2, 0 _080D4180: .4byte _080D41A0 .4byte _080D41C6 .4byte _080D4258 .4byte _080D428E .4byte _080D42A2 .4byte _080D42B0 .4byte _080D4330 .4byte _080D437C _080D41A0: ldrh r1, [r4, 0x26] lsls r1, 24 lsrs r1, 24 movs r3, 0x80 lsls r3, 1 movs r0, 0xE0 str r0, [sp] movs r0, 0x80 lsls r0, 2 str r0, [sp, 0x4] movs r0, 0x20 str r0, [sp, 0x8] adds r0, r4, 0 adds r2, r3, 0 bl sub_8079C08 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080D41C6: ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D4222 movs r0, 0 strh r0, [r4, 0xE] ldrh r0, [r4, 0x10] adds r0, 0x1 strh r0, [r4, 0x10] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080D4210 ldr r2, _080D420C @ =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x3 strh r1, [r0, 0x24] movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x22] adds r1, 0x1 strh r1, [r0, 0x22] b _080D4222 .align 2, 0 _080D420C: .4byte gSprites _080D4210: ldr r2, _080D4250 @ =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _080D4254 @ =0x0000fffd strh r1, [r0, 0x24] _080D4222: adds r0, r4, 0 bl sub_8079C74 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 beq _080D4232 b _080D438A _080D4232: ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 bl sub_8079A64 ldr r2, _080D4250 @ =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r5, [r0, 0x24] strh r5, [r4, 0xE] b _080D436C .align 2, 0 _080D4250: .4byte gSprites _080D4254: .4byte 0x0000fffd _080D4258: ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bgt _080D4268 b _080D438A _080D4268: ldrh r1, [r4, 0x26] lsls r1, 24 lsrs r1, 24 movs r3, 0x80 lsls r3, 2 movs r0, 0xC0 lsls r0, 1 str r0, [sp] movs r0, 0xE0 str r0, [sp, 0x4] movs r0, 0x8 str r0, [sp, 0x8] adds r0, r4, 0 movs r2, 0xE0 bl sub_8079C08 movs r0, 0 strh r0, [r4, 0xE] b _080D436E _080D428E: adds r0, r4, 0 bl sub_8079C74 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080D438A strh r0, [r4, 0xE] strh r0, [r4, 0x10] b _080D436E _080D42A2: adds r0, r4, 0 adds r1, r2, 0 bl sub_80D4418 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080D42B0: ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D438A movs r0, 0 strh r0, [r4, 0xE] ldrh r0, [r4, 0x10] adds r0, 0x1 strh r0, [r4, 0x10] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080D42E8 ldr r2, _080D42E4 @ =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x26] adds r1, 0x2 b _080D42FA .align 2, 0 _080D42E4: .4byte gSprites _080D42E8: ldr r2, _080D432C @ =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x26] subs r1, 0x2 _080D42FA: strh r1, [r0, 0x26] movs r1, 0x10 ldrsh r0, [r4, r1] cmp r0, 0xA bne _080D438A ldrh r1, [r4, 0x26] lsls r1, 24 lsrs r1, 24 movs r2, 0xC0 lsls r2, 1 movs r0, 0x80 lsls r0, 1 str r0, [sp] str r0, [sp, 0x4] movs r0, 0x8 str r0, [sp, 0x8] adds r0, r4, 0 movs r3, 0xE0 bl sub_8079C08 movs r0, 0 strh r0, [r4, 0xE] strh r0, [r4, 0x10] b _080D436E .align 2, 0 _080D432C: .4byte gSprites _080D4330: ldr r6, _080D4378 @ =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldrh r1, [r0, 0x22] subs r1, 0x1 strh r1, [r0, 0x22] adds r0, r4, 0 bl sub_8079C74 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _080D438A ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 bl sub_8078F40 movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldrh r1, [r4, 0x12] strh r1, [r0, 0x22] _080D436C: strh r5, [r4, 0x10] _080D436E: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080D438A .align 2, 0 _080D4378: .4byte gSprites _080D437C: movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0 bne _080D438A adds r0, r2, 0 bl move_anim_task_del _080D438A: add sp, 0xC pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80D4150 thumb_func_start sub_80D4394 sub_80D4394: @ 80D4394 push {r4,r5,lr} ldr r4, _080D43B8 @ =gUnknown_0202F7C8 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D43C8 ldr r1, _080D43BC @ =gUnknown_02024A6A ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _080D43C0 @ =gPlayerParty b _080D43D8 .align 2, 0 _080D43B8: .4byte gUnknown_0202F7C8 _080D43BC: .4byte gUnknown_02024A6A _080D43C0: .4byte gPlayerParty _080D43C4: adds r0, r2, 0 b _080D440A _080D43C8: ldr r1, _080D4410 @ =gUnknown_02024A6A ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _080D4414 @ =gEnemyParty _080D43D8: adds r5, r1, r0 adds r0, r5, 0 movs r1, 0x3A bl GetMonData adds r4, r0, 0 lsls r4, 16 adds r0, r5, 0 movs r1, 0x39 bl GetMonData lsls r0, 16 lsrs r3, r0, 16 lsrs r4, 18 movs r2, 0 _080D43F6: adds r1, r2, 0x1 adds r0, r4, 0 muls r0, r1 cmp r3, r0 blt _080D43C4 lsls r0, r1, 24 lsrs r2, r0, 24 cmp r2, 0x2 bls _080D43F6 movs r0, 0x3 _080D440A: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080D4410: .4byte gUnknown_02024A6A _080D4414: .4byte gEnemyParty thumb_func_end sub_80D4394 thumb_func_start sub_80D4418 sub_80D4418: @ 80D4418 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 adds r7, r0, 0 lsls r1, 24 lsrs r1, 24 str r1, [sp] ldr r4, _080D4520 @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 mov r8, r0 ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r6, r0, 24 movs r5, 0xAC ldrb r0, [r4] bl sub_8079E90 subs r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x8] ldrh r1, [r7, 0xA] movs r0, 0x4 subs r0, r1 lsls r0, 16 lsrs r1, r0, 16 cmp r0, 0 bgt _080D4468 movs r1, 0x1 _080D4468: movs r0, 0 str r0, [sp, 0x4] lsls r0, r1, 16 mov r10, r8 mov r9, r6 mov r1, r10 lsls r1, 4 str r1, [sp, 0xC] mov r1, r9 lsls r1, 4 str r1, [sp, 0x10] asrs r0, 16 mov r8, r0 _080D4482: ldr r0, _080D4524 @ =gSpriteTemplate_83D9378 mov r1, r10 mov r2, r9 ldr r3, [sp, 0x8] bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 lsls r6, r5, 16 cmp r2, 0x40 beq _080D44EA ldr r1, _080D4528 @ =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r5, r0, r1 mov r0, sp ldrh r0, [r0, 0x4] strh r0, [r5, 0x30] mov r1, sp ldrh r1, [r1, 0xC] strh r1, [r5, 0x32] mov r0, sp ldrh r0, [r0, 0x10] strh r0, [r5, 0x34] asrs r4, r6, 16 adds r0, r4, 0 movs r1, 0x40 bl Cos strh r0, [r5, 0x36] adds r0, r4, 0 movs r1, 0x40 bl Sin strh r0, [r5, 0x38] mov r1, sp ldrh r1, [r1] strh r1, [r5, 0x3A] movs r0, 0x2 strh r0, [r5, 0x3C] ldrh r1, [r7, 0xC] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080D44E4 adds r0, r5, 0 bl sub_80D452C _080D44E4: ldrh r0, [r7, 0xC] adds r0, 0x1 strh r0, [r7, 0xC] _080D44EA: mov r1, r8 lsls r0, r1, 1 asrs r1, r6, 16 adds r1, r0 lsls r1, 16 movs r0, 0xFF lsls r0, 16 ands r0, r1 lsrs r5, r0, 16 ldr r1, [sp, 0x4] lsls r0, r1, 16 asrs r0, 16 add r0, r8 lsls r0, 16 lsrs r1, r0, 16 str r1, [sp, 0x4] asrs r0, 16 cmp r0, 0x13 ble _080D4482 add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D4520: .4byte gUnknown_0202F7C8 _080D4524: .4byte gSpriteTemplate_83D9378 _080D4528: .4byte gSprites thumb_func_end sub_80D4418 thumb_func_start sub_80D452C sub_80D452C: @ 80D452C push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 beq _080D453E cmp r0, 0x1 beq _080D4574 b _080D45CE _080D453E: movs r2, 0x30 ldrsh r0, [r4, r2] movs r1, 0x6 bl __modsi3 lsls r0, 16 asrs r0, 16 lsls r1, r0, 1 adds r1, r0 ldrh r0, [r4, 0x36] adds r1, r0 strh r1, [r4, 0x36] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x3 bl __modsi3 lsls r0, 16 asrs r0, 16 lsls r1, r0, 1 adds r1, r0 ldrh r2, [r4, 0x38] adds r1, r2 strh r1, [r4, 0x38] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] _080D4574: ldrh r0, [r4, 0x36] ldrh r1, [r4, 0x32] adds r0, r1 strh r0, [r4, 0x32] ldrh r1, [r4, 0x38] ldrh r2, [r4, 0x34] adds r1, r2 strh r1, [r4, 0x34] lsls r0, 16 asrs r0, 20 strh r0, [r4, 0x20] lsls r1, 16 asrs r2, r1, 20 strh r2, [r4, 0x22] adds r0, 0x8 lsls r0, 16 movs r1, 0x80 lsls r1, 17 cmp r0, r1 bhi _080D45AA adds r1, r2, 0 movs r0, 0x8 negs r0, r0 cmp r1, r0 blt _080D45AA cmp r1, 0x78 ble _080D45CE _080D45AA: ldr r3, _080D45D4 @ =gTasks movs r0, 0x3C ldrsh r1, [r4, r0] lsls r1, 1 movs r0, 0x3A ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] adds r0, r4, 0 bl DestroySprite _080D45CE: pop {r4} pop {r0} bx r0 .align 2, 0 _080D45D4: .4byte gTasks thumb_func_end sub_80D452C thumb_func_start sub_80D45D8 sub_80D45D8: @ 80D45D8 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080D4608 @ =gTasks adds r4, r1, r0 bl sub_80D4394 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xA] ldr r0, _080D460C @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D4610 movs r0, 0x88 strh r0, [r4, 0x10] movs r0, 0x28 b _080D4616 .align 2, 0 _080D4608: .4byte gTasks _080D460C: .4byte gUnknown_0202F7C8 _080D4610: movs r0, 0x10 strh r0, [r4, 0x10] movs r0, 0x50 _080D4616: strh r0, [r4, 0x14] movs r0, 0x62 strh r0, [r4, 0x12] ldrh r0, [r4, 0x10] adds r0, 0x31 strh r0, [r4, 0x16] movs r0, 0xA ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 adds r0, 0x5 strh r0, [r4, 0x20] ldr r0, _080D4638 @ =sub_80D463C str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080D4638: .4byte sub_80D463C thumb_func_end sub_80D45D8 thumb_func_start sub_80D463C sub_80D463C: @ 80D463C push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r1, r0, 24 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r7, _080D4660 @ =gTasks adds r4, r0, r7 movs r0, 0x8 ldrsh r2, [r4, r0] cmp r2, 0 beq _080D4664 cmp r2, 0x1 beq _080D4714 b _080D4722 .align 2, 0 _080D4660: .4byte gTasks _080D4664: ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _080D467A strh r2, [r4, 0xC] adds r0, r4, 0 bl sub_80D472C _080D467A: movs r1, 0x1C ldrsh r0, [r4, r1] cmp r0, 0 beq _080D46F4 movs r2, 0x22 ldrsh r0, [r4, r2] cmp r0, 0 bne _080D46F4 ldr r5, _080D4708 @ =gUnknown_03004B00 movs r1, 0x1 mov r8, r1 mov r2, r8 strh r2, [r5] strh r0, [r5, 0x2] movs r0, 0xC strh r0, [r5, 0x4] ldr r6, _080D470C @ =sub_80E1864 adds r0, r6, 0 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xFF beq _080D46C4 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r7 ldr r1, [r0] adds r0, r2, 0 bl _call_via_r1 ldr r1, _080D4710 @ =gUnknown_0202F7B2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080D46C4: movs r0, 0x3 strh r0, [r5] adds r0, r6, 0 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xFF beq _080D46F0 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r7 ldr r1, [r0] adds r0, r2, 0 bl _call_via_r1 ldr r1, _080D4710 @ =gUnknown_0202F7B2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080D46F0: mov r0, r8 strh r0, [r4, 0x22] _080D46F4: movs r2, 0x1E ldrsh r1, [r4, r2] movs r2, 0x20 ldrsh r0, [r4, r2] cmp r1, r0 blt _080D4722 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080D4722 .align 2, 0 _080D4708: .4byte gUnknown_03004B00 _080D470C: .4byte sub_80E1864 _080D4710: .4byte gUnknown_0202F7B2 _080D4714: movs r2, 0x1A ldrsh r0, [r4, r2] cmp r0, 0 bne _080D4722 adds r0, r1, 0 bl move_anim_task_del _080D4722: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80D463C thumb_func_start sub_80D472C sub_80D472C: @ 80D472C push {r4-r6,lr} adds r4, r0, 0 lsls r1, 24 lsrs r6, r1, 24 ldr r1, _080D47B8 @ =gSineTable movs r2, 0x18 ldrsh r0, [r4, r2] lsls r0, 1 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] adds r0, 0x3 asrs r0, 4 ldrh r2, [r4, 0x14] adds r0, r2 lsls r0, 16 lsrs r5, r0, 16 ldr r0, _080D47BC @ =gSpriteTemplate_83D9378 movs r2, 0x16 ldrsh r1, [r4, r2] movs r2, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _080D4786 ldr r3, _080D47C0 @ =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r3, 0 adds r1, 0x1C adds r1, r0, r1 ldr r2, _080D47C4 @ =sub_80D47D0 str r2, [r1] adds r0, r3 strh r5, [r0, 0x38] strh r6, [r0, 0x3A] movs r1, 0x9 strh r1, [r0, 0x3C] ldrh r0, [r4, 0x1A] adds r0, 0x1 strh r0, [r4, 0x1A] _080D4786: ldrh r0, [r4, 0x1E] adds r0, 0x1 strh r0, [r4, 0x1E] ldrh r0, [r4, 0x18] adds r0, 0x27 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x18] movs r0, 0x16 ldrsh r1, [r4, r0] ldr r0, _080D47C8 @ =0x41c64e6d muls r0, r1 ldr r1, _080D47CC @ =0x00003039 adds r0, r1 movs r2, 0x12 ldrsh r1, [r4, r2] bl __modsi3 ldrh r1, [r4, 0x10] adds r1, r0 strh r1, [r4, 0x16] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D47B8: .4byte gSineTable _080D47BC: .4byte gSpriteTemplate_83D9378 _080D47C0: .4byte gSprites _080D47C4: .4byte sub_80D47D0 _080D47C8: .4byte 0x41c64e6d _080D47CC: .4byte 0x00003039 thumb_func_end sub_80D472C thumb_func_start sub_80D47D0 sub_80D47D0: @ 80D47D0 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0 bne _080D4866 ldrh r0, [r5, 0x22] adds r0, 0x8 strh r0, [r5, 0x22] lsls r0, 16 asrs r0, 16 movs r2, 0x38 ldrsh r1, [r5, r2] cmp r0, r1 blt _080D4866 ldr r2, _080D486C @ =gTasks movs r3, 0x3A ldrsh r1, [r5, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r1, 0x1 strh r1, [r0, 0x1C] ldr r0, _080D4870 @ =gBattleAnimSpriteTemplate_83DB4D8 movs r2, 0x20 ldrsh r1, [r5, r2] movs r3, 0x22 ldrsh r2, [r5, r3] movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x30] cmp r0, 0x40 beq _080D4860 movs r0, 0x30 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _080D4874 @ =gSprites adds r0, r4 movs r1, 0x3 bl StartSpriteAffineAnim movs r2, 0x30 ldrsh r1, [r5, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r5, 0x3A] strh r1, [r0, 0x3A] movs r3, 0x30 ldrsh r1, [r5, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r5, 0x3C] strh r1, [r0, 0x3C] movs r0, 0x30 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, 0x1C adds r0, r4 ldr r1, _080D4878 @ =sub_80D487C str r1, [r0] _080D4860: adds r0, r5, 0 bl DestroySprite _080D4866: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D486C: .4byte gTasks _080D4870: .4byte gBattleAnimSpriteTemplate_83DB4D8 _080D4874: .4byte gSprites _080D4878: .4byte sub_80D487C thumb_func_end sub_80D47D0 thumb_func_start sub_80D487C sub_80D487C: @ 80D487C push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D48E8 movs r0, 0 strh r0, [r4, 0x30] adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0xC bne _080D48E8 ldr r3, _080D48F0 @ =gTasks movs r0, 0x3C ldrsh r1, [r4, r0] lsls r1, 1 movs r0, 0x3A ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix adds r0, r4, 0 bl DestroySprite _080D48E8: pop {r4} pop {r0} bx r0 .align 2, 0 _080D48F0: .4byte gTasks thumb_func_end sub_80D487C thumb_func_start sub_80D48F4 sub_80D48F4: @ 80D48F4 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080D4978 @ =gTasks adds r5, r1, r0 ldr r4, _080D497C @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 movs r6, 0 strh r0, [r5, 0xE] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x10] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 movs r2, 0x1 negs r2, r2 adds r1, r2, 0 cmp r0, 0 bne _080D4938 movs r1, 0x1 _080D4938: strh r1, [r5, 0x16] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080D494C movs r1, 0x16 ldrsh r0, [r5, r1] negs r0, r0 strh r0, [r5, 0x16] _080D494C: movs r2, 0x16 ldrsh r0, [r5, r2] lsls r0, 3 ldrh r1, [r5, 0xE] adds r0, r1 strh r0, [r5, 0x12] movs r2, 0x16 ldrsh r1, [r5, r2] lsls r1, 3 ldrh r0, [r5, 0x10] subs r0, r1 strh r0, [r5, 0x14] ldr r0, _080D4980 @ =0x0000ffe0 strh r0, [r5, 0x1A] strh r6, [r5, 0xA] strh r6, [r5, 0x8] ldr r0, _080D4984 @ =sub_80D4988 str r0, [r5] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D4978: .4byte gTasks _080D497C: .4byte gUnknown_0202F7C8 _080D4980: .4byte 0x0000ffe0 _080D4984: .4byte sub_80D4988 thumb_func_end sub_80D48F4 thumb_func_start sub_80D4988 sub_80D4988: @ 80D4988 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080D49AC @ =gTasks adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x6 bls _080D49A2 b _080D4AC2 _080D49A2: lsls r0, 2 ldr r1, _080D49B0 @ =_080D49B4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080D49AC: .4byte gTasks _080D49B0: .4byte _080D49B4 .align 2, 0 _080D49B4: .4byte _080D49D0 .4byte _080D49E0 .4byte _080D49FA .4byte _080D4A3C .4byte _080D4A5E .4byte _080D4A8C .4byte _080D4AB2 _080D49D0: adds r0, r4, 0 bl sub_80D4AD0 movs r1, 0x1C ldrsh r0, [r4, r1] cmp r0, 0 beq _080D4AC8 b _080D4ABA _080D49E0: adds r0, r4, 0 bl sub_80D4AD0 ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 ble _080D4AC8 movs r0, 0 strh r0, [r4, 0xA] b _080D4ABA _080D49FA: adds r0, r4, 0 bl sub_80D4AD0 movs r1, 0x16 ldrsh r0, [r4, r1] lsls r1, r0, 1 adds r1, r0 lsls r1, 1 ldrh r0, [r4, 0x12] adds r1, r0 movs r2, 0 strh r1, [r4, 0x12] adds r1, 0x10 lsls r1, 16 movs r0, 0x88 lsls r0, 17 cmp r1, r0 bls _080D4AC8 ldrh r0, [r4, 0x20] adds r0, 0x1 strh r0, [r4, 0x20] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _080D4A38 movs r0, 0x1 strh r0, [r4, 0x22] movs r0, 0x6 strh r0, [r4, 0x8] strh r2, [r4, 0xA] b _080D4AC8 _080D4A38: strh r2, [r4, 0xA] b _080D4ABA _080D4A3C: adds r0, r4, 0 bl sub_80D4AD0 movs r0, 0x16 ldrsh r1, [r4, r0] lsls r1, 1 ldrh r0, [r4, 0x14] subs r0, r1 strh r0, [r4, 0x14] ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _080D4AC8 b _080D4ABA _080D4A5E: adds r0, r4, 0 bl sub_80D4AD0 movs r1, 0x16 ldrsh r0, [r4, r1] lsls r1, r0, 1 adds r1, r0 lsls r1, 1 ldrh r0, [r4, 0x12] subs r0, r1 strh r0, [r4, 0x12] adds r0, 0x10 lsls r0, 16 movs r1, 0x88 lsls r1, 17 cmp r0, r1 bls _080D4AC8 ldrh r0, [r4, 0x20] adds r0, 0x1 strh r0, [r4, 0x20] movs r0, 0 strh r0, [r4, 0xA] b _080D4ABA _080D4A8C: adds r0, r4, 0 bl sub_80D4AD0 movs r0, 0x16 ldrsh r1, [r4, r0] lsls r1, 1 ldrh r0, [r4, 0x14] subs r0, r1 strh r0, [r4, 0x14] ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _080D4AC8 movs r0, 0x2 strh r0, [r4, 0x8] b _080D4AC8 _080D4AB2: movs r1, 0x18 ldrsh r0, [r4, r1] cmp r0, 0 bne _080D4AC8 _080D4ABA: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080D4AC8 _080D4AC2: adds r0, r2, 0 bl move_anim_task_del _080D4AC8: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D4988 thumb_func_start sub_80D4AD0 sub_80D4AD0: @ 80D4AD0 push {r4-r6,lr} adds r6, r0, 0 ldrh r0, [r6, 0xC] adds r0, 0x1 strh r0, [r6, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D4B2A movs r0, 0 strh r0, [r6, 0xC] ldr r0, _080D4B30 @ =gSpriteTemplate_83D9378 movs r2, 0xE ldrsh r1, [r6, r2] movs r3, 0x10 ldrsh r2, [r6, r3] movs r3, 0xA bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _080D4B2A ldr r5, _080D4B34 @ =gSprites lsls r4, r0, 4 adds r4, r0 lsls r4, 2 adds r0, r4, r5 movs r1, 0x10 strh r1, [r0, 0x2E] ldrh r1, [r6, 0x12] strh r1, [r0, 0x32] ldrh r1, [r6, 0x14] strh r1, [r0, 0x36] ldrh r1, [r6, 0x1A] strh r1, [r0, 0x38] bl sub_80786EC adds r5, 0x1C adds r4, r5 ldr r0, _080D4B38 @ =sub_80D4B3C str r0, [r4] ldrh r0, [r6, 0x18] adds r0, 0x1 strh r0, [r6, 0x18] _080D4B2A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D4B30: .4byte gSpriteTemplate_83D9378 _080D4B34: .4byte gSprites _080D4B38: .4byte sub_80D4B3C thumb_func_end sub_80D4AD0 thumb_func_start sub_80D4B3C sub_80D4B3C: @ 80D4B3C push {r4-r6,lr} adds r6, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080D4B96 ldrh r0, [r6, 0x24] ldrh r1, [r6, 0x20] adds r0, r1 strh r0, [r6, 0x20] ldrh r0, [r6, 0x26] ldrh r1, [r6, 0x22] adds r0, r1 strh r0, [r6, 0x22] movs r0, 0x6 strh r0, [r6, 0x2E] bl Random movs r4, 0x1F adds r1, r4, 0 ands r1, r0 ldr r5, _080D4B9C @ =0x0000fff0 adds r1, r5 ldrh r0, [r6, 0x20] adds r1, r0 strh r1, [r6, 0x32] bl Random ands r4, r0 adds r4, r5 ldrh r1, [r6, 0x22] adds r4, r1 strh r4, [r6, 0x36] bl Random movs r1, 0x7 ands r1, r0 mvns r1, r1 strh r1, [r6, 0x38] adds r0, r6, 0 bl sub_80786EC ldr r0, _080D4BA0 @ =sub_80D4BA4 str r0, [r6, 0x1C] _080D4B96: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D4B9C: .4byte 0x0000fff0 _080D4BA0: .4byte sub_80D4BA4 thumb_func_end sub_80D4B3C thumb_func_start sub_80D4BA4 sub_80D4BA4: @ 80D4BA4 push {r4-r6,lr} adds r5, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080D4BE0 movs r4, 0 ldr r6, _080D4BE8 @ =gTasks _080D4BB6: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r6 ldr r1, [r2] ldr r0, _080D4BEC @ =sub_80D4988 cmp r1, r0 bne _080D4BD6 movs r0, 0x1 strh r0, [r2, 0x1C] ldrh r0, [r2, 0x18] subs r0, 0x1 strh r0, [r2, 0x18] adds r0, r5, 0 bl DestroySprite _080D4BD6: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0xF bls _080D4BB6 _080D4BE0: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D4BE8: .4byte gTasks _080D4BEC: .4byte sub_80D4988 thumb_func_end sub_80D4BA4 thumb_func_start sub_80D4BF0 sub_80D4BF0: @ 80D4BF0 ldr r2, _080D4C10 @ =gUnknown_03004B00 ldrh r1, [r2] strh r1, [r0, 0x20] ldrh r1, [r2, 0x2] strh r1, [r0, 0x22] ldrh r1, [r2, 0x4] strh r1, [r0, 0x2E] ldrh r1, [r2, 0x6] strh r1, [r0, 0x30] ldrh r1, [r2, 0x8] strh r1, [r0, 0x32] ldrh r1, [r2, 0xA] strh r1, [r0, 0x34] ldr r1, _080D4C14 @ =sub_80D4C18 str r1, [r0, 0x1C] bx lr .align 2, 0 _080D4C10: .4byte gUnknown_03004B00 _080D4C14: .4byte sub_80D4C18 thumb_func_end sub_80D4BF0 thumb_func_start sub_80D4C18 sub_80D4C18: @ 80D4C18 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x36] ldrh r1, [r4, 0x2E] subs r0, r1 strh r0, [r4, 0x36] movs r1, 0x36 ldrsh r0, [r4, r1] movs r1, 0xA bl __divsi3 strh r0, [r4, 0x26] ldrh r0, [r4, 0x30] ldrh r2, [r4, 0x38] adds r0, r2 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] movs r1, 0x38 ldrsh r0, [r4, r1] movs r2, 0x32 ldrsh r1, [r4, r2] bl Sin strh r0, [r4, 0x24] ldrh r0, [r4, 0x34] subs r0, 0x1 strh r0, [r4, 0x34] lsls r0, 16 cmp r0, 0 bne _080D4C5C adds r0, r4, 0 bl move_anim_8072740 _080D4C5C: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D4C18 thumb_func_start sub_80D4C64 sub_80D4C64: @ 80D4C64 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x30] ldrh r1, [r4, 0x34] adds r0, r1 strh r0, [r4, 0x34] ldrh r1, [r4, 0x32] ldrh r2, [r4, 0x36] adds r1, r2 strh r1, [r4, 0x36] lsls r0, 16 asrs r0, 23 strh r0, [r4, 0x24] lsls r1, 16 asrs r1, 23 strh r1, [r4, 0x26] ldrh r0, [r4, 0x2E] subs r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 cmp r0, 0 bne _080D4C9C adds r0, r4, 0 bl FreeSpriteOamMatrix adds r0, r4, 0 bl DestroySprite _080D4C9C: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D4C64 thumb_func_start sub_80D4CA4 sub_80D4CA4: @ 80D4CA4 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r5, _080D4CE0 @ =gUnknown_0202F7C9 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x30] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldr r1, _080D4CE4 @ =gUnknown_03004B00 ldrh r0, [r1, 0x4] strh r0, [r4, 0x34] ldrh r0, [r1, 0x6] strh r0, [r4, 0x36] ldr r0, _080D4CE8 @ =sub_80D4CEC str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D4CE0: .4byte gUnknown_0202F7C9 _080D4CE4: .4byte gUnknown_03004B00 _080D4CE8: .4byte sub_80D4CEC thumb_func_end sub_80D4CA4 thumb_func_start sub_80D4CEC sub_80D4CEC: @ 80D4CEC push {r4-r6,lr} adds r4, r0, 0 movs r0, 0x30 ldrsh r1, [r4, r0] movs r2, 0x20 ldrsh r0, [r4, r2] subs r6, r1, r0 movs r0, 0x32 ldrsh r1, [r4, r0] movs r2, 0x22 ldrsh r0, [r4, r2] subs r5, r1, r0 movs r1, 0x2E ldrsh r0, [r4, r1] muls r0, r6 movs r2, 0x34 ldrsh r1, [r4, r2] bl __divsi3 strh r0, [r4, 0x24] movs r1, 0x2E ldrsh r0, [r4, r1] muls r0, r5 movs r2, 0x34 ldrsh r1, [r4, r2] bl __divsi3 strh r0, [r4, 0x26] ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] lsls r0, 16 asrs r0, 16 movs r2, 0x36 ldrsh r1, [r4, r2] cmp r0, r1 bne _080D4D44 movs r0, 0 strh r0, [r4, 0x38] adds r0, r4, 0 adds r1, r6, 0 adds r2, r5, 0 bl sub_80D4D64 _080D4D44: movs r0, 0x34 ldrsh r1, [r4, r0] movs r2, 0x2E ldrsh r0, [r4, r2] cmp r1, r0 bne _080D4D56 adds r0, r4, 0 bl move_anim_8072740 _080D4D56: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80D4CEC thumb_func_start sub_80D4D64 sub_80D4D64: @ 80D4D64 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 adds r4, r1, 0 adds r5, r2, 0 movs r2, 0x2E ldrsh r1, [r0, r2] lsrs r2, r1, 31 adds r1, r2 lsls r1, 15 lsrs r1, 16 str r1, [sp] ldrh r1, [r0, 0x24] ldrh r3, [r0, 0x20] adds r1, r3 lsls r1, 16 lsrs r1, 16 mov r8, r1 ldrh r1, [r0, 0x26] ldrh r0, [r0, 0x22] adds r1, r0 lsls r1, 16 lsrs r1, 16 mov r10, r1 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 adds r0, r5, r0 subs r0, 0x5 lsls r0, 16 lsrs r0, 16 mov r9, r0 bl Random negs r4, r4 lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 adds r4, r0 subs r4, 0x5 lsls r4, 16 lsrs r7, r4, 16 movs r6, 0 mov r0, r8 lsls r0, 16 mov r8, r0 mov r1, r10 lsls r1, 16 str r1, [sp, 0xC] ldr r2, [sp] lsls r2, 16 str r2, [sp, 0x10] asrs r1, 16 lsls r0, r7, 16 asrs r5, r0, 16 str r0, [sp, 0x14] negs r3, r5 str r3, [sp, 0x4] asrs r0, r2, 16 adds r1, r0 lsls r1, 16 mov r10, r1 _080D4DF2: ldr r0, _080D4E34 @ =gSpriteTemplate_83D9420 mov r2, r8 asrs r1, r2, 16 mov r3, r10 asrs r2, r3, 16 movs r3, 0x82 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080D4E38 @ =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r4, r0, r1 movs r0, 0x14 strh r0, [r4, 0x2E] mov r0, r9 strh r0, [r4, 0x30] ldr r0, _080D4E3C @ =gUnknown_0202F7C8 ldrb r0, [r0] bl sub_8079E90 subs r0, 0x1 adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] cmp r5, 0 bge _080D4E40 mov r1, sp ldrh r1, [r1, 0x4] strh r1, [r4, 0x32] b _080D4E42 .align 2, 0 _080D4E34: .4byte gSpriteTemplate_83D9420 _080D4E38: .4byte gSprites _080D4E3C: .4byte gUnknown_0202F7C8 _080D4E40: strh r7, [r4, 0x32] _080D4E42: lsls r0, r6, 16 movs r2, 0x80 lsls r2, 9 adds r0, r2 lsrs r6, r0, 16 cmp r0, 0 ble _080D4DF2 movs r6, 0 ldr r3, [sp, 0xC] asrs r1, r3, 16 ldr r0, [sp, 0x14] asrs r5, r0, 16 negs r2, r5 str r2, [sp, 0x8] ldr r3, [sp, 0x10] asrs r0, r3, 16 subs r1, r0 lsls r1, 16 mov r10, r1 _080D4E68: ldr r0, _080D4EAC @ =gSpriteTemplate_83D9420 mov r2, r8 asrs r1, r2, 16 mov r3, r10 asrs r2, r3, 16 movs r3, 0x82 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080D4EB0 @ =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r4, r0, r1 movs r0, 0x14 strh r0, [r4, 0x2E] mov r0, r9 strh r0, [r4, 0x30] ldr r0, _080D4EB4 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl sub_8079E90 subs r0, 0x1 adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] cmp r5, 0 ble _080D4EB8 mov r1, sp ldrh r1, [r1, 0x8] strh r1, [r4, 0x32] b _080D4EBA .align 2, 0 _080D4EAC: .4byte gSpriteTemplate_83D9420 _080D4EB0: .4byte gSprites _080D4EB4: .4byte gUnknown_0202F7C8 _080D4EB8: strh r7, [r4, 0x32] _080D4EBA: lsls r0, r6, 16 movs r2, 0x80 lsls r2, 9 adds r0, r2 lsrs r6, r0, 16 cmp r0, 0 ble _080D4E68 add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80D4D64 thumb_func_start sub_80D4ED8 sub_80D4ED8: @ 80D4ED8 push {r4,lr} adds r4, r0, 0 ldr r0, _080D4F0C @ =gUnknown_03004B00 ldrh r0, [r0] strh r0, [r4, 0x2E] movs r0, 0x3C strh r0, [r4, 0x30] movs r0, 0x9 strh r0, [r4, 0x32] movs r0, 0x1E strh r0, [r4, 0x34] movs r0, 0xFE lsls r0, 8 strh r0, [r4, 0x36] ldr r1, _080D4F10 @ =move_anim_8072740 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r1, _080D4F14 @ =sub_8078174 str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4} pop {r0} bx r0 .align 2, 0 _080D4F0C: .4byte gUnknown_03004B00 _080D4F10: .4byte move_anim_8072740 _080D4F14: .4byte sub_8078174 thumb_func_end sub_80D4ED8 thumb_func_start sub_80D4F18 sub_80D4F18: @ 80D4F18 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080D4F50 @ =gUnknown_03004B00 movs r0, 0 ldrsh r1, [r5, r0] adds r0, r4, 0 bl sub_807867C ldrh r0, [r5, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldrh r0, [r5, 0x8] strh r0, [r4, 0x2E] ldrh r0, [r5, 0x4] strh r0, [r4, 0x30] ldrh r0, [r5, 0x6] strh r0, [r4, 0x32] ldr r0, _080D4F54 @ =sub_8078394 str r0, [r4, 0x1C] ldr r1, _080D4F58 @ =move_anim_8072740 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D4F50: .4byte gUnknown_03004B00 _080D4F54: .4byte sub_8078394 _080D4F58: .4byte move_anim_8072740 thumb_func_end sub_80D4F18 thumb_func_start sub_80D4F5C sub_80D4F5C: @ 80D4F5C push {r4,lr} adds r4, r0, 0 bl sub_8078650 ldr r0, _080D4F90 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D4F98 ldr r2, _080D4F94 @ =gUnknown_03004B00 ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 strh r0, [r4, 0x20] ldrh r0, [r2, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldrh r0, [r2, 0x8] negs r0, r0 strh r0, [r4, 0x32] adds r1, r2, 0 b _080D4FAE .align 2, 0 _080D4F90: .4byte gUnknown_0202F7C8 _080D4F94: .4byte gUnknown_03004B00 _080D4F98: ldr r1, _080D4FC4 @ =gUnknown_03004B00 ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] ldrh r0, [r1, 0x2] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] ldrh r0, [r1, 0x8] strh r0, [r4, 0x32] _080D4FAE: ldrh r0, [r1, 0x4] strh r0, [r4, 0x30] ldrh r0, [r1, 0x6] strh r0, [r4, 0x36] ldrh r0, [r1, 0xA] strh r0, [r4, 0x34] ldr r0, _080D4FC8 @ =sub_80D5038 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080D4FC4: .4byte gUnknown_03004B00 _080D4FC8: .4byte sub_80D5038 thumb_func_end sub_80D4F5C thumb_func_start sub_80D4FCC sub_80D4FCC: @ 80D4FCC push {r4,lr} adds r4, r0, 0 ldr r0, _080D4FF8 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D5000 ldr r2, _080D4FFC @ =gUnknown_03004B00 ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 strh r0, [r4, 0x20] ldrh r0, [r2, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldrh r0, [r2, 0x8] strh r0, [r4, 0x32] adds r1, r2, 0 b _080D5018 .align 2, 0 _080D4FF8: .4byte gUnknown_0202F7C8 _080D4FFC: .4byte gUnknown_03004B00 _080D5000: ldr r1, _080D5030 @ =gUnknown_03004B00 ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] ldrh r0, [r1, 0x2] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] ldrh r0, [r1, 0x8] negs r0, r0 strh r0, [r4, 0x32] _080D5018: ldrh r0, [r1, 0x4] strh r0, [r4, 0x30] ldrh r0, [r1, 0x6] strh r0, [r4, 0x36] ldrh r0, [r1, 0xA] strh r0, [r4, 0x34] ldr r0, _080D5034 @ =sub_80D5038 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080D5030: .4byte gUnknown_03004B00 _080D5034: .4byte sub_80D5038 thumb_func_end sub_80D4FCC thumb_func_start sub_80D5038 sub_80D5038: @ 80D5038 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] lsls r0, 16 asrs r0, 16 movs r3, 0x36 ldrsh r1, [r2, r3] cmp r0, r1 bge _080D505E ldrh r0, [r2, 0x32] ldrh r1, [r2, 0x24] adds r0, r1 strh r0, [r2, 0x24] ldrh r0, [r2, 0x34] ldrh r3, [r2, 0x26] adds r0, r3 strh r0, [r2, 0x26] _080D505E: movs r0, 0x2E ldrsh r1, [r2, r0] movs r3, 0x30 ldrsh r0, [r2, r3] cmp r1, r0 bne _080D5070 adds r0, r2, 0 bl move_anim_8074EE0 _080D5070: pop {r0} bx r0 thumb_func_end sub_80D5038 thumb_func_start sub_80D5074 sub_80D5074: @ 80D5074 push {r4,lr} adds r4, r0, 0 bl sub_8078650 ldr r0, _080D5098 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D50A0 ldr r0, _080D509C @ =gUnknown_03004B00 ldrh r1, [r4, 0x20] ldrh r2, [r0] subs r1, r2 strh r1, [r4, 0x20] b _080D50B2 .align 2, 0 _080D5098: .4byte gUnknown_0202F7C8 _080D509C: .4byte gUnknown_03004B00 _080D50A0: ldr r0, _080D50E0 @ =gUnknown_03004B00 ldrh r1, [r0] ldrh r2, [r4, 0x20] adds r1, r2 strh r1, [r4, 0x20] adds r2, r4, 0 adds r2, 0x43 movs r1, 0x8 strb r1, [r2] _080D50B2: adds r2, r0, 0 ldrh r0, [r2, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 movs r1, 0 strh r0, [r4, 0x22] ldrh r0, [r2, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r2, 0x6] strh r0, [r4, 0x30] ldrh r0, [r2, 0x8] strh r0, [r4, 0x32] ldrh r0, [r2, 0xA] strh r0, [r4, 0x34] ldrh r0, [r2, 0xC] strh r0, [r4, 0x36] strh r1, [r4, 0x38] ldr r0, _080D50E4 @ =sub_80D50E8 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080D50E0: .4byte gUnknown_03004B00 _080D50E4: .4byte sub_80D50E8 thumb_func_end sub_80D5074 thumb_func_start sub_80D50E8 sub_80D50E8: @ 80D50E8 push {r4,lr} adds r4, r0, 0 movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0 beq _080D5170 movs r2, 0x38 ldrsh r1, [r4, r2] ldr r0, _080D5154 @ =0x00002710 cmp r1, r0 ble _080D5106 adds r1, r4, 0 adds r1, 0x43 movs r0, 0x1 strb r0, [r1] _080D5106: movs r1, 0x2E ldrsh r0, [r4, r1] ldrh r1, [r4, 0x38] lsls r1, 16 asrs r1, 24 ldrh r2, [r4, 0x30] adds r1, r2 lsls r1, 16 asrs r1, 16 bl Sin strh r0, [r4, 0x24] movs r1, 0x2E ldrsh r0, [r4, r1] ldrh r1, [r4, 0x38] lsls r1, 16 asrs r1, 24 ldrh r2, [r4, 0x30] adds r1, r2 lsls r1, 16 asrs r1, 16 bl Cos strh r0, [r4, 0x26] ldrh r0, [r4, 0x32] ldrh r2, [r4, 0x2E] adds r1, r0, r2 strh r1, [r4, 0x2E] ldrh r0, [r4, 0x36] ldrh r2, [r4, 0x38] adds r0, r2 strh r0, [r4, 0x38] lsls r0, r1, 16 asrs r0, 16 cmp r0, 0xFF ble _080D515C ldr r2, _080D5158 @ =0xffffff00 b _080D5164 .align 2, 0 _080D5154: .4byte 0x00002710 _080D5158: .4byte 0xffffff00 _080D515C: cmp r0, 0 bge _080D5168 movs r2, 0x80 lsls r2, 1 _080D5164: adds r0, r1, r2 strh r0, [r4, 0x2E] _080D5168: ldrh r0, [r4, 0x34] subs r0, 0x1 strh r0, [r4, 0x34] b _080D5176 _080D5170: adds r0, r4, 0 bl move_anim_8074EE0 _080D5176: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D50E8 thumb_func_start sub_80D517C sub_80D517C: @ 80D517C push {lr} movs r1, 0 strh r1, [r0, 0x20] strh r1, [r0, 0x22] movs r1, 0x3C strh r1, [r0, 0x2E] movs r1, 0x8C strh r1, [r0, 0x32] movs r1, 0x50 strh r1, [r0, 0x36] ldr r1, _080D51A0 @ =sub_8078B34 str r1, [r0, 0x1C] ldr r1, _080D51A4 @ =move_anim_8072740 bl oamt_set_x3A_32 pop {r0} bx r0 .align 2, 0 _080D51A0: .4byte sub_8078B34 _080D51A4: .4byte move_anim_8072740 thumb_func_end sub_80D517C thumb_func_start sub_80D51A8 sub_80D51A8: @ 80D51A8 push {r4-r6,lr} adds r6, r0, 0 ldr r5, _080D5200 @ =gUnknown_0202F7C8 ldrb r0, [r5] bl battle_side_get_owner adds r4, r0, 0 ldr r0, _080D5204 @ =gUnknown_0202F7C9 ldrb r0, [r0] bl battle_side_get_owner lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _080D51EE movs r0, 0x2 bl battle_get_side_with_given_state ldrb r1, [r5] lsls r0, 24 lsrs r0, 24 cmp r1, r0 beq _080D51E6 movs r0, 0x3 bl battle_get_side_with_given_state ldrb r1, [r5] lsls r0, 24 lsrs r0, 24 cmp r1, r0 bne _080D51EE _080D51E6: ldr r1, _080D5208 @ =gUnknown_03004B00 ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080D51EE: ldr r1, _080D520C @ =sub_8079534 str r1, [r6, 0x1C] adds r0, r6, 0 bl _call_via_r1 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D5200: .4byte gUnknown_0202F7C8 _080D5204: .4byte gUnknown_0202F7C9 _080D5208: .4byte gUnknown_03004B00 _080D520C: .4byte sub_8079534 thumb_func_end sub_80D51A8 thumb_func_start sub_80D5210 sub_80D5210: @ 80D5210 ldr r2, _080D5224 @ =gUnknown_03004B00 ldrh r1, [r2] negs r1, r1 strh r1, [r2] ldrh r1, [r2, 0x4] negs r1, r1 strh r1, [r2, 0x4] ldr r1, _080D5228 @ =sub_8079534 str r1, [r0, 0x1C] bx lr .align 2, 0 _080D5224: .4byte gUnknown_03004B00 _080D5228: .4byte sub_8079534 thumb_func_end sub_80D5210 thumb_func_start sub_80D522C sub_80D522C: @ 80D522C push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r0, _080D524C @ =gUnknown_03004B00 ldrh r0, [r0, 0x4] movs r1, 0 strh r0, [r4, 0x3C] strh r1, [r4, 0x2E] ldr r0, _080D5250 @ =sub_80D5254 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080D524C: .4byte gUnknown_03004B00 _080D5250: .4byte sub_80D5254 thumb_func_end sub_80D522C thumb_func_start sub_80D5254 sub_80D5254: @ 80D5254 push {r4,r5,lr} adds r5, r0, 0 bl sub_80D5348 ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x12 bne _080D529E movs r0, 0x19 strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] ldr r4, _080D52A4 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrh r0, [r5, 0x22] strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] adds r0, r5, 0 bl obj_translate_based_on_private_1_2_3_4 ldr r0, _080D52A8 @ =sub_80D52AC str r0, [r5, 0x1C] _080D529E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D52A4: .4byte gUnknown_0202F7C9 _080D52A8: .4byte sub_80D52AC thumb_func_end sub_80D5254 thumb_func_start sub_80D52AC sub_80D52AC: @ 80D52AC push {r4-r6,lr} adds r6, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 beq _080D52F4 movs r4, 0 strh r4, [r6, 0x2E] ldr r5, _080D52EC @ =gUnknown_0202F7C9 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x20] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x22] strh r4, [r6, 0x26] strh r4, [r6, 0x24] ldr r1, _080D52F0 @ =sub_80D5324 str r1, [r6, 0x1C] adds r0, r6, 0 bl _call_via_r1 b _080D531E .align 2, 0 _080D52EC: .4byte gUnknown_0202F7C9 _080D52F0: .4byte sub_80D5324 _080D52F4: movs r1, 0x3C ldrsh r0, [r6, r1] movs r1, 0x1C bl Sin ldrh r1, [r6, 0x24] adds r0, r1 strh r0, [r6, 0x24] movs r1, 0x3C ldrsh r0, [r6, r1] movs r1, 0x1C bl Cos ldrh r1, [r6, 0x26] adds r0, r1 strh r0, [r6, 0x26] ldrh r0, [r6, 0x3C] adds r0, 0x14 movs r1, 0xFF ands r0, r1 strh r0, [r6, 0x3C] _080D531E: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80D52AC thumb_func_start sub_80D5324 sub_80D5324: @ 80D5324 push {r4,lr} adds r4, r0, 0 bl sub_80D5348 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x1F bne _080D5340 adds r0, r4, 0 bl move_anim_8072740 _080D5340: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D5324 thumb_func_start sub_80D5348 sub_80D5348: @ 80D5348 push {r4,lr} adds r4, r0, 0 movs r1, 0x3C ldrsh r0, [r4, r1] movs r1, 0x1C bl Sin strh r0, [r4, 0x24] movs r1, 0x3C ldrsh r0, [r4, r1] movs r1, 0x1C bl Cos strh r0, [r4, 0x26] ldrh r0, [r4, 0x3C] adds r0, 0x14 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x3C] pop {r4} pop {r0} bx r0 thumb_func_end sub_80D5348 thumb_func_start sub_80D5374 sub_80D5374: @ 80D5374 push {r4,lr} adds r4, r0, 0 ldr r1, _080D53A8 @ =gUnknown_03004B00 ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] ldrh r0, [r1, 0x2] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] ldrh r0, [r1, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x6] strh r0, [r4, 0x30] ldrh r0, [r1, 0x8] strh r0, [r4, 0x32] ldr r1, _080D53AC @ =move_anim_8072740 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080D53B0 @ =sub_8078364 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080D53A8: .4byte gUnknown_03004B00 _080D53AC: .4byte move_anim_8072740 _080D53B0: .4byte sub_8078364 thumb_func_end sub_80D5374 thumb_func_start sub_80D53B4 sub_80D53B4: @ 80D53B4 push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r1, _080D53E8 @ =gUnknown_03004B00 ldrh r0, [r1, 0x4] strh r0, [r4, 0x30] ldrh r0, [r1, 0x6] strh r0, [r4, 0x2E] adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _080D53EC @ =sub_80782D8 str r0, [r4, 0x1C] ldr r1, _080D53F0 @ =sub_80D53F4 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4} pop {r0} bx r0 .align 2, 0 _080D53E8: .4byte gUnknown_03004B00 _080D53EC: .4byte sub_80782D8 _080D53F0: .4byte sub_80D53F4 thumb_func_end sub_80D53B4 thumb_func_start sub_80D53F4 sub_80D53F4: @ 80D53F4 push {lr} adds r3, r0, 0 adds r3, 0x3E ldrb r2, [r3] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r3] ldrh r1, [r0, 0x30] movs r2, 0 strh r1, [r0, 0x2E] strh r2, [r0, 0x30] ldr r1, _080D5418 @ =sub_80D541C str r1, [r0, 0x1C] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _080D5418: .4byte sub_80D541C thumb_func_end sub_80D53F4 thumb_func_start sub_80D541C sub_80D541C: @ 80D541C push {r4,lr} adds r4, r0, 0 movs r1, 0x30 ldrsh r0, [r4, r1] ldrh r1, [r4, 0x32] lsls r1, 16 asrs r1, 24 bl Sin strh r0, [r4, 0x24] movs r1, 0x30 ldrsh r0, [r4, r1] ldrh r1, [r4, 0x32] lsls r1, 16 asrs r1, 24 bl Cos strh r0, [r4, 0x26] ldrh r0, [r4, 0x30] adds r0, 0xA movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x30] ldrh r0, [r4, 0x32] adds r0, 0xD0 strh r0, [r4, 0x32] ldrh r0, [r4, 0x2E] subs r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080D5468 adds r0, r4, 0 bl move_anim_8072740 _080D5468: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D541C thumb_func_start sub_80D5470 sub_80D5470: @ 80D5470 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _080D54D0 @ =gTasks adds r4, r0 movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 movs r5, 0 strh r0, [r4, 0x26] strh r5, [r4, 0x8] strh r5, [r4, 0xA] strh r5, [r4, 0xC] strh r5, [r4, 0xE] ldr r2, _080D54D4 @ =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x22] strh r0, [r4, 0x10] ldr r0, _080D54D8 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x12] strh r5, [r4, 0x14] ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_8078E70 ldr r0, _080D54DC @ =sub_80D54E0 str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D54D0: .4byte gTasks _080D54D4: .4byte gSprites _080D54D8: .4byte gUnknown_0202F7C8 _080D54DC: .4byte sub_80D54E0 thumb_func_end sub_80D5470 thumb_func_start sub_80D54E0 sub_80D54E0: @ 80D54E0 push {r4,r5,lr} sub sp, 0xC lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080D5508 @ =gTasks adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x6 bls _080D54FC b _080D57BA _080D54FC: lsls r0, 2 ldr r1, _080D550C @ =_080D5510 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080D5508: .4byte gTasks _080D550C: .4byte _080D5510 .align 2, 0 _080D5510: .4byte _080D552C .4byte _080D5552 .4byte _080D5604 .4byte _080D5664 .4byte _080D5682 .4byte _080D5758 .4byte _080D57AC _080D552C: ldrh r1, [r4, 0x26] lsls r1, 24 lsrs r1, 24 movs r3, 0x80 lsls r3, 1 movs r0, 0xE0 str r0, [sp] movs r0, 0x80 lsls r0, 2 str r0, [sp, 0x4] movs r0, 0x20 str r0, [sp, 0x8] adds r0, r4, 0 adds r2, r3, 0 bl sub_8079C08 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080D5552: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D559A movs r0, 0 strh r0, [r4, 0xA] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080D5588 ldr r2, _080D5584 @ =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x3 b _080D5598 .align 2, 0 _080D5584: .4byte gSprites _080D5588: ldr r2, _080D55FC @ =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _080D5600 @ =0x0000fffd _080D5598: strh r1, [r0, 0x24] _080D559A: movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0 beq _080D55C8 ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 ble _080D55C8 movs r0, 0 strh r0, [r4, 0xE] ldr r2, _080D55FC @ =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x22] adds r1, 0x1 strh r1, [r0, 0x22] _080D55C8: adds r0, r4, 0 bl sub_8079C74 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 beq _080D55D8 b _080D57BA _080D55D8: ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 bl sub_8079A64 ldr r2, _080D55FC @ =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r5, [r0, 0x24] strh r5, [r4, 0xA] strh r5, [r4, 0xC] strh r5, [r4, 0xE] b _080D57A0 .align 2, 0 _080D55FC: .4byte gSprites _080D5600: .4byte 0x0000fffd _080D5604: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bgt _080D5614 b _080D57BA _080D5614: movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0 beq _080D563E ldrh r1, [r4, 0x26] lsls r1, 24 lsrs r1, 24 movs r3, 0x80 lsls r3, 2 movs r0, 0xC0 lsls r0, 1 str r0, [sp] movs r0, 0xF0 str r0, [sp, 0x4] movs r0, 0x6 str r0, [sp, 0x8] adds r0, r4, 0 movs r2, 0xE0 bl sub_8079C08 b _080D565E _080D563E: ldrh r1, [r4, 0x26] lsls r1, 24 lsrs r1, 24 movs r3, 0x80 lsls r3, 2 movs r0, 0xC0 lsls r0, 1 str r0, [sp] movs r0, 0xC0 str r0, [sp, 0x4] movs r0, 0x6 str r0, [sp, 0x8] adds r0, r4, 0 movs r2, 0xE0 bl sub_8079C08 _080D565E: movs r0, 0 strh r0, [r4, 0xA] b _080D57A0 _080D5664: adds r0, r4, 0 bl sub_8079C74 lsls r0, 24 cmp r0, 0 beq _080D5672 b _080D57BA _080D5672: ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 adds r1, r5, 0 movs r2, 0x6 bl sub_80D57C4 b _080D57A0 _080D5682: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D56D0 movs r0, 0 strh r0, [r4, 0xA] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080D56BC ldr r2, _080D56B8 @ =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x26] adds r1, 0x3 b _080D56CE .align 2, 0 _080D56B8: .4byte gSprites _080D56BC: ldr r2, _080D5708 @ =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x26] subs r1, 0x3 _080D56CE: strh r1, [r0, 0x26] _080D56D0: ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x18 ble _080D57BA movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0 beq _080D570C ldrh r1, [r4, 0x26] lsls r1, 24 lsrs r1, 24 movs r2, 0xC0 lsls r2, 1 movs r0, 0x80 lsls r0, 1 str r0, [sp] str r0, [sp, 0x4] movs r0, 0x8 str r0, [sp, 0x8] adds r0, r4, 0 movs r3, 0xF0 bl sub_8079C08 b _080D572A .align 2, 0 _080D5708: .4byte gSprites _080D570C: ldrh r1, [r4, 0x26] lsls r1, 24 lsrs r1, 24 movs r2, 0xC0 lsls r2, 1 movs r0, 0x80 lsls r0, 1 str r0, [sp] str r0, [sp, 0x4] movs r0, 0x8 str r0, [sp, 0x8] adds r0, r4, 0 movs r3, 0xC0 bl sub_8079C08 _080D572A: ldrh r1, [r4, 0xC] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080D5748 ldr r2, _080D5754 @ =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x26] subs r1, 0x3 strh r1, [r0, 0x26] _080D5748: movs r0, 0 strh r0, [r4, 0xA] strh r0, [r4, 0xC] strh r0, [r4, 0xE] b _080D57A0 .align 2, 0 _080D5754: .4byte gSprites _080D5758: movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0 beq _080D5774 ldr r2, _080D57A8 @ =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x22] subs r1, 0x1 strh r1, [r0, 0x22] _080D5774: adds r0, r4, 0 bl sub_8079C74 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _080D57BA ldr r2, _080D57A8 @ =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r4, 0x10] strh r1, [r0, 0x22] ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 bl sub_8078F40 strh r5, [r4, 0xC] _080D57A0: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080D57BA .align 2, 0 _080D57A8: .4byte gSprites _080D57AC: movs r1, 0x14 ldrsh r0, [r4, r1] cmp r0, 0 bne _080D57BA adds r0, r5, 0 bl move_anim_task_del _080D57BA: add sp, 0xC pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80D54E0 thumb_func_start sub_80D57C4 sub_80D57C4: @ 80D57C4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r2, 24 mov r8, r2 adds r0, r4, 0 bl sub_80D5940 lsls r0, 16 lsrs r0, 16 mov r9, r0 ldr r1, _080D5814 @ =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r0, r1 ldrh r4, [r0, 0x20] ldr r0, _080D5818 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D581C adds r0, r4, 0 subs r0, 0xC lsls r0, 16 lsrs r4, r0, 16 movs r0, 0x1 b _080D5826 .align 2, 0 _080D5814: .4byte gSprites _080D5818: .4byte gUnknown_0202F7C8 _080D581C: adds r0, r4, 0 adds r0, 0x10 lsls r0, 16 lsrs r4, r0, 16 movs r0, 0xFF _080D5826: movs r6, 0 movs r5, 0 lsls r4, 16 str r4, [sp, 0x8] mov r1, r9 lsls r1, 16 str r1, [sp, 0x4] ldr r2, _080D58E0 @ =gUnknown_083D96DC mov r9, r2 lsls r0, 24 asrs r0, 24 str r0, [sp] mov r3, r8 lsls r3, 1 mov r10, r3 _080D5844: ldr r0, _080D58E4 @ =gSpriteTemplate_83D96C4 ldr r2, [sp, 0x8] asrs r1, r2, 16 ldr r3, [sp, 0x4] asrs r2, r3, 16 movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _080D58C6 ldr r1, _080D58E8 @ =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r4, r0, r1 ldrh r2, [r4, 0x4] lsls r1, r2, 22 lsrs r1, 22 lsls r0, r5, 2 adds r0, 0x40 adds r1, r0 ldr r3, _080D58EC @ =0x000003ff adds r0, r3, 0 ands r1, r0 ldr r3, _080D58F0 @ =0xfffffc00 adds r0, r3, 0 ands r2, r0 orrs r2, r1 strh r2, [r4, 0x4] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x4 bls _080D588E movs r5, 0 _080D588E: lsls r2, r6, 2 mov r1, r9 adds r0, r2, r1 ldrh r0, [r0] ldr r3, [sp] adds r1, r0, 0 muls r1, r3 lsls r1, 16 asrs r1, 16 ldr r0, _080D58F4 @ =gUnknown_083D96DC + 0x2 adds r2, r0 movs r3, 0 ldrsh r2, [r2, r3] adds r0, r4, 0 bl sub_80D5994 strh r7, [r4, 0x3A] mov r0, r8 strh r0, [r4, 0x3C] lsls r0, r7, 2 adds r0, r7 lsls r0, 3 add r0, r10 ldr r1, _080D58F8 @ =gTasks + 0x8 adds r0, r1 ldrh r1, [r0] adds r1, 0x1 strh r1, [r0] _080D58C6: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x6 bls _080D5844 add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D58E0: .4byte gUnknown_083D96DC _080D58E4: .4byte gSpriteTemplate_83D96C4 _080D58E8: .4byte gSprites _080D58EC: .4byte 0x000003ff _080D58F0: .4byte 0xfffffc00 _080D58F4: .4byte gUnknown_083D96DC + 0x2 _080D58F8: .4byte gTasks + 0x8 thumb_func_end sub_80D57C4 thumb_func_start sub_80D58FC sub_80D58FC: @ 80D58FC push {r4,lr} adds r4, r0, 0 bl sub_80D59B0 adds r0, r4, 0 adds r0, 0x3E ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080D5936 ldr r3, _080D593C @ =gTasks movs r0, 0x3C ldrsh r1, [r4, r0] lsls r1, 1 movs r0, 0x3A ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] adds r0, r4, 0 bl DestroySprite _080D5936: pop {r4} pop {r0} bx r0 .align 2, 0 _080D593C: .4byte gTasks thumb_func_end sub_80D58FC thumb_func_start sub_80D5940 sub_80D5940: @ 80D5940 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080D5978 @ =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrh r2, [r1, 0x26] ldrh r0, [r1, 0x22] adds r2, r0 adds r1, 0x29 movs r0, 0 ldrsb r0, [r1, r0] adds r0, r2 lsls r0, 16 lsrs r4, r0, 16 ldr r0, _080D597C @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D5980 lsls r0, r4, 16 movs r1, 0x94 lsls r1, 15 b _080D5986 .align 2, 0 _080D5978: .4byte gSprites _080D597C: .4byte gUnknown_0202F7C8 _080D5980: lsls r0, r4, 16 movs r1, 0xB0 lsls r1, 14 _080D5986: adds r0, r1 lsrs r4, r0, 16 adds r0, r4, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_80D5940 thumb_func_start sub_80D5994 sub_80D5994: @ 80D5994 movs r3, 0 strh r3, [r0, 0x2E] strh r3, [r0, 0x30] ldrh r3, [r0, 0x20] lsls r3, 3 strh r3, [r0, 0x32] ldrh r3, [r0, 0x22] lsls r3, 3 strh r3, [r0, 0x34] lsls r1, 3 strh r1, [r0, 0x36] lsls r2, 3 strh r2, [r0, 0x38] bx lr thumb_func_end sub_80D5994 thumb_func_start sub_80D59B0 sub_80D59B0: @ 80D59B0 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _080D59DA movs r0, 0 strh r0, [r2, 0x2E] ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] ldrh r0, [r2, 0x30] adds r1, r0, 0 muls r1, r0 adds r0, r1, 0 ldrh r3, [r2, 0x34] adds r0, r3 strh r0, [r2, 0x34] _080D59DA: ldrh r0, [r2, 0x36] ldrh r1, [r2, 0x32] adds r0, r1 strh r0, [r2, 0x32] lsls r0, 16 asrs r0, 19 strh r0, [r2, 0x20] ldrh r1, [r2, 0x38] ldrh r3, [r2, 0x34] adds r1, r3 strh r1, [r2, 0x34] lsls r1, 16 asrs r3, r1, 19 strh r3, [r2, 0x22] adds r0, 0x8 lsls r0, 16 movs r1, 0x80 lsls r1, 17 cmp r0, r1 bhi _080D5A10 adds r1, r3, 0 movs r0, 0x8 negs r0, r0 cmp r1, r0 blt _080D5A10 cmp r1, 0x78 ble _080D5A1C _080D5A10: adds r0, r2, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _080D5A1C: pop {r0} bx r0 thumb_func_end sub_80D59B0 thumb_func_start sub_80D5A20 sub_80D5A20: @ 80D5A20 push {r4,r5,lr} ldr r3, _080D5A64 @ =gUnknown_03004B00 ldrh r1, [r3] movs r2, 0 strh r1, [r0, 0x20] ldrh r1, [r3, 0x2] strh r1, [r0, 0x22] strh r2, [r0, 0x2E] strh r2, [r0, 0x30] strh r2, [r0, 0x32] ldrh r1, [r3, 0x4] strh r1, [r0, 0x3A] ldrh r1, [r3, 0x6] strh r1, [r0, 0x3C] ldrh r4, [r0, 0x4] lsls r2, r4, 22 lsrs r2, 22 movs r5, 0x8 ldrsh r1, [r3, r5] lsls r1, 4 adds r2, r1 ldr r3, _080D5A68 @ =0x000003ff adds r1, r3, 0 ands r2, r1 ldr r1, _080D5A6C @ =0xfffffc00 ands r1, r4 orrs r1, r2 strh r1, [r0, 0x4] ldr r1, _080D5A70 @ =sub_80D5A74 str r1, [r0, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D5A64: .4byte gUnknown_03004B00 _080D5A68: .4byte 0x000003ff _080D5A6C: .4byte 0xfffffc00 _080D5A70: .4byte sub_80D5A74 thumb_func_end sub_80D5A20 thumb_func_start sub_80D5A74 sub_80D5A74: @ 80D5A74 push {r4,lr} adds r2, r0, 0 movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0x1 beq _080D5AA6 cmp r0, 0x1 bgt _080D5A8A cmp r0, 0 beq _080D5A90 b _080D5B04 _080D5A8A: cmp r0, 0x2 beq _080D5AC4 b _080D5B04 _080D5A90: ldrh r1, [r2, 0x3A] movs r3, 0x3A ldrsh r0, [r2, r3] cmp r0, 0 beq _080D5AA0 subs r0, r1, 0x1 strh r0, [r2, 0x3A] b _080D5B04 _080D5AA0: ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] _080D5AA6: ldrh r0, [r2, 0x22] adds r0, 0x8 strh r0, [r2, 0x22] lsls r0, 16 asrs r0, 16 ldrh r3, [r2, 0x3C] movs r4, 0x3C ldrsh r1, [r2, r4] cmp r0, r1 blt _080D5B04 strh r3, [r2, 0x22] ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] b _080D5B04 _080D5AC4: ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D5AF0 movs r0, 0 strh r0, [r2, 0x30] ldrh r0, [r2, 0x32] adds r0, 0x1 strh r0, [r2, 0x32] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080D5AEC ldr r0, _080D5AE8 @ =0x0000fffd b _080D5AEE .align 2, 0 _080D5AE8: .4byte 0x0000fffd _080D5AEC: movs r0, 0x3 _080D5AEE: strh r0, [r2, 0x26] _080D5AF0: ldrh r0, [r2, 0x34] adds r0, 0x1 strh r0, [r2, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 ble _080D5B04 adds r0, r2, 0 bl move_anim_8072740 _080D5B04: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D5A74 thumb_func_start sub_80D5B0C sub_80D5B0C: @ 80D5B0C push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0x1 beq _080D5B80 cmp r0, 0x1 bgt _080D5B22 cmp r0, 0 beq _080D5B28 b _080D5C4E _080D5B22: cmp r0, 0x2 beq _080D5BDE b _080D5C4E _080D5B28: adds r0, r5, 0 movs r1, 0 bl sub_80787B0 ldr r4, _080D5B50 @ =gUnknown_03004B00 ldrb r1, [r4, 0x4] adds r0, r5, 0 bl StartSpriteAnim ldrh r0, [r4, 0x4] strh r0, [r5, 0x3C] ldr r0, _080D5B54 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D5B58 movs r0, 0x4 b _080D5B5A .align 2, 0 _080D5B50: .4byte gUnknown_03004B00 _080D5B54: .4byte gUnknown_0202F7C8 _080D5B58: ldr r0, _080D5B78 @ =0x0000fffc _080D5B5A: strh r0, [r5, 0x36] ldr r0, _080D5B7C @ =gUnknown_0202F7C9 ldrb r0, [r0] bl sub_8079ED4 movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r5, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] b _080D5BD6 .align 2, 0 _080D5B78: .4byte 0x0000fffc _080D5B7C: .4byte gUnknown_0202F7C9 _080D5B80: ldrh r0, [r5, 0x30] adds r0, 0xC0 strh r0, [r5, 0x30] ldr r0, _080D5BA0 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D5BA4 ldrh r0, [r5, 0x30] lsls r0, 16 asrs r0, 24 negs r0, r0 b _080D5BAA .align 2, 0 _080D5BA0: .4byte gUnknown_0202F7C8 _080D5BA4: ldrh r0, [r5, 0x30] lsls r0, 16 asrs r0, 24 _080D5BAA: strh r0, [r5, 0x26] movs r2, 0x32 ldrsh r0, [r5, r2] movs r2, 0x36 ldrsh r1, [r5, r2] bl Sin strh r0, [r5, 0x24] ldrh r0, [r5, 0x32] adds r0, 0x4 movs r1, 0xFF ands r0, r1 strh r0, [r5, 0x32] ldrh r0, [r5, 0x34] adds r0, 0x1 strh r0, [r5, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bne _080D5C4E movs r0, 0 strh r0, [r5, 0x34] _080D5BD6: ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] b _080D5C4E _080D5BDE: movs r1, 0x32 ldrsh r0, [r5, r1] movs r2, 0x36 ldrsh r1, [r5, r2] bl Sin adds r2, r0, 0 movs r3, 0 strh r2, [r5, 0x24] ldrh r0, [r5, 0x32] adds r0, 0x4 movs r1, 0xFF ands r0, r1 strh r0, [r5, 0x32] ldrh r0, [r5, 0x34] adds r0, 0x1 strh r0, [r5, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x1F bne _080D5C4E ldrh r0, [r5, 0x20] adds r1, r2, r0 strh r1, [r5, 0x20] ldrh r0, [r5, 0x26] ldrh r2, [r5, 0x22] adds r0, r2 strh r0, [r5, 0x22] strh r3, [r5, 0x26] strh r3, [r5, 0x24] movs r0, 0x80 lsls r0, 1 strh r0, [r5, 0x2E] strh r1, [r5, 0x30] ldr r4, _080D5C54 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrh r0, [r5, 0x22] strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] adds r0, r5, 0 bl sub_8078BD4 ldr r0, _080D5C58 @ =sub_80D5C5C str r0, [r5, 0x1C] _080D5C4E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D5C54: .4byte gUnknown_0202F7C9 _080D5C58: .4byte sub_80D5C5C thumb_func_end sub_80D5B0C thumb_func_start sub_80D5C5C sub_80D5C5C: @ 80D5C5C push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 bne _080D5CB4 movs r1, 0x38 ldrsh r0, [r4, r1] movs r1, 0x10 bl Sin ldrh r1, [r4, 0x24] adds r0, r1 strh r0, [r4, 0x24] ldrh r2, [r4, 0x38] adds r0, r2, 0x4 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] ldrh r0, [r4, 0x38] lsls r2, 16 asrs r2, 16 cmp r2, 0 beq _080D5C92 cmp r2, 0xC4 ble _080D5CBA _080D5C92: lsls r0, 16 cmp r0, 0 ble _080D5CBA movs r1, 0x3C ldrsh r0, [r4, r1] cmp r0, 0 bne _080D5CBA ldr r0, _080D5CB0 @ =gUnknown_0202F7D2 movs r1, 0 ldrsb r1, [r0, r1] movs r0, 0x90 bl PlaySE12WithPanning b _080D5CBA .align 2, 0 _080D5CB0: .4byte gUnknown_0202F7D2 _080D5CB4: adds r0, r4, 0 bl move_anim_8072740 _080D5CBA: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D5C5C thumb_func_start sub_80D5CC0 sub_80D5CC0: @ 80D5CC0 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x2E] movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0 bne _080D5CD8 ldr r0, _080D5D4C @ =gUnknown_03004B00 ldrh r0, [r0] strh r0, [r4, 0x30] adds r0, r1, 0x1 strh r0, [r4, 0x2E] _080D5CD8: movs r0, 0xC0 lsls r0, 1 adds r1, r0, 0 ldrh r2, [r4, 0x34] adds r1, r2 strh r1, [r4, 0x34] ldrh r0, [r4, 0x36] adds r0, 0xA0 strh r0, [r4, 0x36] movs r2, 0x30 ldrsh r0, [r4, r2] lsls r1, 16 asrs r1, 24 bl Sin strh r0, [r4, 0x24] movs r1, 0x30 ldrsh r0, [r4, r1] ldrh r1, [r4, 0x36] lsls r1, 16 asrs r1, 24 bl Cos strh r0, [r4, 0x26] ldrh r0, [r4, 0x30] adds r2, r0, 0x7 movs r0, 0xFF ands r2, r0 strh r2, [r4, 0x30] ldr r0, _080D5D50 @ =gMain ldr r1, _080D5D54 @ =0x0000043d adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080D5D84 adds r0, r2, 0 subs r0, 0x40 lsls r0, 16 lsrs r0, 16 cmp r0, 0x83 bls _080D5D5C ldr r0, _080D5D58 @ =gUnknown_0202F7C9 ldrb r0, [r0] bl sub_8079ED4 movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x5] b _080D5DA0 .align 2, 0 _080D5D4C: .4byte gUnknown_03004B00 _080D5D50: .4byte gMain _080D5D54: .4byte 0x0000043d _080D5D58: .4byte gUnknown_0202F7C9 _080D5D5C: ldr r0, _080D5D80 @ =gUnknown_0202F7C9 ldrb r0, [r0] bl sub_8079ED4 lsls r0, 24 lsrs r0, 24 adds r0, 0x1 movs r1, 0x3 ands r0, r1 lsls r0, 2 ldrb r2, [r4, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r4, 0x5] b _080D5DA0 .align 2, 0 _080D5D80: .4byte gUnknown_0202F7C9 _080D5D84: adds r0, r2, 0 subs r0, 0x40 lsls r0, 16 lsrs r0, 16 cmp r0, 0x83 bls _080D5D98 adds r1, r4, 0 adds r1, 0x43 movs r0, 0x1D b _080D5D9E _080D5D98: adds r1, r4, 0 adds r1, 0x43 movs r0, 0x1F _080D5D9E: strb r0, [r1] _080D5DA0: ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 ble _080D5DC8 adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _080D5DC8: movs r2, 0x32 ldrsh r0, [r4, r2] cmp r0, 0x1E bne _080D5DD6 adds r0, r4, 0 bl move_anim_8072740 _080D5DD6: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D5CC0 thumb_func_start sub_80D5DDC sub_80D5DDC: @ 80D5DDC push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080D5E3C @ =gTasks adds r4, r1, r0 ldr r0, _080D5E40 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 movs r2, 0x1 negs r2, r2 adds r1, r2, 0 cmp r0, 0 bne _080D5E02 movs r1, 0x1 _080D5E02: strh r1, [r4, 0x20] ldr r0, _080D5E44 @ =gUnknown_0202F7C9 ldrb r1, [r0] movs r0, 0x2 eors r0, r1 bl b_side_obj__get_some_boolean lsls r0, 24 lsrs r0, 24 adds r0, 0x1 strh r0, [r4, 0x22] movs r0, 0x1 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x24] movs r0, 0x3 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] ldr r0, _080D5E48 @ =sub_80D5E4C str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080D5E3C: .4byte gTasks _080D5E40: .4byte gUnknown_0202F7C8 _080D5E44: .4byte gUnknown_0202F7C9 _080D5E48: .4byte sub_80D5E4C thumb_func_end sub_80D5DDC thumb_func_start sub_80D5E4C sub_80D5E4C: @ 80D5E4C push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080D5E70 @ =gTasks adds r2, r0, r1 movs r0, 0x8 ldrsh r3, [r2, r0] cmp r3, 0x1 beq _080D5F14 cmp r3, 0x1 bgt _080D5E74 cmp r3, 0 beq _080D5E82 b _080D6074 .align 2, 0 _080D5E70: .4byte gTasks _080D5E74: cmp r3, 0x2 bne _080D5E7A b _080D5F9C _080D5E7A: cmp r3, 0x3 bne _080D5E80 b _080D6030 _080D5E80: b _080D6074 _080D5E82: movs r1, 0x20 ldrsh r0, [r2, r1] lsls r0, 1 ldrh r5, [r2, 0x1C] adds r0, r5 strh r0, [r2, 0x1C] ldrh r0, [r2, 0xA] adds r0, 0x1 strh r0, [r2, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D5EB4 strh r3, [r2, 0xA] ldrh r0, [r2, 0xC] adds r0, 0x1 strh r0, [r2, 0xC] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080D5EB0 movs r0, 0x2 b _080D5EB2 _080D5EB0: ldr r0, _080D5F0C @ =0x0000fffe _080D5EB2: strh r0, [r2, 0x1E] _080D5EB4: movs r1, 0 strh r1, [r2, 0xE] movs r7, 0x22 ldrsh r0, [r2, r7] cmp r1, r0 bge _080D5EF6 ldr r4, _080D5F10 @ =gSprites adds r3, r2, 0 adds r3, 0x8 _080D5EC6: movs r1, 0xE ldrsh r0, [r2, r1] adds r0, 0xE lsls r0, 1 adds r0, r3, r0 movs r5, 0 ldrsh r0, [r0, r5] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrh r0, [r2, 0x1E] ldrh r7, [r2, 0x1C] adds r0, r7 strh r0, [r1, 0x24] ldrh r0, [r2, 0xE] adds r0, 0x1 strh r0, [r2, 0xE] lsls r0, 16 asrs r0, 16 movs r5, 0x22 ldrsh r1, [r2, r5] cmp r0, r1 blt _080D5EC6 _080D5EF6: ldrh r0, [r2, 0x1A] adds r0, 0x1 strh r0, [r2, 0x1A] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 beq _080D5F06 b _080D6074 _080D5F06: movs r0, 0 strh r0, [r2, 0x1A] b _080D6020 .align 2, 0 _080D5F0C: .4byte 0x0000fffe _080D5F10: .4byte gSprites _080D5F14: ldrh r0, [r2, 0xA] adds r0, 0x1 strh r0, [r2, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 ble _080D5F3C movs r0, 0 strh r0, [r2, 0xA] ldrh r0, [r2, 0xC] adds r0, 0x1 strh r0, [r2, 0xC] ands r0, r3 lsls r0, 16 cmp r0, 0 beq _080D5F38 movs r0, 0x2 b _080D5F3A _080D5F38: ldr r0, _080D5F94 @ =0x0000fffe _080D5F3A: strh r0, [r2, 0x1E] _080D5F3C: movs r1, 0 strh r1, [r2, 0xE] movs r7, 0x22 ldrsh r0, [r2, r7] cmp r1, r0 bge _080D5F7E ldr r4, _080D5F98 @ =gSprites adds r3, r2, 0 adds r3, 0x8 _080D5F4E: movs r1, 0xE ldrsh r0, [r2, r1] adds r0, 0xE lsls r0, 1 adds r0, r3, r0 movs r5, 0 ldrsh r0, [r0, r5] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrh r0, [r2, 0x1E] ldrh r7, [r2, 0x1C] adds r0, r7 strh r0, [r1, 0x24] ldrh r0, [r2, 0xE] adds r0, 0x1 strh r0, [r2, 0xE] lsls r0, 16 asrs r0, 16 movs r5, 0x22 ldrsh r1, [r2, r5] cmp r0, r1 blt _080D5F4E _080D5F7E: ldrh r0, [r2, 0x1A] adds r0, 0x1 strh r0, [r2, 0x1A] lsls r0, 16 asrs r0, 16 cmp r0, 0x60 bne _080D6074 movs r0, 0 strh r0, [r2, 0x1A] b _080D6020 .align 2, 0 _080D5F94: .4byte 0x0000fffe _080D5F98: .4byte gSprites _080D5F9C: movs r7, 0x20 ldrsh r1, [r2, r7] lsls r1, 1 ldrh r0, [r2, 0x1C] subs r0, r1 strh r0, [r2, 0x1C] ldrh r0, [r2, 0xA] adds r0, 0x1 strh r0, [r2, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D5FD0 movs r0, 0 strh r0, [r2, 0xA] ldrh r0, [r2, 0xC] adds r0, 0x1 strh r0, [r2, 0xC] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080D5FCC strh r3, [r2, 0x1E] b _080D5FD0 _080D5FCC: ldr r0, _080D6028 @ =0x0000fffe strh r0, [r2, 0x1E] _080D5FD0: movs r1, 0 strh r1, [r2, 0xE] movs r3, 0x22 ldrsh r0, [r2, r3] cmp r1, r0 bge _080D6012 ldr r4, _080D602C @ =gSprites adds r3, r2, 0 adds r3, 0x8 _080D5FE2: movs r5, 0xE ldrsh r0, [r2, r5] adds r0, 0xE lsls r0, 1 adds r0, r3, r0 movs r7, 0 ldrsh r0, [r0, r7] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrh r0, [r2, 0x1E] ldrh r5, [r2, 0x1C] adds r0, r5 strh r0, [r1, 0x24] ldrh r0, [r2, 0xE] adds r0, 0x1 strh r0, [r2, 0xE] lsls r0, 16 asrs r0, 16 movs r7, 0x22 ldrsh r1, [r2, r7] cmp r0, r1 blt _080D5FE2 _080D6012: ldrh r0, [r2, 0x1A] adds r0, 0x1 strh r0, [r2, 0x1A] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 bne _080D6074 _080D6020: ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] b _080D6074 .align 2, 0 _080D6028: .4byte 0x0000fffe _080D602C: .4byte gSprites _080D6030: movs r1, 0 strh r1, [r2, 0xE] movs r3, 0x22 ldrsh r0, [r2, r3] cmp r1, r0 bge _080D606E ldr r6, _080D607C @ =gSprites adds r3, r2, 0 adds r3, 0x8 movs r5, 0 _080D6044: movs r7, 0xE ldrsh r0, [r2, r7] adds r0, 0xE lsls r0, 1 adds r0, r3, r0 movs r7, 0 ldrsh r1, [r0, r7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 strh r5, [r0, 0x24] ldrh r0, [r2, 0xE] adds r0, 0x1 strh r0, [r2, 0xE] lsls r0, 16 asrs r0, 16 movs r7, 0x22 ldrsh r1, [r2, r7] cmp r0, r1 blt _080D6044 _080D606E: adds r0, r4, 0 bl move_anim_task_del _080D6074: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D607C: .4byte gSprites thumb_func_end sub_80D5E4C thumb_func_start sub_80D6080 sub_80D6080: @ 80D6080 push {r4,lr} sub sp, 0xC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 mov r0, sp bl sub_8078914 mov r0, sp ldrb r0, [r0, 0x8] lsls r0, 4 ldr r1, _080D60B0 @ =gUnknown_03004B00 ldrb r2, [r1] ldrh r3, [r1, 0x2] movs r1, 0x10 bl BlendPalette adds r0, r4, 0 bl move_anim_task_del add sp, 0xC pop {r4} pop {r0} bx r0 .align 2, 0 _080D60B0: .4byte gUnknown_03004B00 thumb_func_end sub_80D6080 thumb_func_start sub_80D60B4 sub_80D60B4: @ 80D60B4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r7, r0, 24 ldr r1, _080D610C @ =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r2, r0, r1 movs r3, 0x8 ldrsh r0, [r2, r3] mov r9, r1 ldr r4, _080D6110 @ =gUnknown_03004B00 mov r8, r4 cmp r0, 0 bne _080D60EA ldrh r0, [r4] strh r0, [r2, 0xA] ldrh r0, [r4, 0x2] strh r0, [r2, 0xC] ldrh r0, [r4, 0x4] strh r0, [r2, 0xE] ldrh r0, [r4, 0x6] strh r0, [r2, 0x10] _080D60EA: ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] ldr r1, _080D6114 @ =gUnknown_02024BE0 ldr r0, _080D6118 @ =gUnknown_0202F7C9 ldrb r0, [r0] adds r0, r1 ldrb r6, [r0] movs r5, 0x10 ldrsh r0, [r2, r5] cmp r0, 0 bne _080D6120 ldr r4, _080D611C @ =gUnknown_083D9794 movs r1, 0x8 ldrsh r0, [r2, r1] b _080D6126 .align 2, 0 _080D610C: .4byte gTasks _080D6110: .4byte gUnknown_03004B00 _080D6114: .4byte gUnknown_02024BE0 _080D6118: .4byte gUnknown_0202F7C9 _080D611C: .4byte gUnknown_083D9794 _080D6120: ldr r4, _080D616C @ =gUnknown_083D97A4 movs r3, 0x8 ldrsh r0, [r2, r3] _080D6126: movs r1, 0xA bl __modsi3 lsls r0, 16 asrs r0, 16 adds r0, r4 ldrb r5, [r0] lsls r0, r7, 2 adds r1, r0, r7 lsls r1, 3 add r1, r9 movs r4, 0xE ldrsh r1, [r1, r4] mov r12, r0 cmp r1, 0x1 bne _080D6174 ldr r2, _080D6170 @ =gSprites lsls r3, r6, 4 adds r0, r3, r6 lsls r0, 2 adds r0, r2 mov r10, r0 mov r0, r8 movs r4, 0x2 ldrsh r1, [r0, r4] lsls r0, r5, 24 asrs r0, 24 muls r0, r1 cmp r0, 0 bge _080D6164 negs r0, r0 _080D6164: mov r5, r10 strh r0, [r5, 0x26] b _080D618E .align 2, 0 _080D616C: .4byte gUnknown_083D97A4 _080D6170: .4byte gSprites _080D6174: ldr r3, _080D61C4 @ =gSprites lsls r4, r6, 4 adds r2, r4, r6 lsls r2, 2 adds r2, r3 lsls r0, r5, 24 asrs r0, 24 mov r5, r8 ldrh r1, [r5, 0x2] muls r0, r1 strh r0, [r2, 0x24] adds r2, r3, 0 adds r3, r4, 0 _080D618E: mov r1, r12 adds r0, r1, r7 lsls r0, 3 add r0, r9 movs r4, 0x8 ldrsh r1, [r0, r4] movs r5, 0xA ldrsh r0, [r0, r5] cmp r1, r0 bne _080D61B4 adds r0, r3, r6 lsls r0, 2 adds r0, r2 movs r1, 0 strh r1, [r0, 0x24] strh r1, [r0, 0x26] adds r0, r7, 0 bl move_anim_task_del _080D61B4: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D61C4: .4byte gSprites thumb_func_end sub_80D60B4 thumb_func_start sub_80D61C8 sub_80D61C8: @ 80D61C8 push {r4,lr} adds r4, r0, 0 ldr r0, _080D61E8 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D61F0 ldr r0, _080D61EC @ =gUnknown_03004B00 ldrh r1, [r4, 0x20] ldrh r2, [r0] subs r1, r2 strh r1, [r4, 0x20] b _080D61FC .align 2, 0 _080D61E8: .4byte gUnknown_0202F7C8 _080D61EC: .4byte gUnknown_03004B00 _080D61F0: ldr r1, _080D6210 @ =gUnknown_03004B00 ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] adds r0, r1, 0 _080D61FC: ldrh r0, [r0, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldr r0, _080D6214 @ =sub_80D6218 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080D6210: .4byte gUnknown_03004B00 _080D6214: .4byte sub_80D6218 thumb_func_end sub_80D61C8 thumb_func_start sub_80D6218 sub_80D6218: @ 80D6218 push {lr} adds r2, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080D622E adds r0, r2, 0 bl move_anim_8072740 _080D622E: pop {r0} bx r0 thumb_func_end sub_80D6218 thumb_func_start sub_80D6234 sub_80D6234: @ 80D6234 push {r4,lr} adds r4, r0, 0 ldr r0, _080D6254 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D625C ldr r0, _080D6258 @ =gUnknown_03004B00 ldrh r1, [r4, 0x20] ldrh r0, [r0] subs r1, r0 strh r1, [r4, 0x20] b _080D6266 .align 2, 0 _080D6254: .4byte gUnknown_0202F7C8 _080D6258: .4byte gUnknown_03004B00 _080D625C: ldr r0, _080D6270 @ =gUnknown_03004B00 ldrh r0, [r0] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] _080D6266: ldr r0, _080D6274 @ =sub_80D6278 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080D6270: .4byte gUnknown_03004B00 _080D6274: .4byte sub_80D6278 thumb_func_end sub_80D6234 thumb_func_start sub_80D6278 sub_80D6278: @ 80D6278 push {lr} adds r2, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080D628E adds r0, r2, 0 bl move_anim_8074EE0 _080D628E: pop {r0} bx r0 thumb_func_end sub_80D6278 thumb_func_start sub_80D6294 sub_80D6294: @ 80D6294 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080D62D8 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r0, _080D62DC @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D62E4 ldr r2, _080D62E0 @ =gUnknown_03004B00 ldrh r0, [r5, 0x20] ldrh r1, [r2] subs r0, r1 strh r0, [r5, 0x20] ldrh r0, [r5, 0x22] ldrh r1, [r2, 0x2] subs r0, r1 strh r0, [r5, 0x22] b _080D62F8 .align 2, 0 _080D62D8: .4byte gUnknown_0202F7C9 _080D62DC: .4byte gUnknown_0202F7C8 _080D62E0: .4byte gUnknown_03004B00 _080D62E4: ldr r0, _080D631C @ =gUnknown_03004B00 ldrh r1, [r0] ldrh r2, [r5, 0x20] adds r1, r2 strh r1, [r5, 0x20] ldrh r1, [r0, 0x2] ldrh r2, [r5, 0x22] adds r1, r2 strh r1, [r5, 0x22] adds r2, r0, 0 _080D62F8: movs r0, 0 strh r0, [r5, 0x2E] ldrh r0, [r2, 0x4] strh r0, [r5, 0x30] ldrh r0, [r2, 0x6] strh r0, [r5, 0x32] ldrh r0, [r2, 0x8] strh r0, [r5, 0x34] ldr r1, _080D6320 @ =move_anim_8074EE0 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080D6324 @ =sub_8078114 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D631C: .4byte gUnknown_03004B00 _080D6320: .4byte move_anim_8074EE0 _080D6324: .4byte sub_8078114 thumb_func_end sub_80D6294 thumb_func_start sub_80D6328 sub_80D6328: @ 80D6328 push {r4-r7,lr} adds r5, r0, 0 ldr r0, _080D6340 @ =gUnknown_03004B00 movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0x1 beq _080D63A0 cmp r0, 0x1 bgt _080D6344 cmp r0, 0 beq _080D634E b _080D63A0 .align 2, 0 _080D6340: .4byte gUnknown_03004B00 _080D6344: cmp r0, 0x2 beq _080D6358 cmp r0, 0x3 beq _080D637C b _080D63A0 _080D634E: ldr r0, _080D6354 @ =gUnknown_0202F7C8 b _080D63A2 .align 2, 0 _080D6354: .4byte gUnknown_0202F7C8 _080D6358: ldr r4, _080D6370 @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r6, 0x2 eors r0, r6 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 bne _080D6374 ldrb r4, [r4] b _080D63A4 .align 2, 0 _080D6370: .4byte gUnknown_0202F7C8 _080D6374: ldrb r0, [r4] adds r4, r6, 0 eors r4, r0 b _080D63A4 _080D637C: ldr r0, _080D6398 @ =gUnknown_0202F7C8 ldrb r0, [r0] movs r4, 0x2 eors r0, r4 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080D63A0 ldr r0, _080D639C @ =gUnknown_0202F7C9 ldrb r0, [r0] eors r4, r0 b _080D63A4 .align 2, 0 _080D6398: .4byte gUnknown_0202F7C8 _080D639C: .4byte gUnknown_0202F7C9 _080D63A0: ldr r0, _080D63C4 @ =gUnknown_0202F7C9 _080D63A2: ldrb r4, [r0] _080D63A4: ldr r0, _080D63C8 @ =gUnknown_03004B00 movs r2, 0xA ldrsh r0, [r0, r2] cmp r0, 0 bne _080D63CC adds r0, r4, 0 movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] adds r0, r4, 0 movs r1, 0x1 b _080D63DE .align 2, 0 _080D63C4: .4byte gUnknown_0202F7C9 _080D63C8: .4byte gUnknown_03004B00 _080D63CC: adds r0, r4, 0 movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] adds r0, r4, 0 movs r1, 0x3 _080D63DE: bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r7, _080D647C @ =gSineTable ldr r6, _080D6480 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r6, r1] lsls r0, 1 adds r0, r7 movs r2, 0 ldrsh r1, [r0, r2] movs r2, 0x2 ldrsh r0, [r6, r2] muls r0, r1 asrs r0, 8 strh r0, [r5, 0x24] movs r1, 0 ldrsh r0, [r6, r1] adds r0, 0x40 lsls r0, 1 adds r0, r7 movs r2, 0 ldrsh r1, [r0, r2] movs r2, 0x2 ldrsh r0, [r6, r2] muls r0, r1 asrs r0, 8 strh r0, [r5, 0x26] ldrh r1, [r6, 0xC] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080D6442 adds r0, r4, 0 bl sub_8079ED4 lsls r0, 24 lsrs r0, 24 adds r0, 0x1 movs r1, 0x3 ands r0, r1 lsls r0, 2 ldrb r2, [r5, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r5, 0x5] _080D6442: ldrb r2, [r5, 0x3] lsls r2, 26 lsrs r2, 27 movs r0, 0x4 ldrsh r1, [r6, r0] lsls r0, r1, 1 adds r0, r7 ldrh r0, [r0] ldr r3, _080D6484 @ =gOamMatrices lsls r2, 3 adds r2, r3 adds r1, 0x40 lsls r1, 1 adds r1, r7 ldrh r1, [r1] strh r1, [r2, 0x6] strh r1, [r2] strh r0, [r2, 0x2] lsls r0, 16 asrs r0, 16 negs r0, r0 strh r0, [r2, 0x4] ldrh r0, [r6, 0x6] strh r0, [r5, 0x2E] ldr r0, _080D6488 @ =sub_80DA48C str r0, [r5, 0x1C] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D647C: .4byte gSineTable _080D6480: .4byte gUnknown_03004B00 _080D6484: .4byte gOamMatrices _080D6488: .4byte sub_80DA48C thumb_func_end sub_80D6328 thumb_func_start sub_80D648C sub_80D648C: @ 80D648C push {r4-r6,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r5, _080D6500 @ =gUnknown_03004B00 ldrh r0, [r5, 0x6] strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] ldr r6, _080D6504 @ =gUnknown_0202F7C9 ldrb r0, [r6] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrh r0, [r4, 0x22] strh r0, [r4, 0x34] ldrb r0, [r6] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] adds r0, r4, 0 bl obj_translate_based_on_private_1_2_3_4 ldrh r0, [r5, 0x4] strh r0, [r4, 0x38] ldrh r0, [r5, 0xA] strh r0, [r4, 0x3A] ldrh r0, [r5, 0x8] strh r0, [r4, 0x3C] ldrh r2, [r4, 0x4] lsls r1, r2, 22 lsrs r1, 22 movs r3, 0xC ldrsh r0, [r5, r3] lsls r0, 2 adds r1, r0 ldr r3, _080D6508 @ =0x000003ff adds r0, r3, 0 ands r1, r0 ldr r0, _080D650C @ =0xfffffc00 ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] ldr r1, _080D6510 @ =sub_80D6514 str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D6500: .4byte gUnknown_03004B00 _080D6504: .4byte gUnknown_0202F7C9 _080D6508: .4byte 0x000003ff _080D650C: .4byte 0xfffffc00 _080D6510: .4byte sub_80D6514 thumb_func_end sub_80D648C thumb_func_start sub_80D6514 sub_80D6514: @ 80D6514 push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 bne _080D657E movs r1, 0x3C ldrsh r0, [r4, r1] movs r2, 0x38 ldrsh r1, [r4, r2] bl Sin ldrh r1, [r4, 0x24] adds r0, r1 strh r0, [r4, 0x24] movs r2, 0x3C ldrsh r0, [r4, r2] movs r2, 0x38 ldrsh r1, [r4, r2] bl Cos ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x3A] ldrh r2, [r4, 0x3C] adds r0, r2 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x3C] movs r1, 0x3C ldrsh r0, [r4, r1] movs r1, 0x3 bl __modsi3 lsls r0, 16 cmp r0, 0 bne _080D6584 adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] b _080D6584 _080D657E: adds r0, r4, 0 bl move_anim_8072740 _080D6584: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D6514 thumb_func_start sub_80D658C sub_80D658C: @ 80D658C push {lr} adds r3, r0, 0 ldrh r0, [r3, 0x38] subs r0, 0x1 strh r0, [r3, 0x38] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080D65C4 movs r0, 0x3E adds r0, r3 mov r12, r0 ldrb r2, [r0] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] ldrh r0, [r3, 0x36] strh r0, [r3, 0x38] _080D65C4: ldrh r0, [r3, 0x34] subs r1, r0, 0x1 strh r1, [r3, 0x34] lsls r0, 16 cmp r0, 0 bgt _080D65D6 adds r0, r3, 0 bl move_anim_8072740 _080D65D6: pop {r0} bx r0 thumb_func_end sub_80D658C thumb_func_start sub_80D65DC sub_80D65DC: @ 80D65DC push {r4-r6,lr} adds r6, r0, 0 ldr r0, _080D6644 @ =gMain ldr r1, _080D6648 @ =0x0000043d adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080D65FE ldr r0, _080D664C @ =gUnknown_0202F7C9 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D6606 _080D65FE: ldr r1, _080D6650 @ =gUnknown_03004B00 ldrh r0, [r1, 0x2] negs r0, r0 strh r0, [r1, 0x2] _080D6606: ldr r5, _080D664C @ =gUnknown_0202F7C9 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 ldr r4, _080D6650 @ =gUnknown_03004B00 lsrs r0, 24 ldrh r1, [r4, 0x2] adds r0, r1 strh r0, [r6, 0x20] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] adds r0, r1 strh r0, [r6, 0x22] ldrh r0, [r4] strh r0, [r6, 0x34] ldrh r0, [r4, 0x6] strh r0, [r6, 0x36] strh r0, [r6, 0x38] ldr r0, _080D6654 @ =sub_80D658C str r0, [r6, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D6644: .4byte gMain _080D6648: .4byte 0x0000043d _080D664C: .4byte gUnknown_0202F7C9 _080D6650: .4byte gUnknown_03004B00 _080D6654: .4byte sub_80D658C thumb_func_end sub_80D65DC thumb_func_start sub_80D6658 sub_80D6658: @ 80D6658 push {r4-r6,lr} adds r5, r0, 0 ldr r1, _080D6674 @ =gUnknown_03004B00 ldrh r0, [r1, 0x6] strh r0, [r5, 0x2E] movs r2, 0xE ldrsh r0, [r1, r2] movs r1, 0x80 lsls r1, 8 ands r0, r1 cmp r0, 0 beq _080D667C ldr r0, _080D6678 @ =gUnknown_0202F7C9 b _080D667E .align 2, 0 _080D6674: .4byte gUnknown_03004B00 _080D6678: .4byte gUnknown_0202F7C9 _080D667C: ldr r0, _080D670C @ =gUnknown_0202F7C8 _080D667E: ldrb r6, [r0] ldr r0, _080D6710 @ =gMain ldr r3, _080D6714 @ =0x0000043d adds r0, r3 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080D669C adds r0, r6, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D66A4 _080D669C: ldr r1, _080D6718 @ =gUnknown_03004B00 ldrh r0, [r1] negs r0, r0 strh r0, [r1] _080D66A4: adds r0, r6, 0 movs r1, 0x2 bl sub_8077ABC lsls r0, 24 ldr r4, _080D6718 @ =gUnknown_03004B00 lsrs r0, 24 ldrh r1, [r4] adds r0, r1 strh r0, [r5, 0x20] adds r0, r6, 0 movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r2, [r4, 0x2] adds r0, r2 strh r0, [r5, 0x22] ldrh r1, [r4, 0xE] ldr r0, _080D671C @ =0x00007fff ands r0, r1 strh r0, [r5, 0x36] ldrh r0, [r4, 0x4] strh r0, [r5, 0x38] ldrh r0, [r4, 0xA] strh r0, [r5, 0x3A] ldrh r0, [r4, 0x8] strh r0, [r5, 0x3C] ldrh r2, [r5, 0x4] lsls r1, r2, 22 lsrs r1, 22 movs r3, 0xC ldrsh r0, [r4, r3] lsls r0, 2 adds r1, r0 ldr r3, _080D6720 @ =0x000003ff adds r0, r3, 0 ands r1, r0 ldr r0, _080D6724 @ =0xfffffc00 ands r0, r2 orrs r0, r1 strh r0, [r5, 0x4] ldr r1, _080D6728 @ =sub_80D672C str r1, [r5, 0x1C] adds r0, r5, 0 bl _call_via_r1 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D670C: .4byte gUnknown_0202F7C8 _080D6710: .4byte gMain _080D6714: .4byte 0x0000043d _080D6718: .4byte gUnknown_03004B00 _080D671C: .4byte 0x00007fff _080D6720: .4byte 0x000003ff _080D6724: .4byte 0xfffffc00 _080D6728: .4byte sub_80D672C thumb_func_end sub_80D6658 thumb_func_start sub_80D672C sub_80D672C: @ 80D672C push {r4,lr} adds r4, r0, 0 movs r1, 0x3C ldrsh r0, [r4, r1] movs r2, 0x38 ldrsh r1, [r4, r2] bl Sin strh r0, [r4, 0x24] movs r1, 0x3C ldrsh r0, [r4, r1] movs r2, 0x38 ldrsh r1, [r4, r2] bl Cos strh r0, [r4, 0x26] ldrh r0, [r4, 0x3A] ldrh r1, [r4, 0x3C] adds r0, r1 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x3C] movs r2, 0x3C ldrsh r0, [r4, r2] movs r2, 0x36 ldrsh r1, [r4, r2] bl __modsi3 cmp r0, 0 bne _080D6782 adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _080D6782: ldrh r0, [r4, 0x2E] subs r1, r0, 0x1 strh r1, [r4, 0x2E] lsls r0, 16 cmp r0, 0 bgt _080D6794 adds r0, r4, 0 bl move_anim_8072740 _080D6794: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D672C thumb_func_start sub_80D679C sub_80D679C: @ 80D679C push {r4,r5,lr} adds r4, r0, 0 movs r1, 0 bl sub_8078764 ldrh r2, [r4, 0x4] lsls r1, r2, 22 lsrs r1, 22 ldr r3, _080D67D8 @ =gUnknown_03004B00 movs r5, 0x6 ldrsh r0, [r3, r5] lsls r0, 2 adds r1, r0 ldr r5, _080D67DC @ =0x000003ff adds r0, r5, 0 ands r1, r0 ldr r0, _080D67E0 @ =0xfffffc00 ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] movs r1, 0x6 ldrsh r0, [r3, r1] cmp r0, 0x1 bne _080D67E4 ldrb r0, [r4, 0x3] movs r1, 0x3F negs r1, r1 ands r1, r0 movs r0, 0x10 b _080D67F2 .align 2, 0 _080D67D8: .4byte gUnknown_03004B00 _080D67DC: .4byte 0x000003ff _080D67E0: .4byte 0xfffffc00 _080D67E4: cmp r0, 0x2 bne _080D67F6 ldrb r0, [r4, 0x3] movs r1, 0x3F negs r1, r1 ands r1, r0 movs r0, 0x20 _080D67F2: orrs r1, r0 strb r1, [r4, 0x3] _080D67F6: ldr r0, _080D6810 @ =gUnknown_03004B00 ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] ldr r0, _080D6814 @ =sub_80782D8 str r0, [r4, 0x1C] ldr r1, _080D6818 @ =move_anim_8072740 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D6810: .4byte gUnknown_03004B00 _080D6814: .4byte sub_80782D8 _080D6818: .4byte move_anim_8072740 thumb_func_end sub_80D679C thumb_func_start sub_80D681C sub_80D681C: @ 80D681C push {r4-r6,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r6, _080D6864 @ =gUnknown_0202F7C9 ldrb r0, [r6] movs r1, 0 bl sub_8077ABC ldr r1, _080D6868 @ =gTasks lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r1 lsls r0, 24 ldr r5, _080D686C @ =gUnknown_03004B00 lsrs r0, 24 ldrh r1, [r5] adds r0, r1 strh r0, [r4, 0x8] ldrb r0, [r6] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x2] adds r0, r1 strh r0, [r4, 0xA] ldrh r0, [r5, 0x4] strh r0, [r4, 0xC] ldr r0, _080D6870 @ =sub_80D6874 str r0, [r4] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D6864: .4byte gUnknown_0202F7C9 _080D6868: .4byte gTasks _080D686C: .4byte gUnknown_03004B00 _080D6870: .4byte sub_80D6874 thumb_func_end sub_80D681C thumb_func_start sub_80D6874 sub_80D6874: @ 80D6874 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r5, 0 movs r7, 0 ldr r1, _080D68B4 @ =gTasks lsls r0, 2 add r0, r9 lsls r0, 3 adds r0, r1 ldrb r2, [r0, 0xC] str r2, [sp] ldrh r4, [r0, 0x8] ldrh r6, [r0, 0xA] movs r3, 0xC ldrsh r0, [r0, r3] mov r10, r1 cmp r0, 0 bne _080D68B8 movs r0, 0 mov r8, r0 movs r2, 0x1 movs r1, 0x10 mov r12, r1 b _080D68C2 .align 2, 0 _080D68B4: .4byte gTasks _080D68B8: movs r2, 0x10 mov r12, r2 movs r3, 0x8 mov r8, r3 movs r2, 0x4 _080D68C2: mov r0, r9 lsls r1, r0, 2 adds r0, r1, r0 lsls r0, 3 add r0, r10 movs r3, 0x1C ldrsh r0, [r0, r3] mov r10, r1 cmp r0, 0xA bhi _080D69B8 lsls r0, 2 ldr r1, _080D68E0 @ =_080D68E4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080D68E0: .4byte _080D68E4 .align 2, 0 _080D68E4: .4byte _080D6910 .4byte _080D69B8 .4byte _080D6924 .4byte _080D69B8 .4byte _080D6944 .4byte _080D69B8 .4byte _080D695A .4byte _080D69B8 .4byte _080D697C .4byte _080D69B8 .4byte _080D69B0 _080D6910: ldr r0, _080D6920 @ =gSpriteTemplate_83D9938 lsls r1, r4, 16 asrs r1, 16 lsls r2, r6, 16 asrs r2, 16 mov r4, r12 lsls r3, r4, 16 b _080D6992 .align 2, 0 _080D6920: .4byte gSpriteTemplate_83D9938 _080D6924: mov r0, r12 lsls r3, r0, 17 mov r1, r8 adds r0, r1, r2 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r0, _080D6940 @ =gSpriteTemplate_83D9938 lsls r1, r4, 16 asrs r1, 16 lsls r2, r6, 16 asrs r2, 16 b _080D6992 .align 2, 0 _080D6940: .4byte gSpriteTemplate_83D9938 _080D6944: mov r3, r12 lsls r0, r3, 16 asrs r0, 16 lsls r3, r0, 1 adds r3, r0 lsls r0, r2, 1 add r0, r8 lsls r0, 16 lsrs r0, 16 mov r8, r0 b _080D6986 _080D695A: mov r0, r12 lsls r3, r0, 18 lsls r0, r2, 1 adds r0, r2 add r0, r8 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r0, _080D6978 @ =gSpriteTemplate_83D9938 lsls r1, r4, 16 asrs r1, 16 lsls r2, r6, 16 asrs r2, 16 b _080D6992 .align 2, 0 _080D6978: .4byte gSpriteTemplate_83D9938 _080D697C: mov r1, r12 lsls r0, r1, 16 asrs r0, 16 lsls r3, r0, 2 adds r3, r0 _080D6986: ldr r0, _080D69AC @ =gSpriteTemplate_83D9938 lsls r1, r4, 16 asrs r1, 16 lsls r2, r6, 16 asrs r2, 16 lsls r3, 16 _080D6992: asrs r3, 16 adds r2, r3 lsls r2, 16 asrs r2, 16 movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r5, r0, 24 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 b _080D69B8 .align 2, 0 _080D69AC: .4byte gSpriteTemplate_83D9938 _080D69B0: mov r0, r9 bl move_anim_task_del b _080D69FC _080D69B8: cmp r7, 0 beq _080D69EC ldr r4, _080D6A0C @ =gSprites lsls r3, r5, 4 adds r3, r5 lsls r3, 2 adds r0, r3, r4 ldrh r5, [r0, 0x4] lsls r2, r5, 22 lsrs r2, 22 add r2, r8 ldr r6, _080D6A10 @ =0x000003ff adds r1, r6, 0 ands r2, r1 ldr r1, _080D6A14 @ =0xfffffc00 ands r1, r5 orrs r1, r2 strh r1, [r0, 0x4] mov r1, sp ldrh r1, [r1] strh r1, [r0, 0x2E] adds r4, 0x1C adds r3, r4 ldr r1, [r3] bl _call_via_r1 _080D69EC: ldr r0, _080D6A18 @ =gTasks mov r1, r10 add r1, r9 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x1C] adds r0, 0x1 strh r0, [r1, 0x1C] _080D69FC: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D6A0C: .4byte gSprites _080D6A10: .4byte 0x000003ff _080D6A14: .4byte 0xfffffc00 _080D6A18: .4byte gTasks thumb_func_end sub_80D6874 thumb_func_start sub_80D6A1C sub_80D6A1C: @ 80D6A1C push {lr} adds r3, r0, 0 movs r1, 0x2E ldrsh r0, [r3, r1] cmp r0, 0 bne _080D6A3E ldrb r1, [r3, 0x1] movs r2, 0x3F adds r0, r2, 0 ands r0, r1 movs r1, 0x80 orrs r0, r1 strb r0, [r3, 0x1] ldrb r0, [r3, 0x3] ands r2, r0 strb r2, [r3, 0x3] b _080D6A52 _080D6A3E: ldrb r2, [r3, 0x1] movs r1, 0x3F adds r0, r1, 0 ands r0, r2 strb r0, [r3, 0x1] ldrb r0, [r3, 0x3] ands r1, r0 movs r0, 0x40 orrs r1, r0 strb r1, [r3, 0x3] _080D6A52: ldrh r0, [r3, 0x30] adds r0, 0x1 strh r0, [r3, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0xF bne _080D6A66 adds r0, r3, 0 bl DestroySprite _080D6A66: pop {r0} bx r0 thumb_func_end sub_80D6A1C thumb_func_start sub_80D6A6C sub_80D6A6C: @ 80D6A6C push {r4-r7,lr} adds r4, r0, 0 ldr r0, _080D6AD4 @ =gUnknown_03004B00 ldrh r1, [r0] ldrh r2, [r4, 0x20] adds r1, r2 strh r1, [r4, 0x20] ldrh r0, [r0, 0x2] ldrh r3, [r4, 0x22] adds r0, r3 strh r0, [r4, 0x22] ldr r0, _080D6AD8 @ =gBattleAnimSpriteTemplate_83D9950 adds r1, 0x20 lsls r1, 16 asrs r1, 16 movs r7, 0x22 ldrsh r2, [r4, r7] adds r3, r4, 0 adds r3, 0x43 ldrb r3, [r3] bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r3, _080D6ADC @ =gSprites lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r6, r2, r3 ldrh r5, [r6, 0x4] lsls r1, r5, 22 lsrs r1, 22 adds r1, 0x8 ldr r7, _080D6AE0 @ =0x000003ff adds r0, r7, 0 ands r1, r0 ldr r0, _080D6AE4 @ =0xfffffc00 ands r0, r5 orrs r0, r1 strh r0, [r6, 0x4] ldr r1, _080D6AE8 @ =gUnknown_0202F7B2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] adds r3, 0x1C adds r2, r3 ldr r0, _080D6AEC @ =sub_80D6AF0 str r0, [r2] str r0, [r4, 0x1C] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D6AD4: .4byte gUnknown_03004B00 _080D6AD8: .4byte gBattleAnimSpriteTemplate_83D9950 _080D6ADC: .4byte gSprites _080D6AE0: .4byte 0x000003ff _080D6AE4: .4byte 0xfffffc00 _080D6AE8: .4byte gUnknown_0202F7B2 _080D6AEC: .4byte sub_80D6AF0 thumb_func_end sub_80D6A6C thumb_func_start sub_80D6AF0 sub_80D6AF0: @ 80D6AF0 push {lr} adds r3, r0, 0 ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 bne _080D6B24 movs r0, 0 strh r0, [r3, 0x2E] movs r0, 0x3E adds r0, r3 mov r12, r0 ldrb r2, [r0] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] _080D6B24: ldrh r0, [r3, 0x30] adds r0, 0x1 strh r0, [r3, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x33 bne _080D6B38 adds r0, r3, 0 bl move_anim_8072740 _080D6B38: pop {r0} bx r0 thumb_func_end sub_80D6AF0 thumb_func_start sub_80D6B3C sub_80D6B3C: @ 80D6B3C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080D6B5C @ =gTasks adds r5, r1, r0 ldr r0, _080D6B60 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D6B68 ldr r4, _080D6B64 @ =gUnknown_0202F7C8 b _080D6B6A .align 2, 0 _080D6B5C: .4byte gTasks _080D6B60: .4byte gUnknown_03004B00 _080D6B64: .4byte gUnknown_0202F7C8 _080D6B68: ldr r4, _080D6BAC @ =gUnknown_0202F7C9 _080D6B6A: ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x24] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x26] ldr r2, _080D6BB0 @ =gUnknown_03004B00 ldrh r0, [r2, 0x2] movs r1, 0 strh r0, [r5, 0x14] strh r1, [r5, 0x16] strh r1, [r5, 0x18] strh r1, [r5, 0x1A] strh r1, [r5, 0x1C] ldrh r0, [r2, 0x6] strh r0, [r5, 0x1E] strh r1, [r5, 0x20] ldrh r0, [r2, 0x4] strh r0, [r5, 0x22] ldr r0, _080D6BB4 @ =sub_80D6BB8 str r0, [r5] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D6BAC: .4byte gUnknown_0202F7C9 _080D6BB0: .4byte gUnknown_03004B00 _080D6BB4: .4byte sub_80D6BB8 thumb_func_end sub_80D6B3C thumb_func_start sub_80D6BB8 sub_80D6BB8: @ 80D6BB8 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 adds r2, r6, 0 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _080D6CA0 @ =gTasks adds r5, r0, r1 movs r1, 0x14 ldrsh r0, [r5, r1] cmp r0, 0 beq _080D6CB8 ldrh r0, [r5, 0x20] adds r0, 0x1 movs r7, 0 strh r0, [r5, 0x20] lsls r0, 16 asrs r0, 16 movs r2, 0x22 ldrsh r1, [r5, r2] cmp r0, r1 ble _080D6CC6 strh r7, [r5, 0x20] ldr r0, _080D6CA4 @ =gSpriteTemplate_83D99B8 movs r3, 0x24 ldrsh r1, [r5, r3] movs r3, 0x26 ldrsh r2, [r5, r3] movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _080D6CC6 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _080D6CA8 @ =gSprites adds r4, r0 ldr r1, _080D6CAC @ =gUnknown_083D9968 movs r2, 0x1A ldrsh r0, [r5, r2] lsls r0, 1 adds r0, r1 movs r3, 0 ldrsb r3, [r0, r3] ldrh r0, [r4, 0x20] adds r3, r0 strh r3, [r4, 0x20] movs r2, 0x1A ldrsh r0, [r5, r2] lsls r0, 1 adds r1, 0x1 adds r0, r1 movs r2, 0 ldrsb r2, [r0, r2] ldrh r0, [r4, 0x22] adds r2, r0 strh r2, [r4, 0x22] movs r1, 0x18 ldrsh r0, [r5, r1] lsls r1, r0, 2 adds r1, r0 movs r0, 0x28 subs r0, r1 strh r0, [r4, 0x2E] strh r3, [r4, 0x30] ldrh r0, [r5, 0x24] strh r0, [r4, 0x32] strh r2, [r4, 0x34] ldrh r0, [r5, 0x26] strh r0, [r4, 0x36] strh r6, [r4, 0x38] adds r0, r4, 0 bl obj_translate_based_on_private_1_2_3_4 ldr r1, _080D6CB0 @ =sub_80D6D00 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080D6CB4 @ =sub_8078600 str r0, [r4, 0x1C] ldrh r0, [r5, 0x1A] adds r0, 0x1 strh r0, [r5, 0x1A] lsls r0, 16 asrs r0, 16 cmp r0, 0xF ble _080D6C70 strh r7, [r5, 0x1A] _080D6C70: ldrh r0, [r5, 0x1C] adds r0, 0x1 strh r0, [r5, 0x1C] lsls r0, 16 asrs r0, 16 movs r2, 0x1E ldrsh r1, [r5, r2] cmp r0, r1 blt _080D6C92 strh r7, [r5, 0x1C] ldrh r1, [r5, 0x18] movs r3, 0x18 ldrsh r0, [r5, r3] cmp r0, 0x5 bgt _080D6C92 adds r0, r1, 0x1 strh r0, [r5, 0x18] _080D6C92: ldrh r0, [r5, 0x16] adds r0, 0x1 strh r0, [r5, 0x16] ldrh r0, [r5, 0x14] subs r0, 0x1 strh r0, [r5, 0x14] b _080D6CC6 .align 2, 0 _080D6CA0: .4byte gTasks _080D6CA4: .4byte gSpriteTemplate_83D99B8 _080D6CA8: .4byte gSprites _080D6CAC: .4byte gUnknown_083D9968 _080D6CB0: .4byte sub_80D6D00 _080D6CB4: .4byte sub_8078600 _080D6CB8: movs r1, 0x16 ldrsh r0, [r5, r1] cmp r0, 0 bne _080D6CC6 adds r0, r2, 0 bl move_anim_task_del _080D6CC6: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80D6BB8 thumb_func_start sub_80D6CCC sub_80D6CCC: @ 80D6CCC push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 beq _080D6CF4 ldr r2, _080D6CFC @ =gTasks movs r0, 0x38 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrh r1, [r0, 0x16] subs r1, 0x1 strh r1, [r0, 0x16] adds r0, r4, 0 bl DestroySprite _080D6CF4: pop {r4} pop {r0} bx r0 .align 2, 0 _080D6CFC: .4byte gTasks thumb_func_end sub_80D6CCC thumb_func_start sub_80D6D00 sub_80D6D00: @ 80D6D00 push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl StartSpriteAnim ldr r0, _080D6D14 @ =sub_80D6CCC str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080D6D14: .4byte sub_80D6CCC thumb_func_end sub_80D6D00 thumb_func_start sub_80D6D18 sub_80D6D18: @ 80D6D18 push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080D6D2C @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D6D34 ldr r4, _080D6D30 @ =gUnknown_0202F7C8 b _080D6D36 .align 2, 0 _080D6D2C: .4byte gUnknown_03004B00 _080D6D30: .4byte gUnknown_0202F7C8 _080D6D34: ldr r4, _080D6D64 @ =gUnknown_0202F7C9 _080D6D36: ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r1, _080D6D68 @ =move_anim_8074EE0 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080D6D6C @ =sub_80785E4 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D6D64: .4byte gUnknown_0202F7C9 _080D6D68: .4byte move_anim_8074EE0 _080D6D6C: .4byte sub_80785E4 thumb_func_end sub_80D6D18 thumb_func_start sub_80D6D70 sub_80D6D70: @ 80D6D70 push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080D6D84 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D6D8C ldr r4, _080D6D88 @ =gUnknown_0202F7C8 b _080D6D8E .align 2, 0 _080D6D84: .4byte gUnknown_03004B00 _080D6D88: .4byte gUnknown_0202F7C8 _080D6D8C: ldr r4, _080D6DC8 @ =gUnknown_0202F7C9 _080D6D8E: ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r1, _080D6DCC @ =gUnknown_03004B00 ldrh r0, [r1, 0x2] strh r0, [r5, 0x24] ldrh r0, [r1, 0x4] strh r0, [r5, 0x26] ldr r1, _080D6DD0 @ =move_anim_8072740 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080D6DD4 @ =sub_8078600 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D6DC8: .4byte gUnknown_0202F7C9 _080D6DCC: .4byte gUnknown_03004B00 _080D6DD0: .4byte move_anim_8072740 _080D6DD4: .4byte sub_8078600 thumb_func_end sub_80D6D70 thumb_func_start sub_80D6DD8 sub_80D6DD8: @ 80D6DD8 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x1 bl StartSpriteAffineAnim ldr r4, _080D6E30 @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x3A] movs r0, 0x10 strh r0, [r5, 0x3C] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080D6E26 movs r1, 0x3C ldrsh r0, [r5, r1] negs r0, r0 strh r0, [r5, 0x3C] _080D6E26: ldr r0, _080D6E34 @ =sub_80D6E38 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D6E30: .4byte gUnknown_0202F7C8 _080D6E34: .4byte sub_80D6E38 thumb_func_end sub_80D6DD8 thumb_func_start sub_80D6E38 sub_80D6E38: @ 80D6E38 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 beq _080D6E4A cmp r0, 0x1 beq _080D6E60 b _080D6E90 _080D6E4A: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x28 ble _080D6E90 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _080D6E90 _080D6E60: ldrh r2, [r4, 0x3C] ldrh r1, [r4, 0x20] adds r0, r2, r1 strh r0, [r4, 0x20] ldr r3, _080D6E98 @ =gSprites movs r0, 0x3A ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r0, 0x24] adds r2, r1 strh r2, [r0, 0x24] ldrh r0, [r4, 0x20] adds r0, 0x50 lsls r0, 16 movs r1, 0xC8 lsls r1, 17 cmp r0, r1 bls _080D6E90 adds r0, r4, 0 bl move_anim_8074EE0 _080D6E90: pop {r4} pop {r0} bx r0 .align 2, 0 _080D6E98: .4byte gSprites thumb_func_end sub_80D6E38 thumb_func_start sub_80D6E9C sub_80D6E9C: @ 80D6E9C push {r4-r6,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 ldr r1, _080D6EC0 @ =gTasks adds r5, r0, r1 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0x1 beq _080D6F30 cmp r0, 0x1 bgt _080D6EC4 cmp r0, 0 beq _080D6ED0 b _080D7000 .align 2, 0 _080D6EC0: .4byte gTasks _080D6EC4: cmp r0, 0x2 beq _080D6F8C cmp r0, 0x3 bne _080D6ECE b _080D6FE0 _080D6ECE: b _080D7000 _080D6ED0: movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 movs r6, 0 strh r0, [r5, 0x26] ldr r4, _080D6F04 @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x24] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D6F0C ldr r0, _080D6F08 @ =0x0000ffe0 strh r0, [r5, 0x24] movs r0, 0x2 b _080D6F12 .align 2, 0 _080D6F04: .4byte gUnknown_0202F7C8 _080D6F08: .4byte 0x0000ffe0 _080D6F0C: movs r0, 0x20 strh r0, [r5, 0x24] ldr r0, _080D6F28 @ =0x0000fffe _080D6F12: strh r0, [r5, 0x22] ldr r2, _080D6F2C @ =gSprites movs r0, 0x26 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r5, 0x24] strh r1, [r0, 0x24] b _080D6FD2 .align 2, 0 _080D6F28: .4byte 0x0000fffe _080D6F2C: .4byte gSprites _080D6F30: ldrh r0, [r5, 0xA] adds r0, 0x1 strh r0, [r5, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D7000 movs r0, 0 strh r0, [r5, 0xA] ldr r4, _080D6F88 @ =gSprites movs r1, 0x26 ldrsh r0, [r5, r1] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r4 adds r2, 0x3E ldrb r3, [r2] lsls r0, r3, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] ldrh r1, [r5, 0x24] movs r2, 0x24 ldrsh r0, [r5, r2] cmp r0, 0 beq _080D6FD2 ldrh r2, [r5, 0x22] adds r2, r1, r2 strh r2, [r5, 0x24] movs r0, 0x26 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 strh r2, [r0, 0x24] b _080D7000 .align 2, 0 _080D6F88: .4byte gSprites _080D6F8C: ldrh r0, [r5, 0xA] adds r0, 0x1 strh r0, [r5, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D7000 movs r0, 0 strh r0, [r5, 0xA] ldr r1, _080D6FDC @ =gSprites movs r2, 0x26 ldrsh r0, [r5, r2] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r1 adds r2, 0x3E ldrb r3, [r2] lsls r0, r3, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] ldrh r0, [r5, 0xC] adds r0, 0x1 strh r0, [r5, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 bne _080D7000 _080D6FD2: ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] b _080D7000 .align 2, 0 _080D6FDC: .4byte gSprites _080D6FE0: ldr r2, _080D7008 @ =gSprites movs r0, 0x26 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] adds r0, r3, 0 bl move_anim_task_del _080D7000: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D7008: .4byte gSprites thumb_func_end sub_80D6E9C thumb_func_start sub_80D700C sub_80D700C: @ 80D700C push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080D7030 @ =gTasks adds r5, r0, r1 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0x1 bne _080D7026 b _080D714C _080D7026: cmp r0, 0x1 bgt _080D7034 cmp r0, 0 beq _080D703C b _080D718E .align 2, 0 _080D7030: .4byte gTasks _080D7034: cmp r0, 0x2 bne _080D703A b _080D7180 _080D703A: b _080D718E _080D703C: ldr r4, _080D707C @ =gUnknown_0202F7C8 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 movs r2, 0x1 negs r2, r2 adds r1, r2, 0 cmp r0, 0 bne _080D7052 movs r1, 0x1 _080D7052: movs r6, 0 strh r1, [r5, 0xA] ldr r0, _080D7080 @ =gUnknown_03004B00 movs r1, 0 ldrsh r2, [r0, r1] adds r3, r0, 0 cmp r2, 0 beq _080D7088 cmp r2, 0x4 beq _080D70B0 ldrh r1, [r3] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080D70E8 movs r0, 0x80 lsls r0, 1 strh r0, [r5, 0xE] ldr r0, _080D7084 @ =0x0000fff0 b _080D70F0 .align 2, 0 _080D707C: .4byte gUnknown_0202F7C8 _080D7080: .4byte gUnknown_03004B00 _080D7084: .4byte 0x0000fff0 _080D7088: ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0xE] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x12] movs r2, 0xA ldrsh r0, [r5, r2] lsls r0, 7 adds r0, 0x78 strh r0, [r5, 0x10] b _080D7126 _080D70B0: movs r0, 0xA ldrsh r1, [r5, r0] lsls r1, 7 movs r0, 0x78 subs r0, r1 strh r0, [r5, 0xE] ldr r4, _080D70E4 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x12] ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 movs r2, 0xA ldrsh r1, [r5, r2] lsls r1, 5 subs r0, r1 strh r0, [r5, 0x10] b _080D7126 .align 2, 0 _080D70E4: .4byte gUnknown_0202F7C9 _080D70E8: ldr r0, _080D710C @ =0x0000fff0 strh r0, [r5, 0xE] movs r0, 0x80 lsls r0, 1 _080D70F0: strh r0, [r5, 0x10] movs r1, 0xA ldrsh r0, [r5, r1] cmp r0, 0x1 bne _080D7110 movs r2, 0 ldrsh r0, [r3, r2] lsls r1, r0, 2 adds r1, r0 lsls r1, 1 movs r0, 0x50 subs r0, r1 strh r0, [r5, 0x12] b _080D7126 .align 2, 0 _080D710C: .4byte 0x0000fff0 _080D7110: movs r0, 0 ldrsh r1, [r3, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 1 adds r0, 0x28 strh r0, [r5, 0x12] ldrh r1, [r5, 0xE] ldrh r0, [r5, 0x10] strh r0, [r5, 0xE] strh r1, [r5, 0x10] _080D7126: movs r2, 0xE ldrsh r1, [r5, r2] movs r2, 0x10 ldrsh r0, [r5, r2] cmp r1, r0 bge _080D713C movs r1, 0 movs r0, 0x1 strh r0, [r5, 0xA] strh r1, [r5, 0x14] b _080D7178 _080D713C: ldr r0, _080D7148 @ =0x0000ffff strh r0, [r5, 0xA] movs r0, 0x3 strh r0, [r5, 0x14] b _080D7178 .align 2, 0 _080D7148: .4byte 0x0000ffff _080D714C: ldrh r0, [r5, 0xC] adds r0, 0x1 strh r0, [r5, 0xC] lsls r0, 16 cmp r0, 0 ble _080D718E movs r0, 0 strh r0, [r5, 0xC] adds r0, r5, 0 adds r1, r4, 0 bl sub_80D7194 lsls r0, 24 cmp r0, 0 bne _080D7178 adds r0, r5, 0 adds r1, r4, 0 bl sub_80D7194 lsls r0, 24 cmp r0, 0 beq _080D718E _080D7178: ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] b _080D718E _080D7180: movs r1, 0x16 ldrsh r0, [r5, r1] cmp r0, 0 bne _080D718E adds r0, r4, 0 bl move_anim_task_del _080D718E: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80D700C thumb_func_start sub_80D7194 sub_80D7194: @ 80D7194 push {r4,r5,lr} adds r4, r0, 0 lsls r1, 24 lsrs r5, r1, 24 ldr r0, _080D7220 @ =gSpriteTemplate_83D9B10 movs r2, 0xE ldrsh r1, [r4, r2] movs r3, 0x12 ldrsh r2, [r4, r3] movs r3, 0x23 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _080D71CA ldr r1, _080D7224 @ =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 strh r5, [r0, 0x3A] movs r1, 0x7 strh r1, [r0, 0x3C] ldrh r0, [r4, 0x16] adds r0, 0x1 strh r0, [r4, 0x16] _080D71CA: ldrh r1, [r4, 0xA] ldrh r5, [r4, 0x14] adds r0, r1, r5 strh r0, [r4, 0x14] lsls r0, 16 cmp r0, 0 bge _080D71DC movs r0, 0x3 strh r0, [r4, 0x14] _080D71DC: movs r2, 0x14 ldrsh r0, [r4, r2] cmp r0, 0x3 ble _080D71E8 movs r0, 0 strh r0, [r4, 0x14] _080D71E8: movs r3, 0xA ldrsh r0, [r4, r3] lsls r0, 4 ldrh r5, [r4, 0xE] adds r2, r0, r5 strh r2, [r4, 0xE] lsls r0, r1, 16 asrs r3, r0, 16 cmp r3, 0x1 bne _080D7208 lsls r0, r2, 16 asrs r0, 16 movs r5, 0x10 ldrsh r1, [r4, r5] cmp r0, r1 bge _080D721C _080D7208: movs r0, 0x1 negs r0, r0 cmp r3, r0 bne _080D7228 lsls r0, r2, 16 asrs r0, 16 movs r2, 0x10 ldrsh r1, [r4, r2] cmp r0, r1 bgt _080D7228 _080D721C: movs r0, 0x1 b _080D722A .align 2, 0 _080D7220: .4byte gSpriteTemplate_83D9B10 _080D7224: .4byte gSprites _080D7228: movs r0, 0 _080D722A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80D7194 thumb_func_start sub_80D7230 sub_80D7230: @ 80D7230 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0xC ble _080D7270 ldr r3, _080D7278 @ =gTasks movs r0, 0x3C ldrsh r1, [r4, r0] lsls r1, 1 movs r0, 0x3A ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix adds r0, r4, 0 bl DestroySprite _080D7270: pop {r4} pop {r0} bx r0 .align 2, 0 _080D7278: .4byte gTasks thumb_func_end sub_80D7230 thumb_func_start sub_80D727C sub_80D727C: @ 80D727C push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0 beq _080D728E cmp r0, 0x1 beq _080D72C0 b _080D72D4 _080D728E: ldr r4, _080D72BC @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] adds r0, r5, 0 movs r1, 0x2 bl StartSpriteAffineAnim ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] b _080D72D4 .align 2, 0 _080D72BC: .4byte gUnknown_0202F7C8 _080D72C0: adds r0, r5, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080D72D4 adds r0, r5, 0 bl move_anim_8074EE0 _080D72D4: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80D727C thumb_func_start sub_80D72DC sub_80D72DC: @ 80D72DC push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080D7300 @ =gTasks adds r5, r0, r1 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0x4 bls _080D72F6 b _080D7468 _080D72F6: lsls r0, 2 ldr r1, _080D7304 @ =_080D7308 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080D7300: .4byte gTasks _080D7304: .4byte _080D7308 .align 2, 0 _080D7308: .4byte _080D731C .4byte _080D73AC .4byte _080D73E8 .4byte _080D7444 .4byte _080D7454 _080D731C: ldr r4, _080D73A0 @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x14] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x16] movs r0, 0x4 strh r0, [r5, 0x18] ldr r0, _080D73A4 @ =gUnknown_0202F7C9 ldrb r0, [r0] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x1C] movs r2, 0x1C ldrsh r0, [r5, r2] movs r2, 0x14 ldrsh r1, [r5, r2] subs r0, r1 movs r1, 0x5 bl __divsi3 strh r0, [r5, 0x1A] movs r0, 0x7 strh r0, [r5, 0x10] ldr r0, _080D73A8 @ =0x0000ffff strh r0, [r5, 0x12] movs r0, 0xC strh r0, [r5, 0x1E] subs r0, 0x4C bl sub_8076F98 lsls r0, 24 asrs r0, 24 strh r0, [r5, 0x20] movs r0, 0x3F bl sub_8076F98 lsls r0, 24 asrs r0, 24 strh r0, [r5, 0x22] ldrh r0, [r5, 0x20] strh r0, [r5, 0x24] movs r1, 0x22 ldrsh r0, [r5, r1] movs r2, 0x20 ldrsh r1, [r5, r2] subs r0, r1 movs r1, 0x3 bl __divsi3 strh r0, [r5, 0x26] ldrh r0, [r5, 0x8] adds r0, 0x1 b _080D7466 .align 2, 0 _080D73A0: .4byte gUnknown_0202F7C8 _080D73A4: .4byte gUnknown_0202F7C9 _080D73A8: .4byte 0x0000ffff _080D73AC: ldrh r0, [r5, 0xA] adds r0, 0x1 strh r0, [r5, 0xA] lsls r0, 16 cmp r0, 0 ble _080D73DC movs r0, 0 strh r0, [r5, 0xA] adds r0, r5, 0 adds r1, r2, 0 bl sub_80D7470 lsls r0, 24 cmp r0, 0 beq _080D73DC movs r1, 0xC ldrsh r0, [r5, r1] cmp r0, 0x5 bne _080D73D6 movs r0, 0x3 b _080D73DA _080D73D6: ldrh r0, [r5, 0x8] adds r0, 0x1 _080D73DA: strh r0, [r5, 0x8] _080D73DC: ldrh r1, [r5, 0x1E] movs r2, 0x1E ldrsh r0, [r5, r2] cmp r0, 0 beq _080D7468 b _080D745E _080D73E8: ldrh r1, [r5, 0x1E] movs r2, 0x1E ldrsh r0, [r5, r2] cmp r0, 0 beq _080D73F6 subs r0, r1, 0x1 strh r0, [r5, 0x1E] _080D73F6: ldrh r0, [r5, 0xA] adds r0, 0x1 movs r3, 0 strh r0, [r5, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 ble _080D7468 strh r3, [r5, 0xA] ldrh r1, [r5, 0xC] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _080D7422 movs r0, 0x4 strh r0, [r5, 0x16] movs r0, 0x44 strh r0, [r5, 0x18] strh r3, [r5, 0x10] strh r2, [r5, 0x12] b _080D7432 _080D7422: movs r0, 0x44 strh r0, [r5, 0x16] movs r0, 0x4 strh r0, [r5, 0x18] movs r0, 0x7 strh r0, [r5, 0x10] ldr r0, _080D7440 @ =0x0000ffff strh r0, [r5, 0x12] _080D7432: movs r1, 0x1E ldrsh r0, [r5, r1] cmp r0, 0 beq _080D7464 movs r0, 0x4 b _080D7466 .align 2, 0 _080D7440: .4byte 0x0000ffff _080D7444: movs r1, 0xE ldrsh r0, [r5, r1] cmp r0, 0 bne _080D7468 adds r0, r2, 0 bl move_anim_task_del b _080D7468 _080D7454: ldrh r1, [r5, 0x1E] movs r2, 0x1E ldrsh r0, [r5, r2] cmp r0, 0 beq _080D7464 _080D745E: subs r0, r1, 0x1 strh r0, [r5, 0x1E] b _080D7468 _080D7464: movs r0, 0x1 _080D7466: strh r0, [r5, 0x8] _080D7468: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80D72DC thumb_func_start sub_80D7470 sub_80D7470: @ 80D7470 push {r4-r6,lr} adds r4, r0, 0 lsls r1, 24 lsrs r5, r1, 24 ldr r0, _080D7538 @ =gSpriteTemplate_83D9B40 movs r2, 0x14 ldrsh r1, [r4, r2] movs r3, 0x16 ldrsh r2, [r4, r3] movs r3, 0x23 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _080D74DC ldr r1, _080D753C @ =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r3, r0, r1 ldrh r2, [r3, 0x4] lsls r1, r2, 22 lsrs r1, 22 ldrh r6, [r4, 0x10] adds r1, r6 ldr r6, _080D7540 @ =0x000003ff adds r0, r6, 0 ands r1, r0 ldr r0, _080D7544 @ =0xfffffc00 ands r0, r2 orrs r0, r1 strh r0, [r3, 0x4] ldrh r0, [r4, 0x12] ldrh r1, [r4, 0x10] adds r0, r1 strh r0, [r4, 0x10] lsls r0, 16 cmp r0, 0 bge _080D74C4 movs r0, 0x7 strh r0, [r4, 0x10] _080D74C4: movs r2, 0x10 ldrsh r0, [r4, r2] cmp r0, 0x7 ble _080D74D0 movs r0, 0 strh r0, [r4, 0x10] _080D74D0: strh r5, [r3, 0x3A] movs r0, 0x3 strh r0, [r3, 0x3C] ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] _080D74DC: movs r3, 0x10 ldrsh r0, [r4, r3] cmp r0, 0 bne _080D74FE movs r5, 0x12 ldrsh r0, [r4, r5] cmp r0, 0 ble _080D74FE ldrh r1, [r4, 0x26] ldrh r6, [r4, 0x24] adds r1, r6 strh r1, [r4, 0x24] lsls r1, 24 asrs r1, 24 movs r0, 0x76 bl PlaySE12WithPanning _080D74FE: movs r0, 0x12 ldrsh r3, [r4, r0] ldrh r2, [r4, 0x16] cmp r3, 0 bge _080D7514 lsls r0, r2, 16 asrs r0, 16 movs r5, 0x18 ldrsh r1, [r4, r5] cmp r0, r1 ble _080D7524 _080D7514: cmp r3, 0 ble _080D7548 lsls r0, r2, 16 asrs r0, 16 movs r6, 0x18 ldrsh r1, [r4, r6] cmp r0, r1 blt _080D7548 _080D7524: ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] ldrh r0, [r4, 0x1A] ldrh r1, [r4, 0x14] adds r0, r1 strh r0, [r4, 0x14] movs r0, 0x1 b _080D7554 .align 2, 0 _080D7538: .4byte gSpriteTemplate_83D9B40 _080D753C: .4byte gSprites _080D7540: .4byte 0x000003ff _080D7544: .4byte 0xfffffc00 _080D7548: movs r3, 0x12 ldrsh r0, [r4, r3] lsls r0, 3 adds r0, r2, r0 strh r0, [r4, 0x16] movs r0, 0 _080D7554: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80D7470 thumb_func_start sub_80D755C sub_80D755C: @ 80D755C push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0xC ble _080D7592 ldr r3, _080D7598 @ =gTasks movs r0, 0x3C ldrsh r1, [r4, r0] lsls r1, 1 movs r0, 0x3A ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] adds r0, r4, 0 bl DestroySprite _080D7592: pop {r4} pop {r0} bx r0 .align 2, 0 _080D7598: .4byte gTasks thumb_func_end sub_80D755C thumb_func_start sub_80D759C sub_80D759C: @ 80D759C push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080D75C0 @ =gTasks adds r5, r0, r1 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0x1 beq _080D7618 cmp r0, 0x1 bgt _080D75C4 cmp r0, 0 beq _080D75CA b _080D764E .align 2, 0 _080D75C0: .4byte gTasks _080D75C4: cmp r0, 0x2 beq _080D7640 b _080D764E _080D75CA: ldr r0, _080D7614 @ =gUnknown_0202F7C9 ldrb r0, [r0] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, 0x20 strh r0, [r5, 0x26] strh r0, [r5, 0x24] cmp r0, 0x10 ble _080D75F4 adds r2, r0, 0 _080D75E4: adds r1, r2, 0 subs r1, 0x20 adds r2, r1, 0 lsls r0, r1, 16 asrs r0, 16 cmp r0, 0x10 bgt _080D75E4 strh r1, [r5, 0x24] _080D75F4: ldr r4, _080D7614 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldrb r0, [r4] bl sub_8079E90 lsls r0, 24 lsrs r0, 24 subs r0, 0x2 strh r0, [r5, 0x20] b _080D7638 .align 2, 0 _080D7614: .4byte gUnknown_0202F7C9 _080D7618: ldrh r0, [r5, 0xA] adds r0, 0x1 strh r0, [r5, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D764E movs r0, 0 strh r0, [r5, 0xA] adds r0, r5, 0 adds r1, r2, 0 bl sub_80D7654 lsls r0, 24 cmp r0, 0 beq _080D764E _080D7638: ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] b _080D764E _080D7640: movs r1, 0x1C ldrsh r0, [r5, r1] cmp r0, 0 bne _080D764E adds r0, r2, 0 bl move_anim_task_del _080D764E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80D759C thumb_func_start sub_80D7654 sub_80D7654: @ 80D7654 push {r4,r5,lr} adds r4, r0, 0 lsls r1, 24 lsrs r5, r1, 24 ldr r0, _080D76B0 @ =gBattleAnimSpriteTemplate_83D97D0 movs r2, 0x22 ldrsh r1, [r4, r2] movs r3, 0x24 ldrsh r2, [r4, r3] ldrh r3, [r4, 0x20] lsls r3, 24 lsrs r3, 24 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _080D7698 ldr r3, _080D76B4 @ =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r3, 0 adds r1, 0x1C adds r1, r0, r1 ldr r2, _080D76B8 @ =sub_80D76C4 str r2, [r1] adds r0, r3 strh r5, [r0, 0x3A] movs r1, 0xA strh r1, [r0, 0x3C] ldrh r0, [r4, 0x1C] adds r0, 0x1 strh r0, [r4, 0x1C] _080D7698: ldrh r2, [r4, 0x24] movs r0, 0x24 ldrsh r1, [r4, r0] movs r3, 0x26 ldrsh r0, [r4, r3] cmp r1, r0 bge _080D76BC adds r0, r2, 0 adds r0, 0x20 strh r0, [r4, 0x24] movs r0, 0 b _080D76BE .align 2, 0 _080D76B0: .4byte gBattleAnimSpriteTemplate_83D97D0 _080D76B4: .4byte gSprites _080D76B8: .4byte sub_80D76C4 _080D76BC: movs r0, 0x1 _080D76BE: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80D7654 thumb_func_start sub_80D76C4 sub_80D76C4: @ 80D76C4 push {r4,lr} adds r4, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080D76F8 ldr r3, _080D7700 @ =gTasks movs r0, 0x3C ldrsh r1, [r4, r0] lsls r1, 1 movs r0, 0x3A ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] adds r0, r4, 0 bl DestroySprite _080D76F8: pop {r4} pop {r0} bx r0 .align 2, 0 _080D7700: .4byte gTasks thumb_func_end sub_80D76C4 thumb_func_start sub_80D7704 sub_80D7704: @ 80D7704 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r5, r0, 0 ldrh r2, [r5, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x7 ldr r3, _080D780C @ =0x000003ff adds r0, r3, 0 ands r1, r0 ldr r0, _080D7810 @ =0xfffffc00 ands r0, r2 orrs r0, r1 strh r0, [r5, 0x4] ldr r4, _080D7814 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 mov r9, r0 ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r4, _080D7818 @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r3, r0, 24 ldrb r0, [r4] movs r1, 0x3 str r3, [sp] bl sub_8077ABC lsls r0, 24 lsrs r6, r0, 24 ldr r1, _080D781C @ =gUnknown_03004B00 ldrh r0, [r1, 0x8] strh r0, [r5, 0x2E] ldrh r0, [r1] ldr r3, [sp] adds r0, r3 strh r0, [r5, 0x30] ldrh r0, [r1, 0x4] mov r4, r9 adds r0, r4, r0 strh r0, [r5, 0x32] ldrh r0, [r1, 0x2] adds r0, r6 strh r0, [r5, 0x34] ldrh r0, [r1, 0x6] mov r7, r8 adds r0, r7, r0 strh r0, [r5, 0x36] adds r0, r5, 0 bl sub_8078314 adds r4, 0x20 movs r0, 0x98 lsls r0, 1 mov r12, r0 ldr r3, [sp] cmp r4, r12 bhi _080D77DE adds r0, r7, 0 adds r0, 0x20 ldrh r1, [r5, 0x30] ldrh r2, [r5, 0x32] cmp r0, 0xE0 bhi _080D77DE adds r4, r1, 0 mov r10, r12 _080D77AA: mov r7, r9 lsls r1, r7, 16 asrs r1, 16 adds r1, r4 lsls r1, 16 mov r7, r8 lsls r0, r7, 16 asrs r0, 16 adds r0, r2 lsls r0, 16 lsrs r0, 16 mov r8, r0 lsrs r0, r1, 16 mov r9, r0 movs r7, 0x80 lsls r7, 14 adds r1, r7 lsrs r1, 16 cmp r1, r10 bhi _080D77DE mov r1, r8 lsls r0, r1, 16 adds r0, r7 lsrs r0, 16 cmp r0, 0xE0 bls _080D77AA _080D77DE: ldrh r0, [r5, 0x30] negs r7, r0 strh r7, [r5, 0x30] ldrh r0, [r5, 0x32] negs r4, r0 strh r4, [r5, 0x32] lsls r0, r3, 16 movs r1, 0x80 lsls r1, 14 adds r0, r1 lsrs r0, 16 movs r2, 0x98 lsls r2, 1 mov r12, r2 ldr r1, _080D781C @ =gUnknown_03004B00 mov r10, r1 cmp r0, r12 bhi _080D784A lsls r1, r6, 16 movs r2, 0x80 lsls r2, 14 adds r0, r1, r2 b _080D7842 .align 2, 0 _080D780C: .4byte 0x000003ff _080D7810: .4byte 0xfffffc00 _080D7814: .4byte gUnknown_0202F7C9 _080D7818: .4byte gUnknown_0202F7C8 _080D781C: .4byte gUnknown_03004B00 _080D7820: lsls r1, r3, 16 asrs r1, 16 adds r1, r7 lsls r1, 16 asrs r0, r2, 16 adds r0, r4 lsls r0, 16 lsrs r6, r0, 16 lsrs r3, r1, 16 movs r0, 0x80 lsls r0, 14 adds r1, r0 lsrs r1, 16 cmp r1, r12 bhi _080D784A lsls r1, r6, 16 adds r0, r1, r0 _080D7842: lsrs r0, 16 adds r2, r1, 0 cmp r0, 0xE0 bls _080D7820 _080D784A: strh r3, [r5, 0x20] strh r6, [r5, 0x22] mov r1, r10 ldrh r0, [r1, 0x8] strh r0, [r5, 0x2E] strh r3, [r5, 0x30] mov r2, r9 strh r2, [r5, 0x32] strh r6, [r5, 0x34] mov r3, r8 strh r3, [r5, 0x36] adds r0, r5, 0 bl sub_8078314 mov r7, r10 ldrh r0, [r7, 0xA] strh r0, [r5, 0x34] ldrh r0, [r7, 0xC] strh r0, [r5, 0x36] ldr r0, _080D7884 @ =sub_80D7888 str r0, [r5, 0x1C] add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D7884: .4byte sub_80D7888 thumb_func_end sub_80D7704 thumb_func_start sub_80D7888 sub_80D7888: @ 80D7888 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 beq _080D78E0 ldrh r1, [r4, 0x30] ldrh r2, [r4, 0x38] adds r1, r2 strh r1, [r4, 0x38] ldrh r0, [r4, 0x32] ldrh r2, [r4, 0x3A] adds r0, r2 strh r0, [r4, 0x3A] strh r1, [r4, 0x24] strh r0, [r4, 0x26] movs r1, 0x3C ldrsh r0, [r4, r1] movs r2, 0x34 ldrsh r1, [r4, r2] bl Sin ldrh r1, [r4, 0x24] adds r0, r1 strh r0, [r4, 0x24] movs r2, 0x3C ldrsh r0, [r4, r2] movs r2, 0x34 ldrsh r1, [r4, r2] bl Sin ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x36] ldrh r2, [r4, 0x3C] adds r0, r2 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x3C] ldrh r0, [r4, 0x2E] subs r0, 0x1 strh r0, [r4, 0x2E] b _080D78E6 _080D78E0: adds r0, r4, 0 bl move_anim_8072740 _080D78E6: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D7888 thumb_func_start sub_80D78EC sub_80D78EC: @ 80D78EC push {r4,lr} adds r4, r0, 0 ldr r0, _080D7920 @ =gUnknown_03004B00 ldrh r0, [r0] strh r0, [r4, 0x2E] movs r0, 0x3C strh r0, [r4, 0x30] movs r0, 0x9 strh r0, [r4, 0x32] movs r0, 0x1E strh r0, [r4, 0x34] movs r0, 0xFE lsls r0, 8 strh r0, [r4, 0x36] ldr r1, _080D7924 @ =move_anim_8072740 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r1, _080D7928 @ =sub_8078174 str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4} pop {r0} bx r0 .align 2, 0 _080D7920: .4byte gUnknown_03004B00 _080D7924: .4byte move_anim_8072740 _080D7928: .4byte sub_8078174 thumb_func_end sub_80D78EC thumb_func_start sub_80D792C sub_80D792C: @ 80D792C push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r0, _080D7960 @ =gUnknown_0202F7C9 ldrb r0, [r0] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldr r0, _080D7964 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D796C ldr r0, _080D7968 @ =gUnknown_03004B00 ldrh r1, [r4, 0x32] ldrh r0, [r0, 0x4] subs r1, r0 strh r1, [r4, 0x32] b _080D7976 .align 2, 0 _080D7960: .4byte gUnknown_0202F7C9 _080D7964: .4byte gUnknown_0202F7C8 _080D7968: .4byte gUnknown_03004B00 _080D796C: ldr r0, _080D79A4 @ =gUnknown_03004B00 ldrh r0, [r0, 0x4] ldrh r1, [r4, 0x32] adds r0, r1 strh r0, [r4, 0x32] _080D7976: ldr r0, _080D79A8 @ =gUnknown_0202F7C9 ldrb r0, [r0] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 ldr r1, _080D79A4 @ =gUnknown_03004B00 lsrs r0, 24 ldrh r2, [r1, 0x6] adds r0, r2 strh r0, [r4, 0x36] ldrh r0, [r1, 0x8] strh r0, [r4, 0x2E] ldr r1, _080D79AC @ =move_anim_8072740 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080D79B0 @ =sub_8078B34 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080D79A4: .4byte gUnknown_03004B00 _080D79A8: .4byte gUnknown_0202F7C9 _080D79AC: .4byte move_anim_8072740 _080D79B0: .4byte sub_8078B34 thumb_func_end sub_80D792C thumb_func_start sub_80D79B4 sub_80D79B4: @ 80D79B4 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080D79CC @ =gUnknown_03004B00 movs r1, 0x4 ldrsh r0, [r5, r1] cmp r0, 0 bne _080D79D0 adds r0, r4, 0 movs r1, 0x1 bl sub_8078764 b _080D7A06 .align 2, 0 _080D79CC: .4byte gUnknown_03004B00 _080D79D0: ldr r0, _080D7A18 @ =gUnknown_0202F7C9 ldrb r0, [r0] adds r2, r4, 0 adds r2, 0x20 adds r3, r4, 0 adds r3, 0x22 movs r1, 0x1 bl sub_807A3FC ldr r0, _080D7A1C @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D79F6 ldrh r0, [r5] negs r0, r0 strh r0, [r5] _080D79F6: ldrh r0, [r5] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] ldrh r0, [r5, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] _080D7A06: ldr r1, _080D7A20 @ =sub_80D7A28 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080D7A24 @ =sub_80785E4 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D7A18: .4byte gUnknown_0202F7C9 _080D7A1C: .4byte gUnknown_0202F7C8 _080D7A20: .4byte sub_80D7A28 _080D7A24: .4byte sub_80785E4 thumb_func_end sub_80D79B4 thumb_func_start sub_80D7A28 sub_80D7A28: @ 80D7A28 push {lr} adds r3, r0, 0 movs r0, 0x3E adds r0, r3 mov r12, r0 ldrb r2, [r0] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 bne _080D7A5E adds r0, r3, 0 bl move_anim_8074EE0 _080D7A5E: pop {r0} bx r0 thumb_func_end sub_80D7A28 thumb_func_start sub_80D7A64 sub_80D7A64: @ 80D7A64 push {r4-r7,lr} sub sp, 0x10 adds r5, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r6, _080D7AAC @ =gUnknown_03004B00 ldrh r0, [r6, 0x8] strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] ldrh r0, [r5, 0x22] strh r0, [r5, 0x34] movs r1, 0xA ldrsh r0, [r6, r1] cmp r0, 0 bne _080D7AB4 ldr r4, _080D7AB0 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x6] adds r0, r6 strh r0, [r5, 0x36] b _080D7AC6 .align 2, 0 _080D7AAC: .4byte gUnknown_03004B00 _080D7AB0: .4byte gUnknown_0202F7C9 _080D7AB4: ldr r0, _080D7AE0 @ =gUnknown_0202F7C9 ldrb r0, [r0] adds r2, r5, 0 adds r2, 0x32 adds r3, r5, 0 adds r3, 0x36 movs r1, 0x1 bl sub_807A3FC _080D7AC6: ldr r0, _080D7AE4 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D7AEC ldr r0, _080D7AE8 @ =gUnknown_03004B00 ldrh r1, [r5, 0x32] ldrh r0, [r0, 0x4] subs r1, r0 strh r1, [r5, 0x32] b _080D7AF6 .align 2, 0 _080D7AE0: .4byte gUnknown_0202F7C9 _080D7AE4: .4byte gUnknown_0202F7C8 _080D7AE8: .4byte gUnknown_03004B00 _080D7AEC: ldr r0, _080D7B94 @ =gUnknown_03004B00 ldrh r0, [r0, 0x4] ldrh r2, [r5, 0x32] adds r0, r2 strh r0, [r5, 0x32] _080D7AF6: adds r7, r5, 0 adds r7, 0x2E adds r2, r7, 0 mov r1, sp movs r4, 0x7 _080D7B00: ldrh r0, [r2] strh r0, [r1] adds r2, 0x2 adds r1, 0x2 subs r4, 0x1 cmp r4, 0 bge _080D7B00 adds r0, r5, 0 bl sub_8078D60 ldrh r0, [r5, 0x30] movs r1, 0x1 eors r0, r1 strh r0, [r5, 0x30] ldrh r0, [r5, 0x32] eors r0, r1 strh r0, [r5, 0x32] _080D7B22: movs r0, 0x1 strh r0, [r5, 0x2E] adds r0, r5, 0 bl sub_8078CE8 movs r0, 0x20 ldrsh r1, [r5, r0] movs r2, 0x24 ldrsh r0, [r5, r2] adds r1, r0 adds r1, 0x10 movs r0, 0x88 lsls r0, 1 cmp r1, r0 bhi _080D7B56 movs r0, 0x22 ldrsh r1, [r5, r0] movs r2, 0x26 ldrsh r0, [r5, r2] adds r1, r0 cmp r1, 0xA0 bgt _080D7B56 movs r0, 0x10 negs r0, r0 cmp r1, r0 bge _080D7B22 _080D7B56: ldrh r0, [r5, 0x24] ldrh r1, [r5, 0x20] adds r0, r1 movs r1, 0 strh r0, [r5, 0x20] ldrh r0, [r5, 0x26] ldrh r2, [r5, 0x22] adds r0, r2 strh r0, [r5, 0x22] strh r1, [r5, 0x26] strh r1, [r5, 0x24] ldr r6, _080D7B98 @ =sub_8078D8C ldr r1, _080D7B9C @ =sub_80D7BA0 mov r3, sp adds r2, r7, 0 movs r4, 0x7 _080D7B76: ldrh r0, [r3] strh r0, [r2] adds r3, 0x2 adds r2, 0x2 subs r4, 0x1 cmp r4, 0 bge _080D7B76 str r6, [r5, 0x1C] adds r0, r5, 0 bl oamt_set_x3A_32 add sp, 0x10 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D7B94: .4byte gUnknown_03004B00 _080D7B98: .4byte sub_8078D8C _080D7B9C: .4byte sub_80D7BA0 thumb_func_end sub_80D7A64 thumb_func_start sub_80D7BA0 sub_80D7BA0: @ 80D7BA0 push {r4,r5,lr} adds r4, r0, 0 ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 movs r5, 0 strh r0, [r4, 0x20] ldrh r0, [r4, 0x26] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] strh r5, [r4, 0x26] strh r5, [r4, 0x24] movs r0, 0x80 strh r0, [r4, 0x2E] ldr r0, _080D7BFC @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 ldr r1, _080D7C00 @ =0x0000ffec cmp r0, 0 beq _080D7BD0 movs r1, 0x14 _080D7BD0: movs r2, 0x2E ldrsh r0, [r4, r2] lsls r1, 16 asrs r1, 16 bl Sin strh r0, [r4, 0x34] movs r1, 0x2E ldrsh r0, [r4, r1] movs r1, 0xF bl Cos strh r0, [r4, 0x36] strh r5, [r4, 0x38] ldr r1, _080D7C04 @ =sub_80D7C08 str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D7BFC: .4byte gUnknown_0202F7C8 _080D7C00: .4byte 0x0000ffec _080D7C04: .4byte sub_80D7C08 thumb_func_end sub_80D7BA0 thumb_func_start sub_80D7C08 sub_80D7C08: @ 80D7C08 push {r4,lr} adds r4, r0, 0 ldr r0, _080D7C5C @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 ldr r1, _080D7C60 @ =0x0000ffec cmp r0, 0 beq _080D7C1E movs r1, 0x14 _080D7C1E: movs r2, 0x38 ldrsh r0, [r4, r2] cmp r0, 0x1F bgt _080D7C64 movs r2, 0x2E ldrsh r0, [r4, r2] lsls r1, 16 asrs r1, 16 bl Sin ldrh r1, [r4, 0x34] subs r0, r1 strh r0, [r4, 0x24] movs r1, 0x2E ldrsh r0, [r4, r1] movs r1, 0xF bl Cos ldrh r1, [r4, 0x36] subs r0, r1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x2E] adds r0, 0x10 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] b _080D7C82 .align 2, 0 _080D7C5C: .4byte gUnknown_0202F7C8 _080D7C60: .4byte 0x0000ffec _080D7C64: ldrh r0, [r4, 0x24] ldrh r2, [r4, 0x20] adds r0, r2 movs r1, 0 strh r0, [r4, 0x20] ldrh r0, [r4, 0x26] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] strh r1, [r4, 0x26] strh r1, [r4, 0x24] strh r1, [r4, 0x36] strh r1, [r4, 0x34] ldr r0, _080D7C88 @ =sub_80D7C8C str r0, [r4, 0x1C] _080D7C82: pop {r4} pop {r0} bx r0 .align 2, 0 _080D7C88: .4byte sub_80D7C8C thumb_func_end sub_80D7C08 thumb_func_start sub_80D7C8C sub_80D7C8C: @ 80D7C8C push {r4,lr} adds r4, r0, 0 movs r0, 0x1 strh r0, [r4, 0x2E] adds r0, r4, 0 bl sub_8078CE8 movs r1, 0x20 ldrsh r0, [r4, r1] movs r2, 0x24 ldrsh r1, [r4, r2] adds r0, r1 adds r0, 0x10 movs r1, 0x88 lsls r1, 1 cmp r0, r1 bhi _080D7CC8 movs r1, 0x22 ldrsh r0, [r4, r1] movs r2, 0x26 ldrsh r1, [r4, r2] adds r1, r0, r1 movs r0, 0x80 lsls r0, 1 cmp r1, r0 bgt _080D7CC8 movs r0, 0x10 negs r0, r0 cmp r1, r0 bge _080D7CCE _080D7CC8: adds r0, r4, 0 bl move_anim_8072740 _080D7CCE: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D7C8C thumb_func_start sub_80D7CD4 sub_80D7CD4: @ 80D7CD4 push {r4-r7,lr} sub sp, 0x10 adds r5, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r1, _080D7D18 @ =gUnknown_03004B00 ldrh r0, [r1, 0x8] strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] ldrh r0, [r5, 0x22] strh r0, [r5, 0x34] movs r2, 0xE ldrsh r0, [r1, r2] cmp r0, 0 bne _080D7D20 ldr r4, _080D7D1C @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] b _080D7D32 .align 2, 0 _080D7D18: .4byte gUnknown_03004B00 _080D7D1C: .4byte gUnknown_0202F7C9 _080D7D20: ldr r0, _080D7D50 @ =gUnknown_0202F7C9 ldrb r0, [r0] adds r2, r5, 0 adds r2, 0x32 adds r3, r5, 0 adds r3, 0x36 movs r1, 0x1 bl sub_807A3FC _080D7D32: ldr r0, _080D7D54 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D7D5C ldr r0, _080D7D58 @ =gUnknown_03004B00 ldrh r1, [r5, 0x32] ldrh r2, [r0, 0x4] subs r1, r2 strh r1, [r5, 0x32] adds r1, r0, 0 b _080D7D66 .align 2, 0 _080D7D50: .4byte gUnknown_0202F7C9 _080D7D54: .4byte gUnknown_0202F7C8 _080D7D58: .4byte gUnknown_03004B00 _080D7D5C: ldr r1, _080D7E10 @ =gUnknown_03004B00 ldrh r0, [r1, 0x4] ldrh r2, [r5, 0x32] adds r0, r2 strh r0, [r5, 0x32] _080D7D66: ldrh r0, [r1, 0x6] ldrh r1, [r5, 0x36] adds r0, r1 strh r0, [r5, 0x36] adds r0, r5, 0 bl sub_8078D60 adds r7, r5, 0 adds r7, 0x2E adds r2, r7, 0 mov r1, sp movs r4, 0x7 _080D7D7E: ldrh r0, [r2] strh r0, [r1] adds r2, 0x2 adds r1, 0x2 subs r4, 0x1 cmp r4, 0 bge _080D7D7E ldrh r0, [r5, 0x30] movs r1, 0x1 eors r0, r1 strh r0, [r5, 0x30] ldrh r0, [r5, 0x32] eors r0, r1 strh r0, [r5, 0x32] _080D7D9A: movs r0, 0x1 strh r0, [r5, 0x2E] adds r0, r5, 0 bl sub_8078CE8 movs r2, 0x20 ldrsh r1, [r5, r2] movs r2, 0x24 ldrsh r0, [r5, r2] adds r1, r0 adds r1, 0x10 movs r0, 0x88 lsls r0, 1 cmp r1, r0 bhi _080D7DCE movs r0, 0x22 ldrsh r1, [r5, r0] movs r2, 0x26 ldrsh r0, [r5, r2] adds r1, r0 cmp r1, 0xA0 bgt _080D7DCE movs r0, 0x10 negs r0, r0 cmp r1, r0 bge _080D7D9A _080D7DCE: ldrh r0, [r5, 0x24] ldrh r1, [r5, 0x20] adds r0, r1 movs r1, 0 strh r0, [r5, 0x20] ldrh r0, [r5, 0x26] ldrh r2, [r5, 0x22] adds r0, r2 strh r0, [r5, 0x22] strh r1, [r5, 0x26] strh r1, [r5, 0x24] ldr r1, _080D7E10 @ =gUnknown_03004B00 ldr r6, _080D7E14 @ =sub_80D7E18 mov r3, sp adds r2, r7, 0 movs r4, 0x7 _080D7DEE: ldrh r0, [r3] strh r0, [r2] adds r3, 0x2 adds r2, 0x2 subs r4, 0x1 cmp r4, 0 bge _080D7DEE ldrh r0, [r1, 0xA] strh r0, [r5, 0x38] ldrh r0, [r1, 0xC] strh r0, [r5, 0x3A] str r6, [r5, 0x1C] add sp, 0x10 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D7E10: .4byte gUnknown_03004B00 _080D7E14: .4byte sub_80D7E18 thumb_func_end sub_80D7CD4 thumb_func_start sub_80D7E18 sub_80D7E18: @ 80D7E18 push {r4,lr} adds r4, r0, 0 bl sub_8078CE8 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _080D7E2C movs r0, 0x1 strh r0, [r4, 0x2E] _080D7E2C: movs r2, 0x3C ldrsh r0, [r4, r2] movs r2, 0x38 ldrsh r1, [r4, r2] bl Sin ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x3A] ldrh r2, [r4, 0x3C] adds r0, r2 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x3C] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x1 bne _080D7E82 movs r2, 0x20 ldrsh r0, [r4, r2] movs r2, 0x24 ldrsh r1, [r4, r2] adds r0, r1 adds r0, 0x10 movs r1, 0x88 lsls r1, 1 cmp r0, r1 bhi _080D7E7C movs r0, 0x22 ldrsh r1, [r4, r0] movs r2, 0x26 ldrsh r0, [r4, r2] adds r1, r0 cmp r1, 0xA0 bgt _080D7E7C movs r0, 0x10 negs r0, r0 cmp r1, r0 bge _080D7E82 _080D7E7C: adds r0, r4, 0 bl move_anim_8072740 _080D7E82: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D7E18 thumb_func_start sub_80D7E88 sub_80D7E88: @ 80D7E88 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _080D7EF4 ldr r5, _080D7EA8 @ =gUnknown_03004B00 movs r1, 0x4 ldrsh r0, [r5, r1] cmp r0, 0 bne _080D7EAC adds r0, r4, 0 movs r1, 0 bl sub_8078764 b _080D7EE2 .align 2, 0 _080D7EA8: .4byte gUnknown_03004B00 _080D7EAC: ldr r0, _080D7EEC @ =gUnknown_0202F7C9 ldrb r0, [r0] adds r2, r4, 0 adds r2, 0x20 adds r3, r4, 0 adds r3, 0x22 movs r1, 0 bl sub_807A3FC ldr r0, _080D7EF0 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D7ED2 ldrh r0, [r5] negs r0, r0 strh r0, [r5] _080D7ED2: ldrh r0, [r5] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] ldrh r0, [r5, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] _080D7EE2: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _080D7F08 .align 2, 0 _080D7EEC: .4byte gUnknown_0202F7C9 _080D7EF0: .4byte gUnknown_0202F7C8 _080D7EF4: adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080D7F08 adds r0, r4, 0 bl move_anim_8072740 _080D7F08: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80D7E88 thumb_func_start sub_80D7F10 sub_80D7F10: @ 80D7F10 push {r4-r6,lr} adds r5, r0, 0 ldr r6, _080D7F30 @ =gUnknown_03004B00 movs r1, 0x8 ldrsh r0, [r6, r1] cmp r0, 0 bne _080D7F80 movs r1, 0xA ldrsh r0, [r6, r1] cmp r0, 0 bne _080D7F34 adds r0, r5, 0 movs r1, 0 bl sub_80787B0 b _080D7F72 .align 2, 0 _080D7F30: .4byte gUnknown_03004B00 _080D7F34: ldr r4, _080D7F5C @ =gUnknown_0202F7C8 ldrb r0, [r4] adds r2, r5, 0 adds r2, 0x20 adds r3, r5, 0 adds r3, 0x22 movs r1, 0 bl sub_807A3FC ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D7F60 ldrh r0, [r5, 0x20] ldrh r1, [r6] subs r0, r1 b _080D7F66 .align 2, 0 _080D7F5C: .4byte gUnknown_0202F7C8 _080D7F60: ldrh r0, [r6] ldrh r1, [r5, 0x20] adds r0, r1 _080D7F66: strh r0, [r5, 0x20] ldr r0, _080D7F78 @ =gUnknown_03004B00 ldrh r0, [r0, 0x2] ldrh r1, [r5, 0x22] adds r0, r1 strh r0, [r5, 0x22] _080D7F72: ldr r0, _080D7F7C @ =gUnknown_0202F7C8 b _080D7FD0 .align 2, 0 _080D7F78: .4byte gUnknown_03004B00 _080D7F7C: .4byte gUnknown_0202F7C8 _080D7F80: movs r1, 0xA ldrsh r0, [r6, r1] cmp r0, 0 bne _080D7F92 adds r0, r5, 0 movs r1, 0 bl sub_8078764 b _080D7FCE _080D7F92: ldr r4, _080D7FB8 @ =gUnknown_0202F7C9 ldrb r0, [r4] adds r2, r5, 0 adds r2, 0x20 adds r3, r5, 0 adds r3, 0x22 movs r1, 0 bl sub_807A3FC ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D7FBC ldrh r0, [r5, 0x20] ldrh r1, [r6] subs r0, r1 b _080D7FC2 .align 2, 0 _080D7FB8: .4byte gUnknown_0202F7C9 _080D7FBC: ldrh r0, [r6] ldrh r1, [r5, 0x20] adds r0, r1 _080D7FC2: strh r0, [r5, 0x20] ldr r0, _080D7FEC @ =gUnknown_03004B00 ldrh r0, [r0, 0x2] ldrh r1, [r5, 0x22] adds r0, r1 strh r0, [r5, 0x22] _080D7FCE: ldr r0, _080D7FF0 @ =gUnknown_0202F7C9 _080D7FD0: ldrb r0, [r0] strh r0, [r5, 0x3C] ldr r0, _080D7FEC @ =gUnknown_03004B00 movs r1, 0xA ldrsh r0, [r0, r1] cmp r0, 0 beq _080D7FE8 bl battle_type_is_double lsls r0, 24 cmp r0, 0 bne _080D7FF4 _080D7FE8: movs r0, 0x20 b _080D7FF6 .align 2, 0 _080D7FEC: .4byte gUnknown_03004B00 _080D7FF0: .4byte gUnknown_0202F7C9 _080D7FF4: movs r0, 0x40 _080D7FF6: strh r0, [r5, 0x3A] ldr r0, _080D803C @ =gUnknown_0202F7C9 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D800C ldrh r0, [r5, 0x22] adds r0, 0x8 strh r0, [r5, 0x22] _080D800C: ldr r1, _080D8040 @ =gUnknown_03004B00 ldrh r0, [r1, 0x6] strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] strh r0, [r5, 0x32] ldrh r0, [r5, 0x22] strh r0, [r5, 0x34] ldrh r1, [r1, 0x4] adds r0, r1 strh r0, [r5, 0x36] adds r0, r5, 0 bl obj_translate_based_on_private_1_2_3_4 movs r0, 0x40 strh r0, [r5, 0x38] ldr r1, _080D8044 @ =sub_80D8048 str r1, [r5, 0x1C] adds r0, r5, 0 bl _call_via_r1 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D803C: .4byte gUnknown_0202F7C9 _080D8040: .4byte gUnknown_03004B00 _080D8044: .4byte sub_80D8048 thumb_func_end sub_80D7F10 thumb_func_start sub_80D8048 sub_80D8048: @ 80D8048 push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 bne _080D80D2 movs r1, 0x38 ldrsh r0, [r4, r1] movs r2, 0x3A ldrsh r1, [r4, r2] bl Sin ldrh r1, [r4, 0x24] adds r0, r1 strh r0, [r4, 0x24] movs r2, 0x38 ldrsh r0, [r4, r2] movs r1, 0x6 negs r1, r1 bl Cos ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x38] subs r0, 0x40 lsls r0, 16 lsrs r0, 16 cmp r0, 0x7F bhi _080D80A4 ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 bl sub_8079ED4 movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x5] b _080D80C6 _080D80A4: ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 bl sub_8079ED4 lsls r0, 24 lsrs r0, 24 adds r0, 0x1 movs r1, 0x3 ands r0, r1 lsls r0, 2 ldrb r2, [r4, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r4, 0x5] _080D80C6: ldrh r0, [r4, 0x38] adds r0, 0x3 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] b _080D80D8 _080D80D2: adds r0, r4, 0 bl move_anim_8072740 _080D80D8: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D8048 thumb_func_start sub_80D80E0 sub_80D80E0: @ 80D80E0 push {r4,r5,lr} sub sp, 0x10 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080D81A8 @ =REG_BLDCNT ldr r2, _080D81AC @ =0x00003f42 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r2, 0x80 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r4, _080D81B0 @ =REG_BG1CNT ldrb r1, [r4] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4] ldrb r1, [r4, 0x1] movs r0, 0x3F ands r0, r1 strb r0, [r4, 0x1] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080D812A ldrb r0, [r4] movs r1, 0xD negs r1, r1 ands r1, r0 movs r0, 0x4 orrs r1, r0 strb r1, [r4] _080D812A: ldr r0, _080D81B4 @ =gUnknown_030042C0 movs r1, 0 strh r1, [r0] ldr r0, _080D81B8 @ =gUnknown_030041B4 strh r1, [r0] ldr r0, _080D81BC @ =REG_BG1HOFS strh r1, [r0] adds r0, 0x2 strh r1, [r0] mov r0, sp bl sub_8078914 ldr r1, [sp, 0x4] movs r0, 0 str r0, [sp, 0xC] ldr r0, _080D81C0 @ =0x040000d4 add r2, sp, 0xC str r2, [r0] str r1, [r0, 0x4] ldr r2, _080D81C4 @ =0x85000400 str r2, [r0, 0x8] ldr r2, [r0, 0x8] ldr r2, _080D81C8 @ =gWeatherFog1Tiles ldr r3, [sp] str r2, [r0] str r3, [r0, 0x4] ldr r2, _080D81CC @ =0x80000400 str r2, [r0, 0x8] ldr r0, [r0, 0x8] ldr r0, _080D81D0 @ =gWeatherFog1Tilemap bl LZDecompressVram ldr r0, _080D81D4 @ =gUnknown_083970E8 mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 movs r2, 0x20 bl LoadPalette bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080D8190 mov r0, sp ldrb r0, [r0, 0x8] ldr r1, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_80763FC _080D8190: ldr r0, _080D81D8 @ =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _080D81DC @ =sub_80D81E0 str r0, [r1] add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D81A8: .4byte REG_BLDCNT _080D81AC: .4byte 0x00003f42 _080D81B0: .4byte REG_BG1CNT _080D81B4: .4byte gUnknown_030042C0 _080D81B8: .4byte gUnknown_030041B4 _080D81BC: .4byte REG_BG1HOFS _080D81C0: .4byte 0x040000d4 _080D81C4: .4byte 0x85000400 _080D81C8: .4byte gWeatherFog1Tiles _080D81CC: .4byte 0x80000400 _080D81D0: .4byte gWeatherFog1Tilemap _080D81D4: .4byte gUnknown_083970E8 _080D81D8: .4byte gTasks _080D81DC: .4byte sub_80D81E0 thumb_func_end sub_80D80E0 thumb_func_start sub_80D81E0 sub_80D81E0: @ 80D81E0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r6, r0, 24 ldr r2, _080D8220 @ =gUnknown_030042C0 ldr r1, _080D8224 @ =0x0000ffff adds r0, r1, 0 ldrh r4, [r2] adds r0, r4 strh r0, [r2] ldr r1, _080D8228 @ =gUnknown_030041B4 ldr r3, _080D822C @ =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r3 movs r4, 0x20 ldrsh r0, [r0, r4] adds r4, r1, 0 cmp r0, 0x4 bls _080D8214 b _080D83B0 _080D8214: lsls r0, 2 ldr r1, _080D8230 @ =_080D8234 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080D8220: .4byte gUnknown_030042C0 _080D8224: .4byte 0x0000ffff _080D8228: .4byte gUnknown_030041B4 _080D822C: .4byte gTasks _080D8230: .4byte _080D8234 .align 2, 0 _080D8234: .4byte _080D8248 .4byte _080D82A0 .4byte _080D82C2 .4byte _080D8304 .4byte _080D838C _080D8248: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r3, r0, r3 ldrh r0, [r3, 0x1C] adds r0, 0x1 movs r4, 0 strh r0, [r3, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 beq _080D8262 b _080D83B0 _080D8262: strh r4, [r3, 0x1C] ldrh r0, [r3, 0x1A] adds r0, 0x1 strh r0, [r3, 0x1A] ldr r1, _080D8298 @ =gUnknown_083D9D6C movs r2, 0x1A ldrsh r0, [r3, r2] adds r0, r1 ldrb r1, [r0] strh r1, [r3, 0x1E] ldr r2, _080D829C @ =REG_BLDALPHA movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r1, 0x1E ldrsh r0, [r3, r1] cmp r0, 0x9 beq _080D828C b _080D83B0 _080D828C: ldrh r0, [r3, 0x20] adds r0, 0x1 strh r0, [r3, 0x20] strh r4, [r3, 0x1E] b _080D83B0 .align 2, 0 _080D8298: .4byte gUnknown_083D9D6C _080D829C: .4byte REG_BLDALPHA _080D82A0: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r3, r0, r3 ldrh r0, [r3, 0x1E] adds r0, 0x1 strh r0, [r3, 0x1E] lsls r0, 16 asrs r0, 16 cmp r0, 0x51 bne _080D83B0 movs r0, 0x9 strh r0, [r3, 0x1E] ldrh r0, [r3, 0x20] adds r0, 0x1 strh r0, [r3, 0x20] b _080D83B0 _080D82C2: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r3, r0, r3 ldrh r0, [r3, 0x1C] adds r0, 0x1 strh r0, [r3, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _080D83B0 movs r0, 0 strh r0, [r3, 0x1C] ldrh r1, [r3, 0x1E] subs r1, 0x1 strh r1, [r3, 0x1E] ldr r2, _080D8300 @ =REG_BLDALPHA movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r2, 0x1E ldrsh r1, [r3, r2] cmp r1, 0 bne _080D83B0 ldrh r0, [r3, 0x20] adds r0, 0x1 strh r0, [r3, 0x20] strh r1, [r3, 0x1E] b _080D83B0 .align 2, 0 _080D8300: .4byte REG_BLDALPHA _080D8304: mov r0, sp bl sub_8078914 ldr r2, [sp] movs r3, 0x80 lsls r3, 6 lsls r4, r6, 2 mov r10, r4 add r5, sp, 0xC movs r7, 0 ldr r1, _080D83C0 @ =0x040000d4 movs r4, 0x80 lsls r4, 5 mov r8, r5 ldr r0, _080D83C4 @ =0x85000400 mov r12, r0 movs r0, 0x85 lsls r0, 24 mov r9, r0 _080D832A: str r7, [sp, 0xC] mov r0, r8 str r0, [r1] str r2, [r1, 0x4] mov r0, r12 str r0, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r4 subs r3, r4 cmp r3, r4 bhi _080D832A str r7, [sp, 0xC] str r5, [r1] str r2, [r1, 0x4] lsrs r0, r3, 2 mov r2, r9 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r1, [sp, 0x4] movs r0, 0 str r0, [sp, 0xC] ldr r0, _080D83C0 @ =0x040000d4 str r5, [r0] str r1, [r0, 0x4] ldr r1, _080D83C8 @ =0x85000200 str r1, [r0, 0x8] ldr r0, [r0, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080D8378 ldr r2, _080D83CC @ =REG_BG1CNT ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _080D8378: ldr r0, _080D83D0 @ =gTasks mov r4, r10 adds r1, r4, r6 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x20] adds r0, 0x1 strh r0, [r1, 0x20] ldr r2, _080D83D4 @ =gUnknown_030042C0 ldr r4, _080D83D8 @ =gUnknown_030041B4 _080D838C: movs r1, 0 strh r1, [r2] strh r1, [r4] ldr r0, _080D83DC @ =REG_BLDCNT strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r2, _080D83CC @ =REG_BG1CNT ldrb r1, [r2] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2] adds r0, r6, 0 bl move_anim_task_del _080D83B0: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D83C0: .4byte 0x040000d4 _080D83C4: .4byte 0x85000400 _080D83C8: .4byte 0x85000200 _080D83CC: .4byte REG_BG1CNT _080D83D0: .4byte gTasks _080D83D4: .4byte gUnknown_030042C0 _080D83D8: .4byte gUnknown_030041B4 _080D83DC: .4byte REG_BLDCNT thumb_func_end sub_80D81E0 thumb_func_start sub_80D83E0 sub_80D83E0: @ 80D83E0 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080D840C @ =gUnknown_0202F7C8 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] ldr r0, _080D8410 @ =sub_807941C str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D840C: .4byte gUnknown_0202F7C8 _080D8410: .4byte sub_807941C thumb_func_end sub_80D83E0 thumb_func_start sub_80D8414 sub_80D8414: @ 80D8414 push {r4,r5,lr} sub sp, 0x10 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080D84E0 @ =REG_BLDCNT ldr r2, _080D84E4 @ =0x00003f42 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r2, 0x80 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r4, _080D84E8 @ =REG_BG1CNT ldrb r1, [r4] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4] ldrb r1, [r4, 0x1] movs r0, 0x3F ands r0, r1 strb r0, [r4, 0x1] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080D845E ldrb r0, [r4] movs r1, 0xD negs r1, r1 ands r1, r0 movs r0, 0x4 orrs r1, r0 strb r1, [r4] _080D845E: ldr r0, _080D84EC @ =gUnknown_030042C0 movs r1, 0 strh r1, [r0] ldr r0, _080D84F0 @ =gUnknown_030041B4 strh r1, [r0] ldr r0, _080D84F4 @ =REG_BG1HOFS strh r1, [r0] adds r0, 0x2 strh r1, [r0] mov r0, sp bl sub_8078914 ldr r1, [sp, 0x4] movs r0, 0 str r0, [sp, 0xC] ldr r0, _080D84F8 @ =0x040000d4 add r2, sp, 0xC str r2, [r0] str r1, [r0, 0x4] ldr r2, _080D84FC @ =0x85000400 str r2, [r0, 0x8] ldr r2, [r0, 0x8] ldr r2, _080D8500 @ =gWeatherFog1Tiles ldr r3, [sp] str r2, [r0] str r3, [r0, 0x4] ldr r2, _080D8504 @ =0x80000400 str r2, [r0, 0x8] ldr r0, [r0, 0x8] ldr r0, _080D8508 @ =gWeatherFog1Tilemap bl LZDecompressVram ldr r0, _080D850C @ =gUnknown_083970E8 mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 movs r2, 0x20 bl LoadPalette bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080D84C4 mov r0, sp ldrb r0, [r0, 0x8] ldr r1, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_80763FC _080D84C4: ldr r1, _080D8510 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _080D8514 @ =0x0000ffff strh r1, [r0, 0x26] ldr r1, _080D8518 @ =sub_80D851C str r1, [r0] add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D84E0: .4byte REG_BLDCNT _080D84E4: .4byte 0x00003f42 _080D84E8: .4byte REG_BG1CNT _080D84EC: .4byte gUnknown_030042C0 _080D84F0: .4byte gUnknown_030041B4 _080D84F4: .4byte REG_BG1HOFS _080D84F8: .4byte 0x040000d4 _080D84FC: .4byte 0x85000400 _080D8500: .4byte gWeatherFog1Tiles _080D8504: .4byte 0x80000400 _080D8508: .4byte gWeatherFog1Tilemap _080D850C: .4byte gUnknown_083970E8 _080D8510: .4byte gTasks _080D8514: .4byte 0x0000ffff _080D8518: .4byte sub_80D851C thumb_func_end sub_80D8414 thumb_func_start sub_80D851C sub_80D851C: @ 80D851C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r6, r0, 24 ldr r3, _080D8558 @ =gUnknown_030042C0 ldr r4, _080D855C @ =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r4 ldrh r0, [r1, 0x26] ldrh r2, [r3] adds r0, r2 strh r0, [r3] ldr r2, _080D8560 @ =gUnknown_030041B4 movs r5, 0x20 ldrsh r0, [r1, r5] cmp r0, 0x4 bls _080D854C b _080D86D0 _080D854C: lsls r0, 2 ldr r1, _080D8564 @ =_080D8568 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080D8558: .4byte gUnknown_030042C0 _080D855C: .4byte gTasks _080D8560: .4byte gUnknown_030041B4 _080D8564: .4byte _080D8568 .align 2, 0 _080D8568: .4byte _080D857C .4byte _080D85C0 .4byte _080D85E2 .4byte _080D8624 .4byte _080D86AC _080D857C: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r4 ldrh r0, [r4, 0x1A] adds r0, 0x1 strh r0, [r4, 0x1A] ldr r1, _080D85B8 @ =gUnknown_083D9D98 movs r2, 0x1A ldrsh r0, [r4, r2] adds r0, r1 ldrb r1, [r0] strh r1, [r4, 0x1E] ldr r2, _080D85BC @ =REG_BLDALPHA movs r0, 0x11 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r5, 0x1E ldrsh r0, [r4, r5] cmp r0, 0x5 beq _080D85AC b _080D86D0 _080D85AC: ldrh r0, [r4, 0x20] adds r0, 0x1 strh r0, [r4, 0x20] movs r0, 0 strh r0, [r4, 0x1E] b _080D86D0 .align 2, 0 _080D85B8: .4byte gUnknown_083D9D98 _080D85BC: .4byte REG_BLDALPHA _080D85C0: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r1, r0, r4 ldrh r0, [r1, 0x1E] adds r0, 0x1 strh r0, [r1, 0x1E] lsls r0, 16 asrs r0, 16 cmp r0, 0x51 bne _080D86D0 movs r0, 0x5 strh r0, [r1, 0x1E] ldrh r0, [r1, 0x20] adds r0, 0x1 strh r0, [r1, 0x20] b _080D86D0 _080D85E2: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r4 ldrh r0, [r4, 0x1C] adds r0, 0x1 strh r0, [r4, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _080D86D0 movs r0, 0 strh r0, [r4, 0x1C] ldrh r1, [r4, 0x1E] subs r1, 0x1 strh r1, [r4, 0x1E] ldr r2, _080D8620 @ =REG_BLDALPHA movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r0, 0x1E ldrsh r1, [r4, r0] cmp r1, 0 bne _080D86D0 ldrh r0, [r4, 0x20] adds r0, 0x1 strh r0, [r4, 0x20] strh r1, [r4, 0x1E] b _080D86D0 .align 2, 0 _080D8620: .4byte REG_BLDALPHA _080D8624: mov r0, sp bl sub_8078914 ldr r2, [sp] movs r3, 0x80 lsls r3, 6 lsls r1, r6, 2 mov r10, r1 add r5, sp, 0xC movs r7, 0 ldr r1, _080D86E0 @ =0x040000d4 movs r4, 0x80 lsls r4, 5 mov r8, r5 ldr r0, _080D86E4 @ =0x85000400 mov r12, r0 movs r0, 0x85 lsls r0, 24 mov r9, r0 _080D864A: str r7, [sp, 0xC] mov r0, r8 str r0, [r1] str r2, [r1, 0x4] mov r0, r12 str r0, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r4 subs r3, r4 cmp r3, r4 bhi _080D864A str r7, [sp, 0xC] str r5, [r1] str r2, [r1, 0x4] lsrs r0, r3, 2 mov r2, r9 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r1, [sp, 0x4] movs r0, 0 str r0, [sp, 0xC] ldr r0, _080D86E0 @ =0x040000d4 str r5, [r0] str r1, [r0, 0x4] ldr r1, _080D86E8 @ =0x85000200 str r1, [r0, 0x8] ldr r0, [r0, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080D8698 ldr r2, _080D86EC @ =REG_BG1CNT ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _080D8698: ldr r0, _080D86F0 @ =gTasks mov r5, r10 adds r1, r5, r6 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x20] adds r0, 0x1 strh r0, [r1, 0x20] ldr r3, _080D86F4 @ =gUnknown_030042C0 ldr r2, _080D86F8 @ =gUnknown_030041B4 _080D86AC: movs r1, 0 strh r1, [r3] strh r1, [r2] ldr r0, _080D86FC @ =REG_BLDCNT strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r2, _080D86EC @ =REG_BG1CNT ldrb r1, [r2] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2] adds r0, r6, 0 bl move_anim_task_del _080D86D0: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D86E0: .4byte 0x040000d4 _080D86E4: .4byte 0x85000400 _080D86E8: .4byte 0x85000200 _080D86EC: .4byte REG_BG1CNT _080D86F0: .4byte gTasks _080D86F4: .4byte gUnknown_030042C0 _080D86F8: .4byte gUnknown_030041B4 _080D86FC: .4byte REG_BLDCNT thumb_func_end sub_80D851C thumb_func_start sub_80D8700 sub_80D8700: @ 80D8700 push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 ldr r6, _080D87E8 @ =gUnknown_03004B00 ldrh r0, [r6] strh r0, [r5, 0x2E] ldr r0, _080D87EC @ =gUnknown_0202F7C8 mov r8, r0 ldrb r0, [r0] movs r1, 0x2 bl sub_8077ABC adds r4, r0, 0 ldr r7, _080D87F0 @ =gUnknown_0202F7C9 ldrb r0, [r7] movs r1, 0x2 bl sub_8077ABC lsls r4, 24 lsls r0, 24 cmp r4, r0 bcs _080D8734 movs r0, 0x80 lsls r0, 8 strh r0, [r5, 0x3C] _080D8734: ldr r3, _080D87F4 @ =gUnknown_02024A72 ldrb r0, [r7] adds r0, r3 ldrb r1, [r0] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _080D8794 ldrh r0, [r6, 0x2] negs r0, r0 strh r0, [r6, 0x2] ldrh r0, [r6, 0x6] negs r0, r0 strh r0, [r6, 0x6] movs r1, 0x3C ldrsh r0, [r5, r1] movs r1, 0x80 lsls r1, 8 ands r0, r1 cmp r0, 0 beq _080D8790 mov r1, r8 ldrb r0, [r1] adds r0, r3 ldrb r1, [r0] adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _080D8790 movs r0, 0x1 bl obj_id_for_side_relative_to_move ldr r2, _080D87F8 @ =gSprites lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x43 ldrb r0, [r1] adds r0, 0x1 adds r1, r5, 0 adds r1, 0x43 strb r0, [r1] _080D8790: movs r0, 0x1 strh r0, [r5, 0x3A] _080D8794: ldr r4, _080D87EC @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r6, _080D87E8 @ =gUnknown_03004B00 movs r1, 0xE ldrsh r0, [r6, r1] cmp r0, 0 beq _080D87FC ldrh r0, [r6, 0x2] ldrh r1, [r5, 0x20] adds r0, r1 strh r0, [r5, 0x30] ldr r4, _080D87F0 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x6] adds r0, r1 strh r0, [r5, 0x32] ldrh r0, [r6, 0x4] ldrh r1, [r5, 0x22] adds r0, r1 strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x3 b _080D8824 .align 2, 0 _080D87E8: .4byte gUnknown_03004B00 _080D87EC: .4byte gUnknown_0202F7C8 _080D87F0: .4byte gUnknown_0202F7C9 _080D87F4: .4byte gUnknown_02024A72 _080D87F8: .4byte gSprites _080D87FC: ldrh r0, [r6, 0x2] ldrh r1, [r5, 0x20] adds r0, r1 strh r0, [r5, 0x30] ldr r4, _080D886C @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x6] adds r0, r1 strh r0, [r5, 0x32] ldrh r0, [r6, 0x4] ldrh r1, [r5, 0x22] adds r0, r1 strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x1 _080D8824: bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x8] adds r0, r6 strh r0, [r5, 0x36] ldrb r0, [r4] bl sub_8079ED4 lsls r0, 24 lsrs r0, 16 ldrh r1, [r5, 0x3C] orrs r0, r1 strh r0, [r5, 0x3C] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080D8858 movs r0, 0x1 strh r0, [r5, 0x3A] adds r1, r5, 0 adds r1, 0x43 movs r0, 0x80 strb r0, [r1] _080D8858: adds r0, r5, 0 bl obj_translate_based_on_private_1_2_3_4 ldr r0, _080D8870 @ =sub_80D8874 str r0, [r5, 0x1C] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D886C: .4byte gUnknown_0202F7C9 _080D8870: .4byte sub_80D8874 thumb_func_end sub_80D8700 thumb_func_start sub_80D8874 sub_80D8874: @ 80D8874 push {r4-r6,lr} adds r4, r0, 0 ldrh r0, [r4, 0x3C] movs r5, 0xFF movs r1, 0xFF ands r1, r0 cmp r1, 0x1 beq _080D8968 cmp r1, 0x1 bgt _080D888E cmp r1, 0 beq _080D8896 b _080D8AD0 _080D888E: cmp r1, 0x2 bne _080D8894 b _080D8A94 _080D8894: b _080D8AD0 _080D8896: adds r0, r4, 0 bl sub_8078B5C ldr r1, _080D88C0 @ =gSineTable movs r2, 0x38 ldrsh r0, [r4, r2] lsls r0, 1 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] asrs r0, 4 ldrh r2, [r4, 0x24] adds r0, r2 strh r0, [r4, 0x24] movs r1, 0x3A ldrsh r0, [r4, r1] cmp r0, 0 beq _080D88C4 ldrh r0, [r4, 0x38] subs r0, 0x8 b _080D88C8 .align 2, 0 _080D88C0: .4byte gSineTable _080D88C4: ldrh r0, [r4, 0x38] adds r0, 0x8 _080D88C8: ands r0, r5 strh r0, [r4, 0x38] movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0 ble _080D88D6 b _080D8AD0 _080D88D6: movs r5, 0x50 strh r5, [r4, 0x2E] ldr r6, _080D8928 @ =gUnknown_0202F7C9 ldrb r0, [r6] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] strh r0, [r4, 0x30] strh r0, [r4, 0x32] ldrh r0, [r4, 0x26] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] strh r0, [r4, 0x34] adds r0, 0x1D strh r0, [r4, 0x36] ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] ldr r0, _080D892C @ =gMain ldr r2, _080D8930 @ =0x0000043d adds r0, r2 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080D8938 ldr r1, _080D8934 @ =gUnknown_02024A72 ldrb r0, [r6] adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080D8938 movs r0, 0xCC strh r0, [r4, 0x38] b _080D893A .align 2, 0 _080D8928: .4byte gUnknown_0202F7C9 _080D892C: .4byte gMain _080D8930: .4byte 0x0000043d _080D8934: .4byte gUnknown_02024A72 _080D8938: strh r5, [r4, 0x38] _080D893A: movs r0, 0 strh r0, [r4, 0x26] ldr r1, _080D8964 @ =gSineTable movs r2, 0x38 ldrsh r0, [r4, r2] lsls r0, 1 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] asrs r0, 3 strh r0, [r4, 0x24] ldrh r0, [r4, 0x38] adds r0, 0x2 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] adds r0, r4, 0 bl obj_translate_based_on_private_1_2_3_4 b _080D8AD0 .align 2, 0 _080D8964: .4byte gSineTable _080D8968: adds r0, r4, 0 bl sub_8078B5C ldr r1, _080D89C8 @ =gSineTable movs r2, 0x38 ldrsh r0, [r4, r2] lsls r0, 1 adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] asrs r0, 3 ldrh r2, [r4, 0x24] adds r0, r2 strh r0, [r4, 0x24] movs r2, 0x38 ldrsh r0, [r4, r2] adds r0, 0x40 lsls r0, 1 adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] lsls r0, r1, 1 adds r0, r1 negs r0, r0 asrs r0, 8 ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] ldr r0, _080D89CC @ =gMain ldr r2, _080D89D0 @ =0x0000043d adds r0, r2 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080D89F2 ldrh r1, [r4, 0x38] adds r0, r1, 0 subs r0, 0x40 lsls r0, 16 lsrs r0, 16 adds r3, r1, 0 cmp r0, 0x7F bhi _080D89D4 ldrh r1, [r4, 0x3C] lsls r1, 16 asrs r1, 24 b _080D89DC .align 2, 0 _080D89C8: .4byte gSineTable _080D89CC: .4byte gMain _080D89D0: .4byte 0x0000043d _080D89D4: ldrh r1, [r4, 0x3C] lsls r1, 16 asrs r1, 24 adds r1, 0x1 _080D89DC: movs r0, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x5] adds r0, r3, 0x4 b _080D8A12 _080D89F2: ldrh r0, [r4, 0x38] subs r0, 0x40 lsls r0, 16 lsrs r0, 16 cmp r0, 0x7F bhi _080D8A06 adds r1, r4, 0 adds r1, 0x43 movs r0, 0x80 b _080D8A0C _080D8A06: adds r1, r4, 0 adds r1, 0x43 movs r0, 0x8C _080D8A0C: strb r0, [r1] ldrh r0, [r4, 0x38] subs r0, 0x4 _080D8A12: movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bgt _080D8AD0 movs r2, 0 movs r0, 0xC0 lsls r0, 2 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] strh r0, [r4, 0x30] ldrh r0, [r4, 0x26] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] strh r0, [r4, 0x34] adds r0, 0x4 strh r0, [r4, 0x36] ldr r0, _080D8A68 @ =gMain ldr r1, _080D8A6C @ =0x0000043d adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080D8A78 ldr r1, _080D8A70 @ =gUnknown_02024A72 ldr r0, _080D8A74 @ =gUnknown_0202F7C9 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080D8A78 movs r0, 0x80 lsls r0, 1 b _080D8A7A .align 2, 0 _080D8A68: .4byte gMain _080D8A6C: .4byte 0x0000043d _080D8A70: .4byte gUnknown_02024A72 _080D8A74: .4byte gUnknown_0202F7C9 _080D8A78: ldr r0, _080D8A90 @ =0x0000fff0 _080D8A7A: strh r0, [r4, 0x32] ldrh r0, [r4, 0x3C] adds r0, 0x1 movs r1, 0 strh r0, [r4, 0x3C] strh r1, [r4, 0x26] strh r1, [r4, 0x24] adds r0, r4, 0 bl sub_8078BD4 b _080D8AD0 .align 2, 0 _080D8A90: .4byte 0x0000fff0 _080D8A94: adds r0, r4, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 beq _080D8AD0 ldrb r0, [r4, 0x1] lsls r0, 30 lsrs r0, 30 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080D8AC2 ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix ldrb r1, [r4, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r1 strb r0, [r4, 0x1] _080D8AC2: adds r0, r4, 0 bl DestroySprite ldr r1, _080D8AD8 @ =gUnknown_0202F7B2 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] _080D8AD0: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D8AD8: .4byte gUnknown_0202F7B2 thumb_func_end sub_80D8874 thumb_func_start sub_80D8ADC sub_80D8ADC: @ 80D8ADC lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080D8AF0 @ =gTasks adds r1, r0 ldr r0, _080D8AF4 @ =sub_80D8AF8 str r0, [r1] bx lr .align 2, 0 _080D8AF0: .4byte gTasks _080D8AF4: .4byte sub_80D8AF8 thumb_func_end sub_80D8ADC thumb_func_start sub_80D8AF8 sub_80D8AF8: @ 80D8AF8 push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080D8B1C @ =gTasks adds r4, r0, r1 movs r0, 0x8 ldrsh r5, [r4, r0] cmp r5, 0x1 beq _080D8B3C cmp r5, 0x1 bgt _080D8B20 cmp r5, 0 beq _080D8B26 b _080D8BA0 .align 2, 0 _080D8B1C: .4byte gTasks _080D8B20: cmp r5, 0x2 beq _080D8B92 b _080D8BA0 _080D8B26: ldrh r0, [r4, 0x10] adds r0, 0x1 strh r0, [r4, 0x10] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _080D8BA0 strh r5, [r4, 0x10] strh r5, [r4, 0x12] strh r5, [r4, 0xC] b _080D8B78 _080D8B3C: ldrh r1, [r4, 0x12] movs r3, 0x12 ldrsh r0, [r4, r3] cmp r0, 0 bne _080D8B8C ldrb r0, [r4, 0xE] ldrb r1, [r4, 0xC] movs r3, 0x1 bl sub_80D8BA8 lsls r0, 24 cmp r0, 0 beq _080D8B5C ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] _080D8B5C: ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 bne _080D8B88 ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0xA bne _080D8B80 _080D8B78: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080D8BA0 _080D8B80: ldrh r0, [r4, 0x8] subs r0, 0x1 strh r0, [r4, 0x8] b _080D8BA0 _080D8B88: strh r5, [r4, 0x12] b _080D8BA0 _080D8B8C: subs r0, r1, 0x1 strh r0, [r4, 0x12] b _080D8BA0 _080D8B92: movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0 bne _080D8BA0 adds r0, r2, 0 bl move_anim_task_del _080D8BA0: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80D8AF8 thumb_func_start sub_80D8BA8 sub_80D8BA8: @ 80D8BA8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 24 lsls r1, 24 lsrs r1, 24 mov r9, r1 lsls r2, 24 lsrs r2, 24 str r2, [sp] lsls r3, 24 lsrs r3, 24 mov r10, r3 movs r1, 0 str r1, [sp, 0x4] ldr r1, _080D8C20 @ =gUnknown_083D9DC4 lsrs r0, 22 adds r4, r0, r1 ldrb r0, [r4, 0x3] lsls r0, 24 asrs r0, 28 mov r8, r0 cmp r0, 0x2 beq _080D8C94 ldrh r0, [r4, 0x2] lsls r0, 20 lsrs r0, 24 bl battle_get_side_with_given_state lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080D8C94 movs r0, 0x1 str r0, [sp, 0x4] adds r0, r5, 0 movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r7, r0, 24 adds r0, r5, 0 movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r6, r0, 24 mov r1, r8 cmp r1, 0 beq _080D8C24 cmp r1, 0x1 beq _080D8C5A b _080D8CA6 .align 2, 0 _080D8C20: .4byte gUnknown_083D9DC4 _080D8C24: adds r0, r5, 0 movs r1, 0x1 bl sub_807A100 lsls r0, 16 asrs r0, 16 movs r1, 0x6 bl __divsi3 lsls r1, r7, 16 asrs r1, 16 subs r1, r0 lsls r1, 16 lsrs r7, r1, 16 adds r0, r5, 0 movs r1, 0 bl sub_807A100 lsls r0, 16 asrs r0, 16 movs r1, 0x6 bl __divsi3 lsls r1, r6, 16 asrs r1, 16 subs r1, r0 b _080D8C8E _080D8C5A: adds r0, r5, 0 movs r1, 0x1 bl sub_807A100 lsls r0, 16 asrs r0, 16 movs r1, 0x6 bl __divsi3 lsls r1, r7, 16 asrs r1, 16 adds r1, r0 lsls r1, 16 lsrs r7, r1, 16 adds r0, r5, 0 movs r1, 0 bl sub_807A100 lsls r0, 16 asrs r0, 16 movs r1, 0x6 bl __divsi3 lsls r1, r6, 16 asrs r1, 16 adds r1, r0 _080D8C8E: lsls r1, 16 lsrs r6, r1, 16 b _080D8CA6 _080D8C94: ldrh r0, [r4] lsls r0, 22 asrs r0, 6 lsrs r7, r0, 16 ldr r0, [r4] lsls r0, 12 asrs r0, 22 lsls r0, 16 lsrs r6, r0, 16 _080D8CA6: lsls r0, r6, 16 asrs r0, 16 adds r0, 0x8 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 lsls r1, r7, 16 asrs r1, 16 subs r1, r0 ldr r0, _080D8D00 @ =gSpriteTemplate_83D9E3C lsls r1, 16 asrs r1, 16 movs r2, 0x8 negs r2, r2 movs r3, 0x12 bl CreateSprite lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x40 beq _080D8D08 lsls r4, r5, 4 adds r4, r5 lsls r4, 2 ldr r0, _080D8D04 @ =gSprites adds r4, r0 adds r0, r4, 0 mov r1, r9 bl StartSpriteAffineAnim mov r0, sp ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] strh r7, [r4, 0x34] strh r6, [r4, 0x36] mov r1, r9 strh r1, [r4, 0x38] mov r0, sp ldrh r0, [r0] strh r0, [r4, 0x3A] mov r1, r10 strh r1, [r4, 0x3C] movs r0, 0x1 b _080D8D0A .align 2, 0 _080D8D00: .4byte gSpriteTemplate_83D9E3C _080D8D04: .4byte gSprites _080D8D08: movs r0, 0 _080D8D0A: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80D8BA8 thumb_func_start sub_80D8D1C sub_80D8D1C: @ 80D8D1C push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x20] adds r0, 0x4 strh r0, [r4, 0x20] ldrh r1, [r4, 0x22] adds r2, r1, 0 adds r2, 0x8 strh r2, [r4, 0x22] lsls r0, 16 asrs r0, 16 movs r3, 0x34 ldrsh r1, [r4, r3] cmp r0, r1 bge _080D8D46 lsls r0, r2, 16 asrs r0, 16 movs r2, 0x36 ldrsh r1, [r4, r2] cmp r0, r1 blt _080D8DF6 _080D8D46: movs r3, 0x2E ldrsh r0, [r4, r3] cmp r0, 0x1 bne _080D8DC8 movs r1, 0x38 ldrsh r0, [r4, r1] cmp r0, 0 bne _080D8DC8 ldr r0, _080D8DBC @ =gBattleAnimSpriteTemplate_83D9C78 movs r2, 0x34 ldrsh r1, [r4, r2] movs r3, 0x36 ldrsh r2, [r4, r3] adds r3, r4, 0 adds r3, 0x43 ldrb r3, [r3] bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x2E] cmp r0, 0x40 beq _080D8DAA ldr r2, _080D8DC0 @ =gSprites movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r2, 0 adds r1, 0x1C adds r0, r1 ldr r1, _080D8DC4 @ =sub_80D8E00 str r1, [r0] movs r3, 0x2E ldrsh r1, [r4, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r4, 0x3A] strh r1, [r0, 0x3A] movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r4, 0x3C] strh r1, [r0, 0x3C] _080D8DAA: ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix adds r0, r4, 0 bl DestroySprite b _080D8DF6 .align 2, 0 _080D8DBC: .4byte gBattleAnimSpriteTemplate_83D9C78 _080D8DC0: .4byte gSprites _080D8DC4: .4byte sub_80D8E00 _080D8DC8: ldr r3, _080D8DFC @ =gTasks movs r2, 0x3C ldrsh r1, [r4, r2] lsls r1, 1 movs r0, 0x3A ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix adds r0, r4, 0 bl DestroySprite _080D8DF6: pop {r4} pop {r0} bx r0 .align 2, 0 _080D8DFC: .4byte gTasks thumb_func_end sub_80D8D1C thumb_func_start sub_80D8E00 sub_80D8E00: @ 80D8E00 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 bne _080D8E40 ldr r3, _080D8E48 @ =gTasks movs r0, 0x3C ldrsh r1, [r4, r0] lsls r1, 1 movs r0, 0x3A ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix adds r0, r4, 0 bl DestroySprite _080D8E40: pop {r4} pop {r0} bx r0 .align 2, 0 _080D8E48: .4byte gTasks thumb_func_end sub_80D8E00 thumb_func_start unc_080B06FC unc_080B06FC: @ 80D8E4C push {r4-r6,lr} adds r5, r0, 0 ldr r0, _080D8ECC @ =gUnknown_0202F7B4 ldr r0, [r0] ldrb r1, [r0, 0x11] lsrs r0, r1, 4 lsls r1, 28 lsrs r1, 28 subs r0, r1 subs r0, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x4 bls _080D8E6A movs r1, 0x4 _080D8E6A: adds r0, r5, 0 bl StartSpriteAffineAnim adds r0, r5, 0 movs r1, 0x1 bl sub_80787B0 ldr r6, _080D8ED0 @ =gUnknown_03004B00 ldrh r0, [r6, 0x8] strh r0, [r5, 0x2E] ldr r0, _080D8ED4 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D8E92 ldrh r0, [r6, 0x4] negs r0, r0 strh r0, [r6, 0x4] _080D8E92: ldr r4, _080D8ED8 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x4] adds r0, r1 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x6] adds r0, r1 strh r0, [r5, 0x36] ldrh r0, [r6, 0xA] strh r0, [r5, 0x38] adds r0, r5, 0 bl sub_80786EC ldr r0, _080D8EDC @ =sub_80D8EE0 str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D8ECC: .4byte gUnknown_0202F7B4 _080D8ED0: .4byte gUnknown_03004B00 _080D8ED4: .4byte gUnknown_0202F7C8 _080D8ED8: .4byte gUnknown_0202F7C9 _080D8EDC: .4byte sub_80D8EE0 thumb_func_end unc_080B06FC thumb_func_start sub_80D8EE0 sub_80D8EE0: @ 80D8EE0 push {r4,lr} adds r4, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080D8F02 adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAnim ldr r0, _080D8F08 @ =sub_8078600 str r0, [r4, 0x1C] ldr r1, _080D8F0C @ =move_anim_8072740 adds r0, r4, 0 bl oamt_set_x3A_32 _080D8F02: pop {r4} pop {r0} bx r0 .align 2, 0 _080D8F08: .4byte sub_8078600 _080D8F0C: .4byte move_anim_8072740 thumb_func_end sub_80D8EE0 thumb_func_start sub_80D8F10 sub_80D8F10: @ 80D8F10 push {r4-r6,lr} adds r4, r0, 0 ldrh r2, [r4, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x8 ldr r3, _080D8F64 @ =0x000003ff adds r0, r3, 0 ands r1, r0 ldr r0, _080D8F68 @ =0xfffffc00 ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] adds r0, r4, 0 movs r1, 0x1 bl sub_8078764 bl Random movs r5, 0xFF ands r5, r0 movs r0, 0x80 lsls r0, 1 adds r6, r0, 0 orrs r5, r6 bl Random ldr r1, _080D8F6C @ =0x000001ff ands r1, r0 adds r0, r1, 0 cmp r0, 0xFF ble _080D8F56 subs r0, r6, r0 lsls r0, 16 lsrs r1, r0, 16 _080D8F56: strh r5, [r4, 0x30] strh r1, [r4, 0x32] ldr r0, _080D8F70 @ =sub_80D8F74 str r0, [r4, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D8F64: .4byte 0x000003ff _080D8F68: .4byte 0xfffffc00 _080D8F6C: .4byte 0x000001ff _080D8F70: .4byte sub_80D8F74 thumb_func_end sub_80D8F10 thumb_func_start sub_80D8F74 sub_80D8F74: @ 80D8F74 push {r4,lr} adds r2, r0, 0 ldrh r0, [r2, 0x30] ldrh r1, [r2, 0x34] adds r3, r0, r1 strh r3, [r2, 0x34] ldrh r1, [r2, 0x32] ldrh r4, [r2, 0x36] adds r1, r4 strh r1, [r2, 0x36] movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _080D8F98 lsls r0, r3, 16 asrs r0, 24 negs r0, r0 b _080D8F9C _080D8F98: lsls r0, r3, 16 asrs r0, 24 _080D8F9C: strh r0, [r2, 0x24] ldrh r0, [r2, 0x36] lsls r0, 16 asrs r0, 24 strh r0, [r2, 0x26] ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x15 bne _080D8FBA adds r0, r2, 0 bl move_anim_8072740 _080D8FBA: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D8F74 thumb_func_start sub_80D8FC0 sub_80D8FC0: @ 80D8FC0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080D8FE8 @ =gUnknown_03004B00 ldrb r3, [r1] lsls r3, 1 adds r3, r1 ldr r1, _080D8FEC @ =gUnknown_0202F7B4 ldr r1, [r1] ldrb r1, [r1, 0x11] lsrs r2, r1, 4 lsls r1, 28 lsrs r1, 28 subs r2, r1 subs r2, 0x1 strh r2, [r3] bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _080D8FE8: .4byte gUnknown_03004B00 _080D8FEC: .4byte gUnknown_0202F7B4 thumb_func_end sub_80D8FC0 thumb_func_start unc_080B08A0 unc_080B08A0: @ 80D8FF0 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080D9020 @ =gUnknown_03004B00 movs r0, 0 ldrsh r1, [r5, r0] adds r0, r4, 0 bl sub_807867C ldrh r0, [r5, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] movs r0, 0xF strh r0, [r4, 0x2E] ldr r0, _080D9024 @ =sub_80782D8 str r0, [r4, 0x1C] ldr r1, _080D9028 @ =move_anim_8072740 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D9020: .4byte gUnknown_03004B00 _080D9024: .4byte sub_80782D8 _080D9028: .4byte move_anim_8072740 thumb_func_end unc_080B08A0 thumb_func_start sub_80D902C sub_80D902C: @ 80D902C push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080D9070 @ =gUnknown_03004B00 movs r1, 0xE ldrsh r0, [r4, r1] cmp r0, 0x1 bne _080D9054 ldr r0, _080D9074 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D9054 ldrh r0, [r4, 0x2] negs r0, r0 strh r0, [r4, 0x2] ldrh r0, [r4, 0x6] negs r0, r0 strh r0, [r4, 0x6] _080D9054: ldr r4, _080D9070 @ =gUnknown_03004B00 ldrb r1, [r4, 0xC] adds r0, r5, 0 bl StartSpriteAnim movs r0, 0 strh r0, [r4, 0xC] adds r0, r5, 0 bl sub_8079534 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D9070: .4byte gUnknown_03004B00 _080D9074: .4byte gUnknown_0202F7C8 thumb_func_end sub_80D902C thumb_func_start sub_80D9078 sub_80D9078: @ 80D9078 push {r4,lr} adds r4, r0, 0 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080D9094 ldr r0, _080D90A0 @ =gUnknown_03004B00 ldrh r1, [r0, 0x2] negs r1, r1 strh r1, [r0, 0x2] ldrh r1, [r0, 0x6] negs r1, r1 strh r1, [r0, 0x6] _080D9094: adds r0, r4, 0 bl sub_80D902C pop {r4} pop {r0} bx r0 .align 2, 0 _080D90A0: .4byte gUnknown_03004B00 thumb_func_end sub_80D9078 thumb_func_start sub_80D90A4 sub_80D90A4: @ 80D90A4 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080D90C4 @ =gUnknown_03004B00 ldrb r1, [r4, 0x8] bl StartSpriteAnim movs r1, 0x6 ldrsh r0, [r4, r1] cmp r0, 0 bne _080D90C8 adds r0, r5, 0 movs r1, 0x1 bl sub_80787B0 b _080D90D0 .align 2, 0 _080D90C4: .4byte gUnknown_03004B00 _080D90C8: adds r0, r5, 0 movs r1, 0x1 bl sub_8078764 _080D90D0: ldr r0, _080D90E8 @ =gUnknown_03004B00 ldrh r0, [r0, 0x4] strh r0, [r5, 0x2E] ldr r0, _080D90EC @ =sub_80782D8 str r0, [r5, 0x1C] ldr r1, _080D90F0 @ =move_anim_8072740 adds r0, r5, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D90E8: .4byte gUnknown_03004B00 _080D90EC: .4byte sub_80782D8 _080D90F0: .4byte move_anim_8072740 thumb_func_end sub_80D90A4 thumb_func_start sub_80D90F4 sub_80D90F4: @ 80D90F4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r5, r0, 0 ldr r0, _080D9110 @ =gUnknown_03004B00 movs r2, 0 ldrsh r1, [r0, r2] mov r9, r0 cmp r1, 0 bne _080D9118 ldr r0, _080D9114 @ =gUnknown_0202F7C8 b _080D911A .align 2, 0 _080D9110: .4byte gUnknown_03004B00 _080D9114: .4byte gUnknown_0202F7C8 _080D9118: ldr r0, _080D9260 @ =gUnknown_0202F7C9 _080D911A: ldrb r0, [r0] mov r8, r0 mov r4, r9 movs r3, 0x4 ldrsh r0, [r4, r3] cmp r0, 0 bge _080D9138 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x5 bl __umodsi3 strh r0, [r4, 0x4] _080D9138: ldrb r1, [r4, 0x4] adds r0, r5, 0 bl StartSpriteAnim mov r0, r8 movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] mov r0, r8 movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] mov r0, r8 movs r1, 0x1 bl sub_807A100 lsls r0, 16 asrs r1, r0, 16 lsrs r0, 31 adds r1, r0 lsls r1, 15 lsrs r6, r1, 16 mov r0, r8 movs r1, 0 bl sub_807A100 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _080D9182 adds r0, 0x3 _080D9182: lsls r4, r0, 14 lsrs r4, 16 bl Random lsls r0, 16 lsrs r0, 16 lsls r1, r6, 16 asrs r1, 16 bl __modsi3 lsls r0, 16 lsrs r6, r0, 16 bl Random lsls r0, 16 lsrs r0, 16 lsls r4, 16 asrs r4, 16 adds r1, r4, 0 bl __modsi3 lsls r0, 16 lsrs r4, r0, 16 bl Random movs r7, 0x1 adds r1, r7, 0 ands r1, r0 cmp r1, 0 beq _080D91C4 lsls r0, r6, 16 negs r0, r0 lsrs r6, r0, 16 _080D91C4: bl Random adds r1, r7, 0 ands r1, r0 cmp r1, 0 beq _080D91D6 lsls r0, r4, 16 negs r0, r0 lsrs r4, r0, 16 _080D91D6: ldr r0, _080D9264 @ =gUnknown_02024A72 add r0, r8 ldrb r1, [r0] adds r0, r7, 0 ands r0, r1 cmp r0, 0 bne _080D91EC lsls r0, r4, 16 ldr r1, _080D9268 @ =0xfff00000 adds r0, r1 lsrs r4, r0, 16 _080D91EC: lsls r0, r6, 16 asrs r0, 16 ldrh r2, [r5, 0x20] adds r0, r2 strh r0, [r5, 0x20] lsls r0, r4, 16 asrs r0, 16 ldrh r3, [r5, 0x22] adds r0, r3 strh r0, [r5, 0x22] mov r1, r9 ldrh r0, [r1, 0x2] strh r0, [r5, 0x2E] ldr r0, _080D926C @ =gBattleAnimSpriteTemplate_83DB4A8 movs r2, 0x20 ldrsh r1, [r5, r2] movs r3, 0x22 ldrsh r2, [r5, r3] adds r3, r5, 0 adds r3, 0x43 ldrb r3, [r3] adds r3, 0x1 lsls r3, 24 lsrs r3, 24 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x3C] cmp r0, 0x40 beq _080D9250 movs r0, 0x3C ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _080D9270 @ =gSprites adds r0, r4 movs r1, 0 bl StartSpriteAffineAnim movs r2, 0x3C ldrsh r1, [r5, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, 0x1C adds r0, r4 ldr r1, _080D9274 @ =SpriteCallbackDummy str r1, [r0] _080D9250: ldr r0, _080D9278 @ =sub_80D927C str r0, [r5, 0x1C] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D9260: .4byte gUnknown_0202F7C9 _080D9264: .4byte gUnknown_02024A72 _080D9268: .4byte 0xfff00000 _080D926C: .4byte gBattleAnimSpriteTemplate_83DB4A8 _080D9270: .4byte gSprites _080D9274: .4byte SpriteCallbackDummy _080D9278: .4byte sub_80D927C thumb_func_end sub_80D90F4 thumb_func_start sub_80D927C sub_80D927C: @ 80D927C push {r4,r5,lr} adds r5, r0, 0 ldrh r1, [r5, 0x2E] movs r2, 0x2E ldrsh r0, [r5, r2] cmp r0, 0 bne _080D92C4 movs r1, 0x3C ldrsh r0, [r5, r1] cmp r0, 0x40 beq _080D92B8 ldr r4, _080D92C0 @ =gSprites adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix movs r0, 0x3C ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite _080D92B8: adds r0, r5, 0 bl move_anim_8072740 b _080D92C8 .align 2, 0 _080D92C0: .4byte gSprites _080D92C4: subs r0, r1, 0x1 strh r0, [r5, 0x2E] _080D92C8: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80D927C thumb_func_start sub_80D92D0 sub_80D92D0: @ 80D92D0 push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_8078764 movs r0, 0x1E strh r0, [r4, 0x2E] ldr r0, _080D92F0 @ =gUnknown_03004B00 movs r1, 0x4 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D92F4 ldrh r0, [r4, 0x20] subs r0, 0x14 strh r0, [r4, 0x32] b _080D9306 .align 2, 0 _080D92F0: .4byte gUnknown_03004B00 _080D92F4: ldrh r0, [r4, 0x20] adds r0, 0x14 strh r0, [r4, 0x32] adds r2, r4, 0 adds r2, 0x3F ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] _080D9306: ldrh r0, [r4, 0x22] subs r0, 0x14 strh r0, [r4, 0x36] ldr r0, _080D9320 @ =sub_8078B34 str r0, [r4, 0x1C] ldr r1, _080D9324 @ =sub_80D9328 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4} pop {r0} bx r0 .align 2, 0 _080D9320: .4byte sub_8078B34 _080D9324: .4byte sub_80D9328 thumb_func_end sub_80D92D0 thumb_func_start sub_80D9328 sub_80D9328: @ 80D9328 push {r4-r6,lr} adds r5, r0, 0 ldrh r0, [r5, 0x38] adds r0, 0x1 movs r6, 0 strh r0, [r5, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0xB bne _080D9368 ldrh r2, [r5, 0x20] ldrh r4, [r5, 0x24] subs r0, r2, r4 strh r0, [r5, 0x32] ldrh r1, [r5, 0x22] ldrh r3, [r5, 0x26] subs r0, r1, r3 strh r0, [r5, 0x36] movs r0, 0x8 strh r0, [r5, 0x2E] adds r2, r4 strh r2, [r5, 0x20] adds r1, r3 strh r1, [r5, 0x22] strh r6, [r5, 0x26] strh r6, [r5, 0x24] ldr r0, _080D9370 @ =sub_8078B34 str r0, [r5, 0x1C] ldr r1, _080D9374 @ =move_anim_8072740 adds r0, r5, 0 bl oamt_set_x3A_32 _080D9368: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D9370: .4byte sub_8078B34 _080D9374: .4byte move_anim_8072740 thumb_func_end sub_80D9328 thumb_func_start sub_80D9378 sub_80D9378: @ 80D9378 push {r4-r6,lr} adds r6, r0, 0 ldr r0, _080D93F4 @ =gUnknown_0202F7C8 ldrb r1, [r0] movs r0, 0x2 ldr r2, _080D93F8 @ =gUnknown_0202F7C9 eors r0, r1 ldrb r1, [r2] cmp r0, r1 bne _080D93A4 ldrb r0, [r2] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _080D93A4 ldr r1, _080D93FC @ =gUnknown_03004B00 movs r2, 0 ldrsh r0, [r1, r2] negs r0, r0 strh r0, [r1] _080D93A4: adds r0, r6, 0 movs r1, 0x1 bl sub_8078764 ldr r0, _080D93F4 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D93C2 ldr r1, _080D93FC @ =gUnknown_03004B00 ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080D93C2: ldr r4, _080D93FC @ =gUnknown_03004B00 ldrh r0, [r4, 0x6] movs r5, 0 strh r0, [r6, 0x2E] ldrh r0, [r6, 0x20] strh r0, [r6, 0x30] ldrh r1, [r4, 0x4] adds r0, r1 strh r0, [r6, 0x32] ldrh r0, [r6, 0x22] strh r0, [r6, 0x34] strh r0, [r6, 0x36] adds r0, r6, 0 bl obj_translate_based_on_private_1_2_3_4 ldrh r0, [r4, 0xA] strh r0, [r6, 0x38] ldrh r0, [r4, 0x8] strh r0, [r6, 0x3A] strh r5, [r6, 0x3C] ldr r0, _080D9400 @ =sub_80D9404 str r0, [r6, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D93F4: .4byte gUnknown_0202F7C8 _080D93F8: .4byte gUnknown_0202F7C9 _080D93FC: .4byte gUnknown_03004B00 _080D9400: .4byte sub_80D9404 thumb_func_end sub_80D9378 thumb_func_start sub_80D9404 sub_80D9404: @ 80D9404 push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 bne _080D9430 ldrh r0, [r4, 0x3C] lsls r0, 16 asrs r0, 24 movs r2, 0x38 ldrsh r1, [r4, r2] bl Sin ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x3A] ldrh r2, [r4, 0x3C] adds r0, r2 strh r0, [r4, 0x3C] b _080D9436 _080D9430: adds r0, r4, 0 bl move_anim_8072740 _080D9436: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D9404 thumb_func_start sub_80D943C sub_80D943C: @ 80D943C push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_8078764 ldr r5, _080D9468 @ =gUnknown_03004B00 ldrb r1, [r5, 0x4] adds r0, r4, 0 bl StartSpriteAnim ldrh r0, [r5, 0x6] strh r0, [r4, 0x2E] ldr r0, _080D946C @ =sub_80782D8 str r0, [r4, 0x1C] ldr r1, _080D9470 @ =sub_80D9474 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D9468: .4byte gUnknown_03004B00 _080D946C: .4byte sub_80782D8 _080D9470: .4byte sub_80D9474 thumb_func_end sub_80D943C thumb_func_start sub_80D9474 sub_80D9474: @ 80D9474 push {r4,lr} adds r4, r0, 0 movs r1, 0 bl StartSpriteAffineAnim adds r2, r4, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] movs r0, 0x14 strh r0, [r4, 0x2E] ldr r0, _080D94A0 @ =sub_80782D8 str r0, [r4, 0x1C] ldr r1, _080D94A4 @ =move_anim_8072740 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4} pop {r0} bx r0 .align 2, 0 _080D94A0: .4byte sub_80782D8 _080D94A4: .4byte move_anim_8072740 thumb_func_end sub_80D9474 thumb_func_start sub_80D94A8 sub_80D94A8: @ 80D94A8 push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_8078764 ldr r0, _080D94C4 @ =gUnknown_03004B00 ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] ldr r0, _080D94C8 @ =sub_80D94CC str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080D94C4: .4byte gUnknown_03004B00 _080D94C8: .4byte sub_80D94CC thumb_func_end sub_80D94A8 thumb_func_start sub_80D94CC sub_80D94CC: @ 80D94CC push {r4,r5,lr} adds r5, r0, 0 ldrh r0, [r5, 0x2E] subs r0, 0x1 strh r0, [r5, 0x2E] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080D9510 movs r0, 0x6 strh r0, [r5, 0x2E] ldr r4, _080D9518 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] ldr r0, _080D951C @ =sub_8078B34 str r0, [r5, 0x1C] ldr r1, _080D9520 @ =sub_80D9524 adds r0, r5, 0 bl oamt_set_x3A_32 _080D9510: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D9518: .4byte gUnknown_0202F7C9 _080D951C: .4byte sub_8078B34 _080D9520: .4byte sub_80D9524 thumb_func_end sub_80D94CC thumb_func_start sub_80D9524 sub_80D9524: @ 80D9524 push {lr} movs r1, 0xF strh r1, [r0, 0x2E] ldr r1, _080D9538 @ =sub_80782D8 str r1, [r0, 0x1C] ldr r1, _080D953C @ =move_anim_8072740 bl oamt_set_x3A_32 pop {r0} bx r0 .align 2, 0 _080D9538: .4byte sub_80782D8 _080D953C: .4byte move_anim_8072740 thumb_func_end sub_80D9524 thumb_func_start sub_80D9540 sub_80D9540: @ 80D9540 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _080D956C adds r0, r4, 0 movs r1, 0x1 bl sub_8078764 ldr r1, _080D9568 @ =gUnknown_03004B00 ldrh r0, [r1, 0x4] strh r0, [r4, 0x30] ldrh r0, [r1, 0x6] strh r0, [r4, 0x32] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _080D95C8 .align 2, 0 _080D9568: .4byte gUnknown_03004B00 _080D956C: ldrh r0, [r4, 0x30] ldrh r2, [r4, 0x36] adds r0, r2 strh r0, [r4, 0x36] lsls r0, 16 asrs r0, 24 strh r0, [r4, 0x24] movs r1, 0x34 ldrsh r0, [r4, r1] movs r2, 0x32 ldrsh r1, [r4, r2] bl Sin strh r0, [r4, 0x26] ldrh r0, [r4, 0x34] adds r0, 0x3 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x34] cmp r0, 0x64 ble _080D95BA movs r0, 0x34 ldrsh r1, [r4, r0] lsrs r0, r1, 31 adds r0, r1, r0 asrs r0, 1 lsls r0, 1 subs r1, r0 adds r3, r4, 0 adds r3, 0x3E movs r0, 0x1 ands r1, r0 lsls r1, 2 ldrb r2, [r3] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _080D95BA: movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0x78 ble _080D95C8 adds r0, r4, 0 bl move_anim_8072740 _080D95C8: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D9540 thumb_func_start sub_80D95D0 sub_80D95D0: @ 80D95D0 push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080D95E4 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D95EC ldr r4, _080D95E8 @ =gUnknown_0202F7C8 b _080D95EE .align 2, 0 _080D95E4: .4byte gUnknown_03004B00 _080D95E8: .4byte gUnknown_0202F7C8 _080D95EC: ldr r4, _080D9634 @ =gUnknown_0202F7C9 _080D95EE: ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r1, _080D9638 @ =gUnknown_03004B00 ldrh r0, [r1, 0x2] ldrh r2, [r5, 0x20] adds r0, r2 movs r2, 0 strh r0, [r5, 0x20] ldrh r0, [r1, 0x4] ldrh r3, [r5, 0x22] adds r0, r3 strh r0, [r5, 0x22] strh r2, [r5, 0x2E] ldrh r0, [r1, 0x6] strh r0, [r5, 0x30] ldrh r0, [r1, 0x8] strh r0, [r5, 0x32] strh r2, [r5, 0x34] ldr r0, _080D963C @ =sub_80D9640 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D9634: .4byte gUnknown_0202F7C9 _080D9638: .4byte gUnknown_03004B00 _080D963C: .4byte sub_80D9640 thumb_func_end sub_80D95D0 thumb_func_start sub_80D9640 sub_80D9640: @ 80D9640 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] cmp r2, 0 beq _080D9652 cmp r2, 0x1 beq _080D9676 b _080D96B0 _080D9652: ldrh r0, [r1, 0x30] subs r0, 0x1 strh r0, [r1, 0x30] lsls r0, 16 cmp r0, 0 bne _080D96B0 movs r2, 0x32 ldrsh r0, [r1, r2] cmp r0, 0 bne _080D966E adds r0, r1, 0 bl move_anim_8072740 b _080D96B0 _080D966E: ldrh r0, [r1, 0x2E] adds r0, 0x1 strh r0, [r1, 0x2E] b _080D96B0 _080D9676: ldrh r0, [r1, 0x30] adds r0, 0x1 strh r0, [r1, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D969E movs r0, 0 strh r0, [r1, 0x30] ldrh r0, [r1, 0x34] adds r0, 0x1 strh r0, [r1, 0x34] ands r0, r2 lsls r0, 16 cmp r0, 0 beq _080D969A movs r0, 0x2 b _080D969C _080D969A: ldr r0, _080D96B4 @ =0x0000fffe _080D969C: strh r0, [r1, 0x24] _080D969E: ldrh r0, [r1, 0x32] subs r0, 0x1 strh r0, [r1, 0x32] lsls r0, 16 cmp r0, 0 bne _080D96B0 adds r0, r1, 0 bl move_anim_8072740 _080D96B0: pop {r0} bx r0 .align 2, 0 _080D96B4: .4byte 0x0000fffe thumb_func_end sub_80D9640 thumb_func_start sub_80D96B8 sub_80D96B8: @ 80D96B8 push {r4-r6,lr} adds r5, r0, 0 ldr r6, _080D96DC @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _080D96E4 ldr r4, _080D96E0 @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r2, [r6, 0x4] adds r0, r2 b _080D96F6 .align 2, 0 _080D96DC: .4byte gUnknown_03004B00 _080D96E0: .4byte gUnknown_0202F7C8 _080D96E4: ldr r4, _080D9740 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x4] adds r0, r1 _080D96F6: strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x6] adds r0, r6 strh r0, [r5, 0x22] ldrh r2, [r5, 0x4] lsls r1, r2, 22 lsrs r1, 22 ldr r3, _080D9744 @ =gUnknown_03004B00 movs r4, 0x2 ldrsh r0, [r3, r4] lsls r0, 4 adds r1, r0 ldr r4, _080D9748 @ =0x000003ff adds r0, r4, 0 ands r1, r0 ldr r0, _080D974C @ =0xfffffc00 ands r0, r2 orrs r0, r1 strh r0, [r5, 0x4] movs r1, 0 movs r0, 0 strh r0, [r5, 0x2E] movs r2, 0x2 ldrsh r0, [r3, r2] cmp r0, 0x1 beq _080D9764 cmp r0, 0x1 bgt _080D9750 cmp r0, 0 beq _080D975A b _080D978A .align 2, 0 _080D9740: .4byte gUnknown_0202F7C9 _080D9744: .4byte gUnknown_03004B00 _080D9748: .4byte 0x000003ff _080D974C: .4byte 0xfffffc00 _080D9750: cmp r0, 0x2 beq _080D9774 cmp r0, 0x3 beq _080D9784 b _080D978A _080D975A: ldr r0, _080D9760 @ =0x0000fffd b _080D9784 .align 2, 0 _080D9760: .4byte 0x0000fffd _080D9764: movs r0, 0x3 strh r0, [r5, 0x3A] ldr r0, _080D9770 @ =0x0000fffd strh r0, [r5, 0x3C] b _080D9792 .align 2, 0 _080D9770: .4byte 0x0000fffd _080D9774: ldr r0, _080D9780 @ =0x0000fffd strh r0, [r5, 0x3A] movs r0, 0x3 strh r0, [r5, 0x3C] b _080D9792 .align 2, 0 _080D9780: .4byte 0x0000fffd _080D9784: strh r0, [r5, 0x3A] strh r0, [r5, 0x3C] b _080D9792 _080D978A: adds r0, r5, 0 bl move_anim_8072740 b _080D9796 _080D9792: ldr r0, _080D979C @ =sub_80D97A0 str r0, [r5, 0x1C] _080D9796: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D979C: .4byte sub_80D97A0 thumb_func_end sub_80D96B8 thumb_func_start sub_80D97A0 sub_80D97A0: @ 80D97A0 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x3A] ldrh r2, [r1, 0x20] adds r0, r2 strh r0, [r1, 0x20] ldrh r0, [r1, 0x3C] ldrh r2, [r1, 0x22] adds r0, r2 strh r0, [r1, 0x22] ldrh r0, [r1, 0x2E] adds r0, 0x1 strh r0, [r1, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x28 ble _080D97C8 adds r0, r1, 0 bl move_anim_8072740 _080D97C8: pop {r0} bx r0 thumb_func_end sub_80D97A0 thumb_func_start sub_80D97CC sub_80D97CC: @ 80D97CC push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080D9818 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D9828 ldr r4, _080D981C @ =gUnknown_02024C07 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r0, _080D9820 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl sub_8079ED4 movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r5, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] ldr r0, _080D9824 @ =gUnknown_0202F7C9 b _080D9844 .align 2, 0 _080D9818: .4byte gUnknown_03004B00 _080D981C: .4byte gUnknown_02024C07 _080D9820: .4byte gUnknown_0202F7C8 _080D9824: .4byte gUnknown_0202F7C9 _080D9828: ldr r0, _080D9860 @ =gUnknown_0202F7C9 ldrb r0, [r0] bl sub_8079ED4 movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r5, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] ldr r0, _080D9864 @ =gUnknown_0202F7C8 _080D9844: ldrb r0, [r0] strh r0, [r5, 0x3C] movs r0, 0 strh r0, [r5, 0x2E] movs r0, 0xC strh r0, [r5, 0x30] movs r0, 0x8 strh r0, [r5, 0x32] ldr r0, _080D9868 @ =sub_80D986C str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D9860: .4byte gUnknown_0202F7C9 _080D9864: .4byte gUnknown_0202F7C8 _080D9868: .4byte sub_80D986C thumb_func_end sub_80D97CC thumb_func_start sub_80D986C sub_80D986C: @ 80D986C push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0xB4 bne _080D98C6 ldr r1, _080D98CC @ =REG_BLDCNT movs r0, 0 strh r0, [r1] movs r0, 0x10 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrh r0, [r4, 0x22] strh r0, [r4, 0x34] ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] adds r0, r4, 0 bl obj_translate_based_on_private_1_2_3_4 ldr r1, _080D98D0 @ =move_anim_8074EE0 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080D98D4 @ =sub_8078BB8 str r0, [r4, 0x1C] _080D98C6: pop {r4} pop {r0} bx r0 .align 2, 0 _080D98CC: .4byte REG_BLDCNT _080D98D0: .4byte move_anim_8074EE0 _080D98D4: .4byte sub_8078BB8 thumb_func_end sub_80D986C thumb_func_start sub_80D98D8 sub_80D98D8: @ 80D98D8 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080D9924 @ =gUnknown_03004B00 ldrh r0, [r4] strh r0, [r5, 0x20] movs r2, 0x78 strh r2, [r5, 0x22] ldrh r0, [r4, 0x6] strh r0, [r5, 0x2E] adds r0, r5, 0 adds r0, 0x36 adds r1, r5, 0 adds r1, 0x38 lsls r2, 8 bl sub_8079BF4 ldrh r0, [r4, 0x2] strh r0, [r5, 0x3A] ldrh r2, [r5, 0x4] lsls r1, r2, 22 lsrs r1, 22 movs r3, 0x4 ldrsh r0, [r4, r3] lsls r0, 2 adds r1, r0 ldr r3, _080D9928 @ =0x000003ff adds r0, r3, 0 ands r1, r0 ldr r0, _080D992C @ =0xfffffc00 ands r0, r2 orrs r0, r1 strh r0, [r5, 0x4] ldr r0, _080D9930 @ =sub_80D9934 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D9924: .4byte gUnknown_03004B00 _080D9928: .4byte 0x000003ff _080D992C: .4byte 0xfffffc00 _080D9930: .4byte sub_80D9934 thumb_func_end sub_80D98D8 thumb_func_start sub_80D9934 sub_80D9934: @ 80D9934 push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 movs r1, 0x2E ldrsh r0, [r7, r1] cmp r0, 0 beq _080D9986 movs r2, 0x36 ldrsh r0, [r7, r2] movs r2, 0x38 ldrsh r1, [r7, r2] bl sub_8079BFC adds r4, r0, 0 movs r1, 0x3A ldrsh r0, [r7, r1] subs r4, r0 adds r0, r7, 0 adds r0, 0x36 adds r1, r7, 0 adds r1, 0x38 adds r2, r4, 0 bl sub_8079BF4 asrs r4, 8 strh r4, [r7, 0x22] lsls r4, 16 asrs r4, 16 movs r0, 0x8 negs r0, r0 cmp r4, r0 bge _080D997E adds r0, r7, 0 bl move_anim_8072740 b _080D99DC _080D997E: ldrh r0, [r7, 0x2E] subs r0, 0x1 strh r0, [r7, 0x2E] b _080D99DC _080D9986: ldr r4, _080D99E8 @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r2, _080D99EC @ =gUnknown_0202F7C9 mov r8, r2 ldrb r0, [r2] movs r1, 0x2 bl sub_8077ABC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 mov r1, r8 ldrb r0, [r1] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 subs r4, r6 strh r4, [r7, 0x2E] lsrs r0, 24 subs r0, r5 strh r0, [r7, 0x30] ldrh r0, [r7, 0x20] lsls r0, 4 strh r0, [r7, 0x32] ldrh r0, [r7, 0x22] lsls r0, 4 strh r0, [r7, 0x34] ldr r0, _080D99F0 @ =sub_80D99F4 str r0, [r7, 0x1C] _080D99DC: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D99E8: .4byte gUnknown_0202F7C8 _080D99EC: .4byte gUnknown_0202F7C9 _080D99F0: .4byte sub_80D99F4 thumb_func_end sub_80D9934 thumb_func_start sub_80D99F4 sub_80D99F4: @ 80D99F4 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x2E] ldrh r1, [r2, 0x32] adds r0, r1 strh r0, [r2, 0x32] ldrh r1, [r2, 0x30] ldrh r3, [r2, 0x34] adds r1, r3 strh r1, [r2, 0x34] lsls r0, 16 asrs r0, 20 strh r0, [r2, 0x20] lsls r1, 16 asrs r3, r1, 20 strh r3, [r2, 0x22] adds r0, 0x8 lsls r0, 16 movs r1, 0x80 lsls r1, 17 cmp r0, r1 bhi _080D9A2E adds r1, r3, 0 movs r0, 0x8 negs r0, r0 cmp r1, r0 blt _080D9A2E cmp r1, 0x78 ble _080D9A34 _080D9A2E: adds r0, r2, 0 bl move_anim_8072740 _080D9A34: pop {r0} bx r0 thumb_func_end sub_80D99F4 thumb_func_start sub_80D9A38 sub_80D9A38: @ 80D9A38 push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080D9A6C @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D9A7C ldr r4, _080D9A70 @ =gUnknown_02024C07 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r0, _080D9A74 @ =gUnknown_0202F7C9 ldrb r4, [r0] ldr r0, _080D9A78 @ =gUnknown_0202F7C8 b _080D9A82 .align 2, 0 _080D9A6C: .4byte gUnknown_03004B00 _080D9A70: .4byte gUnknown_02024C07 _080D9A74: .4byte gUnknown_0202F7C9 _080D9A78: .4byte gUnknown_0202F7C8 _080D9A7C: ldr r0, _080D9AB4 @ =gUnknown_0202F7C8 ldrb r4, [r0] ldr r0, _080D9AB8 @ =gUnknown_0202F7C9 _080D9A82: ldrb r0, [r0] bl sub_8079ED4 movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r5, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080D9ABC ldrb r2, [r5, 0x3] lsls r1, r2, 26 lsrs r1, 27 movs r0, 0x8 orrs r1, r0 lsls r1, 1 subs r0, 0x47 b _080D9AD6 .align 2, 0 _080D9AB4: .4byte gUnknown_0202F7C8 _080D9AB8: .4byte gUnknown_0202F7C9 _080D9ABC: adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D9ADC ldrb r2, [r5, 0x3] lsls r1, r2, 26 lsrs r1, 27 movs r0, 0x18 orrs r1, r0 lsls r1, 1 subs r0, 0x57 _080D9AD6: ands r0, r2 orrs r0, r1 strb r0, [r5, 0x3] _080D9ADC: movs r0, 0x10 strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] adds r0, r4, 0 movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrh r0, [r5, 0x22] strh r0, [r5, 0x34] adds r0, r4, 0 movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] adds r0, r5, 0 bl obj_translate_based_on_private_1_2_3_4 ldr r1, _080D9B1C @ =move_anim_8072740 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080D9B20 @ =sub_8078BB8 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D9B1C: .4byte move_anim_8072740 _080D9B20: .4byte sub_8078BB8 thumb_func_end sub_80D9A38 thumb_func_start sub_80D9B24 sub_80D9B24: @ 80D9B24 push {r4,lr} adds r4, r0, 0 movs r0, 0x2E ldrsh r1, [r4, r0] movs r2, 0x36 ldrsh r0, [r4, r2] cmp r1, r0 bne _080D9B3A adds r0, r4, 0 bl move_anim_8072740 _080D9B3A: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] pop {r4} pop {r0} bx r0 thumb_func_end sub_80D9B24 thumb_func_start sub_80D9B48 sub_80D9B48: @ 80D9B48 push {r4-r6,lr} adds r5, r0, 0 ldr r4, _080D9BC4 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r1, _080D9BC8 @ =gUnknown_03004B00 ldrh r0, [r1, 0x6] strh r0, [r5, 0x30] ldrh r0, [r1] strh r0, [r5, 0x32] ldrh r0, [r1, 0x2] strh r0, [r5, 0x34] ldrh r0, [r1, 0x4] strh r0, [r5, 0x36] ldr r0, _080D9BCC @ =gUnknown_0202F7C4 ldrb r6, [r0] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D9B92 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _080D9B92: movs r0, 0x1 ands r6, r0 cmp r6, 0 beq _080D9BA6 ldrh r0, [r5, 0x32] negs r0, r0 strh r0, [r5, 0x32] ldrh r0, [r5, 0x30] adds r0, 0x1 strh r0, [r5, 0x30] _080D9BA6: ldrh r1, [r5, 0x30] lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl StartSpriteAnim ldrh r0, [r5, 0x32] strh r0, [r5, 0x24] ldrh r0, [r5, 0x34] strh r0, [r5, 0x26] ldr r0, _080D9BD0 @ =sub_80D9B24 str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D9BC4: .4byte gUnknown_0202F7C9 _080D9BC8: .4byte gUnknown_03004B00 _080D9BCC: .4byte gUnknown_0202F7C4 _080D9BD0: .4byte sub_80D9B24 thumb_func_end sub_80D9B48 thumb_func_start sub_80D9BD4 sub_80D9BD4: @ 80D9BD4 push {r4,lr} adds r4, r0, 0 ldr r0, _080D9BEC @ =gUnknown_03004B00 movs r1, 0x4 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D9BF0 adds r0, r4, 0 movs r1, 0 bl sub_80787B0 b _080D9BF8 .align 2, 0 _080D9BEC: .4byte gUnknown_03004B00 _080D9BF0: adds r0, r4, 0 movs r1, 0 bl sub_8078764 _080D9BF8: bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080D9C0C adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAnim b _080D9C22 _080D9C0C: ldr r0, _080D9C34 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D9C22 adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAnim _080D9C22: ldr r0, _080D9C38 @ =sub_8078600 str r0, [r4, 0x1C] ldr r1, _080D9C3C @ =move_anim_8072740 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4} pop {r0} bx r0 .align 2, 0 _080D9C34: .4byte gUnknown_0202F7C8 _080D9C38: .4byte sub_8078600 _080D9C3C: .4byte move_anim_8072740 thumb_func_end sub_80D9BD4 thumb_func_start sub_80D9C40 sub_80D9C40: @ 80D9C40 push {r4,lr} adds r4, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080D9C7A ldrh r0, [r4, 0x30] adds r0, 0x28 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x30] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x2 bl Sin strh r0, [r4, 0x24] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x28 ble _080D9C7A adds r0, r4, 0 bl move_anim_8072740 _080D9C7A: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D9C40 thumb_func_start sub_80D9C80 sub_80D9C80: @ 80D9C80 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _080D9CB0 @ =gTasks adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080D9CB8 cmp r0, 0x1 bgt _080D9CD2 cmp r0, 0 bne _080D9CD2 movs r0, 0 bl sub_80789D4 ldr r0, _080D9CB4 @ =gUnknown_03004B00 ldrh r0, [r0] strh r0, [r4, 0x18] b _080D9CCA .align 2, 0 _080D9CB0: .4byte gTasks _080D9CB4: .4byte gUnknown_03004B00 _080D9CB8: ldrh r0, [r4, 0x18] subs r0, 0x1 strh r0, [r4, 0x18] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080D9CDE _080D9CCA: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080D9CDE _080D9CD2: movs r2, 0xA0 lsls r2, 3 adds r0, r2, 0 ldrh r1, [r4, 0x1A] adds r0, r1 strh r0, [r4, 0x1A] _080D9CDE: movs r2, 0xB0 lsls r2, 4 adds r0, r2, 0 ldrh r1, [r4, 0x1C] adds r0, r1 strh r0, [r4, 0x1C] ldr r0, _080D9D0C @ =gUnknown_0202F7C9 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D9D14 ldr r1, _080D9D10 @ =gUnknown_030041B0 ldrh r0, [r4, 0x1A] lsls r0, 16 asrs r0, 24 ldrh r2, [r1] adds r0, r2 strh r0, [r1] adds r7, r1, 0 b _080D9D24 .align 2, 0 _080D9D0C: .4byte gUnknown_0202F7C9 _080D9D10: .4byte gUnknown_030041B0 _080D9D14: ldr r2, _080D9D64 @ =gUnknown_030041B0 ldrh r1, [r4, 0x1A] lsls r1, 16 asrs r1, 24 ldrh r0, [r2] subs r0, r1 strh r0, [r2] adds r7, r2, 0 _080D9D24: ldr r3, _080D9D68 @ =gUnknown_030041B8 ldrh r2, [r4, 0x1C] lsls r0, r2, 16 asrs r0, 24 ldrh r1, [r3] adds r0, r1 strh r0, [r3] movs r0, 0xFF ldrb r1, [r4, 0x1A] movs r5, 0 strh r1, [r4, 0x1A] ands r0, r2 strh r0, [r4, 0x1C] ldr r0, _080D9D6C @ =gUnknown_03004B00 movs r2, 0xE ldrsh r1, [r0, r2] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080D9D5C strh r5, [r7] strh r5, [r3] movs r0, 0x1 bl sub_80789D4 adds r0, r6, 0 bl move_anim_task_del _080D9D5C: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D9D64: .4byte gUnknown_030041B0 _080D9D68: .4byte gUnknown_030041B8 _080D9D6C: .4byte gUnknown_03004B00 thumb_func_end sub_80D9C80 thumb_func_start sub_80D9D70 sub_80D9D70: @ 80D9D70 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080D9DC4 @ =gUnknown_03004B00 movs r1, 0x6 ldrsh r0, [r4, r1] cmp r0, 0 bne _080D9D86 adds r0, r5, 0 movs r1, 0x2 bl StartSpriteAnim _080D9D86: adds r0, r5, 0 movs r1, 0x1 bl sub_80787B0 ldrh r0, [r4, 0x4] strh r0, [r5, 0x2E] ldr r4, _080D9DC8 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] ldr r0, _080D9DCC @ =0x0000ffe2 strh r0, [r5, 0x38] adds r0, r5, 0 bl sub_80786EC ldr r0, _080D9DD0 @ =sub_80D9DD4 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D9DC4: .4byte gUnknown_03004B00 _080D9DC8: .4byte gUnknown_0202F7C9 _080D9DCC: .4byte 0x0000ffe2 _080D9DD0: .4byte sub_80D9DD4 thumb_func_end sub_80D9D70 thumb_func_start sub_80D9DD4 sub_80D9DD4: @ 80D9DD4 push {r4,lr} adds r4, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080D9DE8 adds r0, r4, 0 bl move_anim_8072740 _080D9DE8: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D9DD4 thumb_func_start sub_80D9DF0 sub_80D9DF0: @ 80D9DF0 push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 ldr r5, _080D9E64 @ =gUnknown_03004B00 movs r1, 0x6 ldrsh r0, [r5, r1] cmp r0, 0 bne _080D9E08 adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAnim _080D9E08: adds r0, r4, 0 movs r1, 0x1 bl sub_80787B0 ldr r0, _080D9E68 @ =gUnknown_0202F7C9 ldrb r0, [r0] mov r6, sp adds r6, 0x2 movs r1, 0x1 mov r2, sp adds r3, r6, 0 bl sub_807A3FC ldr r0, _080D9E6C @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D9E36 ldrh r0, [r5, 0x8] negs r0, r0 strh r0, [r5, 0x8] _080D9E36: ldrh r0, [r5, 0x4] strh r0, [r4, 0x2E] mov r1, sp ldrh r0, [r5, 0x8] ldrh r1, [r1] adds r0, r1 strh r0, [r4, 0x32] ldrh r0, [r5, 0xA] ldrh r6, [r6] adds r0, r6 strh r0, [r4, 0x36] ldr r0, _080D9E70 @ =0x0000ffe2 strh r0, [r4, 0x38] adds r0, r4, 0 bl sub_80786EC ldr r0, _080D9E74 @ =sub_80D9E78 str r0, [r4, 0x1C] add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D9E64: .4byte gUnknown_03004B00 _080D9E68: .4byte gUnknown_0202F7C9 _080D9E6C: .4byte gUnknown_0202F7C8 _080D9E70: .4byte 0x0000ffe2 _080D9E74: .4byte sub_80D9E78 thumb_func_end sub_80D9DF0 thumb_func_start sub_80D9E78 sub_80D9E78: @ 80D9E78 push {r4,lr} adds r4, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080D9E8C adds r0, r4, 0 bl move_anim_8072740 _080D9E8C: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D9E78 thumb_func_start sub_80D9E94 sub_80D9E94: @ 80D9E94 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080D9EE0 @ =gUnknown_03004B00 ldrh r0, [r5, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] ldrh r1, [r5] adds r0, r1 strh r0, [r4, 0x32] ldrh r0, [r4, 0x22] strh r0, [r4, 0x34] ldrh r1, [r5, 0x2] adds r0, r1 strh r0, [r4, 0x36] adds r0, r4, 0 bl sub_8078A5C movs r1, 0x30 ldrsh r0, [r4, r1] movs r2, 0x4 ldrsh r1, [r5, r2] bl __divsi3 strh r0, [r4, 0x38] movs r1, 0x32 ldrsh r0, [r4, r1] movs r2, 0x4 ldrsh r1, [r5, r2] bl __divsi3 strh r0, [r4, 0x3A] ldr r0, _080D9EE4 @ =sub_80D9EE8 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D9EE0: .4byte gUnknown_03004B00 _080D9EE4: .4byte sub_80D9EE8 thumb_func_end sub_80D9E94 thumb_func_start sub_80D9EE8 sub_80D9EE8: @ 80D9EE8 push {r4,lr} adds r4, r0, 0 bl sub_8078394 ldrh r0, [r4, 0x30] ldrh r1, [r4, 0x38] subs r0, r1 strh r0, [r4, 0x30] ldrh r0, [r4, 0x32] ldrh r1, [r4, 0x3A] subs r0, r1 strh r0, [r4, 0x32] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _080D9F0E adds r0, r4, 0 bl move_anim_8072740 _080D9F0E: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D9EE8 thumb_func_start sub_80D9F14 sub_80D9F14: @ 80D9F14 push {r4,lr} adds r4, r0, 0 ldr r0, _080D9F74 @ =gUnknown_0202F7C9 ldrb r0, [r0] adds r2, r4, 0 adds r2, 0x20 adds r3, r4, 0 adds r3, 0x22 movs r1, 0x1 bl sub_807A3FC ldr r0, _080D9F78 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D9F40 ldr r1, _080D9F7C @ =gUnknown_03004B00 ldrh r0, [r1] negs r0, r0 strh r0, [r1] _080D9F40: ldr r0, _080D9F7C @ =gUnknown_03004B00 ldrh r2, [r0] ldrh r1, [r4, 0x20] adds r2, r1 strh r2, [r4, 0x20] ldrh r1, [r0, 0x2] ldrh r3, [r4, 0x22] adds r1, r3 strh r1, [r4, 0x22] ldrh r3, [r0, 0x8] strh r3, [r4, 0x2E] ldrh r0, [r0, 0x4] adds r2, r0 strh r2, [r4, 0x32] adds r1, r3 strh r1, [r4, 0x36] ldr r0, _080D9F80 @ =sub_8078B34 str r0, [r4, 0x1C] ldr r1, _080D9F84 @ =move_anim_8072740 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4} pop {r0} bx r0 .align 2, 0 _080D9F74: .4byte gUnknown_0202F7C9 _080D9F78: .4byte gUnknown_0202F7C8 _080D9F7C: .4byte gUnknown_03004B00 _080D9F80: .4byte sub_8078B34 _080D9F84: .4byte move_anim_8072740 thumb_func_end sub_80D9F14 thumb_func_start sub_80D9F88 sub_80D9F88: @ 80D9F88 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080D9FA0 @ =gUnknown_03004B00 movs r1, 0x4 ldrsh r0, [r5, r1] cmp r0, 0 bne _080D9FA4 adds r0, r4, 0 movs r1, 0x1 bl sub_8078764 b _080D9FDA .align 2, 0 _080D9FA0: .4byte gUnknown_03004B00 _080D9FA4: ldr r0, _080D9FE4 @ =gUnknown_0202F7C9 ldrb r0, [r0] adds r2, r4, 0 adds r2, 0x20 adds r3, r4, 0 adds r3, 0x22 movs r1, 0x1 bl sub_807A3FC ldr r0, _080D9FE8 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D9FCA ldrh r0, [r5] negs r0, r0 strh r0, [r5] _080D9FCA: ldrh r0, [r5] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] ldrh r0, [r5, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] _080D9FDA: ldr r0, _080D9FEC @ =sub_80D9FF0 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D9FE4: .4byte gUnknown_0202F7C9 _080D9FE8: .4byte gUnknown_0202F7C8 _080D9FEC: .4byte sub_80D9FF0 thumb_func_end sub_80D9F88 thumb_func_start sub_80D9FF0 sub_80D9FF0: @ 80D9FF0 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0xB movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x2E] movs r1, 0x2E ldrsh r0, [r4, r1] movs r1, 0x4 bl Sin strh r0, [r4, 0x24] ldrh r0, [r4, 0x30] adds r0, 0x30 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 24 negs r0, r0 strh r0, [r4, 0x26] adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080DA02C adds r0, r4, 0 bl move_anim_8072740 _080DA02C: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D9FF0 thumb_func_start sub_80DA034 sub_80DA034: @ 80DA034 push {r4,lr} adds r4, r0, 0 movs r1, 0 bl sub_8078764 ldrh r0, [r4, 0x22] adds r0, 0x14 strh r0, [r4, 0x22] movs r0, 0xBF strh r0, [r4, 0x30] ldr r1, _080DA058 @ =sub_80DA05C str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4} pop {r0} bx r0 .align 2, 0 _080DA058: .4byte sub_80DA05C thumb_func_end sub_80DA034 thumb_func_start sub_80DA05C sub_80DA05C: @ 80DA05C push {r4,lr} adds r4, r0, 0 movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x20 bl Sin strh r0, [r4, 0x24] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x8 bl Cos strh r0, [r4, 0x26] ldrh r0, [r4, 0x30] adds r0, 0x5 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x30] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x47 bne _080DA096 adds r0, r4, 0 bl move_anim_8072740 _080DA096: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DA05C thumb_func_start sub_80DA09C sub_80DA09C: @ 80DA09C push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080DA0CC @ =gTasks lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldr r1, _080DA0D0 @ =gUnknown_03004B00 ldrh r0, [r1, 0x2] strh r0, [r4, 0x8] ldrh r0, [r1] strh r0, [r4, 0xA] ldr r0, _080DA0D4 @ =0x00002719 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xC] ldr r0, _080DA0D8 @ =sub_80DA0DC str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080DA0CC: .4byte gTasks _080DA0D0: .4byte gUnknown_03004B00 _080DA0D4: .4byte 0x00002719 _080DA0D8: .4byte sub_80DA0DC thumb_func_end sub_80DA09C thumb_func_start sub_80DA0DC sub_80DA0DC: @ 80DA0DC push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r2, _080DA15C @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r3, r0, r2 ldrh r0, [r3, 0x1C] adds r1, r0, 0x1 strh r1, [r3, 0x1C] lsls r0, 16 asrs r0, 16 movs r4, 0xA ldrsh r1, [r3, r4] adds r7, r2, 0 cmp r0, r1 bne _080DA13A movs r0, 0 strh r0, [r3, 0x1C] ldrb r0, [r3, 0xC] ldr r2, _080DA160 @ =gPlttBufferFaded lsls r0, 4 movs r3, 0x84 lsls r3, 1 adds r1, r0, r3 lsls r1, 1 adds r1, r2 ldrh r6, [r1] movs r4, 0x7 mov r12, r0 ldr r0, _080DA164 @ =0x00000107 add r0, r12 lsls r0, 1 adds r3, r0, r2 _080DA122: ldrh r0, [r3] strh r0, [r1] subs r3, 0x2 subs r1, 0x2 subs r4, 0x1 cmp r4, 0 bgt _080DA122 ldr r0, _080DA168 @ =0x00000101 add r0, r12 lsls r0, 1 adds r0, r2 strh r6, [r0] _080DA13A: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r7 ldrh r1, [r0, 0x8] subs r1, 0x1 strh r1, [r0, 0x8] lsls r1, 16 cmp r1, 0 bne _080DA154 adds r0, r5, 0 bl move_anim_task_del _080DA154: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DA15C: .4byte gTasks _080DA160: .4byte gPlttBufferFaded _080DA164: .4byte 0x00000107 _080DA168: .4byte 0x00000101 thumb_func_end sub_80DA0DC thumb_func_start sub_80DA16C sub_80DA16C: @ 80DA16C push {r4-r6,lr} adds r6, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r0, _080DA1D8 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DA18C ldr r1, _080DA1DC @ =gUnknown_03004B00 ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080DA18C: ldr r4, _080DA1DC @ =gUnknown_03004B00 ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] ldrh r0, [r6, 0x20] strh r0, [r6, 0x30] ldr r5, _080DA1E0 @ =gUnknown_0202F7C9 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] adds r0, r1 strh r0, [r6, 0x32] ldrh r0, [r6, 0x22] strh r0, [r6, 0x34] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x6] adds r0, r4 strh r0, [r6, 0x36] adds r0, r6, 0 bl obj_translate_based_on_private_1_2_3_4 ldr r0, _080DA1E4 @ =sub_80785E4 str r0, [r6, 0x1C] ldr r1, _080DA1E8 @ =sub_80DA1EC adds r0, r6, 0 bl oamt_set_x3A_32 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DA1D8: .4byte gUnknown_0202F7C8 _080DA1DC: .4byte gUnknown_03004B00 _080DA1E0: .4byte gUnknown_0202F7C9 _080DA1E4: .4byte sub_80785E4 _080DA1E8: .4byte sub_80DA1EC thumb_func_end sub_80DA16C thumb_func_start sub_80DA1EC sub_80DA1EC: @ 80DA1EC push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 beq _080DA200 adds r0, r4, 0 bl move_anim_8072740 _080DA200: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DA1EC thumb_func_start sub_80DA208 sub_80DA208: @ 80DA208 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080DA2A4 @ =gUnknown_0202F7C8 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DA234 ldr r1, _080DA2A8 @ =gUnknown_03004B00 ldrh r0, [r1] negs r0, r0 strh r0, [r1] ldrh r0, [r1, 0x2] negs r0, r0 strh r0, [r1, 0x2] ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] ldrh r0, [r1, 0x6] negs r0, r0 strh r0, [r1, 0x6] _080DA234: bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080DA24C ldr r0, _080DA2A8 @ =gUnknown_03004B00 ldrh r1, [r0, 0x2] negs r1, r1 strh r1, [r0, 0x2] ldrh r1, [r0, 0x6] negs r1, r1 strh r1, [r0, 0x6] _080DA24C: ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 ldr r2, _080DA2A8 @ =gUnknown_03004B00 ldrh r1, [r2] ldrh r3, [r5, 0x20] adds r1, r3 strh r1, [r5, 0x20] lsrs r0, 24 ldrh r1, [r2, 0x2] adds r0, r1 strh r0, [r5, 0x22] ldrh r0, [r2, 0x8] strh r0, [r5, 0x2E] movs r3, 0xC ldrsh r0, [r2, r3] cmp r0, 0 bne _080DA2B0 ldr r4, _080DA2AC @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] b _080DA2C2 .align 2, 0 _080DA2A4: .4byte gUnknown_0202F7C8 _080DA2A8: .4byte gUnknown_03004B00 _080DA2AC: .4byte gUnknown_0202F7C9 _080DA2B0: ldr r0, _080DA2F0 @ =gUnknown_0202F7C9 ldrb r0, [r0] adds r2, r5, 0 adds r2, 0x32 adds r3, r5, 0 adds r3, 0x36 movs r1, 0x1 bl sub_807A3FC _080DA2C2: ldr r4, _080DA2F4 @ =gUnknown_03004B00 ldrh r0, [r4, 0x4] ldrh r1, [r5, 0x32] adds r0, r1 strh r0, [r5, 0x32] ldrh r0, [r4, 0x6] ldrh r3, [r5, 0x36] adds r0, r3 strh r0, [r5, 0x36] ldr r0, _080DA2F8 @ =sub_8078B34 str r0, [r5, 0x1C] ldr r1, _080DA2FC @ =move_anim_8072740 adds r0, r5, 0 bl oamt_set_x3A_32 ldrb r1, [r4, 0xA] adds r0, r5, 0 bl SeekSpriteAnim pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DA2F0: .4byte gUnknown_0202F7C9 _080DA2F4: .4byte gUnknown_03004B00 _080DA2F8: .4byte sub_8078B34 _080DA2FC: .4byte move_anim_8072740 thumb_func_end sub_80DA208 thumb_func_start sub_80DA300 sub_80DA300: @ 80DA300 push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r1, _080DA33C @ =gUnknown_03004B00 ldrh r0, [r1, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x6] strh r0, [r4, 0x30] ldr r0, _080DA340 @ =sub_80DA348 str r0, [r4, 0x1C] movs r0, 0 bl obj_id_for_side_relative_to_move ldr r2, _080DA344 @ =gSprites lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _080DA33C: .4byte gUnknown_03004B00 _080DA340: .4byte sub_80DA348 _080DA344: .4byte gSprites thumb_func_end sub_80DA300 thumb_func_start sub_80DA348 sub_80DA348: @ 80DA348 push {lr} adds r2, r0, 0 ldrh r1, [r2, 0x2E] movs r3, 0x2E ldrsh r0, [r2, r3] cmp r0, 0 ble _080DA35C subs r0, r1, 0x1 strh r0, [r2, 0x2E] b _080DA36E _080DA35C: ldrh r0, [r2, 0x30] ldrh r1, [r2, 0x32] adds r0, r1 strh r0, [r2, 0x32] lsls r0, 16 asrs r0, 24 ldrh r1, [r2, 0x26] subs r1, r0 strh r1, [r2, 0x26] _080DA36E: movs r3, 0x22 ldrsh r0, [r2, r3] movs r3, 0x26 ldrsh r1, [r2, r3] adds r0, r1 movs r1, 0x20 negs r1, r1 cmp r0, r1 bge _080DA386 adds r0, r2, 0 bl move_anim_8072740 _080DA386: pop {r0} bx r0 thumb_func_end sub_80DA348 thumb_func_start sub_80DA38C sub_80DA38C: @ 80DA38C push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080DA3B4 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DA3BC movs r0, 0x88 lsls r0, 1 strh r0, [r5, 0x20] ldr r0, _080DA3B8 @ =0x0000ffe0 strh r0, [r5, 0x22] adds r0, r5, 0 movs r1, 0x1 bl StartSpriteAffineAnim b _080DA3C2 .align 2, 0 _080DA3B4: .4byte gUnknown_0202F7C8 _080DA3B8: .4byte 0x0000ffe0 _080DA3BC: ldr r0, _080DA400 @ =0x0000ffe0 strh r0, [r5, 0x20] strh r0, [r5, 0x22] _080DA3C2: ldr r0, _080DA404 @ =gUnknown_03004B00 ldrh r0, [r0] strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] ldr r4, _080DA408 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrh r0, [r5, 0x22] strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] adds r0, r5, 0 bl obj_translate_based_on_private_1_2_3_4 ldr r0, _080DA40C @ =sub_80DA410 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DA400: .4byte 0x0000ffe0 _080DA404: .4byte gUnknown_03004B00 _080DA408: .4byte gUnknown_0202F7C9 _080DA40C: .4byte sub_80DA410 thumb_func_end sub_80DA38C thumb_func_start sub_80DA410 sub_80DA410: @ 80DA410 push {r4,lr} adds r4, r0, 0 movs r0, 0x1 strh r0, [r4, 0x2E] adds r0, r4, 0 bl sub_8078B5C ldrh r1, [r4, 0x34] lsrs r0, r1, 8 cmp r0, 0xC8 bls _080DA438 ldrh r0, [r4, 0x24] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] movs r0, 0 strh r0, [r4, 0x24] movs r0, 0xFF ands r0, r1 strh r0, [r4, 0x34] _080DA438: movs r1, 0x20 ldrsh r0, [r4, r1] movs r2, 0x24 ldrsh r1, [r4, r2] adds r0, r1 adds r0, 0x20 movs r1, 0x98 lsls r1, 1 cmp r0, r1 bhi _080DA45A movs r1, 0x22 ldrsh r0, [r4, r1] movs r2, 0x26 ldrsh r1, [r4, r2] adds r0, r1 cmp r0, 0xA0 ble _080DA480 _080DA45A: movs r0, 0 bl obj_id_for_side_relative_to_move ldr r2, _080DA488 @ =gSprites lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x3E ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1] adds r0, r4, 0 bl move_anim_8072740 _080DA480: pop {r4} pop {r0} bx r0 .align 2, 0 _080DA488: .4byte gSprites thumb_func_end sub_80DA410 thumb_func_start sub_80DA48C sub_80DA48C: @ 80DA48C push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] subs r1, r0, 0x1 strh r1, [r4, 0x2E] lsls r0, 16 cmp r0, 0 bgt _080DA4CC ldrb r0, [r4, 0x1] lsls r0, 30 lsrs r0, 30 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080DA4BE ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix ldrb r1, [r4, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r1 strb r0, [r4, 0x1] _080DA4BE: adds r0, r4, 0 bl DestroySprite ldr r1, _080DA4D4 @ =gUnknown_0202F7B2 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] _080DA4CC: pop {r4} pop {r0} bx r0 .align 2, 0 _080DA4D4: .4byte gUnknown_0202F7B2 thumb_func_end sub_80DA48C thumb_func_start sub_80DA4D8 sub_80DA4D8: @ 80DA4D8 push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 adds r5, r7, 0 adds r5, 0x2E ldr r0, _080DA4F8 @ =gUnknown_03004B00 ldrh r1, [r0, 0xE] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _080DA500 ldr r0, _080DA4FC @ =gUnknown_0202F7C8 b _080DA502 .align 2, 0 _080DA4F8: .4byte gUnknown_03004B00 _080DA4FC: .4byte gUnknown_0202F7C8 _080DA500: ldr r0, _080DA5B0 @ =gUnknown_0202F7C9 _080DA502: ldrb r6, [r0] adds r0, r6, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080DA518 ldr r1, _080DA5B4 @ =gUnknown_03004B00 ldrh r0, [r1] negs r0, r0 strh r0, [r1] _080DA518: adds r0, r6, 0 movs r1, 0 bl sub_8077ABC lsls r0, 24 ldr r4, _080DA5B4 @ =gUnknown_03004B00 lsrs r0, 24 ldrh r1, [r4] adds r0, r1 strh r0, [r7, 0x20] adds r0, r6, 0 movs r1, 0x1 bl sub_8077ABC lsls r0, 24 ldrh r1, [r4, 0x2] lsrs r0, 24 adds r1, r0, r1 strh r1, [r7, 0x22] lsls r1, 8 strh r1, [r5, 0x8] ldrh r1, [r4, 0xC] adds r0, r1 lsls r0, 1 ldrh r2, [r5, 0xE] movs r1, 0x1 ands r1, r2 orrs r1, r0 strh r1, [r5, 0xE] ldrb r0, [r5] movs r2, 0x4 mov r8, r2 mov r1, r8 orrs r0, r1 strb r0, [r5] ldrh r0, [r4, 0x4] ldrb r1, [r4, 0x4] strh r1, [r5, 0x2] lsls r0, 16 lsrs r0, 24 strh r0, [r5, 0xA] ldrh r0, [r4, 0x6] strh r0, [r5, 0x4] ldrh r0, [r4, 0x8] strh r0, [r5, 0x6] ldrh r0, [r4, 0xA] strh r0, [r5, 0xC] subs r1, 0x40 lsls r1, 16 lsrs r1, 16 cmp r1, 0x7F bhi _080DA618 ldr r0, _080DA5B8 @ =gMain ldr r2, _080DA5BC @ =0x0000043d adds r0, r2 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080DA5C0 adds r0, r6, 0 bl sub_8079ED4 lsls r0, 24 lsrs r0, 24 adds r0, 0x1 movs r1, 0x3 ands r0, r1 lsls r0, 2 ldrb r2, [r7, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r7, 0x5] b _080DA5D8 .align 2, 0 _080DA5B0: .4byte gUnknown_0202F7C9 _080DA5B4: .4byte gUnknown_03004B00 _080DA5B8: .4byte gMain _080DA5BC: .4byte 0x0000043d _080DA5C0: adds r0, r6, 0 bl sub_8079ED4 movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r7, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r7, 0x5] _080DA5D8: ldrb r1, [r5, 0xE] movs r4, 0x2 negs r4, r4 adds r0, r4, 0 ands r0, r1 strb r0, [r5, 0xE] movs r1, 0x4 ldrsh r0, [r5, r1] movs r1, 0x80 lsls r1, 8 ands r0, r1 cmp r0, 0 bne _080DA678 adds r3, r7, 0 adds r3, 0x3F ldrb r2, [r3] lsls r0, r2, 31 lsrs r0, 31 movs r1, 0x1 eors r1, r0 adds r0, r4, 0 ands r0, r2 orrs r0, r1 strb r0, [r3] lsls r0, 31 lsrs r0, 31 adds r1, r7, 0 adds r1, 0x2A strb r0, [r1] ldrb r0, [r3] movs r1, 0x4 b _080DA66E _080DA618: adds r0, r6, 0 bl sub_8079ED4 movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r7, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r7, 0x5] ldrb r0, [r5, 0xE] movs r4, 0x1 orrs r0, r4 strb r0, [r5, 0xE] movs r2, 0x4 ldrsh r0, [r5, r2] movs r1, 0x80 lsls r1, 8 ands r0, r1 cmp r0, 0 beq _080DA678 adds r3, r7, 0 adds r3, 0x3F ldrb r2, [r3] lsls r1, r2, 31 lsrs r1, 31 movs r0, 0x1 eors r1, r0 ands r1, r4 movs r0, 0x2 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] lsls r0, 31 lsrs r0, 31 adds r1, r7, 0 adds r1, 0x2A strb r0, [r1] ldrb r0, [r3] mov r1, r8 _080DA66E: orrs r0, r1 movs r1, 0x11 negs r1, r1 ands r0, r1 strb r0, [r3] _080DA678: ldrh r1, [r5, 0x2] lsrs r1, 6 lsls r1, 4 ldrb r2, [r5] movs r0, 0xF ands r0, r2 orrs r0, r1 strb r0, [r5] ldr r3, _080DA6E4 @ =gSineTable ldrh r0, [r5, 0x2] lsls r0, 1 adds r0, r3 movs r2, 0 ldrsh r1, [r0, r2] ldrb r0, [r5, 0xC] muls r0, r1 asrs r0, 8 strh r0, [r7, 0x24] ldrb r2, [r7, 0x3] lsls r2, 26 lsrs r2, 27 movs r1, 0x24 ldrsh r0, [r7, r1] negs r0, r0 asrs r0, 1 ldrb r5, [r5, 0xA] adds r0, r5 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r3 ldrh r4, [r1] ldr r1, _080DA6E8 @ =gOamMatrices lsls r2, 3 adds r2, r1 adds r0, 0x40 lsls r0, 1 adds r0, r3 ldrh r0, [r0] strh r0, [r2, 0x6] strh r0, [r2] strh r4, [r2, 0x2] lsls r0, r4, 16 asrs r0, 16 negs r0, r0 strh r0, [r2, 0x4] ldr r0, _080DA6EC @ =sub_80DA6F0 str r0, [r7, 0x1C] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DA6E4: .4byte gSineTable _080DA6E8: .4byte gOamMatrices _080DA6EC: .4byte sub_80DA6F0 thumb_func_end sub_80DA4D8 thumb_func_start sub_80DA6F0 sub_80DA6F0: @ 80DA6F0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r5, r0, 0 movs r6, 0 movs r0, 0x2E adds r0, r5 mov r12, r0 ldrb r2, [r0] movs r7, 0x1 movs r1, 0x1 mov r9, r1 mov r0, r9 ands r0, r2 cmp r0, 0 beq _080DA730 mov r3, r12 ldrb r0, [r3, 0x1] adds r1, r0, 0 adds r1, 0xFF strb r1, [r3, 0x1] lsls r0, 24 cmp r0, 0 beq _080DA724 b _080DAD1A _080DA724: movs r0, 0x2 negs r0, r0 ands r0, r2 strb r0, [r3] strb r6, [r3, 0x1] b _080DAD1A _080DA730: mov r4, r12 ldrh r0, [r4, 0x2] lsrs r4, r0, 6 mov r8, r0 cmp r4, 0x1 bne _080DA73E b _080DA896 _080DA73E: cmp r4, 0x1 bgt _080DA748 cmp r4, 0 beq _080DA756 b _080DAC52 _080DA748: cmp r4, 0x2 bne _080DA74E b _080DA9C8 _080DA74E: cmp r4, 0x3 bne _080DA754 b _080DAB0E _080DA754: b _080DAC52 _080DA756: lsls r1, r2, 24 lsrs r0, r1, 28 cmp r0, 0x1 bne _080DA76C movs r0, 0x8 orrs r0, r2 orrs r0, r7 mov r1, r12 strb r0, [r1] strb r6, [r1, 0x1] b _080DA88A _080DA76C: lsrs r0, r1, 28 cmp r0, 0x3 bne _080DA790 lsls r0, r2, 30 lsrs r0, 31 movs r1, 0x1 eors r0, r1 ands r0, r7 lsls r0, 1 movs r1, 0x3 negs r1, r1 ands r1, r2 orrs r1, r0 orrs r1, r7 mov r2, r12 strb r1, [r2] strb r6, [r2, 0x1] b _080DA88A _080DA790: movs r0, 0x8 ands r0, r2 cmp r0, 0 beq _080DA88A adds r3, r5, 0 adds r3, 0x3F ldrb r2, [r3] lsls r1, r2, 31 lsrs r1, 31 movs r4, 0x1 eors r1, r4 ands r1, r7 movs r6, 0x2 negs r6, r6 adds r0, r6, 0 ands r0, r2 orrs r0, r1 strb r0, [r3] lsls r0, 31 lsrs r0, 31 adds r1, r5, 0 adds r1, 0x2A strb r0, [r1] ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 movs r1, 0x11 negs r1, r1 ands r0, r1 strb r0, [r3] mov r3, r12 ldrb r1, [r3] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080DA87A ldr r0, _080DA80C @ =gMain ldr r1, _080DA810 @ =0x0000043d adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080DA82E ldrb r1, [r3, 0xE] mov r0, r9 ands r0, r1 cmp r0, 0 bne _080DA814 ldrb r2, [r5, 0x5] lsls r1, r2, 28 lsrs r1, 30 subs r1, 0x1 movs r0, 0x3 ands r1, r0 lsls r1, 2 movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] b _080DA868 .align 2, 0 _080DA80C: .4byte gMain _080DA810: .4byte 0x0000043d _080DA814: ldrb r2, [r5, 0x5] lsls r1, r2, 28 lsrs r1, 30 adds r1, 0x1 movs r0, 0x3 ands r1, r0 lsls r1, 2 movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] b _080DA866 _080DA82E: mov r0, r12 ldrb r1, [r0, 0xE] mov r0, r9 ands r0, r1 cmp r0, 0 bne _080DA85C adds r1, r5, 0 adds r1, 0x43 ldrb r0, [r1] subs r0, 0xC strb r0, [r1] mov r1, r12 ldrb r2, [r1, 0xE] lsls r0, r2, 31 lsrs r0, 31 eors r0, r4 ands r0, r7 adds r1, r6, 0 ands r1, r2 orrs r1, r0 mov r2, r12 strb r1, [r2, 0xE] b _080DA87A _080DA85C: adds r1, r5, 0 adds r1, 0x43 ldrb r0, [r1] adds r0, 0xC strb r0, [r1] _080DA866: mov r3, r12 _080DA868: ldrb r2, [r3, 0xE] lsls r0, r2, 31 lsrs r0, 31 eors r0, r4 ands r0, r7 adds r1, r6, 0 ands r1, r2 orrs r1, r0 strb r1, [r3, 0xE] _080DA87A: mov r4, r12 ldrb r1, [r4] movs r0, 0x9 negs r0, r0 ands r0, r1 strb r0, [r4] ldrh r0, [r4, 0x2] mov r8, r0 _080DA88A: mov r2, r12 ldrb r1, [r2] movs r0, 0xF ands r0, r1 strb r0, [r2] b _080DAC52 _080DA896: lsls r1, r2, 24 lsrs r0, r1, 28 cmp r0, 0 bne _080DA8AC movs r0, 0x8 orrs r0, r2 orrs r0, r7 mov r3, r12 strb r0, [r3] strb r6, [r3, 0x1] b _080DA9BC _080DA8AC: lsrs r0, r1, 28 cmp r0, 0x2 bne _080DA8BE adds r0, r2, 0 orrs r0, r7 mov r4, r12 strb r0, [r4] strb r6, [r4, 0x1] b _080DA9BC _080DA8BE: movs r0, 0x8 ands r0, r2 cmp r0, 0 beq _080DA9BC adds r3, r5, 0 adds r3, 0x3F ldrb r2, [r3] lsls r1, r2, 31 lsrs r1, 31 movs r4, 0x1 eors r1, r4 ands r1, r7 movs r6, 0x2 negs r6, r6 adds r0, r6, 0 ands r0, r2 orrs r0, r1 strb r0, [r3] lsls r0, 31 lsrs r0, 31 adds r1, r5, 0 adds r1, 0x2A strb r0, [r1] ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 movs r1, 0x11 negs r1, r1 ands r0, r1 strb r0, [r3] mov r0, r12 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080DA9AC ldr r0, _080DA940 @ =gMain ldr r1, _080DA944 @ =0x0000043d adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080DA962 mov r2, r12 ldrb r1, [r2, 0xE] mov r0, r9 ands r0, r1 cmp r0, 0 bne _080DA948 ldrb r2, [r5, 0x5] lsls r1, r2, 28 lsrs r1, 30 subs r1, 0x1 movs r0, 0x3 ands r1, r0 lsls r1, 2 movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] mov r3, r12 b _080DA978 .align 2, 0 _080DA940: .4byte gMain _080DA944: .4byte 0x0000043d _080DA948: ldrb r2, [r5, 0x5] lsls r1, r2, 28 lsrs r1, 30 adds r1, 0x1 movs r0, 0x3 ands r1, r0 lsls r1, 2 movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] b _080DA996 _080DA962: mov r3, r12 ldrb r1, [r3, 0xE] mov r0, r9 ands r0, r1 cmp r0, 0 bne _080DA98C adds r1, r5, 0 adds r1, 0x43 ldrb r0, [r1] subs r0, 0xC strb r0, [r1] _080DA978: ldrb r2, [r3, 0xE] lsls r0, r2, 31 lsrs r0, 31 eors r0, r4 ands r0, r7 adds r1, r6, 0 ands r1, r2 orrs r1, r0 strb r1, [r3, 0xE] b _080DA9AC _080DA98C: adds r1, r5, 0 adds r1, 0x43 ldrb r0, [r1] adds r0, 0xC strb r0, [r1] _080DA996: mov r0, r12 ldrb r2, [r0, 0xE] lsls r0, r2, 31 lsrs r0, 31 eors r0, r4 ands r0, r7 adds r1, r6, 0 ands r1, r2 orrs r1, r0 mov r2, r12 strb r1, [r2, 0xE] _080DA9AC: mov r3, r12 ldrb r1, [r3] movs r0, 0x9 negs r0, r0 ands r0, r1 strb r0, [r3] ldrh r4, [r3, 0x2] mov r8, r4 _080DA9BC: mov r1, r12 ldrb r0, [r1] movs r1, 0xF ands r1, r0 movs r0, 0x10 b _080DAC4C _080DA9C8: lsls r1, r2, 24 lsrs r0, r1, 28 cmp r0, 0x3 bne _080DA9DE movs r0, 0x8 orrs r0, r2 orrs r0, r7 mov r3, r12 strb r0, [r3] strb r6, [r3, 0x1] b _080DAAFE _080DA9DE: lsrs r0, r1, 28 cmp r0, 0x1 bne _080DA9F0 adds r0, r2, 0 orrs r0, r7 mov r4, r12 strb r0, [r4] strb r6, [r4, 0x1] b _080DAAFE _080DA9F0: movs r0, 0x8 ands r0, r2 cmp r0, 0 bne _080DA9FA b _080DAAFE _080DA9FA: adds r3, r5, 0 adds r3, 0x3F ldrb r2, [r3] lsls r1, r2, 31 lsrs r1, 31 movs r6, 0x1 eors r1, r6 ands r1, r7 movs r0, 0x2 negs r0, r0 mov r8, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] lsls r0, 31 lsrs r0, 31 adds r1, r5, 0 adds r1, 0x2A strb r0, [r1] ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 movs r1, 0x11 negs r1, r1 ands r0, r1 strb r0, [r3] mov r2, r12 ldrb r1, [r2] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080DAAEC ldr r0, _080DAA6C @ =gMain ldr r3, _080DAA70 @ =0x0000043d adds r0, r3 ldrb r0, [r0] ands r4, r0 cmp r4, 0 beq _080DAAA4 ldrb r1, [r2, 0xE] mov r0, r9 ands r0, r1 cmp r0, 0 bne _080DAA74 ldrb r2, [r5, 0x5] lsls r1, r2, 28 lsrs r1, 30 subs r1, 0x1 movs r0, 0x3 ands r1, r0 lsls r1, 2 movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] b _080DAAD8 .align 2, 0 _080DAA6C: .4byte gMain _080DAA70: .4byte 0x0000043d _080DAA74: ldrb r2, [r5, 0x5] lsls r1, r2, 28 lsrs r1, 30 adds r1, 0x1 movs r0, 0x3 ands r1, r0 lsls r1, 2 movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] mov r0, r12 ldrb r2, [r0, 0xE] lsls r0, r2, 31 lsrs r0, 31 eors r0, r6 ands r0, r7 mov r1, r8 ands r1, r2 orrs r1, r0 mov r2, r12 strb r1, [r2, 0xE] b _080DAAEC _080DAAA4: mov r3, r12 ldrb r1, [r3, 0xE] mov r0, r9 ands r0, r1 cmp r0, 0 bne _080DAACE adds r1, r5, 0 adds r1, 0x43 ldrb r0, [r1] subs r0, 0xC strb r0, [r1] ldrb r2, [r3, 0xE] lsls r0, r2, 31 lsrs r0, 31 eors r0, r6 ands r0, r7 mov r1, r8 ands r1, r2 orrs r1, r0 strb r1, [r3, 0xE] b _080DAAEC _080DAACE: adds r1, r5, 0 adds r1, 0x43 ldrb r0, [r1] adds r0, 0xC strb r0, [r1] _080DAAD8: mov r4, r12 ldrb r2, [r4, 0xE] lsls r0, r2, 31 lsrs r0, 31 eors r0, r6 ands r0, r7 mov r1, r8 ands r1, r2 orrs r1, r0 strb r1, [r4, 0xE] _080DAAEC: mov r0, r12 ldrb r1, [r0] movs r0, 0x9 negs r0, r0 ands r0, r1 mov r1, r12 strb r0, [r1] ldrh r2, [r1, 0x2] mov r8, r2 _080DAAFE: mov r3, r12 ldrb r0, [r3] movs r1, 0xF ands r1, r0 movs r0, 0x20 orrs r1, r0 strb r1, [r3] b _080DAC52 _080DAB0E: lsls r1, r2, 24 lsrs r0, r1, 28 cmp r0, 0x2 bne _080DAB20 movs r0, 0x8 orrs r0, r2 mov r4, r12 strb r0, [r4] b _080DAC42 _080DAB20: lsrs r0, r1, 28 cmp r0, 0 bne _080DAB44 lsls r0, r2, 30 lsrs r0, 31 movs r1, 0x1 eors r0, r1 ands r0, r7 lsls r0, 1 movs r1, 0x3 negs r1, r1 ands r1, r2 orrs r1, r0 orrs r1, r7 mov r0, r12 strb r1, [r0] strb r6, [r0, 0x1] b _080DAC42 _080DAB44: movs r0, 0x8 ands r0, r2 cmp r0, 0 beq _080DAC42 adds r3, r5, 0 adds r3, 0x3F ldrb r2, [r3] lsls r1, r2, 31 lsrs r1, 31 movs r4, 0x1 eors r1, r4 ands r1, r7 movs r6, 0x2 negs r6, r6 adds r0, r6, 0 ands r0, r2 orrs r0, r1 strb r0, [r3] lsls r0, 31 lsrs r0, 31 adds r1, r5, 0 adds r1, 0x2A strb r0, [r1] ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 movs r1, 0x11 negs r1, r1 ands r0, r1 strb r0, [r3] mov r2, r12 ldrb r1, [r2] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080DAC32 ldr r0, _080DABC4 @ =gMain ldr r3, _080DABC8 @ =0x0000043d adds r0, r3 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080DABE6 ldrb r1, [r2, 0xE] mov r0, r9 ands r0, r1 cmp r0, 0 bne _080DABCC ldrb r2, [r5, 0x5] lsls r1, r2, 28 lsrs r1, 30 subs r1, 0x1 movs r0, 0x3 ands r1, r0 lsls r1, 2 movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] mov r0, r12 ldrb r2, [r0, 0xE] b _080DAC00 .align 2, 0 _080DABC4: .4byte gMain _080DABC8: .4byte 0x0000043d _080DABCC: ldrb r2, [r5, 0x5] lsls r1, r2, 28 lsrs r1, 30 adds r1, 0x1 movs r0, 0x3 ands r1, r0 lsls r1, 2 movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] b _080DAC1E _080DABE6: mov r0, r12 ldrb r1, [r0, 0xE] mov r0, r9 ands r0, r1 cmp r0, 0 bne _080DAC14 adds r1, r5, 0 adds r1, 0x43 ldrb r0, [r1] subs r0, 0xC strb r0, [r1] mov r1, r12 ldrb r2, [r1, 0xE] _080DAC00: lsls r0, r2, 31 lsrs r0, 31 eors r0, r4 ands r0, r7 adds r1, r6, 0 ands r1, r2 orrs r1, r0 mov r2, r12 strb r1, [r2, 0xE] b _080DAC32 _080DAC14: adds r1, r5, 0 adds r1, 0x43 ldrb r0, [r1] adds r0, 0xC strb r0, [r1] _080DAC1E: mov r3, r12 ldrb r2, [r3, 0xE] lsls r0, r2, 31 lsrs r0, 31 eors r0, r4 ands r0, r7 adds r1, r6, 0 ands r1, r2 orrs r1, r0 strb r1, [r3, 0xE] _080DAC32: mov r4, r12 ldrb r1, [r4] movs r0, 0x9 negs r0, r0 ands r0, r1 strb r0, [r4] ldrh r0, [r4, 0x2] mov r8, r0 _080DAC42: mov r1, r12 ldrb r0, [r1] movs r1, 0xF ands r1, r0 movs r0, 0x30 _080DAC4C: orrs r1, r0 mov r2, r12 strb r1, [r2] _080DAC52: mov r3, r12 ldrb r1, [r3] lsls r1, 30 lsrs r1, 31 mov r0, r12 adds r0, 0xC adds r0, r1 ldrb r1, [r0] ldr r3, _080DACE0 @ =gSineTable mov r4, r8 lsls r0, r4, 1 adds r0, r3 movs r2, 0 ldrsh r0, [r0, r2] muls r0, r1 asrs r0, 8 strh r0, [r5, 0x24] ldrb r2, [r5, 0x3] lsls r2, 26 lsrs r2, 27 movs r4, 0x24 ldrsh r0, [r5, r4] negs r0, r0 asrs r0, 1 mov r1, r12 ldrb r1, [r1, 0xA] adds r0, r1 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r3 ldrh r6, [r1] ldr r1, _080DACE4 @ =gOamMatrices lsls r2, 3 adds r2, r1 adds r0, 0x40 lsls r0, 1 adds r0, r3 ldrh r0, [r0] strh r0, [r2, 0x6] strh r0, [r2] strh r6, [r2, 0x2] lsls r0, r6, 16 asrs r0, 16 negs r0, r0 strh r0, [r2, 0x4] mov r2, r12 ldrh r0, [r2, 0x6] ldrh r3, [r2, 0x8] adds r0, r3 strh r0, [r2, 0x8] lsls r0, 16 lsrs r0, 24 strh r0, [r5, 0x22] movs r4, 0x4 ldrsh r0, [r2, r4] movs r1, 0x80 lsls r1, 8 ands r0, r1 cmp r0, 0 beq _080DACE8 ldrh r0, [r2, 0x4] subs r1, 0x1 ands r1, r0 ldrh r0, [r2, 0x2] subs r0, r1 movs r1, 0xFF ands r0, r1 strh r0, [r2, 0x2] b _080DACFE .align 2, 0 _080DACE0: .4byte gSineTable _080DACE4: .4byte gOamMatrices _080DACE8: mov r1, r12 ldrh r0, [r1, 0x4] ldr r1, _080DAD28 @ =0x00007fff ands r1, r0 mov r2, r12 ldrh r2, [r2, 0x2] adds r1, r2 movs r0, 0xFF ands r1, r0 mov r3, r12 strh r1, [r3, 0x2] _080DACFE: movs r4, 0x22 ldrsh r1, [r5, r4] movs r2, 0x26 ldrsh r0, [r5, r2] adds r1, r0 mov r3, r12 ldrh r0, [r3, 0xE] lsrs r0, 1 cmp r1, r0 blt _080DAD1A movs r0, 0 strh r0, [r5, 0x2E] ldr r0, _080DAD2C @ =sub_80DA48C str r0, [r5, 0x1C] _080DAD1A: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DAD28: .4byte 0x00007fff _080DAD2C: .4byte sub_80DA48C thumb_func_end sub_80DA6F0 thumb_func_start sub_80DAD30 sub_80DAD30: @ 80DAD30 push {r4,r5,lr} adds r4, r0, 0 ldr r0, _080DAD78 @ =gUnknown_0202F7C9 ldrb r0, [r0] bl sub_8079ED4 movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x5] ldr r5, _080DAD7C @ =gUnknown_0202F7C8 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] ldr r0, _080DAD80 @ =sub_807941C str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DAD78: .4byte gUnknown_0202F7C9 _080DAD7C: .4byte gUnknown_0202F7C8 _080DAD80: .4byte sub_807941C thumb_func_end sub_80DAD30 thumb_func_start sub_80DAD84 sub_80DAD84: @ 80DAD84 push {r4-r7,lr} adds r4, r0, 0 ldr r5, _080DADCC @ =gUnknown_03004B00 ldrh r0, [r5] strh r0, [r4, 0x30] ldrh r0, [r5, 0x2] strh r0, [r4, 0x32] ldrh r0, [r5, 0x4] strh r0, [r4, 0x34] ldr r0, _080DADD0 @ =gMain ldr r1, _080DADD4 @ =0x0000043d adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080DAE44 ldr r0, _080DADD8 @ =gUnknown_02024A72 ldr r1, _080DADDC @ =gUnknown_0202F7C9 ldrb r2, [r1] adds r0, r2, r0 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080DADE0 adds r0, r2, 0 movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x6] adds r0, r5 b _080DADEE .align 2, 0 _080DADCC: .4byte gUnknown_03004B00 _080DADD0: .4byte gMain _080DADD4: .4byte 0x0000043d _080DADD8: .4byte gUnknown_02024A72 _080DADDC: .4byte gUnknown_0202F7C9 _080DADE0: adds r0, r2, 0 movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, 0x28 _080DADEE: strh r0, [r4, 0x3C] ldr r0, _080DAE1C @ =gUnknown_03004B00 movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0 beq _080DAE24 ldr r0, _080DAE20 @ =gUnknown_0202F7C9 ldrb r0, [r0] bl sub_8079ED4 lsls r0, 24 lsrs r0, 24 adds r0, 0x1 movs r1, 0x3 ands r0, r1 lsls r0, 2 ldrb r2, [r4, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r4, 0x5] b _080DAE58 .align 2, 0 _080DAE1C: .4byte gUnknown_03004B00 _080DAE20: .4byte gUnknown_0202F7C9 _080DAE24: ldr r0, _080DAE40 @ =gUnknown_0202F7C9 ldrb r0, [r0] bl sub_8079ED4 movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x5] b _080DAE58 .align 2, 0 _080DAE40: .4byte gUnknown_0202F7C9 _080DAE44: ldr r0, _080DAEFC @ =gUnknown_0202F7C9 ldrb r0, [r0] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x6] adds r0, r5 strh r0, [r4, 0x3C] _080DAE58: ldr r5, _080DAF00 @ =gSineTable ldrh r3, [r4, 0x30] movs r1, 0xFF ands r1, r3 lsls r0, r1, 1 adds r0, r5 ldrh r0, [r0] movs r2, 0 strh r0, [r4, 0x36] adds r1, 0x40 lsls r1, 1 adds r1, r5 ldrh r0, [r1] negs r0, r0 strh r0, [r4, 0x38] strh r2, [r4, 0x3A] strh r2, [r4, 0x26] strh r2, [r4, 0x24] ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r6, r0, 27 lsls r3, 16 lsrs r3, 24 strh r3, [r4, 0x30] bl Random lsls r0, 16 asrs r7, r0, 16 movs r0, 0x80 lsls r0, 8 ands r0, r7 cmp r0, 0 beq _080DAEA2 ldrh r1, [r4, 0x30] movs r0, 0xFF subs r0, r1 strh r0, [r4, 0x30] _080DAEA2: movs r0, 0x30 ldrsh r1, [r4, r0] lsls r0, r1, 1 adds r0, r5 ldrh r0, [r0] ldr r3, _080DAF04 @ =gOamMatrices lsls r2, r6, 3 adds r2, r3 adds r1, 0x40 lsls r1, 1 adds r1, r5 ldrh r1, [r1] strh r1, [r2, 0x6] strh r1, [r2] strh r0, [r2, 0x2] lsls r0, 16 asrs r0, 16 negs r0, r0 strh r0, [r2, 0x4] adds r3, r4, 0 adds r3, 0x3F ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 movs r1, 0x11 negs r1, r1 ands r0, r1 strb r0, [r3] movs r0, 0x1 ands r0, r7 cmp r0, 0 beq _080DAEF2 adds r2, r4, 0 adds r2, 0x2A movs r1, 0x1 movs r0, 0x1 strb r0, [r2] ldrb r0, [r3] orrs r0, r1 strb r0, [r3] _080DAEF2: ldr r0, _080DAF08 @ =sub_80DAF0C str r0, [r4, 0x1C] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DAEFC: .4byte gUnknown_0202F7C9 _080DAF00: .4byte gSineTable _080DAF04: .4byte gOamMatrices _080DAF08: .4byte sub_80DAF0C thumb_func_end sub_80DAD84 thumb_func_start sub_80DAF0C sub_80DAF0C: @ 80DAF0C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 adds r4, r0, 0 adds r5, r4, 0 adds r5, 0x2E ldrh r0, [r4, 0x2E] adds r0, 0x1 movs r1, 0 mov r8, r1 movs r7, 0 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 ble _080DAFF0 movs r2, 0x36 ldrsh r1, [r4, r2] movs r2, 0x3A ldrsh r0, [r4, r2] muls r0, r1 asrs r6, r0, 8 strh r6, [r4, 0x24] movs r0, 0x38 ldrsh r1, [r4, r0] movs r2, 0x3A ldrsh r0, [r4, r2] muls r0, r1 asrs r3, r0, 8 strh r3, [r4, 0x26] ldrh r2, [r4, 0x34] movs r1, 0xFF adds r0, r1, 0 ands r0, r2 ldrh r2, [r4, 0x3A] adds r0, r2 strh r0, [r4, 0x3A] ldrh r2, [r4, 0x32] lsls r0, 16 asrs r0, 16 ands r1, r2 cmp r0, r1 blt _080DAFF0 ldrh r0, [r4, 0x20] adds r0, r6 strh r0, [r4, 0x20] ldrh r0, [r4, 0x22] adds r0, r3 strh r0, [r4, 0x22] strh r7, [r4, 0x24] strh r7, [r4, 0x26] mov r0, sp adds r1, r5, 0 movs r2, 0x10 bl memcpy adds r0, r5, 0 movs r1, 0 movs r2, 0x10 bl memset ldrh r0, [r4, 0x22] lsls r0, 8 strh r0, [r5, 0x8] mov r0, sp ldrh r0, [r0, 0x6] lsrs r1, r0, 8 strh r1, [r5, 0x6] strh r7, [r5, 0x2] mov r0, sp ldrh r0, [r0, 0x2] strh r0, [r5, 0xA] adds r0, r4, 0 adds r0, 0x2A ldrb r0, [r0] cmp r0, 0 beq _080DAFC0 movs r0, 0x8 ands r1, r0 cmp r1, 0 beq _080DAFB8 ldr r0, _080DAFB4 @ =0x00008001 b _080DAFCE .align 2, 0 _080DAFB4: .4byte 0x00008001 _080DAFB8: ldr r0, _080DAFBC @ =0x00008002 b _080DAFCE .align 2, 0 _080DAFBC: .4byte 0x00008002 _080DAFC0: movs r0, 0x8 ands r1, r0 cmp r1, 0 beq _080DAFCC movs r0, 0x1 b _080DAFCE _080DAFCC: movs r0, 0x2 _080DAFCE: strh r0, [r5, 0x4] mov r0, sp ldrh r0, [r0, 0x4] lsrs r0, 8 strb r0, [r5, 0xC] subs r0, 0x2 strb r0, [r5, 0xD] mov r0, sp ldrh r1, [r0, 0xE] lsls r1, 1 ldrh r2, [r5, 0xE] movs r0, 0x1 ands r0, r2 orrs r0, r1 strh r0, [r5, 0xE] ldr r0, _080DAFFC @ =sub_80DA6F0 str r0, [r4, 0x1C] _080DAFF0: add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DAFFC: .4byte sub_80DA6F0 thumb_func_end sub_80DAF0C thumb_func_start sub_80DB000 sub_80DB000: @ 80DB000 push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080DB018 @ =gUnknown_03004B00 movs r1, 0x4 ldrsh r0, [r0, r1] cmp r0, 0 bne _080DB01C adds r0, r5, 0 movs r1, 0 bl sub_80787B0 b _080DB024 .align 2, 0 _080DB018: .4byte gUnknown_03004B00 _080DB01C: adds r0, r5, 0 movs r1, 0 bl sub_8078764 _080DB024: ldr r4, _080DB08C @ =gUnknown_03004B00 movs r2, 0x4 ldrsh r0, [r4, r2] cmp r0, 0 bne _080DB03C ldr r0, _080DB090 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DB052 _080DB03C: movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0x1 bne _080DB058 ldr r0, _080DB094 @ =gUnknown_0202F7C9 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080DB058 _080DB052: ldrh r0, [r5, 0x20] adds r0, 0x8 strh r0, [r5, 0x20] _080DB058: ldr r4, _080DB08C @ =gUnknown_03004B00 ldrb r1, [r4, 0x8] adds r0, r5, 0 bl SeekSpriteAnim ldrh r0, [r5, 0x20] subs r0, 0x20 strh r0, [r5, 0x20] ldr r0, _080DB098 @ =0x00000ccc strh r0, [r5, 0x30] ldrh r1, [r4, 0x8] movs r0, 0xC adds r2, r0, 0 muls r2, r1 adds r0, r2, 0 ldrh r2, [r5, 0x24] adds r0, r2 strh r0, [r5, 0x24] strh r1, [r5, 0x2E] ldrh r0, [r4, 0x6] strh r0, [r5, 0x3C] ldr r0, _080DB09C @ =sub_80DB0A0 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DB08C: .4byte gUnknown_03004B00 _080DB090: .4byte gUnknown_0202F7C8 _080DB094: .4byte gUnknown_0202F7C9 _080DB098: .4byte 0x00000ccc _080DB09C: .4byte sub_80DB0A0 thumb_func_end sub_80DB000 thumb_func_start sub_80DB0A0 sub_80DB0A0: @ 80DB0A0 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x30] lsls r0, 16 asrs r0, 24 ldrh r1, [r4, 0x24] adds r0, r1 movs r1, 0 strh r0, [r4, 0x24] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 bne _080DB0CA strh r1, [r4, 0x2E] strh r1, [r4, 0x24] adds r0, r4, 0 bl StartSpriteAnim _080DB0CA: ldrh r0, [r4, 0x3C] subs r0, 0x1 strh r0, [r4, 0x3C] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080DB0E2 adds r0, r4, 0 bl move_anim_8072740 _080DB0E2: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DB0A0 thumb_func_start sub_80DB0E8 sub_80DB0E8: @ 80DB0E8 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 ldr r1, _080DB180 @ =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r7, r0, r1 ldrh r0, [r7, 0x8] movs r1, 0x1F ands r0, r1 cmp r0, 0 bne _080DB162 ldr r1, _080DB184 @ =gUnknown_0202F7B2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r1, 0x8 ldrsh r0, [r7, r1] movs r5, 0xD negs r5, r5 adds r1, r5, 0 bl Sin ldr r4, _080DB188 @ =gUnknown_03004B00 strh r0, [r4] movs r1, 0x8 ldrsh r0, [r7, r1] adds r1, r5, 0 bl Cos strh r0, [r4, 0x2] movs r0, 0x1 strh r0, [r4, 0x4] movs r0, 0x3 strh r0, [r4, 0x6] ldr r0, _080DB18C @ =gBattleAnimSpriteTemplate_83DB538 mov r8, r0 ldr r5, _080DB190 @ =gUnknown_0202F7C9 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 mov r0, r8 adds r1, r4, 0 movs r3, 0x3 bl CreateSpriteAndAnimate _080DB162: ldrh r0, [r7, 0x8] adds r0, 0x8 strh r0, [r7, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0xFF ble _080DB176 adds r0, r6, 0 bl move_anim_task_del _080DB176: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DB180: .4byte gTasks _080DB184: .4byte gUnknown_0202F7B2 _080DB188: .4byte gUnknown_03004B00 _080DB18C: .4byte gBattleAnimSpriteTemplate_83DB538 _080DB190: .4byte gUnknown_0202F7C9 thumb_func_end sub_80DB0E8 thumb_func_start sub_80DB194 sub_80DB194: @ 80DB194 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 beq _080DB1A6 cmp r0, 0x1 beq _080DB1D8 b _080DB1EC _080DB1A6: adds r0, r4, 0 movs r1, 0x1 bl sub_80787B0 movs r0, 0 bl obj_id_for_side_relative_to_move ldr r2, _080DB1D4 @ =gSprites lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _080DB1EC .align 2, 0 _080DB1D4: .4byte gSprites _080DB1D8: adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080DB1EC adds r0, r4, 0 bl move_anim_8072740 _080DB1EC: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DB194 thumb_func_start sub_80DB1F4 sub_80DB1F4: @ 80DB1F4 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080DB22C cmp r0, 0x1 bgt _080DB20A cmp r0, 0 beq _080DB210 b _080DB27E _080DB20A: cmp r0, 0x2 beq _080DB240 b _080DB27E _080DB210: ldr r0, _080DB228 @ =gUnknown_0202F7C9 ldrb r0, [r0] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] negs r0, r0 subs r0, 0x20 strh r0, [r4, 0x26] b _080DB238 .align 2, 0 _080DB228: .4byte gUnknown_0202F7C9 _080DB22C: ldrh r0, [r4, 0x26] adds r0, 0xA strh r0, [r4, 0x26] lsls r0, 16 cmp r0, 0 blt _080DB27E _080DB238: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _080DB27E _080DB240: ldrh r0, [r4, 0x26] subs r0, 0xA strh r0, [r4, 0x26] movs r2, 0x22 ldrsh r0, [r4, r2] movs r2, 0x26 ldrsh r1, [r4, r2] adds r0, r1 movs r1, 0x20 negs r1, r1 cmp r0, r1 bge _080DB27E movs r0, 0 bl obj_id_for_side_relative_to_move ldr r2, _080DB284 @ =gSprites lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x3E ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1] adds r0, r4, 0 bl move_anim_8072740 _080DB27E: pop {r4} pop {r0} bx r0 .align 2, 0 _080DB284: .4byte gSprites thumb_func_end sub_80DB1F4 thumb_func_start sub_80DB288 sub_80DB288: @ 80DB288 push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r1, _080DB2C4 @ =gUnknown_03004B00 ldrh r0, [r1, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x6] strh r0, [r4, 0x30] ldr r0, _080DB2C8 @ =sub_80DB2D0 str r0, [r4, 0x1C] movs r0, 0 bl obj_id_for_side_relative_to_move ldr r2, _080DB2CC @ =gSprites lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _080DB2C4: .4byte gUnknown_03004B00 _080DB2C8: .4byte sub_80DB2D0 _080DB2CC: .4byte gSprites thumb_func_end sub_80DB288 thumb_func_start sub_80DB2D0 sub_80DB2D0: @ 80DB2D0 push {lr} adds r2, r0, 0 ldrh r1, [r2, 0x2E] movs r3, 0x2E ldrsh r0, [r2, r3] cmp r0, 0 ble _080DB2E4 subs r0, r1, 0x1 strh r0, [r2, 0x2E] b _080DB328 _080DB2E4: movs r1, 0x22 ldrsh r0, [r2, r1] movs r3, 0x26 ldrsh r1, [r2, r3] adds r0, r1 movs r1, 0x20 negs r1, r1 cmp r0, r1 ble _080DB30A ldrh r0, [r2, 0x30] ldrh r1, [r2, 0x32] adds r0, r1 strh r0, [r2, 0x32] lsls r0, 16 asrs r0, 24 ldrh r1, [r2, 0x26] subs r1, r0 strh r1, [r2, 0x26] b _080DB328 _080DB30A: adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 strb r0, [r3] ldrh r0, [r2, 0x34] adds r1, r0, 0x1 strh r1, [r2, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 ble _080DB328 ldr r0, _080DB32C @ =sub_80DB330 str r0, [r2, 0x1C] _080DB328: pop {r0} bx r0 .align 2, 0 _080DB32C: .4byte sub_80DB330 thumb_func_end sub_80DB2D0 thumb_func_start sub_80DB330 sub_80DB330: @ 80DB330 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x32] lsls r0, 16 asrs r0, 24 ldrh r1, [r2, 0x26] adds r0, r1 strh r0, [r2, 0x26] movs r3, 0x22 ldrsh r0, [r2, r3] movs r3, 0x26 ldrsh r1, [r2, r3] adds r0, r1 movs r1, 0x20 negs r1, r1 cmp r0, r1 ble _080DB360 adds r3, r2, 0 adds r3, 0x3E ldrb r1, [r3] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r3] _080DB360: movs r1, 0x26 ldrsh r0, [r2, r1] cmp r0, 0 ble _080DB36E adds r0, r2, 0 bl move_anim_8072740 _080DB36E: pop {r0} bx r0 thumb_func_end sub_80DB330 thumb_func_start sub_80DB374 sub_80DB374: @ 80DB374 push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0 beq _080DB388 cmp r0, 0x1 beq _080DB3E0 b _080DB44C _080DB388: ldr r0, _080DB398 @ =gUnknown_03004B00 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 bne _080DB3A0 ldr r4, _080DB39C @ =gUnknown_0202F7C8 b _080DB3A2 .align 2, 0 _080DB398: .4byte gUnknown_03004B00 _080DB39C: .4byte gUnknown_0202F7C8 _080DB3A0: ldr r4, _080DB3DC @ =gUnknown_0202F7C9 _080DB3A2: ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] movs r0, 0 movs r3, 0x80 lsls r3, 2 strh r3, [r5, 0x30] movs r2, 0x80 lsls r2, 1 str r0, [sp] adds r0, r5, 0 movs r1, 0 bl sub_8078FDC ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] b _080DB44C .align 2, 0 _080DB3DC: .4byte gUnknown_0202F7C9 _080DB3E0: movs r1, 0x32 ldrsh r0, [r5, r1] cmp r0, 0xB bgt _080DB3EE ldrh r0, [r5, 0x30] subs r0, 0x28 b _080DB3F2 _080DB3EE: ldrh r0, [r5, 0x30] adds r0, 0x28 _080DB3F2: strh r0, [r5, 0x30] ldrh r0, [r5, 0x32] adds r0, 0x1 movs r1, 0 strh r0, [r5, 0x32] movs r2, 0x80 lsls r2, 1 movs r0, 0x30 ldrsh r3, [r5, r0] str r1, [sp] adds r0, r5, 0 bl sub_8078FDC ldrb r1, [r5, 0x3] lsls r1, 26 lsrs r1, 27 movs r0, 0xF4 lsls r0, 6 ldr r2, _080DB454 @ =gOamMatrices lsls r1, 3 adds r1, r2 movs r2, 0x6 ldrsh r1, [r1, r2] bl __divsi3 adds r1, r0, 0x1 cmp r1, 0x80 ble _080DB42C movs r1, 0x80 _080DB42C: movs r0, 0x40 subs r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r1, r0, 1 strh r1, [r5, 0x26] movs r1, 0x32 ldrsh r0, [r5, r1] cmp r0, 0x18 bne _080DB44C adds r0, r5, 0 bl sub_8079098 adds r0, r5, 0 bl move_anim_8072740 _080DB44C: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DB454: .4byte gOamMatrices thumb_func_end sub_80DB374 thumb_func_start sub_80DB458 sub_80DB458: @ 80DB458 push {r4,r5,lr} adds r5, r0, 0 bl Random ldr r4, _080DB47C @ =0x000001ff ands r4, r0 bl Random movs r1, 0x7F ands r1, r0 movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _080DB480 movs r2, 0xB8 lsls r2, 2 adds r0, r4, r2 b _080DB488 .align 2, 0 _080DB47C: .4byte 0x000001ff _080DB480: movs r2, 0xB8 lsls r2, 2 adds r0, r2, 0 subs r0, r4 _080DB488: strh r0, [r5, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080DB49C movs r2, 0xE0 lsls r2, 2 adds r0, r2, 0 adds r0, r1, r0 b _080DB4A4 _080DB49C: movs r2, 0xE0 lsls r2, 2 adds r0, r2, 0 subs r0, r1 _080DB4A4: strh r0, [r5, 0x30] ldr r2, _080DB4CC @ =gUnknown_03004B00 ldrh r0, [r2] strh r0, [r5, 0x32] lsls r0, 16 cmp r0, 0 beq _080DB4C0 ldrb r0, [r5, 0x3] movs r1, 0x3F negs r1, r1 ands r1, r0 movs r0, 0x10 orrs r1, r0 strb r1, [r5, 0x3] _080DB4C0: movs r1, 0x2 ldrsh r0, [r2, r1] cmp r0, 0 bne _080DB4D4 ldr r4, _080DB4D0 @ =gUnknown_0202F7C8 b _080DB4D6 .align 2, 0 _080DB4CC: .4byte gUnknown_03004B00 _080DB4D0: .4byte gUnknown_0202F7C8 _080DB4D4: ldr r4, _080DB500 @ =gUnknown_0202F7C9 _080DB4D6: ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, 0x20 strh r0, [r5, 0x22] ldr r0, _080DB504 @ =sub_80DB508 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DB500: .4byte gUnknown_0202F7C9 _080DB504: .4byte sub_80DB508 thumb_func_end sub_80DB458 thumb_func_start sub_80DB508 sub_80DB508: @ 80DB508 push {r4,lr} adds r4, r0, 0 movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0 bne _080DB520 ldrh r3, [r4, 0x2E] lsls r0, r3, 16 asrs r0, 24 ldrh r1, [r4, 0x24] adds r0, r1 b _080DB52A _080DB520: ldrh r3, [r4, 0x2E] lsls r1, r3, 16 asrs r1, 24 ldrh r0, [r4, 0x24] subs r0, r1 _080DB52A: strh r0, [r4, 0x24] ldrh r2, [r4, 0x30] lsls r1, r2, 16 asrs r1, 24 ldrh r0, [r4, 0x26] subs r0, r1 strh r0, [r4, 0x26] strh r3, [r4, 0x2E] adds r0, r2, 0 subs r0, 0x20 strh r0, [r4, 0x30] lsls r0, r3, 16 cmp r0, 0 bge _080DB54A movs r0, 0 strh r0, [r4, 0x2E] _080DB54A: ldrh r0, [r4, 0x34] adds r0, 0x1 strh r0, [r4, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x1F bne _080DB55E adds r0, r4, 0 bl move_anim_8072740 _080DB55E: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DB508 thumb_func_start sub_80DB564 sub_80DB564: @ 80DB564 movs r1, 0 strh r1, [r0, 0x3A] movs r1, 0x40 strh r1, [r0, 0x3C] ldr r1, _080DB574 @ =sub_80DB578 str r1, [r0, 0x1C] bx lr .align 2, 0 _080DB574: .4byte sub_80DB578 thumb_func_end sub_80DB564 thumb_func_start sub_80DB578 sub_80DB578: @ 80DB578 push {lr} adds r3, r0, 0 movs r0, 0x2E ldrsh r1, [r3, r0] cmp r1, 0 beq _080DB58A cmp r1, 0x1 beq _080DB5D8 b _080DB5DE _080DB58A: ldrh r0, [r3, 0x30] adds r0, 0x1 strh r0, [r3, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _080DB5DE strh r1, [r3, 0x30] movs r1, 0x3E adds r1, r3 mov r12, r1 ldrb r2, [r1] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] ldrh r0, [r3, 0x32] adds r0, 0x1 strh r0, [r3, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 ble _080DB5DE ldrb r1, [r1] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080DB5DE ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] b _080DB5DE _080DB5D8: adds r0, r3, 0 bl move_anim_8072740 _080DB5DE: pop {r0} bx r0 thumb_func_end sub_80DB578 thumb_func_start sub_80DB5E4 sub_80DB5E4: @ 80DB5E4 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 mov r8, r0 ldrh r4, [r0, 0x20] ldrh r5, [r0, 0x22] ldr r6, _080DB698 @ =gUnknown_0202F7C8 ldrb r0, [r6] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 mov r1, r8 strh r0, [r1, 0x20] ldrb r0, [r6] movs r1, 0x3 bl sub_8077ABC adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 mov r2, r8 strh r6, [r2, 0x22] ldrh r0, [r2, 0x20] mov r9, r0 mov r1, r9 lsls r0, r1, 4 strh r0, [r2, 0x36] lsls r0, r6, 4 strh r0, [r2, 0x38] lsls r4, 16 asrs r4, 16 movs r1, 0x20 ldrsh r0, [r2, r1] subs r0, r4, r0 lsls r0, 4 movs r1, 0xC bl __divsi3 mov r2, r8 strh r0, [r2, 0x3A] lsls r5, 16 asrs r5, 16 movs r1, 0x22 ldrsh r0, [r2, r1] subs r0, r5, r0 lsls r0, 4 movs r1, 0xC bl __divsi3 mov r2, r8 strh r0, [r2, 0x3C] mov r0, r9 subs r4, r0 lsls r4, 16 asrs r4, 16 subs r5, r6 lsls r5, 16 asrs r5, 16 adds r0, r4, 0 adds r1, r5, 0 bl sub_80790F0 lsls r0, 16 movs r1, 0xC0 lsls r1, 24 adds r0, r1 lsrs r0, 16 movs r3, 0x80 lsls r3, 1 str r0, [sp] mov r0, r8 movs r1, 0x1 adds r2, r3, 0 bl sub_8078FDC ldr r0, _080DB69C @ =sub_80DB6A0 mov r2, r8 str r0, [r2, 0x1C] add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DB698: .4byte gUnknown_0202F7C8 _080DB69C: .4byte sub_80DB6A0 thumb_func_end sub_80DB5E4 thumb_func_start sub_80DB6A0 sub_80DB6A0: @ 80DB6A0 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x3A] ldrh r1, [r2, 0x36] adds r0, r1 strh r0, [r2, 0x36] ldrh r1, [r2, 0x3C] ldrh r3, [r2, 0x38] adds r1, r3 strh r1, [r2, 0x38] lsls r0, 16 asrs r0, 20 strh r0, [r2, 0x20] lsls r1, 16 asrs r3, r1, 20 strh r3, [r2, 0x22] adds r0, 0x2D lsls r0, 16 movs r1, 0xA5 lsls r1, 17 cmp r0, r1 bhi _080DB6DA adds r1, r3, 0 cmp r1, 0x9D bgt _080DB6DA movs r0, 0x2D negs r0, r0 cmp r1, r0 bge _080DB6E0 _080DB6DA: adds r0, r2, 0 bl move_anim_8074EE0 _080DB6E0: pop {r0} bx r0 thumb_func_end sub_80DB6A0 thumb_func_start unref_sub_80DB6E4 unref_sub_80DB6E4: @ 80DB6E4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080DB714 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080DB71C movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 ldr r2, _080DB718 @ =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 b _080DB73A .align 2, 0 _080DB714: .4byte gUnknown_03004B00 _080DB718: .4byte gSprites _080DB71C: movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 ldr r2, _080DB748 @ =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x3E ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 _080DB73A: strb r0, [r1] adds r0, r4, 0 bl move_anim_task_del pop {r4} pop {r0} bx r0 .align 2, 0 _080DB748: .4byte gSprites thumb_func_end unref_sub_80DB6E4 thumb_func_start sub_80DB74C sub_80DB74C: @ 80DB74C push {r4-r7,lr} adds r6, r0, 0 ldr r0, _080DB804 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DB768 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080DB77E _080DB768: ldrb r1, [r6, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x8 orrs r0, r1 strb r0, [r6, 0x5] adds r1, r6, 0 adds r1, 0x43 movs r0, 0xC8 strb r0, [r1] _080DB77E: bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080DB7DA movs r0, 0x1 bl battle_get_side_with_given_state lsls r0, 24 lsrs r4, r0, 24 adds r7, r4, 0 adds r0, r4, 0 bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 movs r1, 0x1 eors r0, r1 negs r1, r0 orrs r1, r0 lsrs r5, r1, 31 adds r0, r4, 0 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080DB7BC adds r0, r4, 0 adds r1, r5, 0 bl sub_8076034 _080DB7BC: movs r0, 0x2 adds r4, r0, 0 eors r4, r7 adds r0, r4, 0 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080DB7DA movs r0, 0x1 eors r5, r0 adds r0, r4, 0 adds r1, r5, 0 bl sub_8076034 _080DB7DA: bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080DB810 bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _080DB810 ldr r0, _080DB804 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080DB808 movs r0, 0x48 strh r0, [r6, 0x20] movs r0, 0x50 b _080DB84A .align 2, 0 _080DB804: .4byte gUnknown_0202F7C8 _080DB808: movs r0, 0xB0 strh r0, [r6, 0x20] movs r0, 0x28 b _080DB84A _080DB810: ldr r5, _080DB880 @ =gUnknown_0202F7C8 ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DB826 ldr r1, _080DB884 @ =gUnknown_03004B00 ldrh r0, [r1] negs r0, r0 strh r0, [r1] _080DB826: ldrb r0, [r5] movs r1, 0 bl sub_8077ABC lsls r0, 24 ldr r4, _080DB884 @ =gUnknown_03004B00 lsrs r0, 24 ldrh r1, [r4] adds r0, r1 strh r0, [r6, 0x20] ldrb r0, [r5] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x2] adds r0, r4 _080DB84A: strh r0, [r6, 0x22] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080DB85C ldrh r0, [r6, 0x22] adds r0, 0x9 strh r0, [r6, 0x22] _080DB85C: ldr r0, _080DB884 @ =gUnknown_03004B00 ldrh r0, [r0, 0x4] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 movs r1, 0x80 lsls r1, 1 adds r0, r1 strh r0, [r6, 0x2E] ldr r1, _080DB888 @ =sub_80DB88C str r1, [r6, 0x1C] adds r0, r6, 0 bl _call_via_r1 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DB880: .4byte gUnknown_0202F7C8 _080DB884: .4byte gUnknown_03004B00 _080DB888: .4byte sub_80DB88C thumb_func_end sub_80DB74C thumb_func_start sub_80DB88C sub_80DB88C: @ 80DB88C push {lr} adds r3, r0, 0 ldr r2, _080DB8B0 @ =REG_BLDALPHA ldrh r1, [r3, 0x34] movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r0, r1 strh r0, [r2] ldrh r1, [r3, 0x34] movs r2, 0x34 ldrsh r0, [r3, r2] cmp r0, 0xD bne _080DB8B8 ldr r0, _080DB8B4 @ =sub_80DB8C0 str r0, [r3, 0x1C] b _080DB8BC .align 2, 0 _080DB8B0: .4byte REG_BLDALPHA _080DB8B4: .4byte sub_80DB8C0 _080DB8B8: adds r0, r1, 0x1 strh r0, [r3, 0x34] _080DB8BC: pop {r0} bx r0 thumb_func_end sub_80DB88C thumb_func_start sub_80DB8C0 sub_80DB8C0: @ 80DB8C0 push {r4-r7,lr} adds r3, r0, 0 ldrh r0, [r3, 0x30] adds r0, 0x1 strh r0, [r3, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 bne _080DB91E movs r0, 0 strh r0, [r3, 0x30] ldrh r4, [r3, 0x2E] ldr r1, _080DB924 @ =gPlttBufferFaded adds r0, r4, 0 adds r0, 0x8 lsls r0, 1 adds r0, r1 ldrh r7, [r0] movs r5, 0x8 adds r6, r1, 0 adds r1, r4, 0x7 lsls r0, r4, 1 adds r0, r6 adds r2, r0, 0 adds r2, 0x10 lsls r1, 1 adds r1, r6 _080DB8F6: ldrh r0, [r1] strh r0, [r2] subs r1, 0x2 subs r2, 0x2 subs r5, 0x1 cmp r5, 0 bgt _080DB8F6 adds r0, r4, 0x1 lsls r0, 1 adds r0, r6 strh r7, [r0] ldrh r0, [r3, 0x32] adds r0, 0x1 strh r0, [r3, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 bne _080DB91E ldr r0, _080DB928 @ =sub_80DB92C str r0, [r3, 0x1C] _080DB91E: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DB924: .4byte gPlttBufferFaded _080DB928: .4byte sub_80DB92C thumb_func_end sub_80DB8C0 thumb_func_start sub_80DB92C sub_80DB92C: @ 80DB92C push {r4-r6,lr} adds r5, r0, 0 ldr r2, _080DB9D4 @ =REG_BLDALPHA ldrh r1, [r5, 0x34] movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r0, r1 strh r0, [r2] ldrh r0, [r5, 0x34] subs r0, 0x1 strh r0, [r5, 0x34] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080DB9CC bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080DB9BC movs r0, 0x1 bl battle_get_side_with_given_state lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 adds r0, r4, 0 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080DB98E ldr r2, _080DB9D8 @ =gSprites ldr r0, _080DB9DC @ =gUnknown_02024BE0 adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] _080DB98E: movs r0, 0x2 adds r4, r0, 0 eors r4, r6 adds r0, r4, 0 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080DB9BC ldr r2, _080DB9D8 @ =gSprites ldr r0, _080DB9DC @ =gUnknown_02024BE0 adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] _080DB9BC: adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _080DB9E0 @ =sub_80DB9E4 str r0, [r5, 0x1C] _080DB9CC: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DB9D4: .4byte REG_BLDALPHA _080DB9D8: .4byte gSprites _080DB9DC: .4byte gUnknown_02024BE0 _080DB9E0: .4byte sub_80DB9E4 thumb_func_end sub_80DB92C thumb_func_start sub_80DB9E4 sub_80DB9E4: @ 80DB9E4 push {r4-r6,lr} adds r6, r0, 0 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080DBA3C movs r0, 0x1 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 movs r1, 0x1 eors r0, r1 negs r1, r0 orrs r1, r0 lsrs r5, r1, 31 adds r0, r4, 0 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080DBA22 adds r0, r5, 0 bl sub_8076464 _080DBA22: movs r0, 0x2 eors r4, r0 adds r0, r4, 0 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080DBA3C movs r0, 0x1 eors r5, r0 adds r0, r5, 0 bl sub_8076464 _080DBA3C: ldr r0, _080DBA48 @ =move_anim_8072740 str r0, [r6, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DBA48: .4byte move_anim_8072740 thumb_func_end sub_80DB9E4 thumb_func_start sub_80DBA4C sub_80DBA4C: @ 80DBA4C push {r4-r6,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _080DBAD8 ldr r5, _080DBA98 @ =gUnknown_03004B00 movs r1, 0x6 ldrsh r0, [r5, r1] movs r6, 0 cmp r0, 0 bne _080DBA66 movs r6, 0x1 _080DBA66: bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080DBAAE bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _080DBAAE ldr r0, _080DBA9C @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080DBAA0 ldrh r0, [r5] movs r1, 0x48 subs r1, r0 strh r1, [r4, 0x20] ldrh r0, [r5, 0x2] adds r0, 0x50 strh r0, [r4, 0x22] b _080DBAD0 .align 2, 0 _080DBA98: .4byte gUnknown_03004B00 _080DBA9C: .4byte gUnknown_0202F7C8 _080DBAA0: ldrh r0, [r5] adds r0, 0xB0 strh r0, [r4, 0x20] ldrh r0, [r5, 0x2] adds r0, 0x28 strh r0, [r4, 0x22] b _080DBAD0 _080DBAAE: ldr r0, _080DBAC4 @ =gUnknown_03004B00 movs r1, 0x4 ldrsh r0, [r0, r1] cmp r0, 0 bne _080DBAC8 adds r0, r4, 0 adds r1, r6, 0 bl sub_80787B0 b _080DBAD0 .align 2, 0 _080DBAC4: .4byte gUnknown_03004B00 _080DBAC8: adds r0, r4, 0 adds r1, r6, 0 bl sub_8078764 _080DBAD0: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _080DBAEC _080DBAD8: adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x30 ands r0, r1 cmp r0, 0 beq _080DBAEC adds r0, r4, 0 bl move_anim_8074EE0 _080DBAEC: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80DBA4C thumb_func_start sub_80DBAF4 sub_80DBAF4: @ 80DBAF4 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080DBB3C @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DBB44 adds r0, r5, 0 movs r1, 0x1 bl StartSpriteAnim ldrh r0, [r5, 0x20] subs r0, 0x28 strh r0, [r5, 0x20] ldrh r0, [r5, 0x22] adds r0, 0xA strh r0, [r5, 0x22] ldr r0, _080DBB40 @ =0x0000ffff b _080DBB52 .align 2, 0 _080DBB3C: .4byte gUnknown_0202F7C8 _080DBB40: .4byte 0x0000ffff _080DBB44: ldrh r0, [r5, 0x20] adds r0, 0x28 strh r0, [r5, 0x20] ldrh r0, [r5, 0x22] subs r0, 0xA strh r0, [r5, 0x22] movs r0, 0x1 _080DBB52: strh r0, [r5, 0x30] ldr r1, _080DBB68 @ =move_anim_8072740 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080DBB6C @ =sub_8078600 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DBB68: .4byte move_anim_8072740 _080DBB6C: .4byte sub_8078600 thumb_func_end sub_80DBAF4 thumb_func_start sub_80DBB70 sub_80DBB70: @ 80DBB70 push {r4-r7,lr} adds r5, r0, 0 ldr r6, _080DBBF4 @ =gUnknown_0202F7C8 ldrb r0, [r6] movs r1, 0x1 bl sub_807A100 lsls r0, 16 asrs r1, r0, 16 lsrs r0, 31 adds r1, r0 lsls r1, 15 lsrs r4, r1, 16 ldrb r0, [r6] movs r1, 0 bl sub_807A100 lsls r0, 16 asrs r1, r0, 16 lsrs r0, 31 adds r1, r0 asrs r1, 1 negs r1, r1 lsls r1, 16 lsrs r7, r1, 16 ldrb r0, [r6] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080DBBB6 lsls r0, r4, 16 negs r0, r0 lsrs r4, r0, 16 _080DBBB6: ldrb r0, [r6] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, r4 strh r0, [r5, 0x20] ldrb r0, [r6] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, r7 strh r0, [r5, 0x22] lsls r0, 16 asrs r0, 16 cmp r0, 0xF bgt _080DBBE2 movs r0, 0x10 strh r0, [r5, 0x22] _080DBBE2: ldr r1, _080DBBF8 @ =sub_80DBC00 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080DBBFC @ =sub_8078600 str r0, [r5, 0x1C] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DBBF4: .4byte gUnknown_0202F7C8 _080DBBF8: .4byte sub_80DBC00 _080DBBFC: .4byte sub_8078600 thumb_func_end sub_80DBB70 thumb_func_start sub_80DBC00 sub_80DBC00: @ 80DBC00 push {r4,lr} adds r4, r0, 0 ldrb r1, [r4, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4, 0x1] ldr r0, _080DBC2C @ =gUnknown_083DA888 str r0, [r4, 0x10] movs r0, 0 strh r0, [r4, 0x2E] adds r0, r4, 0 bl InitSpriteAffineAnim ldr r0, _080DBC30 @ =sub_80DBC34 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080DBC2C: .4byte gUnknown_083DA888 _080DBC30: .4byte sub_80DBC34 thumb_func_end sub_80DBC00 thumb_func_start sub_80DBC34 sub_80DBC34: @ 80DBC34 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 beq _080DBC46 cmp r0, 0x1 beq _080DBC74 b _080DBC8C _080DBC46: adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080DBC8C ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix ldrb r1, [r4, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r1 strb r0, [r4, 0x1] movs r0, 0x12 strh r0, [r4, 0x30] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _080DBC8C _080DBC74: ldrh r0, [r4, 0x30] subs r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080DBC8C adds r0, r4, 0 bl move_anim_8072740 _080DBC8C: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DBC34 thumb_func_start sub_80DBC94 sub_80DBC94: @ 80DBC94 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _080DBCC4 @ =gTasks adds r4, r0 movs r0, 0 bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 strh r1, [r4, 0x8] ldr r2, _080DBCC8 @ =gUnknown_083DA8A4 adds r0, r4, 0 bl sub_80798F4 ldr r0, _080DBCCC @ =sub_80DBCD0 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080DBCC4: .4byte gTasks _080DBCC8: .4byte gUnknown_083DA8A4 _080DBCCC: .4byte sub_80DBCD0 thumb_func_end sub_80DBC94 thumb_func_start sub_80DBCD0 sub_80DBCD0: @ 80DBCD0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080DBCF8 @ =gTasks adds r0, r1 bl sub_807992C lsls r0, 24 cmp r0, 0 bne _080DBCF0 adds r0, r4, 0 bl move_anim_task_del _080DBCF0: pop {r4} pop {r0} bx r0 .align 2, 0 _080DBCF8: .4byte gTasks thumb_func_end sub_80DBCD0 thumb_func_start sub_80DBCFC sub_80DBCFC: @ 80DBCFC push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080DBD48 @ =gTasks adds r4, r1, r0 movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 movs r1, 0 strh r0, [r4, 0x8] strh r1, [r4, 0xA] strh r1, [r4, 0xC] ldr r0, _080DBD4C @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 movs r1, 0x8 cmp r0, 0 beq _080DBD30 movs r1, 0x4 _080DBD30: strh r1, [r4, 0xE] ldrb r1, [r4, 0x8] ldr r2, _080DBD50 @ =gUnknown_083DA8C4 adds r0, r4, 0 bl sub_80798F4 ldr r0, _080DBD54 @ =sub_80DBD58 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080DBD48: .4byte gTasks _080DBD4C: .4byte gUnknown_0202F7C8 _080DBD50: .4byte gUnknown_083DA8C4 _080DBD54: .4byte sub_80DBD58 thumb_func_end sub_80DBCFC thumb_func_start sub_80DBD58 sub_80DBD58: @ 80DBD58 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080DBD78 @ =gTasks adds r4, r0, r1 movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0 beq _080DBD7C cmp r0, 0x1 beq _080DBD98 b _080DBDF6 .align 2, 0 _080DBD78: .4byte gTasks _080DBD7C: adds r0, r4, 0 bl sub_807992C ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x13 ble _080DBDF6 ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] b _080DBDF6 _080DBD98: movs r1, 0xE ldrsh r0, [r4, r1] cmp r0, 0 beq _080DBDC0 ldr r2, _080DBDBC @ =gSprites movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x26] subs r1, 0x8 strh r1, [r0, 0x26] ldrh r0, [r4, 0xE] subs r0, 0x1 strh r0, [r4, 0xE] b _080DBDF6 .align 2, 0 _080DBDBC: .4byte gSprites _080DBDC0: ldr r3, _080DBDFC @ =gSprites movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0x88 lsls r1, 1 strh r1, [r0, 0x20] ldrb r0, [r4, 0x8] bl sub_8078F40 adds r0, r5, 0 bl move_anim_task_del _080DBDF6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DBDFC: .4byte gSprites thumb_func_end sub_80DBD58 thumb_func_start sub_80DBE00 sub_80DBE00: @ 80DBE00 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080DBE84 @ =gTasks adds r5, r1, r0 movs r0, 0 movs r7, 0x10 strh r7, [r5, 0xE] strh r0, [r5, 0x10] ldr r4, _080DBE88 @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x24] ldrb r0, [r4] movs r1, 0x1 bl sub_807A100 lsls r0, 16 asrs r0, 16 movs r1, 0x3 bl __divsi3 lsls r0, 16 lsrs r6, r0, 16 ldrb r0, [r4] movs r1, 0 bl sub_807A100 lsls r0, 16 asrs r0, 16 movs r1, 0x3 bl __divsi3 lsls r0, 16 lsrs r0, 16 adds r1, r0, 0 cmp r0, r6 bcs _080DBE6A adds r1, r6, 0 _080DBE6A: strh r1, [r5, 0x20] ldr r1, _080DBE8C @ =REG_BLDCNT movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] ldr r0, _080DBE90 @ =REG_BLDALPHA strh r7, [r0] ldr r0, _080DBE94 @ =sub_80DBE98 str r0, [r5] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DBE84: .4byte gTasks _080DBE88: .4byte gUnknown_0202F7C8 _080DBE8C: .4byte REG_BLDCNT _080DBE90: .4byte REG_BLDALPHA _080DBE94: .4byte sub_80DBE98 thumb_func_end sub_80DBE00 thumb_func_start sub_80DBE98 sub_80DBE98: @ 80DBE98 push {r4-r6,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080DBEBC @ =gTasks adds r4, r0, r1 movs r0, 0x8 ldrsh r1, [r4, r0] cmp r1, 0x1 beq _080DBF98 cmp r1, 0x1 bgt _080DBEC0 cmp r1, 0 beq _080DBECE b _080DC014 .align 2, 0 _080DBEBC: .4byte gTasks _080DBEC0: cmp r1, 0x2 bne _080DBEC6 b _080DBFF4 _080DBEC6: cmp r1, 0x3 bne _080DBECC b _080DC004 _080DBECC: b _080DC014 _080DBECE: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 bgt _080DBEDE b _080DC014 _080DBEDE: strh r1, [r4, 0xA] ldr r0, _080DBF1C @ =gSpriteTemplate_83DA8DC movs r2, 0x22 ldrsh r1, [r4, r2] movs r3, 0x24 ldrsh r2, [r4, r3] movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 movs r0, 0xC ldrsh r1, [r4, r0] adds r1, 0x8 lsls r1, 1 adds r0, r4, 0 adds r0, 0x8 adds r0, r1 strh r2, [r0] cmp r2, 0x40 beq _080DBF82 movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080DBF3C cmp r0, 0x1 bgt _080DBF20 cmp r0, 0 beq _080DBF2A b _080DBF82 .align 2, 0 _080DBF1C: .4byte gSpriteTemplate_83DA8DC _080DBF20: cmp r0, 0x2 beq _080DBF54 cmp r0, 0x3 beq _080DBF6C b _080DBF82 _080DBF2A: ldr r0, _080DBF38 @ =gSprites lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r0 ldrh r0, [r4, 0x20] b _080DBF7A .align 2, 0 _080DBF38: .4byte gSprites _080DBF3C: ldr r0, _080DBF50 @ =gSprites lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r0 ldrh r0, [r4, 0x20] negs r0, r0 strh r0, [r1, 0x24] ldrh r0, [r4, 0x20] b _080DBF80 .align 2, 0 _080DBF50: .4byte gSprites _080DBF54: ldr r1, _080DBF68 @ =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 ldrh r1, [r4, 0x20] strh r1, [r0, 0x24] ldrh r1, [r4, 0x20] strh r1, [r0, 0x26] b _080DBF82 .align 2, 0 _080DBF68: .4byte gSprites _080DBF6C: ldr r0, _080DBF94 @ =gSprites lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r0 ldrh r0, [r4, 0x20] negs r0, r0 _080DBF7A: strh r0, [r1, 0x24] ldrh r0, [r4, 0x20] negs r0, r0 _080DBF80: strh r0, [r1, 0x26] _080DBF82: ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 bne _080DC014 b _080DBFF4 .align 2, 0 _080DBF94: .4byte gSprites _080DBF98: ldrh r0, [r4, 0xA] ands r1, r0 cmp r1, 0 beq _080DBFA8 ldrh r0, [r4, 0xE] subs r0, 0x1 strh r0, [r4, 0xE] b _080DBFAE _080DBFA8: ldrh r0, [r4, 0x10] adds r0, 0x1 strh r0, [r4, 0x10] _080DBFAE: ldr r2, _080DBFFC @ =REG_BLDALPHA ldrh r0, [r4, 0x10] lsls r0, 8 ldrh r1, [r4, 0xE] orrs r0, r1 strh r0, [r2] ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x20 bne _080DC014 movs r5, 0x8 adds r6, r4, 0 adds r6, 0x8 _080DBFCE: lsls r0, r5, 1 adds r1, r6, r0 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0x40 beq _080DBFEA adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080DC000 @ =gSprites adds r0, r1 bl DestroySprite _080DBFEA: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0xC bls _080DBFCE _080DBFF4: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080DC014 .align 2, 0 _080DBFFC: .4byte REG_BLDALPHA _080DC000: .4byte gSprites _080DC004: ldr r0, _080DC01C @ =REG_BLDALPHA movs r1, 0 strh r1, [r0] subs r0, 0x2 strh r1, [r0] adds r0, r2, 0 bl move_anim_task_del _080DC014: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DC01C: .4byte REG_BLDALPHA thumb_func_end sub_80DBE98 thumb_func_start sub_80DC020 sub_80DC020: @ 80DC020 push {r4,lr} adds r4, r0, 0 movs r0, 0x30 ldrsh r1, [r4, r0] movs r2, 0x2E ldrsh r0, [r4, r2] subs r0, 0xA cmp r1, r0 ble _080DC04A ldrh r0, [r4, 0x30] movs r1, 0x1 ands r1, r0 adds r3, r4, 0 adds r3, 0x3E lsls r1, 2 ldrb r2, [r3] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _080DC04A: movs r0, 0x30 ldrsh r1, [r4, r0] movs r2, 0x2E ldrsh r0, [r4, r2] cmp r1, r0 bne _080DC05C adds r0, r4, 0 bl move_anim_8072740 _080DC05C: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] pop {r4} pop {r0} bx r0 thumb_func_end sub_80DC020 thumb_func_start sub_80DC068 sub_80DC068: @ 80DC068 push {r4-r6,lr} adds r5, r0, 0 ldr r6, _080DC0A4 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _080DC094 ldr r4, _080DC0A8 @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] _080DC094: ldrh r0, [r6, 0x2] strh r0, [r5, 0x2E] ldr r0, _080DC0AC @ =sub_80DC020 str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DC0A4: .4byte gUnknown_03004B00 _080DC0A8: .4byte gUnknown_0202F7C8 _080DC0AC: .4byte sub_80DC020 thumb_func_end sub_80DC068 thumb_func_start sub_80DC0B0 sub_80DC0B0: @ 80DC0B0 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080DC10C @ =gTasks adds r5, r1, r0 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080DC154 ldr r0, _080DC110 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x1 bne _080DC120 ldr r0, _080DC114 @ =0x0000fff6 strh r0, [r5, 0x1C] ldr r4, _080DC118 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x5 bl sub_807A100 subs r0, 0x8 strh r0, [r5, 0x1E] ldrb r0, [r4] movs r1, 0x2 bl sub_807A100 adds r0, 0x8 strh r0, [r5, 0x20] ldr r4, _080DC11C @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0x5 bl sub_807A100 subs r0, 0x8 strh r0, [r5, 0x22] ldrb r0, [r4] movs r1, 0x2 bl sub_807A100 adds r0, 0x8 b _080DC1DE .align 2, 0 _080DC10C: .4byte gTasks _080DC110: .4byte gUnknown_03004B00 _080DC114: .4byte 0x0000fff6 _080DC118: .4byte gUnknown_0202F7C9 _080DC11C: .4byte gUnknown_0202F7C8 _080DC120: movs r0, 0xA strh r0, [r5, 0x1C] ldr r4, _080DC14C @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0x4 bl sub_807A100 adds r0, 0x8 strh r0, [r5, 0x1E] ldrb r0, [r4] movs r1, 0x3 bl sub_807A100 subs r0, 0x8 strh r0, [r5, 0x20] ldr r4, _080DC150 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x4 bl sub_807A100 adds r0, 0x8 b _080DC1D2 .align 2, 0 _080DC14C: .4byte gUnknown_0202F7C8 _080DC150: .4byte gUnknown_0202F7C9 _080DC154: ldr r0, _080DC198 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x1 bne _080DC1A8 ldr r0, _080DC19C @ =0x0000fff6 strh r0, [r5, 0x1C] ldr r4, _080DC1A0 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x4 bl sub_807A100 adds r0, 0x8 strh r0, [r5, 0x1E] ldrb r0, [r4] movs r1, 0x2 bl sub_807A100 adds r0, 0x8 strh r0, [r5, 0x20] ldr r4, _080DC1A4 @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0x4 bl sub_807A100 adds r0, 0x8 strh r0, [r5, 0x22] ldrb r0, [r4] movs r1, 0x2 bl sub_807A100 adds r0, 0x8 b _080DC1DE .align 2, 0 _080DC198: .4byte gUnknown_03004B00 _080DC19C: .4byte 0x0000fff6 _080DC1A0: .4byte gUnknown_0202F7C9 _080DC1A4: .4byte gUnknown_0202F7C8 _080DC1A8: movs r0, 0xA strh r0, [r5, 0x1C] ldr r4, _080DC1F0 @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0x5 bl sub_807A100 subs r0, 0x8 strh r0, [r5, 0x1E] ldrb r0, [r4] movs r1, 0x3 bl sub_807A100 subs r0, 0x8 strh r0, [r5, 0x20] ldr r4, _080DC1F4 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x5 bl sub_807A100 subs r0, 0x8 _080DC1D2: strh r0, [r5, 0x22] ldrb r0, [r4] movs r1, 0x3 bl sub_807A100 subs r0, 0x8 _080DC1DE: strh r0, [r5, 0x24] movs r0, 0x6 strh r0, [r5, 0xA] ldr r0, _080DC1F8 @ =sub_80DC1FC str r0, [r5] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DC1F0: .4byte gUnknown_0202F7C8 _080DC1F4: .4byte gUnknown_0202F7C9 _080DC1F8: .4byte sub_80DC1FC thumb_func_end sub_80DC0B0 thumb_func_start sub_80DC1FC sub_80DC1FC: @ 80DC1FC push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080DC21C @ =gTasks adds r5, r0, r1 movs r0, 0x8 ldrsh r1, [r5, r0] cmp r1, 0 beq _080DC220 cmp r1, 0x1 beq _080DC294 b _080DC2A8 .align 2, 0 _080DC21C: .4byte gTasks _080DC220: ldrh r0, [r5, 0xA] adds r0, 0x1 strh r0, [r5, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 ble _080DC2A8 strh r1, [r5, 0xA] ldr r0, _080DC28C @ =gSpriteTemplate_83DA9AC movs r2, 0x1E ldrsh r1, [r5, r2] movs r3, 0x20 ldrsh r2, [r5, r3] movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _080DC274 ldr r0, _080DC290 @ =gSprites lsls r4, r1, 4 adds r4, r1 lsls r4, 2 adds r4, r0 movs r0, 0x10 strh r0, [r4, 0x2E] ldrh r0, [r5, 0x22] strh r0, [r4, 0x32] ldrh r0, [r5, 0x24] strh r0, [r4, 0x36] ldrh r0, [r5, 0x1C] strh r0, [r4, 0x38] adds r0, r4, 0 bl sub_80786EC ldrb r0, [r5, 0xC] movs r1, 0x3 ands r1, r0 adds r0, r4, 0 bl StartSpriteAffineAnim _080DC274: ldrh r0, [r5, 0xC] adds r0, 0x1 strh r0, [r5, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0xC bne _080DC2A8 ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] b _080DC2A8 .align 2, 0 _080DC28C: .4byte gSpriteTemplate_83DA9AC _080DC290: .4byte gSprites _080DC294: ldrh r0, [r5, 0xA] adds r0, 0x1 strh r0, [r5, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x11 ble _080DC2A8 adds r0, r2, 0 bl move_anim_task_del _080DC2A8: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80DC1FC thumb_func_start sub_80DC2B0 sub_80DC2B0: @ 80DC2B0 push {r4,lr} adds r4, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080DC2CE ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix adds r0, r4, 0 bl DestroySprite _080DC2CE: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DC2B0 thumb_func_start sub_80DC2D4 sub_80DC2D4: @ 80DC2D4 push {r4-r6,lr} sub sp, 0xC lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080DC30C @ =gTasks adds r4, r1, r0 ldr r0, _080DC310 @ =gUnknown_0202F7C9 ldrb r0, [r0] bl sub_8077FC0 lsls r0, 24 lsrs r1, r0, 24 adds r0, r1, 0 subs r0, 0x20 strh r0, [r4, 0x24] ldr r0, _080DC314 @ =gUnknown_03004B00 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0x1 beq _080DC32A cmp r0, 0x1 bgt _080DC318 cmp r0, 0 beq _080DC31E b _080DC346 .align 2, 0 _080DC30C: .4byte gTasks _080DC310: .4byte gUnknown_0202F7C9 _080DC314: .4byte gUnknown_03004B00 _080DC318: cmp r0, 0x2 beq _080DC336 b _080DC346 _080DC31E: movs r0, 0x2 strh r0, [r4, 0x1E] movs r0, 0x5 strh r0, [r4, 0x20] movs r0, 0x40 b _080DC33E _080DC32A: movs r0, 0x2 strh r0, [r4, 0x1E] movs r0, 0x5 strh r0, [r4, 0x20] movs r0, 0xC0 b _080DC33E _080DC336: movs r0, 0x4 strh r0, [r4, 0x1E] strh r0, [r4, 0x20] movs r0, 0 _080DC33E: strh r0, [r4, 0x22] adds r0, r1, 0 adds r0, 0x20 strh r0, [r4, 0x26] _080DC346: movs r1, 0x24 ldrsh r0, [r4, r1] cmp r0, 0 bge _080DC352 movs r0, 0 strh r0, [r4, 0x24] _080DC352: ldr r0, _080DC36C @ =gUnknown_0202F7C9 ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080DC378 ldr r0, _080DC370 @ =gUnknown_030042C0 ldrh r0, [r0] strh r0, [r4, 0x1C] ldr r0, _080DC374 @ =REG_BG1HOFS b _080DC380 .align 2, 0 _080DC36C: .4byte gUnknown_0202F7C9 _080DC370: .4byte gUnknown_030042C0 _080DC374: .4byte REG_BG1HOFS _080DC378: ldr r0, _080DC3E0 @ =gUnknown_03004288 ldrh r0, [r0] strh r0, [r4, 0x1C] ldr r0, _080DC3E4 @ =REG_BG2HOFS _080DC380: str r0, [sp] ldrh r1, [r4, 0x24] lsls r3, r1, 16 asrs r1, r3, 16 movs r2, 0x24 ldrsh r0, [r4, r2] adds r0, 0x40 cmp r1, r0 bgt _080DC3BA ldr r5, _080DC3E8 @ =gUnknown_03004DE0 movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 _080DC39A: asrs r3, 16 lsls r1, r3, 1 adds r2, r1, r5 ldrh r0, [r4, 0x1C] strh r0, [r2] adds r1, r6 ldrh r0, [r4, 0x1C] strh r0, [r1] adds r3, 0x1 lsls r3, 16 asrs r1, r3, 16 movs r2, 0x24 ldrsh r0, [r4, r2] adds r0, 0x40 cmp r1, r0 ble _080DC39A _080DC3BA: ldr r0, _080DC3EC @ =0xa2600001 str r0, [sp, 0x4] mov r1, sp movs r2, 0 movs r0, 0x1 strb r0, [r1, 0x8] mov r0, sp strb r2, [r0, 0x9] ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] bl sub_80895F8 ldr r0, _080DC3F0 @ =sub_80DC3F4 str r0, [r4] add sp, 0xC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DC3E0: .4byte gUnknown_03004288 _080DC3E4: .4byte REG_BG2HOFS _080DC3E8: .4byte gUnknown_03004DE0 _080DC3EC: .4byte 0xa2600001 _080DC3F0: .4byte sub_80DC3F4 thumb_func_end sub_80DC2D4 thumb_func_start sub_80DC3F4 sub_80DC3F4: @ 80DC3F4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080DC41C @ =gTasks adds r5, r0, r1 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0x1 beq _080DC4CE cmp r0, 0x1 bgt _080DC420 cmp r0, 0 beq _080DC426 b _080DC4E6 .align 2, 0 _080DC41C: .4byte gTasks _080DC420: cmp r0, 0x2 beq _080DC4E0 b _080DC4E6 _080DC426: ldrh r3, [r5, 0x22] ldrh r4, [r5, 0x24] movs r2, 0x24 ldrsh r1, [r5, r2] movs r2, 0x26 ldrsh r0, [r5, r2] cmp r1, r0 bgt _080DC4BE ldr r0, _080DC470 @ =gSineTable mov r9, r0 movs r7, 0x3 ldr r1, _080DC474 @ =gUnknown_03004DE0 mov r12, r1 movs r2, 0xF0 lsls r2, 3 add r2, r12 mov r8, r2 _080DC448: lsls r2, r3, 16 asrs r0, r2, 15 add r0, r9 movs r3, 0 ldrsh r0, [r0, r3] movs r3, 0x20 ldrsh r1, [r5, r3] asrs r0, r1 lsls r0, 16 lsrs r1, r0, 16 asrs r3, r0, 16 adds r6, r2, 0 cmp r3, 0 ble _080DC478 ldrh r1, [r5, 0xA] adds r0, r7, 0 ands r0, r1 adds r0, r3, r0 b _080DC484 .align 2, 0 _080DC470: .4byte gSineTable _080DC474: .4byte gUnknown_03004DE0 _080DC478: cmp r3, 0 bge _080DC488 ldrh r1, [r5, 0xA] adds r0, r7, 0 ands r0, r1 subs r0, r3, r0 _080DC484: lsls r0, 16 lsrs r1, r0, 16 _080DC488: lsls r2, r4, 16 asrs r2, 16 lsls r3, r2, 1 mov r0, r12 adds r4, r3, r0 ldrh r0, [r5, 0x1C] lsls r1, 16 asrs r1, 16 adds r0, r1, r0 strh r0, [r4] add r3, r8 ldrh r0, [r5, 0x1C] adds r1, r0 strh r1, [r3] asrs r0, r6, 16 ldrh r1, [r5, 0x1E] adds r0, r1 lsls r0, 16 lsrs r3, r0, 16 adds r2, 0x1 lsls r2, 16 lsrs r4, r2, 16 asrs r2, 16 movs r1, 0x26 ldrsh r0, [r5, r1] cmp r2, r0 ble _080DC448 _080DC4BE: ldrh r0, [r5, 0xA] adds r0, 0x1 strh r0, [r5, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x17 ble _080DC4E6 b _080DC4D4 _080DC4CE: ldr r1, _080DC4DC @ =gUnknown_03004DC0 movs r0, 0x3 strb r0, [r1, 0x15] _080DC4D4: ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] b _080DC4E6 .align 2, 0 _080DC4DC: .4byte gUnknown_03004DC0 _080DC4E0: adds r0, r2, 0 bl move_anim_task_del _080DC4E6: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80DC3F4 thumb_func_start sub_80DC4F4 sub_80DC4F4: @ 80DC4F4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r4, r0, 24 mov r8, r4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080DC528 @ =gTasks adds r7, r0, r1 bl AllocOamMatrix lsls r0, 24 lsrs r5, r0, 24 mov r10, r5 adds r6, r5, 0 cmp r6, 0xFF bne _080DC52C adds r0, r4, 0 bl move_anim_task_del b _080DC5D6 .align 2, 0 _080DC528: .4byte gTasks _080DC52C: ldr r1, _080DC550 @ =gUnknown_03004B00 ldrb r0, [r1] bl duplicate_obj_of_side_rel2move_in_transparent_mode lsls r0, 16 lsrs r1, r0, 16 mov r9, r1 asrs r0, 16 cmp r0, 0 bge _080DC554 adds r0, r5, 0 bl FreeOamMatrix mov r0, r8 bl move_anim_task_del b _080DC5D6 .align 2, 0 _080DC550: .4byte gUnknown_03004B00 _080DC554: ldr r2, _080DC5E4 @ =gSprites lsls r4, r0, 4 adds r4, r0 lsls r4, 2 adds r0, r2, 0 adds r0, 0x1C adds r0, r4, r0 ldr r1, _080DC5E8 @ =SpriteCallbackDummy str r1, [r0] adds r4, r2 ldrb r0, [r4, 0x1] movs r1, 0x3 orrs r0, r1 strb r0, [r4, 0x1] movs r0, 0x1F ands r6, r0 lsls r2, r6, 1 ldrb r1, [r4, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 orrs r0, r2 strb r0, [r4, 0x3] adds r2, r4, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] adds r1, r4, 0 adds r1, 0x43 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] mov r1, r9 lsls r0, r1, 24 lsrs r0, 24 movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 movs r3, 0 bl obj_id_set_rotscale ldrb r3, [r4, 0x1] lsrs r1, r3, 6 ldrb r2, [r4, 0x3] lsrs r2, 6 lsls r3, 30 lsrs r3, 30 adds r0, r4, 0 bl CalcCenterToCornerVec ldr r1, _080DC5EC @ =gUnknown_03004B00 ldrb r0, [r1] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x22] mov r0, r10 strh r0, [r7, 0x24] mov r1, r9 strh r1, [r7, 0x26] ldr r0, _080DC5F0 @ =sub_80DC5F4 str r0, [r7] _080DC5D6: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DC5E4: .4byte gSprites _080DC5E8: .4byte SpriteCallbackDummy _080DC5EC: .4byte gUnknown_03004B00 _080DC5F0: .4byte sub_80DC5F4 thumb_func_end sub_80DC4F4 thumb_func_start sub_80DC5F4 sub_80DC5F4: @ 80DC5F4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080DC618 @ =gTasks adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080DC678 cmp r0, 0x1 bgt _080DC61C cmp r0, 0 beq _080DC626 b _080DC6F8 .align 2, 0 _080DC618: .4byte gTasks _080DC61C: cmp r0, 0x2 beq _080DC6C8 cmp r0, 0x3 beq _080DC6E8 b _080DC6F8 _080DC626: ldrh r0, [r4, 0xA] adds r0, 0x4 strh r0, [r4, 0xA] ldr r1, _080DC674 @ =gSineTable movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 1 adds r0, r1 ldrh r1, [r0] lsls r1, 16 asrs r1, 17 movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 subs r0, r1 strh r0, [r4, 0xC] ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 movs r1, 0xC ldrsh r2, [r4, r1] adds r1, r2, 0 movs r3, 0 bl obj_id_set_rotscale ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x22] lsls r1, 24 lsrs r1, 24 bl sub_8079AB8 movs r2, 0xA ldrsh r0, [r4, r2] cmp r0, 0x30 bne _080DC6F8 b _080DC6DA .align 2, 0 _080DC674: .4byte gSineTable _080DC678: ldrh r0, [r4, 0xA] subs r0, 0x4 strh r0, [r4, 0xA] ldr r1, _080DC6C4 @ =gSineTable movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 1 adds r0, r1 ldrh r1, [r0] lsls r1, 16 asrs r1, 17 movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 subs r0, r1 strh r0, [r4, 0xC] ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 movs r1, 0xC ldrsh r2, [r4, r1] adds r1, r2, 0 movs r3, 0 bl obj_id_set_rotscale ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x22] lsls r1, 24 lsrs r1, 24 bl sub_8079AB8 movs r2, 0xA ldrsh r0, [r4, r2] cmp r0, 0 bne _080DC6F8 b _080DC6DA .align 2, 0 _080DC6C4: .4byte gSineTable _080DC6C8: movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080DC6E4 @ =gSprites adds r0, r1 bl obj_delete_but_dont_free_vram _080DC6DA: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080DC6F8 .align 2, 0 _080DC6E4: .4byte gSprites _080DC6E8: ldrh r0, [r4, 0x24] lsls r0, 24 lsrs r0, 24 bl FreeOamMatrix adds r0, r5, 0 bl move_anim_task_del _080DC6F8: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80DC5F4 thumb_func_start sub_80DC700 sub_80DC700: @ 80DC700 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0x1 beq _080DC778 cmp r0, 0x1 bgt _080DC716 cmp r0, 0 beq _080DC720 b _080DC818 _080DC716: cmp r0, 0x2 beq _080DC7AA cmp r0, 0x3 beq _080DC808 b _080DC818 _080DC720: ldr r4, _080DC76C @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080DC74E ldrh r0, [r5, 0x22] adds r0, 0xC strh r0, [r5, 0x22] _080DC74E: movs r0, 0x8 strh r0, [r5, 0x30] ldr r1, _080DC770 @ =REG_BLDCNT movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] ldr r2, _080DC774 @ =REG_BLDALPHA ldrh r1, [r5, 0x30] movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r0, r1 strh r0, [r2] b _080DC7A2 .align 2, 0 _080DC76C: .4byte gUnknown_0202F7C8 _080DC770: .4byte REG_BLDCNT _080DC774: .4byte REG_BLDALPHA _080DC778: adds r0, r5, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080DC818 movs r0, 0x40 negs r0, r0 bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0xCB bl PlaySE12WithPanning adds r0, r5, 0 movs r1, 0x1 bl ChangeSpriteAffineAnim _080DC7A2: ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] b _080DC818 _080DC7AA: ldrh r0, [r5, 0x32] adds r1, r0, 0x1 strh r1, [r5, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080DC7E8 movs r0, 0 strh r0, [r5, 0x32] ldrh r1, [r5, 0x30] subs r1, 0x1 strh r1, [r5, 0x30] ldr r2, _080DC804 @ =REG_BLDALPHA movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r1, 0x30 ldrsh r0, [r5, r1] cmp r0, 0 bne _080DC7E8 ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _080DC7E8: movs r0, 0xE0 lsls r0, 2 adds r2, r0, 0 ldrh r1, [r5, 0x34] adds r2, r1 lsls r1, r2, 16 asrs r1, 24 ldrh r0, [r5, 0x26] subs r0, r1 strh r0, [r5, 0x26] movs r0, 0xFF ands r2, r0 strh r2, [r5, 0x34] b _080DC818 .align 2, 0 _080DC804: .4byte REG_BLDALPHA _080DC808: ldr r0, _080DC820 @ =REG_BLDCNT movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, r5, 0 bl move_anim_8072740 _080DC818: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DC820: .4byte REG_BLDCNT thumb_func_end sub_80DC700 thumb_func_start sub_80DC824 sub_80DC824: @ 80DC824 push {r4-r6,lr} adds r6, r0, 0 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080DC850 adds r0, r6, 0 movs r1, 0x2 bl StartSpriteAffineAnim ldr r0, _080DC84C @ =gUnknown_03004B00 ldrh r1, [r0, 0x4] negs r1, r1 strh r1, [r0, 0x4] ldrh r1, [r0] negs r1, r1 strh r1, [r0] b _080DC880 .align 2, 0 _080DC84C: .4byte gUnknown_03004B00 _080DC850: ldr r0, _080DC8E4 @ =gUnknown_0202F7C9 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080DC880 adds r0, r6, 0 movs r1, 0x1 bl StartSpriteAffineAnim ldr r1, _080DC8E8 @ =gUnknown_03004B00 ldrh r0, [r1, 0x2] negs r0, r0 strh r0, [r1, 0x2] ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] ldrh r0, [r1, 0x6] negs r0, r0 strh r0, [r1, 0x6] ldrh r0, [r1] negs r0, r0 strh r0, [r1] _080DC880: ldr r5, _080DC8E4 @ =gUnknown_0202F7C9 ldrb r0, [r5] movs r1, 0x2 bl sub_8077EE4 lsls r0, 24 ldr r4, _080DC8E8 @ =gUnknown_03004B00 lsrs r0, 24 ldrh r1, [r4] adds r0, r1 strh r0, [r6, 0x20] ldrb r0, [r5] movs r1, 0x3 bl sub_8077EE4 lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x2] adds r0, r1 strh r0, [r6, 0x22] ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] adds r0, r1 strh r0, [r6, 0x32] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x6] adds r0, r4 strh r0, [r6, 0x36] ldr r0, _080DC8EC @ =sub_8078B34 str r0, [r6, 0x1C] ldr r1, _080DC8F0 @ =move_anim_8072740 adds r0, r6, 0 bl oamt_set_x3A_32 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DC8E4: .4byte gUnknown_0202F7C9 _080DC8E8: .4byte gUnknown_03004B00 _080DC8EC: .4byte sub_8078B34 _080DC8F0: .4byte move_anim_8072740 thumb_func_end sub_80DC824 thumb_func_start sub_80DC8F4 sub_80DC8F4: @ 80DC8F4 push {r4-r6,lr} adds r6, r0, 0 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080DC918 ldr r1, _080DC914 @ =gUnknown_03004B00 ldrh r0, [r1] negs r0, r0 strh r0, [r1] adds r0, r6, 0 movs r1, 0x2 bl StartSpriteAffineAnim b _080DC934 .align 2, 0 _080DC914: .4byte gUnknown_03004B00 _080DC918: ldr r0, _080DC990 @ =gUnknown_0202F7C9 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080DC934 ldr r0, _080DC994 @ =gUnknown_03004B00 ldrh r1, [r0, 0x2] negs r1, r1 strh r1, [r0, 0x2] ldrh r1, [r0] negs r1, r1 strh r1, [r0] _080DC934: ldr r5, _080DC990 @ =gUnknown_0202F7C9 ldrb r0, [r5] movs r1, 0x2 bl sub_8077EE4 lsls r0, 24 ldr r4, _080DC994 @ =gUnknown_03004B00 lsrs r0, 24 ldrh r1, [r4] adds r0, r1 strh r0, [r6, 0x20] ldrb r0, [r5] movs r1, 0x3 bl sub_8077EE4 lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x2] adds r0, r1 strh r0, [r6, 0x22] ldrh r0, [r4, 0x4] strh r0, [r6, 0x2E] ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x32] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x36] ldr r0, _080DC998 @ =sub_8078B34 str r0, [r6, 0x1C] ldr r1, _080DC99C @ =move_anim_8072740 adds r0, r6, 0 bl oamt_set_x3A_32 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DC990: .4byte gUnknown_0202F7C9 _080DC994: .4byte gUnknown_03004B00 _080DC998: .4byte sub_8078B34 _080DC99C: .4byte move_anim_8072740 thumb_func_end sub_80DC8F4 thumb_func_start sub_80DC9A0 sub_80DC9A0: @ 80DC9A0 push {r4,r5,lr} adds r5, r0, 0 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080DC9BC ldr r0, _080DC9FC @ =gUnknown_03004B00 movs r2, 0x4 ldrsh r1, [r0, r2] lsrs r2, r1, 31 adds r1, r2 asrs r1, 1 strh r1, [r0, 0x4] _080DC9BC: adds r0, r5, 0 movs r1, 0x1 bl sub_80787B0 ldr r1, _080DC9FC @ =gUnknown_03004B00 ldrh r0, [r1, 0x4] strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] ldrh r0, [r5, 0x22] strh r0, [r5, 0x34] movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 bne _080DCA04 ldr r4, _080DCA00 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] b _080DCA16 .align 2, 0 _080DC9FC: .4byte gUnknown_03004B00 _080DCA00: .4byte gUnknown_0202F7C9 _080DCA04: ldr r0, _080DCA2C @ =gUnknown_0202F7C9 ldrb r0, [r0] adds r2, r5, 0 adds r2, 0x32 adds r3, r5, 0 adds r3, 0x36 movs r1, 0x1 bl sub_807A3FC _080DCA16: adds r0, r5, 0 bl sub_8078BD4 ldr r0, _080DCA30 @ =gUnknown_03004B00 ldrh r0, [r0, 0x6] strh r0, [r5, 0x38] ldr r0, _080DCA34 @ =sub_80DCA38 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DCA2C: .4byte gUnknown_0202F7C9 _080DCA30: .4byte gUnknown_03004B00 _080DCA34: .4byte sub_80DCA38 thumb_func_end sub_80DC9A0 thumb_func_start sub_80DCA38 sub_80DCA38: @ 80DCA38 push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 beq _080DCA4E adds r0, r4, 0 bl move_anim_8072740 b _080DCA6A _080DCA4E: movs r1, 0x3A ldrsh r0, [r4, r1] movs r2, 0x38 ldrsh r1, [r4, r2] bl Sin ldrh r1, [r4, 0x24] adds r0, r1 strh r0, [r4, 0x24] ldrh r0, [r4, 0x3A] adds r0, 0xD movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x3A] _080DCA6A: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DCA38 thumb_func_start sub_80DCA70 sub_80DCA70: @ 80DCA70 push {r4,lr} adds r4, r0, 0 ldr r0, _080DCAA0 @ =gUnknown_0202F7C9 ldrb r0, [r0] adds r2, r4, 0 adds r2, 0x20 adds r3, r4, 0 adds r3, 0x22 movs r1, 0 bl sub_807A3FC ldr r0, _080DCAA4 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DCAAC ldr r0, _080DCAA8 @ =gUnknown_03004B00 ldrh r1, [r4, 0x20] ldrh r2, [r0] subs r1, r2 strh r1, [r4, 0x20] b _080DCAB8 .align 2, 0 _080DCAA0: .4byte gUnknown_0202F7C9 _080DCAA4: .4byte gUnknown_0202F7C8 _080DCAA8: .4byte gUnknown_03004B00 _080DCAAC: ldr r1, _080DCAE0 @ =gUnknown_03004B00 ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] adds r0, r1, 0 _080DCAB8: ldrh r0, [r0, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldr r0, _080DCAE4 @ =gUnknown_0202F7C9 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080DCAD4 ldrh r0, [r4, 0x22] adds r0, 0x8 strh r0, [r4, 0x22] _080DCAD4: ldr r0, _080DCAE8 @ =sub_80DCAEC str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080DCAE0: .4byte gUnknown_03004B00 _080DCAE4: .4byte gUnknown_0202F7C9 _080DCAE8: .4byte sub_80DCAEC thumb_func_end sub_80DCA70 thumb_func_start sub_80DCAEC sub_80DCAEC: @ 80DCAEC push {lr} adds r3, r0, 0 ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 bne _080DCB20 movs r0, 0 strh r0, [r3, 0x2E] movs r0, 0x3E adds r0, r3 mov r12, r0 ldrb r2, [r0] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] _080DCB20: ldrh r0, [r3, 0x30] adds r0, 0x1 strh r0, [r3, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x33 bne _080DCB34 adds r0, r3, 0 bl move_anim_8072740 _080DCB34: pop {r0} bx r0 thumb_func_end sub_80DCAEC thumb_func_start sub_80DCB38 sub_80DCB38: @ 80DCB38 ldr r2, _080DCB54 @ =REG_BLDCNT movs r3, 0xFD lsls r3, 6 adds r1, r3, 0 strh r1, [r2] adds r2, 0x2 movs r1, 0x10 strh r1, [r2] movs r1, 0x10 strh r1, [r0, 0x2E] ldr r1, _080DCB58 @ =sub_80DCB5C str r1, [r0, 0x1C] bx lr .align 2, 0 _080DCB54: .4byte REG_BLDCNT _080DCB58: .4byte sub_80DCB5C thumb_func_end sub_80DCB38 thumb_func_start sub_80DCB5C sub_80DCB5C: @ 80DCB5C push {lr} adds r3, r0, 0 ldrh r1, [r3, 0x32] movs r2, 0x32 ldrsh r0, [r3, r2] cmp r0, 0x13 bgt _080DCB70 adds r0, r1, 0x1 strh r0, [r3, 0x32] b _080DCBA8 _080DCB70: ldrh r1, [r3, 0x30] adds r0, r1, 0x1 strh r0, [r3, 0x30] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080DCBA8 ldrh r1, [r3, 0x2E] subs r1, 0x1 strh r1, [r3, 0x2E] ldr r2, _080DCBAC @ =REG_BLDALPHA movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r1, 0x2E ldrsh r0, [r3, r1] cmp r0, 0 bne _080DCBA8 adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _080DCBB0 @ =sub_80DCBB4 str r0, [r3, 0x1C] _080DCBA8: pop {r0} bx r0 .align 2, 0 _080DCBAC: .4byte REG_BLDALPHA _080DCBB0: .4byte sub_80DCBB4 thumb_func_end sub_80DCB5C thumb_func_start sub_80DCBB4 sub_80DCBB4: @ 80DCBB4 push {lr} ldr r1, _080DCBC8 @ =REG_BLDCNT movs r2, 0 strh r2, [r1] adds r1, 0x2 strh r2, [r1] bl move_anim_8072740 pop {r0} bx r0 .align 2, 0 _080DCBC8: .4byte REG_BLDCNT thumb_func_end sub_80DCBB4 thumb_func_start sub_80DCBCC sub_80DCBCC: @ 80DCBCC push {r4-r7,lr} sub sp, 0x4 adds r7, r0, 0 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080DCBEC ldr r1, _080DCBE8 @ =gUnknown_03004B00 ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] b _080DCC0E .align 2, 0 _080DCBE8: .4byte gUnknown_03004B00 _080DCBEC: ldr r0, _080DCCE8 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DCC0E ldr r1, _080DCCEC @ =gUnknown_03004B00 ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] ldrh r0, [r1, 0x2] negs r0, r0 strh r0, [r1, 0x2] ldrh r0, [r1, 0x6] negs r0, r0 strh r0, [r1, 0x6] _080DCC0E: bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080DCC5E ldr r0, _080DCCE8 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner adds r4, r0, 0 ldr r5, _080DCCF0 @ =gUnknown_0202F7C9 ldrb r0, [r5] bl battle_side_get_owner lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _080DCC5E ldrb r0, [r5] bl battle_get_per_side_status lsls r0, 24 cmp r0, 0 beq _080DCC4C ldrb r0, [r5] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080DCC5E _080DCC4C: ldr r0, _080DCCEC @ =gUnknown_03004B00 movs r2, 0x4 ldrsh r1, [r0, r2] negs r1, r1 strh r1, [r0, 0x4] movs r2, 0 ldrsh r1, [r0, r2] negs r1, r1 strh r1, [r0] _080DCC5E: adds r0, r7, 0 movs r1, 0x1 bl sub_80787B0 ldr r5, _080DCCF0 @ =gUnknown_0202F7C9 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC adds r4, r0, 0 lsls r4, 24 ldr r6, _080DCCEC @ =gUnknown_03004B00 lsrs r4, 24 ldrh r0, [r6, 0x4] adds r4, r0 lsls r4, 16 lsrs r4, 16 ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldrh r2, [r6, 0x6] adds r1, r2 lsls r1, 16 ldrh r2, [r7, 0x20] lsls r0, r4, 16 asrs r0, 16 subs r0, r2 lsls r0, 16 asrs r0, 16 ldrh r2, [r7, 0x22] lsrs r5, r1, 16 asrs r1, 16 subs r1, r2 lsls r1, 16 asrs r1, 16 bl sub_80790F0 lsls r0, 16 movs r1, 0xC0 lsls r1, 24 adds r0, r1 lsrs r0, 16 movs r3, 0x80 lsls r3, 1 str r0, [sp] adds r0, r7, 0 movs r1, 0 adds r2, r3, 0 bl sub_8078FDC ldrh r0, [r6, 0x8] strh r0, [r7, 0x2E] strh r4, [r7, 0x32] strh r5, [r7, 0x36] ldr r0, _080DCCF4 @ =sub_8078B34 str r0, [r7, 0x1C] ldr r1, _080DCCF8 @ =move_anim_8072740 adds r0, r7, 0 bl oamt_set_x3A_32 add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DCCE8: .4byte gUnknown_0202F7C8 _080DCCEC: .4byte gUnknown_03004B00 _080DCCF0: .4byte gUnknown_0202F7C9 _080DCCF4: .4byte sub_8078B34 _080DCCF8: .4byte move_anim_8072740 thumb_func_end sub_80DCBCC thumb_func_start sub_80DCCFC sub_80DCCFC: @ 80DCCFC push {r4-r6,lr} adds r6, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r0, _080DCD68 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DCD1C ldr r1, _080DCD6C @ =gUnknown_03004B00 ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080DCD1C: ldr r4, _080DCD6C @ =gUnknown_03004B00 ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] ldr r5, _080DCD70 @ =gUnknown_0202F7C9 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] adds r0, r1 strh r0, [r6, 0x32] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x6] adds r0, r1 strh r0, [r6, 0x36] ldrh r0, [r4, 0xA] strh r0, [r6, 0x38] adds r0, r6, 0 bl sub_80786EC ldr r0, _080DCD74 @ =sub_80DCD78 str r0, [r6, 0x1C] adds r2, r6, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DCD68: .4byte gUnknown_0202F7C8 _080DCD6C: .4byte gUnknown_03004B00 _080DCD70: .4byte gUnknown_0202F7C9 _080DCD74: .4byte sub_80DCD78 thumb_func_end sub_80DCCFC thumb_func_start sub_80DCD78 sub_80DCD78: @ 80DCD78 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 adds r4, r0, 0 adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x5 negs r1, r1 ands r1, r0 strb r1, [r2] adds r0, r4, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080DCDA4 adds r0, r4, 0 bl move_anim_8072740 b _080DCE34 _080DCDA4: movs r0, 0x2E adds r0, r4 mov r8, r0 ldrh r7, [r4, 0x20] ldrh r5, [r4, 0x24] ldrh r1, [r4, 0x22] mov r12, r1 ldrh r6, [r4, 0x26] mov r2, r8 add r1, sp, 0x4 movs r3, 0x7 _080DCDBA: ldrh r0, [r2] strh r0, [r1] adds r2, 0x2 adds r1, 0x2 subs r3, 0x1 cmp r3, 0 bge _080DCDBA adds r0, r7, r5 lsls r0, 16 lsrs r5, r0, 16 mov r2, r12 adds r0, r2, r6 lsls r0, 16 lsrs r6, r0, 16 adds r0, r4, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 bne _080DCE34 ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 lsls r1, r5, 16 asrs r1, 16 subs r0, r1 lsls r0, 16 asrs r0, 16 ldrh r1, [r4, 0x26] ldrh r2, [r4, 0x22] adds r1, r2 lsls r2, r6, 16 asrs r2, 16 subs r1, r2 lsls r1, 16 asrs r1, 16 bl sub_80790F0 lsls r0, 16 movs r1, 0xC0 lsls r1, 24 adds r0, r1 lsrs r0, 16 movs r3, 0x80 lsls r3, 1 str r0, [sp] adds r0, r4, 0 movs r1, 0 adds r2, r3, 0 bl sub_8078FDC add r2, sp, 0x4 mov r1, r8 movs r3, 0x7 _080DCE26: ldrh r0, [r2] strh r0, [r1] adds r2, 0x2 adds r1, 0x2 subs r3, 0x1 cmp r3, 0 bge _080DCE26 _080DCE34: add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80DCD78 thumb_func_start sub_80DCE40 sub_80DCE40: @ 80DCE40 push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080DCE54 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080DCE5C ldr r4, _080DCE58 @ =gUnknown_0202F7C8 b _080DCE5E .align 2, 0 _080DCE54: .4byte gUnknown_03004B00 _080DCE58: .4byte gUnknown_0202F7C8 _080DCE5C: ldr r4, _080DCE90 @ =gUnknown_0202F7C9 _080DCE5E: ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, 0x12 strh r0, [r5, 0x22] ldr r1, _080DCE94 @ =move_anim_8074EE0 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080DCE98 @ =sub_80785E4 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DCE90: .4byte gUnknown_0202F7C9 _080DCE94: .4byte move_anim_8074EE0 _080DCE98: .4byte sub_80785E4 thumb_func_end sub_80DCE40 thumb_func_start sub_80DCE9C sub_80DCE9C: @ 80DCE9C push {r4-r6,lr} adds r5, r0, 0 ldr r6, _080DCF08 @ =gUnknown_03004B00 movs r1, 0x6 ldrsh r0, [r6, r1] cmp r0, 0 beq _080DCEBC ldr r0, _080DCF0C @ =gUnknown_0202F7C9 ldrb r0, [r0] adds r2, r5, 0 adds r2, 0x20 adds r3, r5, 0 adds r3, 0x22 movs r1, 0 bl sub_807A3FC _080DCEBC: ldrh r0, [r6] ldrh r1, [r5, 0x20] adds r0, r1 movs r4, 0 strh r0, [r5, 0x20] ldrh r0, [r5, 0x22] adds r0, 0xE strh r0, [r5, 0x22] ldrb r1, [r6, 0x2] adds r0, r5, 0 bl StartSpriteAnim adds r0, r5, 0 bl AnimateSprite strh r4, [r5, 0x2E] strh r4, [r5, 0x30] movs r0, 0x4 strh r0, [r5, 0x32] movs r0, 0x10 strh r0, [r5, 0x34] ldr r0, _080DCF10 @ =0x0000ffba strh r0, [r5, 0x36] ldrh r0, [r6, 0x4] strh r0, [r5, 0x38] ldr r1, _080DCF14 @ =sub_80DCF1C adds r0, r5, 0 bl oamt_set_x3A_32 ldr r1, _080DCF18 @ =sub_8078278 str r1, [r5, 0x1C] adds r0, r5, 0 bl _call_via_r1 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DCF08: .4byte gUnknown_03004B00 _080DCF0C: .4byte gUnknown_0202F7C9 _080DCF10: .4byte 0x0000ffba _080DCF14: .4byte sub_80DCF1C _080DCF18: .4byte sub_8078278 thumb_func_end sub_80DCE9C thumb_func_start sub_80DCF1C sub_80DCF1C: @ 80DCF1C push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x38] ldrh r2, [r4, 0x20] adds r0, r1, r2 strh r0, [r4, 0x20] movs r0, 0xC0 strh r0, [r4, 0x2E] strh r1, [r4, 0x30] movs r0, 0x4 strh r0, [r4, 0x32] movs r0, 0x20 strh r0, [r4, 0x34] ldr r0, _080DCF54 @ =0x0000ffe8 strh r0, [r4, 0x36] ldr r1, _080DCF58 @ =move_anim_8074EE0 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r1, _080DCF5C @ =sub_8078278 str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4} pop {r0} bx r0 .align 2, 0 _080DCF54: .4byte 0x0000ffe8 _080DCF58: .4byte move_anim_8074EE0 _080DCF5C: .4byte sub_8078278 thumb_func_end sub_80DCF1C thumb_func_start sub_80DCF60 sub_80DCF60: @ 80DCF60 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080DCF88 @ =gUnknown_03004B00 ldrb r1, [r4, 0xA] bl StartSpriteAnim adds r0, r5, 0 bl AnimateSprite ldr r0, _080DCF8C @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DCF90 ldrh r0, [r5, 0x20] ldrh r1, [r4] subs r0, r1 b _080DCF96 .align 2, 0 _080DCF88: .4byte gUnknown_03004B00 _080DCF8C: .4byte gUnknown_0202F7C8 _080DCF90: ldrh r0, [r4] ldrh r1, [r5, 0x20] adds r0, r1 _080DCF96: strh r0, [r5, 0x20] ldr r3, _080DCFD8 @ =gUnknown_03004B00 ldrh r2, [r3, 0x2] ldrh r0, [r5, 0x22] adds r2, r0 movs r4, 0 strh r2, [r5, 0x22] ldrh r0, [r3, 0x8] strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] ldrh r1, [r3, 0x4] adds r0, r1 strh r0, [r5, 0x32] strh r2, [r5, 0x34] ldrh r0, [r3, 0x6] adds r2, r0 strh r2, [r5, 0x36] adds r0, r5, 0 bl sub_8078A5C strh r4, [r5, 0x34] strh r4, [r5, 0x36] ldr r0, _080DCFDC @ =sub_8078394 str r0, [r5, 0x1C] ldr r1, _080DCFE0 @ =move_anim_8074EE0 adds r0, r5, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DCFD8: .4byte gUnknown_03004B00 _080DCFDC: .4byte sub_8078394 _080DCFE0: .4byte move_anim_8074EE0 thumb_func_end sub_80DCF60 thumb_func_start sub_80DCFE4 sub_80DCFE4: @ 80DCFE4 push {r4,lr} adds r4, r0, 0 ldr r0, _080DCFFC @ =gUnknown_03004B00 movs r1, 0xC ldrsh r0, [r0, r1] cmp r0, 0 bne _080DD000 adds r0, r4, 0 movs r1, 0 bl sub_80787B0 b _080DD008 .align 2, 0 _080DCFFC: .4byte gUnknown_03004B00 _080DD000: adds r0, r4, 0 movs r1, 0 bl sub_8078764 _080DD008: ldr r1, _080DD024 @ =gUnknown_03004B00 ldrh r0, [r1, 0x6] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x4] strh r0, [r4, 0x30] ldrh r0, [r1, 0x8] strh r0, [r4, 0x32] ldrh r0, [r1, 0xA] strh r0, [r4, 0x34] ldr r0, _080DD028 @ =sub_80DD02C str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080DD024: .4byte gUnknown_03004B00 _080DD028: .4byte sub_80DD02C thumb_func_end sub_80DCFE4 thumb_func_start sub_80DD02C sub_80DD02C: @ 80DD02C push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x30] ldrh r1, [r4, 0x36] adds r0, r1 strh r0, [r4, 0x36] lsls r0, 16 asrs r0, 24 negs r0, r0 strh r0, [r4, 0x26] movs r2, 0x38 ldrsh r0, [r4, r2] movs r2, 0x34 ldrsh r1, [r4, r2] bl Sin strh r0, [r4, 0x24] ldrh r0, [r4, 0x32] ldrh r1, [r4, 0x38] adds r0, r1 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] ldrh r0, [r4, 0x2E] subs r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080DD072 adds r0, r4, 0 bl move_anim_8072740 _080DD072: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DD02C thumb_func_start do_boulder_dust do_boulder_dust: @ 80DD078 push {r4-r6,lr} sub sp, 0x10 lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 ldr r1, _080DD154 @ =REG_BLDCNT ldr r2, _080DD158 @ =0x00003f42 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r2, 0x80 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r4, _080DD15C @ =REG_BG1CNT ldrb r1, [r4] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4] ldrb r1, [r4, 0x1] movs r0, 0x3F ands r0, r1 strb r0, [r4, 0x1] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080DD0C4 ldrb r0, [r4] movs r1, 0xD negs r1, r1 ands r1, r0 movs r0, 0x4 orrs r1, r0 strb r1, [r4] _080DD0C4: ldr r0, _080DD160 @ =gUnknown_030042C0 strh r5, [r0] ldr r0, _080DD164 @ =gUnknown_030041B4 strh r5, [r0] ldr r0, _080DD168 @ =REG_BG1HOFS strh r5, [r0] adds r0, 0x2 strh r5, [r0] mov r0, sp bl sub_8078914 ldr r1, [sp, 0x4] str r5, [sp, 0xC] ldr r2, _080DD16C @ =0x040000d4 add r0, sp, 0xC str r0, [r2] str r1, [r2, 0x4] ldr r0, _080DD170 @ =0x85000400 str r0, [r2, 0x8] ldr r0, [r2, 0x8] ldr r0, _080DD174 @ =gBattleAnimBackgroundTilemap_SandstormBrew bl LZDecompressVram ldr r0, _080DD178 @ =gBattleAnimBackgroundImage_SandstormBrew ldr r1, [sp] bl LZDecompressVram ldr r0, _080DD17C @ =gBattleAnimSpritePalette_261 mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 movs r2, 0x20 bl LoadCompressedPalette bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080DD120 mov r0, sp ldrb r0, [r0, 0x8] ldr r1, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_80763FC _080DD120: ldr r0, _080DD180 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _080DD13A ldr r0, _080DD184 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DD13A movs r5, 0x1 _080DD13A: ldr r0, _080DD188 @ =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 strh r5, [r1, 0x8] ldr r0, _080DD18C @ =sub_80DD190 str r0, [r1] add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DD154: .4byte REG_BLDCNT _080DD158: .4byte 0x00003f42 _080DD15C: .4byte REG_BG1CNT _080DD160: .4byte gUnknown_030042C0 _080DD164: .4byte gUnknown_030041B4 _080DD168: .4byte REG_BG1HOFS _080DD16C: .4byte 0x040000d4 _080DD170: .4byte 0x85000400 _080DD174: .4byte gBattleAnimBackgroundTilemap_SandstormBrew _080DD178: .4byte gBattleAnimBackgroundImage_SandstormBrew _080DD17C: .4byte gBattleAnimSpritePalette_261 _080DD180: .4byte gUnknown_03004B00 _080DD184: .4byte gUnknown_0202F7C8 _080DD188: .4byte gTasks _080DD18C: .4byte sub_80DD190 thumb_func_end do_boulder_dust thumb_func_start sub_80DD190 sub_80DD190: @ 80DD190 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r7, r0, 24 ldr r1, _080DD1C0 @ =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] adds r3, r1, 0 cmp r0, 0 bne _080DD1CC ldr r1, _080DD1C4 @ =gUnknown_030042C0 ldr r5, _080DD1C8 @ =0x0000fffa adds r0, r5, 0 ldrh r2, [r1] adds r0, r2 b _080DD1D2 .align 2, 0 _080DD1C0: .4byte gTasks _080DD1C4: .4byte gUnknown_030042C0 _080DD1C8: .4byte 0x0000fffa _080DD1CC: ldr r1, _080DD204 @ =gUnknown_030042C0 ldrh r0, [r1] adds r0, 0x6 _080DD1D2: strh r0, [r1] adds r4, r1, 0 ldr r1, _080DD208 @ =gUnknown_030041B4 ldr r5, _080DD20C @ =0x0000ffff adds r0, r5, 0 ldrh r2, [r1] adds r0, r2 strh r0, [r1] lsls r2, r7, 2 adds r0, r2, r7 lsls r0, 3 adds r0, r3 movs r5, 0x20 ldrsh r0, [r0, r5] mov r8, r2 adds r2, r1, 0 cmp r0, 0x4 bls _080DD1F8 b _080DD37C _080DD1F8: lsls r0, 2 ldr r1, _080DD210 @ =_080DD214 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080DD204: .4byte gUnknown_030042C0 _080DD208: .4byte gUnknown_030041B4 _080DD20C: .4byte 0x0000ffff _080DD210: .4byte _080DD214 .align 2, 0 _080DD214: .4byte _080DD228 .4byte _080DD270 .4byte _080DD292 .4byte _080DD2D4 .4byte _080DD358 _080DD228: mov r1, r8 adds r0, r1, r7 lsls r0, 3 adds r3, r0, r3 ldrh r0, [r3, 0x1C] adds r0, 0x1 movs r4, 0 strh r0, [r3, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 beq _080DD242 b _080DD37C _080DD242: strh r4, [r3, 0x1C] ldrh r1, [r3, 0x1E] adds r1, 0x1 strh r1, [r3, 0x1E] ldr r2, _080DD26C @ =REG_BLDALPHA movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r2, 0x1E ldrsh r0, [r3, r2] cmp r0, 0x7 beq _080DD260 b _080DD37C _080DD260: ldrh r0, [r3, 0x20] adds r0, 0x1 strh r0, [r3, 0x20] strh r4, [r3, 0x1E] b _080DD37C .align 2, 0 _080DD26C: .4byte REG_BLDALPHA _080DD270: mov r5, r8 adds r0, r5, r7 lsls r0, 3 adds r1, r0, r3 ldrh r0, [r1, 0x1E] adds r0, 0x1 strh r0, [r1, 0x1E] lsls r0, 16 asrs r0, 16 cmp r0, 0x65 bne _080DD37C movs r0, 0x7 strh r0, [r1, 0x1E] ldrh r0, [r1, 0x20] adds r0, 0x1 strh r0, [r1, 0x20] b _080DD37C _080DD292: mov r1, r8 adds r0, r1, r7 lsls r0, 3 adds r3, r0, r3 ldrh r0, [r3, 0x1C] adds r0, 0x1 strh r0, [r3, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _080DD37C movs r0, 0 strh r0, [r3, 0x1C] ldrh r1, [r3, 0x1E] subs r1, 0x1 strh r1, [r3, 0x1E] ldr r2, _080DD2D0 @ =REG_BLDALPHA movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r2, 0x1E ldrsh r1, [r3, r2] cmp r1, 0 bne _080DD37C ldrh r0, [r3, 0x20] adds r0, 0x1 strh r0, [r3, 0x20] strh r1, [r3, 0x1E] b _080DD37C .align 2, 0 _080DD2D0: .4byte REG_BLDALPHA _080DD2D4: mov r0, sp bl sub_8078914 ldr r2, [sp] movs r3, 0x80 lsls r3, 6 add r5, sp, 0xC movs r6, 0 ldr r1, _080DD38C @ =0x040000d4 movs r4, 0x80 lsls r4, 5 mov r9, r5 ldr r0, _080DD390 @ =0x85000400 mov r12, r0 movs r0, 0x85 lsls r0, 24 mov r10, r0 _080DD2F6: str r6, [sp, 0xC] mov r0, r9 str r0, [r1] str r2, [r1, 0x4] mov r0, r12 str r0, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r4 subs r3, r4 cmp r3, r4 bhi _080DD2F6 str r6, [sp, 0xC] str r5, [r1] str r2, [r1, 0x4] lsrs r0, r3, 2 mov r2, r10 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r1, [sp, 0x4] movs r0, 0 str r0, [sp, 0xC] ldr r0, _080DD38C @ =0x040000d4 str r5, [r0] str r1, [r0, 0x4] ldr r1, _080DD394 @ =0x85000200 str r1, [r0, 0x8] ldr r0, [r0, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080DD344 ldr r2, _080DD398 @ =REG_BG1CNT ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _080DD344: ldr r0, _080DD39C @ =gTasks mov r5, r8 adds r1, r5, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x20] adds r0, 0x1 strh r0, [r1, 0x20] ldr r4, _080DD3A0 @ =gUnknown_030042C0 ldr r2, _080DD3A4 @ =gUnknown_030041B4 _080DD358: movs r1, 0 strh r1, [r4] strh r1, [r2] ldr r0, _080DD3A8 @ =REG_BLDCNT strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r2, _080DD398 @ =REG_BG1CNT ldrb r1, [r2] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2] adds r0, r7, 0 bl move_anim_task_del _080DD37C: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DD38C: .4byte 0x040000d4 _080DD390: .4byte 0x85000400 _080DD394: .4byte 0x85000200 _080DD398: .4byte REG_BG1CNT _080DD39C: .4byte gTasks _080DD3A0: .4byte gUnknown_030042C0 _080DD3A4: .4byte gUnknown_030041B4 _080DD3A8: .4byte REG_BLDCNT thumb_func_end sub_80DD190 thumb_func_start sub_80DD3AC sub_80DD3AC: @ 80DD3AC push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0 bne _080DD428 ldr r4, _080DD3F0 @ =gUnknown_03004B00 movs r2, 0x6 ldrsh r0, [r4, r2] cmp r0, 0 beq _080DD3F8 ldr r0, _080DD3F4 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DD3F8 movs r0, 0x98 lsls r0, 1 strh r0, [r5, 0x20] ldrh r0, [r4, 0x2] negs r0, r0 strh r0, [r4, 0x2] movs r0, 0x1 strh r0, [r5, 0x38] ldrb r1, [r5, 0x3] subs r0, 0x40 ands r0, r1 movs r1, 0x10 orrs r0, r1 strb r0, [r5, 0x3] b _080DD3FC .align 2, 0 _080DD3F0: .4byte gUnknown_03004B00 _080DD3F4: .4byte gUnknown_0202F7C8 _080DD3F8: ldr r0, _080DD41C @ =0x0000ffc0 strh r0, [r5, 0x20] _080DD3FC: ldr r4, _080DD420 @ =gUnknown_03004B00 ldrh r0, [r4] strh r0, [r5, 0x22] ldr r1, _080DD424 @ =gUnknown_083DAD10 adds r0, r5, 0 bl SetSubspriteTables ldrh r0, [r4, 0x2] strh r0, [r5, 0x30] ldrh r0, [r4, 0x4] strh r0, [r5, 0x32] ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] b _080DD484 .align 2, 0 _080DD41C: .4byte 0x0000ffc0 _080DD420: .4byte gUnknown_03004B00 _080DD424: .4byte gUnknown_083DAD10 _080DD428: ldrh r1, [r5, 0x30] ldrh r3, [r5, 0x34] adds r1, r3 ldrh r2, [r5, 0x32] ldrh r0, [r5, 0x36] adds r2, r0 lsls r0, r1, 16 asrs r0, 24 ldrh r3, [r5, 0x24] adds r0, r3 strh r0, [r5, 0x24] lsls r0, r2, 16 asrs r0, 24 ldrh r3, [r5, 0x26] adds r0, r3 strh r0, [r5, 0x26] movs r0, 0xFF ands r1, r0 strh r1, [r5, 0x34] ands r2, r0 strh r2, [r5, 0x36] movs r1, 0x38 ldrsh r0, [r5, r1] cmp r0, 0 bne _080DD46E movs r2, 0x20 ldrsh r0, [r5, r2] movs r3, 0x24 ldrsh r1, [r5, r3] adds r0, r1 movs r1, 0x88 lsls r1, 1 cmp r0, r1 ble _080DD484 b _080DD480 _080DD46E: movs r1, 0x20 ldrsh r0, [r5, r1] movs r2, 0x24 ldrsh r1, [r5, r2] adds r0, r1 movs r1, 0x20 negs r1, r1 cmp r0, r1 bge _080DD484 _080DD480: ldr r0, _080DD48C @ =move_anim_8072740 str r0, [r5, 0x1C] _080DD484: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DD48C: .4byte move_anim_8072740 thumb_func_end sub_80DD3AC thumb_func_start sub_80DD490 sub_80DD490: @ 80DD490 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080DD4C8 @ =gUnknown_03004B00 ldrb r1, [r5, 0x8] bl StartSpriteAnim adds r0, r4, 0 movs r1, 0 bl sub_80787B0 ldrh r0, [r5, 0x6] strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x32] ldrh r0, [r5, 0x4] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x36] ldr r0, _080DD4CC @ =sub_8078B34 str r0, [r4, 0x1C] ldr r1, _080DD4D0 @ =move_anim_8072740 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DD4C8: .4byte gUnknown_03004B00 _080DD4CC: .4byte sub_8078B34 _080DD4D0: .4byte move_anim_8072740 thumb_func_end sub_80DD490 thumb_func_start sub_80DD4D4 sub_80DD4D4: @ 80DD4D4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080DD554 @ =gTasks adds r6, r1, r0 ldr r5, _080DD558 @ =gUnknown_0202F7C8 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 mov r9, r0 ldrb r0, [r5] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 8 movs r1, 0xC0 lsls r1, 13 adds r0, r1 lsrs r7, r0, 16 ldr r4, _080DD55C @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 mov r10, r0 ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 8 movs r2, 0xC0 lsls r2, 13 adds r0, r2 lsrs r0, 16 mov r8, r0 ldrb r1, [r5] movs r0, 0x2 eors r0, r1 ldrb r4, [r4] cmp r0, r4 bne _080DD544 mov r8, r7 _080DD544: bl sub_80DD8BC lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x1 bne _080DD560 movs r0, 0x20 b _080DD566 .align 2, 0 _080DD554: .4byte gTasks _080DD558: .4byte gUnknown_0202F7C8 _080DD55C: .4byte gUnknown_0202F7C9 _080DD560: lsls r1, r5, 3 movs r0, 0x30 subs r0, r1 _080DD566: strh r0, [r6, 0x18] movs r4, 0 strh r4, [r6, 0x8] strh r4, [r6, 0x1E] strh r4, [r6, 0x1A] movs r0, 0x1 strh r0, [r6, 0x20] movs r1, 0x18 ldrsh r0, [r6, r1] cmp r0, 0 bge _080DD57E adds r0, 0x7 _080DD57E: asrs r0, 3 subs r0, 0x1 strh r0, [r6, 0x1C] mov r2, r9 lsls r0, r2, 3 strh r0, [r6, 0xC] lsls r0, r7, 3 strh r0, [r6, 0xE] mov r1, r10 subs r0, r1, r2 lsls r0, 3 movs r2, 0x18 ldrsh r1, [r6, r2] bl __divsi3 strh r0, [r6, 0x10] mov r1, r8 subs r0, r1, r7 lsls r0, 3 movs r2, 0x18 ldrsh r1, [r6, r2] bl __divsi3 strh r0, [r6, 0x12] strh r4, [r6, 0x14] strh r4, [r6, 0x16] movs r0, 0x40 negs r0, r0 bl sub_8076F98 adds r4, r0, 0 lsls r4, 24 asrs r4, 8 lsrs r4, 16 movs r0, 0x3F bl sub_8076F98 lsls r0, 24 strh r4, [r6, 0x22] asrs r0, 24 lsls r4, 16 asrs r4, 16 subs r0, r4 movs r2, 0x18 ldrsh r1, [r6, r2] bl __divsi3 strh r0, [r6, 0x24] strh r5, [r6, 0xA] movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x26] ldr r0, _080DD600 @ =sub_80DD604 str r0, [r6] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DD600: .4byte sub_80DD604 thumb_func_end sub_80DD4D4 thumb_func_start sub_80DD604 sub_80DD604: @ 80DD604 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080DD628 @ =gTasks adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x4 bls _080DD61E b _080DD76C _080DD61E: lsls r0, 2 ldr r1, _080DD62C @ =_080DD630 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080DD628: .4byte gTasks _080DD62C: .4byte _080DD630 .align 2, 0 _080DD630: .4byte _080DD644 .4byte _080DD6A8 .4byte _080DD6B0 .4byte _080DD70C .4byte _080DD75E _080DD644: ldrh r2, [r4, 0x14] ldrh r0, [r4, 0x10] subs r2, r0 strh r2, [r4, 0x14] ldrh r0, [r4, 0x16] ldrh r1, [r4, 0x12] subs r0, r1 strh r0, [r4, 0x16] ldr r3, _080DD6A4 @ =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 lsls r2, 16 asrs r2, 19 strh r2, [r0, 0x24] movs r1, 0x26 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrh r0, [r4, 0x16] lsls r0, 16 asrs r0, 19 strh r0, [r1, 0x26] ldrh r0, [r4, 0x1A] adds r0, 0x1 strh r0, [r4, 0x1A] lsls r0, 16 asrs r0, 16 cmp r0, 0xA bne _080DD694 movs r0, 0x14 strh r0, [r4, 0x1E] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080DD694: ldrh r1, [r4, 0x22] lsls r1, 24 asrs r1, 24 movs r0, 0xA2 bl PlaySE12WithPanning b _080DD76C .align 2, 0 _080DD6A4: .4byte gSprites _080DD6A8: ldrh r0, [r4, 0x1E] subs r0, 0x1 strh r0, [r4, 0x1E] b _080DD750 _080DD6B0: ldrh r0, [r4, 0x1A] subs r0, 0x1 strh r0, [r4, 0x1A] lsls r0, 16 asrs r0, 16 cmp r0, 0 beq _080DD6D0 ldrh r0, [r4, 0x10] ldrh r2, [r4, 0x14] adds r0, r2 strh r0, [r4, 0x14] ldrh r0, [r4, 0x12] ldrh r1, [r4, 0x16] adds r0, r1 strh r0, [r4, 0x16] b _080DD6DA _080DD6D0: strh r0, [r4, 0x14] strh r0, [r4, 0x16] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080DD6DA: ldr r2, _080DD708 @ =gSprites movs r1, 0x26 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrh r0, [r4, 0x14] lsls r0, 16 asrs r0, 19 strh r0, [r1, 0x24] movs r1, 0x26 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrh r0, [r4, 0x16] lsls r0, 16 asrs r0, 19 strh r0, [r1, 0x26] b _080DD76C .align 2, 0 _080DD708: .4byte gSprites _080DD70C: ldrh r0, [r4, 0x10] ldrh r2, [r4, 0xC] adds r0, r2 strh r0, [r4, 0xC] ldrh r0, [r4, 0x12] ldrh r1, [r4, 0xE] adds r0, r1 strh r0, [r4, 0xE] ldrh r0, [r4, 0x1A] adds r0, 0x1 strh r0, [r4, 0x1A] lsls r0, 16 asrs r0, 16 movs r2, 0x1C ldrsh r1, [r4, r2] cmp r0, r1 blt _080DD74A movs r0, 0 strh r0, [r4, 0x1A] adds r0, r4, 0 bl sub_80DD774 ldrh r1, [r4, 0x24] ldrh r0, [r4, 0x22] adds r1, r0 strh r1, [r4, 0x22] lsls r1, 24 asrs r1, 24 movs r0, 0xAF bl PlaySE12WithPanning _080DD74A: ldrh r0, [r4, 0x18] subs r0, 0x1 strh r0, [r4, 0x18] _080DD750: lsls r0, 16 cmp r0, 0 bne _080DD76C ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080DD76C _080DD75E: movs r1, 0x1E ldrsh r0, [r4, r1] cmp r0, 0 bne _080DD76C adds r0, r2, 0 bl move_anim_task_del _080DD76C: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DD604 thumb_func_start sub_80DD774 sub_80DD774: @ 80DD774 push {r4-r7,lr} adds r4, r0, 0 ldrh r0, [r4, 0xA] subs r0, 0x1 lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bhi _080DD864 lsls r0, 2 ldr r1, _080DD790 @ =_080DD794 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080DD790: .4byte _080DD794 .align 2, 0 _080DD794: .4byte _080DD7A8 .4byte _080DD7B4 .4byte _080DD7B4 .4byte _080DD7C0 .4byte _080DD7CC _080DD7A8: ldr r3, _080DD7B0 @ =gSpriteTemplate_83DAD78 movs r5, 0 b _080DD7D0 .align 2, 0 _080DD7B0: .4byte gSpriteTemplate_83DAD78 _080DD7B4: ldr r3, _080DD7BC @ =gSpriteTemplate_83DAD90 movs r5, 0x50 b _080DD7D0 .align 2, 0 _080DD7BC: .4byte gSpriteTemplate_83DAD90 _080DD7C0: ldr r3, _080DD7C8 @ =gSpriteTemplate_83DAD90 movs r5, 0x40 b _080DD7D0 .align 2, 0 _080DD7C8: .4byte gSpriteTemplate_83DAD90 _080DD7CC: ldr r3, _080DD86C @ =gSpriteTemplate_83DAD90 movs r5, 0x30 _080DD7D0: ldrh r1, [r4, 0xC] lsls r1, 16 asrs r1, 19 lsls r1, 16 lsrs r1, 16 ldrh r2, [r4, 0xE] lsls r2, 16 asrs r2, 19 lsls r2, 16 movs r6, 0x20 ldrsh r0, [r4, r6] lsls r0, 2 adds r1, r0 lsls r1, 16 lsrs r6, r1, 16 asrs r1, 16 lsrs r7, r2, 16 asrs r2, 16 adds r0, r3, 0 movs r3, 0x23 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _080DD85C ldr r1, _080DD870 @ =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 movs r1, 0x12 strh r1, [r0, 0x2E] movs r2, 0x20 ldrsh r1, [r4, r2] lsls r2, r1, 2 adds r2, r1 lsls r2, 2 adds r2, r6, r2 movs r6, 0xA ldrsh r3, [r4, r6] lsls r1, r3, 1 adds r1, r3 adds r2, r1 strh r2, [r0, 0x32] strh r7, [r0, 0x36] movs r1, 0xA ldrsh r2, [r4, r1] lsls r2, 1 movs r3, 0x10 negs r3, r3 adds r1, r3, 0 subs r1, r2 strh r1, [r0, 0x38] ldrh r3, [r0, 0x4] lsls r2, r3, 22 lsrs r2, 22 adds r2, r5 ldr r5, _080DD874 @ =0x000003ff adds r1, r5, 0 ands r2, r1 ldr r1, _080DD878 @ =0xfffffc00 ands r1, r3 orrs r1, r2 strh r1, [r0, 0x4] bl sub_80786EC ldrh r0, [r4, 0x1E] adds r0, 0x1 strh r0, [r4, 0x1E] _080DD85C: movs r6, 0x20 ldrsh r0, [r4, r6] negs r0, r0 strh r0, [r4, 0x20] _080DD864: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DD86C: .4byte gSpriteTemplate_83DAD90 _080DD870: .4byte gSprites _080DD874: .4byte 0x000003ff _080DD878: .4byte 0xfffffc00 thumb_func_end sub_80DD774 thumb_func_start sub_80DD87C sub_80DD87C: @ 80DD87C push {r4,lr} adds r4, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080DD8AE ldr r0, _080DD8B4 @ =sub_80DD604 bl FindTaskIdByFunc lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xFF beq _080DD8A8 ldr r0, _080DD8B8 @ =gTasks lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x1E] subs r0, 0x1 strh r0, [r1, 0x1E] _080DD8A8: adds r0, r4, 0 bl DestroySprite _080DD8AE: pop {r4} pop {r0} bx r0 .align 2, 0 _080DD8B4: .4byte sub_80DD604 _080DD8B8: .4byte gTasks thumb_func_end sub_80DD87C thumb_func_start sub_80DD8BC sub_80DD8BC: @ 80DD8BC push {lr} ldr r0, _080DD8E4 @ =gUnknown_0202F7B4 ldr r0, [r0] ldrb r1, [r0, 0x11] lsrs r0, r1, 4 lsls r1, 28 lsrs r1, 28 subs r0, r1 lsls r0, 24 lsrs r1, r0, 24 movs r2, 0xFF lsls r2, 24 adds r0, r2 lsrs r0, 24 cmp r0, 0x4 bls _080DD8DE movs r1, 0x1 _080DD8DE: adds r0, r1, 0 pop {r1} bx r1 .align 2, 0 _080DD8E4: .4byte gUnknown_0202F7B4 thumb_func_end sub_80DD8BC thumb_func_start sub_80DD8E8 sub_80DD8E8: @ 80DD8E8 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080DD920 @ =gUnknown_03004B00 ldrb r1, [r5, 0x8] bl StartSpriteAnim ldrh r0, [r5] strh r0, [r4, 0x24] ldrh r0, [r5, 0x2] strh r0, [r4, 0x32] ldrh r0, [r4, 0x34] ldrh r1, [r5, 0x4] subs r0, r1 strh r0, [r4, 0x34] movs r0, 0x3 strh r0, [r4, 0x2E] ldrh r0, [r5, 0x6] strh r0, [r4, 0x30] ldr r0, _080DD924 @ =sub_80DD928 str r0, [r4, 0x1C] adds r4, 0x3E ldrb r0, [r4] movs r1, 0x4 orrs r0, r1 strb r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DD920: .4byte gUnknown_03004B00 _080DD924: .4byte sub_80DD928 thumb_func_end sub_80DD8E8 thumb_func_start sub_80DD928 sub_80DD928: @ 80DD928 push {lr} adds r2, r0, 0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x5 negs r1, r1 ands r1, r0 strb r1, [r3] ldrh r1, [r2, 0x34] movs r3, 0x34 ldrsh r0, [r2, r3] cmp r0, 0 beq _080DD960 ldrh r3, [r2, 0x32] adds r0, r1, r3 strh r0, [r2, 0x26] ldrh r0, [r2, 0x2E] adds r1, r0 strh r1, [r2, 0x34] adds r0, 0x1 strh r0, [r2, 0x2E] lsls r1, 16 cmp r1, 0 ble _080DD972 movs r0, 0 strh r0, [r2, 0x34] b _080DD972 _080DD960: ldrh r0, [r2, 0x30] subs r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 cmp r0, 0 bne _080DD972 adds r0, r2, 0 bl move_anim_8072740 _080DD972: pop {r0} bx r0 thumb_func_end sub_80DD928 thumb_func_start sub_80DD978 sub_80DD978: @ 80DD978 push {r4,lr} adds r4, r0, 0 ldr r0, _080DD9A0 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080DD994 adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim _080DD994: adds r0, r4, 0 bl sub_807941C pop {r4} pop {r0} bx r0 .align 2, 0 _080DD9A0: .4byte gUnknown_0202F7C8 thumb_func_end sub_80DD978 thumb_func_start sub_80DD9A4 sub_80DD9A4: @ 80DD9A4 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080DD9F0 @ =gUnknown_0202F7C9 ldrb r0, [r5] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldr r2, _080DD9F4 @ =gUnknown_03004B00 ldrh r3, [r2] ldrh r5, [r4, 0x20] adds r1, r3, r5 strh r1, [r4, 0x20] ldrh r1, [r2, 0x2] adds r0, r1 strh r0, [r4, 0x22] strh r3, [r4, 0x30] strh r1, [r4, 0x32] ldrh r0, [r2, 0x4] strh r0, [r4, 0x38] ldrb r1, [r2, 0x6] adds r0, r4, 0 bl StartSpriteAnim ldr r0, _080DD9F8 @ =sub_80DD9FC str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DD9F0: .4byte gUnknown_0202F7C9 _080DD9F4: .4byte gUnknown_03004B00 _080DD9F8: .4byte sub_80DD9FC thumb_func_end sub_80DD9A4 thumb_func_start sub_80DD9FC sub_80DD9FC: @ 80DD9FC push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x8 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x30] ldrh r1, [r4, 0x34] adds r0, r1 strh r0, [r4, 0x34] ldrh r0, [r4, 0x32] ldrh r2, [r4, 0x36] adds r0, r2 strh r0, [r4, 0x36] movs r1, 0x34 ldrsh r0, [r4, r1] movs r1, 0x28 bl __divsi3 ldrh r1, [r4, 0x24] adds r1, r0 strh r1, [r4, 0x24] movs r2, 0x2E ldrsh r0, [r4, r2] movs r2, 0x38 ldrsh r1, [r4, r2] bl Sin ldrh r1, [r4, 0x26] subs r1, r0 strh r1, [r4, 0x26] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x8C ble _080DDA46 adds r0, r4, 0 bl move_anim_8072740 _080DDA46: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DD9FC thumb_func_start sub_80DDA4C sub_80DDA4C: @ 80DDA4C push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r2, _080DDA84 @ =gUnknown_0202F7B8 ldr r0, [r2] cmp r0, 0x20 bgt _080DDA60 ldr r1, _080DDA88 @ =gUnknown_03004B00 movs r0, 0 strh r0, [r1, 0xE] _080DDA60: ldr r2, [r2] adds r0, r2, 0 subs r0, 0x21 cmp r0, 0x20 bhi _080DDA70 ldr r1, _080DDA88 @ =gUnknown_03004B00 movs r0, 0x1 strh r0, [r1, 0xE] _080DDA70: cmp r2, 0x41 ble _080DDA7A ldr r1, _080DDA88 @ =gUnknown_03004B00 movs r0, 0x2 strh r0, [r1, 0xE] _080DDA7A: adds r0, r3, 0 bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _080DDA84: .4byte gUnknown_0202F7B8 _080DDA88: .4byte gUnknown_03004B00 thumb_func_end sub_80DDA4C thumb_func_start sub_80DDA8C sub_80DDA8C: @ 80DDA8C push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r1, _080DDAE8 @ =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r5, r0, r1 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0 bne _080DDAAE movs r0, 0 bl sub_80789D4 movs r0, 0xC8 strh r0, [r5, 0xA] _080DDAAE: ldr r4, _080DDAEC @ =gUnknown_030041B8 movs r1, 0xA ldrsh r0, [r5, r1] movs r1, 0xA bl __divsi3 ldrh r1, [r4] adds r1, r0 strh r1, [r4] ldrh r0, [r5, 0xA] subs r0, 0x3 strh r0, [r5, 0xA] movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0x78 bne _080DDADA movs r0, 0x1 bl sub_80789D4 adds r0, r6, 0 bl move_anim_task_del _080DDADA: ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DDAE8: .4byte gTasks _080DDAEC: .4byte gUnknown_030041B8 thumb_func_end sub_80DDA8C thumb_func_start sub_80DDAF0 sub_80DDAF0: @ 80DDAF0 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r1, _080DDB5C @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 bne _080DDB1C movs r0, 0 bl sub_80789D4 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] ldr r0, _080DDB60 @ =gUnknown_030041B8 ldrh r0, [r0] strh r0, [r4, 0xC] _080DDB1C: ldrh r0, [r4, 0xA] adds r0, 0x50 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0xA] ldr r6, _080DDB60 @ =gUnknown_030041B8 movs r2, 0xA ldrsh r1, [r4, r2] movs r0, 0x4 bl Cos ldrh r4, [r4, 0xC] adds r0, r4 strh r0, [r6] ldr r0, _080DDB64 @ =gUnknown_03004B00 movs r2, 0xE ldrsh r1, [r0, r2] ldr r0, _080DDB68 @ =0x00000fff cmp r1, r0 bne _080DDB54 movs r0, 0 strh r0, [r6] movs r0, 0x1 bl sub_80789D4 adds r0, r5, 0 bl move_anim_task_del _080DDB54: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DDB5C: .4byte gTasks _080DDB60: .4byte gUnknown_030041B8 _080DDB64: .4byte gUnknown_03004B00 _080DDB68: .4byte 0x00000fff thumb_func_end sub_80DDAF0 thumb_func_start sub_80DDB6C sub_80DDB6C: @ 80DDB6C push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r0, _080DDBC8 @ =gUnknown_03004B00 ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] ldr r5, _080DDBCC @ =gUnknown_0202F7C9 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrh r0, [r4, 0x22] strh r0, [r4, 0x34] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] adds r0, r4, 0 bl sub_8078BD4 ldr r0, _080DDBD0 @ =sub_80DDBD8 str r0, [r4, 0x1C] movs r0, 0x10 strh r0, [r4, 0x3A] ldr r1, _080DDBD4 @ =REG_BLDCNT movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldrh r0, [r4, 0x3A] strh r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DDBC8: .4byte gUnknown_03004B00 _080DDBCC: .4byte gUnknown_0202F7C9 _080DDBD0: .4byte sub_80DDBD8 _080DDBD4: .4byte REG_BLDCNT thumb_func_end sub_80DDB6C thumb_func_start sub_80DDBD8 sub_80DDBD8: @ 80DDBD8 push {r4,lr} adds r4, r0, 0 bl sub_80DDCC8 adds r0, r4, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 beq _080DDBF8 ldr r0, _080DDBF4 @ =sub_80DDC4C str r0, [r4, 0x1C] b _080DDC42 .align 2, 0 _080DDBF4: .4byte sub_80DDC4C _080DDBF8: movs r1, 0x38 ldrsh r0, [r4, r1] movs r1, 0xA bl Sin ldrh r1, [r4, 0x24] adds r0, r1 strh r0, [r4, 0x24] movs r1, 0x38 ldrsh r0, [r4, r1] movs r1, 0xF bl Cos ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] ldrh r2, [r4, 0x38] adds r0, r2, 0x5 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] ldrh r0, [r4, 0x38] lsls r2, 16 asrs r2, 16 cmp r2, 0 beq _080DDC30 cmp r2, 0xC4 ble _080DDC42 _080DDC30: lsls r0, 16 cmp r0, 0 ble _080DDC42 ldr r0, _080DDC48 @ =gUnknown_0202F7D2 movs r1, 0 ldrsb r1, [r0, r1] movs r0, 0xC4 bl PlaySE12WithPanning _080DDC42: pop {r4} pop {r0} bx r0 .align 2, 0 _080DDC48: .4byte gUnknown_0202F7D2 thumb_func_end sub_80DDBD8 thumb_func_start sub_80DDC4C sub_80DDC4C: @ 80DDC4C push {r4,lr} adds r4, r0, 0 movs r0, 0x1 strh r0, [r4, 0x2E] adds r0, r4, 0 bl sub_8078B5C movs r1, 0x38 ldrsh r0, [r4, r1] movs r1, 0xA bl Sin ldrh r1, [r4, 0x24] adds r0, r1 strh r0, [r4, 0x24] movs r1, 0x38 ldrsh r0, [r4, r1] movs r1, 0xF bl Cos ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] ldrh r2, [r4, 0x38] adds r0, r2, 0x5 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] ldrh r0, [r4, 0x38] lsls r2, 16 asrs r2, 16 cmp r2, 0 beq _080DDC92 cmp r2, 0xC4 ble _080DDC9E _080DDC92: lsls r0, 16 cmp r0, 0 ble _080DDC9E movs r0, 0xC4 bl PlaySE _080DDC9E: movs r1, 0x3A ldrsh r0, [r4, r1] cmp r0, 0 bne _080DDCBC adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _080DDCB8 @ =sub_807861C str r0, [r4, 0x1C] b _080DDCC2 .align 2, 0 _080DDCB8: .4byte sub_807861C _080DDCBC: adds r0, r4, 0 bl sub_80DDCC8 _080DDCC2: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DDC4C thumb_func_start sub_80DDCC8 sub_80DDCC8: @ 80DDCC8 push {r4,lr} adds r3, r0, 0 ldrh r2, [r3, 0x3A] movs r1, 0x3A ldrsh r0, [r3, r1] cmp r0, 0xFF ble _080DDCEC adds r0, r2, 0x1 strh r0, [r3, 0x3A] lsls r0, 16 ldr r1, _080DDCE8 @ =0x010d0000 cmp r0, r1 bne _080DDD4C movs r0, 0 b _080DDD4A .align 2, 0 _080DDCE8: .4byte 0x010d0000 _080DDCEC: ldrh r1, [r3, 0x3C] adds r4, r1, 0x1 strh r4, [r3, 0x3C] movs r0, 0xFF ands r0, r1 cmp r0, 0 bne _080DDD4C ldr r1, _080DDD10 @ =0xffffff00 ands r1, r4 strh r1, [r3, 0x3C] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _080DDD14 adds r0, r2, 0x1 b _080DDD16 .align 2, 0 _080DDD10: .4byte 0xffffff00 _080DDD14: subs r0, r2, 0x1 _080DDD16: strh r0, [r3, 0x3A] ldr r2, _080DDD54 @ =REG_BLDALPHA ldrh r1, [r3, 0x3A] movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r0, r1 strh r0, [r2] movs r2, 0x3A ldrsh r0, [r3, r2] cmp r0, 0 beq _080DDD32 cmp r0, 0x10 bne _080DDD3E _080DDD32: ldrh r0, [r3, 0x3C] movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 eors r0, r1 strh r0, [r3, 0x3C] _080DDD3E: movs r1, 0x3A ldrsh r0, [r3, r1] cmp r0, 0 bne _080DDD4C movs r0, 0x80 lsls r0, 1 _080DDD4A: strh r0, [r3, 0x3A] _080DDD4C: pop {r4} pop {r0} bx r0 .align 2, 0 _080DDD54: .4byte REG_BLDALPHA thumb_func_end sub_80DDCC8 thumb_func_start sub_80DDD58 sub_80DDD58: @ 80DDD58 push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_8078764 ldr r1, _080DDD74 @ =sub_80DDD78 str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4} pop {r0} bx r0 .align 2, 0 _080DDD74: .4byte sub_80DDD78 thumb_func_end sub_80DDD58 thumb_func_start sub_80DDD78 sub_80DDD78: @ 80DDD78 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] movs r1, 0x20 bl Sin strh r0, [r4, 0x24] movs r1, 0x2E ldrsh r0, [r4, r1] movs r1, 0x8 bl Cos strh r0, [r4, 0x26] ldrh r0, [r4, 0x2E] subs r0, 0x41 lsls r0, 16 lsrs r0, 16 cmp r0, 0x82 bhi _080DDDAC ldrb r0, [r4, 0x5] movs r1, 0xD negs r1, r1 ands r1, r0 movs r0, 0x8 b _080DDDB6 _080DDDAC: ldrb r0, [r4, 0x5] movs r1, 0xD negs r1, r1 ands r1, r0 movs r0, 0x4 _080DDDB6: orrs r1, r0 strb r1, [r4, 0x5] ldrh r0, [r4, 0x2E] adds r0, 0x13 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x32] adds r0, 0x50 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 24 ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] lsls r0, 16 asrs r0, 16 cmp r0, 0x3D bne _080DDDE8 adds r0, r4, 0 bl move_anim_8072740 _080DDDE8: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DDD78 thumb_func_start sub_80DDDF0 sub_80DDDF0: @ 80DDDF0 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r1, _080DDE68 @ =REG_BLDCNT movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r2, 0x80 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] movs r0, 0 bl obj_id_for_side_relative_to_move adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 movs r1, 0x1 bl sub_8078E70 adds r0, r4, 0 movs r1, 0x80 movs r2, 0x80 movs r3, 0 bl obj_id_set_rotscale ldr r1, _080DDE6C @ =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r0, r1 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] ldr r1, _080DDE70 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r2, 0 movs r1, 0x80 strh r1, [r0, 0x8] ldr r1, _080DDE74 @ =gUnknown_03004B00 ldrh r1, [r1] strh r1, [r0, 0xA] strh r2, [r0, 0xC] movs r1, 0x10 strh r1, [r0, 0xE] ldr r1, _080DDE78 @ =sub_80DDE7C str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DDE68: .4byte REG_BLDCNT _080DDE6C: .4byte gSprites _080DDE70: .4byte gTasks _080DDE74: .4byte gUnknown_03004B00 _080DDE78: .4byte sub_80DDE7C thumb_func_end sub_80DDDF0 thumb_func_start sub_80DDE7C sub_80DDE7C: @ 80DDE7C push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080DDEC4 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r3, r1, r2 ldrh r0, [r3, 0x1C] adds r0, 0x1 strh r0, [r3, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 bne _080DDEBE movs r0, 0 strh r0, [r3, 0x1C] ldrh r1, [r3, 0xC] adds r1, 0x1 strh r1, [r3, 0xC] ldrh r0, [r3, 0xE] subs r0, 0x1 strh r0, [r3, 0xE] ldr r2, _080DDEC8 @ =REG_BLDALPHA lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r1, 0xC ldrsh r0, [r3, r1] cmp r0, 0x9 bne _080DDEBE ldr r0, _080DDECC @ =sub_80DDED0 str r0, [r3] _080DDEBE: pop {r0} bx r0 .align 2, 0 _080DDEC4: .4byte gTasks _080DDEC8: .4byte REG_BLDALPHA _080DDECC: .4byte sub_80DDED0 thumb_func_end sub_80DDE7C thumb_func_start sub_80DDED0 sub_80DDED0: @ 80DDED0 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r1, _080DDEF4 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r1, [r4, 0xA] movs r2, 0xA ldrsh r0, [r4, r2] cmp r0, 0 ble _080DDEF8 subs r0, r1, 0x1 strh r0, [r4, 0xA] b _080DDF36 .align 2, 0 _080DDEF4: .4byte gTasks _080DDEF8: movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r1, r0, 24 ldrh r0, [r4, 0x8] adds r0, 0x8 movs r6, 0 strh r0, [r4, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0xFF bgt _080DDF22 movs r0, 0x8 ldrsh r2, [r4, r0] adds r0, r1, 0 adds r1, r2, 0 movs r3, 0 bl obj_id_set_rotscale b _080DDF36 _080DDF22: adds r0, r1, 0 bl sub_8078F40 adds r0, r5, 0 bl move_anim_task_del ldr r0, _080DDF3C @ =REG_BLDCNT strh r6, [r0] adds r0, 0x2 strh r6, [r0] _080DDF36: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DDF3C: .4byte REG_BLDCNT thumb_func_end sub_80DDED0 thumb_func_start sub_80DDF40 sub_80DDF40: @ 80DDF40 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r4, r0, 0 ldrh r5, [r4, 0x20] ldrh r6, [r4, 0x22] ldr r0, _080DDFDC @ =gUnknown_0202F7C8 mov r8, r0 ldrb r0, [r0] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 movs r1, 0 mov r9, r1 strh r0, [r4, 0x20] mov r1, r8 ldrb r0, [r1] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] mov r1, r9 strh r1, [r4, 0x2E] ldr r2, _080DDFE0 @ =gUnknown_03004B00 ldrh r1, [r2] strh r1, [r4, 0x30] ldrh r1, [r2, 0x2] strh r1, [r4, 0x32] ldrh r1, [r2, 0x4] strh r1, [r4, 0x34] ldrh r1, [r4, 0x20] lsls r1, 4 strh r1, [r4, 0x36] lsls r0, 4 strh r0, [r4, 0x38] lsls r5, 16 asrs r5, 16 movs r1, 0x20 ldrsh r0, [r4, r1] subs r5, r0 lsls r5, 4 movs r0, 0 ldrsh r1, [r2, r0] lsls r1, 1 adds r0, r5, 0 str r2, [sp] bl __divsi3 strh r0, [r4, 0x3A] lsls r6, 16 asrs r6, 16 movs r1, 0x22 ldrsh r0, [r4, r1] subs r6, r0 lsls r6, 4 ldr r2, [sp] movs r0, 0 ldrsh r1, [r2, r0] lsls r1, 1 adds r0, r6, 0 bl __divsi3 strh r0, [r4, 0x3C] ldr r0, _080DDFE4 @ =sub_80DDFE8 str r0, [r4, 0x1C] add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DDFDC: .4byte gUnknown_0202F7C8 _080DDFE0: .4byte gUnknown_03004B00 _080DDFE4: .4byte sub_80DDFE8 thumb_func_end sub_80DDF40 thumb_func_start sub_80DDFE8 sub_80DDFE8: @ 80DDFE8 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0x1 beq _080DE032 cmp r0, 0x1 bgt _080DDFFE cmp r0, 0 beq _080DE008 b _080DE0F6 _080DDFFE: cmp r0, 0x2 beq _080DE09C cmp r0, 0x3 beq _080DE0F0 b _080DE0F6 _080DE008: ldrh r0, [r5, 0x3A] ldrh r2, [r5, 0x36] adds r0, r2 strh r0, [r5, 0x36] ldrh r1, [r5, 0x3C] ldrh r2, [r5, 0x38] adds r1, r2 strh r1, [r5, 0x38] lsls r0, 16 asrs r0, 20 strh r0, [r5, 0x20] lsls r1, 16 asrs r1, 20 strh r1, [r5, 0x22] ldrh r0, [r5, 0x30] subs r0, 0x1 strh r0, [r5, 0x30] lsls r0, 16 cmp r0, 0 bgt _080DE0F6 b _080DE0E2 _080DE032: ldrh r0, [r5, 0x32] subs r0, 0x1 strh r0, [r5, 0x32] lsls r0, 16 cmp r0, 0 bgt _080DE0F6 ldr r4, _080DE098 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x30] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrh r0, [r5, 0x20] lsls r0, 4 strh r0, [r5, 0x36] ldrh r0, [r5, 0x22] lsls r0, 4 strh r0, [r5, 0x38] movs r1, 0x30 ldrsh r0, [r5, r1] movs r2, 0x20 ldrsh r1, [r5, r2] subs r0, r1 lsls r0, 4 movs r2, 0x34 ldrsh r1, [r5, r2] bl __divsi3 strh r0, [r5, 0x3A] movs r1, 0x32 ldrsh r0, [r5, r1] movs r2, 0x22 ldrsh r1, [r5, r2] subs r0, r1 lsls r0, 4 movs r2, 0x34 ldrsh r1, [r5, r2] bl __divsi3 strh r0, [r5, 0x3C] b _080DE0E2 .align 2, 0 _080DE098: .4byte gUnknown_0202F7C9 _080DE09C: ldrh r0, [r5, 0x3A] ldrh r1, [r5, 0x36] adds r0, r1 strh r0, [r5, 0x36] ldrh r1, [r5, 0x3C] ldrh r2, [r5, 0x38] adds r1, r2 strh r1, [r5, 0x38] lsls r0, 16 asrs r0, 20 strh r0, [r5, 0x20] lsls r1, 16 asrs r1, 20 strh r1, [r5, 0x22] ldrh r0, [r5, 0x34] subs r0, 0x1 strh r0, [r5, 0x34] lsls r0, 16 cmp r0, 0 bgt _080DE0F6 ldr r4, _080DE0EC @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] _080DE0E2: ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] b _080DE0F6 .align 2, 0 _080DE0EC: .4byte gUnknown_0202F7C9 _080DE0F0: adds r0, r5, 0 bl move_anim_8074EE0 _080DE0F6: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80DDFE8 thumb_func_start sub_80DE0FC sub_80DE0FC: @ 80DE0FC push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_8078764 ldr r0, _080DE110 @ =sub_80DE114 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080DE110: .4byte sub_80DE114 thumb_func_end sub_80DE0FC thumb_func_start sub_80DE114 sub_80DE114: @ 80DE114 push {r4-r6,lr} adds r3, r0, 0 movs r5, 0 movs r6, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080DE1AA adds r1, r3, 0 adds r1, 0x3E ldrb r2, [r1] movs r0, 0x4 ands r0, r2 adds r4, r1, 0 cmp r0, 0 bne _080DE13E movs r0, 0x4 orrs r0, r2 strb r0, [r4] _080DE13E: movs r1, 0x2E ldrsh r0, [r3, r1] cmp r0, 0 beq _080DE14E cmp r0, 0x1 beq _080DE158 movs r6, 0x1 b _080DE162 _080DE14E: movs r1, 0x30 ldrsh r0, [r3, r1] cmp r0, 0x2 bne _080DE162 b _080DE166 _080DE158: movs r1, 0x30 ldrsh r0, [r3, r1] cmp r0, 0x4 bne _080DE162 movs r5, 0x1 _080DE162: cmp r5, 0 beq _080DE198 _080DE166: ldrb r2, [r4] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4] ldrh r0, [r3, 0x32] adds r0, 0x1 movs r1, 0 strh r0, [r3, 0x32] strh r1, [r3, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 bne _080DE1AA strh r1, [r3, 0x32] ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] b _080DE1AA _080DE198: cmp r6, 0 beq _080DE1A4 adds r0, r3, 0 bl move_anim_8072740 b _080DE1AA _080DE1A4: ldrh r0, [r3, 0x30] adds r0, 0x1 strh r0, [r3, 0x30] _080DE1AA: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80DE114 thumb_func_start sub_80DE1B0 sub_80DE1B0: @ 80DE1B0 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080DE1DC @ =gTasks adds r5, r0, r1 movs r0, 0x1 bl duplicate_obj_of_side_rel2move_in_transparent_mode movs r6, 0 movs r1, 0 strh r0, [r5, 0x8] lsls r0, 16 cmp r0, 0 bge _080DE1E0 adds r0, r4, 0 bl move_anim_task_del b _080DE2C0 .align 2, 0 _080DE1DC: .4byte gTasks _080DE1E0: strh r1, [r5, 0xA] movs r0, 0xF strh r0, [r5, 0xC] movs r0, 0x2 strh r0, [r5, 0xE] strh r1, [r5, 0x10] ldr r1, _080DE244 @ =REG_BLDCNT movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] ldr r2, _080DE248 @ =REG_BLDALPHA ldrh r0, [r5, 0xE] lsls r0, 8 ldrh r1, [r5, 0xC] orrs r0, r1 strh r0, [r2] ldr r4, _080DE24C @ =gSprites movs r0, 0x8 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x50 strh r1, [r0, 0x2E] ldr r0, _080DE250 @ =gUnknown_0202F7C9 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080DE258 movs r2, 0x8 ldrsh r1, [r5, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _080DE254 @ =0x0000ff70 strh r1, [r0, 0x30] movs r0, 0x8 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x70 b _080DE276 .align 2, 0 _080DE244: .4byte REG_BLDCNT _080DE248: .4byte REG_BLDALPHA _080DE24C: .4byte gSprites _080DE250: .4byte gUnknown_0202F7C9 _080DE254: .4byte 0x0000ff70 _080DE258: movs r2, 0x8 ldrsh r1, [r5, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x90 strh r1, [r0, 0x30] movs r0, 0x8 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _080DE2C8 @ =0x0000ff90 _080DE276: strh r1, [r0, 0x32] ldr r4, _080DE2CC @ =gSprites movs r2, 0x8 ldrsh r1, [r5, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r2, 0 strh r2, [r0, 0x34] movs r0, 0x8 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 strh r2, [r0, 0x36] movs r2, 0x8 ldrsh r1, [r5, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _080DE2D0 @ =SpriteCallbackDummy bl oamt_set_x3A_32 movs r0, 0x8 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, 0x1C adds r0, r4 ldr r1, _080DE2D4 @ =sub_8078394 str r1, [r0] ldr r0, _080DE2D8 @ =sub_80DE2DC str r0, [r5] _080DE2C0: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DE2C8: .4byte 0x0000ff90 _080DE2CC: .4byte gSprites _080DE2D0: .4byte SpriteCallbackDummy _080DE2D4: .4byte sub_8078394 _080DE2D8: .4byte sub_80DE2DC thumb_func_end sub_80DE1B0 thumb_func_start sub_80DE2DC sub_80DE2DC: @ 80DE2DC push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080DE300 @ =gTasks adds r4, r0, r1 movs r1, 0x10 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080DE37C cmp r0, 0x1 bgt _080DE304 cmp r0, 0 beq _080DE30A b _080DE3A6 .align 2, 0 _080DE300: .4byte gTasks _080DE304: cmp r0, 0x2 beq _080DE3A0 b _080DE3A6 _080DE30A: ldrh r1, [r4, 0xA] adds r1, 0x1 strh r1, [r4, 0xA] movs r0, 0x3 ands r0, r1 strh r0, [r4, 0x12] cmp r0, 0x1 bne _080DE328 ldrh r1, [r4, 0xC] movs r2, 0xC ldrsh r0, [r4, r2] cmp r0, 0 ble _080DE328 subs r0, r1, 0x1 strh r0, [r4, 0xC] _080DE328: movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0x3 bne _080DE33E ldrh r1, [r4, 0xE] movs r2, 0xE ldrsh r0, [r4, r2] cmp r0, 0xF bgt _080DE33E adds r0, r1, 0x1 strh r0, [r4, 0xE] _080DE33E: ldr r2, _080DE374 @ =REG_BLDALPHA ldrh r0, [r4, 0xE] lsls r0, 8 ldrh r1, [r4, 0xC] orrs r0, r1 strh r0, [r2] ldr r1, [r4, 0xC] movs r0, 0x80 lsls r0, 13 cmp r1, r0 bne _080DE3A6 movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0x50 ble _080DE3A6 movs r2, 0x8 ldrsh r1, [r4, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080DE378 @ =gSprites adds r0, r1 bl obj_delete_but_dont_free_vram movs r0, 0x1 strh r0, [r4, 0x10] b _080DE3A6 .align 2, 0 _080DE374: .4byte REG_BLDALPHA _080DE378: .4byte gSprites _080DE37C: ldrh r0, [r4, 0x14] adds r0, 0x1 movs r1, 0 strh r0, [r4, 0x14] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080DE3A6 ldr r0, _080DE39C @ =REG_BLDCNT strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldrh r0, [r4, 0x10] adds r0, 0x1 strh r0, [r4, 0x10] b _080DE3A6 .align 2, 0 _080DE39C: .4byte REG_BLDCNT _080DE3A0: adds r0, r2, 0 bl move_anim_task_del _080DE3A6: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DE2DC thumb_func_start sub_80DE3AC sub_80DE3AC: @ 80DE3AC push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r2, _080DE3CC @ =gTasks adds r1, r2 movs r2, 0 strh r2, [r1, 0x26] ldr r2, _080DE3D0 @ =sub_80DE3D4 str r2, [r1] bl _call_via_r2 pop {r0} bx r0 .align 2, 0 _080DE3CC: .4byte gTasks _080DE3D0: .4byte sub_80DE3D4 thumb_func_end sub_80DE3AC thumb_func_start sub_80DE3D4 sub_80DE3D4: @ 80DE3D4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080DE40C @ =gTasks adds r5, r0, r1 ldr r0, _080DE410 @ =gUnknown_0202F7C9 ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r6, r0, 24 movs r1, 0x26 ldrsh r0, [r5, r1] cmp r0, 0x4 bls _080DE400 b _080DE604 _080DE400: lsls r0, 2 ldr r1, _080DE414 @ =_080DE418 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080DE40C: .4byte gTasks _080DE410: .4byte gUnknown_0202F7C9 _080DE414: .4byte _080DE418 .align 2, 0 _080DE418: .4byte _080DE42C .4byte _080DE500 .4byte _080DE544 .4byte _080DE5AC .4byte _080DE5E0 _080DE42C: ldr r7, _080DE460 @ =0x00002771 adds r0, r7, 0 bl AllocSpritePalette lsls r0, 24 lsrs r0, 24 movs r2, 0 mov r8, r2 strh r0, [r5, 0x24] cmp r0, 0xFF beq _080DE456 movs r0, 0x1 bl duplicate_obj_of_side_rel2move_in_transparent_mode strh r0, [r5, 0x8] lsls r0, 16 cmp r0, 0 bge _080DE464 adds r0, r7, 0 bl FreeSpritePaletteByTag _080DE456: adds r0, r4, 0 bl move_anim_task_del b _080DE60A .align 2, 0 _080DE460: .4byte 0x00002771 _080DE464: ldr r4, _080DE4E4 @ =gSprites movs r3, 0x8 ldrsh r0, [r5, r3] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrh r2, [r5, 0x24] lsls r2, 4 ldrb r3, [r1, 0x5] movs r0, 0xF ands r0, r3 orrs r0, r2 strb r0, [r1, 0x5] movs r1, 0x8 ldrsh r0, [r5, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r2, [r1, 0x1] movs r0, 0xD negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] movs r2, 0x8 ldrsh r1, [r5, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0, 0x5] movs r2, 0xC orrs r1, r2 strb r1, [r0, 0x5] mov r3, r8 strh r3, [r5, 0xA] strh r3, [r5, 0xC] movs r0, 0x10 strh r0, [r5, 0xE] movs r0, 0x1 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] movs r0, 0x22 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x5] lsrs r0, 4 adds r0, 0x10 lsls r0, 4 strh r0, [r5, 0x10] cmp r6, 0x1 bne _080DE4EC movs r2, 0x80 lsls r2, 19 ldrh r1, [r2] ldr r0, _080DE4E8 @ =0x0000fdff b _080DE4F4 .align 2, 0 _080DE4E4: .4byte gSprites _080DE4E8: .4byte 0x0000fdff _080DE4EC: movs r2, 0x80 lsls r2, 19 ldrh r1, [r2] ldr r0, _080DE4FC @ =0x0000fbff _080DE4F4: ands r0, r1 strh r0, [r2] b _080DE604 .align 2, 0 _080DE4FC: .4byte 0x0000fbff _080DE500: movs r1, 0x24 ldrsh r0, [r5, r1] adds r0, 0x10 lsls r0, 4 strh r0, [r5, 0x24] movs r2, 0x10 ldrsh r0, [r5, r2] lsls r0, 1 ldr r1, _080DE534 @ =gPlttBufferUnfaded adds r0, r1 movs r3, 0x24 ldrsh r1, [r5, r3] lsls r1, 1 ldr r2, _080DE538 @ =gPlttBufferFaded adds r1, r2 ldr r2, _080DE53C @ =REG_BG0CNT bl CpuSet ldrh r0, [r5, 0x10] ldr r3, _080DE540 @ =0x00003c0d movs r1, 0x10 movs r2, 0xA bl BlendPalette b _080DE604 .align 2, 0 _080DE534: .4byte gPlttBufferUnfaded _080DE538: .4byte gPlttBufferFaded _080DE53C: .4byte REG_BG0CNT _080DE540: .4byte 0x00003c0d _080DE544: ldr r2, _080DE580 @ =gSprites movs r0, 0x22 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x26] ldrh r0, [r0, 0x22] adds r1, r0 subs r1, 0x20 lsls r1, 16 lsrs r2, r1, 16 cmp r1, 0 bge _080DE564 movs r2, 0 _080DE564: cmp r6, 0x1 bne _080DE584 lsls r0, r2, 24 lsrs r0, 24 adds r1, r2, 0 adds r1, 0x40 lsls r1, 24 lsrs r1, 24 movs r2, 0 str r2, [sp] movs r2, 0x4 str r2, [sp, 0x4] str r6, [sp, 0x8] b _080DE59C .align 2, 0 _080DE580: .4byte gSprites _080DE584: lsls r0, r2, 24 lsrs r0, 24 adds r1, r2, 0 adds r1, 0x40 lsls r1, 24 lsrs r1, 24 movs r2, 0 str r2, [sp] movs r2, 0x8 str r2, [sp, 0x4] movs r2, 0x1 str r2, [sp, 0x8] _080DE59C: movs r2, 0x2 movs r3, 0x6 bl sub_8089944 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x1C] b _080DE604 _080DE5AC: cmp r6, 0x1 bne _080DE5C0 ldr r1, _080DE5B8 @ =REG_BLDCNT ldr r2, _080DE5BC @ =0x00003f42 adds r0, r2, 0 b _080DE5C6 .align 2, 0 _080DE5B8: .4byte REG_BLDCNT _080DE5BC: .4byte 0x00003f42 _080DE5C0: ldr r1, _080DE5D4 @ =REG_BLDCNT ldr r3, _080DE5D8 @ =0x00003f44 adds r0, r3, 0 _080DE5C6: strh r0, [r1] ldr r1, _080DE5DC @ =REG_BLDALPHA movs r2, 0x80 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] b _080DE604 .align 2, 0 _080DE5D4: .4byte REG_BLDCNT _080DE5D8: .4byte 0x00003f44 _080DE5DC: .4byte REG_BLDALPHA _080DE5E0: cmp r6, 0x1 bne _080DE5F0 movs r0, 0x80 lsls r0, 19 ldrh r1, [r0] movs r3, 0x80 lsls r3, 2 b _080DE5FA _080DE5F0: movs r0, 0x80 lsls r0, 19 ldrh r1, [r0] movs r3, 0x80 lsls r3, 3 _080DE5FA: adds r2, r3, 0 orrs r1, r2 strh r1, [r0] ldr r0, _080DE618 @ =sub_80DE61C str r0, [r5] _080DE604: ldrh r0, [r5, 0x26] adds r0, 0x1 strh r0, [r5, 0x26] _080DE60A: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DE618: .4byte sub_80DE61C thumb_func_end sub_80DE3D4 thumb_func_start sub_80DE61C sub_80DE61C: @ 80DE61C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080DE6A0 @ =gTasks adds r4, r0, r1 ldrh r1, [r4, 0xA] adds r1, 0x1 strh r1, [r4, 0xA] movs r0, 0x1 ands r0, r1 strh r0, [r4, 0x12] cmp r0, 0 bne _080DE654 ldr r1, _080DE6A4 @ =gSineTable movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 1 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0x12 bl __divsi3 strh r0, [r4, 0xC] _080DE654: movs r2, 0x12 ldrsh r0, [r4, r2] cmp r0, 0x1 bne _080DE676 ldr r1, _080DE6A4 @ =gSineTable movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 1 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0x12 bl __divsi3 movs r1, 0x10 subs r1, r0 strh r1, [r4, 0xE] _080DE676: ldr r2, _080DE6A8 @ =REG_BLDALPHA ldrh r0, [r4, 0xE] lsls r0, 8 ldrh r1, [r4, 0xC] orrs r0, r1 strh r0, [r2] movs r2, 0xA ldrsh r0, [r4, r2] cmp r0, 0x80 bne _080DE698 movs r0, 0 strh r0, [r4, 0x26] ldr r1, _080DE6AC @ =sub_80DE6B0 str r1, [r4] adds r0, r5, 0 bl _call_via_r1 _080DE698: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DE6A0: .4byte gTasks _080DE6A4: .4byte gSineTable _080DE6A8: .4byte REG_BLDALPHA _080DE6AC: .4byte sub_80DE6B0 thumb_func_end sub_80DE61C thumb_func_start sub_80DE6B0 sub_80DE6B0: @ 80DE6B0 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080DE6E0 @ =gTasks adds r4, r0, r1 ldr r0, _080DE6E4 @ =gUnknown_0202F7C9 ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r6, r0, 24 movs r1, 0x26 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080DE72C cmp r0, 0x1 bgt _080DE6E8 cmp r0, 0 beq _080DE6EE b _080DE7AA .align 2, 0 _080DE6E0: .4byte gTasks _080DE6E4: .4byte gUnknown_0202F7C9 _080DE6E8: cmp r0, 0x2 beq _080DE740 b _080DE7AA _080DE6EE: ldr r1, _080DE710 @ =gUnknown_03004DC0 movs r0, 0x3 strb r0, [r1, 0x15] movs r0, 0x1 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x24] cmp r6, 0x1 bne _080DE718 movs r2, 0x80 lsls r2, 19 ldrh r1, [r2] ldr r0, _080DE714 @ =0x0000fdff b _080DE720 .align 2, 0 _080DE710: .4byte gUnknown_03004DC0 _080DE714: .4byte 0x0000fdff _080DE718: movs r2, 0x80 lsls r2, 19 ldrh r1, [r2] ldr r0, _080DE728 @ =0x0000fbff _080DE720: ands r0, r1 strh r0, [r2] b _080DE7AA .align 2, 0 _080DE728: .4byte 0x0000fbff _080DE72C: ldrh r0, [r4, 0x10] ldr r3, _080DE73C @ =0x00003c0d movs r1, 0x10 movs r2, 0 bl BlendPalette b _080DE7AA .align 2, 0 _080DE73C: .4byte 0x00003c0d _080DE740: ldr r3, _080DE788 @ =gSprites movs r0, 0x24 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 bl obj_delete_but_dont_free_vram ldr r0, _080DE78C @ =0x00002771 bl FreeSpritePaletteByTag ldr r0, _080DE790 @ =REG_BLDCNT movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] cmp r6, 0x1 bne _080DE794 subs r0, 0x52 ldrh r1, [r0] movs r3, 0x80 lsls r3, 2 b _080DE79E .align 2, 0 _080DE788: .4byte gSprites _080DE78C: .4byte 0x00002771 _080DE790: .4byte REG_BLDCNT _080DE794: movs r0, 0x80 lsls r0, 19 ldrh r1, [r0] movs r3, 0x80 lsls r3, 3 _080DE79E: adds r2, r3, 0 orrs r1, r2 strh r1, [r0] adds r0, r5, 0 bl move_anim_task_del _080DE7AA: ldrh r0, [r4, 0x26] adds r0, 0x1 strh r0, [r4, 0x26] pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80DE6B0 thumb_func_start sub_80DE7B8 sub_80DE7B8: @ 80DE7B8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r7, r0, 0 ldr r0, _080DE7F4 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080DE800 ldr r4, _080DE7F8 @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 8 movs r2, 0xE0 lsls r2, 13 adds r0, r2 lsrs r5, r0, 16 ldr r4, _080DE7FC @ =gUnknown_0202F7C9 b _080DE824 .align 2, 0 _080DE7F4: .4byte gUnknown_03004B00 _080DE7F8: .4byte gUnknown_0202F7C8 _080DE7FC: .4byte gUnknown_0202F7C9 _080DE800: ldr r4, _080DE8C8 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 8 movs r2, 0xE0 lsls r2, 13 adds r0, r2 lsrs r5, r0, 16 ldr r4, _080DE8CC @ =gUnknown_0202F7C8 _080DE824: ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 mov r10, r0 ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 8 movs r1, 0xE0 lsls r1, 13 adds r0, r1 lsrs r0, 16 mov r9, r0 mov r8, r5 mov r2, r9 subs r4, r2, r5 lsls r4, 16 lsrs r4, 16 lsls r0, r6, 4 strh r0, [r7, 0x2E] lsls r0, r5, 4 strh r0, [r7, 0x30] mov r1, r10 subs r0, r1, r6 lsls r0, 4 ldr r5, _080DE8D0 @ =gUnknown_03004B00 movs r2, 0x2 ldrsh r1, [r5, r2] bl __divsi3 strh r0, [r7, 0x32] lsls r4, 16 asrs r4, 12 movs r0, 0x2 ldrsh r1, [r5, r0] adds r0, r4, 0 bl __divsi3 strh r0, [r7, 0x34] ldrh r0, [r5, 0x2] strh r0, [r7, 0x36] mov r1, r10 strh r1, [r7, 0x38] mov r2, r9 strh r2, [r7, 0x3A] movs r1, 0x36 ldrsh r0, [r7, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 strh r0, [r7, 0x3C] ldrb r1, [r7, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x8 orrs r0, r1 strb r0, [r7, 0x5] strh r6, [r7, 0x20] mov r2, r8 strh r2, [r7, 0x22] ldr r0, _080DE8D4 @ =sub_80DE8D8 str r0, [r7, 0x1C] adds r2, r7, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DE8C8: .4byte gUnknown_0202F7C9 _080DE8CC: .4byte gUnknown_0202F7C8 _080DE8D0: .4byte gUnknown_03004B00 _080DE8D4: .4byte sub_80DE8D8 thumb_func_end sub_80DE7B8 thumb_func_start sub_80DE8D8 sub_80DE8D8: @ 80DE8D8 push {r4,lr} adds r2, r0, 0 ldrh r3, [r2, 0x36] movs r1, 0x36 ldrsh r0, [r2, r1] cmp r0, 0 beq _080DE910 ldrh r0, [r2, 0x32] ldrh r4, [r2, 0x2E] adds r0, r4 strh r0, [r2, 0x2E] ldrh r1, [r2, 0x34] ldrh r4, [r2, 0x30] adds r1, r4 strh r1, [r2, 0x30] lsls r0, 16 asrs r0, 20 strh r0, [r2, 0x20] lsls r1, 16 asrs r1, 20 strh r1, [r2, 0x22] subs r0, r3, 0x1 strh r0, [r2, 0x36] lsls r0, 16 asrs r0, 16 cmp r0, 0 bne _080DE910 strh r0, [r2, 0x2E] _080DE910: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DE8D8 thumb_func_start sub_80DE918 sub_80DE918: @ 80DE918 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080DEA68 @ =gTasks adds r1, r0 str r1, [sp] ldr r1, _080DEA6C @ =REG_BLDCNT movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r3, 0x80 lsls r3, 5 adds r0, r3, 0 strh r0, [r1] movs r0, 0 ldr r1, [sp] strh r0, [r1, 0x12] strh r0, [r1, 0x14] strh r0, [r1, 0x16] strh r0, [r1, 0x18] movs r0, 0x10 strh r0, [r1, 0x1A] ldr r2, _080DEA70 @ =gUnknown_03004B00 ldrh r0, [r2] strh r0, [r1, 0x1C] ldr r4, _080DEA74 @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] ldrb r0, [r4] movs r1, 0x3 bl sub_807A100 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080DE988 b _080DEA88 _080DE988: movs r4, 0 _080DE98A: lsls r1, r4, 16 asrs r3, r1, 16 ldr r0, _080DEA74 @ =gUnknown_0202F7C8 ldrb r2, [r0] str r1, [sp, 0x10] cmp r3, r2 beq _080DEA56 movs r0, 0x2 eors r2, r0 cmp r3, r2 beq _080DEA56 lsls r0, r4, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080DEA56 ldr r6, [sp, 0x4] ldr r3, [sp, 0x8] lsls r0, r3, 16 asrs r7, r0, 16 ldr r0, _080DEA78 @ =gSpriteTemplate_83DAF08 adds r1, r6, 0 adds r2, r7, 0 movs r3, 0x37 bl CreateSprite lsls r0, 24 lsrs r0, 24 mov r8, r0 cmp r0, 0x40 beq _080DEA56 adds r0, r4, 0 movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 mov r10, r0 adds r0, r4, 0 movs r1, 0x3 bl sub_807A100 lsls r0, 16 lsrs r0, 16 mov r9, r0 mov r0, r8 lsls r5, r0, 4 add r5, r8 lsls r5, 2 ldr r1, _080DEA7C @ =gSprites adds r4, r5, r1 lsls r0, r6, 4 strh r0, [r4, 0x2E] lsls r0, r7, 4 strh r0, [r4, 0x30] mov r2, r10 subs r0, r2, r6 lsls r0, 4 ldr r3, _080DEA70 @ =gUnknown_03004B00 movs r2, 0x2 ldrsh r1, [r3, r2] bl __divsi3 strh r0, [r4, 0x32] mov r3, r9 lsls r0, r3, 16 asrs r0, 16 subs r0, r7 lsls r0, 4 ldr r2, _080DEA70 @ =gUnknown_03004B00 movs r3, 0x2 ldrsh r1, [r2, r3] bl __divsi3 strh r0, [r4, 0x34] ldr r1, _080DEA70 @ =gUnknown_03004B00 ldrh r0, [r1, 0x2] strh r0, [r4, 0x36] mov r2, r10 strh r2, [r4, 0x38] mov r3, r9 strh r3, [r4, 0x3A] ldr r0, _080DEA80 @ =gSprites + 0x1C adds r5, r0 ldr r0, _080DEA84 @ =sub_80DE8D8 str r0, [r5] ldr r2, [sp] movs r3, 0x20 ldrsh r1, [r2, r3] adds r1, 0xD lsls r1, 1 adds r0, r2, 0 adds r0, 0x8 adds r0, r1 mov r1, r8 strh r1, [r0] ldrh r0, [r2, 0x20] adds r0, 0x1 strh r0, [r2, 0x20] _080DEA56: ldr r2, [sp, 0x10] movs r3, 0x80 lsls r3, 9 adds r0, r2, r3 lsrs r4, r0, 16 asrs r0, 16 cmp r0, 0x3 ble _080DE98A b _080DEB0C .align 2, 0 _080DEA68: .4byte gTasks _080DEA6C: .4byte REG_BLDCNT _080DEA70: .4byte gUnknown_03004B00 _080DEA74: .4byte gUnknown_0202F7C8 _080DEA78: .4byte gSpriteTemplate_83DAF08 _080DEA7C: .4byte gSprites _080DEA80: .4byte gSprites + 0x1C _080DEA84: .4byte sub_80DE8D8 _080DEA88: ldr r0, _080DEB24 @ =gSpriteTemplate_83DAF08 ldr r7, [sp, 0x4] ldr r2, [sp, 0x8] lsls r1, r2, 16 asrs r1, 16 str r1, [sp, 0xC] adds r1, r7, 0 ldr r2, [sp, 0xC] movs r3, 0x37 bl CreateSprite lsls r0, 24 lsrs r0, 24 mov r8, r0 cmp r0, 0x40 beq _080DEB0C movs r3, 0x30 mov r10, r3 movs r0, 0x28 mov r9, r0 ldr r6, _080DEB28 @ =gSprites mov r1, r8 lsls r5, r1, 4 add r5, r8 lsls r5, 2 adds r4, r5, r6 lsls r0, r7, 4 strh r0, [r4, 0x2E] ldr r2, [sp, 0xC] lsls r0, r2, 4 strh r0, [r4, 0x30] subs r0, r3, r7 lsls r0, 4 ldr r3, _080DEB2C @ =gUnknown_03004B00 movs r2, 0x2 ldrsh r1, [r3, r2] bl __divsi3 strh r0, [r4, 0x32] mov r3, r9 ldr r1, [sp, 0xC] subs r0, r3, r1 lsls r0, 4 ldr r2, _080DEB2C @ =gUnknown_03004B00 movs r3, 0x2 ldrsh r1, [r2, r3] bl __divsi3 strh r0, [r4, 0x34] ldr r1, _080DEB2C @ =gUnknown_03004B00 ldrh r0, [r1, 0x2] strh r0, [r4, 0x36] mov r2, r10 strh r2, [r4, 0x38] mov r3, r9 strh r3, [r4, 0x3A] adds r6, 0x1C adds r5, r6 ldr r0, _080DEB30 @ =sub_80DE8D8 str r0, [r5] mov r1, r8 ldr r0, [sp] strh r1, [r0, 0x22] movs r0, 0x1 ldr r2, [sp] strh r0, [r2, 0x20] _080DEB0C: ldr r0, _080DEB34 @ =sub_80DEB38 ldr r3, [sp] str r0, [r3] add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DEB24: .4byte gSpriteTemplate_83DAF08 _080DEB28: .4byte gSprites _080DEB2C: .4byte gUnknown_03004B00 _080DEB30: .4byte sub_80DE8D8 _080DEB34: .4byte sub_80DEB38 thumb_func_end sub_80DE918 thumb_func_start sub_80DEB38 sub_80DEB38: @ 80DEB38 push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080DEB5C @ =gTasks adds r4, r0, r1 movs r0, 0x8 ldrsh r1, [r4, r0] cmp r1, 0x1 beq _080DEBEE cmp r1, 0x1 bgt _080DEB60 cmp r1, 0 beq _080DEB6E b _080DECA4 .align 2, 0 _080DEB5C: .4byte gTasks _080DEB60: cmp r1, 0x2 bne _080DEB66 b _080DEC80 _080DEB66: cmp r1, 0x3 bne _080DEB6C b _080DEC94 _080DEB6C: b _080DECA4 _080DEB6E: movs r2, 0x14 ldrsh r0, [r4, r2] cmp r0, 0 bne _080DEBCE ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080DEBCE strh r1, [r4, 0x12] ldrh r0, [r4, 0x16] adds r0, 0x1 strh r0, [r4, 0x16] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080DEBA4 ldrh r1, [r4, 0x18] movs r2, 0x18 ldrsh r0, [r4, r2] cmp r0, 0xF bgt _080DEBB2 adds r0, r1, 0x1 strh r0, [r4, 0x18] b _080DEBB2 _080DEBA4: ldrh r1, [r4, 0x1A] movs r2, 0x1A ldrsh r0, [r4, r2] cmp r0, 0 beq _080DEBB2 subs r0, r1, 0x1 strh r0, [r4, 0x1A] _080DEBB2: ldr r2, _080DEBE0 @ =REG_BLDALPHA ldrh r0, [r4, 0x1A] lsls r0, 8 ldrh r1, [r4, 0x18] orrs r0, r1 strh r0, [r2] movs r1, 0x16 ldrsh r0, [r4, r1] cmp r0, 0x17 ble _080DEBCE movs r0, 0 strh r0, [r4, 0x16] movs r0, 0x1 strh r0, [r4, 0x14] _080DEBCE: ldrh r1, [r4, 0x1C] movs r2, 0x1C ldrsh r0, [r4, r2] cmp r0, 0 beq _080DEBE4 subs r0, r1, 0x1 strh r0, [r4, 0x1C] b _080DECA4 .align 2, 0 _080DEBE0: .4byte REG_BLDALPHA _080DEBE4: movs r1, 0x14 ldrsh r0, [r4, r1] cmp r0, 0 beq _080DECA4 b _080DEC8C _080DEBEE: ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080DECA4 movs r0, 0 strh r0, [r4, 0x12] ldrh r0, [r4, 0x16] adds r0, 0x1 strh r0, [r4, 0x16] ands r0, r1 lsls r0, 16 cmp r0, 0 beq _080DEC1E ldrh r1, [r4, 0x18] movs r2, 0x18 ldrsh r0, [r4, r2] cmp r0, 0 beq _080DEC2C subs r0, r1, 0x1 strh r0, [r4, 0x18] b _080DEC2C _080DEC1E: ldrh r1, [r4, 0x1A] movs r2, 0x1A ldrsh r0, [r4, r2] cmp r0, 0xF bgt _080DEC2C adds r0, r1, 0x1 strh r0, [r4, 0x1A] _080DEC2C: ldr r2, _080DEC48 @ =REG_BLDALPHA ldrh r0, [r4, 0x1A] lsls r0, 8 ldrh r1, [r4, 0x18] orrs r0, r1 strh r0, [r2] ldr r1, [r4, 0x18] movs r0, 0x80 lsls r0, 13 cmp r1, r0 bne _080DECA4 movs r5, 0 b _080DEC70 .align 2, 0 _080DEC48: .4byte REG_BLDALPHA _080DEC4C: adds r1, r5, 0 adds r1, 0xD lsls r1, 1 adds r0, r4, 0 adds r0, 0x8 adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080DEC7C @ =gSprites adds r0, r1 bl DestroySprite adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 _080DEC70: movs r1, 0x20 ldrsh r0, [r4, r1] cmp r5, r0 blt _080DEC4C b _080DEC8C .align 2, 0 _080DEC7C: .4byte gSprites _080DEC80: ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] lsls r0, 16 cmp r0, 0 ble _080DECA4 _080DEC8C: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080DECA4 _080DEC94: ldr r0, _080DECAC @ =REG_BLDCNT movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, r2, 0 bl move_anim_task_del _080DECA4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DECAC: .4byte REG_BLDCNT thumb_func_end sub_80DEB38 thumb_func_start sub_80DECB0 sub_80DECB0: @ 80DECB0 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 ldr r0, _080DECF8 @ =gUnknown_030042C4 movs r1, 0 strh r1, [r0] ldr r0, _080DECFC @ =gUnknown_03004240 strh r1, [r0] ldr r1, _080DED00 @ =REG_WININ ldr r2, _080DED04 @ =0x00003f3f adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 subs r2, 0x20 adds r0, r2, 0 strh r0, [r1] adds r1, 0x6 movs r0, 0xC8 strh r0, [r1] adds r1, 0x4 movs r0, 0x10 strh r0, [r1] ldr r0, _080DED08 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080DECF4 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080DED0C _080DECF4: movs r6, 0x28 b _080DED0E .align 2, 0 _080DECF8: .4byte gUnknown_030042C4 _080DECFC: .4byte gUnknown_03004240 _080DED00: .4byte REG_WININ _080DED04: .4byte 0x00003f3f _080DED08: .4byte gUnknown_0202F7C8 _080DED0C: movs r6, 0xC8 _080DED0E: ldr r1, _080DED4C @ =gUnknown_030042C4 lsls r3, r6, 16 asrs r2, r3, 16 lsls r0, r2, 8 orrs r0, r2 strh r0, [r1] ldr r1, _080DED50 @ =gUnknown_03004240 movs r5, 0x28 ldr r0, _080DED54 @ =0x00002828 strh r0, [r1] lsrs r3, 16 movs r1, 0xF0 subs r1, r2 movs r4, 0x48 ldr r2, _080DED58 @ =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r2 strh r3, [r0, 0xA] strh r1, [r0, 0xC] strh r5, [r0, 0xE] strh r4, [r0, 0x10] strh r6, [r0, 0x12] strh r5, [r0, 0x14] ldr r1, _080DED5C @ =sub_80DED60 str r1, [r0] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DED4C: .4byte gUnknown_030042C4 _080DED50: .4byte gUnknown_03004240 _080DED54: .4byte 0x00002828 _080DED58: .4byte gTasks _080DED5C: .4byte sub_80DED60 thumb_func_end sub_80DECB0 thumb_func_start sub_80DED60 sub_80DED60: @ 80DED60 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 lsls r0, 24 lsrs r0, 24 ldr r2, _080DEE80 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r1, [r4, 0x8] adds r0, r1, 0x1 strh r0, [r4, 0x8] ldrh r5, [r4, 0xA] ldrh r7, [r4, 0xC] ldrh r0, [r4, 0xE] mov r10, r0 ldrh r2, [r4, 0x10] str r2, [sp, 0xC] ldrh r0, [r4, 0x12] ldrh r2, [r4, 0x14] mov r8, r2 lsls r1, 16 asrs r6, r1, 16 cmp r6, 0xF ble _080DED9C b _080DEE8C _080DED9C: lsls r0, 16 asrs r0, 16 bl __floatsidf str r0, [sp, 0x10] str r1, [sp, 0x14] lsls r0, r5, 16 asrs r0, 16 bl __floatsidf ldr r2, _080DEE84 @ =0x3fb00000 ldr r3, _080DEE88 @ =0x00000000 bl __muldf3 adds r5, r1, 0 adds r4, r0, 0 adds r0, r6, 0 bl __floatsidf str r0, [sp, 0x18] str r1, [sp, 0x1C] adds r1, r5, 0 adds r0, r4, 0 ldr r2, [sp, 0x18] ldr r3, [sp, 0x1C] bl __muldf3 adds r3, r1, 0 adds r2, r0, 0 ldr r0, [sp, 0x10] ldr r1, [sp, 0x14] bl __subdf3 bl __fixunsdfsi lsls r0, 16 lsrs r0, 16 mov r9, r0 lsls r0, r7, 16 asrs r0, 16 bl __floatsidf ldr r2, _080DEE84 @ =0x3fb00000 ldr r3, _080DEE88 @ =0x00000000 bl __muldf3 ldr r2, [sp, 0x18] ldr r3, [sp, 0x1C] bl __muldf3 adds r3, r1, 0 adds r2, r0, 0 ldr r0, [sp, 0x10] ldr r1, [sp, 0x14] bl __adddf3 bl __fixunsdfsi lsls r0, 16 lsrs r7, r0, 16 mov r1, r8 lsls r0, r1, 16 asrs r0, 16 bl __floatsidf adds r5, r1, 0 adds r4, r0, 0 mov r2, r10 lsls r0, r2, 16 asrs r0, 16 bl __floatsidf ldr r2, _080DEE84 @ =0x3fb00000 ldr r3, _080DEE88 @ =0x00000000 bl __muldf3 ldr r2, [sp, 0x18] ldr r3, [sp, 0x1C] bl __muldf3 adds r3, r1, 0 adds r2, r0, 0 adds r1, r5, 0 adds r0, r4, 0 bl __subdf3 bl __fixunsdfsi lsls r0, 16 lsrs r6, r0, 16 ldr r1, [sp, 0xC] lsls r0, r1, 16 asrs r0, 16 bl __floatsidf ldr r2, _080DEE84 @ =0x3fb00000 ldr r3, _080DEE88 @ =0x00000000 bl __muldf3 ldr r2, [sp, 0x18] ldr r3, [sp, 0x1C] bl __muldf3 adds r3, r1, 0 adds r2, r0, 0 adds r1, r5, 0 adds r0, r4, 0 bl __adddf3 bl __fixunsdfsi lsls r0, 16 lsrs r5, r0, 16 b _080DEEBA .align 2, 0 _080DEE80: .4byte gTasks _080DEE84: .4byte 0x3fb00000 _080DEE88: .4byte 0x00000000 _080DEE8C: movs r2, 0 mov r9, r2 movs r7, 0xF0 movs r6, 0 movs r5, 0x70 str r6, [sp] str r6, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0x1 movs r1, 0 movs r3, 0 bl sub_80791A8 lsls r0, 16 lsrs r0, 16 str r6, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _080DEEDC @ =sub_80DEEE8 str r0, [r4] _080DEEBA: ldr r1, _080DEEE0 @ =gUnknown_030042C4 mov r2, r9 lsls r0, r2, 8 orrs r7, r0 strh r7, [r1] ldr r1, _080DEEE4 @ =gUnknown_03004240 lsls r0, r6, 8 orrs r5, r0 strh r5, [r1] add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DEEDC: .4byte sub_80DEEE8 _080DEEE0: .4byte gUnknown_030042C4 _080DEEE4: .4byte gUnknown_03004240 thumb_func_end sub_80DED60 thumb_func_start sub_80DEEE8 sub_80DEEE8: @ 80DEEE8 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 ldr r0, _080DEF28 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _080DEF20 ldr r0, _080DEF2C @ =gUnknown_030042C4 strh r2, [r0] ldr r0, _080DEF30 @ =gUnknown_03004240 strh r2, [r0] ldr r0, _080DEF34 @ =REG_WININ ldr r4, _080DEF38 @ =0x00003f3f adds r1, r4, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x6 strh r2, [r0] adds r0, 0x4 strh r2, [r0] adds r0, r3, 0 bl move_anim_task_del _080DEF20: pop {r4} pop {r0} bx r0 .align 2, 0 _080DEF28: .4byte gPaletteFade _080DEF2C: .4byte gUnknown_030042C4 _080DEF30: .4byte gUnknown_03004240 _080DEF34: .4byte REG_WININ _080DEF38: .4byte 0x00003f3f thumb_func_end sub_80DEEE8 thumb_func_start sub_80DEF3C sub_80DEF3C: @ 80DEF3C push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r0, _080DEF68 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080DEF70 movs r2, 0x18 ldr r3, _080DEF6C @ =0x0000fffe ldrb r0, [r4, 0x3] movs r1, 0x3F negs r1, r1 ands r1, r0 movs r0, 0x10 orrs r1, r0 strb r1, [r4, 0x3] b _080DEF74 .align 2, 0 _080DEF68: .4byte gUnknown_0202F7C8 _080DEF6C: .4byte 0x0000fffe _080DEF70: ldr r2, _080DEF90 @ =0x0000ffe8 movs r3, 0x2 _080DEF74: lsls r0, r2, 16 asrs r0, 16 ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] strh r3, [r4, 0x30] movs r0, 0x3C strh r0, [r4, 0x2E] ldr r0, _080DEF94 @ =sub_80DEF98 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080DEF90: .4byte 0x0000ffe8 _080DEF94: .4byte sub_80DEF98 thumb_func_end sub_80DEF3C thumb_func_start sub_80DEF98 sub_80DEF98: @ 80DEF98 push {r4,lr} adds r3, r0, 0 ldrh r1, [r3, 0x2E] movs r2, 0x2E ldrsh r0, [r3, r2] cmp r0, 0 ble _080DEFAA subs r0, r1, 0x1 b _080DF00E _080DEFAA: ldrh r0, [r3, 0x30] ldrh r4, [r3, 0x24] adds r1, r0, r4 strh r1, [r3, 0x24] adds r0, r1, 0x7 lsls r0, 16 lsrs r0, 16 cmp r0, 0xE bls _080DF010 ldrh r0, [r3, 0x20] adds r0, r1 strh r0, [r3, 0x20] movs r0, 0 strh r0, [r3, 0x24] ldrh r2, [r3, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x8 ldr r4, _080DEFFC @ =0x000003ff adds r0, r4, 0 ands r1, r0 ldr r0, _080DF000 @ =0xfffffc00 ands r0, r2 orrs r0, r1 strh r0, [r3, 0x4] ldrh r0, [r3, 0x32] adds r0, 0x1 strh r0, [r3, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 bne _080DF00C movs r0, 0x1E strh r0, [r3, 0x2E] ldr r0, _080DF004 @ =sub_80782D8 str r0, [r3, 0x1C] ldr r1, _080DF008 @ =sub_80DF018 adds r0, r3, 0 bl oamt_set_x3A_32 b _080DF010 .align 2, 0 _080DEFFC: .4byte 0x000003ff _080DF000: .4byte 0xfffffc00 _080DF004: .4byte sub_80782D8 _080DF008: .4byte sub_80DF018 _080DF00C: movs r0, 0x28 _080DF00E: strh r0, [r3, 0x2E] _080DF010: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DEF98 thumb_func_start sub_80DF018 sub_80DF018: @ 80DF018 push {r4,lr} adds r3, r0, 0 movs r0, 0x2E ldrsh r2, [r3, r0] cmp r2, 0 bne _080DF044 ldr r1, _080DF040 @ =REG_BLDCNT movs r4, 0xFD lsls r4, 6 adds r0, r4, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0x10 strh r0, [r1] ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] strh r2, [r3, 0x30] strh r2, [r3, 0x32] b _080DF082 .align 2, 0 _080DF040: .4byte REG_BLDCNT _080DF044: ldrh r1, [r3, 0x30] movs r2, 0x30 ldrsh r0, [r3, r2] cmp r0, 0x1 bgt _080DF054 adds r0, r1, 0x1 strh r0, [r3, 0x30] b _080DF082 _080DF054: movs r0, 0 strh r0, [r3, 0x30] ldrh r0, [r3, 0x32] adds r0, 0x1 strh r0, [r3, 0x32] ldr r2, _080DF088 @ =REG_BLDALPHA movs r1, 0x10 subs r1, r0 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r4, 0x32 ldrsh r0, [r3, r4] cmp r0, 0x10 bne _080DF082 adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _080DF08C @ =sub_80DF090 str r0, [r3, 0x1C] _080DF082: pop {r4} pop {r0} bx r0 .align 2, 0 _080DF088: .4byte REG_BLDALPHA _080DF08C: .4byte sub_80DF090 thumb_func_end sub_80DF018 thumb_func_start sub_80DF090 sub_80DF090: @ 80DF090 push {lr} ldr r1, _080DF0AC @ =REG_BLDCNT movs r2, 0 strh r2, [r1] adds r1, 0x2 strh r2, [r1] ldr r1, _080DF0B0 @ =gUnknown_030042C4 strh r2, [r1] ldr r1, _080DF0B4 @ =gUnknown_03004240 strh r2, [r1] bl move_anim_8072740 pop {r0} bx r0 .align 2, 0 _080DF0AC: .4byte REG_BLDCNT _080DF0B0: .4byte gUnknown_030042C4 _080DF0B4: .4byte gUnknown_03004240 thumb_func_end sub_80DF090 thumb_func_start sub_80DF0B8 sub_80DF0B8: @ 80DF0B8 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] movs r1, 0xC bl Sin strh r0, [r4, 0x24] ldr r0, _080DF120 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DF0DC ldrh r0, [r4, 0x24] negs r0, r0 strh r0, [r4, 0x24] _080DF0DC: ldrh r0, [r4, 0x2E] adds r0, 0x6 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x2E] movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 ldrh r1, [r4, 0x30] adds r0, r1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 24 negs r0, r0 strh r0, [r4, 0x26] ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bne _080DF12C ldr r0, _080DF124 @ =0x0000050b strh r0, [r4, 0x3A] ldr r1, _080DF128 @ =REG_BLDCNT movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldrh r0, [r4, 0x3A] strh r0, [r1] b _080DF17E .align 2, 0 _080DF120: .4byte gUnknown_0202F7C8 _080DF124: .4byte 0x0000050b _080DF128: .4byte REG_BLDCNT _080DF12C: cmp r0, 0x1E ble _080DF17E ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] ldrh r1, [r4, 0x3A] lsls r0, r1, 16 asrs r0, 24 lsls r0, 16 movs r2, 0xFF ands r2, r1 movs r1, 0x80 lsls r1, 9 adds r0, r1 lsrs r3, r0, 16 cmp r3, 0x10 bls _080DF150 movs r3, 0x10 _080DF150: subs r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r0, 0 bge _080DF15C movs r2, 0 _080DF15C: ldr r1, _080DF184 @ =REG_BLDALPHA lsls r0, r3, 8 orrs r0, r2 strh r0, [r1] strh r0, [r4, 0x3A] cmp r3, 0x10 bne _080DF17E cmp r2, 0 bne _080DF17E adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _080DF188 @ =sub_80DF18C str r0, [r4, 0x1C] _080DF17E: pop {r4} pop {r0} bx r0 .align 2, 0 _080DF184: .4byte REG_BLDALPHA _080DF188: .4byte sub_80DF18C thumb_func_end sub_80DF0B8 thumb_func_start sub_80DF18C sub_80DF18C: @ 80DF18C push {lr} ldr r1, _080DF1A0 @ =REG_BLDCNT movs r2, 0 strh r2, [r1] adds r1, 0x2 strh r2, [r1] bl move_anim_8072740 pop {r0} bx r0 .align 2, 0 _080DF1A0: .4byte REG_BLDCNT thumb_func_end sub_80DF18C thumb_func_start sub_80DF1A4 sub_80DF1A4: @ 80DF1A4 push {r4-r6,lr} mov r6, r8 push {r6} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _080DF23C @ =gTasks adds r4, r0 movs r6, 0 strh r6, [r4, 0x8] movs r0, 0x10 mov r8, r0 mov r2, r8 strh r2, [r4, 0xA] ldr r5, _080DF240 @ =gUnknown_0202F7C8 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1A] ldrb r0, [r5] bl sub_8077FC0 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1C] ldrb r0, [r5] movs r1, 0x1 bl sub_807A100 lsls r0, 16 asrs r1, r0, 16 lsrs r0, 31 adds r1, r0 asrs r1, 1 adds r1, 0x8 strh r1, [r4, 0x1E] strh r6, [r4, 0x16] ldrb r0, [r5] bl sub_8079ED4 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x12] ldrb r0, [r5] bl sub_8079E90 lsls r0, 24 lsrs r0, 24 subs r0, 0x2 strh r0, [r4, 0x14] strh r6, [r4, 0xE] mov r0, r8 strh r0, [r4, 0x10] ldr r1, _080DF244 @ =REG_BLDCNT movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r2, 0x80 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] strh r6, [r4, 0x18] ldr r0, _080DF248 @ =sub_80DF24C str r0, [r4] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DF23C: .4byte gTasks _080DF240: .4byte gUnknown_0202F7C8 _080DF244: .4byte REG_BLDCNT _080DF248: .4byte sub_80DF24C thumb_func_end sub_80DF1A4 thumb_func_start sub_80DF24C sub_80DF24C: @ 80DF24C push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 ldr r1, _080DF270 @ =gTasks adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x5 bls _080DF266 b _080DF3CC _080DF266: lsls r0, 2 ldr r1, _080DF274 @ =_080DF278 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080DF270: .4byte gTasks _080DF274: .4byte _080DF278 .align 2, 0 _080DF278: .4byte _080DF290 .4byte _080DF300 .4byte _080DF342 .4byte _080DF356 .4byte _080DF3AC .4byte _080DF3BC _080DF290: movs r6, 0 _080DF292: movs r2, 0x1A ldrsh r1, [r4, r2] movs r0, 0x1C ldrsh r2, [r4, r0] ldrb r3, [r4, 0x14] ldr r0, _080DF2F4 @ =gSpriteTemplate_83DAF80 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _080DF2E6 ldr r1, _080DF2F8 @ =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r5, r0, r1 strh r7, [r5, 0x2E] ldr r0, _080DF2FC @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner movs r1, 0 lsls r0, 24 cmp r0, 0 bne _080DF2C8 movs r1, 0x1 _080DF2C8: strh r1, [r5, 0x30] movs r0, 0x2A muls r0, r6 movs r1, 0xFF ands r0, r1 strh r0, [r5, 0x32] ldrh r0, [r4, 0x1E] strh r0, [r5, 0x34] lsls r0, r6, 1 adds r0, r6 lsls r0, 1 strh r0, [r5, 0x38] ldrh r0, [r4, 0x16] adds r0, 0x1 strh r0, [r4, 0x16] _080DF2E6: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x5 bls _080DF292 b _080DF3B4 .align 2, 0 _080DF2F4: .4byte gSpriteTemplate_83DAF80 _080DF2F8: .4byte gSprites _080DF2FC: .4byte gUnknown_0202F7C8 _080DF300: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080DF31E ldrh r1, [r4, 0xE] movs r2, 0xE ldrsh r0, [r4, r2] cmp r0, 0xD bgt _080DF32C adds r0, r1, 0x1 strh r0, [r4, 0xE] b _080DF32C _080DF31E: ldrh r1, [r4, 0x10] movs r2, 0x10 ldrsh r0, [r4, r2] cmp r0, 0x4 ble _080DF32C subs r0, r1, 0x1 strh r0, [r4, 0x10] _080DF32C: movs r1, 0xE ldrsh r0, [r4, r1] ldrh r3, [r4, 0xE] ldrh r2, [r4, 0x10] cmp r0, 0xE bne _080DF39C cmp r2, 0x4 bne _080DF39C movs r0, 0 strh r0, [r4, 0xA] b _080DF396 _080DF342: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1E ble _080DF3CC movs r0, 0 strh r0, [r4, 0xA] b _080DF3B4 _080DF356: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080DF374 ldrh r1, [r4, 0xE] movs r2, 0xE ldrsh r0, [r4, r2] cmp r0, 0 ble _080DF382 subs r0, r1, 0x1 strh r0, [r4, 0xE] b _080DF382 _080DF374: ldrh r1, [r4, 0x10] movs r2, 0x10 ldrsh r0, [r4, r2] cmp r0, 0xF bgt _080DF382 adds r0, r1, 0x1 strh r0, [r4, 0x10] _080DF382: movs r1, 0xE ldrsh r0, [r4, r1] ldrh r3, [r4, 0xE] ldrh r2, [r4, 0x10] cmp r0, 0 bne _080DF39C cmp r2, 0x10 bne _080DF39C movs r0, 0x1 strh r0, [r4, 0x18] _080DF396: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080DF39C: ldr r1, _080DF3A8 @ =REG_BLDALPHA lsls r0, r2, 8 orrs r0, r3 strh r0, [r1] b _080DF3CC .align 2, 0 _080DF3A8: .4byte REG_BLDALPHA _080DF3AC: movs r2, 0x16 ldrsh r0, [r4, r2] cmp r0, 0 bne _080DF3CC _080DF3B4: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080DF3CC _080DF3BC: ldr r0, _080DF3D4 @ =REG_BLDCNT movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, r7, 0 bl move_anim_task_del _080DF3CC: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DF3D4: .4byte REG_BLDCNT thumb_func_end sub_80DF24C thumb_func_start sub_80DF3D8 sub_80DF3D8: @ 80DF3D8 push {r4,lr} adds r4, r0, 0 movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0 bne _080DF3EA ldrh r0, [r4, 0x32] adds r0, 0x2 b _080DF3EE _080DF3EA: ldrh r0, [r4, 0x32] subs r0, 0x2 _080DF3EE: strh r0, [r4, 0x32] ldrh r1, [r4, 0x32] movs r0, 0xFF ands r0, r1 strh r0, [r4, 0x32] movs r2, 0x32 ldrsh r0, [r4, r2] movs r2, 0x34 ldrsh r1, [r4, r2] bl Sin strh r0, [r4, 0x24] ldrh r0, [r4, 0x32] subs r0, 0x41 lsls r0, 16 lsrs r0, 16 cmp r0, 0x7E bhi _080DF430 ldr r2, _080DF42C @ =gTasks movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrh r1, [r0, 0x12] adds r1, 0x1 movs r0, 0x3 ands r1, r0 b _080DF444 .align 2, 0 _080DF42C: .4byte gTasks _080DF430: ldr r2, _080DF498 @ =gTasks movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r2, 0x3 ldrb r1, [r0, 0x12] ands r1, r2 _080DF444: lsls r1, 2 ldrb r2, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x5] ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] movs r1, 0x38 ldrsh r0, [r4, r1] lsls r0, 3 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x3A] movs r2, 0x3A ldrsh r0, [r4, r2] movs r1, 0x7 bl Sin strh r0, [r4, 0x26] ldr r2, _080DF498 @ =gTasks movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r1, r0, r2 movs r2, 0x18 ldrsh r0, [r1, r2] cmp r0, 0 beq _080DF492 ldrh r0, [r1, 0x16] subs r0, 0x1 strh r0, [r1, 0x16] adds r0, r4, 0 bl DestroySprite _080DF492: pop {r4} pop {r0} bx r0 .align 2, 0 _080DF498: .4byte gTasks thumb_func_end sub_80DF3D8 thumb_func_start sub_80DF49C sub_80DF49C: @ 80DF49C adds r3, r0, 0 adds r3, 0x3E ldrb r1, [r3] movs r2, 0x4 orrs r1, r2 strb r1, [r3] ldr r2, _080DF4E0 @ =gUnknown_02024BE0 ldr r1, _080DF4E4 @ =gUnknown_0202F7C8 ldrb r1, [r1] adds r1, r2 ldrb r1, [r1] strh r1, [r0, 0x38] movs r1, 0x80 strh r1, [r0, 0x2E] movs r1, 0xA strh r1, [r0, 0x30] ldr r2, _080DF4E8 @ =gUnknown_03004B00 ldrh r1, [r2] strh r1, [r0, 0x32] ldrh r1, [r2, 0x2] strh r1, [r0, 0x34] ldr r1, _080DF4EC @ =sub_80DF4F4 str r1, [r0, 0x1C] ldr r2, _080DF4F0 @ =gSprites movs r3, 0x38 ldrsh r1, [r0, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x22] adds r1, 0x8 strh r1, [r0, 0x22] bx lr .align 2, 0 _080DF4E0: .4byte gUnknown_02024BE0 _080DF4E4: .4byte gUnknown_0202F7C8 _080DF4E8: .4byte gUnknown_03004B00 _080DF4EC: .4byte sub_80DF4F4 _080DF4F0: .4byte gSprites thumb_func_end sub_80DF49C thumb_func_start sub_80DF4F4 sub_80DF4F4: @ 80DF4F4 push {r4,r5,lr} adds r5, r0, 0 ldrh r0, [r5, 0x34] movs r1, 0x34 ldrsh r3, [r5, r1] cmp r3, 0 beq _080DF55C subs r0, 0x1 strh r0, [r5, 0x34] movs r2, 0x2E ldrsh r0, [r5, r2] movs r2, 0x30 ldrsh r1, [r5, r2] bl Sin ldr r4, _080DF554 @ =gSprites movs r1, 0x38 ldrsh r2, [r5, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 strh r0, [r1, 0x24] movs r2, 0x2E ldrsh r0, [r5, r2] movs r2, 0x30 ldrsh r1, [r5, r2] bl Cos movs r1, 0x38 ldrsh r2, [r5, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 strh r0, [r1, 0x26] ldrh r0, [r5, 0x32] ldrh r2, [r5, 0x2E] adds r1, r0, r2 strh r1, [r5, 0x2E] lsls r0, r1, 16 asrs r0, 16 cmp r0, 0xFF ble _080DF590 ldr r2, _080DF558 @ =0xffffff00 adds r0, r1, r2 strh r0, [r5, 0x2E] b _080DF590 .align 2, 0 _080DF554: .4byte gSprites _080DF558: .4byte 0xffffff00 _080DF55C: ldr r2, _080DF598 @ =gSprites movs r0, 0x38 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r3, [r0, 0x24] movs r0, 0x38 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r3, [r0, 0x26] movs r0, 0x38 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x22] subs r1, 0x8 strh r1, [r0, 0x22] ldr r0, _080DF59C @ =move_anim_8074EE0 str r0, [r5, 0x1C] _080DF590: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DF598: .4byte gSprites _080DF59C: .4byte move_anim_8074EE0 thumb_func_end sub_80DF4F4 thumb_func_start sub_80DF5A0 sub_80DF5A0: @ 80DF5A0 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080DF5E8 @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DF5F0 ldr r2, _080DF5EC @ =gUnknown_03004B00 ldrh r0, [r5, 0x20] ldrh r1, [r2] subs r0, r1 strh r0, [r5, 0x20] ldrh r0, [r2, 0x6] negs r0, r0 strh r0, [r2, 0x6] ldrh r0, [r2, 0x8] negs r0, r0 strh r0, [r2, 0x8] adds r1, r2, 0 b _080DF5FA .align 2, 0 _080DF5E8: .4byte gUnknown_0202F7C8 _080DF5EC: .4byte gUnknown_03004B00 _080DF5F0: ldr r1, _080DF630 @ =gUnknown_03004B00 ldrh r0, [r1] ldrh r2, [r5, 0x20] adds r0, r2 strh r0, [r5, 0x20] _080DF5FA: ldrh r0, [r1, 0x2] ldrh r2, [r5, 0x22] adds r0, r2 strh r0, [r5, 0x22] ldrh r0, [r1, 0x4] strh r0, [r5, 0x2E] ldrh r0, [r1, 0x6] strh r0, [r5, 0x30] ldrh r0, [r1, 0x8] strh r0, [r5, 0x34] ldrh r0, [r1, 0xA] strh r0, [r5, 0x38] adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r1, _080DF634 @ =move_anim_8074EE0 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080DF638 @ =sub_8078504 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DF630: .4byte gUnknown_03004B00 _080DF634: .4byte move_anim_8074EE0 _080DF638: .4byte sub_8078504 thumb_func_end sub_80DF5A0 thumb_func_start sub_80DF63C sub_80DF63C: @ 80DF63C push {r4,r5,lr} adds r5, r0, 0 bl sub_8078650 ldr r4, _080DF694 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] ldr r0, _080DF698 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DF6A0 ldr r2, _080DF69C @ =gUnknown_03004B00 ldrh r0, [r5, 0x20] ldrh r1, [r2, 0x2] subs r0, r1 strh r0, [r5, 0x20] ldrh r0, [r5, 0x22] adds r1, r0 strh r1, [r5, 0x22] ldrh r0, [r5, 0x32] ldrh r1, [r2, 0x4] subs r0, r1 strh r0, [r5, 0x32] ldrh r0, [r2, 0x6] ldrh r1, [r5, 0x36] adds r0, r1 strh r0, [r5, 0x36] b _080DF6CA .align 2, 0 _080DF694: .4byte gUnknown_0202F7C9 _080DF698: .4byte gUnknown_0202F7C8 _080DF69C: .4byte gUnknown_03004B00 _080DF6A0: ldr r1, _080DF6E4 @ =gUnknown_03004B00 ldrh r0, [r1] ldrh r2, [r5, 0x20] adds r0, r2 strh r0, [r5, 0x20] ldrh r0, [r1, 0x2] ldrh r2, [r5, 0x22] adds r0, r2 strh r0, [r5, 0x22] ldrh r0, [r1, 0x4] ldrh r2, [r5, 0x32] adds r0, r2 strh r0, [r5, 0x32] ldrh r0, [r1, 0x6] ldrh r1, [r5, 0x36] adds r0, r1 strh r0, [r5, 0x36] adds r0, r5, 0 movs r1, 0x1 bl StartSpriteAnim _080DF6CA: ldr r0, _080DF6E4 @ =gUnknown_03004B00 ldrh r0, [r0, 0x8] strh r0, [r5, 0x2E] ldr r0, _080DF6E8 @ =sub_8078B34 str r0, [r5, 0x1C] ldr r1, _080DF6EC @ =move_anim_8074EE0 adds r0, r5, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DF6E4: .4byte gUnknown_03004B00 _080DF6E8: .4byte sub_8078B34 _080DF6EC: .4byte move_anim_8074EE0 thumb_func_end sub_80DF63C thumb_func_start sub_80DF6F0 sub_80DF6F0: @ 80DF6F0 push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080DF704 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080DF70C ldr r4, _080DF708 @ =gUnknown_0202F7C8 b _080DF70E .align 2, 0 _080DF704: .4byte gUnknown_03004B00 _080DF708: .4byte gUnknown_0202F7C8 _080DF70C: ldr r4, _080DF750 @ =gUnknown_0202F7C9 _080DF70E: ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r4, _080DF754 @ =gUnknown_03004B00 movs r0, 0x2 ldrsh r1, [r4, r0] adds r0, r5, 0 bl sub_807867C ldrh r0, [r4, 0x4] ldrh r1, [r5, 0x22] adds r0, r1 strh r0, [r5, 0x22] ldr r0, _080DF758 @ =sub_8078600 str r0, [r5, 0x1C] ldr r1, _080DF75C @ =move_anim_8074EE0 adds r0, r5, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DF750: .4byte gUnknown_0202F7C9 _080DF754: .4byte gUnknown_03004B00 _080DF758: .4byte sub_8078600 _080DF75C: .4byte move_anim_8074EE0 thumb_func_end sub_80DF6F0 thumb_func_start sub_80DF760 sub_80DF760: @ 80DF760 push {r4,lr} adds r4, r0, 0 ldr r0, _080DF788 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DF77A adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim _080DF77A: adds r0, r4, 0 bl sub_80DF63C pop {r4} pop {r0} bx r0 .align 2, 0 _080DF788: .4byte gUnknown_0202F7C8 thumb_func_end sub_80DF760 thumb_func_start sub_80DF78C sub_80DF78C: @ 80DF78C push {r4-r7,lr} adds r6, r0, 0 ldr r4, _080DF7E0 @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 movs r5, 0 strh r0, [r6, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x22] strh r5, [r6, 0x36] movs r0, 0x1 strh r0, [r6, 0x38] ldr r0, _080DF7E4 @ =gUnknown_03004B00 ldrh r0, [r0] strh r0, [r6, 0x3A] ldr r4, _080DF7E8 @ =gUnknown_02024C07 ldrb r0, [r4] movs r1, 0 bl sub_807A100 lsls r7, r0, 16 lsrs r5, r7, 16 ldrb r0, [r4] movs r1, 0x1 bl sub_807A100 lsls r1, r0, 16 lsrs r0, r1, 16 cmp r5, r0 bls _080DF7EC lsrs r0, r7, 17 b _080DF7EE .align 2, 0 _080DF7E0: .4byte gUnknown_0202F7C8 _080DF7E4: .4byte gUnknown_03004B00 _080DF7E8: .4byte gUnknown_02024C07 _080DF7EC: lsrs r0, r1, 17 _080DF7EE: strh r0, [r6, 0x3C] movs r1, 0x3A ldrsh r0, [r6, r1] movs r2, 0x3C ldrsh r1, [r6, r2] bl Cos strh r0, [r6, 0x24] movs r1, 0x3A ldrsh r0, [r6, r1] movs r2, 0x3C ldrsh r1, [r6, r2] bl Sin strh r0, [r6, 0x26] ldr r0, _080DF818 @ =sub_80DF81C str r0, [r6, 0x1C] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DF818: .4byte sub_80DF81C thumb_func_end sub_80DF78C thumb_func_start sub_80DF81C sub_80DF81C: @ 80DF81C push {r4,r5,lr} adds r4, r0, 0 movs r0, 0x2E ldrsh r5, [r4, r0] cmp r5, 0 beq _080DF82E cmp r5, 0x1 beq _080DF89A b _080DF91E _080DF82E: ldrh r0, [r4, 0x3A] ldrh r1, [r4, 0x38] subs r0, r1 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x3A] movs r1, 0x3A ldrsh r0, [r4, r1] movs r2, 0x3C ldrsh r1, [r4, r2] bl Cos strh r0, [r4, 0x24] movs r1, 0x3A ldrsh r0, [r4, r1] movs r2, 0x3C ldrsh r1, [r4, r2] bl Sin strh r0, [r4, 0x26] ldrh r0, [r4, 0x36] adds r0, 0x1 strh r0, [r4, 0x36] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 ble _080DF880 strh r5, [r4, 0x36] ldrh r1, [r4, 0x38] movs r2, 0x38 ldrsh r0, [r4, r2] cmp r0, 0xF bgt _080DF880 adds r0, r1, 0x1 strh r0, [r4, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0xF ble _080DF880 movs r0, 0x10 strh r0, [r4, 0x38] _080DF880: ldrh r0, [r4, 0x34] adds r0, 0x1 strh r0, [r4, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x3C ble _080DF91E movs r0, 0 strh r0, [r4, 0x34] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _080DF91E _080DF89A: ldrh r0, [r4, 0x3A] ldrh r1, [r4, 0x38] subs r0, r1 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x3A] ldrh r1, [r4, 0x3C] movs r2, 0x3C ldrsh r0, [r4, r2] cmp r0, 0x95 bgt _080DF8C2 adds r0, r1, 0 adds r0, 0x8 strh r0, [r4, 0x3C] lsls r0, 16 asrs r0, 16 cmp r0, 0x95 ble _080DF8C2 movs r0, 0x96 strh r0, [r4, 0x3C] _080DF8C2: movs r1, 0x3A ldrsh r0, [r4, r1] movs r2, 0x3C ldrsh r1, [r4, r2] bl Cos strh r0, [r4, 0x24] movs r1, 0x3A ldrsh r0, [r4, r1] movs r2, 0x3C ldrsh r1, [r4, r2] bl Sin strh r0, [r4, 0x26] ldrh r0, [r4, 0x36] adds r0, 0x1 strh r0, [r4, 0x36] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 ble _080DF90A movs r0, 0 strh r0, [r4, 0x36] ldrh r1, [r4, 0x38] movs r2, 0x38 ldrsh r0, [r4, r2] cmp r0, 0xF bgt _080DF90A adds r0, r1, 0x1 strh r0, [r4, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0xF ble _080DF90A movs r0, 0x10 strh r0, [r4, 0x38] _080DF90A: ldrh r0, [r4, 0x34] adds r0, 0x1 strh r0, [r4, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 ble _080DF91E adds r0, r4, 0 bl move_anim_8072740 _080DF91E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80DF81C thumb_func_start sub_80DF924 sub_80DF924: @ 80DF924 push {r4-r6,lr} sub sp, 0xC lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080DF950 @ =gTasks adds r4, r1, r0 ldr r0, _080DF954 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080DF960 ldr r0, _080DF958 @ =REG_BG1HOFS str r0, [sp] ldr r0, _080DF95C @ =gUnknown_030042C0 b _080DF966 .align 2, 0 _080DF950: .4byte gTasks _080DF954: .4byte gUnknown_0202F7C8 _080DF958: .4byte REG_BG1HOFS _080DF95C: .4byte gUnknown_030042C0 _080DF960: ldr r0, _080DF9DC @ =REG_BG2HOFS str r0, [sp] ldr r0, _080DF9E0 @ =gUnknown_03004288 _080DF966: ldrh r0, [r0] strh r0, [r4, 0xC] ldr r0, _080DF9E4 @ =0xa2600001 str r0, [sp, 0x4] mov r1, sp movs r5, 0 movs r0, 0x1 strb r0, [r1, 0x8] mov r0, sp strb r5, [r0, 0x9] ldr r0, _080DF9E8 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl sub_8077FC0 lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 subs r1, 0x20 strh r1, [r4, 0xE] adds r0, 0x20 strh r0, [r4, 0x10] cmp r1, 0 bge _080DF996 strh r5, [r4, 0xE] _080DF996: ldrh r3, [r4, 0xE] movs r1, 0x10 ldrsh r0, [r4, r1] cmp r3, r0 bgt _080DF9C4 ldr r5, _080DF9EC @ =gUnknown_03004DE0 movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 _080DF9A8: lsls r1, r3, 1 adds r2, r1, r5 ldrh r0, [r4, 0xC] strh r0, [r2] adds r1, r6 ldrh r0, [r4, 0xC] strh r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 movs r1, 0x10 ldrsh r0, [r4, r1] cmp r3, r0 ble _080DF9A8 _080DF9C4: ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] bl sub_80895F8 ldr r0, _080DF9F0 @ =sub_80DF9F4 str r0, [r4] add sp, 0xC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DF9DC: .4byte REG_BG2HOFS _080DF9E0: .4byte gUnknown_03004288 _080DF9E4: .4byte 0xa2600001 _080DF9E8: .4byte gUnknown_0202F7C8 _080DF9EC: .4byte gUnknown_03004DE0 _080DF9F0: .4byte sub_80DF9F4 thumb_func_end sub_80DF924 thumb_func_start sub_80DF9F4 sub_80DF9F4: @ 80DF9F4 push {lr} lsls r0, 24 lsrs r3, r0, 24 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 ldr r1, _080DFA18 @ =gTasks adds r2, r0, r1 movs r1, 0x8 ldrsh r0, [r2, r1] cmp r0, 0x4 bhi _080DFAAA lsls r0, 2 ldr r1, _080DFA1C @ =_080DFA20 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080DFA18: .4byte gTasks _080DFA1C: .4byte _080DFA20 .align 2, 0 _080DFA20: .4byte _080DFA34 .4byte _080DFA56 .4byte _080DFA66 .4byte _080DFA92 .4byte _080DFAA4 _080DFA34: ldrh r0, [r2, 0x16] adds r0, 0x1 strh r0, [r2, 0x16] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080DFA8A movs r0, 0 strh r0, [r2, 0x16] ldrh r0, [r2, 0x14] adds r0, 0x1 strh r0, [r2, 0x14] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 bne _080DFA8A b _080DFA84 _080DFA56: ldrh r0, [r2, 0xA] adds r0, 0x1 strh r0, [r2, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x3C ble _080DFA8A b _080DFA84 _080DFA66: ldrh r0, [r2, 0x16] adds r0, 0x1 strh r0, [r2, 0x16] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080DFA8A movs r0, 0 strh r0, [r2, 0x16] ldrh r0, [r2, 0x14] subs r0, 0x1 strh r0, [r2, 0x14] lsls r0, 16 cmp r0, 0 bne _080DFA8A _080DFA84: ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] _080DFA8A: adds r0, r2, 0 bl sub_80DFAB0 b _080DFAAA _080DFA92: ldr r1, _080DFAA0 @ =gUnknown_03004DC0 movs r0, 0x3 strb r0, [r1, 0x15] ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] b _080DFAAA .align 2, 0 _080DFAA0: .4byte gUnknown_03004DC0 _080DFAA4: adds r0, r3, 0 bl move_anim_task_del _080DFAAA: pop {r0} bx r0 thumb_func_end sub_80DF9F4 thumb_func_start sub_80DFAB0 sub_80DFAB0: @ 80DFAB0 push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 ldrh r3, [r5, 0x12] ldrh r4, [r5, 0xE] movs r1, 0x10 ldrsh r0, [r5, r1] cmp r4, r0 bgt _080DFB06 ldr r7, _080DFB1C @ =gUnknown_03004DE0 mov r12, r7 ldr r0, _080DFB20 @ =gSineTable mov r8, r0 ldr r6, _080DFB24 @ =gUnknown_03004DC0 _080DFACE: lsls r2, r4, 1 ldrb r1, [r6, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 add r2, r12 lsls r0, r3, 1 add r0, r8 movs r7, 0 ldrsh r1, [r0, r7] movs r7, 0x14 ldrsh r0, [r5, r7] muls r0, r1 asrs r0, 7 ldrh r1, [r5, 0xC] adds r0, r1 strh r0, [r2] adds r3, 0x8 movs r0, 0xFF ands r3, r0 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 movs r7, 0x10 ldrsh r0, [r5, r7] cmp r4, r0 ble _080DFACE _080DFB06: ldrh r0, [r5, 0x12] adds r0, 0x9 movs r1, 0xFF ands r0, r1 strh r0, [r5, 0x12] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DFB1C: .4byte gUnknown_03004DE0 _080DFB20: .4byte gSineTable _080DFB24: .4byte gUnknown_03004DC0 thumb_func_end sub_80DFAB0 thumb_func_start sub_80DFB28 sub_80DFB28: @ 80DFB28 push {r4-r6,lr} mov r6, r8 push {r6} adds r4, r0, 0 ldr r5, _080DFBC8 @ =gUnknown_03004B00 movs r0, 0x4 ldrsh r1, [r5, r0] lsls r0, r1, 1 adds r0, r1 movs r1, 0x5 bl __divsi3 adds r6, r0, 0 ldr r1, _080DFBCC @ =gUnknown_0202F7C8 mov r8, r1 ldrb r0, [r1] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] mov r2, r8 ldrb r0, [r2] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r3, [r5, 0x8] adds r0, r3 strh r0, [r4, 0x22] movs r1, 0x2 ldrsh r0, [r5, r1] movs r2, 0x4 ldrsh r1, [r5, r2] bl Cos strh r0, [r4, 0x30] movs r3, 0x2 ldrsh r0, [r5, r3] lsls r6, 16 asrs r6, 16 adds r1, r6, 0 bl Sin strh r0, [r4, 0x32] ldrh r1, [r4, 0x30] ldrh r2, [r5] adds r3, r2, 0 muls r3, r1 adds r1, r3, 0 ldrh r3, [r4, 0x20] adds r1, r3 strh r1, [r4, 0x20] adds r1, r2, 0 muls r1, r0 adds r0, r1, 0 ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] ldrh r0, [r5, 0x6] strh r0, [r4, 0x34] ldr r0, _080DFBD0 @ =sub_80DFBD8 str r0, [r4, 0x1C] adds r4, 0x2E ldr r2, _080DFBD4 @ =gUnknown_03000730 movs r1, 0x6 _080DFBB0: ldrh r0, [r4] strh r0, [r2] adds r4, 0x2 adds r2, 0x2 subs r1, 0x1 cmp r1, 0 bge _080DFBB0 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DFBC8: .4byte gUnknown_03004B00 _080DFBCC: .4byte gUnknown_0202F7C8 _080DFBD0: .4byte sub_80DFBD8 _080DFBD4: .4byte gUnknown_03000730 thumb_func_end sub_80DFB28 thumb_func_start sub_80DFBD8 sub_80DFBD8: @ 80DFBD8 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x30] ldrh r1, [r4, 0x36] adds r0, r1 strh r0, [r4, 0x36] ldrh r0, [r4, 0x32] ldrh r2, [r4, 0x38] adds r0, r2 strh r0, [r4, 0x38] movs r1, 0x36 ldrsh r0, [r4, r1] movs r1, 0xA bl __divsi3 strh r0, [r4, 0x24] movs r2, 0x38 ldrsh r0, [r4, r2] movs r1, 0xA bl __divsi3 strh r0, [r4, 0x26] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 movs r2, 0x34 ldrsh r1, [r4, r2] cmp r0, r1 ble _080DFC1C adds r0, r4, 0 bl move_anim_8072740 _080DFC1C: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DFBD8 thumb_func_start sub_80DFC24 sub_80DFC24: @ 80DFC24 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080DFC58 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080DFC5C @ =gUnknown_03004B00 ldrh r0, [r0] strh r0, [r1, 0x8] ldr r0, _080DFC60 @ =gUnknown_0202F7C8 ldrb r0, [r0] movs r2, 0x10 strh r2, [r1, 0xA] ldr r1, _080DFC64 @ =REG_BLDALPHA strh r2, [r1] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080DFC70 ldr r1, _080DFC68 @ =REG_BLDCNT ldr r2, _080DFC6C @ =0x00003f42 b _080DFC74 .align 2, 0 _080DFC58: .4byte gTasks _080DFC5C: .4byte gUnknown_03004B00 _080DFC60: .4byte gUnknown_0202F7C8 _080DFC64: .4byte REG_BLDALPHA _080DFC68: .4byte REG_BLDCNT _080DFC6C: .4byte 0x00003f42 _080DFC70: ldr r1, _080DFC8C @ =REG_BLDCNT ldr r2, _080DFC90 @ =0x00003f44 _080DFC74: adds r0, r2, 0 strh r0, [r1] ldr r0, _080DFC94 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080DFC98 @ =sub_80DFC9C str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _080DFC8C: .4byte REG_BLDCNT _080DFC90: .4byte 0x00003f44 _080DFC94: .4byte gTasks _080DFC98: .4byte sub_80DFC9C thumb_func_end sub_80DFC24 thumb_func_start sub_80DFC9C sub_80DFC9C: @ 80DFC9C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080DFD04 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0xA] lsrs r2, r0, 8 lsls r0, 24 lsrs r1, r0, 24 movs r3, 0xC ldrsh r0, [r4, r3] ldrb r3, [r4, 0x8] cmp r0, r3 bne _080DFD18 adds r2, 0x1 lsls r2, 24 lsrs r2, 24 subs r0, r1, 0x1 lsls r0, 24 lsrs r0, 24 lsls r1, r2, 8 orrs r1, r0 movs r3, 0 strh r1, [r4, 0xA] ldr r0, _080DFD08 @ =REG_BLDALPHA strh r1, [r0] strh r3, [r4, 0xC] cmp r2, 0x10 bne _080DFD1E ldr r2, _080DFD0C @ =gSprites ldr r1, _080DFD10 @ =gUnknown_02024BE0 ldr r0, _080DFD14 @ =gUnknown_0202F7C8 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] adds r0, r5, 0 bl move_anim_task_del b _080DFD1E .align 2, 0 _080DFD04: .4byte gTasks _080DFD08: .4byte REG_BLDALPHA _080DFD0C: .4byte gSprites _080DFD10: .4byte gUnknown_02024BE0 _080DFD14: .4byte gUnknown_0202F7C8 _080DFD18: ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] _080DFD1E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80DFC9C thumb_func_start sub_80DFD24 sub_80DFD24: @ 80DFD24 lsls r0, 24 lsrs r0, 24 ldr r2, _080DFD48 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _080DFD4C @ =gUnknown_03004B00 ldrh r0, [r0] strh r0, [r1, 0x8] movs r2, 0x80 lsls r2, 5 strh r2, [r1, 0xA] ldr r0, _080DFD50 @ =sub_80DFD58 str r0, [r1] ldr r0, _080DFD54 @ =REG_BLDALPHA strh r2, [r0] bx lr .align 2, 0 _080DFD48: .4byte gTasks _080DFD4C: .4byte gUnknown_03004B00 _080DFD50: .4byte sub_80DFD58 _080DFD54: .4byte REG_BLDALPHA thumb_func_end sub_80DFD24 thumb_func_start sub_80DFD58 sub_80DFD58: @ 80DFD58 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080DFDA8 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r1 ldrh r0, [r2, 0xA] lsrs r1, r0, 8 lsls r0, 24 lsrs r5, r0, 24 movs r3, 0xC ldrsh r0, [r2, r3] ldrb r3, [r2, 0x8] cmp r0, r3 bne _080DFDB4 subs r0, r1, 0x1 lsls r0, 24 lsrs r3, r0, 24 adds r0, r5, 0x1 lsls r0, 24 lsrs r0, 24 lsls r1, r3, 8 orrs r1, r0 movs r0, 0 strh r1, [r2, 0xA] ldr r5, _080DFDAC @ =REG_BLDALPHA strh r1, [r5] strh r0, [r2, 0xC] cmp r3, 0 bne _080DFDBA ldr r0, _080DFDB0 @ =REG_BLDCNT strh r3, [r0] strh r3, [r5] adds r0, r4, 0 bl move_anim_task_del b _080DFDBA .align 2, 0 _080DFDA8: .4byte gTasks _080DFDAC: .4byte REG_BLDALPHA _080DFDB0: .4byte REG_BLDCNT _080DFDB4: ldrh r0, [r2, 0xC] adds r0, 0x1 strh r0, [r2, 0xC] _080DFDBA: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80DFD58 thumb_func_start sub_80DFDC0 sub_80DFDC0: @ 80DFDC0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080DFDE8 @ =REG_BLDALPHA movs r2, 0x80 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r0, _080DFDEC @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080DFDF8 ldr r1, _080DFDF0 @ =REG_BLDCNT ldr r2, _080DFDF4 @ =0x00003f42 b _080DFDFC .align 2, 0 _080DFDE8: .4byte REG_BLDALPHA _080DFDEC: .4byte gUnknown_0202F7C8 _080DFDF0: .4byte REG_BLDCNT _080DFDF4: .4byte 0x00003f42 _080DFDF8: ldr r1, _080DFE0C @ =REG_BLDCNT ldr r2, _080DFE10 @ =0x00003f44 _080DFDFC: adds r0, r2, 0 strh r0, [r1] adds r0, r4, 0 bl move_anim_task_del pop {r4} pop {r0} bx r0 .align 2, 0 _080DFE0C: .4byte REG_BLDCNT _080DFE10: .4byte 0x00003f44 thumb_func_end sub_80DFDC0 thumb_func_start sub_80DFE14 sub_80DFE14: @ 80DFE14 push {r4-r6,lr} adds r4, r0, 0 ldr r6, _080DFE80 @ =gUnknown_0202F7C9 ldrb r0, [r6] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x30] ldr r5, _080DFE84 @ =gUnknown_0202F7C8 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r6] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x34] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] movs r0, 0x7E strh r0, [r4, 0x2E] adds r0, r4, 0 bl sub_8078A5C ldrh r0, [r4, 0x30] negs r0, r0 strh r0, [r4, 0x34] ldrh r0, [r4, 0x32] negs r0, r0 strh r0, [r4, 0x36] ldr r0, _080DFE88 @ =0x0000ffd8 strh r0, [r4, 0x3A] ldr r1, _080DFE8C @ =sub_80DFE90 str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DFE80: .4byte gUnknown_0202F7C9 _080DFE84: .4byte gUnknown_0202F7C8 _080DFE88: .4byte 0x0000ffd8 _080DFE8C: .4byte sub_80DFE90 thumb_func_end sub_80DFE14 thumb_func_start sub_80DFE90 sub_80DFE90: @ 80DFE90 push {r4-r6,lr} adds r4, r0, 0 ldrh r5, [r4, 0x30] ldrh r0, [r4, 0x34] adds r2, r5, r0 strh r2, [r4, 0x34] ldrh r3, [r4, 0x32] ldrh r6, [r4, 0x36] adds r1, r3, r6 strh r1, [r4, 0x36] lsls r0, r2, 16 asrs r0, 24 strh r0, [r4, 0x24] lsls r0, r1, 16 asrs r0, 24 strh r0, [r4, 0x26] movs r6, 0x3C ldrsh r0, [r4, r6] cmp r0, 0 bne _080DFED2 adds r0, r2, r5 strh r0, [r4, 0x34] adds r1, r3 strh r1, [r4, 0x36] lsls r0, 16 asrs r0, 24 strh r0, [r4, 0x24] lsls r1, 16 asrs r1, 24 strh r1, [r4, 0x26] ldrh r0, [r4, 0x2E] subs r0, 0x1 strh r0, [r4, 0x2E] _080DFED2: movs r1, 0x38 ldrsh r0, [r4, r1] movs r2, 0x3A ldrsh r1, [r4, r2] bl Sin ldrh r6, [r4, 0x26] adds r0, r6 strh r0, [r4, 0x26] ldrh r0, [r4, 0x38] adds r0, 0x3 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] cmp r0, 0x7F ble _080DFF02 movs r0, 0 strh r0, [r4, 0x38] ldrh r0, [r4, 0x3A] adds r0, 0x14 strh r0, [r4, 0x3A] ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] _080DFF02: ldrh r0, [r4, 0x2E] subs r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 cmp r0, 0 bne _080DFF14 adds r0, r4, 0 bl move_anim_8072740 _080DFF14: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80DFE90 thumb_func_start sub_80DFF1C sub_80DFF1C: @ 80DFF1C push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080DFF50 @ =gUnknown_03004B00 ldrh r0, [r5] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] ldrh r0, [r5, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldrb r1, [r5, 0x4] adds r0, r4, 0 bl StartSpriteAffineAnim ldrh r0, [r5, 0x6] strh r0, [r4, 0x2E] ldrh r0, [r5, 0x8] strh r0, [r4, 0x30] ldrh r0, [r5, 0xA] strh r0, [r4, 0x32] ldr r0, _080DFF54 @ =sub_80DFF58 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DFF50: .4byte gUnknown_03004B00 _080DFF54: .4byte sub_80DFF58 thumb_func_end sub_80DFF1C thumb_func_start sub_80DFF58 sub_80DFF58: @ 80DFF58 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x2E] ldrh r1, [r2, 0x36] adds r0, r1 strh r0, [r2, 0x36] ldrh r1, [r2, 0x30] ldrh r3, [r2, 0x38] adds r1, r3 strh r1, [r2, 0x38] lsls r0, 16 asrs r0, 24 strh r0, [r2, 0x24] lsls r1, 16 asrs r1, 24 strh r1, [r2, 0x26] ldrh r0, [r2, 0x34] adds r0, 0x1 strh r0, [r2, 0x34] lsls r0, 16 asrs r0, 16 movs r3, 0x32 ldrsh r1, [r2, r3] cmp r0, r1 bne _080DFF8E ldr r0, _080DFF94 @ =sub_80DFF98 str r0, [r2, 0x1C] _080DFF8E: pop {r0} bx r0 .align 2, 0 _080DFF94: .4byte sub_80DFF98 thumb_func_end sub_80DFF58 thumb_func_start sub_80DFF98 sub_80DFF98: @ 80DFF98 push {lr} adds r3, r0, 0 ldrh r1, [r3, 0x36] ldrh r0, [r3, 0x2E] subs r1, r0 strh r1, [r3, 0x36] ldrh r0, [r3, 0x38] ldrh r2, [r3, 0x30] subs r0, r2 strh r0, [r3, 0x38] lsls r1, 16 asrs r1, 24 strh r1, [r3, 0x24] lsls r0, 16 asrs r0, 24 strh r0, [r3, 0x26] ldrh r0, [r3, 0x34] subs r0, 0x1 strh r0, [r3, 0x34] lsls r0, 16 cmp r0, 0 bne _080DFFCA adds r0, r3, 0 bl move_anim_8074EE0 _080DFFCA: pop {r0} bx r0 thumb_func_end sub_80DFF98 thumb_func_start sub_80DFFD0 sub_80DFFD0: @ 80DFFD0 push {r4-r7,lr} adds r4, r0, 0 ldr r0, _080DFFE4 @ =gUnknown_03004B00 movs r2, 0 ldrsh r1, [r0, r2] adds r3, r0, 0 cmp r1, 0 bne _080DFFEC ldr r0, _080DFFE8 @ =gUnknown_0202F7C8 b _080DFFEE .align 2, 0 _080DFFE4: .4byte gUnknown_03004B00 _080DFFE8: .4byte gUnknown_0202F7C8 _080DFFEC: ldr r0, _080E001C @ =gUnknown_0202F7C9 _080DFFEE: ldrb r5, [r0] movs r6, 0x14 ldrh r2, [r4, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x4 ldr r7, _080E0020 @ =0x000003ff adds r0, r7, 0 ands r1, r0 ldr r0, _080E0024 @ =0xfffffc00 ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] movs r1, 0x2 ldrsh r0, [r3, r1] cmp r0, 0x1 beq _080E004C cmp r0, 0x1 bgt _080E0028 cmp r0, 0 beq _080E0032 b _080E00A0 .align 2, 0 _080E001C: .4byte gUnknown_0202F7C9 _080E0020: .4byte 0x000003ff _080E0024: .4byte 0xfffffc00 _080E0028: cmp r0, 0x2 beq _080E0066 cmp r0, 0x3 beq _080E007E b _080E00A0 _080E0032: adds r0, r5, 0 movs r1, 0x5 bl sub_807A100 subs r0, 0x8 strh r0, [r4, 0x20] adds r0, r5, 0 movs r1, 0x2 bl sub_807A100 adds r0, 0x8 strh r0, [r4, 0x22] b _080E00A0 _080E004C: adds r0, r5, 0 movs r1, 0x5 bl sub_807A100 subs r0, 0xE strh r0, [r4, 0x20] adds r0, r5, 0 movs r1, 0x2 bl sub_807A100 adds r0, 0x10 strh r0, [r4, 0x22] b _080E00A0 _080E0066: adds r0, r5, 0 movs r1, 0x4 bl sub_807A100 adds r0, 0x8 strh r0, [r4, 0x20] adds r0, r5, 0 movs r1, 0x2 bl sub_807A100 adds r0, 0x8 b _080E0094 _080E007E: adds r0, r5, 0 movs r1, 0x4 bl sub_807A100 adds r0, 0xE strh r0, [r4, 0x20] adds r0, r5, 0 movs r1, 0x2 bl sub_807A100 adds r0, 0x10 _080E0094: strh r0, [r4, 0x22] adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim movs r6, 0xEC _080E00A0: movs r0, 0x20 strh r0, [r4, 0x2E] lsls r0, r6, 24 asrs r0, 24 ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x32] ldrh r0, [r4, 0x22] adds r0, 0xC strh r0, [r4, 0x36] ldr r0, _080E00C8 @ =0x0000fff4 strh r0, [r4, 0x38] adds r0, r4, 0 bl sub_80786EC ldr r0, _080E00CC @ =sub_80E00D0 str r0, [r4, 0x1C] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E00C8: .4byte 0x0000fff4 _080E00CC: .4byte sub_80E00D0 thumb_func_end sub_80DFFD0 thumb_func_start sub_80E00D0 sub_80E00D0: @ 80E00D0 push {r4,lr} adds r4, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080E00E4 adds r0, r4, 0 bl move_anim_8074EE0 _080E00E4: pop {r4} pop {r0} bx r0 thumb_func_end sub_80E00D0 thumb_func_start sub_80E00EC sub_80E00EC: @ 80E00EC push {r4-r7,lr} sub sp, 0x18 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080E0150 @ =gTasks adds r5, r1, r0 ldr r4, _080E0154 @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, 0x1F movs r6, 0 strh r0, [r5, 0x16] ldrb r0, [r4] movs r1, 0x2 bl sub_807A100 subs r0, 0x7 strh r0, [r5, 0x14] ldrh r1, [r5, 0x16] strh r1, [r5, 0x12] strh r0, [r5, 0x10] subs r1, r0 lsls r1, 8 strh r1, [r5, 0x22] ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 subs r1, 0x20 strh r1, [r5, 0x24] adds r0, 0x20 strh r0, [r5, 0x26] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080E015C ldr r0, _080E0158 @ =0x0000fff4 b _080E015E .align 2, 0 _080E0150: .4byte gTasks _080E0154: .4byte gUnknown_0202F7C8 _080E0158: .4byte 0x0000fff4 _080E015C: ldr r0, _080E01A8 @ =0x0000ffc0 _080E015E: strh r0, [r5, 0x18] ldr r0, _080E01AC @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0xE] cmp r0, 0x1 bne _080E01C4 add r4, sp, 0xC adds r0, r4, 0 bl sub_8078914 ldr r0, _080E01B0 @ =gUnknown_030041B4 ldrh r0, [r0] strh r0, [r5, 0x1C] ldr r1, _080E01B4 @ =REG_BLDCNT ldr r2, _080E01B8 @ =0x00003f42 adds r0, r2, 0 strh r0, [r1] ldrb r1, [r4, 0x8] lsls r1, 4 movs r0, 0 movs r2, 0x20 bl FillPalette ldr r0, _080E01BC @ =REG_BG1VOFS str r0, [sp] movs r7, 0x2 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E01F4 ldr r1, _080E01C0 @ =gUnknown_03004288 b _080E01EE .align 2, 0 _080E01A8: .4byte 0x0000ffc0 _080E01AC: .4byte gUnknown_0202F7C8 _080E01B0: .4byte gUnknown_030041B4 _080E01B4: .4byte REG_BLDCNT _080E01B8: .4byte 0x00003f42 _080E01BC: .4byte REG_BG1VOFS _080E01C0: .4byte gUnknown_03004288 _080E01C4: ldr r0, _080E0278 @ =gUnknown_03004280 ldrh r0, [r0] strh r0, [r5, 0x1C] ldr r1, _080E027C @ =REG_BLDCNT ldr r2, _080E0280 @ =0x00003f44 adds r0, r2, 0 strh r0, [r1] movs r0, 0 movs r1, 0x90 movs r2, 0x20 bl FillPalette ldr r0, _080E0284 @ =REG_BG2VOFS str r0, [sp] movs r7, 0x4 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E01F4 ldr r1, _080E0288 @ =gUnknown_030042C0 _080E01EE: ldrh r0, [r1] adds r0, 0xF0 strh r0, [r1] _080E01F4: ldr r0, _080E028C @ =0xa2600001 str r0, [sp, 0x4] mov r2, sp movs r1, 0 movs r0, 0x1 strb r0, [r2, 0x8] mov r0, sp strb r1, [r0, 0x9] strh r1, [r5, 0x1E] movs r0, 0x10 strh r0, [r5, 0x20] strh r1, [r5, 0x8] strh r1, [r5, 0xA] strh r1, [r5, 0xC] movs r0, 0x3 bl sub_80E08CC movs r3, 0 ldr r4, _080E0290 @ =gUnknown_03004DE0 movs r0, 0xF0 lsls r0, 3 adds r6, r4, r0 _080E0220: lsls r1, r3, 1 adds r2, r1, r4 ldrh r0, [r5, 0x1C] strh r0, [r2] adds r1, r6 ldrh r0, [r5, 0x1C] strh r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x6F bls _080E0220 ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] bl sub_80895F8 ldr r1, _080E0294 @ =REG_WINOUT movs r0, 0x3F eors r7, r0 movs r2, 0xFC lsls r2, 6 adds r0, r2, 0 orrs r7, r0 strh r7, [r1] subs r1, 0x2 adds r2, 0x3F adds r0, r2, 0 strh r0, [r1] ldr r2, _080E0298 @ =gUnknown_030042C4 ldrh r0, [r5, 0x24] lsls r0, 8 ldrh r1, [r5, 0x26] orrs r0, r1 strh r0, [r2] ldr r1, _080E029C @ =gUnknown_03004240 movs r0, 0xA0 strh r0, [r1] ldr r0, _080E02A0 @ =sub_80E02A4 str r0, [r5] add sp, 0x18 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E0278: .4byte gUnknown_03004280 _080E027C: .4byte REG_BLDCNT _080E0280: .4byte 0x00003f44 _080E0284: .4byte REG_BG2VOFS _080E0288: .4byte gUnknown_030042C0 _080E028C: .4byte 0xa2600001 _080E0290: .4byte gUnknown_03004DE0 _080E0294: .4byte REG_WINOUT _080E0298: .4byte gUnknown_030042C4 _080E029C: .4byte gUnknown_03004240 _080E02A0: .4byte sub_80E02A4 thumb_func_end sub_80E00EC thumb_func_start sub_80E02A4 sub_80E02A4: @ 80E02A4 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080E02C8 @ =gTasks adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x4 bls _080E02BE b _080E03B6 _080E02BE: lsls r0, 2 ldr r1, _080E02CC @ =_080E02D0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E02C8: .4byte gTasks _080E02CC: .4byte _080E02D0 .align 2, 0 _080E02D0: .4byte _080E02E4 .4byte _080E0344 .4byte _080E035E .4byte _080E039C .4byte _080E03B0 _080E02E4: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080E03B6 movs r0, 0 strh r0, [r4, 0xA] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080E0314 ldrh r1, [r4, 0x1E] movs r2, 0x1E ldrsh r0, [r4, r2] cmp r0, 0xC beq _080E0322 adds r0, r1, 0x1 strh r0, [r4, 0x1E] b _080E0322 _080E0314: ldrh r1, [r4, 0x20] movs r2, 0x20 ldrsh r0, [r4, r2] cmp r0, 0x8 beq _080E0322 subs r0, r1, 0x1 strh r0, [r4, 0x20] _080E0322: ldr r2, _080E0340 @ =REG_BLDALPHA ldrh r0, [r4, 0x20] lsls r0, 8 ldrh r1, [r4, 0x1E] orrs r0, r1 strh r0, [r2] movs r1, 0x1E ldrsh r0, [r4, r1] cmp r0, 0xC bne _080E03B6 movs r2, 0x20 ldrsh r0, [r4, r2] cmp r0, 0x8 bne _080E03B6 b _080E03A2 .align 2, 0 _080E0340: .4byte REG_BLDALPHA _080E0344: ldrh r0, [r4, 0x10] subs r0, 0x8 strh r0, [r4, 0x10] adds r0, r4, 0 bl sub_80E079C movs r0, 0x10 ldrsh r1, [r4, r0] movs r2, 0x18 ldrsh r0, [r4, r2] cmp r1, r0 bge _080E03B6 b _080E03A2 _080E035E: ldrh r0, [r4, 0x10] subs r0, 0x8 strh r0, [r4, 0x10] adds r0, r4, 0 bl sub_80E079C ldrh r1, [r4, 0x24] adds r1, 0x4 strh r1, [r4, 0x24] ldrh r0, [r4, 0x26] subs r2, r0, 0x4 strh r2, [r4, 0x26] lsls r1, 16 lsls r0, r2, 16 cmp r1, r0 blt _080E0380 strh r2, [r4, 0x24] _080E0380: ldr r3, _080E0398 @ =gUnknown_030042C4 ldrh r2, [r4, 0x24] lsls r0, r2, 8 ldrh r1, [r4, 0x26] orrs r0, r1 strh r0, [r3] lsls r2, 16 lsls r1, 16 cmp r2, r1 bne _080E03B6 b _080E03A2 .align 2, 0 _080E0398: .4byte gUnknown_030042C4 _080E039C: ldr r1, _080E03AC @ =gUnknown_03004DC0 movs r0, 0x3 strb r0, [r1, 0x15] _080E03A2: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080E03B6 .align 2, 0 _080E03AC: .4byte gUnknown_03004DC0 _080E03B0: adds r0, r2, 0 bl move_anim_task_del _080E03B6: pop {r4} pop {r0} bx r0 thumb_func_end sub_80E02A4 thumb_func_start sub_80E03BC sub_80E03BC: @ 80E03BC push {r4-r7,lr} sub sp, 0x18 lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080E03E4 @ =gTasks adds r5, r0, r1 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0x4 bls _080E03D8 b _080E05F2 _080E03D8: lsls r0, 2 ldr r1, _080E03E8 @ =_080E03EC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E03E4: .4byte gTasks _080E03E8: .4byte _080E03EC .align 2, 0 _080E03EC: .4byte _080E0400 .4byte _080E048C .4byte _080E04D0 .4byte _080E053C .4byte _080E05A4 _080E0400: bl sub_8076BE0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080E043C ldr r0, _080E042C @ =gUnknown_030042C4 movs r1, 0 strh r1, [r0] ldr r0, _080E0430 @ =gUnknown_03004240 strh r1, [r0] ldr r0, _080E0434 @ =REG_WININ ldr r2, _080E0438 @ =0x00003f3f adds r1, r2, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, r4, 0 bl move_anim_task_del b _080E05F2 .align 2, 0 _080E042C: .4byte gUnknown_030042C4 _080E0430: .4byte gUnknown_03004240 _080E0434: .4byte REG_WININ _080E0438: .4byte 0x00003f3f _080E043C: ldr r0, _080E045C @ =gUnknown_0202F7C9 ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0xE] cmp r0, 0x1 bne _080E046C ldr r1, _080E0460 @ =REG_BLDCNT ldr r2, _080E0464 @ =0x00003f42 adds r0, r2, 0 strh r0, [r1] ldr r1, _080E0468 @ =gUnknown_03004288 b _080E0476 .align 2, 0 _080E045C: .4byte gUnknown_0202F7C9 _080E0460: .4byte REG_BLDCNT _080E0464: .4byte 0x00003f42 _080E0468: .4byte gUnknown_03004288 _080E046C: ldr r1, _080E0480 @ =REG_BLDCNT ldr r2, _080E0484 @ =0x00003f44 adds r0, r2, 0 strh r0, [r1] ldr r1, _080E0488 @ =gUnknown_030042C0 _080E0476: ldrh r0, [r1] adds r0, 0xF0 strh r0, [r1] b _080E0590 .align 2, 0 _080E0480: .4byte REG_BLDCNT _080E0484: .4byte 0x00003f44 _080E0488: .4byte gUnknown_030042C0 _080E048C: movs r1, 0xE ldrsh r0, [r5, r1] cmp r0, 0x1 bne _080E04B4 mov r0, sp bl sub_8078914 ldr r0, _080E04B0 @ =gUnknown_030041B4 ldrh r0, [r0] strh r0, [r5, 0x1C] mov r0, sp ldrb r1, [r0, 0x8] lsls r1, 4 movs r0, 0 movs r2, 0x20 bl FillPalette b _080E04C4 .align 2, 0 _080E04B0: .4byte gUnknown_030041B4 _080E04B4: ldr r0, _080E04CC @ =gUnknown_03004280 ldrh r0, [r0] strh r0, [r5, 0x1C] movs r0, 0 movs r1, 0x90 movs r2, 0x20 bl FillPalette _080E04C4: movs r0, 0x3 bl sub_80E08CC b _080E0590 .align 2, 0 _080E04CC: .4byte gUnknown_03004280 _080E04D0: ldr r4, _080E051C @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, 0x1F movs r6, 0 strh r0, [r5, 0x16] ldrb r0, [r4] movs r1, 0x2 bl sub_807A100 subs r0, 0x7 strh r0, [r5, 0x14] ldrh r1, [r5, 0x16] subs r1, r0 lsls r1, 8 strh r1, [r5, 0x22] ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 subs r1, r0, 0x4 strh r1, [r5, 0x24] adds r0, 0x4 strh r0, [r5, 0x26] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080E0524 ldr r0, _080E0520 @ =0x0000fff4 b _080E0526 .align 2, 0 _080E051C: .4byte gUnknown_0202F7C9 _080E0520: .4byte 0x0000fff4 _080E0524: ldr r0, _080E0538 @ =0x0000ffc0 _080E0526: strh r0, [r5, 0x18] ldrh r0, [r5, 0x18] strh r0, [r5, 0x10] strh r0, [r5, 0x12] movs r0, 0xC strh r0, [r5, 0x1E] movs r0, 0x8 strh r0, [r5, 0x20] b _080E0590 .align 2, 0 _080E0538: .4byte 0x0000ffc0 _080E053C: movs r2, 0xE ldrsh r0, [r5, r2] cmp r0, 0x1 bne _080E054C ldr r0, _080E0548 @ =REG_BG1VOFS b _080E054E .align 2, 0 _080E0548: .4byte REG_BG1VOFS _080E054C: ldr r0, _080E0598 @ =REG_BG2VOFS _080E054E: str r0, [sp, 0xC] movs r3, 0 add r4, sp, 0xC ldr r6, _080E059C @ =gUnknown_03004DE0 movs r0, 0xF0 lsls r0, 3 adds r7, r6, r0 _080E055C: lsls r1, r3, 1 adds r2, r1, r6 ldrh r0, [r5, 0x1C] adds r0, 0x9F subs r0, r3 strh r0, [r2] adds r1, r7 ldrh r0, [r5, 0x1C] adds r0, 0x9F subs r0, r3 strh r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x6F bls _080E055C ldr r1, _080E05A0 @ =0xa2600001 str r1, [r4, 0x4] movs r2, 0 movs r0, 0x1 strb r0, [r4, 0x8] strb r2, [r4, 0x9] ldr r0, [sp, 0xC] ldr r2, [r4, 0x8] bl sub_80895F8 _080E0590: ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] b _080E05F2 .align 2, 0 _080E0598: .4byte REG_BG2VOFS _080E059C: .4byte gUnknown_03004DE0 _080E05A0: .4byte 0xa2600001 _080E05A4: movs r1, 0xE ldrsh r0, [r5, r1] cmp r0, 0x1 bne _080E05BC ldr r1, _080E05B4 @ =REG_WINOUT ldr r2, _080E05B8 @ =0x00003f3d b _080E05C0 .align 2, 0 _080E05B4: .4byte REG_WINOUT _080E05B8: .4byte 0x00003f3d _080E05BC: ldr r1, _080E05FC @ =REG_WINOUT ldr r2, _080E0600 @ =0x00003f3b _080E05C0: adds r0, r2, 0 strh r0, [r1] ldr r1, _080E0604 @ =REG_WININ ldr r2, _080E0608 @ =0x00003f3f adds r0, r2, 0 strh r0, [r1] ldr r2, _080E060C @ =gUnknown_030042C4 ldrh r0, [r5, 0x24] lsls r0, 8 ldrh r1, [r5, 0x26] orrs r0, r1 strh r0, [r2] ldr r1, _080E0610 @ =gUnknown_03004240 movs r0, 0xA0 strh r0, [r1] movs r0, 0 strh r0, [r5, 0x8] strh r0, [r5, 0xA] strh r0, [r5, 0xC] ldr r1, _080E0614 @ =REG_BLDALPHA ldr r2, _080E0618 @ =0x0000080c adds r0, r2, 0 strh r0, [r1] ldr r0, _080E061C @ =sub_80E0620 str r0, [r5] _080E05F2: add sp, 0x18 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E05FC: .4byte REG_WINOUT _080E0600: .4byte 0x00003f3b _080E0604: .4byte REG_WININ _080E0608: .4byte 0x00003f3f _080E060C: .4byte gUnknown_030042C4 _080E0610: .4byte gUnknown_03004240 _080E0614: .4byte REG_BLDALPHA _080E0618: .4byte 0x0000080c _080E061C: .4byte sub_80E0620 thumb_func_end sub_80E03BC thumb_func_start sub_80E0620 sub_80E0620: @ 80E0620 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080E0644 @ =gTasks adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x4 bls _080E063A b _080E0784 _080E063A: lsls r0, 2 ldr r1, _080E0648 @ =_080E064C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E0644: .4byte gTasks _080E0648: .4byte _080E064C .align 2, 0 _080E064C: .4byte _080E0660 .4byte _080E068C .4byte _080E06F4 .4byte _080E0754 .4byte _080E0768 _080E0660: ldrh r0, [r4, 0x12] adds r0, 0x8 strh r0, [r4, 0x12] lsls r0, 16 asrs r0, 16 ldrh r2, [r4, 0x16] movs r3, 0x16 ldrsh r1, [r4, r3] cmp r0, r1 blt _080E0676 strh r2, [r4, 0x12] _080E0676: adds r0, r4, 0 bl sub_80E079C movs r0, 0x12 ldrsh r1, [r4, r0] movs r2, 0x16 ldrsh r0, [r4, r2] cmp r1, r0 beq _080E068A b _080E0784 _080E068A: b _080E075A _080E068C: movs r3, 0x26 ldrsh r0, [r4, r3] movs r2, 0x24 ldrsh r1, [r4, r2] subs r0, r1 cmp r0, 0x3F bgt _080E06A8 ldrh r0, [r4, 0x24] subs r0, 0x4 strh r0, [r4, 0x24] ldrh r0, [r4, 0x26] adds r0, 0x4 strh r0, [r4, 0x26] b _080E06AC _080E06A8: movs r0, 0x1 strh r0, [r4, 0xA] _080E06AC: ldr r2, _080E06F0 @ =gUnknown_030042C4 ldrh r0, [r4, 0x24] lsls r0, 8 ldrh r1, [r4, 0x26] orrs r0, r1 strh r0, [r2] ldrh r0, [r4, 0x10] adds r0, 0x8 strh r0, [r4, 0x10] lsls r0, 16 asrs r0, 16 ldrh r2, [r4, 0x14] movs r3, 0x14 ldrsh r1, [r4, r3] cmp r0, r1 blt _080E06CE strh r2, [r4, 0x10] _080E06CE: adds r0, r4, 0 bl sub_80E079C movs r0, 0x10 ldrsh r1, [r4, r0] movs r2, 0x14 ldrsh r0, [r4, r2] cmp r1, r0 bne _080E0784 movs r3, 0xA ldrsh r0, [r4, r3] cmp r0, 0 beq _080E0784 movs r0, 0 strh r0, [r4, 0xA] b _080E075A .align 2, 0 _080E06F0: .4byte gUnknown_030042C4 _080E06F4: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080E0784 movs r0, 0 strh r0, [r4, 0xA] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080E0724 ldrh r1, [r4, 0x1E] movs r2, 0x1E ldrsh r0, [r4, r2] cmp r0, 0 beq _080E0732 subs r0, r1, 0x1 strh r0, [r4, 0x1E] b _080E0732 _080E0724: ldrh r1, [r4, 0x20] movs r3, 0x20 ldrsh r0, [r4, r3] cmp r0, 0xF bgt _080E0732 adds r0, r1, 0x1 strh r0, [r4, 0x20] _080E0732: ldr r2, _080E0750 @ =REG_BLDALPHA ldrh r0, [r4, 0x20] lsls r0, 8 ldrh r1, [r4, 0x1E] orrs r0, r1 strh r0, [r2] movs r1, 0x1E ldrsh r0, [r4, r1] cmp r0, 0 bne _080E0784 movs r2, 0x20 ldrsh r0, [r4, r2] cmp r0, 0x10 bne _080E0784 b _080E075A .align 2, 0 _080E0750: .4byte REG_BLDALPHA _080E0754: ldr r1, _080E0764 @ =gUnknown_03004DC0 movs r0, 0x3 strb r0, [r1, 0x15] _080E075A: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080E0784 .align 2, 0 _080E0764: .4byte gUnknown_03004DC0 _080E0768: ldr r0, _080E078C @ =gUnknown_030042C4 movs r1, 0 strh r1, [r0] ldr r0, _080E0790 @ =gUnknown_03004240 strh r1, [r0] ldr r0, _080E0794 @ =REG_WININ ldr r3, _080E0798 @ =0x00003f3f adds r1, r3, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, r2, 0 bl move_anim_task_del _080E0784: pop {r4} pop {r0} bx r0 .align 2, 0 _080E078C: .4byte gUnknown_030042C4 _080E0790: .4byte gUnknown_03004240 _080E0794: .4byte REG_WININ _080E0798: .4byte 0x00003f3f thumb_func_end sub_80E0620 thumb_func_start sub_80E079C sub_80E079C: @ 80E079C push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 ldrh r0, [r6, 0x12] ldrh r4, [r6, 0x10] subs r0, r4 lsls r0, 16 asrs r1, r0, 16 cmp r1, 0 beq _080E0890 movs r2, 0x22 ldrsh r0, [r6, r2] bl __divsi3 mov r8, r0 movs r3, 0x14 ldrsh r0, [r6, r3] lsls r5, r0, 8 lsls r0, r4, 16 movs r4, 0 cmp r0, 0 ble _080E07FC ldr r0, _080E0888 @ =gUnknown_03004DE0 mov r12, r0 ldr r7, _080E088C @ =gUnknown_03004DC0 _080E07D0: lsls r2, r4, 16 asrs r2, 16 lsls r3, r2, 1 ldrb r1, [r7, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r3, r0 add r3, r12 adds r1, r2, 0 subs r1, 0x9F ldrh r0, [r6, 0x1C] subs r0, r1 strh r0, [r3] adds r2, 0x1 lsls r2, 16 lsrs r4, r2, 16 asrs r2, 16 movs r1, 0x10 ldrsh r0, [r6, r1] cmp r2, r0 blt _080E07D0 _080E07FC: ldrh r4, [r6, 0x10] lsls r3, r4, 16 asrs r1, r3, 16 movs r2, 0x12 ldrsh r0, [r6, r2] cmp r1, r0 bgt _080E0846 ldr r0, _080E0888 @ =gUnknown_03004DE0 mov r12, r0 ldr r7, _080E088C @ =gUnknown_03004DC0 _080E0810: asrs r4, r3, 16 cmp r4, 0 blt _080E0832 asrs r1, r5, 8 subs r1, r4 lsls r3, r4, 1 ldrb r2, [r7, 0x14] lsls r0, r2, 4 subs r0, r2 lsls r0, 7 adds r3, r0 add r3, r12 lsls r1, 16 asrs r1, 16 ldrh r2, [r6, 0x1C] adds r1, r2 strh r1, [r3] _080E0832: add r5, r8 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 lsls r3, r4, 16 asrs r1, r3, 16 movs r2, 0x12 ldrsh r0, [r6, r2] cmp r1, r0 ble _080E0810 _080E0846: movs r3, 0x1C ldrsh r0, [r6, r3] adds r0, 0x9F lsls r2, r4, 16 asrs r1, r2, 16 subs r5, r0, r1 movs r3, 0x16 ldrsh r0, [r6, r3] cmp r1, r0 bge _080E08BE ldr r7, _080E0888 @ =gUnknown_03004DE0 ldr r4, _080E088C @ =gUnknown_03004DC0 _080E085E: asrs r3, r2, 16 cmp r3, 0 blt _080E0876 lsls r2, r3, 1 ldrb r1, [r4, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 adds r2, r7 strh r5, [r2] subs r5, 0x1 _080E0876: adds r0, r3, 0x1 lsls r2, r0, 16 asrs r1, r2, 16 movs r3, 0x16 ldrsh r0, [r6, r3] cmp r1, r0 blt _080E085E b _080E08BE .align 2, 0 _080E0888: .4byte gUnknown_03004DE0 _080E088C: .4byte gUnknown_03004DC0 _080E0890: movs r1, 0x1C ldrsh r0, [r6, r1] adds r5, r0, 0 adds r5, 0x9F movs r4, 0 ldr r3, _080E08C8 @ =gUnknown_03004DE0 movs r2, 0xF0 lsls r2, 3 adds r6, r3, r2 _080E08A2: lsls r0, r4, 16 asrs r0, 16 lsls r2, r0, 1 adds r1, r2, r3 strh r5, [r1] adds r2, r6 strh r5, [r2] subs r5, 0x1 adds r0, 0x1 lsls r0, 16 lsrs r4, r0, 16 asrs r0, 16 cmp r0, 0x6F ble _080E08A2 _080E08BE: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E08C8: .4byte gUnknown_03004DE0 thumb_func_end sub_80E079C thumb_func_start sub_80E08CC sub_80E08CC: @ 80E08CC push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 movs r4, 0 ldr r7, _080E0914 @ =gSprites movs r1, 0x3 ands r0, r1 lsls r5, r0, 2 movs r0, 0xD negs r0, r0 adds r6, r0, 0 _080E08E2: lsls r0, r4, 24 lsrs r0, 24 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _080E0902 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 ldrb r0, [r1, 0x5] ands r0, r6 orrs r0, r5 strb r0, [r1, 0x5] _080E0902: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x3 bls _080E08E2 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E0914: .4byte gSprites thumb_func_end sub_80E08CC thumb_func_start sub_80E0918 sub_80E0918: @ 80E0918 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r6, _080E09B8 @ =gUnknown_0202F7C8 ldrb r0, [r6] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 movs r1, 0x1 eors r0, r1 negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 ldrb r0, [r6] adds r1, r4, 0 bl sub_8076034 ldr r0, _080E09BC @ =gSprites mov r9, r0 ldr r0, _080E09C0 @ =gUnknown_02024BE0 mov r8, r0 ldrb r0, [r6] add r0, r8 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r9 adds r1, 0x3E ldrb r2, [r1] movs r7, 0x5 negs r7, r7 adds r0, r7, 0 ands r0, r2 strb r0, [r1] ldrb r0, [r6] movs r5, 0x2 eors r0, r5 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080E09A2 ldrb r0, [r6] eors r0, r5 movs r1, 0x1 eors r4, r1 adds r1, r4, 0 bl sub_8076034 ldrb r0, [r6] eors r0, r5 add r0, r8 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r9 adds r0, 0x3E ldrb r2, [r0] adds r1, r7, 0 ands r1, r2 strb r1, [r0] _080E09A2: mov r0, r10 bl move_anim_task_del pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E09B8: .4byte gUnknown_0202F7C8 _080E09BC: .4byte gSprites _080E09C0: .4byte gUnknown_02024BE0 thumb_func_end sub_80E0918 thumb_func_start sub_80E09C4 sub_80E09C4: @ 80E09C4 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r4, _080E0A0C @ =gUnknown_0202F7C8 ldrb r0, [r4] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 movs r1, 0x1 eors r0, r1 negs r1, r0 orrs r1, r0 lsrs r5, r1, 31 adds r0, r5, 0 bl sub_8076464 ldrb r1, [r4] movs r0, 0x2 eors r0, r1 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080E0A00 movs r0, 0x1 eors r5, r0 adds r0, r5, 0 bl sub_8076464 _080E0A00: adds r0, r6, 0 bl move_anim_task_del pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E0A0C: .4byte gUnknown_0202F7C8 thumb_func_end sub_80E09C4 thumb_func_start sub_80E0A10 sub_80E0A10: @ 80E0A10 push {r4,lr} adds r4, r0, 0 ldr r1, _080E0A40 @ =gUnknown_03004B00 ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] ldrh r0, [r1, 0x2] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] ldrb r1, [r1, 0x4] adds r0, r4, 0 bl StartSpriteAnim ldr r0, _080E0A44 @ =sub_8078600 str r0, [r4, 0x1C] ldr r1, _080E0A48 @ =move_anim_8072740 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4} pop {r0} bx r0 .align 2, 0 _080E0A40: .4byte gUnknown_03004B00 _080E0A44: .4byte sub_8078600 _080E0A48: .4byte move_anim_8072740 thumb_func_end sub_80E0A10 thumb_func_start sub_80E0A4C sub_80E0A4C: @ 80E0A4C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r7, 0 ldr r0, _080E0B50 @ =gUnknown_030042C4 strh r7, [r0] ldr r0, _080E0B54 @ =gUnknown_03004240 strh r7, [r0] ldr r1, _080E0B58 @ =REG_WININ ldr r2, _080E0B5C @ =0x00003f3f adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r3, _080E0B60 @ =0x00003f3d adds r0, r3, 0 strh r0, [r1] movs r2, 0x80 lsls r2, 19 ldrh r0, [r2] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 orrs r0, r1 strh r0, [r2] ldr r1, _080E0B64 @ =REG_BLDCNT ldr r2, _080E0B68 @ =0x00003f42 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r3, _080E0B6C @ =0x00000c08 adds r0, r3, 0 strh r0, [r1] ldr r5, _080E0B70 @ =REG_BG1CNT ldrb r1, [r5] movs r0, 0x4 negs r0, r0 mov r8, r0 ands r0, r1 strb r0, [r5] ldrb r1, [r5, 0x1] movs r0, 0x3F ands r0, r1 strb r0, [r5, 0x1] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E0AC4 ldrb r0, [r5] movs r1, 0xD negs r1, r1 ands r1, r0 movs r0, 0x4 orrs r1, r0 strb r1, [r5] _080E0AC4: bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _080E0B40 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E0B40 ldr r4, _080E0B74 @ =gUnknown_0202F7C8 ldrb r0, [r4] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _080E0AF4 ldrb r0, [r4] bl battle_get_per_side_status lsls r0, 24 cmp r0, 0 bne _080E0B40 _080E0AF4: ldrb r0, [r4] movs r6, 0x2 eors r0, r6 bl b_side_obj__get_some_boolean lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080E0B40 ldr r3, _080E0B78 @ =gSprites ldr r1, _080E0B7C @ =gUnknown_02024BE0 ldrb r0, [r4] eors r0, r6 adds r0, r1 ldrb r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r3 ldrb r3, [r2, 0x5] lsls r1, r3, 28 lsrs r1, 30 subs r1, 0x1 movs r0, 0x3 ands r1, r0 lsls r1, 2 movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] ldrb r1, [r5] mov r0, r8 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r5] movs r7, 0x1 _080E0B40: bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080E0B84 ldr r0, _080E0B80 @ =0x02019348 ldrh r5, [r0] b _080E0BCC .align 2, 0 _080E0B50: .4byte gUnknown_030042C4 _080E0B54: .4byte gUnknown_03004240 _080E0B58: .4byte REG_WININ _080E0B5C: .4byte 0x00003f3f _080E0B60: .4byte 0x00003f3d _080E0B64: .4byte REG_BLDCNT _080E0B68: .4byte 0x00003f42 _080E0B6C: .4byte 0x00000c08 _080E0B70: .4byte REG_BG1CNT _080E0B74: .4byte gUnknown_0202F7C8 _080E0B78: .4byte gSprites _080E0B7C: .4byte gUnknown_02024BE0 _080E0B80: .4byte 0x02019348 _080E0B84: ldr r4, _080E0BA4 @ =gUnknown_0202F7C8 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080E0BB0 ldr r1, _080E0BA8 @ =gUnknown_02024A6A ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080E0BAC @ =gEnemyParty b _080E0BC0 .align 2, 0 _080E0BA4: .4byte gUnknown_0202F7C8 _080E0BA8: .4byte gUnknown_02024A6A _080E0BAC: .4byte gEnemyParty _080E0BB0: ldr r1, _080E0C58 @ =gUnknown_02024A6A ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080E0C5C @ =gPlayerParty _080E0BC0: adds r0, r1 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r5, r0, 16 _080E0BCC: movs r0, 0 bl obj_id_for_side_relative_to_move adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080E0C60 @ =gUnknown_0202F7C8 ldrb r0, [r0] adds r1, r4, 0 adds r2, r5, 0 bl sub_807A4A0 lsls r0, 24 lsrs r5, r0, 24 mov r0, sp bl sub_8078914 ldr r1, [sp, 0x4] movs r0, 0 str r0, [sp, 0xC] ldr r2, _080E0C64 @ =0x040000d4 add r0, sp, 0xC str r0, [r2] str r1, [r2, 0x4] ldr r0, _080E0C68 @ =0x85000400 str r0, [r2, 0x8] ldr r0, [r2, 0x8] ldr r0, _080E0C6C @ =gUnknown_08D1D574 bl LZDecompressVram ldr r0, _080E0C70 @ =gUnknown_08D1D410 ldr r1, [sp] bl LZDecompressVram ldr r0, _080E0C74 @ =gUnknown_08D1D54C mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 movs r2, 0x20 bl LoadCompressedPalette ldr r2, _080E0C78 @ =gUnknown_030042C0 ldr r0, _080E0C7C @ =gSprites lsls r1, r4, 4 adds r1, r4 lsls r1, 2 adds r1, r0 ldrh r0, [r1, 0x20] negs r0, r0 adds r0, 0x60 strh r0, [r2] ldr r2, _080E0C80 @ =gUnknown_030041B4 ldrh r0, [r1, 0x22] negs r0, r0 adds r0, 0x20 strh r0, [r2] ldrb r0, [r1, 0x5] lsrs r0, 4 adds r0, 0x10 adds r1, r0, 0 ldr r2, _080E0C84 @ =gUnknown_03004B00 movs r3, 0x2 ldrsh r0, [r2, r3] cmp r0, 0 bne _080E0C88 adds r0, r1, 0 movs r1, 0 bl sub_8079108 b _080E0C94 .align 2, 0 _080E0C58: .4byte gUnknown_02024A6A _080E0C5C: .4byte gPlayerParty _080E0C60: .4byte gUnknown_0202F7C8 _080E0C64: .4byte 0x040000d4 _080E0C68: .4byte 0x85000400 _080E0C6C: .4byte gUnknown_08D1D574 _080E0C70: .4byte gUnknown_08D1D410 _080E0C74: .4byte gUnknown_08D1D54C _080E0C78: .4byte gUnknown_030042C0 _080E0C7C: .4byte gSprites _080E0C80: .4byte gUnknown_030041B4 _080E0C84: .4byte gUnknown_03004B00 _080E0C88: lsls r0, r1, 4 ldrh r3, [r2, 0x4] movs r1, 0x10 movs r2, 0xB bl BlendPalette _080E0C94: ldr r1, _080E0CC4 @ =gTasks mov r2, r9 lsls r0, r2, 2 add r0, r9 lsls r0, 3 adds r0, r1 strh r5, [r0, 0x8] ldr r2, _080E0CC8 @ =gUnknown_03004B00 ldrh r1, [r2] strh r1, [r0, 0xA] ldrh r1, [r2, 0x2] strh r1, [r0, 0xC] ldrh r1, [r2, 0x4] strh r1, [r0, 0xE] strh r7, [r0, 0x14] ldr r1, _080E0CCC @ =sub_80E0CD0 str r1, [r0] add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E0CC4: .4byte gTasks _080E0CC8: .4byte gUnknown_03004B00 _080E0CCC: .4byte sub_80E0CD0 thumb_func_end sub_80E0A4C thumb_func_start sub_80E0CD0 sub_80E0CD0: @ 80E0CD0 push {r4-r7,lr} sub sp, 0x10 lsls r0, 24 lsrs r7, r0, 24 ldr r1, _080E0DF0 @ =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x1C] adds r0, 0x4 movs r5, 0 strh r0, [r4, 0x1C] ldr r2, _080E0DF4 @ =gUnknown_030042C0 ldrh r3, [r2] subs r1, r3, 0x4 strh r1, [r2] lsls r0, 16 asrs r0, 16 cmp r0, 0x80 bne _080E0DE8 strh r5, [r4, 0x1C] adds r0, r3, 0 adds r0, 0x7C strh r0, [r2] ldrh r0, [r4, 0x1E] adds r0, 0x1 strh r0, [r4, 0x1E] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 bne _080E0DE8 movs r0, 0 bl sub_8076464 ldr r0, _080E0DF8 @ =gUnknown_030042C4 strh r5, [r0] ldr r0, _080E0DFC @ =gUnknown_03004240 strh r5, [r0] ldr r0, _080E0E00 @ =REG_WININ ldr r2, _080E0E04 @ =0x00003f3f adds r1, r2, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E0D40 ldr r2, _080E0E08 @ =REG_BG1CNT ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _080E0D40: movs r2, 0x80 lsls r2, 19 ldrh r0, [r2] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 eors r0, r1 strh r0, [r2] ldr r0, _080E0E0C @ =REG_BLDCNT strh r5, [r0] adds r0, 0x2 strh r5, [r0] movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 ldr r6, _080E0E10 @ =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 ldrb r0, [r1, 0x5] lsrs r0, 4 adds r0, 0x10 adds r1, r0, 0 movs r2, 0xA ldrsh r0, [r4, r2] cmp r0, 0 bne _080E0D84 adds r0, r1, 0 movs r1, 0x1 bl sub_8079108 _080E0D84: movs r3, 0x8 ldrsh r1, [r4, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 bl DestroySprite mov r0, sp bl sub_8078914 ldr r2, [sp, 0x4] str r5, [sp, 0xC] ldr r1, _080E0E14 @ =0x040000d4 add r0, sp, 0xC str r0, [r1] str r2, [r1, 0x4] ldr r0, _080E0E18 @ =0x85000200 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r1, 0x14 ldrsh r0, [r4, r1] cmp r0, 0x1 bne _080E0DE2 ldr r2, _080E0E1C @ =gUnknown_02024BE0 ldr r0, _080E0E20 @ =gUnknown_0202F7C8 ldrb r1, [r0] movs r0, 0x2 eors r0, r1 adds r0, r2 ldrb r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r6 ldrb r3, [r2, 0x5] lsls r1, r3, 28 lsrs r1, 30 adds r1, 0x1 movs r0, 0x3 ands r1, r0 lsls r1, 2 movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] _080E0DE2: adds r0, r7, 0 bl move_anim_task_del _080E0DE8: add sp, 0x10 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E0DF0: .4byte gTasks _080E0DF4: .4byte gUnknown_030042C0 _080E0DF8: .4byte gUnknown_030042C4 _080E0DFC: .4byte gUnknown_03004240 _080E0E00: .4byte REG_WININ _080E0E04: .4byte 0x00003f3f _080E0E08: .4byte REG_BG1CNT _080E0E0C: .4byte REG_BLDCNT _080E0E10: .4byte gSprites _080E0E14: .4byte 0x040000d4 _080E0E18: .4byte 0x85000200 _080E0E1C: .4byte gUnknown_02024BE0 _080E0E20: .4byte gUnknown_0202F7C8 thumb_func_end sub_80E0CD0 thumb_func_start sub_80E0E24 sub_80E0E24: @ 80E0E24 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r0, _080E0E44 @ =gUnknown_03004B00 movs r2, 0 ldrsh r1, [r0, r2] adds r2, r0, 0 cmp r1, 0x7 bhi _080E0E88 lsls r0, r1, 2 ldr r1, _080E0E48 @ =_080E0E4C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E0E44: .4byte gUnknown_03004B00 _080E0E48: .4byte _080E0E4C .align 2, 0 _080E0E4C: .4byte _080E0E6C .4byte _080E0E6C .4byte _080E0E6C .4byte _080E0E6C .4byte _080E0E78 .4byte _080E0E7C .4byte _080E0E80 .4byte _080E0E84 _080E0E6C: ldrb r0, [r2] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r2, r0, 24 b _080E0E8A _080E0E78: movs r4, 0 b _080E0E90 _080E0E7C: movs r4, 0x2 b _080E0E90 _080E0E80: movs r4, 0x1 b _080E0E90 _080E0E84: movs r4, 0x3 b _080E0E90 _080E0E88: movs r2, 0xFF _080E0E8A: movs r0, 0 cmp r0, 0 beq _080E0EB6 _080E0E90: adds r0, r4, 0 bl battle_get_side_with_given_state lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080E0EB4 ldr r0, _080E0EB0 @ =gUnknown_02024BE0 adds r0, r4, r0 ldrb r2, [r0] b _080E0EB6 .align 2, 0 _080E0EB0: .4byte gUnknown_02024BE0 _080E0EB4: movs r2, 0xFF _080E0EB6: cmp r2, 0xFF beq _080E0ED2 ldr r1, _080E0EE0 @ =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x5] lsrs r0, 4 adds r0, 0x10 ldr r1, _080E0EE4 @ =gUnknown_03004B00 ldrb r1, [r1, 0x2] bl sub_8079108 _080E0ED2: adds r0, r5, 0 bl move_anim_task_del pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E0EE0: .4byte gSprites _080E0EE4: .4byte gUnknown_03004B00 thumb_func_end sub_80E0E24 thumb_func_start sub_80E0EE8 sub_80E0EE8: @ 80E0EE8 push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r2, _080E0F14 @ =gUnknown_0202F7C4 ldrb r0, [r2] cmp r0, 0x1 bhi _080E0EFC ldr r1, _080E0F18 @ =gUnknown_03004B00 movs r0, 0 strh r0, [r1, 0xE] _080E0EFC: ldrb r0, [r2] cmp r0, 0x2 bne _080E0F08 ldr r1, _080E0F18 @ =gUnknown_03004B00 movs r0, 0x1 strh r0, [r1, 0xE] _080E0F08: adds r0, r3, 0 bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _080E0F14: .4byte gUnknown_0202F7C4 _080E0F18: .4byte gUnknown_03004B00 thumb_func_end sub_80E0EE8 thumb_func_start sub_80E0F1C sub_80E0F1C: @ 80E0F1C push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080E0F74 @ =gUnknown_0202F7C8 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] movs r0, 0x14 strh r0, [r4, 0x2E] ldr r5, _080E0F78 @ =gUnknown_0202F7C9 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] ldr r0, _080E0F7C @ =0x0000ffd8 strh r0, [r4, 0x38] adds r0, r4, 0 bl sub_80786EC ldr r0, _080E0F80 @ =sub_80E0F84 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E0F74: .4byte gUnknown_0202F7C8 _080E0F78: .4byte gUnknown_0202F7C9 _080E0F7C: .4byte 0x0000ffd8 _080E0F80: .4byte sub_80E0F84 thumb_func_end sub_80E0F1C thumb_func_start sub_80E0F84 sub_80E0F84: @ 80E0F84 push {r4,r5,lr} adds r5, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080E0FD8 ldrh r0, [r5, 0x24] ldrh r1, [r5, 0x20] adds r0, r1 movs r1, 0 strh r0, [r5, 0x20] ldrh r0, [r5, 0x26] ldrh r2, [r5, 0x22] adds r0, r2 strh r0, [r5, 0x22] strh r1, [r5, 0x26] strh r1, [r5, 0x24] movs r0, 0x14 strh r0, [r5, 0x2E] ldr r4, _080E0FE0 @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] movs r0, 0x28 strh r0, [r5, 0x38] adds r0, r5, 0 bl sub_80786EC ldr r0, _080E0FE4 @ =sub_80E0FE8 str r0, [r5, 0x1C] _080E0FD8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E0FE0: .4byte gUnknown_0202F7C8 _080E0FE4: .4byte sub_80E0FE8 thumb_func_end sub_80E0F84 thumb_func_start sub_80E0FE8 sub_80E0FE8: @ 80E0FE8 push {r4,lr} adds r4, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080E0FFC adds r0, r4, 0 bl move_anim_8072740 _080E0FFC: pop {r4} pop {r0} bx r0 thumb_func_end sub_80E0FE8 thumb_func_start sub_80E1004 sub_80E1004: @ 80E1004 push {r4-r6,lr} adds r6, r0, 0 movs r1, 0x1 bl sub_8078764 ldr r0, _080E1064 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080E1024 ldr r1, _080E1068 @ =gUnknown_03004B00 ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080E1024: ldr r4, _080E1068 @ =gUnknown_03004B00 ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] ldr r5, _080E106C @ =gUnknown_0202F7C9 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] adds r0, r1 strh r0, [r6, 0x32] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x6] adds r0, r4 strh r0, [r6, 0x36] ldr r0, _080E1070 @ =sub_8078B34 str r0, [r6, 0x1C] ldr r1, _080E1074 @ =move_anim_8072740 adds r0, r6, 0 bl oamt_set_x3A_32 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E1064: .4byte gUnknown_0202F7C8 _080E1068: .4byte gUnknown_03004B00 _080E106C: .4byte gUnknown_0202F7C9 _080E1070: .4byte sub_8078B34 _080E1074: .4byte move_anim_8072740 thumb_func_end sub_80E1004 thumb_func_start sub_80E1078 sub_80E1078: @ 80E1078 push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r4, _080E10F8 @ =gUnknown_0202F7C9 ldrb r0, [r4] movs r1, 0x2 bl sub_8077EE4 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldrb r0, [r4] movs r1, 0x3 bl sub_8077EE4 lsls r0, 24 lsrs r7, r0, 24 bl Random movs r4, 0x1F adds r5, r4, 0 ands r5, r0 bl Random ands r4, r0 adds r1, r5, 0 cmp r1, 0x10 ble _080E10C0 movs r0, 0x10 subs r0, r1 lsls r0, 16 lsrs r5, r0, 16 _080E10C0: lsls r0, r4, 16 asrs r1, r0, 16 cmp r1, 0x10 ble _080E10D0 movs r0, 0x10 subs r0, r1 lsls r0, 16 lsrs r4, r0, 16 _080E10D0: ldr r0, _080E10FC @ =gUnknown_03004B00 ldrh r0, [r0, 0x4] strh r0, [r6, 0x2E] mov r1, r8 adds r0, r1, r5 strh r0, [r6, 0x32] adds r0, r7, r4 strh r0, [r6, 0x36] ldr r0, _080E1100 @ =sub_8078B34 str r0, [r6, 0x1C] ldr r1, _080E1104 @ =move_anim_8074EE0 adds r0, r6, 0 bl oamt_set_x3A_32 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E10F8: .4byte gUnknown_0202F7C9 _080E10FC: .4byte gUnknown_03004B00 _080E1100: .4byte sub_8078B34 _080E1104: .4byte move_anim_8074EE0 thumb_func_end sub_80E1078 thumb_func_start sub_80E1108 sub_80E1108: @ 80E1108 push {r4-r6,lr} adds r5, r0, 0 ldrh r2, [r5, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x1 ldr r3, _080E1168 @ =0x000003ff adds r0, r3, 0 ands r1, r0 ldr r0, _080E116C @ =0xfffffc00 ands r0, r2 orrs r0, r1 strh r0, [r5, 0x4] ldr r6, _080E1170 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _080E117C ldr r4, _080E1174 @ =gUnknown_0202F7C8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r2, [r6, 0x2] adds r0, r2 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r3, [r6, 0x4] adds r0, r3 strh r0, [r5, 0x22] movs r1, 0x2 ldrsh r0, [r6, r1] movs r2, 0x1 negs r2, r2 adds r1, r2, 0 cmp r0, 0 ble _080E1162 movs r1, 0x1 _080E1162: strh r1, [r5, 0x2E] ldr r0, _080E1178 @ =sub_80E1198 b _080E118A .align 2, 0 _080E1168: .4byte 0x000003ff _080E116C: .4byte 0xfffffc00 _080E1170: .4byte gUnknown_03004B00 _080E1174: .4byte gUnknown_0202F7C8 _080E1178: .4byte sub_80E1198 _080E117C: ldrh r0, [r6, 0x2] strh r0, [r5, 0x20] ldrh r0, [r6, 0x4] strh r0, [r5, 0x22] negs r0, r0 strh r0, [r5, 0x26] ldr r0, _080E1194 @ =sub_80E11D4 _080E118A: str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E1194: .4byte sub_80E11D4 thumb_func_end sub_80E1108 thumb_func_start sub_80E1198 sub_80E1198: @ 80E1198 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080E11B6 movs r0, 0 strh r0, [r2, 0x30] ldrh r0, [r2, 0x2E] ldrh r1, [r2, 0x20] adds r0, r1 strh r0, [r2, 0x20] _080E11B6: ldrh r0, [r2, 0x22] subs r0, 0x4 strh r0, [r2, 0x22] lsls r0, 16 asrs r0, 16 movs r1, 0x4 negs r1, r1 cmp r0, r1 bge _080E11CE adds r0, r2, 0 bl move_anim_8072740 _080E11CE: pop {r0} bx r0 thumb_func_end sub_80E1198 thumb_func_start sub_80E11D4 sub_80E11D4: @ 80E11D4 push {lr} adds r3, r0, 0 movs r0, 0x2E ldrsh r1, [r3, r0] cmp r1, 0 beq _080E11E6 cmp r1, 0x1 beq _080E11FC b _080E123E _080E11E6: ldrh r0, [r3, 0x26] adds r0, 0x4 strh r0, [r3, 0x26] lsls r0, 16 cmp r0, 0 blt _080E123E strh r1, [r3, 0x26] ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] b _080E123E _080E11FC: ldrh r0, [r3, 0x30] adds r0, 0x1 strh r0, [r3, 0x30] lsls r0, 16 cmp r0, 0 ble _080E123E movs r0, 0 strh r0, [r3, 0x30] movs r1, 0x3E adds r1, r3 mov r12, r1 ldrb r2, [r1] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] ldrh r0, [r3, 0x32] adds r0, 0x1 strh r0, [r3, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0xA bne _080E123E adds r0, r3, 0 bl move_anim_8072740 _080E123E: pop {r0} bx r0 thumb_func_end sub_80E11D4 thumb_func_start sub_80E1244 sub_80E1244: @ 80E1244 push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080E1264 @ =gTasks adds r1, r0, r1 ldr r0, _080E1268 @ =gUnknown_03004B00 movs r3, 0 ldrsh r0, [r0, r3] cmp r0, 0 bne _080E1270 ldr r0, _080E126C @ =sub_80E1284 b _080E1272 .align 2, 0 _080E1264: .4byte gTasks _080E1268: .4byte gUnknown_03004B00 _080E126C: .4byte sub_80E1284 _080E1270: ldr r0, _080E1280 @ =sub_80E143C _080E1272: str r0, [r1] ldr r1, [r1] adds r0, r2, 0 bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _080E1280: .4byte sub_80E143C thumb_func_end sub_80E1244 thumb_func_start sub_80E1284 sub_80E1284: @ 80E1284 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080E12A8 @ =gTasks adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x4 bls _080E129E b _080E1432 _080E129E: lsls r0, 2 ldr r1, _080E12AC @ =_080E12B0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E12A8: .4byte gTasks _080E12AC: .4byte _080E12B0 .align 2, 0 _080E12B0: .4byte _080E12C4 .4byte _080E134C .4byte _080E135C .4byte _080E1400 .4byte _080E1414 _080E12C4: movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1C] ldr r0, _080E12EC @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1E] cmp r0, 0x1 bne _080E12F8 ldr r0, _080E12F0 @ =gUnknown_030042C0 ldrh r0, [r0] strh r0, [r4, 0x20] ldr r0, _080E12F4 @ =gUnknown_030041B4 b _080E1300 .align 2, 0 _080E12EC: .4byte gUnknown_0202F7C8 _080E12F0: .4byte gUnknown_030042C0 _080E12F4: .4byte gUnknown_030041B4 _080E12F8: ldr r0, _080E133C @ =gUnknown_03004288 ldrh r0, [r0] strh r0, [r4, 0x20] ldr r0, _080E1340 @ =gUnknown_03004280 _080E1300: ldrh r0, [r0] strh r0, [r4, 0x22] ldr r0, _080E1344 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl sub_8077FC0 lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 subs r1, 0x20 strh r1, [r4, 0x24] adds r0, 0x20 strh r0, [r4, 0x26] cmp r1, 0 bge _080E1322 movs r0, 0 strh r0, [r4, 0x24] _080E1322: ldr r2, _080E1348 @ =gSprites movs r3, 0x1C ldrsh r1, [r4, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _080E1406 .align 2, 0 _080E133C: .4byte gUnknown_03004288 _080E1340: .4byte gUnknown_03004280 _080E1344: .4byte gUnknown_0202F7C8 _080E1348: .4byte gSprites _080E134C: ldrb r0, [r4, 0x1E] movs r2, 0x24 ldrsh r1, [r4, r2] movs r3, 0x26 ldrsh r2, [r4, r3] bl sub_80E1668 b _080E1406 _080E135C: ldrh r0, [r4, 0xC] adds r0, 0x6 movs r1, 0x7F ands r0, r1 strh r0, [r4, 0xC] ldrh r0, [r4, 0x10] adds r0, 0x1 strh r0, [r4, 0x10] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _080E137E movs r0, 0 strh r0, [r4, 0x10] ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] _080E137E: ldr r1, _080E13A0 @ =gSineTable movs r2, 0xC ldrsh r0, [r4, r2] lsls r0, 1 adds r0, r1 ldrh r0, [r0] lsls r0, 16 asrs r0, 20 ldrh r3, [r4, 0xE] adds r2, r0, r3 strh r2, [r4, 0x12] movs r1, 0x1E ldrsh r0, [r4, r1] cmp r0, 0x1 bne _080E13A8 ldr r1, _080E13A4 @ =gUnknown_030041B4 b _080E13AA .align 2, 0 _080E13A0: .4byte gSineTable _080E13A4: .4byte gUnknown_030041B4 _080E13A8: ldr r1, _080E13CC @ =gUnknown_03004280 _080E13AA: ldrh r0, [r4, 0x22] subs r0, r2 strh r0, [r1] movs r2, 0x12 ldrsh r0, [r4, r2] cmp r0, 0x3F ble _080E1432 ldrh r0, [r4, 0x24] movs r1, 0x78 subs r2, r1, r0 strh r2, [r4, 0x12] movs r3, 0x1E ldrsh r0, [r4, r3] cmp r0, 0x1 bne _080E13D4 ldr r1, _080E13D0 @ =gUnknown_030041B4 b _080E13D6 .align 2, 0 _080E13CC: .4byte gUnknown_03004280 _080E13D0: .4byte gUnknown_030041B4 _080E13D4: ldr r1, _080E13F8 @ =gUnknown_03004280 _080E13D6: ldrh r0, [r4, 0x22] subs r0, r2 strh r0, [r1] ldr r2, _080E13FC @ =gSprites movs r1, 0x1C ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrh r2, [r1, 0x20] movs r3, 0x88 lsls r3, 1 adds r0, r3, 0 subs r0, r2 strh r0, [r1, 0x24] b _080E1406 .align 2, 0 _080E13F8: .4byte gUnknown_03004280 _080E13FC: .4byte gSprites _080E1400: ldr r1, _080E1410 @ =gUnknown_03004DC0 movs r0, 0x3 strb r0, [r1, 0x15] _080E1406: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080E1432 .align 2, 0 _080E1410: .4byte gUnknown_03004DC0 _080E1414: adds r0, r2, 0 bl move_anim_task_del ldr r2, _080E1438 @ =gSprites movs r0, 0x1C ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _080E1432: pop {r4} pop {r0} bx r0 .align 2, 0 _080E1438: .4byte gSprites thumb_func_end sub_80E1284 thumb_func_start sub_80E143C sub_80E143C: @ 80E143C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 ldr r2, _080E147C @ =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r3, r1, 0 adds r3, 0x3E ldrb r0, [r3] movs r2, 0x4 orrs r0, r2 strb r0, [r3] movs r4, 0 strh r4, [r1, 0x24] strh r4, [r1, 0x26] ldr r0, _080E1480 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080E1488 ldr r0, _080E1484 @ =gUnknown_030041B4 b _080E148A .align 2, 0 _080E147C: .4byte gSprites _080E1480: .4byte gUnknown_0202F7C8 _080E1484: .4byte gUnknown_030041B4 _080E1488: ldr r0, _080E1498 @ =gUnknown_03004280 _080E148A: strh r4, [r0] adds r0, r5, 0 bl move_anim_task_del pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E1498: .4byte gUnknown_03004280 thumb_func_end sub_80E143C thumb_func_start sub_80E149C sub_80E149C: @ 80E149C push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080E14BC @ =gTasks adds r1, r0, r1 ldr r0, _080E14C0 @ =gUnknown_03004B00 movs r3, 0 ldrsh r0, [r0, r3] cmp r0, 0 bne _080E14C8 ldr r0, _080E14C4 @ =sub_80E14DC b _080E14CA .align 2, 0 _080E14BC: .4byte gTasks _080E14C0: .4byte gUnknown_03004B00 _080E14C4: .4byte sub_80E14DC _080E14C8: ldr r0, _080E14D8 @ =sub_80E1560 _080E14CA: str r0, [r1] ldr r1, [r1] adds r0, r2, 0 bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _080E14D8: .4byte sub_80E1560 thumb_func_end sub_80E149C thumb_func_start sub_80E14DC sub_80E14DC: @ 80E14DC push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080E14FC @ =gTasks adds r4, r0, r1 movs r0, 0x8 ldrsh r5, [r4, r0] cmp r5, 0 beq _080E1500 cmp r5, 0x1 beq _080E1554 b _080E155A .align 2, 0 _080E14FC: .4byte gTasks _080E1500: movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1C] ldr r3, _080E1550 @ =gSprites movs r0, 0x1C ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] movs r0, 0x1C ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r5, [r0, 0x24] movs r1, 0x1C ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrh r2, [r1, 0x22] movs r0, 0xA0 subs r0, r2 strh r0, [r1, 0x26] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080E155A .align 2, 0 _080E1550: .4byte gSprites _080E1554: adds r0, r2, 0 bl move_anim_task_del _080E155A: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80E14DC thumb_func_start sub_80E1560 sub_80E1560: @ 80E1560 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080E1584 @ =gTasks adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x4 bhi _080E1662 lsls r0, 2 ldr r1, _080E1588 @ =_080E158C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E1584: .4byte gTasks _080E1588: .4byte _080E158C .align 2, 0 _080E158C: .4byte _080E15A0 .4byte _080E15F4 .4byte _080E1602 .4byte _080E161C .4byte _080E165C _080E15A0: movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1C] ldr r0, _080E15C4 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1E] cmp r0, 0x1 bne _080E15CC ldr r0, _080E15C8 @ =gUnknown_030042C0 b _080E15CE .align 2, 0 _080E15C4: .4byte gUnknown_0202F7C8 _080E15C8: .4byte gUnknown_030042C0 _080E15CC: ldr r0, _080E15EC @ =gUnknown_03004288 _080E15CE: ldrh r0, [r0] strh r0, [r4, 0x20] ldr r0, _080E15F0 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl sub_8077FC0 lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 subs r1, 0x20 strh r1, [r4, 0x24] adds r0, 0x20 strh r0, [r4, 0x26] b _080E164A .align 2, 0 _080E15EC: .4byte gUnknown_03004288 _080E15F0: .4byte gUnknown_0202F7C8 _080E15F4: ldrb r0, [r4, 0x1E] movs r1, 0x26 ldrsh r2, [r4, r1] movs r1, 0 bl sub_80E1668 b _080E164A _080E1602: ldr r2, _080E1618 @ =gSprites movs r0, 0x1C ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x60 strh r1, [r0, 0x26] b _080E164A .align 2, 0 _080E1618: .4byte gSprites _080E161C: ldr r2, _080E1654 @ =gSprites movs r0, 0x1C ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x26] subs r1, 0x8 strh r1, [r0, 0x26] movs r0, 0x1C ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x26 ldrsh r0, [r0, r1] cmp r0, 0 bne _080E1662 ldr r1, _080E1658 @ =gUnknown_03004DC0 movs r0, 0x3 strb r0, [r1, 0x15] _080E164A: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080E1662 .align 2, 0 _080E1654: .4byte gSprites _080E1658: .4byte gUnknown_03004DC0 _080E165C: adds r0, r2, 0 bl move_anim_task_del _080E1662: pop {r4} pop {r0} bx r0 thumb_func_end sub_80E1560 thumb_func_start sub_80E1668 sub_80E1668: @ 80E1668 push {r4-r6,lr} sub sp, 0xC lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r1, 16 lsls r2, 16 lsrs r4, r2, 16 cmp r0, 0x1 bne _080E168C ldr r0, _080E1684 @ =gUnknown_030042C0 ldrh r3, [r0] ldr r0, _080E1688 @ =REG_BG1HOFS b _080E1692 .align 2, 0 _080E1684: .4byte gUnknown_030042C0 _080E1688: .4byte REG_BG1HOFS _080E168C: ldr r0, _080E1718 @ =gUnknown_03004288 ldrh r3, [r0] ldr r0, _080E171C @ =REG_BG2HOFS _080E1692: str r0, [sp] lsls r0, r1, 16 cmp r0, 0 bge _080E169C movs r1, 0 _080E169C: lsls r2, r1, 16 lsls r0, r4, 16 asrs r4, r0, 16 cmp r2, r0 bge _080E16C8 ldr r5, _080E1720 @ =gUnknown_03004DE0 movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 _080E16AE: asrs r2, 16 lsls r1, r2, 1 adds r0, r1, r5 strh r3, [r0] adds r1, r6 strh r3, [r1] adds r2, 0x1 lsls r2, 16 lsrs r1, r2, 16 lsls r2, r1, 16 asrs r0, r2, 16 cmp r0, r4 blt _080E16AE _080E16C8: lsls r1, 16 asrs r0, r1, 16 cmp r0, 0x9F bgt _080E16F6 ldr r4, _080E1720 @ =gUnknown_03004DE0 lsls r0, r3, 16 asrs r0, 16 adds r3, r0, 0 adds r3, 0xF0 movs r0, 0xF0 lsls r0, 3 adds r5, r4, r0 _080E16E0: asrs r2, r1, 16 lsls r1, r2, 1 adds r0, r1, r4 strh r3, [r0] adds r1, r5 strh r3, [r1] adds r2, 0x1 lsls r1, r2, 16 asrs r0, r1, 16 cmp r0, 0x9F ble _080E16E0 _080E16F6: ldr r0, _080E1724 @ =0xa2600001 str r0, [sp, 0x4] mov r1, sp movs r2, 0 movs r0, 0x1 strb r0, [r1, 0x8] mov r0, sp strb r2, [r0, 0x9] ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] bl sub_80895F8 add sp, 0xC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E1718: .4byte gUnknown_03004288 _080E171C: .4byte REG_BG2HOFS _080E1720: .4byte gUnknown_03004DE0 _080E1724: .4byte 0xa2600001 thumb_func_end sub_80E1668 thumb_func_start sub_80E1728 sub_80E1728: @ 80E1728 push {r4-r7,lr} adds r5, r0, 0 ldr r0, _080E173C @ =gUnknown_03004B00 movs r2, 0 ldrsh r1, [r0, r2] adds r7, r0, 0 cmp r1, 0 bne _080E1744 ldr r0, _080E1740 @ =gUnknown_0202F7C8 b _080E1746 .align 2, 0 _080E173C: .4byte gUnknown_03004B00 _080E1740: .4byte gUnknown_0202F7C8 _080E1744: ldr r0, _080E17A8 @ =gUnknown_0202F7C9 _080E1746: ldrb r4, [r0] movs r6, 0x18 adds r1, r7, 0 movs r2, 0x2 ldrsh r0, [r1, r2] cmp r0, 0x1 bne _080E1762 negs r0, r6 lsls r0, 16 lsrs r6, r0, 16 movs r2, 0x4 ldrsh r0, [r1, r2] negs r0, r0 strh r0, [r1, 0x4] _080E1762: adds r0, r4, 0 movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, r6 strh r0, [r5, 0x20] adds r0, r4, 0 bl sub_8077FC0 lsls r0, 24 lsrs r0, 24 adds r0, 0x1E strh r0, [r5, 0x22] ldrh r1, [r7, 0xA] strh r1, [r5, 0x2E] ldrh r1, [r7, 0x4] ldrh r2, [r5, 0x20] adds r1, r2 strh r1, [r5, 0x32] ldrh r1, [r7, 0x6] adds r0, r1 strh r0, [r5, 0x36] ldrh r0, [r7, 0x8] strh r0, [r5, 0x38] adds r0, r5, 0 bl sub_80786EC ldr r0, _080E17AC @ =sub_80E17B0 str r0, [r5, 0x1C] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E17A8: .4byte gUnknown_0202F7C9 _080E17AC: .4byte sub_80E17B0 thumb_func_end sub_80E1728 thumb_func_start sub_80E17B0 sub_80E17B0: @ 80E17B0 push {r4,lr} adds r4, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080E17C4 adds r0, r4, 0 bl move_anim_8072740 _080E17C4: pop {r4} pop {r0} bx r0 thumb_func_end sub_80E17B0 thumb_func_start sub_80E17CC sub_80E17CC: @ 80E17CC push {r4-r6,lr} adds r6, r0, 0 ldr r0, _080E17E0 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080E17E8 ldr r0, _080E17E4 @ =gUnknown_0202F7C8 b _080E17EA .align 2, 0 _080E17E0: .4byte gUnknown_03004B00 _080E17E4: .4byte gUnknown_0202F7C8 _080E17E8: ldr r0, _080E1848 @ =gUnknown_0202F7C9 _080E17EA: ldrb r5, [r0] adds r0, r5, 0 movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldr r2, _080E184C @ =0x0000fff0 adds r0, r2 ldr r4, _080E1850 @ =gUnknown_03004B00 movs r3, 0x2 ldrsh r1, [r4, r3] lsls r1, 5 adds r0, r1 strh r0, [r6, 0x20] adds r0, r5, 0 bl sub_8077FC0 lsls r0, 24 lsrs r0, 24 adds r0, 0x20 strh r0, [r6, 0x22] ldrh r2, [r6, 0x4] lsls r1, r2, 22 lsrs r1, 22 movs r3, 0x2 ldrsh r0, [r4, r3] lsls r0, 3 adds r1, r0 ldr r3, _080E1854 @ =0x000003ff adds r0, r3, 0 ands r1, r0 ldr r0, _080E1858 @ =0xfffffc00 ands r0, r2 orrs r0, r1 strh r0, [r6, 0x4] ldr r1, _080E185C @ =move_anim_8072740 adds r0, r6, 0 bl oamt_set_x3A_32 ldrh r0, [r4, 0x4] strh r0, [r6, 0x2E] ldr r0, _080E1860 @ =sub_80782D8 str r0, [r6, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E1848: .4byte gUnknown_0202F7C9 _080E184C: .4byte 0x0000fff0 _080E1850: .4byte gUnknown_03004B00 _080E1854: .4byte 0x000003ff _080E1858: .4byte 0xfffffc00 _080E185C: .4byte move_anim_8072740 _080E1860: .4byte sub_80782D8 thumb_func_end sub_80E17CC thumb_func_start sub_80E1864 sub_80E1864: @ 80E1864 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080E1888 @ =gTasks adds r4, r0, r1 ldr r0, _080E188C @ =gUnknown_03004B00 ldrh r2, [r0, 0x2] movs r3, 0x2 ldrsh r1, [r0, r3] adds r6, r0, 0 cmp r1, 0 beq _080E1890 adds r0, r2, 0x3 b _080E189C .align 2, 0 _080E1888: .4byte gTasks _080E188C: .4byte gUnknown_03004B00 _080E1890: ldr r0, _080E18BC @ =gUnknown_0202F7BC ldrh r0, [r0] movs r1, 0xA bl __udivsi3 adds r0, 0x3 _080E189C: strh r0, [r4, 0x26] strh r0, [r4, 0x24] adds r1, r6, 0 ldrh r0, [r1, 0x4] strh r0, [r4, 0xE] movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0x4 beq _080E18C8 cmp r0, 0x5 bne _080E1908 ldr r0, _080E18C0 @ =gUnknown_030041B0 ldrh r0, [r0] strh r0, [r4, 0x22] ldr r0, _080E18C4 @ =sub_80E1934 b _080E1926 .align 2, 0 _080E18BC: .4byte gUnknown_0202F7BC _080E18C0: .4byte gUnknown_030041B0 _080E18C4: .4byte sub_80E1934 _080E18C8: movs r0, 0 strh r0, [r4, 0x22] movs r5, 0 _080E18CE: lsls r0, r5, 24 lsrs r0, 24 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080E18F8 movs r3, 0x22 ldrsh r0, [r4, r3] adds r0, 0x9 lsls r0, 1 adds r1, r4, 0 adds r1, 0x8 adds r1, r0 ldr r0, _080E1904 @ =gUnknown_02024BE0 adds r0, r5, r0 ldrb r0, [r0] strh r0, [r1] ldrh r0, [r4, 0x22] adds r0, 0x1 strh r0, [r4, 0x22] _080E18F8: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x3 bls _080E18CE b _080E1924 .align 2, 0 _080E1904: .4byte gUnknown_02024BE0 _080E1908: ldrb r0, [r6] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1A] cmp r0, 0xFF bne _080E1920 adds r0, r5, 0 bl move_anim_task_del b _080E1928 _080E1920: movs r0, 0x1 strh r0, [r4, 0x22] _080E1924: ldr r0, _080E1930 @ =sub_80E1A2C _080E1926: str r0, [r4] _080E1928: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E1930: .4byte sub_80E1A2C thumb_func_end sub_80E1864 thumb_func_start sub_80E1934 sub_80E1934: @ 80E1934 push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080E1958 @ =gTasks adds r3, r0, r1 movs r0, 0x8 ldrsh r1, [r3, r0] cmp r1, 0x1 beq _080E19B8 cmp r1, 0x1 bgt _080E195C cmp r1, 0 beq _080E1962 b _080E1A24 .align 2, 0 _080E1958: .4byte gTasks _080E195C: cmp r1, 0x2 beq _080E1A18 b _080E1A24 _080E1962: ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080E1A24 strh r1, [r3, 0xA] ldrh r1, [r3, 0xC] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080E198C ldr r1, _080E1988 @ =gUnknown_030041B0 ldrh r0, [r3, 0x26] ldrh r2, [r3, 0x22] adds r0, r2 strh r0, [r1] b _080E1996 .align 2, 0 _080E1988: .4byte gUnknown_030041B0 _080E198C: ldr r0, _080E19B4 @ =gUnknown_030041B0 ldrh r1, [r3, 0x22] ldrh r2, [r3, 0x26] subs r1, r2 strh r1, [r0] _080E1996: ldrh r0, [r3, 0xC] adds r0, 0x1 strh r0, [r3, 0xC] lsls r0, 16 asrs r0, 16 movs r2, 0xE ldrsh r1, [r3, r2] cmp r0, r1 bne _080E1A24 movs r0, 0 strh r0, [r3, 0xC] ldrh r0, [r3, 0x24] subs r0, 0x1 strh r0, [r3, 0x24] b _080E1A0C .align 2, 0 _080E19B4: .4byte gUnknown_030041B0 _080E19B8: ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080E1A24 movs r0, 0 strh r0, [r3, 0xA] ldrh r0, [r3, 0xC] ands r1, r0 cmp r1, 0 bne _080E19E4 ldr r1, _080E19E0 @ =gUnknown_030041B0 ldrh r0, [r3, 0x24] ldrh r2, [r3, 0x22] adds r0, r2 strh r0, [r1] b _080E19EE .align 2, 0 _080E19E0: .4byte gUnknown_030041B0 _080E19E4: ldr r0, _080E1A14 @ =gUnknown_030041B0 ldrh r1, [r3, 0x22] ldrh r2, [r3, 0x24] subs r1, r2 strh r1, [r0] _080E19EE: ldrh r0, [r3, 0xC] adds r0, 0x1 strh r0, [r3, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _080E1A24 movs r0, 0 strh r0, [r3, 0xC] ldrh r0, [r3, 0x24] subs r0, 0x1 strh r0, [r3, 0x24] lsls r0, 16 cmp r0, 0 bne _080E1A24 _080E1A0C: ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] b _080E1A24 .align 2, 0 _080E1A14: .4byte gUnknown_030041B0 _080E1A18: ldr r1, _080E1A28 @ =gUnknown_030041B0 ldrh r0, [r3, 0x22] strh r0, [r1] adds r0, r2, 0 bl move_anim_task_del _080E1A24: pop {r0} bx r0 .align 2, 0 _080E1A28: .4byte gUnknown_030041B0 thumb_func_end sub_80E1934 thumb_func_start sub_80E1A2C sub_80E1A2C: @ 80E1A2C push {r4-r7,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 ldr r1, _080E1A50 @ =gTasks adds r4, r0, r1 movs r0, 0x8 ldrsh r5, [r4, r0] cmp r5, 0x1 beq _080E1A8C cmp r5, 0x1 bgt _080E1A54 cmp r5, 0 beq _080E1A5A b _080E1B06 .align 2, 0 _080E1A50: .4byte gTasks _080E1A54: cmp r5, 0x2 beq _080E1AC8 b _080E1B06 _080E1A5A: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080E1B06 strh r5, [r4, 0xA] adds r0, r4, 0 bl sub_80E1B10 ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 movs r2, 0xE ldrsh r1, [r4, r2] cmp r0, r1 bne _080E1B06 strh r5, [r4, 0xC] ldrh r0, [r4, 0x24] subs r0, 0x1 strh r0, [r4, 0x24] b _080E1AC0 _080E1A8C: ldrh r0, [r4, 0xA] adds r0, 0x1 movs r5, 0 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080E1B06 strh r5, [r4, 0xA] adds r0, r4, 0 bl sub_80E1B10 ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _080E1B06 strh r5, [r4, 0xC] ldrh r0, [r4, 0x24] subs r0, 0x1 strh r0, [r4, 0x24] lsls r0, 16 cmp r0, 0 bne _080E1B06 _080E1AC0: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080E1B06 _080E1AC8: movs r2, 0 movs r7, 0x22 ldrsh r0, [r4, r7] cmp r2, r0 bge _080E1B00 ldr r0, _080E1B0C @ =gSprites mov r12, r0 adds r5, r4, 0 adds r5, 0x8 movs r6, 0 _080E1ADC: adds r0, r2, 0 adds r0, 0x9 lsls r0, 1 adds r0, r5, r0 movs r7, 0 ldrsh r1, [r0, r7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r12 strh r6, [r0, 0x24] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 movs r1, 0x22 ldrsh r0, [r4, r1] cmp r2, r0 blt _080E1ADC _080E1B00: adds r0, r3, 0 bl move_anim_task_del _080E1B06: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E1B0C: .4byte gSprites thumb_func_end sub_80E1A2C thumb_func_start sub_80E1B10 sub_80E1B10: @ 80E1B10 push {r4-r7,lr} adds r3, r0, 0 ldrh r1, [r3, 0xC] movs r4, 0x1 adds r0, r4, 0 ands r0, r1 cmp r0, 0 bne _080E1B38 movs r0, 0x24 ldrsh r1, [r3, r0] lsrs r0, r1, 31 adds r1, r0 asrs r1, 1 ldrh r2, [r3, 0x24] adds r0, r4, 0 ands r0, r2 adds r1, r0 lsls r1, 16 lsrs r4, r1, 16 b _080E1B48 _080E1B38: movs r1, 0x24 ldrsh r0, [r3, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 negs r0, r0 lsls r0, 16 lsrs r4, r0, 16 _080E1B48: movs r2, 0 movs r7, 0x22 ldrsh r0, [r3, r7] cmp r2, r0 bge _080E1B7C ldr r6, _080E1B84 @ =gSprites adds r5, r3, 0 adds r5, 0x8 _080E1B58: adds r0, r2, 0 adds r0, 0x9 lsls r0, 1 adds r0, r5, r0 movs r7, 0 ldrsh r1, [r0, r7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 strh r4, [r0, 0x24] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 movs r1, 0x22 ldrsh r0, [r3, r1] cmp r2, r0 blt _080E1B58 _080E1B7C: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E1B84: .4byte gSprites thumb_func_end sub_80E1B10 thumb_func_start sub_80E1B88 sub_80E1B88: @ 80E1B88 push {lr} lsls r0, 24 lsrs r1, r0, 24 ldr r3, _080E1BA8 @ =gUnknown_03004B00 movs r2, 0 ldr r0, _080E1BAC @ =gUnknown_0202F7BC ldrh r0, [r0] cmp r0, 0x63 bls _080E1B9C movs r2, 0x1 _080E1B9C: strh r2, [r3, 0x1E] adds r0, r1, 0 bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _080E1BA8: .4byte gUnknown_03004B00 _080E1BAC: .4byte gUnknown_0202F7BC thumb_func_end sub_80E1B88 thumb_func_start sub_80E1BB0 sub_80E1BB0: @ 80E1BB0 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 ldr r2, _080E1BC8 @ =gUnknown_03004B00 ldrh r1, [r2] movs r0, 0x1 ands r0, r1 adds r6, r2, 0 cmp r0, 0 beq _080E1BD0 ldr r0, _080E1BCC @ =gUnknown_0202F7C9 b _080E1BD2 .align 2, 0 _080E1BC8: .4byte gUnknown_03004B00 _080E1BCC: .4byte gUnknown_0202F7C9 _080E1BD0: ldr r0, _080E1C40 @ =gUnknown_0202F7C8 _080E1BD2: ldrb r0, [r0] adds r5, r0, 0 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0x1 ble _080E1BE2 movs r0, 0x2 eors r5, r0 _080E1BE2: ldr r0, _080E1C44 @ =sub_80E1C58 ldrb r1, [r6, 0x2] bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _080E1C48 @ =gTasks adds r4, r0 adds r0, r5, 0 movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 movs r1, 0x20 subs r1, r0 ldr r2, _080E1C4C @ =0x000001ff adds r0, r2, 0 ands r1, r0 strh r1, [r4, 0xA] adds r0, r5, 0 movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 movs r1, 0x40 subs r1, r0 movs r0, 0xFF ands r1, r0 strh r1, [r4, 0xC] ldr r2, _080E1C50 @ =gUnknown_030041B0 ldrh r0, [r4, 0xA] strh r0, [r2] ldr r0, _080E1C54 @ =gUnknown_030041B8 strh r1, [r0] ldrh r0, [r6, 0x4] strh r0, [r4, 0xE] adds r0, r7, 0 bl move_anim_task_del pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E1C40: .4byte gUnknown_0202F7C8 _080E1C44: .4byte sub_80E1C58 _080E1C48: .4byte gTasks _080E1C4C: .4byte 0x000001ff _080E1C50: .4byte gUnknown_030041B0 _080E1C54: .4byte gUnknown_030041B8 thumb_func_end sub_80E1BB0 thumb_func_start sub_80E1C58 sub_80E1C58: @ 80E1C58 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 ldr r1, _080E1C88 @ =gTasks adds r2, r0, r1 ldr r0, _080E1C8C @ =gUnknown_03004B00 movs r4, 0xE ldrsh r1, [r0, r4] movs r4, 0xE ldrsh r0, [r2, r4] cmp r1, r0 bne _080E1C98 ldr r0, _080E1C90 @ =gUnknown_030041B0 movs r1, 0 strh r1, [r0] ldr r0, _080E1C94 @ =gUnknown_030041B8 strh r1, [r0] adds r0, r3, 0 bl DestroyTask b _080E1CA4 .align 2, 0 _080E1C88: .4byte gTasks _080E1C8C: .4byte gUnknown_03004B00 _080E1C90: .4byte gUnknown_030041B0 _080E1C94: .4byte gUnknown_030041B8 _080E1C98: ldr r1, _080E1CAC @ =gUnknown_030041B0 ldrh r0, [r2, 0xA] strh r0, [r1] ldr r1, _080E1CB0 @ =gUnknown_030041B8 ldrh r0, [r2, 0xC] strh r0, [r1] _080E1CA4: pop {r4} pop {r0} bx r0 .align 2, 0 _080E1CAC: .4byte gUnknown_030041B0 _080E1CB0: .4byte gUnknown_030041B8 thumb_func_end sub_80E1C58 thumb_func_start sub_80E1CB4 sub_80E1CB4: @ 80E1CB4 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080E1CEC @ =gUnknown_03004B00 ldrh r0, [r5] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] ldrh r0, [r5, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldrh r0, [r5, 0x4] strh r0, [r4, 0x2E] ldr r0, _080E1CF0 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _080E1CF4 ldrh r0, [r5, 0x6] negs r0, r0 strh r0, [r4, 0x30] movs r0, 0x1 strh r0, [r4, 0x36] b _080E1D02 .align 2, 0 _080E1CEC: .4byte gUnknown_03004B00 _080E1CF0: .4byte gUnknown_0202F7C8 _080E1CF4: ldrh r0, [r5, 0x6] strh r0, [r4, 0x30] strh r1, [r4, 0x36] adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAnim _080E1D02: ldr r0, _080E1D18 @ =gUnknown_03004B00 ldrh r0, [r0, 0x8] strh r0, [r4, 0x34] ldr r1, _080E1D1C @ =sub_80E1D20 str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E1D18: .4byte gUnknown_03004B00 _080E1D1C: .4byte sub_80E1D20 thumb_func_end sub_80E1CB4 thumb_func_start sub_80E1D20 sub_80E1D20: @ 80E1D20 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] movs r1, 0x1E bl Cos strh r0, [r4, 0x24] movs r2, 0x2E ldrsh r0, [r4, r2] movs r1, 0xA bl Sin strh r0, [r4, 0x26] ldrh r0, [r4, 0x2E] cmp r0, 0x7F bhi _080E1D52 ldrb r0, [r4, 0x5] movs r1, 0xD negs r1, r1 ands r1, r0 movs r0, 0x4 orrs r1, r0 strb r1, [r4, 0x5] b _080E1D5A _080E1D52: ldrb r0, [r4, 0x5] movs r1, 0xC orrs r0, r1 strb r0, [r4, 0x5] _080E1D5A: ldrh r0, [r4, 0x30] ldrh r1, [r4, 0x2E] adds r0, r1 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 movs r2, 0x34 ldrsh r1, [r4, r2] cmp r0, r1 bne _080E1D7E adds r0, r4, 0 bl move_anim_8072740 _080E1D7E: pop {r4} pop {r0} bx r0 thumb_func_end sub_80E1D20 thumb_func_start sub_80E1D84 sub_80E1D84: @ 80E1D84 push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 ldr r4, _080E1DBC @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r4, r1] bl sub_80E1DC4 movs r1, 0x2 ldrsb r1, [r4, r1] ldrb r2, [r4, 0x4] ldrb r3, [r4, 0x6] ldrh r4, [r4, 0x8] str r4, [sp] bl BeginNormalPaletteFade adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _080E1DC0 @ =sub_80E1E0C str r0, [r5, 0x1C] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E1DBC: .4byte gUnknown_03004B00 _080E1DC0: .4byte sub_80E1E0C thumb_func_end sub_80E1D84 thumb_func_start sub_80E1DC4 sub_80E1DC4: @ 80E1DC4 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0xC lsls r0, 16 lsrs r0, 16 movs r4, 0x1 mov r8, r0 mov r1, r8 ands r1, r4 mov r8, r1 lsls r0, 16 asrs r1, r0, 17 ands r1, r4 asrs r2, r0, 18 ands r2, r4 asrs r3, r0, 19 ands r3, r4 asrs r6, r0, 20 ands r6, r4 asrs r5, r0, 21 ands r5, r4 asrs r0, 22 ands r0, r4 str r6, [sp] str r5, [sp, 0x4] str r0, [sp, 0x8] mov r0, r8 bl sub_80791A8 add sp, 0xC pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80E1DC4 thumb_func_start sub_80E1E0C sub_80E1E0C: @ 80E1E0C push {lr} adds r2, r0, 0 ldr r0, _080E1E28 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080E1E22 adds r0, r2, 0 bl move_anim_8072740 _080E1E22: pop {r0} bx r0 .align 2, 0 _080E1E28: .4byte gPaletteFade thumb_func_end sub_80E1E0C thumb_func_start sub_80E1E2C sub_80E1E2C: @ 80E1E2C push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080E1E78 @ =gUnknown_03004B00 ldrh r0, [r4, 0x2] strh r0, [r5, 0x2E] strh r0, [r5, 0x30] ldrh r0, [r4, 0x4] strh r0, [r5, 0x32] ldrh r0, [r4, 0x6] strh r0, [r5, 0x34] ldrh r0, [r4, 0x8] strh r0, [r5, 0x36] ldrh r0, [r4, 0xA] strh r0, [r5, 0x38] ldrh r0, [r4, 0xC] strh r0, [r5, 0x3A] ldrh r0, [r4] strh r0, [r5, 0x3C] movs r1, 0x3C ldrsh r0, [r5, r1] bl sub_80E1DC4 ldrb r1, [r4, 0x8] ldrh r2, [r4, 0x6] bl BlendPalettes adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _080E1E7C @ =sub_80E1E80 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E1E78: .4byte gUnknown_03004B00 _080E1E7C: .4byte sub_80E1E80 thumb_func_end sub_80E1E2C thumb_func_start sub_80E1E80 sub_80E1E80: @ 80E1E80 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x2E] movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0 ble _080E1E94 subs r0, r1, 0x1 strh r0, [r4, 0x2E] b _080E1F04 _080E1E94: ldr r0, _080E1EB0 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080E1F04 movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0 bne _080E1EB8 ldr r0, _080E1EB4 @ =sub_80E1F0C str r0, [r4, 0x1C] b _080E1F04 .align 2, 0 _080E1EB0: .4byte gPaletteFade _080E1EB4: .4byte sub_80E1F0C _080E1EB8: movs r2, 0x3C ldrsh r0, [r4, r2] bl sub_80E1DC4 adds r3, r0, 0 ldrh r1, [r4, 0x30] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _080E1EDE ldrh r1, [r4, 0x36] lsls r1, 24 lsrs r1, 24 ldrh r2, [r4, 0x34] adds r0, r3, 0 bl BlendPalettes b _080E1EEC _080E1EDE: ldrh r1, [r4, 0x3A] lsls r1, 24 lsrs r1, 24 ldrh r2, [r4, 0x38] adds r0, r3, 0 bl BlendPalettes _080E1EEC: ldrh r0, [r4, 0x30] movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 eors r0, r1 strh r0, [r4, 0x30] movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x32] subs r0, 0x1 strh r0, [r4, 0x32] _080E1F04: pop {r4} pop {r0} bx r0 thumb_func_end sub_80E1E80 thumb_func_start sub_80E1F0C sub_80E1F0C: @ 80E1F0C push {r4,lr} adds r4, r0, 0 ldr r0, _080E1F38 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080E1F32 movs r1, 0x3C ldrsh r0, [r4, r1] bl sub_80E1DC4 movs r1, 0 movs r2, 0 bl BlendPalettes adds r0, r4, 0 bl move_anim_8072740 _080E1F32: pop {r4} pop {r0} bx r0 .align 2, 0 _080E1F38: .4byte gPaletteFade thumb_func_end sub_80E1F0C thumb_func_start sub_80E1F3C sub_80E1F3C: @ 80E1F3C push {r4,lr} adds r4, r0, 0 ldr r1, _080E1F80 @ =gUnknown_03004B00 ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 movs r2, 0 strh r0, [r4, 0x20] ldrh r0, [r1, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] strh r2, [r4, 0x2E] movs r0, 0xA strh r0, [r4, 0x30] movs r0, 0x8 strh r0, [r4, 0x32] movs r0, 0x28 strh r0, [r4, 0x34] movs r0, 0x70 strh r0, [r4, 0x36] strh r2, [r4, 0x38] ldr r1, _080E1F84 @ =move_anim_8074EE0 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r1, _080E1F88 @ =sub_8078174 str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4} pop {r0} bx r0 .align 2, 0 _080E1F80: .4byte gUnknown_03004B00 _080E1F84: .4byte move_anim_8074EE0 _080E1F88: .4byte sub_8078174 thumb_func_end sub_80E1F3C thumb_func_start sub_80E1F8C sub_80E1F8C: @ 80E1F8C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080E1FD0 @ =gTasks lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldr r3, _080E1FD4 @ =gUnknown_03004B00 ldrh r1, [r3] movs r5, 0 strh r1, [r4, 0x8] ldrh r1, [r3, 0x2] strh r1, [r4, 0xA] ldrh r1, [r3, 0x4] strh r1, [r4, 0xC] ldrh r1, [r3, 0x6] strh r1, [r4, 0xE] ldrh r2, [r3, 0x8] strh r2, [r4, 0x10] ldrh r1, [r3, 0xA] strh r1, [r4, 0x12] strh r5, [r4, 0x18] lsls r2, 24 lsrs r2, 24 movs r1, 0 bl sub_80E1FDC ldr r0, _080E1FD8 @ =sub_80E202C str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E1FD0: .4byte gTasks _080E1FD4: .4byte gUnknown_03004B00 _080E1FD8: .4byte sub_80E202C thumb_func_end sub_80E1F8C thumb_func_start sub_80E1FDC sub_80E1FDC: @ 80E1FDC push {r4-r6,lr} sub sp, 0x4 adds r5, r1, 0 adds r6, r2, 0 lsls r0, 24 lsrs r0, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 ldr r1, _080E2028 @ =gTasks lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 movs r1, 0x8 ldrsh r0, [r4, r1] bl sub_80E1DC4 movs r1, 0xA ldrsb r1, [r4, r1] ldrh r2, [r4, 0x12] str r2, [sp] adds r2, r5, 0 adds r3, r6, 0 bl BeginNormalPaletteFade ldrh r0, [r4, 0xC] subs r0, 0x1 strh r0, [r4, 0xC] ldrh r0, [r4, 0x18] movs r1, 0x1 eors r0, r1 strh r0, [r4, 0x18] add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E2028: .4byte gTasks thumb_func_end sub_80E1FDC thumb_func_start sub_80E202C sub_80E202C: @ 80E202C push {r4-r6,lr} lsls r0, 24 lsrs r3, r0, 24 adds r4, r3, 0 ldr r0, _080E2064 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080E208E ldr r1, _080E2068 @ =gTasks lsls r2, r3, 2 adds r0, r2, r3 lsls r0, 3 adds r3, r0, r1 movs r5, 0xC ldrsh r0, [r3, r5] adds r6, r1, 0 adds r5, r2, 0 cmp r0, 0 ble _080E2088 movs r1, 0x18 ldrsh r0, [r3, r1] cmp r0, 0 bne _080E206C ldrb r1, [r3, 0xE] ldrb r2, [r3, 0x10] b _080E2070 .align 2, 0 _080E2064: .4byte gPaletteFade _080E2068: .4byte gTasks _080E206C: ldrb r1, [r3, 0x10] ldrb r2, [r3, 0xE] _080E2070: adds r0, r5, r4 lsls r0, 3 adds r0, r6 movs r3, 0xC ldrsh r0, [r0, r3] cmp r0, 0x1 bne _080E2080 movs r2, 0 _080E2080: adds r0, r4, 0 bl sub_80E1FDC b _080E208E _080E2088: adds r0, r4, 0 bl move_anim_task_del _080E208E: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80E202C thumb_func_start sub_80E2094 sub_80E2094: @ 80E2094 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080E20D8 @ =gTasks lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldr r3, _080E20DC @ =gUnknown_03004B00 ldrh r1, [r3] movs r5, 0 strh r1, [r4, 0x8] ldrh r1, [r3, 0x2] strh r1, [r4, 0xA] ldrh r1, [r3, 0x4] strh r1, [r4, 0xC] ldrh r1, [r3, 0x6] strh r1, [r4, 0xE] ldrh r2, [r3, 0x8] strh r2, [r4, 0x10] ldrh r1, [r3, 0xA] strh r1, [r4, 0x12] strh r5, [r4, 0x18] lsls r2, 24 lsrs r2, 24 movs r1, 0 bl sub_80E20E4 ldr r0, _080E20E0 @ =sub_80E2140 str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E20D8: .4byte gTasks _080E20DC: .4byte gUnknown_03004B00 _080E20E0: .4byte sub_80E2140 thumb_func_end sub_80E2094 thumb_func_start sub_80E20E4 sub_80E20E4: @ 80E20E4 push {r4-r6,lr} sub sp, 0x4 adds r5, r1, 0 adds r6, r2, 0 lsls r0, 24 lsrs r0, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 ldr r1, _080E213C @ =gTasks lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldrh r0, [r4, 0x8] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 adds r0, 0x10 movs r2, 0x1 lsls r2, r0 movs r1, 0xA ldrsb r1, [r4, r1] ldrh r0, [r4, 0x12] str r0, [sp] adds r0, r2, 0 adds r2, r5, 0 adds r3, r6, 0 bl BeginNormalPaletteFade ldrh r0, [r4, 0xC] subs r0, 0x1 strh r0, [r4, 0xC] ldrh r0, [r4, 0x18] movs r1, 0x1 eors r0, r1 strh r0, [r4, 0x18] add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E213C: .4byte gTasks thumb_func_end sub_80E20E4 thumb_func_start sub_80E2140 sub_80E2140: @ 80E2140 push {r4-r6,lr} lsls r0, 24 lsrs r3, r0, 24 adds r4, r3, 0 ldr r0, _080E2178 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080E21A2 ldr r1, _080E217C @ =gTasks lsls r2, r3, 2 adds r0, r2, r3 lsls r0, 3 adds r3, r0, r1 movs r5, 0xC ldrsh r0, [r3, r5] adds r6, r1, 0 adds r5, r2, 0 cmp r0, 0 ble _080E219C movs r1, 0x18 ldrsh r0, [r3, r1] cmp r0, 0 bne _080E2180 ldrb r1, [r3, 0xE] ldrb r2, [r3, 0x10] b _080E2184 .align 2, 0 _080E2178: .4byte gPaletteFade _080E217C: .4byte gTasks _080E2180: ldrb r1, [r3, 0x10] ldrb r2, [r3, 0xE] _080E2184: adds r0, r5, r4 lsls r0, 3 adds r0, r6 movs r3, 0xC ldrsh r0, [r0, r3] cmp r0, 0x1 bne _080E2194 movs r2, 0 _080E2194: adds r0, r4, 0 bl sub_80E20E4 b _080E21A2 _080E219C: adds r0, r4, 0 bl move_anim_task_del _080E21A2: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80E2140 thumb_func_start sub_80E21A8 sub_80E21A8: @ 80E21A8 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r1, _080E2208 @ =gTasks lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldr r5, _080E220C @ =gUnknown_03004B00 ldrh r0, [r5, 0x2] strh r0, [r4, 0x8] ldrh r0, [r5, 0x2] strh r0, [r4, 0xA] ldrh r0, [r5, 0x4] strh r0, [r4, 0xC] ldrh r0, [r5, 0x6] strh r0, [r4, 0xE] ldrh r0, [r5, 0x8] strh r0, [r4, 0x10] ldrh r0, [r5, 0xA] strh r0, [r4, 0x12] ldrh r0, [r5, 0xC] strh r0, [r4, 0x14] ldrh r0, [r5] strh r0, [r4, 0x16] ldrh r0, [r5] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 adds r0, 0x10 movs r1, 0x1 lsls r1, r0 ldrb r3, [r5, 0x8] ldrh r0, [r5, 0x6] str r0, [sp] adds r0, r1, 0 movs r1, 0 adds r2, r3, 0 bl BeginNormalPaletteFade ldr r0, _080E2210 @ =sub_80E2214 str r0, [r4] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E2208: .4byte gTasks _080E220C: .4byte gUnknown_03004B00 _080E2210: .4byte sub_80E2214 thumb_func_end sub_80E21A8 thumb_func_start sub_80E2214 sub_80E2214: @ 80E2214 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080E2238 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r1, [r4, 0x8] movs r2, 0x8 ldrsh r0, [r4, r2] cmp r0, 0 ble _080E223C subs r0, r1, 0x1 strh r0, [r4, 0x8] b _080E22C0 .align 2, 0 _080E2238: .4byte gTasks _080E223C: ldr r0, _080E2258 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080E22C0 movs r3, 0xC ldrsh r0, [r4, r3] cmp r0, 0 bne _080E2260 ldr r0, _080E225C @ =sub_80E22CC str r0, [r4] b _080E22C0 .align 2, 0 _080E2258: .4byte gPaletteFade _080E225C: .4byte sub_80E22CC _080E2260: ldrh r0, [r4, 0x16] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 adds r0, 0x10 movs r2, 0x1 lsls r2, r0 ldrh r1, [r4, 0xA] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _080E228E ldrb r3, [r4, 0x10] ldrh r0, [r4, 0xE] str r0, [sp] adds r0, r2, 0 movs r1, 0 adds r2, r3, 0 bl BeginNormalPaletteFade b _080E229E _080E228E: ldrb r3, [r4, 0x14] ldrh r0, [r4, 0x12] str r0, [sp] adds r0, r2, 0 movs r1, 0 adds r2, r3, 0 bl BeginNormalPaletteFade _080E229E: ldr r0, _080E22C8 @ =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0xA] movs r3, 0x80 lsls r3, 1 adds r2, r3, 0 eors r0, r2 strh r0, [r1, 0xA] movs r2, 0xFF ands r0, r2 strh r0, [r1, 0x8] ldrh r0, [r1, 0xC] subs r0, 0x1 strh r0, [r1, 0xC] _080E22C0: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E22C8: .4byte gTasks thumb_func_end sub_80E2214 thumb_func_start sub_80E22CC sub_80E22CC: @ 80E22CC push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080E231C @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _080E2312 ldr r1, _080E2320 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldrh r0, [r0, 0x16] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 adds r0, 0x10 movs r1, 0x1 lsls r1, r0 str r5, [sp] adds r0, r1, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl BeginNormalPaletteFade adds r0, r4, 0 bl move_anim_task_del _080E2312: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E231C: .4byte gPaletteFade _080E2320: .4byte gTasks thumb_func_end sub_80E22CC thumb_func_start sub_80E2324 sub_80E2324: @ 80E2324 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r2, 0 ldr r0, _080E239C @ =gUnknown_0202F7C8 ldrb r6, [r0] ldr r0, _080E23A0 @ =gUnknown_0202F7C9 ldrb r7, [r0] ldr r4, _080E23A4 @ =gUnknown_03004B00 ldrh r1, [r4] movs r5, 0x80 lsls r5, 1 adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _080E235E str r2, [sp] str r2, [sp, 0x4] str r2, [sp, 0x8] movs r0, 0x1 movs r1, 0 movs r3, 0 bl sub_80791A8 adds r2, r0, 0 _080E235E: ldrh r1, [r4, 0x2] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _080E2370 movs r0, 0x80 lsls r0, 9 lsls r0, r6 orrs r2, r0 _080E2370: ldrh r1, [r4, 0x4] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _080E2382 movs r0, 0x80 lsls r0, 9 lsls r0, r7 orrs r2, r0 _080E2382: adds r0, r2, 0 bl InvertPlttBuffer mov r0, r8 bl move_anim_task_del add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E239C: .4byte gUnknown_0202F7C8 _080E23A0: .4byte gUnknown_0202F7C9 _080E23A4: .4byte gUnknown_03004B00 thumb_func_end sub_80E2324 thumb_func_start unref_sub_80E23A8 unref_sub_80E23A8: @ 80E23A8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r5, 0 ldr r1, _080E249C @ =gTasks lsls r0, 2 add r0, r8 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 bne _080E23EA ldr r1, _080E24A0 @ =gUnknown_03004B00 ldrh r0, [r1] strh r0, [r4, 0xC] ldrh r0, [r1, 0x2] strh r0, [r4, 0xE] ldrh r0, [r1, 0x4] strh r0, [r4, 0x10] ldrh r0, [r1, 0x6] strh r0, [r4, 0xA] ldrh r0, [r1, 0x8] strh r0, [r4, 0x12] ldrh r0, [r1, 0xA] strh r0, [r4, 0x14] ldrh r0, [r1, 0xC] strh r0, [r4, 0x16] _080E23EA: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] ldr r0, _080E24A4 @ =gUnknown_0202F7C8 ldrb r0, [r0] mov r9, r0 ldr r0, _080E24A8 @ =gUnknown_0202F7C9 ldrb r0, [r0] mov r10, r0 ldrh r1, [r4, 0xC] movs r7, 0x80 lsls r7, 1 adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _080E240C ldr r5, _080E24AC @ =0x0000ffff _080E240C: movs r6, 0x1 adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _080E243C ldr r2, _080E24B0 @ =gSprites ldr r0, _080E24B4 @ =gUnknown_03004340 add r0, r9 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x14 adds r0, r2 ldr r0, [r0] ldrh r0, [r0, 0x2] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 adds r1, r6, 0 lsls r1, r0 lsls r1, 16 orrs r5, r1 _080E243C: ldrh r1, [r4, 0xE] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _080E2450 adds r0, r6, 0 mov r2, r9 lsls r0, r2 lsls r0, 16 orrs r5, r0 _080E2450: ldrh r1, [r4, 0x10] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _080E2464 adds r0, r6, 0 mov r1, r10 lsls r0, r1 lsls r0, 16 orrs r5, r0 _080E2464: movs r1, 0x12 ldrsb r1, [r4, r1] movs r2, 0x14 ldrsb r2, [r4, r2] movs r3, 0x16 ldrsb r3, [r4, r3] adds r0, r5, 0 bl TintPlttBuffer movs r2, 0x8 ldrsh r1, [r4, r2] movs r2, 0xA ldrsh r0, [r4, r2] cmp r1, r0 bne _080E248E adds r0, r5, 0 bl UnfadePlttBuffer mov r0, r8 bl move_anim_task_del _080E248E: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E249C: .4byte gTasks _080E24A0: .4byte gUnknown_03004B00 _080E24A4: .4byte gUnknown_0202F7C8 _080E24A8: .4byte gUnknown_0202F7C9 _080E24AC: .4byte 0x0000ffff _080E24B0: .4byte gSprites _080E24B4: .4byte gUnknown_03004340 thumb_func_end unref_sub_80E23A8 thumb_func_start sub_80E24B8 sub_80E24B8: @ 80E24B8 push {r4,lr} adds r4, r0, 0 adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r1, _080E24EC @ =gUnknown_03004B00 ldrh r0, [r1] negs r0, r0 strh r0, [r4, 0x2E] ldrh r0, [r1, 0x2] strh r0, [r4, 0x30] strh r0, [r4, 0x32] ldrh r0, [r1, 0x4] strh r0, [r4, 0x34] movs r2, 0x6 ldrsh r0, [r1, r2] cmp r0, 0x1 beq _080E2500 cmp r0, 0x1 bgt _080E24F0 cmp r0, 0 beq _080E24F6 b _080E2518 .align 2, 0 _080E24EC: .4byte gUnknown_03004B00 _080E24F0: cmp r0, 0x2 beq _080E2508 b _080E2518 _080E24F6: ldr r1, _080E24FC @ =gUnknown_030041B0 b _080E250A .align 2, 0 _080E24FC: .4byte gUnknown_030041B0 _080E2500: ldr r1, _080E2504 @ =gUnknown_030041B8 b _080E250A .align 2, 0 _080E2504: .4byte gUnknown_030041B8 _080E2508: ldr r1, _080E2514 @ =gSpriteCoordOffsetX _080E250A: adds r0, r4, 0 bl oamt_set_x3A_32 b _080E2520 .align 2, 0 _080E2514: .4byte gSpriteCoordOffsetX _080E2518: ldr r1, _080E2550 @ =gSpriteCoordOffsetY adds r0, r4, 0 bl oamt_set_x3A_32 _080E2520: movs r0, 0x3A ldrsh r1, [r4, r0] movs r2, 0x3C ldrsh r0, [r4, r2] lsls r0, 16 orrs r1, r0 ldr r0, [r1] strh r0, [r4, 0x36] ldr r0, _080E2554 @ =gUnknown_03004B00 ldrh r0, [r0, 0x6] strh r0, [r4, 0x38] subs r0, 0x2 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _080E2544 bl sub_80E260C _080E2544: ldr r0, _080E2558 @ =sub_80E255C str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080E2550: .4byte gSpriteCoordOffsetY _080E2554: .4byte gUnknown_03004B00 _080E2558: .4byte sub_80E255C thumb_func_end sub_80E24B8 thumb_func_start sub_80E255C sub_80E255C: @ 80E255C push {r4-r7,lr} adds r3, r0, 0 ldrh r1, [r3, 0x34] movs r2, 0x34 ldrsh r0, [r3, r2] cmp r0, 0 ble _080E25A0 subs r0, r1, 0x1 strh r0, [r3, 0x34] ldrh r1, [r3, 0x30] movs r2, 0x30 ldrsh r0, [r3, r2] cmp r0, 0 ble _080E257E subs r0, r1, 0x1 strh r0, [r3, 0x30] b _080E25FA _080E257E: ldrh r0, [r3, 0x32] strh r0, [r3, 0x30] movs r0, 0x3A ldrsh r1, [r3, r0] movs r2, 0x3C ldrsh r0, [r3, r2] lsls r0, 16 orrs r1, r0 movs r0, 0x2E ldrsh r2, [r3, r0] ldr r0, [r1] adds r0, r2 str r0, [r1] ldrh r0, [r3, 0x2E] negs r0, r0 strh r0, [r3, 0x2E] b _080E25FA _080E25A0: movs r2, 0x3A ldrsh r1, [r3, r2] movs r2, 0x3C ldrsh r0, [r3, r2] lsls r0, 16 orrs r1, r0 movs r2, 0x36 ldrsh r0, [r3, r2] str r0, [r1] ldrh r0, [r3, 0x38] subs r0, 0x2 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _080E25F4 movs r4, 0 ldr r5, _080E2600 @ =gUnknown_02024A68 ldrb r0, [r5] cmp r4, r0 bcs _080E25F4 ldr r2, _080E2604 @ =gSprites mov r12, r2 ldr r6, _080E2608 @ =gUnknown_02024BE0 movs r7, 0x3 negs r7, r7 _080E25D2: adds r0, r4, r6 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r12 adds r1, 0x3E ldrb r2, [r1] adds r0, r7, 0 ands r0, r2 strb r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldrb r0, [r5] cmp r4, r0 bcc _080E25D2 _080E25F4: adds r0, r3, 0 bl move_anim_8072740 _080E25FA: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E2600: .4byte gUnknown_02024A68 _080E2604: .4byte gSprites _080E2608: .4byte gUnknown_02024BE0 thumb_func_end sub_80E255C thumb_func_start sub_80E260C sub_80E260C: @ 80E260C push {r4-r6,lr} ldr r6, _080E2680 @ =gSprites ldr r4, _080E2684 @ =gUnknown_02024BE0 ldr r5, _080E2688 @ =gUnknown_0202F7C8 ldrb r0, [r5] adds r0, r4 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 adds r1, 0x3E ldrb r3, [r1] movs r2, 0x3 negs r2, r2 adds r0, r2, 0 ands r0, r3 strb r0, [r1] ldr r3, _080E268C @ =gUnknown_0202F7C9 ldrb r0, [r3] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r1, [r0] ands r2, r1 strb r2, [r0] ldr r0, _080E2690 @ =gUnknown_03004B00 movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0x2 bne _080E2694 ldrb r0, [r5] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x2 orrs r1, r2 strb r1, [r0] ldrb r0, [r3] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r1, [r0] b _080E26B0 .align 2, 0 _080E2680: .4byte gSprites _080E2684: .4byte gUnknown_02024BE0 _080E2688: .4byte gUnknown_0202F7C8 _080E268C: .4byte gUnknown_0202F7C9 _080E2690: .4byte gUnknown_03004B00 _080E2694: cmp r0, 0 bne _080E269C ldrb r0, [r5] b _080E269E _080E269C: ldrb r0, [r3] _080E269E: adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x2 _080E26B0: orrs r1, r2 strb r1, [r0] pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80E260C thumb_func_start sub_80E26BC sub_80E26BC: @ 80E26BC push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080E26FC @ =gTasks lsls r2, r0, 2 adds r2, r0 lsls r2, 3 adds r2, r1 ldr r3, _080E2700 @ =gUnknown_03004B00 ldrh r1, [r3] strh r1, [r2, 0x8] ldrh r1, [r3, 0x2] strh r1, [r2, 0xA] ldrh r1, [r3, 0x4] strh r1, [r2, 0xC] ldrh r1, [r3, 0x6] strh r1, [r2, 0xE] ldrh r1, [r3, 0x6] strh r1, [r2, 0x18] ldr r4, _080E2704 @ =gUnknown_030041B0 ldrh r1, [r3] strh r1, [r4] ldr r4, _080E2708 @ =gUnknown_030041B8 ldrh r1, [r3, 0x2] strh r1, [r4] ldr r1, _080E270C @ =sub_80E2710 str r1, [r2] bl _call_via_r1 pop {r4} pop {r0} bx r0 .align 2, 0 _080E26FC: .4byte gTasks _080E2700: .4byte gUnknown_03004B00 _080E2704: .4byte gUnknown_030041B0 _080E2708: .4byte gUnknown_030041B8 _080E270C: .4byte sub_80E2710 thumb_func_end sub_80E26BC thumb_func_start sub_80E2710 sub_80E2710: @ 80E2710 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080E2740 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r3, r0, r1 ldrh r2, [r3, 0xE] movs r4, 0xE ldrsh r0, [r3, r4] mov r12, r1 cmp r0, 0 bne _080E2796 ldr r0, _080E2744 @ =gUnknown_030041B0 ldrh r2, [r0] movs r7, 0x8 ldrsh r1, [r3, r7] adds r6, r0, 0 cmp r2, r1 bne _080E2748 ldrh r0, [r3, 0x8] negs r0, r0 b _080E274A .align 2, 0 _080E2740: .4byte gTasks _080E2744: .4byte gUnknown_030041B0 _080E2748: ldrh r0, [r3, 0x8] _080E274A: strh r0, [r6] ldr r2, _080E2768 @ =gUnknown_030041B8 ldrh r3, [r2] lsls r1, r5, 2 adds r0, r1, r5 lsls r0, 3 mov r7, r12 adds r4, r0, r7 movs r7, 0xA ldrsh r0, [r4, r7] cmn r3, r0 bne _080E276C movs r0, 0 b _080E2770 .align 2, 0 _080E2768: .4byte gUnknown_030041B8 _080E276C: ldrh r0, [r4, 0xA] negs r0, r0 _080E2770: strh r0, [r2] adds r0, r1, r5 lsls r0, 3 add r0, r12 ldrh r1, [r0, 0x18] strh r1, [r0, 0xE] ldrh r1, [r0, 0xC] subs r1, 0x1 strh r1, [r0, 0xC] lsls r1, 16 asrs r1, 16 cmp r1, 0 bne _080E279A strh r1, [r6] strh r1, [r2] adds r0, r5, 0 bl move_anim_task_del b _080E279A _080E2796: subs r0, r2, 0x1 strh r0, [r3, 0xE] _080E279A: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80E2710 thumb_func_start sub_80E27A0 sub_80E27A0: @ 80E27A0 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080E27C0 @ =gUnknown_03004B00 ldrb r1, [r4, 0x6] bl StartSpriteAffineAnim movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0 bne _080E27C4 adds r0, r5, 0 movs r1, 0x1 bl sub_80787B0 b _080E27CC .align 2, 0 _080E27C0: .4byte gUnknown_03004B00 _080E27C4: adds r0, r5, 0 movs r1, 0x1 bl sub_8078764 _080E27CC: ldr r0, _080E27E0 @ =sub_80785E4 str r0, [r5, 0x1C] ldr r1, _080E27E4 @ =move_anim_8072740 adds r0, r5, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E27E0: .4byte sub_80785E4 _080E27E4: .4byte move_anim_8072740 thumb_func_end sub_80E27A0 thumb_func_start sub_80E27E8 sub_80E27E8: @ 80E27E8 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080E2808 @ =gUnknown_03004B00 ldrb r1, [r4, 0x6] bl StartSpriteAffineAnim movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0 bne _080E280C adds r0, r5, 0 movs r1, 0x1 bl sub_80787B0 b _080E2814 .align 2, 0 _080E2808: .4byte gUnknown_03004B00 _080E280C: adds r0, r5, 0 movs r1, 0x1 bl sub_8078764 _080E2814: ldr r0, _080E282C @ =gUnknown_03004B00 ldrh r0, [r0, 0x8] strh r0, [r5, 0x2E] ldr r0, _080E2830 @ =sub_80785E4 str r0, [r5, 0x1C] ldr r1, _080E2834 @ =sub_80DA48C adds r0, r5, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E282C: .4byte gUnknown_03004B00 _080E2830: .4byte sub_80785E4 _080E2834: .4byte sub_80DA48C thumb_func_end sub_80E27E8 thumb_func_start sub_80E2838 sub_80E2838: @ 80E2838 push {r4,lr} adds r4, r0, 0 ldr r0, _080E2868 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080E285C bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E285C ldr r1, _080E286C @ =gUnknown_03004B00 ldrh r0, [r1, 0x2] negs r0, r0 strh r0, [r1, 0x2] _080E285C: adds r0, r4, 0 bl sub_80E27A0 pop {r4} pop {r0} bx r0 .align 2, 0 _080E2868: .4byte gUnknown_0202F7C8 _080E286C: .4byte gUnknown_03004B00 thumb_func_end sub_80E2838 thumb_func_start sub_80E2870 sub_80E2870: @ 80E2870 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080E28A8 @ =gUnknown_03004B00 movs r0, 0x2 ldrsh r1, [r5, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080E288C bl Random movs r1, 0x3 ands r1, r0 strh r1, [r5, 0x2] _080E288C: ldrb r1, [r5, 0x2] adds r0, r4, 0 bl StartSpriteAffineAnim movs r1, 0 ldrsh r0, [r5, r1] cmp r0, 0 bne _080E28AC adds r0, r4, 0 movs r1, 0 bl sub_80787B0 b _080E28B4 .align 2, 0 _080E28A8: .4byte gUnknown_03004B00 _080E28AC: adds r0, r4, 0 movs r1, 0 bl sub_8078764 _080E28B4: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x30 bl __umodsi3 ldr r1, _080E28F8 @ =0x0000ffe8 adds r0, r1 ldrh r1, [r4, 0x24] adds r0, r1 strh r0, [r4, 0x24] bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x18 bl __umodsi3 ldr r1, _080E28FC @ =0x0000fff4 adds r0, r1 ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] ldr r1, _080E2900 @ =move_anim_8074EE0 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080E2904 @ =sub_80785E4 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E28F8: .4byte 0x0000ffe8 _080E28FC: .4byte 0x0000fff4 _080E2900: .4byte move_anim_8074EE0 _080E2904: .4byte sub_80785E4 thumb_func_end sub_80E2870 thumb_func_start sub_80E2908 sub_80E2908: @ 80E2908 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080E2968 @ =gUnknown_03004B00 ldrb r0, [r5] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x2E] ldr r2, _080E296C @ =gSprites movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x24] ldrh r0, [r0, 0x20] adds r1, r0 strh r1, [r4, 0x20] movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x26] ldrh r0, [r0, 0x22] adds r1, r0 strh r1, [r4, 0x22] ldrh r0, [r5, 0x2] strh r0, [r4, 0x24] ldrh r0, [r5, 0x4] strh r0, [r4, 0x26] ldrb r1, [r5, 0x6] adds r0, r4, 0 bl StartSpriteAffineAnim ldr r1, _080E2970 @ =move_anim_8074EE0 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080E2974 @ =sub_80785E4 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E2968: .4byte gUnknown_03004B00 _080E296C: .4byte gSprites _080E2970: .4byte move_anim_8074EE0 _080E2974: .4byte sub_80785E4 thumb_func_end sub_80E2908 thumb_func_start sub_80E2978 sub_80E2978: @ 80E2978 push {r4,lr} adds r4, r0, 0 ldr r0, _080E2990 @ =gUnknown_03004B00 movs r1, 0x4 ldrsh r0, [r0, r1] cmp r0, 0 bne _080E2994 adds r0, r4, 0 movs r1, 0x1 bl sub_80787B0 b _080E299C .align 2, 0 _080E2990: .4byte gUnknown_03004B00 _080E2994: adds r0, r4, 0 movs r1, 0x1 bl sub_8078764 _080E299C: ldr r0, _080E29B4 @ =gUnknown_03004B00 ldrh r0, [r0, 0x6] strh r0, [r4, 0x2E] ldr r1, _080E29B8 @ =move_anim_8072740 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080E29BC @ =sub_80782D8 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080E29B4: .4byte gUnknown_03004B00 _080E29B8: .4byte move_anim_8072740 _080E29BC: .4byte sub_80782D8 thumb_func_end sub_80E2978 thumb_func_start sub_80E29C0 sub_80E29C0: @ 80E29C0 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080E29E0 @ =gUnknown_03004B00 ldrb r1, [r4, 0x6] bl StartSpriteAffineAnim movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0 bne _080E29E4 adds r0, r5, 0 movs r1, 0x1 bl sub_80787B0 b _080E29EC .align 2, 0 _080E29E0: .4byte gUnknown_03004B00 _080E29E4: adds r0, r5, 0 movs r1, 0x1 bl sub_8078764 _080E29EC: ldr r0, _080E29F8 @ =sub_80E29FC str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E29F8: .4byte sub_80E29FC thumb_func_end sub_80E29C0 thumb_func_start sub_80E29FC sub_80E29FC: @ 80E29FC push {lr} adds r3, r0, 0 movs r0, 0x3E adds r0, r3 mov r12, r0 ldrb r2, [r0] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] ldrh r0, [r3, 0x2E] adds r1, r0, 0x1 strh r1, [r3, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0xC ble _080E2A32 adds r0, r3, 0 bl move_anim_8072740 _080E2A32: pop {r0} bx r0 thumb_func_end sub_80E29FC thumb_func_start sub_80E2A38 sub_80E2A38: @ 80E2A38 push {r4-r6,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r4, _080E2A78 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r4, r1] bl sub_80E1DC4 adds r6, r0, 0 ldrh r3, [r4] lsls r3, 16 asrs r0, r3, 23 movs r4, 0x1 ands r0, r4 asrs r1, r3, 24 ands r1, r4 asrs r2, r3, 25 ands r2, r4 asrs r3, 26 ands r3, r4 bl sub_80792C0 orrs r6, r0 adds r0, r5, 0 adds r1, r6, 0 bl sub_80E2C8C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E2A78: .4byte gUnknown_03004B00 thumb_func_end sub_80E2A38 thumb_func_start sub_80E2A7C sub_80E2A7C: @ 80E2A7C push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r7, r0, 24 mov r1, sp movs r0, 0xFF strb r0, [r1, 0x1] movs r0, 0x1 bl sub_80E1DC4 adds r5, r0, 0 ldr r0, _080E2AA8 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x7 bhi _080E2B26 lsls r0, 2 ldr r1, _080E2AAC @ =_080E2AB0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E2AA8: .4byte gUnknown_03004B00 _080E2AAC: .4byte _080E2AB0 .align 2, 0 _080E2AB0: .4byte _080E2AD2 .4byte _080E2ADE .4byte _080E2AD0 .4byte _080E2ADC .4byte _080E2AEC .4byte _080E2B04 .4byte _080E2B0C .4byte _080E2B18 _080E2AD0: movs r5, 0 _080E2AD2: mov r0, sp ldr r1, _080E2AD8 @ =gUnknown_0202F7C8 b _080E2AE2 .align 2, 0 _080E2AD8: .4byte gUnknown_0202F7C8 _080E2ADC: movs r5, 0 _080E2ADE: mov r0, sp ldr r1, _080E2AE8 @ =gUnknown_0202F7C9 _080E2AE2: ldrb r1, [r1] strb r1, [r0] b _080E2B26 .align 2, 0 _080E2AE8: .4byte gUnknown_0202F7C9 _080E2AEC: mov r1, sp ldr r0, _080E2AFC @ =gUnknown_0202F7C8 ldrb r0, [r0] strb r0, [r1] ldr r0, _080E2B00 @ =gUnknown_0202F7C9 ldrb r0, [r0] strb r0, [r1, 0x1] b _080E2B26 .align 2, 0 _080E2AFC: .4byte gUnknown_0202F7C8 _080E2B00: .4byte gUnknown_0202F7C9 _080E2B04: mov r1, sp movs r0, 0xFF strb r0, [r1] b _080E2B26 _080E2B0C: movs r5, 0 mov r2, sp ldr r0, _080E2B14 @ =gUnknown_0202F7C8 b _080E2B1E .align 2, 0 _080E2B14: .4byte gUnknown_0202F7C8 _080E2B18: movs r5, 0 mov r2, sp ldr r0, _080E2B70 @ =gUnknown_0202F7C9 _080E2B1E: ldrb r0, [r0] movs r1, 0x2 eors r0, r1 strb r0, [r2] _080E2B26: movs r4, 0 mov r6, sp _080E2B2A: ldrb r0, [r6] cmp r4, r0 beq _080E2B54 ldrb r0, [r6, 0x1] cmp r4, r0 beq _080E2B54 adds r0, r4, 0 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080E2B54 adds r0, r4, 0 bl sub_80793A8 lsls r0, 24 lsrs r0, 24 movs r1, 0x80 lsls r1, 9 lsls r1, r0 orrs r5, r1 _080E2B54: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _080E2B2A adds r0, r7, 0 adds r1, r5, 0 bl sub_80E2C8C add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E2B70: .4byte gUnknown_0202F7C9 thumb_func_end sub_80E2A7C thumb_func_start sub_80E2B74 sub_80E2B74: @ 80E2B74 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080E2B98 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r0, r1] bl sub_80E1DC4 adds r2, r0, 0 ldr r0, _080E2B9C @ =gUnknown_0300428C ldrb r0, [r0] cmp r0, 0x9 bhi _080E2C4A lsls r0, 2 ldr r1, _080E2BA0 @ =_080E2BA4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E2B98: .4byte gUnknown_03004B00 _080E2B9C: .4byte gUnknown_0300428C _080E2BA0: .4byte _080E2BA4 .align 2, 0 _080E2BA4: .4byte _080E2BCC .4byte _080E2BDC .4byte _080E2BE8 .4byte _080E2BF8 .4byte _080E2C04 .4byte _080E2C14 .4byte _080E2C24 .4byte _080E2C34 .4byte _080E2C44 .4byte _080E2C44 _080E2BCC: ldr r1, _080E2BD4 @ =gUnknown_03004B00 ldr r0, _080E2BD8 @ =0x00000b0c b _080E2C48 .align 2, 0 _080E2BD4: .4byte gUnknown_03004B00 _080E2BD8: .4byte 0x00000b0c _080E2BDC: ldr r1, _080E2BE4 @ =gUnknown_03004B00 movs r0, 0x9E lsls r0, 4 b _080E2C48 .align 2, 0 _080E2BE4: .4byte gUnknown_03004B00 _080E2BE8: ldr r1, _080E2BF0 @ =gUnknown_03004B00 ldr r0, _080E2BF4 @ =0x00002f1e b _080E2C48 .align 2, 0 _080E2BF0: .4byte gUnknown_03004B00 _080E2BF4: .4byte 0x00002f1e _080E2BF8: ldr r1, _080E2C00 @ =gUnknown_03004B00 movs r0, 0x90 lsls r0, 7 b _080E2C48 .align 2, 0 _080E2C00: .4byte gUnknown_03004B00 _080E2C04: ldr r1, _080E2C0C @ =gUnknown_03004B00 ldr r0, _080E2C10 @ =0x00007ecb b _080E2C48 .align 2, 0 _080E2C0C: .4byte gUnknown_03004B00 _080E2C10: .4byte 0x00007ecb _080E2C14: ldr r1, _080E2C1C @ =gUnknown_03004B00 ldr r0, _080E2C20 @ =0x00007ecb b _080E2C48 .align 2, 0 _080E2C1C: .4byte gUnknown_03004B00 _080E2C20: .4byte 0x00007ecb _080E2C24: ldr r1, _080E2C2C @ =gUnknown_03004B00 ldr r0, _080E2C30 @ =0x00002a16 b _080E2C48 .align 2, 0 _080E2C2C: .4byte gUnknown_03004B00 _080E2C30: .4byte 0x00002a16 _080E2C34: ldr r1, _080E2C3C @ =gUnknown_03004B00 ldr r0, _080E2C40 @ =0x00000d2e b _080E2C48 .align 2, 0 _080E2C3C: .4byte gUnknown_03004B00 _080E2C40: .4byte 0x00000d2e _080E2C44: ldr r1, _080E2C58 @ =gUnknown_03004B00 ldr r0, _080E2C5C @ =0x00007fff _080E2C48: strh r0, [r1, 0x8] _080E2C4A: adds r0, r4, 0 adds r1, r2, 0 bl sub_80E2C8C pop {r4} pop {r0} bx r0 .align 2, 0 _080E2C58: .4byte gUnknown_03004B00 _080E2C5C: .4byte 0x00007fff thumb_func_end sub_80E2B74 thumb_func_start sub_80E2C60 sub_80E2C60: @ 80E2C60 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080E2C88 @ =gUnknown_03004B00 ldrh r0, [r0] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 adds r0, 0x10 movs r1, 0x1 lsls r1, r0 adds r0, r4, 0 bl sub_80E2C8C pop {r4} pop {r0} bx r0 .align 2, 0 _080E2C88: .4byte gUnknown_03004B00 thumb_func_end sub_80E2C60 thumb_func_start sub_80E2C8C sub_80E2C8C: @ 80E2C8C push {lr} lsls r0, 24 lsrs r0, 24 ldr r3, _080E2CC4 @ =gTasks lsls r2, r0, 2 adds r2, r0 lsls r2, 3 adds r2, r3 strh r1, [r2, 0x8] lsrs r1, 16 strh r1, [r2, 0xA] ldr r3, _080E2CC8 @ =gUnknown_03004B00 ldrh r1, [r3, 0x2] strh r1, [r2, 0xC] ldrh r1, [r3, 0x4] strh r1, [r2, 0xE] ldrh r1, [r3, 0x6] strh r1, [r2, 0x10] ldrh r1, [r3, 0x8] strh r1, [r2, 0x12] ldrh r1, [r3, 0x4] strh r1, [r2, 0x1C] ldr r1, _080E2CCC @ =sub_80E2CD0 str r1, [r2] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _080E2CC4: .4byte gTasks _080E2CC8: .4byte gUnknown_03004B00 _080E2CCC: .4byte sub_80E2CD0 thumb_func_end sub_80E2C8C thumb_func_start sub_80E2CD0 sub_80E2CD0: @ 80E2CD0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r7, r0, 24 movs r6, 0 ldr r2, _080E2D50 @ =gTasks lsls r5, r7, 2 adds r0, r5, r7 lsls r0, 3 adds r3, r0, r2 ldrh r0, [r3, 0x1A] mov r8, r0 movs r4, 0x1A ldrsh r1, [r3, r4] movs r4, 0xC ldrsh r0, [r3, r4] mov r9, r2 cmp r1, r0 bne _080E2D66 strh r6, [r3, 0x1A] movs r0, 0x8 ldrsh r4, [r3, r0] movs r1, 0xA ldrsh r0, [r3, r1] lsls r0, 16 orrs r4, r0 mov r8, r5 cmp r4, 0 beq _080E2D32 adds r5, r3, 0 _080E2D10: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _080E2D24 ldrb r2, [r5, 0x1C] ldrh r3, [r5, 0x12] adds r0, r6, 0 movs r1, 0x10 bl BlendPalette _080E2D24: adds r0, r6, 0 adds r0, 0x10 lsls r0, 16 lsrs r6, r0, 16 lsrs r4, 1 cmp r4, 0 bne _080E2D10 _080E2D32: mov r4, r8 adds r0, r4, r7 lsls r0, 3 mov r1, r9 adds r2, r0, r1 ldrh r0, [r2, 0x1C] movs r4, 0x1C ldrsh r3, [r2, r4] movs r4, 0x10 ldrsh r1, [r2, r4] cmp r3, r1 bge _080E2D54 adds r0, 0x1 strh r0, [r2, 0x1C] b _080E2D6C .align 2, 0 _080E2D50: .4byte gTasks _080E2D54: cmp r3, r1 ble _080E2D5E subs r0, 0x1 strh r0, [r2, 0x1C] b _080E2D6C _080E2D5E: adds r0, r7, 0 bl move_anim_task_del b _080E2D6C _080E2D66: mov r0, r8 adds r0, 0x1 strh r0, [r3, 0x1A] _080E2D6C: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80E2CD0 thumb_func_start sub_80E2D78 sub_80E2D78: @ 80E2D78 push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r4, _080E2DAC @ =gUnknown_03004B00 ldrb r0, [r4] ldrb r1, [r4, 0x2] ldrb r2, [r4, 0x4] ldrb r3, [r4, 0x6] ldrb r4, [r4, 0x8] str r4, [sp] bl BeginHardwarePaletteFade ldr r1, _080E2DB0 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _080E2DB4 @ =sub_80E2DB8 str r1, [r0] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E2DAC: .4byte gUnknown_03004B00 _080E2DB0: .4byte gTasks _080E2DB4: .4byte sub_80E2DB8 thumb_func_end sub_80E2D78 thumb_func_start sub_80E2DB8 sub_80E2DB8: @ 80E2DB8 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080E2DD4 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080E2DD0 adds r0, r2, 0 bl move_anim_task_del _080E2DD0: pop {r0} bx r0 .align 2, 0 _080E2DD4: .4byte gPaletteFade thumb_func_end sub_80E2DB8 thumb_func_start sub_80E2DD8 sub_80E2DD8: @ 80E2DD8 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080E2E04 @ =gTasks adds r1, r0 ldr r2, _080E2E08 @ =gUnknown_03004B00 ldrh r0, [r2] movs r3, 0 strh r0, [r1, 0x8] strh r3, [r1, 0xA] ldrh r0, [r2, 0x2] strh r0, [r1, 0xC] ldrh r0, [r2, 0x4] strh r0, [r1, 0xE] ldrh r0, [r2, 0x6] strh r0, [r1, 0x10] strh r3, [r1, 0x12] ldr r0, _080E2E0C @ =sub_80E2E10 str r0, [r1] bx lr .align 2, 0 _080E2E04: .4byte gTasks _080E2E08: .4byte gUnknown_03004B00 _080E2E0C: .4byte sub_80E2E10 thumb_func_end sub_80E2DD8 thumb_func_start sub_80E2E10 sub_80E2E10: @ 80E2E10 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 adds r2, r5, 0 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080E2E3C @ =gTasks adds r4, r0, r1 movs r1, 0x10 ldrsh r0, [r4, r1] cmp r0, 0 beq _080E2ED4 ldrh r1, [r4, 0xA] movs r2, 0xA ldrsh r0, [r4, r2] cmp r0, 0 beq _080E2E40 subs r0, r1, 0x1 strh r0, [r4, 0xA] b _080E2EE2 .align 2, 0 _080E2E3C: .4byte gTasks _080E2E40: ldrb r0, [r4, 0x8] bl duplicate_obj_of_side_rel2move_in_transparent_mode strh r0, [r4, 0x14] lsls r0, 16 cmp r0, 0 blt _080E2EBE ldr r6, _080E2ECC @ =gSprites movs r1, 0x14 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r3, r1, r6 movs r2, 0x8 ldrsh r0, [r4, r2] movs r2, 0x2 cmp r0, 0 beq _080E2E68 movs r2, 0x1 _080E2E68: lsls r2, 2 ldrb r1, [r3, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 orrs r0, r2 strb r0, [r3, 0x5] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldrh r1, [r4, 0xE] strh r1, [r0, 0x2E] movs r2, 0x14 ldrsh r1, [r4, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 strh r5, [r0, 0x30] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x5 strh r1, [r0, 0x32] movs r2, 0x14 ldrsh r1, [r4, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r6, 0 adds r1, 0x1C adds r0, r1 ldr r1, _080E2ED0 @ =sub_80E2EE8 str r1, [r0] ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] _080E2EBE: ldrh r0, [r4, 0x10] subs r0, 0x1 strh r0, [r4, 0x10] ldrh r0, [r4, 0xC] strh r0, [r4, 0xA] b _080E2EE2 .align 2, 0 _080E2ECC: .4byte gSprites _080E2ED0: .4byte sub_80E2EE8 _080E2ED4: movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0 bne _080E2EE2 adds r0, r2, 0 bl move_anim_task_del _080E2EE2: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80E2E10 thumb_func_start sub_80E2EE8 sub_80E2EE8: @ 80E2EE8 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x2E] movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0 beq _080E2EFC subs r0, r1, 0x1 strh r0, [r4, 0x2E] b _080E2F20 _080E2EFC: ldr r3, _080E2F28 @ =gTasks movs r0, 0x32 ldrsh r1, [r4, r0] lsls r1, 1 movs r0, 0x30 ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] adds r0, r4, 0 bl obj_delete_but_dont_free_vram _080E2F20: pop {r4} pop {r0} bx r0 .align 2, 0 _080E2F28: .4byte gTasks thumb_func_end sub_80E2EE8 thumb_func_start sub_80E2F2C sub_80E2F2C: @ 80E2F2C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r7, 0 ldr r0, _080E3038 @ =gUnknown_030042C4 strh r7, [r0] ldr r0, _080E303C @ =gUnknown_03004240 strh r7, [r0] ldr r1, _080E3040 @ =REG_WININ ldr r2, _080E3044 @ =0x00003f3f adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r3, _080E3048 @ =0x00003f3d adds r0, r3, 0 strh r0, [r1] movs r2, 0x80 lsls r2, 19 ldrh r0, [r2] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 orrs r0, r1 strh r0, [r2] ldr r1, _080E304C @ =REG_BLDCNT ldr r2, _080E3050 @ =0x00003f42 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r3, _080E3054 @ =0x00000c08 adds r0, r3, 0 strh r0, [r1] ldr r4, _080E3058 @ =REG_BG1CNT ldrb r1, [r4] movs r0, 0x4 negs r0, r0 mov r8, r0 ands r0, r1 strb r0, [r4] ldrb r1, [r4, 0x1] movs r0, 0x3F ands r0, r1 strb r0, [r4, 0x1] ldrb r0, [r4, 0x1] movs r1, 0x20 orrs r0, r1 strb r0, [r4, 0x1] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E2FAC ldrb r0, [r4] movs r1, 0xD negs r1, r1 ands r1, r0 movs r0, 0x4 orrs r1, r0 strb r1, [r4] _080E2FAC: bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _080E3028 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E3028 ldr r5, _080E305C @ =gUnknown_0202F7C8 ldrb r0, [r5] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _080E2FDC ldrb r0, [r5] bl battle_get_per_side_status lsls r0, 24 cmp r0, 0 bne _080E3028 _080E2FDC: ldrb r0, [r5] movs r6, 0x2 eors r0, r6 bl b_side_obj__get_some_boolean lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080E3028 ldr r3, _080E3060 @ =gSprites ldr r1, _080E3064 @ =gUnknown_02024BE0 ldrb r0, [r5] eors r0, r6 adds r0, r1 ldrb r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r3 ldrb r3, [r2, 0x5] lsls r1, r3, 28 lsrs r1, 30 subs r1, 0x1 movs r0, 0x3 ands r1, r0 lsls r1, 2 movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] ldrb r1, [r4] mov r0, r8 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4] movs r7, 0x1 _080E3028: bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080E306C ldr r0, _080E3068 @ =0x02019348 ldrh r4, [r0] b _080E30B4 .align 2, 0 _080E3038: .4byte gUnknown_030042C4 _080E303C: .4byte gUnknown_03004240 _080E3040: .4byte REG_WININ _080E3044: .4byte 0x00003f3f _080E3048: .4byte 0x00003f3d _080E304C: .4byte REG_BLDCNT _080E3050: .4byte 0x00003f42 _080E3054: .4byte 0x00000c08 _080E3058: .4byte REG_BG1CNT _080E305C: .4byte gUnknown_0202F7C8 _080E3060: .4byte gSprites _080E3064: .4byte gUnknown_02024BE0 _080E3068: .4byte 0x02019348 _080E306C: ldr r4, _080E308C @ =gUnknown_0202F7C8 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080E3098 ldr r1, _080E3090 @ =gUnknown_02024A6A ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080E3094 @ =gEnemyParty b _080E30A8 .align 2, 0 _080E308C: .4byte gUnknown_0202F7C8 _080E3090: .4byte gUnknown_02024A6A _080E3094: .4byte gEnemyParty _080E3098: ldr r1, _080E3160 @ =gUnknown_02024A6A ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080E3164 @ =gPlayerParty _080E30A8: adds r0, r1 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r4, r0, 16 _080E30B4: movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080E3168 @ =gUnknown_0202F7C8 ldrb r0, [r0] adds r1, r5, 0 adds r2, r4, 0 bl sub_807A4A0 lsls r0, 24 lsrs r4, r0, 24 mov r0, sp bl sub_8078914 ldr r1, [sp, 0x4] movs r0, 0 str r0, [sp, 0xC] ldr r2, _080E316C @ =0x040000d4 add r0, sp, 0xC str r0, [r2] str r1, [r2, 0x4] ldr r0, _080E3170 @ =0x85000400 str r0, [r2, 0x8] ldr r0, [r2, 0x8] ldr r0, _080E3174 @ =gUnknown_08D20A30 bl LZDecompressVram bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080E3106 mov r0, sp ldrb r0, [r0, 0x8] ldr r1, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_80763FC _080E3106: ldr r0, _080E3178 @ =gUnknown_08D20A14 ldr r1, [sp] bl LZDecompressVram ldr r0, _080E317C @ =gUnknown_083DB568 mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 adds r1, 0x1 movs r2, 0x2 bl LoadPalette ldr r2, _080E3180 @ =gUnknown_030042C0 ldr r0, _080E3184 @ =gSprites lsls r1, r5, 4 adds r1, r5 lsls r1, 2 adds r1, r0 ldrh r0, [r1, 0x20] negs r0, r0 adds r0, 0x20 strh r0, [r2] ldr r2, _080E3188 @ =gUnknown_030041B4 ldrh r0, [r1, 0x22] negs r0, r0 adds r0, 0x20 strh r0, [r2] ldr r1, _080E318C @ =gTasks mov r2, r9 lsls r0, r2, 2 add r0, r9 lsls r0, 3 adds r0, r1 strh r4, [r0, 0x8] strh r7, [r0, 0x14] ldr r1, _080E3190 @ =sub_80E3194 str r1, [r0] add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E3160: .4byte gUnknown_02024A6A _080E3164: .4byte gPlayerParty _080E3168: .4byte gUnknown_0202F7C8 _080E316C: .4byte 0x040000d4 _080E3170: .4byte 0x85000400 _080E3174: .4byte gUnknown_08D20A30 _080E3178: .4byte gUnknown_08D20A14 _080E317C: .4byte gUnknown_083DB568 _080E3180: .4byte gUnknown_030042C0 _080E3184: .4byte gSprites _080E3188: .4byte gUnknown_030041B4 _080E318C: .4byte gTasks _080E3190: .4byte sub_80E3194 thumb_func_end sub_80E2F2C thumb_func_start sub_80E3194 sub_80E3194: @ 80E3194 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 lsls r0, 24 lsrs r6, r0, 24 ldr r1, _080E32AC @ =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x1C] adds r0, 0x4 movs r5, 0 strh r0, [r4, 0x1C] ldr r7, _080E32B0 @ =gUnknown_030041B4 ldrh r2, [r7] subs r1, r2, 0x4 strh r1, [r7] lsls r0, 16 asrs r0, 16 cmp r0, 0x40 bne _080E329E strh r5, [r4, 0x1C] adds r0, r2, 0 adds r0, 0x3C strh r0, [r7] ldrh r0, [r4, 0x1E] adds r0, 0x1 strh r0, [r4, 0x1E] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _080E329E movs r0, 0 bl sub_8076464 ldr r0, _080E32B4 @ =gUnknown_030042C4 strh r5, [r0] ldr r0, _080E32B8 @ =gUnknown_03004240 strh r5, [r0] ldr r0, _080E32BC @ =REG_WININ ldr r2, _080E32C0 @ =0x00003f3f adds r1, r2, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E3208 ldr r2, _080E32C4 @ =REG_BG1CNT ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _080E3208: movs r2, 0x80 lsls r2, 19 ldrh r0, [r2] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 eors r0, r1 strh r0, [r2] ldr r0, _080E32C8 @ =REG_BLDCNT strh r5, [r0] adds r0, 0x2 strh r5, [r0] movs r0, 0 bl obj_id_for_side_relative_to_move ldr r0, _080E32CC @ =gSprites mov r8, r0 movs r2, 0x8 ldrsh r1, [r4, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 bl DestroySprite mov r0, sp bl sub_8078914 ldr r2, [sp, 0x4] str r5, [sp, 0xC] ldr r1, _080E32D0 @ =0x040000d4 add r0, sp, 0xC str r0, [r1] str r2, [r1, 0x4] ldr r0, _080E32D4 @ =0x85000200 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r3, 0x14 ldrsh r0, [r4, r3] cmp r0, 0x1 bne _080E3288 ldr r2, _080E32D8 @ =gUnknown_02024BE0 ldr r0, _080E32DC @ =gUnknown_0202F7C8 ldrb r1, [r0] movs r0, 0x2 eors r0, r1 adds r0, r2 ldrb r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 add r2, r8 ldrb r3, [r2, 0x5] lsls r1, r3, 28 lsrs r1, 30 adds r1, 0x1 movs r0, 0x3 ands r1, r0 lsls r1, 2 movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] _080E3288: ldr r2, _080E32C4 @ =REG_BG1CNT ldrb r1, [r2, 0x1] movs r0, 0x21 negs r0, r0 ands r0, r1 strb r0, [r2, 0x1] movs r0, 0 strh r0, [r7] adds r0, r6, 0 bl move_anim_task_del _080E329E: add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E32AC: .4byte gTasks _080E32B0: .4byte gUnknown_030041B4 _080E32B4: .4byte gUnknown_030042C4 _080E32B8: .4byte gUnknown_03004240 _080E32BC: .4byte REG_WININ _080E32C0: .4byte 0x00003f3f _080E32C4: .4byte REG_BG1CNT _080E32C8: .4byte REG_BLDCNT _080E32CC: .4byte gSprites _080E32D0: .4byte 0x040000d4 _080E32D4: .4byte 0x85000200 _080E32D8: .4byte gUnknown_02024BE0 _080E32DC: .4byte gUnknown_0202F7C8 thumb_func_end sub_80E3194 thumb_func_start sub_80E32E0 sub_80E32E0: @ 80E32E0 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r3, r0, 24 movs r2, 0 ldr r0, _080E332C @ =gTasks mov r12, r0 ldr r1, _080E3330 @ =sub_80E3338 mov r8, r1 lsls r1, r3, 2 adds r0, r1, r3 lsls r4, r0, 3 mov r7, r12 adds r7, 0x8 adds r5, r1, 0 ldr r6, _080E3334 @ =gUnknown_03004B00 _080E3302: lsls r0, r2, 1 adds r1, r0, r4 adds r1, r7 adds r0, r6 ldrh r0, [r0] strh r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x7 bls _080E3302 adds r0, r5, r3 lsls r0, 3 add r0, r12 mov r1, r8 str r1, [r0] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E332C: .4byte gTasks _080E3330: .4byte sub_80E3338 _080E3334: .4byte gUnknown_03004B00 thumb_func_end sub_80E32E0 thumb_func_start sub_80E3338 sub_80E3338: @ 80E3338 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r0, 0 str r0, [sp, 0x1C] movs r1, 0 str r1, [sp, 0x20] add r7, sp, 0xC ldr r2, _080E3388 @ =gTasks mov r3, r9 lsls r1, r3, 2 adds r0, r1, r3 lsls r0, 3 mov r10, r1 adds r1, r2, 0 adds r1, 0x8 adds r1, r0, r1 adds r3, r7, 0 movs r4, 0 movs r2, 0x7 _080E336C: ldrh r0, [r1] strh r0, [r3] strh r4, [r1] adds r1, 0x2 adds r3, 0x2 subs r2, 0x1 cmp r2, 0 bge _080E336C movs r1, 0x4 ldrsh r0, [r7, r1] cmp r0, 0 bne _080E3390 ldr r0, _080E338C @ =gUnknown_0202F7C8 b _080E3392 .align 2, 0 _080E3388: .4byte gTasks _080E338C: .4byte gUnknown_0202F7C8 _080E3390: ldr r0, _080E34B4 @ =gUnknown_0202F7C9 _080E3392: ldrb r5, [r0] movs r0, 0x2 mov r8, r5 mov r2, r8 eors r2, r0 mov r8, r2 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E33BC movs r3, 0x6 ldrsh r0, [r7, r3] cmp r0, 0 beq _080E33C0 mov r0, r8 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 bne _080E33C0 _080E33BC: movs r0, 0 strh r0, [r7, 0x6] _080E33C0: ldr r0, _080E34B8 @ =gUnknown_030042C4 movs r1, 0 strh r1, [r0] ldr r0, _080E34BC @ =gUnknown_03004240 strh r1, [r0] ldr r1, _080E34C0 @ =REG_WININ ldr r2, _080E34C4 @ =0x00003f3f adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r3, _080E34C8 @ =0x00003f3d adds r0, r3, 0 strh r0, [r1] movs r2, 0x80 lsls r2, 19 ldrh r0, [r2] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 orrs r0, r1 strh r0, [r2] ldr r1, _080E34CC @ =REG_BLDCNT ldr r2, _080E34D0 @ =0x00003f42 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r3, 0x80 lsls r3, 5 adds r0, r3, 0 strh r0, [r1] ldr r4, _080E34D4 @ =REG_BG1CNT ldrb r1, [r4] movs r6, 0x4 negs r6, r6 adds r0, r6, 0 ands r0, r1 strb r0, [r4] ldrb r1, [r4, 0x1] movs r0, 0x3F ands r0, r1 strb r0, [r4, 0x1] ldrb r0, [r4, 0x1] movs r1, 0x20 orrs r0, r1 strb r0, [r4, 0x1] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E3432 ldrb r0, [r4] movs r1, 0xD negs r1, r1 ands r1, r0 movs r0, 0x4 orrs r1, r0 strb r1, [r4] _080E3432: bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _080E34A4 movs r1, 0x6 ldrsh r0, [r7, r1] cmp r0, 0 bne _080E34A4 adds r0, r5, 0 bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _080E345E adds r0, r5, 0 bl battle_get_per_side_status lsls r0, 24 cmp r0, 0 bne _080E34A4 _080E345E: mov r0, r8 bl b_side_obj__get_some_boolean lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080E34A4 ldr r1, _080E34D8 @ =gSprites ldr r0, _080E34DC @ =gUnknown_02024BE0 add r0, r8 ldrb r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r1 ldrb r3, [r2, 0x5] lsls r1, r3, 28 lsrs r1, 30 subs r1, 0x1 movs r0, 0x3 ands r1, r0 lsls r1, 2 movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] ldrb r1, [r4] adds r0, r6, 0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4] movs r2, 0x1 str r2, [sp, 0x20] _080E34A4: bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080E34E4 ldr r0, _080E34E0 @ =0x02019348 ldrh r4, [r0] b _080E3522 .align 2, 0 _080E34B4: .4byte gUnknown_0202F7C9 _080E34B8: .4byte gUnknown_030042C4 _080E34BC: .4byte gUnknown_03004240 _080E34C0: .4byte REG_WININ _080E34C4: .4byte 0x00003f3f _080E34C8: .4byte 0x00003f3d _080E34CC: .4byte REG_BLDCNT _080E34D0: .4byte 0x00003f42 _080E34D4: .4byte REG_BG1CNT _080E34D8: .4byte gSprites _080E34DC: .4byte gUnknown_02024BE0 _080E34E0: .4byte 0x02019348 _080E34E4: adds r0, r5, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080E3508 ldr r1, _080E3500 @ =gUnknown_02024A6A lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080E3504 @ =gEnemyParty b _080E3516 .align 2, 0 _080E3500: .4byte gUnknown_02024A6A _080E3504: .4byte gEnemyParty _080E3508: ldr r1, _080E3568 @ =gUnknown_02024A6A lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080E356C @ =gPlayerParty _080E3516: adds r0, r1 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r4, r0, 16 _080E3522: ldr r6, _080E3570 @ =gUnknown_02024BE0 adds r0, r5, r6 ldrb r1, [r0] adds r0, r5, 0 adds r2, r4, 0 bl sub_807A4A0 lsls r0, 24 lsrs r5, r0, 24 movs r3, 0x6 ldrsh r0, [r7, r3] cmp r0, 0 beq _080E3550 mov r1, r8 adds r0, r1, r6 ldrb r1, [r0] mov r0, r8 adds r2, r4, 0 bl sub_807A4A0 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x1C] _080E3550: mov r0, sp bl sub_8078914 movs r2, 0 ldrsh r0, [r7, r2] cmp r0, 0 bne _080E3578 ldr r0, _080E3574 @ =gBattleStatMask1_Tilemap ldr r1, [sp, 0x4] bl LZDecompressVram b _080E3580 .align 2, 0 _080E3568: .4byte gUnknown_02024A6A _080E356C: .4byte gPlayerParty _080E3570: .4byte gUnknown_02024BE0 _080E3574: .4byte gBattleStatMask1_Tilemap _080E3578: ldr r0, _080E35B0 @ =gBattleStatMask2_Tilemap ldr r1, [sp, 0x4] bl LZDecompressVram _080E3580: bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080E3598 mov r0, sp ldrb r0, [r0, 0x8] ldr r1, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_80763FC _080E3598: ldr r0, _080E35B4 @ =gBattleStatMask_Gfx ldr r1, [sp] bl LZDecompressVram ldrh r0, [r7, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0 bne _080E35BC ldr r0, _080E35B8 @ =gBattleStatMask2_Pal b _080E35FE .align 2, 0 _080E35B0: .4byte gBattleStatMask2_Tilemap _080E35B4: .4byte gBattleStatMask_Gfx _080E35B8: .4byte gBattleStatMask2_Pal _080E35BC: cmp r0, 0x1 bne _080E35C8 ldr r0, _080E35C4 @ =gBattleStatMask1_Pal b _080E35FE .align 2, 0 _080E35C4: .4byte gBattleStatMask1_Pal _080E35C8: cmp r0, 0x2 bne _080E35D4 ldr r0, _080E35D0 @ =gBattleStatMask3_Pal b _080E35FE .align 2, 0 _080E35D0: .4byte gBattleStatMask3_Pal _080E35D4: cmp r0, 0x3 bne _080E35E0 ldr r0, _080E35DC @ =gBattleStatMask4_Pal b _080E35FE .align 2, 0 _080E35DC: .4byte gBattleStatMask4_Pal _080E35E0: cmp r0, 0x4 bne _080E35EC ldr r0, _080E35E8 @ =gBattleStatMask6_Pal b _080E35FE .align 2, 0 _080E35E8: .4byte gBattleStatMask6_Pal _080E35EC: cmp r0, 0x5 bne _080E35F8 ldr r0, _080E35F4 @ =gBattleStatMask7_Pal b _080E35FE .align 2, 0 _080E35F4: .4byte gBattleStatMask7_Pal _080E35F8: cmp r0, 0x6 bne _080E3610 ldr r0, _080E360C @ =gBattleStatMask8_Pal _080E35FE: mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 movs r2, 0x20 bl LoadCompressedPalette b _080E361E .align 2, 0 _080E360C: .4byte gBattleStatMask8_Pal _080E3610: ldr r0, _080E3644 @ =gBattleStatMask5_Pal mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 movs r2, 0x20 bl LoadCompressedPalette _080E361E: ldr r2, _080E3648 @ =gUnknown_030042C0 movs r1, 0 strh r1, [r2] ldr r0, _080E364C @ =gUnknown_030041B4 strh r1, [r0] movs r3, 0 ldrsh r0, [r7, r3] cmp r0, 0x1 bne _080E3658 movs r0, 0x40 strh r0, [r2] ldr r2, _080E3650 @ =gTasks mov r0, r10 add r0, r9 lsls r0, 3 adds r0, r2 ldr r1, _080E3654 @ =0x0000fffd strh r1, [r0, 0xA] b _080E3668 .align 2, 0 _080E3644: .4byte gBattleStatMask5_Pal _080E3648: .4byte gUnknown_030042C0 _080E364C: .4byte gUnknown_030041B4 _080E3650: .4byte gTasks _080E3654: .4byte 0x0000fffd _080E3658: ldr r0, _080E3680 @ =gTasks mov r1, r10 add r1, r9 lsls r1, 3 adds r1, r0 movs r2, 0x3 strh r2, [r1, 0xA] adds r2, r0, 0 _080E3668: movs r1, 0x8 ldrsh r0, [r7, r1] cmp r0, 0 bne _080E3684 mov r0, r10 add r0, r9 lsls r0, 3 adds r0, r2 movs r1, 0xA strh r1, [r0, 0x10] movs r1, 0x14 b _080E3692 .align 2, 0 _080E3680: .4byte gTasks _080E3684: mov r0, r10 add r0, r9 lsls r0, 3 adds r0, r2 movs r1, 0xD strh r1, [r0, 0x10] movs r1, 0x1E _080E3692: strh r1, [r0, 0x12] mov r1, r10 add r1, r9 lsls r1, 3 adds r1, r2 strh r5, [r1, 0x8] ldrh r0, [r7, 0x6] strh r0, [r1, 0xC] mov r2, sp ldrh r2, [r2, 0x1C] strh r2, [r1, 0xE] mov r3, sp ldrh r3, [r3, 0x20] strh r3, [r1, 0x14] ldr r0, _080E36D8 @ =gUnknown_02024BE0 add r0, r8 ldrb r0, [r0] strh r0, [r1, 0x16] ldr r0, _080E36DC @ =sub_80E3704 str r0, [r1] movs r1, 0 ldrsh r0, [r7, r1] cmp r0, 0 bne _080E36E0 movs r0, 0x40 negs r0, r0 bl sub_8077094 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0xEF bl PlaySE12WithPanning b _080E36F4 .align 2, 0 _080E36D8: .4byte gUnknown_02024BE0 _080E36DC: .4byte sub_80E3704 _080E36E0: movs r0, 0x40 negs r0, r0 bl sub_8077094 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0xF5 bl PlaySE12WithPanning _080E36F4: add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80E3338 thumb_func_start sub_80E3704 sub_80E3704: @ 80E3704 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r2, _080E3730 @ =gUnknown_030041B4 ldr r1, _080E3734 @ =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0xA] ldrh r1, [r2] adds r0, r1 strh r0, [r2] movs r3, 0x26 ldrsh r2, [r4, r3] cmp r2, 0x1 beq _080E3774 cmp r2, 0x1 bgt _080E3738 cmp r2, 0 beq _080E373E b _080E3866 .align 2, 0 _080E3730: .4byte gUnknown_030041B4 _080E3734: .4byte gTasks _080E3738: cmp r2, 0x2 beq _080E378E b _080E3866 _080E373E: ldrh r0, [r4, 0x1E] adds r1, r0, 0x1 strh r1, [r4, 0x1E] lsls r0, 16 cmp r0, 0 bgt _080E374C b _080E3866 _080E374C: strh r2, [r4, 0x1E] ldrh r1, [r4, 0x20] adds r1, 0x1 strh r1, [r4, 0x20] ldr r2, _080E3770 @ =REG_BLDALPHA movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r0, 0x20 ldrsh r1, [r4, r0] movs r2, 0x10 ldrsh r0, [r4, r2] cmp r1, r0 bne _080E3866 b _080E3786 .align 2, 0 _080E3770: .4byte REG_BLDALPHA _080E3774: ldrh r0, [r4, 0x1C] adds r0, 0x1 strh r0, [r4, 0x1C] lsls r0, 16 asrs r0, 16 movs r3, 0x12 ldrsh r1, [r4, r3] cmp r0, r1 bne _080E3866 _080E3786: ldrh r0, [r4, 0x26] adds r0, 0x1 strh r0, [r4, 0x26] b _080E3866 _080E378E: ldrh r0, [r4, 0x1E] adds r1, r0, 0x1 strh r1, [r4, 0x1E] lsls r0, 16 cmp r0, 0 ble _080E3866 movs r0, 0 strh r0, [r4, 0x1E] ldrh r1, [r4, 0x20] subs r1, 0x1 strh r1, [r4, 0x20] ldr r7, _080E386C @ =REG_BLDALPHA movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r7] movs r0, 0x20 ldrsh r5, [r4, r0] cmp r5, 0 bne _080E3866 movs r0, 0 bl sub_8076464 ldr r0, _080E3870 @ =gUnknown_030042C4 strh r5, [r0] ldr r0, _080E3874 @ =gUnknown_03004240 strh r5, [r0] ldr r0, _080E3878 @ =REG_WININ ldr r2, _080E387C @ =0x00003f3f adds r1, r2, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E37E8 ldr r2, _080E3880 @ =REG_BG1CNT ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _080E37E8: movs r2, 0x80 lsls r2, 19 ldrh r0, [r2] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 eors r0, r1 strh r0, [r2] ldr r0, _080E3884 @ =REG_BLDCNT strh r5, [r0] strh r5, [r7] movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, _080E3888 @ =gSprites adds r0, r5 bl DestroySprite movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0 beq _080E3828 movs r2, 0xE ldrsh r1, [r4, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 bl DestroySprite _080E3828: movs r3, 0x14 ldrsh r0, [r4, r3] cmp r0, 0x1 bne _080E3854 movs r1, 0x16 ldrsh r0, [r4, r1] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r5 ldrb r3, [r2, 0x5] lsls r1, r3, 28 lsrs r1, 30 adds r1, 0x1 movs r0, 0x3 ands r1, r0 lsls r1, 2 movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] _080E3854: ldr r2, _080E3880 @ =REG_BG1CNT ldrb r1, [r2, 0x1] movs r0, 0x21 negs r0, r0 ands r0, r1 strb r0, [r2, 0x1] adds r0, r6, 0 bl move_anim_task_del _080E3866: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E386C: .4byte REG_BLDALPHA _080E3870: .4byte gUnknown_030042C4 _080E3874: .4byte gUnknown_03004240 _080E3878: .4byte REG_WININ _080E387C: .4byte 0x00003f3f _080E3880: .4byte REG_BG1CNT _080E3884: .4byte REG_BLDCNT _080E3888: .4byte gSprites thumb_func_end sub_80E3704 thumb_func_start sub_80E388C sub_80E388C: @ 80E388C push {r4-r6,lr} sub sp, 0xC adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 movs r0, 0x1 movs r1, 0x1 movs r2, 0x1 movs r3, 0x1 bl sub_80792C0 adds r6, r0, 0 movs r1, 0 bl sub_80E39BC ldr r0, _080E38EC @ =gTasks lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r0 lsrs r0, r6, 16 movs r5, 0 strh r0, [r4, 0x24] str r5, [sp] str r5, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80791A8 adds r6, r0, 0 ldr r1, _080E38F0 @ =0x0000ffff ands r6, r1 adds r0, r6, 0 bl sub_80E39BC strh r6, [r4, 0x26] strh r5, [r4, 0x8] strh r5, [r4, 0xA] ldr r0, _080E38F4 @ =sub_80E38F8 str r0, [r4] add sp, 0xC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E38EC: .4byte gTasks _080E38F0: .4byte 0x0000ffff _080E38F4: .4byte sub_80E38F8 thumb_func_end sub_80E388C thumb_func_start sub_80E38F8 sub_80E38F8: @ 80E38F8 push {r4-r6,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080E391C @ =gTasks adds r4, r0, r1 movs r0, 0x8 ldrsh r1, [r4, r0] cmp r1, 0x1 beq _080E393C cmp r1, 0x1 bgt _080E3920 cmp r1, 0 beq _080E3926 b _080E39B6 .align 2, 0 _080E391C: .4byte gTasks _080E3920: cmp r1, 0x2 beq _080E39B0 b _080E39B6 _080E3926: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 ble _080E39B6 strh r1, [r4, 0xA] movs r0, 0x10 strh r0, [r4, 0xC] b _080E39A4 _080E393C: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080E39B6 movs r0, 0 strh r0, [r4, 0xA] ldrh r0, [r4, 0xC] subs r0, 0x1 strh r0, [r4, 0xC] movs r5, 0 movs r6, 0x1 _080E3958: movs r1, 0x26 ldrsh r0, [r4, r1] asrs r0, r5 ands r0, r6 cmp r0, 0 beq _080E3972 lsls r0, r5, 20 lsrs r0, 16 ldrb r2, [r4, 0xC] movs r1, 0x10 ldr r3, _080E39AC @ =0x0000ffff bl BlendPalette _080E3972: movs r1, 0x24 ldrsh r0, [r4, r1] asrs r0, r5 ands r0, r6 cmp r0, 0 beq _080E3992 lsls r0, r5, 20 movs r1, 0x80 lsls r1, 17 adds r0, r1 lsrs r0, 16 ldrb r2, [r4, 0xC] movs r1, 0x10 movs r3, 0 bl BlendPalette _080E3992: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0xF bls _080E3958 movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0 bne _080E39B6 _080E39A4: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080E39B6 .align 2, 0 _080E39AC: .4byte 0x0000ffff _080E39B0: adds r0, r2, 0 bl move_anim_task_del _080E39B6: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80E38F8 thumb_func_start sub_80E39BC sub_80E39BC: @ 80E39BC push {r4-r6,lr} adds r3, r0, 0 lsls r1, 16 lsrs r6, r1, 16 movs r2, 0 _080E39C6: movs r0, 0x1 ands r0, r3 lsrs r4, r3, 1 adds r5, r2, 0x1 cmp r0, 0 beq _080E39F2 lsls r0, r2, 20 lsrs r2, r0, 16 adds r0, r2, 0 adds r0, 0x10 cmp r2, r0 bge _080E39F2 ldr r1, _080E3A04 @ =gPlttBufferFaded adds r3, r0, 0 _080E39E2: lsls r0, r2, 1 adds r0, r1 strh r6, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, r3 blt _080E39E2 _080E39F2: adds r3, r4, 0 lsls r0, r5, 16 lsrs r2, r0, 16 cmp r2, 0x1F bls _080E39C6 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E3A04: .4byte gPlttBufferFaded thumb_func_end sub_80E39BC thumb_func_start sub_80E3A08 sub_80E3A08: @ 80E3A08 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r4, 0 movs r2, 0 ldr r0, _080E3A50 @ =gUnknown_0202F7C8 ldrb r3, [r0] movs r5, 0x1 _080E3A18: cmp r3, r2 beq _080E3A26 adds r1, r2, 0 adds r1, 0x10 adds r0, r5, 0 lsls r0, r1 orrs r4, r0 _080E3A26: adds r2, 0x1 cmp r2, 0x3 bls _080E3A18 movs r2, 0x5 ldr r0, _080E3A54 @ =gUnknown_03004B00 adds r1, r0, 0 adds r1, 0x8 _080E3A34: ldrh r0, [r1] strh r0, [r1, 0x2] subs r1, 0x2 subs r2, 0x1 cmp r2, 0 bne _080E3A34 adds r0, r6, 0 adds r1, r4, 0 bl sub_80E2C8C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E3A50: .4byte gUnknown_0202F7C8 _080E3A54: .4byte gUnknown_03004B00 thumb_func_end sub_80E3A08 thumb_func_start sub_80E3A58 sub_80E3A58: @ 80E3A58 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r0, 0 bl sub_80789D4 ldr r0, _080E3AC0 @ =sub_80E3AD0 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r5, r0, 24 ldr r4, _080E3AC4 @ =gUnknown_03004B00 movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0 beq _080E3A94 ldr r0, _080E3AC8 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080E3A94 ldrh r0, [r4] negs r0, r0 strh r0, [r4] ldrh r0, [r4, 0x2] negs r0, r0 strh r0, [r4, 0x2] _080E3A94: ldr r0, _080E3ACC @ =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r2, _080E3AC4 @ =gUnknown_03004B00 ldrh r0, [r2] strh r0, [r1, 0xA] ldrh r0, [r2, 0x2] strh r0, [r1, 0xC] ldrh r0, [r2, 0x6] strh r0, [r1, 0xE] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] adds r0, r6, 0 bl move_anim_task_del pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E3AC0: .4byte sub_80E3AD0 _080E3AC4: .4byte gUnknown_03004B00 _080E3AC8: .4byte gUnknown_0202F7C8 _080E3ACC: .4byte gTasks thumb_func_end sub_80E3A58 thumb_func_start sub_80E3AD0 sub_80E3AD0: @ 80E3AD0 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080E3B3C @ =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldrh r3, [r1, 0xA] ldrh r0, [r1, 0x1C] adds r3, r0 movs r4, 0 mov r12, r4 strh r3, [r1, 0x1C] ldrh r2, [r1, 0xC] ldrh r7, [r1, 0x1E] adds r2, r7 strh r2, [r1, 0x1E] ldr r6, _080E3B40 @ =gUnknown_030041B0 lsls r0, r3, 16 asrs r0, 24 ldrh r4, [r6] adds r0, r4 strh r0, [r6] ldr r4, _080E3B44 @ =gUnknown_030041B8 lsls r0, r2, 16 asrs r0, 24 ldrh r7, [r4] adds r0, r7 strh r0, [r4] movs r0, 0xFF ands r3, r0 strh r3, [r1, 0x1C] ands r2, r0 strh r2, [r1, 0x1E] ldr r0, _080E3B48 @ =gUnknown_03004B00 movs r3, 0xE ldrsh r2, [r0, r3] movs r7, 0xE ldrsh r0, [r1, r7] cmp r2, r0 bne _080E3B36 mov r0, r12 strh r0, [r6] strh r0, [r4] movs r0, 0x1 bl sub_80789D4 adds r0, r5, 0 bl DestroyTask _080E3B36: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E3B3C: .4byte gTasks _080E3B40: .4byte gUnknown_030041B0 _080E3B44: .4byte gUnknown_030041B8 _080E3B48: .4byte gUnknown_03004B00 thumb_func_end sub_80E3AD0 thumb_func_start sub_80E3B4C sub_80E3B4C: @ 80E3B4C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080E3B70 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner ldr r1, _080E3B74 @ =gUnknown_03004B00 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0xE] adds r0, r4, 0 bl move_anim_task_del pop {r4} pop {r0} bx r0 .align 2, 0 _080E3B70: .4byte gUnknown_0202F7C8 _080E3B74: .4byte gUnknown_03004B00 thumb_func_end sub_80E3B4C thumb_func_start sub_80E3B78 sub_80E3B78: @ 80E3B78 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080E3B9C @ =gUnknown_0202F7C9 ldrb r0, [r0] bl battle_side_get_owner ldr r1, _080E3BA0 @ =gUnknown_03004B00 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0xE] adds r0, r4, 0 bl move_anim_task_del pop {r4} pop {r0} bx r0 .align 2, 0 _080E3B9C: .4byte gUnknown_0202F7C9 _080E3BA0: .4byte gUnknown_03004B00 thumb_func_end sub_80E3B78 thumb_func_start sub_80E3BA4 sub_80E3BA4: @ 80E3BA4 push {r4,r5,lr} lsls r0, 24 lsrs r3, r0, 24 ldr r5, _080E3BD0 @ =gUnknown_03004B00 movs r4, 0 ldr r0, _080E3BD4 @ =gUnknown_0202F7C8 ldrb r2, [r0] movs r0, 0x2 ldr r1, _080E3BD8 @ =gUnknown_0202F7C9 eors r0, r2 ldrb r1, [r1] cmp r0, r1 bne _080E3BC0 movs r4, 0x1 _080E3BC0: strh r4, [r5, 0xE] adds r0, r3, 0 bl move_anim_task_del pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E3BD0: .4byte gUnknown_03004B00 _080E3BD4: .4byte gUnknown_0202F7C8 _080E3BD8: .4byte gUnknown_0202F7C9 thumb_func_end sub_80E3BA4 thumb_func_start sub_80E3BDC sub_80E3BDC: @ 80E3BDC push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r6, _080E3C3C @ =gSprites _080E3BE6: ldr r0, _080E3C40 @ =gUnknown_0202F7C8 ldrb r0, [r0] cmp r4, r0 beq _080E3C24 lsls r0, r4, 24 lsrs r0, 24 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080E3C24 ldr r0, _080E3C44 @ =gUnknown_02024BE0 adds r0, r4, r0 ldrb r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r6 ldr r1, _080E3C48 @ =gUnknown_03004B00 adds r2, 0x3E movs r0, 0x1 ldrb r3, [r1] ands r3, r0 lsls r3, 2 ldrb r0, [r2] movs r7, 0x5 negs r7, r7 adds r1, r7, 0 ands r0, r1 orrs r0, r3 strb r0, [r2] _080E3C24: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x3 bls _080E3BE6 adds r0, r5, 0 bl move_anim_task_del pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E3C3C: .4byte gSprites _080E3C40: .4byte gUnknown_0202F7C8 _080E3C44: .4byte gUnknown_02024BE0 _080E3C48: .4byte gUnknown_03004B00 thumb_func_end sub_80E3BDC thumb_func_start sub_80E3C4C sub_80E3C4C: @ 80E3C4C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C ldr r1, [sp, 0x3C] ldr r4, [sp, 0x40] ldr r5, [sp, 0x44] ldr r6, [sp, 0x48] lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r2, 16 lsrs r2, 16 str r2, [sp, 0xC] lsls r3, 24 lsrs r7, r3, 24 lsls r1, 24 lsrs r1, 24 mov r8, r1 lsls r4, 24 lsrs r4, 24 str r4, [sp, 0x10] lsls r5, 24 lsrs r5, 24 str r5, [sp, 0x14] lsls r6, 24 lsrs r6, 24 mov r10, r6 movs r0, 0 str r0, [sp, 0x18] movs r0, 0x2 adds r6, r7, 0 eors r6, r0 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E3CAE mov r1, r8 cmp r1, 0 beq _080E3CB2 adds r0, r6, 0 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 bne _080E3CB2 _080E3CAE: movs r2, 0 mov r8, r2 _080E3CB2: ldr r0, _080E3D34 @ =gUnknown_030042C4 movs r1, 0 strh r1, [r0] ldr r0, _080E3D38 @ =gUnknown_03004240 strh r1, [r0] ldr r1, _080E3D3C @ =REG_WININ ldr r3, _080E3D40 @ =0x00003f3f adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080E3D44 @ =0x00003f3d adds r0, r2, 0 strh r0, [r1] movs r2, 0x80 lsls r2, 19 ldrh r0, [r2] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 orrs r0, r1 strh r0, [r2] ldr r1, _080E3D48 @ =REG_BLDCNT ldr r2, _080E3D4C @ =0x00003f42 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r3, 0x80 lsls r3, 5 adds r0, r3, 0 strh r0, [r1] ldr r4, _080E3D50 @ =REG_BG1CNT ldrb r1, [r4] movs r0, 0x4 negs r0, r0 ands r0, r1 strb r0, [r4] ldrb r1, [r4, 0x1] movs r0, 0x3F ands r0, r1 strb r0, [r4, 0x1] ldrb r0, [r4, 0x1] movs r1, 0x20 orrs r0, r1 strb r0, [r4, 0x1] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E3D22 ldrb r0, [r4] movs r1, 0xD negs r1, r1 ands r1, r0 movs r0, 0x4 orrs r1, r0 strb r1, [r4] _080E3D22: bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080E3D58 ldr r0, _080E3D54 @ =0x02019348 ldrh r4, [r0] b _080E3D96 .align 2, 0 _080E3D34: .4byte gUnknown_030042C4 _080E3D38: .4byte gUnknown_03004240 _080E3D3C: .4byte REG_WININ _080E3D40: .4byte 0x00003f3f _080E3D44: .4byte 0x00003f3d _080E3D48: .4byte REG_BLDCNT _080E3D4C: .4byte 0x00003f42 _080E3D50: .4byte REG_BG1CNT _080E3D54: .4byte 0x02019348 _080E3D58: adds r0, r7, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080E3D7C ldr r1, _080E3D74 @ =gUnknown_02024A6A lsls r0, r7, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080E3D78 @ =gEnemyParty b _080E3D8A .align 2, 0 _080E3D74: .4byte gUnknown_02024A6A _080E3D78: .4byte gEnemyParty _080E3D7C: ldr r1, _080E3E48 @ =gUnknown_02024A6A lsls r0, r7, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080E3E4C @ =gPlayerParty _080E3D8A: adds r0, r1 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r4, r0, 16 _080E3D96: ldr r5, _080E3E50 @ =gUnknown_02024BE0 adds r0, r7, r5 ldrb r1, [r0] adds r0, r7, 0 adds r2, r4, 0 bl sub_807A4A0 lsls r0, 24 lsrs r7, r0, 24 mov r0, r8 cmp r0, 0 beq _080E3DC0 adds r0, r6, r5 ldrb r1, [r0] adds r0, r6, 0 adds r2, r4, 0 bl sub_807A4A0 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x18] _080E3DC0: mov r0, sp bl sub_8078914 ldr r1, [sp, 0x4] ldr r0, [sp, 0x50] bl LZDecompressVram bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080E3DE6 mov r0, sp ldrb r0, [r0, 0x8] ldr r1, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_80763FC _080E3DE6: ldr r1, [sp] ldr r0, [sp, 0x4C] bl LZDecompressVram mov r0, sp ldrb r1, [r0, 0x8] lsls r1, 4 ldr r0, [sp, 0x54] movs r2, 0x20 bl LoadCompressedPalette ldr r0, _080E3E54 @ =gUnknown_030042C0 movs r1, 0 strh r1, [r0] ldr r0, _080E3E58 @ =gUnknown_030041B4 strh r1, [r0] ldr r1, _080E3E5C @ =gTasks mov r2, r9 lsls r0, r2, 2 add r0, r9 lsls r0, 3 adds r0, r1 mov r3, sp ldrh r3, [r3, 0xC] strh r3, [r0, 0xA] mov r1, sp ldrh r1, [r1, 0x10] strh r1, [r0, 0x10] mov r2, r10 strh r2, [r0, 0x12] mov r3, sp ldrh r3, [r3, 0x14] strh r3, [r0, 0x14] strh r7, [r0, 0x8] mov r1, r8 strh r1, [r0, 0xC] mov r2, sp ldrh r2, [r2, 0x18] strh r2, [r0, 0xE] ldr r1, _080E3E60 @ =sub_80E3E64 str r1, [r0] add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E3E48: .4byte gUnknown_02024A6A _080E3E4C: .4byte gPlayerParty _080E3E50: .4byte gUnknown_02024BE0 _080E3E54: .4byte gUnknown_030042C0 _080E3E58: .4byte gUnknown_030041B4 _080E3E5C: .4byte gTasks _080E3E60: .4byte sub_80E3E64 thumb_func_end sub_80E3C4C thumb_func_start sub_80E3E64 sub_80E3E64: @ 80E3E64 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r1, _080E3E9C @ =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r3, r0, r1 movs r0, 0xA ldrsh r2, [r3, r0] adds r5, r1, 0 cmp r2, 0 bge _080E3E80 negs r2, r2 _080E3E80: ldrh r0, [r3, 0x22] adds r4, r0, r2 strh r4, [r3, 0x22] movs r1, 0xA ldrsh r0, [r3, r1] cmp r0, 0 bge _080E3EA4 ldr r2, _080E3EA0 @ =gUnknown_030041B4 lsls r1, r4, 16 asrs r1, 24 ldrh r0, [r2] subs r0, r1 strh r0, [r2] b _080E3EB0 .align 2, 0 _080E3E9C: .4byte gTasks _080E3EA0: .4byte gUnknown_030041B4 _080E3EA4: ldr r1, _080E3ED4 @ =gUnknown_030041B4 lsls r0, r4, 16 asrs r0, 24 ldrh r2, [r1] adds r0, r2 strh r0, [r1] _080E3EB0: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r5 ldrh r1, [r4, 0x22] movs r0, 0xFF ands r0, r1 movs r2, 0 strh r0, [r4, 0x22] movs r3, 0x26 ldrsh r0, [r4, r3] cmp r0, 0x1 beq _080E3F18 cmp r0, 0x1 bgt _080E3ED8 cmp r0, 0 beq _080E3EDE b _080E3FE2 .align 2, 0 _080E3ED4: .4byte gUnknown_030041B4 _080E3ED8: cmp r0, 0x2 beq _080E3F32 b _080E3FE2 _080E3EDE: ldrh r0, [r4, 0x1E] adds r1, r0, 0x1 strh r1, [r4, 0x1E] lsls r0, 16 asrs r0, 16 movs r3, 0x14 ldrsh r1, [r4, r3] cmp r0, r1 blt _080E3FE2 strh r2, [r4, 0x1E] ldrh r1, [r4, 0x20] adds r1, 0x1 strh r1, [r4, 0x20] ldr r2, _080E3F14 @ =REG_BLDALPHA movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r0, 0x20 ldrsh r1, [r4, r0] movs r2, 0x10 ldrsh r0, [r4, r2] cmp r1, r0 bne _080E3FE2 b _080E3F2A .align 2, 0 _080E3F14: .4byte REG_BLDALPHA _080E3F18: ldrh r0, [r4, 0x1C] adds r0, 0x1 strh r0, [r4, 0x1C] lsls r0, 16 asrs r0, 16 movs r3, 0x12 ldrsh r1, [r4, r3] cmp r0, r1 bne _080E3FE2 _080E3F2A: ldrh r0, [r4, 0x26] adds r0, 0x1 strh r0, [r4, 0x26] b _080E3FE2 _080E3F32: ldrh r0, [r4, 0x1E] adds r1, r0, 0x1 strh r1, [r4, 0x1E] lsls r0, 16 asrs r0, 16 movs r3, 0x14 ldrsh r1, [r4, r3] cmp r0, r1 blt _080E3FE2 strh r2, [r4, 0x1E] ldrh r1, [r4, 0x20] subs r1, 0x1 strh r1, [r4, 0x20] ldr r7, _080E3FE8 @ =REG_BLDALPHA movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r7] movs r0, 0x20 ldrsh r5, [r4, r0] cmp r5, 0 bne _080E3FE2 movs r0, 0 bl sub_8076464 ldr r0, _080E3FEC @ =gUnknown_030042C4 strh r5, [r0] ldr r0, _080E3FF0 @ =gUnknown_03004240 strh r5, [r0] ldr r0, _080E3FF4 @ =REG_WININ ldr r2, _080E3FF8 @ =0x00003f3f adds r1, r2, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E3F90 ldr r2, _080E3FFC @ =REG_BG1CNT ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _080E3F90: movs r2, 0x80 lsls r2, 19 ldrh r0, [r2] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 eors r0, r1 strh r0, [r2] ldr r0, _080E4000 @ =REG_BLDCNT strh r5, [r0] strh r5, [r7] movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, _080E4004 @ =gSprites adds r0, r5 bl DestroySprite movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0 beq _080E3FD0 movs r2, 0xE ldrsh r1, [r4, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 bl DestroySprite _080E3FD0: ldr r2, _080E3FFC @ =REG_BG1CNT ldrb r1, [r2, 0x1] movs r0, 0x21 negs r0, r0 ands r0, r1 strb r0, [r2, 0x1] adds r0, r6, 0 bl move_anim_task_del _080E3FE2: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E3FE8: .4byte REG_BLDALPHA _080E3FEC: .4byte gUnknown_030042C4 _080E3FF0: .4byte gUnknown_03004240 _080E3FF4: .4byte REG_WININ _080E3FF8: .4byte 0x00003f3f _080E3FFC: .4byte REG_BG1CNT _080E4000: .4byte REG_BLDCNT _080E4004: .4byte gSprites thumb_func_end sub_80E3E64 thumb_func_start sub_80E4008 sub_80E4008: @ 80E4008 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080E4020 @ =gUnknown_03004B00 ldr r1, _080E4024 @ =gUnknown_0300428C ldrb r1, [r1] strh r1, [r2] bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _080E4020: .4byte gUnknown_03004B00 _080E4024: .4byte gUnknown_0300428C thumb_func_end sub_80E4008 thumb_func_start sub_80E4028 sub_80E4028: @ 80E4028 push {r4-r6,lr} sub sp, 0xC lsls r0, 24 lsrs r6, r0, 24 movs r4, 0 ldr r0, _080E4068 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080E406C str r4, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80791A8 adds r1, r0, 0 movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080E4084 movs r2, 0x1 _080E405A: lsrs r1, 1 adds r4, 0x1 adds r0, r1, 0 ands r0, r2 cmp r0, 0 beq _080E405A b _080E4084 .align 2, 0 _080E4068: .4byte gUnknown_03004B00 _080E406C: cmp r0, 0x1 bne _080E4078 ldr r0, _080E4074 @ =gUnknown_0202F7C8 b _080E407E .align 2, 0 _080E4074: .4byte gUnknown_0202F7C8 _080E4078: cmp r0, 0x2 bne _080E4084 ldr r0, _080E409C @ =gUnknown_0202F7C9 _080E407E: ldrb r0, [r0] adds r4, r0, 0 adds r4, 0x10 _080E4084: ldr r0, _080E40A0 @ =gUnknown_03004B00 movs r1, 0x2 ldrsh r0, [r0, r1] lsls r5, r0, 5 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080E40A8 ldr r0, _080E40A4 @ =0x02014800 b _080E40AA .align 2, 0 _080E409C: .4byte gUnknown_0202F7C9 _080E40A0: .4byte gUnknown_03004B00 _080E40A4: .4byte 0x02014800 _080E40A8: ldr r0, _080E40C8 @ =0x02018000 _080E40AA: adds r2, r5, r0 lsls r1, r4, 5 ldr r0, _080E40CC @ =gPlttBufferUnfaded adds r1, r0 adds r0, r2, 0 movs r2, 0x20 bl memcpy adds r0, r6, 0 bl move_anim_task_del add sp, 0xC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E40C8: .4byte 0x02018000 _080E40CC: .4byte gPlttBufferUnfaded thumb_func_end sub_80E4028 thumb_func_start sub_80E40D0 sub_80E40D0: @ 80E40D0 push {r4-r6,lr} sub sp, 0xC lsls r0, 24 lsrs r6, r0, 24 movs r4, 0 ldr r0, _080E4110 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080E4114 str r4, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80791A8 adds r1, r0, 0 movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080E412C movs r2, 0x1 _080E4102: lsrs r1, 1 adds r4, 0x1 adds r0, r1, 0 ands r0, r2 cmp r0, 0 beq _080E4102 b _080E412C .align 2, 0 _080E4110: .4byte gUnknown_03004B00 _080E4114: cmp r0, 0x1 bne _080E4120 ldr r0, _080E411C @ =gUnknown_0202F7C8 b _080E4126 .align 2, 0 _080E411C: .4byte gUnknown_0202F7C8 _080E4120: cmp r0, 0x2 bne _080E412C ldr r0, _080E4148 @ =gUnknown_0202F7C9 _080E4126: ldrb r0, [r0] adds r4, r0, 0 adds r4, 0x10 _080E412C: lsls r1, r4, 5 ldr r0, _080E414C @ =gPlttBufferUnfaded adds r5, r1, r0 ldr r0, _080E4150 @ =gUnknown_03004B00 movs r1, 0x2 ldrsh r0, [r0, r1] lsls r4, r0, 5 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080E4158 ldr r0, _080E4154 @ =0x02014800 b _080E415A .align 2, 0 _080E4148: .4byte gUnknown_0202F7C9 _080E414C: .4byte gPlttBufferUnfaded _080E4150: .4byte gUnknown_03004B00 _080E4154: .4byte 0x02014800 _080E4158: ldr r0, _080E4174 @ =0x02018000 _080E415A: adds r1, r4, r0 adds r0, r5, 0 movs r2, 0x20 bl memcpy adds r0, r6, 0 bl move_anim_task_del add sp, 0xC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E4174: .4byte 0x02018000 thumb_func_end sub_80E40D0 thumb_func_start sub_80E4178 sub_80E4178: @ 80E4178 push {r4,r5,lr} sub sp, 0xC lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r0, _080E41B8 @ =gUnknown_03004B00 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080E41BC str r4, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80791A8 adds r1, r0, 0 movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080E41D4 movs r2, 0x1 _080E41AA: lsrs r1, 1 adds r4, 0x1 adds r0, r1, 0 ands r0, r2 cmp r0, 0 beq _080E41AA b _080E41D4 .align 2, 0 _080E41B8: .4byte gUnknown_03004B00 _080E41BC: cmp r0, 0x1 bne _080E41C8 ldr r0, _080E41C4 @ =gUnknown_0202F7C8 b _080E41CE .align 2, 0 _080E41C4: .4byte gUnknown_0202F7C8 _080E41C8: cmp r0, 0x2 bne _080E41D4 ldr r0, _080E41F4 @ =gUnknown_0202F7C9 _080E41CE: ldrb r0, [r0] adds r4, r0, 0 adds r4, 0x10 _080E41D4: lsls r1, r4, 5 ldr r0, _080E41F8 @ =gPlttBufferUnfaded adds r0, r1, r0 ldr r2, _080E41FC @ =gPlttBufferFaded adds r1, r2 movs r2, 0x20 bl memcpy adds r0, r5, 0 bl move_anim_task_del add sp, 0xC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E41F4: .4byte gUnknown_0202F7C9 _080E41F8: .4byte gPlttBufferUnfaded _080E41FC: .4byte gPlttBufferFaded thumb_func_end sub_80E4178 thumb_func_start sub_80E4200 sub_80E4200: @ 80E4200 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8076BE0 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _080E4220 ldr r1, _080E421C @ =gUnknown_03004B00 movs r0, 0x1 strh r0, [r1, 0xE] b _080E4224 .align 2, 0 _080E421C: .4byte gUnknown_03004B00 _080E4220: ldr r0, _080E4230 @ =gUnknown_03004B00 strh r1, [r0, 0xE] _080E4224: adds r0, r4, 0 bl move_anim_task_del pop {r4} pop {r0} bx r0 .align 2, 0 _080E4230: .4byte gUnknown_03004B00 thumb_func_end sub_80E4200 thumb_func_start sub_80E4234 sub_80E4234: @ 80E4234 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080E4254 @ =gUnknown_0202F7C8 ldr r1, _080E4258 @ =gUnknown_02024C08 ldrb r1, [r1] strb r1, [r2] ldr r2, _080E425C @ =gUnknown_0202F7C9 ldr r1, _080E4260 @ =gUnknown_02024C0A ldrb r1, [r1] strb r1, [r2] bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _080E4254: .4byte gUnknown_0202F7C8 _080E4258: .4byte gUnknown_02024C08 _080E425C: .4byte gUnknown_0202F7C9 _080E4260: .4byte gUnknown_02024C0A thumb_func_end sub_80E4234 thumb_func_start sub_80E4264 sub_80E4264: @ 80E4264 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080E428C @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner adds r4, r0, 0 ldr r0, _080E4290 @ =gUnknown_0202F7C9 ldrb r0, [r0] bl battle_side_get_owner lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _080E4298 ldr r1, _080E4294 @ =gUnknown_03004B00 movs r0, 0x1 b _080E429C .align 2, 0 _080E428C: .4byte gUnknown_0202F7C8 _080E4290: .4byte gUnknown_0202F7C9 _080E4294: .4byte gUnknown_03004B00 _080E4298: ldr r1, _080E42AC @ =gUnknown_03004B00 movs r0, 0 _080E429C: strh r0, [r1, 0xE] adds r0, r5, 0 bl move_anim_task_del pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E42AC: .4byte gUnknown_03004B00 thumb_func_end sub_80E4264 thumb_func_start sub_80E42B0 sub_80E42B0: @ 80E42B0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080E42C8 @ =gUnknown_0202F7C9 ldr r1, _080E42CC @ =gUnknown_02024C08 ldrb r1, [r1] strb r1, [r2] bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _080E42C8: .4byte gUnknown_0202F7C9 _080E42CC: .4byte gUnknown_02024C08 thumb_func_end sub_80E42B0 thumb_func_start sub_80E42D0 sub_80E42D0: @ 80E42D0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080E42F0 @ =gUnknown_0202F7C8 ldr r1, _080E42F4 @ =gUnknown_02024C07 ldrb r1, [r1] strb r1, [r2] ldr r2, _080E42F8 @ =gUnknown_0202F7C9 ldr r1, _080E42FC @ =gUnknown_02024C0A ldrb r1, [r1] strb r1, [r2] bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _080E42F0: .4byte gUnknown_0202F7C8 _080E42F4: .4byte gUnknown_02024C07 _080E42F8: .4byte gUnknown_0202F7C9 _080E42FC: .4byte gUnknown_02024C0A thumb_func_end sub_80E42D0 thumb_func_start sub_80E4300 sub_80E4300: @ 80E4300 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080E4318 adds r0, r4, 0 bl move_anim_task_del b _080E434E _080E4318: ldr r0, _080E4354 @ =gTasks lsls r3, r4, 2 adds r3, r4 lsls r3, 3 adds r3, r0 ldr r1, _080E4358 @ =gUnknown_0202F7C8 ldrb r0, [r1] lsls r0, 2 ldr r2, _080E435C @ =0x02017800 adds r0, r2 ldr r0, [r0] lsls r0, 31 lsrs r0, 31 strh r0, [r3, 0x8] ldrb r1, [r1] lsls r1, 2 adds r1, r2 ldrb r0, [r1] movs r2, 0x1 orrs r0, r2 strb r0, [r1] ldr r0, _080E4360 @ =sub_80E4368 str r0, [r3] ldr r1, _080E4364 @ =gUnknown_0202F7B2 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] _080E434E: pop {r4} pop {r0} bx r0 .align 2, 0 _080E4354: .4byte gTasks _080E4358: .4byte gUnknown_0202F7C8 _080E435C: .4byte 0x02017800 _080E4360: .4byte sub_80E4368 _080E4364: .4byte gUnknown_0202F7B2 thumb_func_end sub_80E4300 thumb_func_start sub_80E4368 sub_80E4368: @ 80E4368 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080E43B0 @ =gUnknown_03004B00 movs r2, 0xE ldrsh r1, [r0, r2] movs r0, 0x80 lsls r0, 5 cmp r1, r0 bne _080E43A8 ldr r0, _080E43B4 @ =gUnknown_0202F7C8 ldrb r3, [r0] lsls r3, 2 ldr r0, _080E43B8 @ =0x02017800 adds r3, r0 ldr r1, _080E43BC @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldrb r0, [r0, 0x8] movs r1, 0x1 ands r1, r0 ldrb r2, [r3] movs r0, 0x2 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] adds r0, r4, 0 bl DestroyTask _080E43A8: pop {r4} pop {r0} bx r0 .align 2, 0 _080E43B0: .4byte gUnknown_03004B00 _080E43B4: .4byte gUnknown_0202F7C8 _080E43B8: .4byte 0x02017800 _080E43BC: .4byte gTasks thumb_func_end sub_80E4368 thumb_func_start sub_80E43C0 sub_80E43C0: @ 80E43C0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080E43D8 @ =gUnknown_020239F8 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080E43E0 ldr r0, _080E43DC @ =sub_80E4C34 b _080E4408 .align 2, 0 _080E43D8: .4byte gUnknown_020239F8 _080E43DC: .4byte sub_80E4C34 _080E43E0: movs r0, 0x80 lsls r0, 5 ands r0, r1 cmp r0, 0 beq _080E4400 ldr r0, _080E43F8 @ =gGameVersion ldrb r0, [r0] cmp r0, 0x2 beq _080E4400 movs r4, 0x3 ldr r0, _080E43FC @ =task00_battle_intro_80BC6C8 b _080E4408 .align 2, 0 _080E43F8: .4byte gGameVersion _080E43FC: .4byte task00_battle_intro_80BC6C8 _080E4400: ldr r1, _080E4434 @ =gUnknown_083DB56C lsls r0, r4, 2 adds r0, r1 ldr r0, [r0] _080E4408: movs r1, 0 bl CreateTask lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080E4438 @ =gTasks lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 movs r0, 0 strh r0, [r1, 0x8] strh r4, [r1, 0xA] strh r0, [r1, 0xC] strh r0, [r1, 0xE] strh r0, [r1, 0x10] strh r0, [r1, 0x12] strh r0, [r1, 0x14] pop {r4} pop {r0} bx r0 .align 2, 0 _080E4434: .4byte gUnknown_083DB56C _080E4438: .4byte gTasks thumb_func_end sub_80E43C0 thumb_func_start sub_80E443C sub_80E443C: @ 80E443C push {lr} lsls r0, 24 lsrs r0, 24 bl DestroyTask ldr r0, _080E4474 @ =gUnknown_030042C0 movs r1, 0 strh r1, [r0] ldr r0, _080E4478 @ =gUnknown_030041B4 strh r1, [r0] ldr r0, _080E447C @ =gUnknown_03004288 strh r1, [r0] ldr r0, _080E4480 @ =gUnknown_03004280 strh r1, [r0] ldr r0, _080E4484 @ =REG_BLDCNT strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0xC ldr r2, _080E4488 @ =0x00003f3f adds r1, r2, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] pop {r0} bx r0 .align 2, 0 _080E4474: .4byte gUnknown_030042C0 _080E4478: .4byte gUnknown_030041B4 _080E447C: .4byte gUnknown_03004288 _080E4480: .4byte gUnknown_03004280 _080E4484: .4byte REG_BLDCNT _080E4488: .4byte 0x00003f3f thumb_func_end sub_80E443C thumb_func_start task_battle_intro_80BC47C task_battle_intro_80BC47C: @ 80E448C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080E44C4 @ =gUnknown_030042C0 ldrh r0, [r1] adds r0, 0x6 strh r0, [r1] ldr r1, _080E44C8 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] mov r8, r1 cmp r0, 0x4 bls _080E44B8 b _080E46BE _080E44B8: lsls r0, 2 ldr r1, _080E44CC @ =_080E44D0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E44C4: .4byte gUnknown_030042C0 _080E44C8: .4byte gTasks _080E44CC: .4byte _080E44D0 .align 2, 0 _080E44D0: .4byte _080E44E4 .4byte _080E4514 .4byte _080E4540 .4byte _080E4588 .4byte _080E46B8 _080E44E4: ldr r0, _080E44FC @ =gUnknown_020239F8 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080E4500 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 add r0, r8 movs r1, 0x10 b _080E450A .align 2, 0 _080E44FC: .4byte gUnknown_020239F8 _080E4500: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 add r0, r8 movs r1, 0x1 _080E450A: strh r1, [r0, 0xC] ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] b _080E46BE _080E4514: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 mov r3, r8 adds r1, r0, r3 ldrh r0, [r1, 0xC] subs r0, 0x1 strh r0, [r1, 0xC] lsls r0, 16 cmp r0, 0 beq _080E452C b _080E46BE _080E452C: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] ldr r1, _080E453C @ =REG_WININ movs r0, 0x3F strh r0, [r1] b _080E46BE .align 2, 0 _080E453C: .4byte REG_WININ _080E4540: ldr r1, _080E457C @ =gUnknown_03004240 ldrh r0, [r1] subs r0, 0xFF strh r0, [r1] movs r1, 0xFF lsls r1, 8 ands r0, r1 movs r1, 0xC0 lsls r1, 6 cmp r0, r1 beq _080E4558 b _080E46BE _080E4558: lsls r1, r4, 2 adds r1, r4 lsls r1, 3 add r1, r8 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] movs r0, 0xF0 strh r0, [r1, 0xC] movs r0, 0x20 strh r0, [r1, 0xE] ldr r2, _080E4580 @ =gUnknown_02024DE8 ldrh r1, [r2] ldr r0, _080E4584 @ =0x0000fffe ands r0, r1 strh r0, [r2] b _080E46BE .align 2, 0 _080E457C: .4byte gUnknown_03004240 _080E4580: .4byte gUnknown_02024DE8 _080E4584: .4byte 0x0000fffe _080E4588: lsls r0, r4, 2 adds r1, r0, r4 lsls r1, 3 mov r5, r8 adds r2, r1, r5 ldrh r3, [r2, 0xE] movs r5, 0xE ldrsh r1, [r2, r5] mov r12, r0 cmp r1, 0 beq _080E45A4 subs r0, r3, 0x1 strh r0, [r2, 0xE] b _080E45D2 _080E45A4: movs r1, 0xA ldrsh r0, [r2, r1] cmp r0, 0x1 bne _080E45C4 ldr r2, _080E45BC @ =gUnknown_030041B4 ldrh r1, [r2] ldr r0, _080E45C0 @ =0x0000ffb0 cmp r1, r0 beq _080E45D2 subs r0, r1, 0x2 b _080E45D0 .align 2, 0 _080E45BC: .4byte gUnknown_030041B4 _080E45C0: .4byte 0x0000ffb0 _080E45C4: ldr r2, _080E4690 @ =gUnknown_030041B4 ldrh r1, [r2] ldr r0, _080E4694 @ =0x0000ffc8 cmp r1, r0 beq _080E45D2 subs r0, r1, 0x1 _080E45D0: strh r0, [r2] _080E45D2: ldr r2, _080E4698 @ =gUnknown_03004240 ldrh r1, [r2] movs r0, 0xFF lsls r0, 8 ands r0, r1 cmp r0, 0 beq _080E45E6 ldr r3, _080E469C @ =0xfffffc04 adds r0, r1, r3 strh r0, [r2] _080E45E6: mov r5, r12 adds r0, r5, r4 lsls r0, 3 mov r2, r8 adds r1, r0, r2 ldrh r2, [r1, 0xC] movs r3, 0xC ldrsh r0, [r1, r3] cmp r0, 0 beq _080E45FE subs r0, r2, 0x2 strh r0, [r1, 0xC] _080E45FE: movs r3, 0 ldr r5, _080E46A0 @ =gUnknown_03004DC0 mov r9, r5 ldr r7, _080E46A4 @ =gUnknown_03004DE0 mov r6, r9 adds r5, r1, 0 _080E460A: lsls r2, r3, 1 ldrb r1, [r6, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 adds r2, r7 ldrh r0, [r5, 0xC] strh r0, [r2] adds r3, 0x1 cmp r3, 0x4F ble _080E460A cmp r3, 0x9F bgt _080E464E ldr r7, _080E46A4 @ =gUnknown_03004DE0 ldr r6, _080E46A0 @ =gUnknown_03004DC0 ldr r1, _080E46A8 @ =gTasks mov r2, r12 adds r0, r2, r4 lsls r0, 3 adds r5, r0, r1 _080E4634: lsls r2, r3, 1 ldrb r1, [r6, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 adds r2, r7 ldrh r0, [r5, 0xC] negs r0, r0 strh r0, [r2] adds r3, 0x1 cmp r3, 0x9F ble _080E4634 _080E464E: mov r3, r12 adds r0, r3, r4 lsls r0, 3 mov r5, r8 adds r1, r0, r5 movs r0, 0xC ldrsh r2, [r1, r0] cmp r2, 0 bne _080E46BE movs r0, 0x3 mov r3, r9 strb r0, [r3, 0x15] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] str r2, [sp] ldr r1, _080E46AC @ =0x0600e000 ldr r2, _080E46B0 @ =0x05000200 mov r0, sp bl CpuSet ldr r1, _080E46B4 @ =REG_BG1CNT movs r5, 0x9C lsls r5, 8 adds r0, r5, 0 strh r0, [r1] adds r1, 0x2 movs r2, 0xBC lsls r2, 7 adds r0, r2, 0 strh r0, [r1] b _080E46BE .align 2, 0 _080E4690: .4byte gUnknown_030041B4 _080E4694: .4byte 0x0000ffc8 _080E4698: .4byte gUnknown_03004240 _080E469C: .4byte 0xfffffc04 _080E46A0: .4byte gUnknown_03004DC0 _080E46A4: .4byte gUnknown_03004DE0 _080E46A8: .4byte gTasks _080E46AC: .4byte 0x0600e000 _080E46B0: .4byte 0x05000200 _080E46B4: .4byte REG_BG1CNT _080E46B8: adds r0, r4, 0 bl sub_80E443C _080E46BE: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end task_battle_intro_80BC47C thumb_func_start task00_battle_intro_80BC6C8 task00_battle_intro_80BC6C8: @ 80E46CC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080E46F8 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r2, 0xA ldrsh r0, [r0, r2] adds r2, r1, 0 cmp r0, 0x3 beq _080E470C cmp r0, 0x3 bgt _080E46FC cmp r0, 0x2 beq _080E4700 b _080E4714 .align 2, 0 _080E46F8: .4byte gTasks _080E46FC: cmp r0, 0x4 bne _080E4714 _080E4700: ldr r1, _080E4708 @ =gUnknown_030042C0 ldrh r0, [r1] adds r0, 0x8 b _080E4712 .align 2, 0 _080E4708: .4byte gUnknown_030042C0 _080E470C: ldr r1, _080E4750 @ =gUnknown_030042C0 ldrh r0, [r1] adds r0, 0x6 _080E4712: strh r0, [r1] _080E4714: lsls r0, r5, 2 adds r1, r0, r5 lsls r1, 3 adds r4, r1, r2 movs r3, 0xA ldrsh r1, [r4, r3] adds r6, r0, 0 cmp r1, 0x4 bne _080E4778 ldr r7, _080E4754 @ =gUnknown_030041B4 ldrh r0, [r4, 0x14] bl Cos2 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _080E473A ldr r1, _080E4758 @ =0x000001ff adds r0, r1 _080E473A: asrs r0, 9 subs r0, 0x8 strh r0, [r7] ldrh r1, [r4, 0x14] movs r2, 0x14 ldrsh r0, [r4, r2] cmp r0, 0xB3 bgt _080E475C adds r0, r1, 0x4 b _080E475E .align 2, 0 _080E4750: .4byte gUnknown_030042C0 _080E4754: .4byte gUnknown_030041B4 _080E4758: .4byte 0x000001ff _080E475C: adds r0, r1, 0x6 _080E475E: strh r0, [r4, 0x14] ldr r2, _080E4794 @ =gTasks adds r0, r6, r5 lsls r0, 3 adds r3, r0, r2 movs r4, 0x14 ldrsh r1, [r3, r4] movs r0, 0xB4 lsls r0, 1 cmp r1, r0 bne _080E4778 movs r0, 0 strh r0, [r3, 0x14] _080E4778: adds r0, r6, r5 lsls r0, 3 adds r0, r2 movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0x4 bls _080E4788 b _080E4996 _080E4788: lsls r0, 2 ldr r1, _080E4798 @ =_080E479C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E4794: .4byte gTasks _080E4798: .4byte _080E479C .align 2, 0 _080E479C: .4byte _080E47B0 .4byte _080E47E0 .4byte _080E480C .4byte _080E485C .4byte _080E4990 _080E47B0: ldr r1, _080E47CC @ =gTasks adds r0, r6, r5 lsls r0, 3 adds r2, r0, r1 movs r3, 0x10 strh r3, [r2, 0x10] ldr r0, _080E47D0 @ =gUnknown_020239F8 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080E47D4 strh r3, [r2, 0xC] b _080E47D8 .align 2, 0 _080E47CC: .4byte gTasks _080E47D0: .4byte gUnknown_020239F8 _080E47D4: movs r0, 0x1 strh r0, [r2, 0xC] _080E47D8: ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] b _080E4996 _080E47E0: ldr r0, _080E4804 @ =gTasks adds r1, r6, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0xC] subs r0, 0x1 strh r0, [r1, 0xC] lsls r0, 16 cmp r0, 0 beq _080E47F6 b _080E4996 _080E47F6: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] ldr r1, _080E4808 @ =REG_WININ movs r0, 0x3F strh r0, [r1] b _080E4996 .align 2, 0 _080E4804: .4byte gTasks _080E4808: .4byte REG_WININ _080E480C: ldr r1, _080E484C @ =gUnknown_03004240 ldrh r0, [r1] subs r0, 0xFF strh r0, [r1] movs r1, 0xFF lsls r1, 8 ands r0, r1 movs r1, 0xC0 lsls r1, 6 cmp r0, r1 beq _080E4824 b _080E4996 _080E4824: ldr r0, _080E4850 @ =gTasks adds r1, r6, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] movs r0, 0xF0 strh r0, [r1, 0xC] movs r0, 0x20 strh r0, [r1, 0xE] movs r0, 0x1 strh r0, [r1, 0x12] ldr r2, _080E4854 @ =gUnknown_02024DE8 ldrh r1, [r2] ldr r0, _080E4858 @ =0x0000fffe ands r0, r1 strh r0, [r2] b _080E4996 .align 2, 0 _080E484C: .4byte gUnknown_03004240 _080E4850: .4byte gTasks _080E4854: .4byte gUnknown_02024DE8 _080E4858: .4byte 0x0000fffe _080E485C: adds r0, r6, r5 lsls r0, 3 adds r1, r0, r2 ldrh r3, [r1, 0xE] movs r4, 0xE ldrsh r0, [r1, r4] cmp r0, 0 beq _080E4898 subs r0, r3, 0x1 strh r0, [r1, 0xE] lsls r0, 16 asrs r3, r0, 16 cmp r3, 0 bne _080E48B8 ldr r1, _080E488C @ =REG_BLDCNT ldr r4, _080E4890 @ =0x00001842 adds r0, r4, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0xF strh r0, [r1] ldr r0, _080E4894 @ =REG_BLDY strh r3, [r0] b _080E48B8 .align 2, 0 _080E488C: .4byte REG_BLDCNT _080E4890: .4byte 0x00001842 _080E4894: .4byte REG_BLDY _080E4898: ldrh r3, [r1, 0x10] movs r0, 0x1F ands r0, r3 cmp r0, 0 beq _080E48B8 ldrh r0, [r1, 0x12] subs r0, 0x1 strh r0, [r1, 0x12] lsls r0, 16 cmp r0, 0 bne _080E48B8 adds r0, r3, 0 adds r0, 0xFF strh r0, [r1, 0x10] movs r0, 0x4 strh r0, [r1, 0x12] _080E48B8: ldr r3, _080E4970 @ =gUnknown_03004240 ldrh r1, [r3] movs r0, 0xFF lsls r0, 8 ands r0, r1 cmp r0, 0 beq _080E48CC ldr r4, _080E4974 @ =0xfffffc04 adds r0, r1, r4 strh r0, [r3] _080E48CC: adds r0, r6, r5 lsls r0, 3 adds r1, r0, r2 ldrh r2, [r1, 0xC] movs r3, 0xC ldrsh r0, [r1, r3] cmp r0, 0 beq _080E48E0 subs r0, r2, 0x2 strh r0, [r1, 0xC] _080E48E0: movs r3, 0 ldr r4, _080E4978 @ =gUnknown_03004DC0 mov r8, r4 ldr r0, _080E497C @ =gUnknown_03004DE0 mov r12, r0 mov r7, r8 adds r4, r1, 0 _080E48EE: lsls r2, r3, 1 ldrb r1, [r7, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 add r2, r12 ldrh r0, [r4, 0xC] strh r0, [r2] adds r3, 0x1 cmp r3, 0x4F ble _080E48EE cmp r3, 0x9F bgt _080E4932 ldr r1, _080E497C @ =gUnknown_03004DE0 mov r12, r1 ldr r7, _080E4978 @ =gUnknown_03004DC0 ldr r1, _080E4980 @ =gTasks adds r0, r6, r5 lsls r0, 3 adds r4, r0, r1 _080E4918: lsls r2, r3, 1 ldrb r1, [r7, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 add r2, r12 ldrh r0, [r4, 0xC] negs r0, r0 strh r0, [r2] adds r3, 0x1 cmp r3, 0x9F ble _080E4918 _080E4932: ldr r1, _080E4980 @ =gTasks adds r0, r6, r5 lsls r0, 3 adds r1, r0, r1 movs r3, 0xC ldrsh r2, [r1, r3] cmp r2, 0 bne _080E4996 movs r0, 0x3 mov r4, r8 strb r0, [r4, 0x15] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] str r2, [sp] ldr r1, _080E4984 @ =0x0600e000 ldr r2, _080E4988 @ =0x05000200 mov r0, sp bl CpuSet ldr r1, _080E498C @ =REG_BG1CNT movs r2, 0x9C lsls r2, 8 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r3, 0xBC lsls r3, 7 adds r0, r3, 0 strh r0, [r1] b _080E4996 .align 2, 0 _080E4970: .4byte gUnknown_03004240 _080E4974: .4byte 0xfffffc04 _080E4978: .4byte gUnknown_03004DC0 _080E497C: .4byte gUnknown_03004DE0 _080E4980: .4byte gTasks _080E4984: .4byte 0x0600e000 _080E4988: .4byte 0x05000200 _080E498C: .4byte REG_BG1CNT _080E4990: adds r0, r5, 0 bl sub_80E443C _080E4996: ldr r0, _080E49B8 @ =gTasks adds r1, r6, r5 lsls r1, 3 adds r2, r1, r0 movs r4, 0x8 ldrsh r0, [r2, r4] cmp r0, 0x4 beq _080E49AC ldr r1, _080E49BC @ =REG_BLDALPHA ldrh r0, [r2, 0x10] strh r0, [r1] _080E49AC: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E49B8: .4byte gTasks _080E49BC: .4byte REG_BLDALPHA thumb_func_end task00_battle_intro_80BC6C8 thumb_func_start task_battle_intro_anim task_battle_intro_anim: @ 80E49C0 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080E49F4 @ =gUnknown_030042C0 ldrh r0, [r1] adds r0, 0x8 strh r0, [r1] ldr r1, _080E49F8 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] adds r5, r1, 0 cmp r0, 0x4 bls _080E49EA b _080E4C06 _080E49EA: lsls r0, 2 ldr r1, _080E49FC @ =_080E4A00 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E49F4: .4byte gUnknown_030042C0 _080E49F8: .4byte gTasks _080E49FC: .4byte _080E4A00 .align 2, 0 _080E4A00: .4byte _080E4A14 .4byte _080E4A6C .4byte _080E4A9C .4byte _080E4AEC .4byte _080E4C00 _080E4A14: ldr r1, _080E4A48 @ =REG_BLDCNT ldr r3, _080E4A4C @ =0x00001842 adds r0, r3, 0 strh r0, [r1] ldr r0, _080E4A50 @ =REG_BLDALPHA ldr r6, _080E4A54 @ =0x00000808 adds r2, r6, 0 strh r2, [r0] adds r1, 0x4 movs r0, 0 strh r0, [r1] ldr r1, _080E4A58 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r3, r0, r1 strh r2, [r3, 0x10] ldr r0, _080E4A5C @ =gUnknown_020239F8 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080E4A60 movs r0, 0x10 b _080E4A62 .align 2, 0 _080E4A48: .4byte REG_BLDCNT _080E4A4C: .4byte 0x00001842 _080E4A50: .4byte REG_BLDALPHA _080E4A54: .4byte 0x00000808 _080E4A58: .4byte gTasks _080E4A5C: .4byte gUnknown_020239F8 _080E4A60: movs r0, 0x1 _080E4A62: strh r0, [r3, 0xC] ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] b _080E4C06 _080E4A6C: ldr r0, _080E4A94 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0xC] subs r0, 0x1 strh r0, [r1, 0xC] lsls r0, 16 cmp r0, 0 beq _080E4A84 b _080E4C06 _080E4A84: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] ldr r1, _080E4A98 @ =REG_WININ movs r0, 0x3F strh r0, [r1] b _080E4C06 .align 2, 0 _080E4A94: .4byte gTasks _080E4A98: .4byte REG_WININ _080E4A9C: ldr r1, _080E4ADC @ =gUnknown_03004240 ldrh r0, [r1] subs r0, 0xFF strh r0, [r1] movs r1, 0xFF lsls r1, 8 ands r0, r1 movs r1, 0xC0 lsls r1, 6 cmp r0, r1 beq _080E4AB4 b _080E4C06 _080E4AB4: ldr r0, _080E4AE0 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] movs r0, 0xF0 strh r0, [r1, 0xC] movs r0, 0x20 strh r0, [r1, 0xE] movs r0, 0x1 strh r0, [r1, 0x12] ldr r2, _080E4AE4 @ =gUnknown_02024DE8 ldrh r1, [r2] ldr r0, _080E4AE8 @ =0x0000fffe ands r0, r1 strh r0, [r2] b _080E4C06 .align 2, 0 _080E4ADC: .4byte gUnknown_03004240 _080E4AE0: .4byte gTasks _080E4AE4: .4byte gUnknown_02024DE8 _080E4AE8: .4byte 0x0000fffe _080E4AEC: lsls r0, r4, 2 adds r1, r0, r4 lsls r1, 3 adds r2, r1, r5 ldrh r3, [r2, 0xE] movs r6, 0xE ldrsh r1, [r2, r6] mov r12, r0 cmp r1, 0 beq _080E4B06 subs r0, r3, 0x1 strh r0, [r2, 0xE] b _080E4B26 _080E4B06: ldrh r1, [r2, 0x10] movs r0, 0xF ands r0, r1 cmp r0, 0 beq _080E4B26 ldrh r0, [r2, 0x12] subs r0, 0x1 strh r0, [r2, 0x12] lsls r0, 16 cmp r0, 0 bne _080E4B26 adds r0, r1, 0 adds r0, 0xFF strh r0, [r2, 0x10] movs r0, 0x6 strh r0, [r2, 0x12] _080E4B26: ldr r2, _080E4BE0 @ =gUnknown_03004240 ldrh r1, [r2] movs r0, 0xFF lsls r0, 8 ands r0, r1 cmp r0, 0 beq _080E4B3A ldr r3, _080E4BE4 @ =0xfffffc04 adds r0, r1, r3 strh r0, [r2] _080E4B3A: mov r6, r12 adds r0, r6, r4 lsls r0, 3 adds r1, r0, r5 ldrh r2, [r1, 0xC] movs r3, 0xC ldrsh r0, [r1, r3] cmp r0, 0 beq _080E4B50 subs r0, r2, 0x2 strh r0, [r1, 0xC] _080E4B50: movs r3, 0 ldr r6, _080E4BE8 @ =gUnknown_03004DC0 mov r8, r6 ldr r7, _080E4BEC @ =gUnknown_03004DE0 adds r5, r1, 0 _080E4B5A: lsls r2, r3, 1 ldrb r1, [r6, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 adds r2, r7 ldrh r0, [r5, 0xC] strh r0, [r2] adds r3, 0x1 cmp r3, 0x4F ble _080E4B5A cmp r3, 0x9F bgt _080E4B9E ldr r7, _080E4BEC @ =gUnknown_03004DE0 ldr r6, _080E4BE8 @ =gUnknown_03004DC0 ldr r1, _080E4BF0 @ =gTasks mov r2, r12 adds r0, r2, r4 lsls r0, 3 adds r5, r0, r1 _080E4B84: lsls r2, r3, 1 ldrb r1, [r6, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 adds r2, r7 ldrh r0, [r5, 0xC] negs r0, r0 strh r0, [r2] adds r3, 0x1 cmp r3, 0x9F ble _080E4B84 _080E4B9E: ldr r1, _080E4BF0 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r1 movs r3, 0xC ldrsh r2, [r1, r3] cmp r2, 0 bne _080E4C06 movs r0, 0x3 mov r6, r8 strb r0, [r6, 0x15] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] str r2, [sp] ldr r1, _080E4BF4 @ =0x0600e000 ldr r2, _080E4BF8 @ =0x05000200 mov r0, sp bl CpuSet ldr r1, _080E4BFC @ =REG_BG1CNT movs r2, 0x9C lsls r2, 8 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r3, 0xBC lsls r3, 7 adds r0, r3, 0 strh r0, [r1] b _080E4C06 .align 2, 0 _080E4BE0: .4byte gUnknown_03004240 _080E4BE4: .4byte 0xfffffc04 _080E4BE8: .4byte gUnknown_03004DC0 _080E4BEC: .4byte gUnknown_03004DE0 _080E4BF0: .4byte gTasks _080E4BF4: .4byte 0x0600e000 _080E4BF8: .4byte 0x05000200 _080E4BFC: .4byte REG_BG1CNT _080E4C00: adds r0, r4, 0 bl sub_80E443C _080E4C06: ldr r0, _080E4C2C @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r2, r1, r0 movs r6, 0x8 ldrsh r0, [r2, r6] cmp r0, 0x4 beq _080E4C1E ldr r1, _080E4C30 @ =REG_BLDALPHA ldrh r0, [r2, 0x10] strh r0, [r1] _080E4C1E: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E4C2C: .4byte gTasks _080E4C30: .4byte REG_BLDALPHA thumb_func_end task_battle_intro_anim thumb_func_start sub_80E4C34 sub_80E4C34: @ 80E4C34 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 lsls r0, 24 lsrs r6, r0, 24 ldr r1, _080E4C80 @ =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r7, r0, r1 movs r1, 0x8 ldrsh r0, [r7, r1] cmp r0, 0x1 ble _080E4CAA movs r2, 0x10 ldrsh r0, [r7, r2] cmp r0, 0 bne _080E4CAA ldr r2, _080E4C84 @ =gUnknown_030042C0 ldrh r1, [r2] movs r0, 0x80 lsls r0, 8 ands r0, r1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0 bne _080E4C72 cmp r1, 0x4F bhi _080E4C8C _080E4C72: adds r0, r1, 0x3 strh r0, [r2] ldr r1, _080E4C88 @ =gUnknown_03004288 ldrh r0, [r1] subs r0, 0x3 strh r0, [r1] b _080E4CAA .align 2, 0 _080E4C80: .4byte gTasks _080E4C84: .4byte gUnknown_030042C0 _080E4C88: .4byte gUnknown_03004288 _080E4C8C: str r5, [sp] ldr r1, _080E4CCC @ =0x0600e000 ldr r4, _080E4CD0 @ =0x05000200 mov r0, sp adds r2, r4, 0 bl CpuSet str r5, [sp, 0x4] add r0, sp, 0x4 ldr r1, _080E4CD4 @ =0x0600f000 adds r2, r4, 0 bl CpuSet movs r0, 0x1 strh r0, [r7, 0x10] _080E4CAA: ldr r0, _080E4CD8 @ =gTasks lsls r2, r6, 2 adds r1, r2, r6 lsls r1, 3 adds r1, r0 movs r3, 0x8 ldrsh r1, [r1, r3] mov r12, r0 adds r5, r2, 0 cmp r1, 0x4 bls _080E4CC2 b _080E4EBA _080E4CC2: lsls r0, r1, 2 ldr r1, _080E4CDC @ =_080E4CE0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E4CCC: .4byte 0x0600e000 _080E4CD0: .4byte 0x05000200 _080E4CD4: .4byte 0x0600f000 _080E4CD8: .4byte gTasks _080E4CDC: .4byte _080E4CE0 .align 2, 0 _080E4CE0: .4byte _080E4CF4 .4byte _080E4D06 .4byte _080E4DA8 .4byte _080E4DEC .4byte _080E4EB4 _080E4CF4: adds r0, r5, r6 lsls r0, 3 add r0, r12 movs r1, 0x10 strh r1, [r0, 0xC] ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] b _080E4EBA _080E4D06: adds r0, r5, r6 lsls r0, 3 mov r2, r12 adds r1, r0, r2 ldrh r0, [r1, 0xC] subs r0, 0x1 strh r0, [r1, 0xC] lsls r0, 16 cmp r0, 0 beq _080E4D1C b _080E4EBA _080E4D1C: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] ldr r5, _080E4D8C @ =gSprites ldr r4, _080E4D90 @ =0x02000000 ldr r3, _080E4D94 @ =0x0001608a adds r6, r4, r3 ldrb r0, [r6] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r3, [r1, 0x1] movs r2, 0xD negs r2, r2 adds r0, r2, 0 ands r0, r3 movs r3, 0x8 mov r8, r3 mov r3, r8 orrs r0, r3 strb r0, [r1, 0x1] ldrb r1, [r6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r6, r5, 0 adds r6, 0x1C adds r0, r6 ldr r3, _080E4D98 @ =sub_800FE20 str r3, [r0] ldr r0, _080E4D9C @ =0x0001608b adds r4, r0 ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r0, 0x1] ands r2, r1 mov r1, r8 orrs r2, r1 strb r2, [r0, 0x1] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 str r3, [r0] ldr r1, _080E4DA0 @ =REG_WININ movs r0, 0x3F strh r0, [r1] adds r1, 0x2 ldr r2, _080E4DA4 @ =0x00003f06 b _080E4E94 .align 2, 0 _080E4D8C: .4byte gSprites _080E4D90: .4byte 0x02000000 _080E4D94: .4byte 0x0001608a _080E4D98: .4byte sub_800FE20 _080E4D9C: .4byte 0x0001608b _080E4DA0: .4byte REG_WININ _080E4DA4: .4byte 0x00003f06 _080E4DA8: ldr r1, _080E4DE0 @ =gUnknown_03004240 ldrh r0, [r1] subs r0, 0xFF strh r0, [r1] movs r1, 0xFF lsls r1, 8 ands r0, r1 movs r1, 0xC0 lsls r1, 6 cmp r0, r1 beq _080E4DC0 b _080E4EBA _080E4DC0: adds r1, r5, r6 lsls r1, 3 add r1, r12 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] movs r0, 0xF0 strh r0, [r1, 0xC] movs r0, 0x20 strh r0, [r1, 0xE] ldr r2, _080E4DE4 @ =gUnknown_02024DE8 ldrh r1, [r2] ldr r0, _080E4DE8 @ =0x0000fffe ands r0, r1 strh r0, [r2] b _080E4EBA .align 2, 0 _080E4DE0: .4byte gUnknown_03004240 _080E4DE4: .4byte gUnknown_02024DE8 _080E4DE8: .4byte 0x0000fffe _080E4DEC: ldr r2, _080E4E9C @ =gUnknown_03004240 ldrh r1, [r2] movs r0, 0xFF lsls r0, 8 ands r0, r1 cmp r0, 0 beq _080E4E00 ldr r3, _080E4EA0 @ =0xfffffc04 adds r0, r1, r3 strh r0, [r2] _080E4E00: adds r0, r5, r6 lsls r0, 3 mov r2, r12 adds r1, r0, r2 ldrh r2, [r1, 0xC] movs r3, 0xC ldrsh r0, [r1, r3] cmp r0, 0 beq _080E4E16 subs r0, r2, 0x2 strh r0, [r1, 0xC] _080E4E16: movs r3, 0 ldr r0, _080E4EA4 @ =gUnknown_03004DC0 mov r9, r0 ldr r2, _080E4EA8 @ =gUnknown_03004DE0 mov r8, r2 mov r7, r9 adds r4, r1, 0 _080E4E24: lsls r2, r3, 1 ldrb r1, [r7, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 add r2, r8 ldrh r0, [r4, 0xC] strh r0, [r2] adds r3, 0x1 cmp r3, 0x4F ble _080E4E24 cmp r3, 0x9F bgt _080E4E68 ldr r0, _080E4EA8 @ =gUnknown_03004DE0 mov r8, r0 ldr r7, _080E4EA4 @ =gUnknown_03004DC0 ldr r1, _080E4EAC @ =gTasks adds r0, r5, r6 lsls r0, 3 adds r4, r0, r1 _080E4E4E: lsls r2, r3, 1 ldrb r1, [r7, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 add r2, r8 ldrh r0, [r4, 0xC] negs r0, r0 strh r0, [r2] adds r3, 0x1 cmp r3, 0x9F ble _080E4E4E _080E4E68: adds r0, r5, r6 lsls r0, 3 mov r2, r12 adds r1, r0, r2 movs r3, 0xC ldrsh r0, [r1, r3] cmp r0, 0 bne _080E4EBA movs r0, 0x3 mov r2, r9 strb r0, [r2, 0x15] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] ldr r1, _080E4EB0 @ =REG_BG1CNT movs r3, 0x9C lsls r3, 8 adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 movs r2, 0xBC lsls r2, 7 _080E4E94: adds r0, r2, 0 strh r0, [r1] b _080E4EBA .align 2, 0 _080E4E9C: .4byte gUnknown_03004240 _080E4EA0: .4byte 0xfffffc04 _080E4EA4: .4byte gUnknown_03004DC0 _080E4EA8: .4byte gUnknown_03004DE0 _080E4EAC: .4byte gTasks _080E4EB0: .4byte REG_BG1CNT _080E4EB4: adds r0, r6, 0 bl sub_80E443C _080E4EBA: add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80E4C34 thumb_func_start unref_sub_80E4EC8 unref_sub_80E4EC8: @ 80E4EC8 push {r4,lr} sub sp, 0xC lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 movs r4, 0x80 lsls r4, 7 str r4, [sp] movs r4, 0x1E str r4, [sp, 0x4] movs r4, 0x1 str r4, [sp, 0x8] bl sub_80E4EF8 add sp, 0xC pop {r4} pop {r0} bx r0 thumb_func_end unref_sub_80E4EC8 thumb_func_start sub_80E4EF8 sub_80E4EF8: @ 80E4EF8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r9, r1 adds r4, r2, 0 ldr r1, [sp, 0x24] mov r8, r1 ldr r1, [sp, 0x28] ldr r5, [sp, 0x2C] lsls r0, 24 lsrs r0, 24 mov r10, r0 mov r7, r9 lsls r7, 24 adds r0, r7, 0 lsrs r0, 24 mov r9, r0 lsls r4, 24 lsrs r4, 24 lsls r3, 24 lsrs r3, 24 str r3, [sp] mov r3, r8 lsls r3, 16 mov r8, r3 lsrs r6, r3, 16 lsls r1, 24 lsrs r7, r1, 24 lsls r5, 24 lsrs r5, 24 adds r0, r4, 0 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 ldr r2, _080E4FCC @ =0x040000d4 ldr r1, _080E4FD0 @ =gUnknown_081FAF4C lsls r4, 2 adds r4, r1 ldr r1, _080E4FD4 @ =gUnknown_02024E84 adds r0, r1 ldrb r1, [r0] lsls r1, 11 ldr r0, [r4] adds r0, r1 str r0, [r2] movs r0, 0xC0 lsls r0, 19 adds r6, r0 str r6, [r2, 0x4] ldr r0, _080E4FD8 @ =0x80000400 str r0, [r2, 0x8] ldr r0, [r2, 0x8] mov r0, r8 lsrs r0, 21 lsls r5, 9 subs r5, r0, r5 mov r0, r9 adds r1, r0, 0 adds r1, 0x8 cmp r0, r1 bge _080E4FBC mov r9, r1 mov r1, r10 lsls r1, 1 mov r8, r1 lsls r7, 11 mov r12, r7 _080E4F86: mov r2, r10 adds r4, r2, 0 adds r4, 0x8 adds r1, r0, 0x1 cmp r2, r4 bge _080E4FB6 ldr r3, [sp] lsls r6, r3, 12 lsls r0, 6 movs r7, 0xC0 lsls r7, 19 adds r0, r7 add r0, r12 mov r7, r8 adds r3, r7, r0 subs r2, r4, r2 _080E4FA6: adds r0, r5, 0 orrs r0, r6 strh r0, [r3] adds r5, 0x1 adds r3, 0x2 subs r2, 0x1 cmp r2, 0 bne _080E4FA6 _080E4FB6: adds r0, r1, 0 cmp r0, r9 blt _080E4F86 _080E4FBC: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E4FCC: .4byte 0x040000d4 _080E4FD0: .4byte gUnknown_081FAF4C _080E4FD4: .4byte gUnknown_02024E84 _080E4FD8: .4byte 0x80000400 thumb_func_end sub_80E4EF8 thumb_func_start unref_sub_80E4FDC unref_sub_80E4FDC: @ 80E4FDC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r4, [sp, 0x24] ldr r5, [sp, 0x28] mov r8, r5 ldr r5, [sp, 0x2C] ldr r6, [sp, 0x30] mov r9, r6 lsls r0, 24 lsrs r0, 24 mov r12, r0 lsls r1, 24 lsls r2, 24 lsls r3, 24 lsls r4, 24 lsrs r4, 24 mov r10, r4 mov r7, r8 lsls r7, 16 lsrs r6, r7, 16 lsls r5, 24 lsrs r5, 24 mov r0, r9 lsls r0, 24 mov r9, r0 ldr r4, _080E509C @ =0x040000d4 ldr r0, _080E50A0 @ =gUnknown_081FAF4C lsrs r2, 22 adds r2, r0 lsrs r3, 13 ldr r0, [r2] adds r0, r3 str r0, [r4] movs r0, 0xC0 lsls r0, 19 adds r6, r0 str r6, [r4, 0x4] ldr r0, _080E50A4 @ =0x80000400 str r0, [r4, 0x8] ldr r0, [r4, 0x8] adds r2, r7, 0 lsrs r2, 21 mov r6, r9 lsrs r6, 15 subs r4, r2, r6 lsrs r0, r1, 24 adds r1, r0, 0 adds r1, 0x8 cmp r0, r1 bge _080E508C mov r9, r1 mov r7, r12 lsls r7, 1 mov r8, r7 lsls r5, 11 str r5, [sp] _080E5054: mov r2, r12 adds r3, r2, 0 adds r3, 0x8 adds r5, r0, 0x1 cmp r2, r3 bge _080E5086 mov r1, r10 lsls r6, r1, 12 lsls r0, 6 movs r7, 0xC0 lsls r7, 19 adds r0, r7 ldr r1, [sp] adds r0, r1, r0 mov r7, r8 adds r1, r7, r0 subs r2, r3, r2 _080E5076: adds r0, r4, 0 orrs r0, r6 strh r0, [r1] adds r4, 0x1 adds r1, 0x2 subs r2, 0x1 cmp r2, 0 bne _080E5076 _080E5086: adds r0, r5, 0 cmp r0, r9 blt _080E5054 _080E508C: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E509C: .4byte 0x040000d4 _080E50A0: .4byte gUnknown_081FAF4C _080E50A4: .4byte 0x80000400 thumb_func_end unref_sub_80E4FDC thumb_func_start MovePlayerOnBike MovePlayerOnBike: @ 80E50A8 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r1, 16 lsrs r4, r1, 16 lsls r2, 16 lsrs r2, 16 ldr r0, _080E50CC @ =gPlayerAvatar ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080E50D0 adds r0, r3, 0 adds r1, r4, 0 bl MovePlayerOnMachBike b _080E50D8 .align 2, 0 _080E50CC: .4byte gPlayerAvatar _080E50D0: adds r0, r3, 0 adds r1, r4, 0 bl MovePlayerOnAcroBike _080E50D8: pop {r4} pop {r0} bx r0 thumb_func_end MovePlayerOnBike thumb_func_start MovePlayerOnMachBike MovePlayerOnMachBike: @ 80E50E0 push {r4,lr} sub sp, 0x4 mov r1, sp strb r0, [r1] ldr r4, _080E510C @ =gUnknown_083DB594 mov r0, sp bl CheckMovementInputMachBike lsls r0, 24 lsrs r0, 22 adds r0, r4 mov r1, sp ldrb r1, [r1] ldr r2, [r0] adds r0, r1, 0 bl _call_via_r2 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080E510C: .4byte gUnknown_083DB594 thumb_func_end MovePlayerOnMachBike thumb_func_start CheckMovementInputMachBike CheckMovementInputMachBike: @ 80E5110 push {r4,lr} adds r4, r0, 0 bl player_get_direction_upper_nybble lsls r0, 24 lsrs r0, 24 adds r3, r0, 0 ldrb r1, [r4] cmp r1, 0 bne _080E5138 strb r0, [r4] ldr r2, _080E5134 @ =gPlayerAvatar ldrb r0, [r2, 0xB] cmp r0, 0 bne _080E514C strb r1, [r2, 0x2] movs r0, 0 b _080E5160 .align 2, 0 _080E5134: .4byte gPlayerAvatar _080E5138: ldr r2, _080E5154 @ =gPlayerAvatar cmp r1, r3 beq _080E515C ldrb r0, [r2, 0x2] cmp r0, 0x2 beq _080E515C ldrb r0, [r2, 0xB] cmp r0, 0 beq _080E5158 strb r3, [r4] _080E514C: movs r0, 0x2 strb r0, [r2, 0x2] movs r0, 0x3 b _080E5160 .align 2, 0 _080E5154: .4byte gPlayerAvatar _080E5158: movs r0, 0x1 b _080E515E _080E515C: movs r0, 0x2 _080E515E: strb r0, [r2, 0x2] _080E5160: pop {r4} pop {r1} bx r1 thumb_func_end CheckMovementInputMachBike thumb_func_start sub_80E5168 sub_80E5168: @ 80E5168 push {lr} lsls r0, 24 lsrs r0, 24 bl PlayerFaceDirection bl sub_80E6024 pop {r0} bx r0 thumb_func_end sub_80E5168 thumb_func_start sub_80E517C sub_80E517C: @ 80E517C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080E51AC @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E51B0 @ =gMapObjects adds r4, r0, r1 ldrb r1, [r4, 0x1E] adds r0, r5, 0 bl sub_80E5E70 lsls r0, 24 cmp r0, 0 beq _080E51B4 adds r0, r5, 0 bl PlayerTurnInPlace bl sub_80E6024 b _080E51BE .align 2, 0 _080E51AC: .4byte gPlayerAvatar _080E51B0: .4byte gMapObjects _080E51B4: ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl sub_80E5168 _080E51BE: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80E517C thumb_func_start sub_80E51C4 sub_80E51C4: @ 80E51C4 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 adds r7, r5, 0 ldr r6, _080E51F8 @ =gPlayerAvatar ldrb r1, [r6, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E51FC @ =gMapObjects adds r4, r0, r1 ldrb r1, [r4, 0x1E] adds r0, r5, 0 bl sub_80E5E70 lsls r0, 24 cmp r0, 0 bne _080E520A ldrb r0, [r6, 0xB] cmp r0, 0 beq _080E5200 ldrb r0, [r4, 0x18] lsrs r0, 4 bl sub_80E5270 b _080E5266 .align 2, 0 _080E51F8: .4byte gPlayerAvatar _080E51FC: .4byte gMapObjects _080E5200: ldrb r0, [r4, 0x18] lsrs r0, 4 bl sub_80E5168 b _080E5266 _080E520A: adds r0, r5, 0 bl sub_80E5D34 lsls r0, 24 lsrs r4, r0, 24 movs r1, 0xFF lsls r1, 24 adds r0, r1 lsrs r0, 24 cmp r0, 0xA bhi _080E5242 cmp r4, 0x6 bne _080E522C adds r0, r5, 0 bl PlayerJumpLedge b _080E5266 _080E522C: bl sub_80E6024 subs r0, r4, 0x5 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bls _080E5266 adds r0, r5, 0 bl PlayerOnBikeCollide b _080E5266 _080E5242: ldr r1, _080E526C @ =gUnknown_083DB5A4 ldrb r0, [r6, 0xA] lsls r0, 2 adds r0, r1 ldr r1, [r0] adds r0, r7, 0 bl _call_via_r1 ldrb r2, [r6, 0xA] lsls r0, r2, 24 lsrs r1, r0, 24 lsrs r0, 25 adds r0, r2, r0 strb r0, [r6, 0xB] cmp r1, 0x1 bhi _080E5266 adds r0, r2, 0x1 strb r0, [r6, 0xA] _080E5266: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E526C: .4byte gUnknown_083DB5A4 thumb_func_end sub_80E51C4 thumb_func_start sub_80E5270 sub_80E5270: @ 80E5270 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 adds r7, r4, 0 ldr r6, _080E52A8 @ =gPlayerAvatar ldrb r0, [r6, 0xB] cmp r0, 0 beq _080E5286 subs r0, 0x1 strb r0, [r6, 0xB] strb r0, [r6, 0xA] _080E5286: adds r0, r4, 0 bl sub_80E5D34 lsls r0, 24 lsrs r5, r0, 24 movs r1, 0xFF lsls r1, 24 adds r0, r1 lsrs r0, 24 cmp r0, 0xA bhi _080E52C2 cmp r5, 0x6 bne _080E52AC adds r0, r4, 0 bl PlayerJumpLedge b _080E52D2 .align 2, 0 _080E52A8: .4byte gPlayerAvatar _080E52AC: bl sub_80E6024 subs r0, r5, 0x5 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bls _080E52D2 adds r0, r4, 0 bl PlayerOnBikeCollide b _080E52D2 _080E52C2: ldr r0, _080E52D8 @ =gUnknown_083DB5A4 ldrb r1, [r6, 0xA] lsls r1, 2 adds r1, r0 ldr r1, [r1] adds r0, r7, 0 bl _call_via_r1 _080E52D2: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E52D8: .4byte gUnknown_083DB5A4 thumb_func_end sub_80E5270 thumb_func_start MovePlayerOnAcroBike MovePlayerOnAcroBike: @ 80E52DC push {r4,lr} sub sp, 0x4 mov r3, sp strb r0, [r3] lsls r1, 16 lsrs r1, 16 lsls r2, 16 lsrs r2, 16 ldr r4, _080E5310 @ =gUnknown_083DB5B0 mov r0, sp bl CheckMovementInputAcroBike lsls r0, 24 lsrs r0, 22 adds r0, r4 mov r1, sp ldrb r1, [r1] ldr r2, [r0] adds r0, r1, 0 bl _call_via_r2 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080E5310: .4byte gUnknown_083DB5B0 thumb_func_end MovePlayerOnAcroBike thumb_func_start CheckMovementInputAcroBike CheckMovementInputAcroBike: @ 80E5314 push {r4,lr} lsls r1, 16 lsrs r1, 16 lsls r2, 16 lsrs r2, 16 ldr r4, _080E5338 @ =gUnknown_083DB5E4 ldr r3, _080E533C @ =gPlayerAvatar ldrb r3, [r3, 0x8] lsls r3, 2 adds r3, r4 ldr r3, [r3] bl _call_via_r3 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _080E5338: .4byte gUnknown_083DB5E4 _080E533C: .4byte gPlayerAvatar thumb_func_end CheckMovementInputAcroBike thumb_func_start CheckMovementInputAcroBikeNormal CheckMovementInputAcroBikeNormal: @ 80E5340 push {r4-r6,lr} adds r4, r0, 0 lsls r1, 16 lsrs r6, r1, 16 lsls r2, 16 lsrs r5, r2, 16 bl player_get_direction_upper_nybble lsls r0, 24 lsrs r3, r0, 24 ldr r2, _080E5374 @ =gPlayerAvatar movs r0, 0 strb r0, [r2, 0xA] ldrb r1, [r4] cmp r1, 0 bne _080E5380 movs r0, 0x2 ands r0, r6 cmp r0, 0 beq _080E5378 strb r3, [r4] strb r1, [r2, 0x2] movs r0, 0x2 strb r0, [r2, 0x8] movs r0, 0x3 b _080E53D4 .align 2, 0 _080E5374: .4byte gPlayerAvatar _080E5378: strb r3, [r4] strb r1, [r2, 0x2] movs r0, 0 b _080E53D4 _080E5380: cmp r1, r3 bne _080E53A6 movs r0, 0x2 ands r0, r5 cmp r0, 0 beq _080E539E ldrb r0, [r2, 0xB] cmp r0, 0 bne _080E539E adds r0, 0x1 strb r0, [r2, 0xB] movs r0, 0x4 strb r0, [r2, 0x8] movs r0, 0xB b _080E53D4 _080E539E: ldrb r0, [r4] ldr r2, _080E53CC @ =gPlayerAvatar cmp r0, r3 beq _080E53D0 _080E53A6: ldr r0, _080E53CC @ =gPlayerAvatar ldrb r1, [r0, 0x2] adds r2, r0, 0 cmp r1, 0x2 beq _080E53D0 movs r1, 0 movs r0, 0x1 strb r0, [r2, 0x8] ldrb r0, [r4] strb r0, [r2, 0x9] strb r1, [r2, 0x2] adds r0, r4, 0 adds r1, r6, 0 adds r2, r5, 0 bl CheckMovementInputAcroBike lsls r0, 24 lsrs r0, 24 b _080E53D4 .align 2, 0 _080E53CC: .4byte gPlayerAvatar _080E53D0: movs r0, 0x2 strb r0, [r2, 0x2] _080E53D4: pop {r4-r6} pop {r1} bx r1 thumb_func_end CheckMovementInputAcroBikeNormal thumb_func_start CheckMovementInputAcroBikeChangingDirection CheckMovementInputAcroBikeChangingDirection: @ 80E53DC push {r4-r6,lr} adds r5, r0, 0 ldr r4, _080E5404 @ =gPlayerAvatar ldrb r0, [r4, 0x9] strb r0, [r5] ldrb r0, [r4, 0xA] adds r0, 0x1 strb r0, [r4, 0xA] lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 bls _080E5408 movs r0, 0x1 strb r0, [r4, 0x2] movs r0, 0 strb r0, [r4, 0x8] bl sub_80E6024 movs r0, 0x1 b _080E544E .align 2, 0 _080E5404: .4byte gPlayerAvatar _080E5408: bl player_get_direction_upper_nybble lsls r0, 24 lsrs r6, r0, 24 bl sub_80E5C2C ldrb r1, [r5] lsls r0, 24 lsrs r0, 24 cmp r1, r0 bne _080E544A bl sub_80E6024 movs r0, 0x1 strb r0, [r4, 0xB] adds r0, r6, 0 bl GetOppositeDirection ldrb r1, [r5] lsls r0, 24 lsrs r0, 24 cmp r1, r0 bne _080E543E movs r0, 0x6 strb r0, [r4, 0x8] movs r0, 0x9 b _080E544E _080E543E: movs r0, 0x2 strb r0, [r4, 0x2] movs r0, 0x5 strb r0, [r4, 0x8] movs r0, 0x8 b _080E544E _080E544A: strb r6, [r5] movs r0, 0 _080E544E: pop {r4-r6} pop {r1} bx r1 thumb_func_end CheckMovementInputAcroBikeChangingDirection thumb_func_start CheckMovementInputAcroBikeStandingWheelie CheckMovementInputAcroBikeStandingWheelie: @ 80E5454 push {r4-r7,lr} adds r7, r0, 0 lsls r4, r2, 16 lsrs r4, 16 bl player_get_direction_upper_nybble lsls r0, 24 lsrs r6, r0, 24 ldr r5, _080E54A0 @ =gPlayerAvatar ldrb r1, [r5, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E54A4 @ =gMapObjects adds r1, r0, r1 movs r0, 0 strb r0, [r5, 0x2] movs r0, 0x2 ands r4, r0 lsls r4, 16 lsrs r4, 16 cmp r4, 0 bne _080E54A8 strb r4, [r5, 0xA] ldrb r0, [r1, 0x1E] bl MetatileBehavior_IsBumpySlope lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080E54AE strb r6, [r7] strb r0, [r5, 0x8] bl sub_80E6024 movs r0, 0x4 b _080E54EC .align 2, 0 _080E54A0: .4byte gPlayerAvatar _080E54A4: .4byte gMapObjects _080E54A8: ldrb r0, [r5, 0xA] adds r0, 0x1 strb r0, [r5, 0xA] _080E54AE: ldr r1, _080E54C4 @ =gPlayerAvatar ldrb r0, [r1, 0xA] cmp r0, 0x27 bls _080E54C8 strb r6, [r7] movs r0, 0x3 strb r0, [r1, 0x8] bl sub_80E6024 movs r0, 0x6 b _080E54EC .align 2, 0 _080E54C4: .4byte gPlayerAvatar _080E54C8: ldrb r0, [r7] cmp r0, r6 bne _080E54DE movs r0, 0x2 strb r0, [r1, 0x2] movs r0, 0x4 strb r0, [r1, 0x8] bl sub_80E6024 movs r0, 0xA b _080E54EC _080E54DE: cmp r0, 0 beq _080E54E8 movs r0, 0x1 strb r0, [r1, 0x2] b _080E54EA _080E54E8: strb r6, [r7] _080E54EA: movs r0, 0x5 _080E54EC: pop {r4-r7} pop {r1} bx r1 thumb_func_end CheckMovementInputAcroBikeStandingWheelie thumb_func_start CheckMovementInputAcroBikeBunnyHop CheckMovementInputAcroBikeBunnyHop: @ 80E54F4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r6, r0, 0 lsls r1, 16 lsrs r1, 16 mov r9, r1 lsls r2, 16 lsrs r2, 16 mov r8, r2 bl player_get_direction_upper_nybble lsls r0, 24 lsrs r5, r0, 24 adds r2, r5, 0 ldr r4, _080E5554 @ =gPlayerAvatar ldrb r1, [r4, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E5558 @ =gMapObjects adds r7, r0, r1 movs r0, 0x2 mov r1, r8 ands r0, r1 cmp r0, 0 bne _080E5566 bl sub_80E6024 ldrb r0, [r7, 0x1E] bl MetatileBehavior_IsBumpySlope lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080E555C movs r0, 0x2 strb r0, [r4, 0x8] adds r0, r6, 0 mov r1, r9 mov r2, r8 bl CheckMovementInputAcroBike lsls r0, 24 lsrs r0, 24 b _080E558A .align 2, 0 _080E5554: .4byte gPlayerAvatar _080E5558: .4byte gMapObjects _080E555C: strb r5, [r6] strb r0, [r4, 0x2] strb r0, [r4, 0x8] movs r0, 0x4 b _080E558A _080E5566: ldrb r0, [r6] cmp r0, 0 bne _080E5570 strb r5, [r6] b _080E557C _080E5570: cmp r0, r2 beq _080E5582 ldrb r0, [r4, 0x2] cmp r0, 0x2 beq _080E5582 movs r0, 0x1 _080E557C: strb r0, [r4, 0x2] movs r0, 0x6 b _080E558A _080E5582: ldr r1, _080E5598 @ =gPlayerAvatar movs r0, 0x2 strb r0, [r1, 0x2] movs r0, 0x7 _080E558A: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080E5598: .4byte gPlayerAvatar thumb_func_end CheckMovementInputAcroBikeBunnyHop thumb_func_start CheckMovementInputAcroBikeMovingWheelie CheckMovementInputAcroBikeMovingWheelie: @ 80E559C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r6, r0, 0 lsls r1, 16 lsrs r1, 16 mov r10, r1 lsls r2, 16 lsrs r2, 16 mov r8, r2 bl player_get_direction_lower_nybble lsls r0, 24 lsrs r5, r0, 24 adds r2, r5, 0 ldr r4, _080E55F8 @ =gPlayerAvatar ldrb r1, [r4, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E55FC @ =gMapObjects adds r7, r0, r1 movs r0, 0x2 mov r9, r0 movs r0, 0x2 mov r1, r8 ands r0, r1 cmp r0, 0 bne _080E5634 bl sub_80E6024 ldrb r0, [r7, 0x1E] bl MetatileBehavior_IsBumpySlope lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _080E5620 strb r1, [r4, 0x8] ldrb r0, [r6] cmp r0, 0 bne _080E5600 strb r5, [r6] b _080E560A .align 2, 0 _080E55F8: .4byte gPlayerAvatar _080E55FC: .4byte gMapObjects _080E5600: cmp r0, r5 beq _080E5610 ldrb r0, [r4, 0x2] cmp r0, 0x2 beq _080E5610 _080E560A: strb r1, [r4, 0x2] movs r0, 0x4 b _080E5664 _080E5610: ldr r1, _080E561C @ =gPlayerAvatar movs r0, 0x2 strb r0, [r1, 0x2] movs r0, 0xC b _080E5664 .align 2, 0 _080E561C: .4byte gPlayerAvatar _080E5620: mov r0, r9 strb r0, [r4, 0x8] adds r0, r6, 0 mov r1, r10 mov r2, r8 bl CheckMovementInputAcroBike lsls r0, 24 lsrs r0, 24 b _080E5664 _080E5634: ldrb r0, [r6] cmp r0, 0 bne _080E564A strb r5, [r6] mov r1, r9 strb r1, [r4, 0x8] strb r0, [r4, 0x2] bl sub_80E6024 movs r0, 0x5 b _080E5664 _080E564A: cmp r2, r0 beq _080E565C ldrb r0, [r4, 0x2] cmp r0, 0x2 beq _080E565C movs r0, 0 strb r0, [r4, 0x2] movs r0, 0x5 b _080E5664 _080E565C: ldr r1, _080E5674 @ =gPlayerAvatar movs r0, 0x2 strb r0, [r1, 0x2] movs r0, 0xA _080E5664: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080E5674: .4byte gPlayerAvatar thumb_func_end CheckMovementInputAcroBikeMovingWheelie thumb_func_start CheckMovementInputAcroBikeUnknownMode5 CheckMovementInputAcroBikeUnknownMode5: @ 80E5678 push {r4-r6,lr} mov r6, r8 push {r6} mov r8, r0 adds r4, r1, 0 adds r5, r2, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 ldr r6, _080E56CC @ =gPlayerAvatar ldrb r1, [r6, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E56D0 @ =gMapObjects adds r0, r1 ldrb r2, [r0, 0x1] movs r1, 0x3 negs r1, r1 ands r1, r2 strb r1, [r0, 0x1] ldrb r1, [r0, 0x18] lsls r1, 28 lsrs r1, 28 bl FieldObjectSetDirection movs r0, 0 strb r0, [r6, 0x8] mov r0, r8 adds r1, r4, 0 adds r2, r5, 0 bl CheckMovementInputAcroBike lsls r0, 24 lsrs r0, 24 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080E56CC: .4byte gPlayerAvatar _080E56D0: .4byte gMapObjects thumb_func_end CheckMovementInputAcroBikeUnknownMode5 thumb_func_start CheckMovementInputAcroBikeUnknownMode6 CheckMovementInputAcroBikeUnknownMode6: @ 80E56D4 push {r4,lr} lsls r1, 16 lsrs r1, 16 lsls r2, 16 lsrs r2, 16 ldr r4, _080E56F4 @ =gPlayerAvatar movs r3, 0 strb r3, [r4, 0x8] bl CheckMovementInputAcroBike lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _080E56F4: .4byte gPlayerAvatar thumb_func_end CheckMovementInputAcroBikeUnknownMode6 thumb_func_start sub_80E56F8 sub_80E56F8: @ 80E56F8 push {lr} lsls r0, 24 lsrs r0, 24 bl PlayerFaceDirection pop {r0} bx r0 thumb_func_end sub_80E56F8 thumb_func_start sub_80E5708 sub_80E5708: @ 80E5708 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080E573C @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E5740 @ =gMapObjects adds r5, r0, r1 ldrb r1, [r5, 0x1E] adds r0, r4, 0 bl sub_80E5E70 lsls r0, 24 cmp r0, 0 bne _080E572E ldrb r0, [r5, 0x18] lsrs r4, r0, 4 _080E572E: adds r0, r4, 0 bl PlayerFaceDirection pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E573C: .4byte gPlayerAvatar _080E5740: .4byte gMapObjects thumb_func_end sub_80E5708 thumb_func_start sub_80E5744 sub_80E5744: @ 80E5744 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 ldr r0, _080E5774 @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E5778 @ =gMapObjects adds r5, r0, r1 ldrb r1, [r5, 0x1E] adds r0, r4, 0 bl sub_80E5E70 lsls r0, 24 cmp r0, 0 bne _080E577C ldrb r0, [r5, 0x18] lsrs r0, 4 bl sub_80E56F8 b _080E57B6 .align 2, 0 _080E5774: .4byte gPlayerAvatar _080E5778: .4byte gMapObjects _080E577C: adds r0, r4, 0 bl sub_80E5D34 lsls r0, 24 lsrs r1, r0, 24 movs r2, 0xFF lsls r2, 24 adds r0, r2 lsrs r0, 24 cmp r0, 0xA bhi _080E57B0 cmp r1, 0x6 bne _080E579E adds r0, r4, 0 bl PlayerJumpLedge b _080E57B6 _080E579E: subs r0, r1, 0x5 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bls _080E57B6 adds r0, r4, 0 bl PlayerOnBikeCollide b _080E57B6 _080E57B0: adds r0, r6, 0 bl npc_use_some_d2s _080E57B6: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80E5744 thumb_func_start sub_80E57BC sub_80E57BC: @ 80E57BC push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080E57F0 @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E57F4 @ =gMapObjects adds r5, r0, r1 ldrb r1, [r5, 0x1E] adds r0, r4, 0 bl sub_80E5E70 lsls r0, 24 cmp r0, 0 bne _080E57E2 ldrb r0, [r5, 0x18] lsrs r4, r0, 4 _080E57E2: adds r0, r4, 0 bl sub_805951C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E57F0: .4byte gPlayerAvatar _080E57F4: .4byte gMapObjects thumb_func_end sub_80E57BC thumb_func_start sub_80E57F8 sub_80E57F8: @ 80E57F8 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080E582C @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E5830 @ =gMapObjects adds r5, r0, r1 ldrb r1, [r5, 0x1E] adds r0, r4, 0 bl sub_80E5E70 lsls r0, 24 cmp r0, 0 bne _080E581E ldrb r0, [r5, 0x18] lsrs r4, r0, 4 _080E581E: adds r0, r4, 0 bl sub_8059534 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E582C: .4byte gPlayerAvatar _080E5830: .4byte gMapObjects thumb_func_end sub_80E57F8 thumb_func_start sub_80E5834 sub_80E5834: @ 80E5834 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080E5868 @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E586C @ =gMapObjects adds r5, r0, r1 ldrb r1, [r5, 0x1E] adds r0, r4, 0 bl sub_80E5E70 lsls r0, 24 cmp r0, 0 bne _080E585A ldrb r0, [r5, 0x18] lsrs r4, r0, 4 _080E585A: adds r0, r4, 0 bl sub_8059504 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E5868: .4byte gPlayerAvatar _080E586C: .4byte gMapObjects thumb_func_end sub_80E5834 thumb_func_start sub_80E5870 sub_80E5870: @ 80E5870 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080E58A4 @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E58A8 @ =gMapObjects adds r5, r0, r1 ldrb r1, [r5, 0x1E] adds r0, r4, 0 bl sub_80E5E70 lsls r0, 24 cmp r0, 0 bne _080E5896 ldrb r0, [r5, 0x18] lsrs r4, r0, 4 _080E5896: adds r0, r4, 0 bl sub_805954C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E58A4: .4byte gPlayerAvatar _080E58A8: .4byte gMapObjects thumb_func_end sub_80E5870 thumb_func_start sub_80E58AC sub_80E58AC: @ 80E58AC push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080E58D8 @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E58DC @ =gMapObjects adds r5, r0, r1 ldrb r1, [r5, 0x1E] adds r0, r4, 0 bl sub_80E5E70 lsls r0, 24 cmp r0, 0 bne _080E58E0 ldrb r0, [r5, 0x18] lsrs r0, 4 bl sub_80E5870 b _080E591A .align 2, 0 _080E58D8: .4byte gPlayerAvatar _080E58DC: .4byte gMapObjects _080E58E0: adds r0, r4, 0 bl sub_80E5D34 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _080E5914 cmp r1, 0x9 beq _080E5914 cmp r1, 0x6 bne _080E58FE adds r0, r4, 0 bl sub_8059594 b _080E591A _080E58FE: subs r0, r1, 0x5 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bls _080E591A cmp r1, 0xB bhi _080E5914 adds r0, r4, 0 bl sub_80E5870 b _080E591A _080E5914: adds r0, r4, 0 bl sub_8059570 _080E591A: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80E58AC thumb_func_start sub_80E5920 sub_80E5920: @ 80E5920 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 bl sub_80E5D34 lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0 beq _080E5954 cmp r0, 0x7 beq _080E5980 cmp r0, 0x9 bls _080E594C adds r0, r1, 0 adds r1, r5, 0 bl sub_80E5EC0 lsls r0, 24 cmp r0, 0 bne _080E5954 _080E594C: adds r0, r5, 0 bl sub_80E5708 b _080E5980 _080E5954: ldr r0, _080E5988 @ =gPlayerAvatar ldrb r0, [r0, 0x5] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _080E598C @ =gMapObjects adds r4, r0 movs r0, 0x22 bl PlaySE ldrb r0, [r4, 0x1] movs r1, 0x2 orrs r0, r1 strb r0, [r4, 0x1] adds r0, r5, 0 bl sub_80608A4 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl player_npc_set_state_and_x22_etc _080E5980: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E5988: .4byte gPlayerAvatar _080E598C: .4byte gMapObjects thumb_func_end sub_80E5920 thumb_func_start sub_80E5990 sub_80E5990: @ 80E5990 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_80595B8 pop {r0} bx r0 thumb_func_end sub_80E5990 thumb_func_start sub_80E59A0 sub_80E59A0: @ 80E59A0 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 ldr r7, _080E59D0 @ =gPlayerAvatar ldrb r1, [r7, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E59D4 @ =gMapObjects adds r5, r0, r1 ldrb r1, [r5, 0x1E] adds r0, r4, 0 bl sub_80E5E70 lsls r0, 24 cmp r0, 0 bne _080E59D8 ldrb r0, [r5, 0x18] lsrs r0, 4 bl sub_8059504 b _080E5A28 .align 2, 0 _080E59D0: .4byte gPlayerAvatar _080E59D4: .4byte gMapObjects _080E59D8: adds r0, r4, 0 bl sub_80E5D34 lsls r0, 24 lsrs r1, r0, 24 movs r2, 0xFF lsls r2, 24 adds r0, r2 lsrs r0, 24 cmp r0, 0xA bhi _080E5A1E cmp r1, 0x6 bne _080E59FA adds r0, r4, 0 bl sub_8059594 b _080E5A28 _080E59FA: cmp r1, 0x9 beq _080E5A0E cmp r1, 0x4 bhi _080E5A28 ldrb r0, [r5, 0x1E] bl MetatileBehavior_IsBumpySlope lsls r0, 24 cmp r0, 0 beq _080E5A16 _080E5A0E: adds r0, r4, 0 bl sub_8059504 b _080E5A28 _080E5A16: adds r0, r4, 0 bl sub_80595DC b _080E5A28 _080E5A1E: adds r0, r6, 0 bl sub_8059618 movs r0, 0x2 strb r0, [r7, 0x2] _080E5A28: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80E59A0 thumb_func_start sub_80E5A30 sub_80E5A30: @ 80E5A30 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 ldr r7, _080E5A60 @ =gPlayerAvatar ldrb r1, [r7, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E5A64 @ =gMapObjects adds r5, r0, r1 ldrb r1, [r5, 0x1E] adds r0, r4, 0 bl sub_80E5E70 lsls r0, 24 cmp r0, 0 bne _080E5A68 ldrb r0, [r5, 0x18] lsrs r0, 4 bl sub_805951C b _080E5AB8 .align 2, 0 _080E5A60: .4byte gPlayerAvatar _080E5A64: .4byte gMapObjects _080E5A68: adds r0, r4, 0 bl sub_80E5D34 lsls r0, 24 lsrs r1, r0, 24 movs r2, 0xFF lsls r2, 24 adds r0, r2 lsrs r0, 24 cmp r0, 0xA bhi _080E5AAE cmp r1, 0x6 bne _080E5A8A adds r0, r4, 0 bl sub_8059594 b _080E5AB8 _080E5A8A: cmp r1, 0x9 beq _080E5A9E cmp r1, 0x4 bhi _080E5AB8 ldrb r0, [r5, 0x1E] bl MetatileBehavior_IsBumpySlope lsls r0, 24 cmp r0, 0 beq _080E5AA6 _080E5A9E: adds r0, r4, 0 bl sub_8059504 b _080E5AB8 _080E5AA6: adds r0, r4, 0 bl sub_80595DC b _080E5AB8 _080E5AAE: adds r0, r6, 0 bl sub_8059600 movs r0, 0x2 strb r0, [r7, 0x2] _080E5AB8: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80E5A30 thumb_func_start sub_80E5AC0 sub_80E5AC0: @ 80E5AC0 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 ldr r0, _080E5AF0 @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E5AF4 @ =gMapObjects adds r5, r0, r1 ldrb r1, [r5, 0x1E] adds r0, r4, 0 bl sub_80E5E70 lsls r0, 24 cmp r0, 0 bne _080E5AF8 ldrb r0, [r5, 0x18] lsrs r0, 4 bl sub_8059534 b _080E5B32 .align 2, 0 _080E5AF0: .4byte gPlayerAvatar _080E5AF4: .4byte gMapObjects _080E5AF8: adds r0, r4, 0 bl sub_80E5D34 lsls r0, 24 lsrs r1, r0, 24 movs r2, 0xFF lsls r2, 24 adds r0, r2 lsrs r0, 24 cmp r0, 0xA bhi _080E5B2C cmp r1, 0x6 bne _080E5B1A adds r0, r4, 0 bl PlayerJumpLedge b _080E5B32 _080E5B1A: subs r0, r1, 0x5 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bls _080E5B32 adds r0, r4, 0 bl sub_8059534 b _080E5B32 _080E5B2C: adds r0, r6, 0 bl sub_8059630 _080E5B32: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80E5AC0 thumb_func_start sub_80E5B38 sub_80E5B38: @ 80E5B38 push {lr} lsls r0, 16 lsrs r3, r0, 16 lsls r1, 16 lsrs r2, r1, 16 ldr r0, _080E5B5C @ =gPlayerAvatar ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080E5B56 adds r0, r3, 0 adds r1, r2, 0 bl sub_80E5B60 _080E5B56: pop {r0} bx r0 .align 2, 0 _080E5B5C: .4byte gPlayerAvatar thumb_func_end sub_80E5B38 thumb_func_start sub_80E5B60 sub_80E5B60: @ 80E5B60 push {r4,r5,lr} lsls r1, 16 lsrs r5, r1, 16 adds r0, r5, 0 bl sub_80E5CF4 lsls r0, 24 lsrs r2, r0, 24 ldr r4, _080E5B88 @ =gPlayerAvatar ldr r0, [r4, 0xC] movs r1, 0xF ands r0, r1 cmp r2, r0 bne _080E5B8C ldrb r0, [r4, 0x14] cmp r0, 0xFE bhi _080E5B96 adds r0, 0x1 strb r0, [r4, 0x14] b _080E5B96 .align 2, 0 _080E5B88: .4byte gPlayerAvatar _080E5B8C: adds r0, r2, 0 bl sub_80E5C7C movs r0, 0 strb r0, [r4, 0xB] _080E5B96: movs r0, 0xF adds r2, r5, 0 ands r2, r0 ldr r4, _080E5BB4 @ =gPlayerAvatar ldr r0, [r4, 0x10] movs r1, 0xF ands r0, r1 cmp r2, r0 bne _080E5BB8 ldrb r0, [r4, 0x1C] cmp r0, 0xFE bhi _080E5BC2 adds r0, 0x1 strb r0, [r4, 0x1C] b _080E5BC2 .align 2, 0 _080E5BB4: .4byte gPlayerAvatar _080E5BB8: adds r0, r2, 0 bl sub_80E5CB8 movs r0, 0 strb r0, [r4, 0xB] _080E5BC2: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80E5B60 thumb_func_start sub_80E5BC8 sub_80E5BC8: @ 80E5BC8 push {r4,r5,lr} adds r3, r0, 0 adds r4, r1, 0 movs r2, 0 ldrb r0, [r3] cmp r0, 0 beq _080E5BF2 ldr r5, _080E5C0C @ =gUnknown_0202E86C _080E5BD8: adds r0, r2, r5 adds r1, r3, r2 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bhi _080E5C08 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 adds r0, r3, r2 ldrb r0, [r0] cmp r0, 0 bne _080E5BD8 _080E5BF2: movs r2, 0 ldrb r0, [r4] cmp r0, 0 beq _080E5C22 ldr r3, _080E5C10 @ =gUnknown_0202E874 _080E5BFC: adds r0, r2, r3 adds r1, r4, r2 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bls _080E5C14 _080E5C08: movs r0, 0 b _080E5C24 .align 2, 0 _080E5C0C: .4byte gUnknown_0202E86C _080E5C10: .4byte gUnknown_0202E874 _080E5C14: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 adds r0, r4, r2 ldrb r0, [r0] cmp r0, 0 bne _080E5BFC _080E5C22: movs r0, 0x1 _080E5C24: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80E5BC8 thumb_func_start sub_80E5C2C sub_80E5C2C: @ 80E5C2C push {r4-r6,lr} movs r6, 0 movs r5, 0 _080E5C32: ldr r0, _080E5C64 @ =gUnknown_083DB608 adds r4, r5, r0 ldr r0, _080E5C68 @ =gPlayerAvatar ldr r1, [r0, 0xC] ldr r2, [r0, 0x10] ldr r0, [r4, 0x8] ands r1, r0 ldr r0, [r4, 0xC] ands r2, r0 ldr r0, [r4] cmp r1, r0 bne _080E5C6C ldr r0, [r4, 0x4] cmp r2, r0 bne _080E5C6C ldr r0, [r4, 0x10] ldr r1, [r4, 0x14] bl sub_80E5BC8 lsls r0, 24 cmp r0, 0 beq _080E5C6C ldrb r0, [r4, 0x18] b _080E5C76 .align 2, 0 _080E5C64: .4byte gUnknown_083DB608 _080E5C68: .4byte gPlayerAvatar _080E5C6C: adds r5, 0x1C adds r6, 0x1 cmp r6, 0x3 bls _080E5C32 movs r0, 0 _080E5C76: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80E5C2C thumb_func_start sub_80E5C7C sub_80E5C7C: @ 80E5C7C push {r4,lr} lsls r0, 24 ldr r3, _080E5CB4 @ =gPlayerAvatar ldr r2, [r3, 0xC] lsls r2, 4 movs r1, 0xF0 lsls r1, 20 ands r1, r0 lsrs r1, 24 orrs r2, r1 str r2, [r3, 0xC] movs r1, 0x7 adds r4, r3, 0 adds r3, 0x14 _080E5C98: adds r2, r1, r3 subs r1, 0x1 adds r0, r1, r3 ldrb r0, [r0] strb r0, [r2] lsls r1, 24 lsrs r1, 24 cmp r1, 0 bne _080E5C98 movs r0, 0x1 strb r0, [r4, 0x14] pop {r4} pop {r0} bx r0 .align 2, 0 _080E5CB4: .4byte gPlayerAvatar thumb_func_end sub_80E5C7C thumb_func_start sub_80E5CB8 sub_80E5CB8: @ 80E5CB8 push {r4,lr} lsls r0, 24 ldr r3, _080E5CF0 @ =gPlayerAvatar ldr r2, [r3, 0x10] lsls r2, 4 movs r1, 0xF0 lsls r1, 20 ands r1, r0 lsrs r1, 24 orrs r2, r1 str r2, [r3, 0x10] movs r1, 0x7 adds r4, r3, 0 adds r3, 0x1C _080E5CD4: adds r2, r1, r3 subs r1, 0x1 adds r0, r1, r3 ldrb r0, [r0] strb r0, [r2] lsls r1, 24 lsrs r1, 24 cmp r1, 0 bne _080E5CD4 movs r0, 0x1 strb r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080E5CF0: .4byte gPlayerAvatar thumb_func_end sub_80E5CB8 thumb_func_start sub_80E5CF4 sub_80E5CF4: @ 80E5CF4 push {lr} lsls r0, 16 lsrs r1, r0, 16 adds r2, r1, 0 movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080E5D08 movs r0, 0x2 b _080E5D2E _080E5D08: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080E5D14 movs r0, 0x1 b _080E5D2E _080E5D14: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080E5D20 movs r0, 0x3 b _080E5D2E _080E5D20: movs r0, 0x10 ands r2, r0 cmp r2, 0 bne _080E5D2C movs r0, 0 b _080E5D2E _080E5D2C: movs r0, 0x4 _080E5D2E: pop {r1} bx r1 thumb_func_end sub_80E5CF4 thumb_func_start sub_80E5D34 sub_80E5D34: @ 80E5D34 push {r4-r6,lr} sub sp, 0x8 adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 ldr r0, _080E5D98 @ =gPlayerAvatar ldrb r0, [r0, 0x5] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _080E5D9C @ =gMapObjects adds r4, r0 ldrh r1, [r4, 0x10] add r0, sp, 0x4 strh r1, [r0] ldrh r0, [r4, 0x12] mov r5, sp adds r5, 0x6 strh r0, [r5] adds r0, r6, 0 add r1, sp, 0x4 adds r2, r5, 0 bl MoveCoords add r0, sp, 0x4 movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r5, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 add r1, sp, 0x4 movs r3, 0 ldrsh r1, [r1, r3] movs r3, 0 ldrsh r2, [r5, r3] str r0, [sp] adds r0, r4, 0 adds r3, r6, 0 bl sub_80E5DA0 lsls r0, 24 lsrs r0, 24 add sp, 0x8 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080E5D98: .4byte gPlayerAvatar _080E5D9C: .4byte gMapObjects thumb_func_end sub_80E5D34 thumb_func_start sub_80E5DA0 sub_80E5DA0: @ 80E5DA0 push {r4,r5,lr} sub sp, 0x4 ldr r4, [sp, 0x10] lsls r3, 24 lsrs r3, 24 lsls r4, 24 lsrs r4, 24 adds r5, r4, 0 lsls r1, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 str r5, [sp] bl CheckForFieldObjectCollision lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 bhi _080E5DE0 cmp r4, 0 bne _080E5DDC adds r0, r5, 0 bl IsRunningDisallowedByMetatile lsls r0, 24 cmp r0, 0 beq _080E5DD8 movs r4, 0x2 _080E5DD8: cmp r4, 0 beq _080E5DE0 _080E5DDC: bl sub_80E5E4C _080E5DE0: adds r0, r4, 0 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80E5DA0 thumb_func_start sub_80E5DEC sub_80E5DEC: @ 80E5DEC push {lr} lsls r0, 24 lsrs r0, 24 bl IsRunningDisallowedByMetatile lsls r0, 24 cmp r0, 0 bne _080E5E04 ldr r0, _080E5E08 @ =gMapHeader ldrb r0, [r0, 0x17] cmp r0, 0x8 bne _080E5E0C _080E5E04: movs r0, 0x1 b _080E5E0E .align 2, 0 _080E5E08: .4byte gMapHeader _080E5E0C: movs r0, 0 _080E5E0E: pop {r1} bx r1 thumb_func_end sub_80E5DEC thumb_func_start IsRunningDisallowedByMetatile IsRunningDisallowedByMetatile: @ 80E5E14 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl MetatileBehavior_IsRunningDisallowed lsls r0, 24 cmp r0, 0 bne _080E5E3E adds r0, r4, 0 bl MetatileBehavior_IsFortreeBridge lsls r0, 24 cmp r0, 0 beq _080E5E42 bl PlayerGetZCoord movs r1, 0x1 ands r1, r0 cmp r1, 0 bne _080E5E42 _080E5E3E: movs r0, 0x1 b _080E5E44 _080E5E42: movs r0, 0 _080E5E44: pop {r4} pop {r1} bx r1 thumb_func_end IsRunningDisallowedByMetatile thumb_func_start sub_80E5E4C sub_80E5E4C: @ 80E5E4C push {lr} ldr r0, _080E5E68 @ =gUnknown_02039250 ldrb r0, [r0] cmp r0, 0 beq _080E5E62 ldr r1, _080E5E6C @ =gUnknown_02039251 ldrb r0, [r1] cmp r0, 0x63 bhi _080E5E62 adds r0, 0x1 strb r0, [r1] _080E5E62: pop {r0} bx r0 .align 2, 0 _080E5E68: .4byte gUnknown_02039250 _080E5E6C: .4byte gUnknown_02039251 thumb_func_end sub_80E5E4C thumb_func_start sub_80E5E70 sub_80E5E70: @ 80E5E70 push {r4,r5,lr} lsls r0, 24 lsls r1, 24 lsrs r4, r1, 24 adds r5, r4, 0 movs r1, 0xFD lsls r1, 24 adds r0, r1 lsrs r0, 24 cmp r0, 0x1 bhi _080E5E9A adds r0, r4, 0 bl MetatileBehavior_IsIsolatedVerticalRail lsls r0, 24 cmp r0, 0 bne _080E5EB2 adds r0, r4, 0 bl MetatileBehavior_IsVerticalRail b _080E5EAC _080E5E9A: adds r0, r5, 0 bl MetatileBehavior_IsIsolatedHorizontalRail lsls r0, 24 cmp r0, 0 bne _080E5EB2 adds r0, r5, 0 bl MetatileBehavior_IsHorizontalRail _080E5EAC: lsls r0, 24 cmp r0, 0 beq _080E5EB6 _080E5EB2: movs r0, 0 b _080E5EB8 _080E5EB6: movs r0, 0x1 _080E5EB8: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80E5E70 thumb_func_start sub_80E5EC0 sub_80E5EC0: @ 80E5EC0 push {lr} lsls r0, 24 lsrs r0, 24 adds r2, r0, 0 lsls r1, 24 movs r3, 0xFF lsls r3, 24 adds r1, r3 lsrs r1, 24 cmp r1, 0x1 bhi _080E5EE0 cmp r0, 0xA beq _080E5EE8 cmp r0, 0xC bne _080E5EEC b _080E5EE8 _080E5EE0: cmp r2, 0xB beq _080E5EE8 cmp r2, 0xD bne _080E5EEC _080E5EE8: movs r0, 0 b _080E5EEE _080E5EEC: movs r0, 0x1 _080E5EEE: pop {r1} bx r1 thumb_func_end sub_80E5EC0 thumb_func_start sub_80E5EF4 sub_80E5EF4: @ 80E5EF4 push {r4,lr} sub sp, 0x4 ldr r0, _080E5F30 @ =gPlayerAvatar ldrb r1, [r0] movs r0, 0x18 ands r0, r1 cmp r0, 0 bne _080E5F34 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl PlayerGetDestCoords mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl IsRunningDisallowedByMetatile lsls r0, 24 cmp r0, 0 bne _080E5F34 movs r0, 0 b _080E5F36 .align 2, 0 _080E5F30: .4byte gPlayerAvatar _080E5F34: movs r0, 0x1 _080E5F36: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_80E5EF4 thumb_func_start player_should_look_direction_be_enforced_upon_movement player_should_look_direction_be_enforced_upon_movement: @ 80E5F40 push {lr} movs r0, 0x4 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 beq _080E5F74 ldr r2, _080E5F6C @ =gMapObjects ldr r0, _080E5F70 @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1E] bl MetatileBehavior_IsBumpySlope lsls r0, 24 cmp r0, 0 beq _080E5F74 movs r0, 0 b _080E5F76 .align 2, 0 _080E5F6C: .4byte gMapObjects _080E5F70: .4byte gPlayerAvatar _080E5F74: movs r0, 0x1 _080E5F76: pop {r1} bx r1 thumb_func_end player_should_look_direction_be_enforced_upon_movement thumb_func_start GetOnOffBike GetOnOffBike: @ 80E5F7C push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080E5FA4 @ =gUnknown_0202E854 movs r0, 0 strb r0, [r1] ldr r0, _080E5FA8 @ =gPlayerAvatar ldrb r1, [r0] movs r0, 0x6 ands r0, r1 cmp r0, 0 beq _080E5FAC movs r0, 0x1 bl SetPlayerAvatarTransitionFlags bl sav1_reset_battle_music_maybe bl sub_8053E90 b _080E5FC0 .align 2, 0 _080E5FA4: .4byte gUnknown_0202E854 _080E5FA8: .4byte gPlayerAvatar _080E5FAC: adds r0, r2, 0 bl SetPlayerAvatarTransitionFlags ldr r4, _080E5FC8 @ =0x00000193 adds r0, r4, 0 bl sav1_set_battle_music_maybe adds r0, r4, 0 bl sub_8053FB0 _080E5FC0: pop {r4} pop {r0} bx r0 .align 2, 0 _080E5FC8: .4byte 0x00000193 thumb_func_end GetOnOffBike thumb_func_start sub_80E5FCC sub_80E5FCC: @ 80E5FCC push {lr} ldr r2, _080E6008 @ =gPlayerAvatar movs r3, 0 strb r3, [r2, 0x8] strb r3, [r2, 0x9] strb r3, [r2, 0xA] strb r3, [r2, 0xB] str r0, [r2, 0xC] str r1, [r2, 0x10] movs r1, 0 adds r2, 0x14 _080E5FE2: adds r0, r1, r2 strb r3, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x7 bls _080E5FE2 movs r1, 0 ldr r3, _080E600C @ =gUnknown_0202E874 movs r2, 0 _080E5FF6: adds r0, r1, r3 strb r2, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x7 bls _080E5FF6 pop {r0} bx r0 .align 2, 0 _080E6008: .4byte gPlayerAvatar _080E600C: .4byte gUnknown_0202E874 thumb_func_end sub_80E5FCC thumb_func_start sub_80E6010 sub_80E6010: @ 80E6010 lsls r0, 24 lsrs r0, 24 ldr r2, _080E6020 @ =gPlayerAvatar strb r0, [r2, 0xA] lsrs r1, r0, 1 adds r0, r1 strb r0, [r2, 0xB] bx lr .align 2, 0 _080E6020: .4byte gPlayerAvatar thumb_func_end sub_80E6010 thumb_func_start sub_80E6024 sub_80E6024: @ 80E6024 ldr r1, _080E6030 @ =gPlayerAvatar movs r0, 0 strb r0, [r1, 0xA] strb r0, [r1, 0xB] bx lr .align 2, 0 _080E6030: .4byte gPlayerAvatar thumb_func_end sub_80E6024 thumb_func_start sub_80E6034 sub_80E6034: @ 80E6034 push {lr} sub sp, 0x8 ldr r1, _080E605C @ =gUnknown_083DB600 mov r0, sp movs r2, 0x6 bl memcpy ldr r2, _080E6060 @ =gPlayerAvatar ldrb r1, [r2] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080E6064 ldrb r0, [r2, 0xA] lsls r0, 1 add r0, sp movs r1, 0 ldrsh r0, [r0, r1] b _080E607E .align 2, 0 _080E605C: .4byte gUnknown_083DB600 _080E6060: .4byte gPlayerAvatar _080E6064: movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080E6070 movs r0, 0x3 b _080E607E _080E6070: movs r0, 0x88 ands r0, r1 cmp r0, 0 bne _080E607C movs r0, 0x1 b _080E607E _080E607C: movs r0, 0x2 _080E607E: add sp, 0x8 pop {r1} bx r1 thumb_func_end sub_80E6034 thumb_func_start sub_80E6084 sub_80E6084: @ 80E6084 push {r4,r5,lr} sub sp, 0x4 ldr r5, _080E60D4 @ =gPlayerAvatar ldrb r1, [r5] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080E60CC mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl PlayerGetDestCoords mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl MetatileBehavior_IsBumpySlope lsls r0, 24 cmp r0, 0 beq _080E60CC movs r0, 0x2 strb r0, [r5, 0x8] bl player_get_direction_upper_nybble lsls r0, 24 lsrs r0, 24 bl sub_8059C94 _080E60CC: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E60D4: .4byte gPlayerAvatar thumb_func_end sub_80E6084 thumb_func_start sub_80E60D8 sub_80E60D8: @ 80E60D8 push {r4-r7,lr} movs r4, 0x3 ldr r0, _080E60F4 @ =gUnknown_0202E8CC ldrh r1, [r0] adds r7, r0, 0 cmp r1, 0xD bls _080E60E8 b _080E6284 _080E60E8: lsls r0, r1, 2 ldr r1, _080E60F8 @ =_080E60FC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E60F4: .4byte gUnknown_0202E8CC _080E60F8: .4byte _080E60FC .align 2, 0 _080E60FC: .4byte _080E6134 .4byte _080E613C .4byte _080E6144 .4byte _080E614C .4byte _080E6154 .4byte _080E619C .4byte _080E616C .4byte _080E61BC .4byte _080E61E0 .4byte _080E61FC .4byte _080E6200 .4byte _080E6214 .4byte _080E623C .4byte _080E6260 _080E6134: ldr r1, _080E6138 @ =gSaveBlock1 + 0x2B1C b _080E624C .align 2, 0 _080E6138: .4byte gSaveBlock1 + 0x2B1C _080E613C: ldr r1, _080E6140 @ =gSaveBlock1 + 0x2B28 b _080E6276 .align 2, 0 _080E6140: .4byte gSaveBlock1 + 0x2B28 _080E6144: ldr r1, _080E6148 @ =gSaveBlock1 + 0x2B34 b _080E624C .align 2, 0 _080E6148: .4byte gSaveBlock1 + 0x2B34 _080E614C: ldr r1, _080E6150 @ =gSaveBlock1 + 0x2B40 b _080E6276 .align 2, 0 _080E6150: .4byte gSaveBlock1 + 0x2B40 _080E6154: ldr r0, _080E6164 @ =gUnknown_0202E8CE ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E6168 @ =gSaveBlock1 + 0x2B4C adds r1, r0, r1 b _080E624C .align 2, 0 _080E6164: .4byte gUnknown_0202E8CE _080E6168: .4byte gSaveBlock1 + 0x2B4C _080E616C: ldr r0, _080E6194 @ =gSaveBlock1 + 0x2D94 movs r2, 0 ldr r1, _080E6198 @ =sub_80546B8 mov r12, r1 adds r3, r0, 0 adds r3, 0xE adds r5, r0, 0x2 adds r6, r3, 0 _080E617C: lsls r0, r2, 1 adds r1, r3, r0 adds r0, r5, r0 ldrh r0, [r0] strh r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x5 bls _080E617C adds r1, r6, 0 b _080E627A .align 2, 0 _080E6194: .4byte gSaveBlock1 + 0x2D94 _080E6198: .4byte sub_80546B8 _080E619C: ldr r0, _080E61B0 @ =gUnknown_0202E8CE ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E61B4 @ =gSaveBlock1 + 0x273C adds r1, r0, r1 ldr r0, _080E61B8 @ =gUnknown_0202E8D0 ldrb r4, [r0] b _080E6276 .align 2, 0 _080E61B0: .4byte gUnknown_0202E8CE _080E61B4: .4byte gSaveBlock1 + 0x273C _080E61B8: .4byte gUnknown_0202E8D0 _080E61BC: ldr r0, _080E61D4 @ =gUnknown_0202E8CE ldrh r0, [r0] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _080E61D8 @ =gSaveBlock1 + 0x2754 adds r1, r0 ldr r0, _080E61DC @ =gUnknown_0202E8D0 ldrh r0, [r0] lsls r0, 1 adds r1, r0 b _080E624A .align 2, 0 _080E61D4: .4byte gUnknown_0202E8CE _080E61D8: .4byte gSaveBlock1 + 0x2754 _080E61DC: .4byte gUnknown_0202E8D0 _080E61E0: ldr r0, _080E61F4 @ =gUnknown_0202E8CE ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E61F8 @ =gSaveBlock1 + 0x273A adds r1, r0, r1 movs r4, 0 b _080E6276 .align 2, 0 _080E61F4: .4byte gUnknown_0202E8CE _080E61F8: .4byte gSaveBlock1 + 0x273A _080E61FC: movs r1, 0 b _080E624C _080E6200: ldr r1, _080E620C @ =gSaveBlock1 + 0x2B16 ldr r2, _080E6210 @ =0x0000ffff adds r0, r2, 0 strh r0, [r1] b _080E624A .align 2, 0 _080E620C: .4byte gSaveBlock1 + 0x2B16 _080E6210: .4byte 0x0000ffff _080E6214: ldr r0, _080E6230 @ =gUnknown_0202E8CE ldrh r0, [r0] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _080E6234 @ =gSaveBlock1 + 0x273C adds r1, r0 ldr r0, _080E6238 @ =gUnknown_0202E8D0 ldrh r0, [r0] lsls r0, 1 adds r1, r0 movs r4, 0 b _080E6276 .align 2, 0 _080E6230: .4byte gUnknown_0202E8CE _080E6234: .4byte gSaveBlock1 + 0x273C _080E6238: .4byte gUnknown_0202E8D0 _080E623C: ldr r0, _080E6254 @ =gUnknown_0202E8CE ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E6258 @ =gSaveBlock1 + 0x2750 adds r1, r0, r1 _080E624A: movs r4, 0x1 _080E624C: ldr r0, _080E625C @ =sub_80546B8 mov r12, r0 b _080E627A .align 2, 0 _080E6254: .4byte gUnknown_0202E8CE _080E6258: .4byte gSaveBlock1 + 0x2750 _080E625C: .4byte sub_80546B8 _080E6260: ldr r1, _080E628C @ =0x02001000 ldr r0, _080E6290 @ =0x00009c7c adds r2, r1, r0 ldr r0, _080E6294 @ =0x0000ffff strh r0, [r2] ldr r0, _080E6298 @ =0x00009c7e adds r1, r0 movs r0, 0x1 negs r0, r0 strh r0, [r1] adds r1, r2, 0 _080E6276: ldr r2, _080E629C @ =sub_80546B8 mov r12, r2 _080E627A: ldrb r0, [r7] mov r2, r12 adds r3, r4, 0 bl sub_80E62A0 _080E6284: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E628C: .4byte 0x02001000 _080E6290: .4byte 0x00009c7c _080E6294: .4byte 0x0000ffff _080E6298: .4byte 0x00009c7e _080E629C: .4byte sub_80546B8 thumb_func_end sub_80E60D8 thumb_func_start sub_80E62A0 sub_80E62A0: @ 80E62A0 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r4, _080E62DC @ =0x02001000 str r2, [r4] str r1, [r4, 0x4] strb r0, [r4, 0x8] strb r3, [r4, 0xB] cmp r0, 0x9 bne _080E62D0 ldr r0, _080E62E0 @ =0x00009c7c adds r2, r4, r0 str r2, [r4, 0x4] ldr r0, _080E62E4 @ =gSaveBlock1 ldr r3, _080E62E8 @ =0x00002dd8 adds r1, r0, r3 ldrh r1, [r1] strh r1, [r2] ldr r1, _080E62EC @ =0x00002dda adds r0, r1 ldrh r1, [r0] ldr r2, _080E62F0 @ =0x00009c7e adds r0, r4, r2 strh r1, [r0] _080E62D0: ldr r0, _080E62F4 @ =sub_80E62F8 bl SetMainCallback2 pop {r4} pop {r0} bx r0 .align 2, 0 _080E62DC: .4byte 0x02001000 _080E62E0: .4byte 0x00009c7c _080E62E4: .4byte gSaveBlock1 _080E62E8: .4byte 0x00002dd8 _080E62EC: .4byte 0x00002dda _080E62F0: .4byte 0x00009c7e _080E62F4: .4byte sub_80E62F8 thumb_func_end sub_80E62A0 thumb_func_start sub_80E62F8 sub_80E62F8: @ 80E62F8 push {lr} sub sp, 0x4 ldr r0, _080E6314 @ =gMain ldr r1, _080E6318 @ =0x0000043c adds r0, r1 ldrb r0, [r0] cmp r0, 0x8 bhi _080E6344 lsls r0, 2 ldr r1, _080E631C @ =_080E6320 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E6314: .4byte gMain _080E6318: .4byte 0x0000043c _080E631C: .4byte _080E6320 .align 2, 0 _080E6320: .4byte _080E6344 .4byte _080E6380 .4byte _080E638C .4byte _080E63A8 .4byte _080E63AE .4byte _080E63B4 .4byte _080E63BE .4byte _080E63D8 .4byte _080E63EA _080E6344: movs r1, 0x80 lsls r1, 19 movs r0, 0 strh r0, [r1] movs r0, 0 bl SetVBlankCallback bl ResetPaletteFade bl ResetSpriteData bl dp12_8087EA4 bl remove_some_task bl sub_80EAD08 ldr r2, _080E637C @ =gUnknown_083DB698 ldr r0, [r2] ldr r1, [r2, 0x4] ldr r2, [r2, 0x8] bl sub_80895F8 bl FreeSpriteTileRanges bl FreeAllSpritePalettes b _080E6402 .align 2, 0 _080E637C: .4byte gUnknown_083DB698 _080E6380: ldr r0, _080E6388 @ =gWindowConfig_81E6DA8 bl SetUpWindowConfig b _080E6402 .align 2, 0 _080E6388: .4byte gWindowConfig_81E6DA8 _080E638C: ldr r0, _080E63A0 @ =gWindowConfig_81E6D54 bl InitMenuWindow ldr r0, _080E63A4 @ =gWindowConfig_81E6DA8 bl InitMenuWindow bl MenuZeroFillScreen b _080E6402 .align 2, 0 _080E63A0: .4byte gWindowConfig_81E6D54 _080E63A4: .4byte gWindowConfig_81E6DA8 _080E63A8: bl sub_80E6424 b _080E6402 _080E63AE: bl sub_80E8DD8 b _080E6402 _080E63B4: bl sub_80E8218 bl sub_80E8CEC b _080E6402 _080E63BE: bl sub_80E69F8 ldr r0, _080E63D0 @ =sub_80E6AA8 bl sub_80E682C ldr r0, _080E63D4 @ =sub_80E6A6C bl SetVBlankCallback b _080E6402 .align 2, 0 _080E63D0: .4byte sub_80E6AA8 _080E63D4: .4byte sub_80E6A6C _080E63D8: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade b _080E6402 _080E63EA: movs r1, 0x80 lsls r1, 19 movs r2, 0xFA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r0, _080E6414 @ =sub_80E6A88 bl SetMainCallback2 ldr r0, _080E6418 @ =0x00000805 bl FlagSet _080E6402: ldr r1, _080E641C @ =gMain ldr r0, _080E6420 @ =0x0000043c adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080E6414: .4byte sub_80E6A88 _080E6418: .4byte 0x00000805 _080E641C: .4byte gMain _080E6420: .4byte 0x0000043c thumb_func_end sub_80E62F8 thumb_func_start sub_80E6424 sub_80E6424: @ 80E6424 push {lr} ldr r2, _080E6444 @ =0x02001000 ldr r0, _080E6448 @ =gUnknown_083DB6A4 ldrb r1, [r2, 0x8] adds r1, r0 ldrb r0, [r1] strb r0, [r2, 0x9] ldrb r0, [r2, 0x9] adds r3, r2, 0 cmp r0, 0x5 bhi _080E6512 lsls r0, 2 ldr r1, _080E644C @ =_080E6450 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E6444: .4byte 0x02001000 _080E6448: .4byte gUnknown_083DB6A4 _080E644C: .4byte _080E6450 .align 2, 0 _080E6450: .4byte _080E64A0 .4byte _080E64B8 .4byte _080E64DA .4byte _080E64F6 .4byte _080E6468 .4byte _080E6480 _080E6468: movs r2, 0x4 strb r2, [r3, 0xA] adds r0, r3, 0 adds r0, 0x83 movs r1, 0x2 strb r1, [r0] adds r0, 0x1 strb r1, [r0] adds r1, r3, 0 adds r1, 0x88 movs r0, 0x5 b _080E64D0 _080E6480: movs r1, 0x4 strb r1, [r3, 0xA] adds r2, r3, 0 adds r2, 0x83 movs r0, 0x1 strb r0, [r2] adds r0, r3, 0 adds r0, 0x84 strb r1, [r0] adds r1, r3, 0 adds r1, 0x88 movs r0, 0x10 strh r0, [r1] adds r1, 0x2 movs r0, 0x2 b _080E6510 _080E64A0: movs r0, 0x6 strb r0, [r3, 0xA] adds r1, r3, 0 adds r1, 0x83 movs r0, 0x2 strb r0, [r1] adds r0, r3, 0 adds r0, 0x84 movs r2, 0x3 strb r2, [r0] adds r1, 0x5 b _080E64CE _080E64B8: movs r2, 0 movs r0, 0x9 strb r0, [r3, 0xA] adds r1, r3, 0 adds r1, 0x83 movs r0, 0x2 strb r0, [r1] adds r1, 0x1 movs r0, 0x5 strb r0, [r1] adds r1, 0x4 _080E64CE: movs r0, 0x4 _080E64D0: strh r0, [r1] adds r0, r3, 0 adds r0, 0x8A strh r2, [r0] b _080E6512 _080E64DA: movs r1, 0x1 strb r1, [r3, 0xA] adds r0, r3, 0 adds r0, 0x83 strb r1, [r0] adds r0, 0x1 strb r1, [r0] adds r1, r3, 0 adds r1, 0x88 movs r0, 0x10 strh r0, [r1] adds r1, 0x2 movs r0, 0x4 b _080E6510 _080E64F6: movs r0, 0x2 strb r0, [r3, 0xA] adds r1, r3, 0 adds r1, 0x83 strb r0, [r1] adds r1, 0x1 movs r0, 0x1 strb r0, [r1] adds r1, 0x4 movs r0, 0x5 strh r0, [r1] adds r1, 0x2 movs r0, 0x3 _080E6510: strh r0, [r1] _080E6512: adds r1, r3, 0 adds r1, 0x86 movs r0, 0 strb r0, [r1] subs r1, 0x1 strb r0, [r1] adds r1, 0x2 strb r0, [r1] subs r1, 0x61 strb r0, [r1] movs r2, 0xDD lsls r2, 1 adds r1, r3, r2 strh r0, [r1] movs r0, 0xDF lsls r0, 1 adds r1, r3, r0 movs r0, 0x2 strb r0, [r1] bl sub_80E6554 bl sub_80EAECC bl sub_80EB040 bl sub_80E7E50 bl sub_80E6630 bl sub_80E6690 pop {r0} bx r0 thumb_func_end sub_80E6424 thumb_func_start sub_80E6554 sub_80E6554: @ 80E6554 push {r4-r7,lr} sub sp, 0x4 movs r4, 0 movs r7, 0 ldr r0, _080E6564 @ =0x02001000 mov r12, r0 b _080E656E .align 2, 0 _080E6564: .4byte 0x02001000 _080E6568: adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 _080E656E: movs r5, 0 lsls r3, r7, 1 mov r6, r12 adds r6, 0x2A adds r2, r3, r6 adds r1, r4, 0 adds r0, r1, 0x1 lsls r0, 16 lsrs r4, r0, 16 strb r1, [r2] cmp r4, 0x11 beq _080E65A6 _080E6586: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x1 bhi _080E65A2 adds r2, r5, r3 adds r2, r6 adds r1, r4, 0 adds r0, r1, 0x1 lsls r0, 16 lsrs r4, r0, 16 strb r1, [r2] cmp r4, 0x11 bne _080E6586 _080E65A2: cmp r4, 0x11 bne _080E6568 _080E65A6: movs r0, 0x11 mov r1, r12 strh r0, [r1, 0x28] cmp r4, 0x15 bhi _080E6612 mov r6, r12 adds r2, r6, 0 adds r2, 0x78 _080E65B6: lsls r0, r4, 24 lsrs r0, 24 str r2, [sp] bl sub_80EAD7C lsls r0, 24 lsrs r1, r0, 24 ldr r2, [sp] cmp r1, 0 beq _080E65FC adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x1 bls _080E65DC adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 movs r5, 0 _080E65DC: lsls r0, r7, 1 adds r0, r5, r0 adds r1, r6, 0 adds r1, 0x2A adds r0, r1 strb r4, [r0] adds r0, r4, 0 subs r0, 0x11 adds r0, r2 movs r1, 0x1 strb r1, [r0] ldrh r0, [r6, 0x28] adds r0, 0x1 strh r0, [r6, 0x28] mov r12, r6 b _080E6608 _080E65FC: adds r0, r4, 0 subs r0, 0x11 adds r0, r2 strb r1, [r0] ldr r0, _080E662C @ =0x02001000 mov r12, r0 _080E6608: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x15 bls _080E65B6 _080E6612: mov r1, r12 ldrh r0, [r1, 0x28] adds r0, 0x1 asrs r0, 1 movs r1, 0xDB lsls r1, 1 add r1, r12 strb r0, [r1] add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E662C: .4byte 0x02001000 thumb_func_end sub_80E6554 thumb_func_start sub_80E6630 sub_80E6630: @ 80E6630 push {r4-r7,lr} movs r1, 0 ldr r0, _080E6664 @ =gUnknown_083DB6B2 mov r12, r0 _080E6638: lsls r0, r1, 4 mov r2, r12 adds r5, r0, r2 movs r3, 0 ldrb r0, [r5] adds r7, r1, 0x1 cmp r0, 0xFF beq _080E6680 lsls r0, r1, 3 subs r0, r1 lsls r4, r0, 1 ldr r6, _080E6668 @ =0x02001040 _080E6650: adds r0, r5, r3 ldrb r1, [r0] adds r2, r1, 0 cmp r2, 0 beq _080E666C adds r0, r3, r4 adds r0, r6 adds r1, 0x46 strb r1, [r0] b _080E6672 .align 2, 0 _080E6664: .4byte gUnknown_083DB6B2 _080E6668: .4byte 0x02001040 _080E666C: adds r0, r3, r4 adds r0, r6 strb r2, [r0] _080E6672: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 adds r0, r5, r3 ldrb r0, [r0] cmp r0, 0xFF bne _080E6650 _080E6680: lsls r0, r7, 24 lsrs r1, r0, 24 cmp r1, 0x3 bls _080E6638 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80E6630 thumb_func_start sub_80E6690 sub_80E6690: @ 80E6690 push {r4-r6,lr} sub sp, 0x10 mov r0, sp ldr r1, _080E66E0 @ =gUnknown_083DB7DC ldm r1!, {r2-r4} stm r0!, {r2-r4} ldr r1, [r1] str r1, [r0] movs r5, 0 ldr r6, _080E66E4 @ =gUnknown_083DB7C0 _080E66A4: ldr r0, _080E66E8 @ =0x02001000 ldrb r0, [r0, 0x8] lsls r0, 1 adds r0, r5, r0 adds r0, r6 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _080E66EC @ =gUnknown_083DB6F4 adds r4, r0, r1 lsls r0, r5, 3 add r0, sp ldr r0, [r0] ldr r1, [r4] bl StringCopy adds r3, r0, 0 ldrb r0, [r4, 0x8] cmp r0, 0 beq _080E66F0 lsls r0, r5, 1 adds r0, 0x1 lsls r0, 2 add r0, sp ldr r0, [r0] ldr r1, [r4, 0x4] bl StringCopy b _080E670A .align 2, 0 _080E66E0: .4byte gUnknown_083DB7DC _080E66E4: .4byte gUnknown_083DB7C0 _080E66E8: .4byte 0x02001000 _080E66EC: .4byte gUnknown_083DB6F4 _080E66F0: strb r0, [r3] adds r3, 0x1 ldr r1, [r4, 0x4] adds r0, r3, 0 bl StringCopy lsls r0, r5, 1 adds r0, 0x1 lsls r0, 2 add r0, sp ldr r1, [r0] movs r0, 0xFF strb r0, [r1] _080E670A: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x1 bls _080E66A4 movs r5, 0 ldr r3, _080E6758 @ =0x02001000 ldr r0, _080E675C @ =0x00009da4 adds r2, r3, r0 movs r1, 0 _080E671E: adds r0, r5, r2 strb r1, [r0] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x23 bls _080E671E ldr r1, _080E675C @ =0x00009da4 adds r0, r3, r1 adds r0, r5, r0 movs r4, 0x1 negs r4, r4 adds r2, r4, 0 movs r1, 0xFF strb r1, [r0] ldr r0, _080E6760 @ =0x00009f6e adds r3, r0 movs r0, 0xFC strb r0, [r3] movs r0, 0x11 strb r0, [r3, 0x1] movs r0, 0xE0 strb r0, [r3, 0x2] strb r2, [r3, 0x3] add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E6758: .4byte 0x02001000 _080E675C: .4byte 0x00009da4 _080E6760: .4byte 0x00009f6e thumb_func_end sub_80E6690 thumb_func_start sub_80E6764 sub_80E6764: @ 80E6764 push {r4-r6,lr} movs r3, 0 ldr r4, _080E680C @ =gSaveBlock1 + 0x2B1C ldr r2, _080E6810 @ =gUnknown_083DB7EC _080E676C: lsls r0, r3, 1 adds r1, r0, r4 adds r0, r2 ldrh r0, [r0] strh r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x3 bls _080E676C movs r3, 0 ldr r4, _080E6814 @ =gSaveBlock1 + 0x2B28 ldr r2, _080E6818 @ =gUnknown_083DB7F4 _080E6786: lsls r0, r3, 1 adds r1, r0, r4 adds r0, r2 ldrh r0, [r0] strh r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x5 bls _080E6786 movs r3, 0 ldr r5, _080E681C @ =gSaveBlock1 + 0x2B34 ldr r0, _080E6820 @ =0x0000ffff adds r4, r0, 0 adds r6, r5, 0 adds r6, 0xC _080E67A6: lsls r1, r3, 1 adds r2, r1, r5 ldrh r0, [r2] orrs r0, r4 strh r0, [r2] adds r1, r6 ldrh r0, [r1] orrs r0, r4 strh r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x5 bls _080E67A6 movs r3, 0 ldr r6, _080E6824 @ =gSaveBlock1 + 0x2B4C ldr r0, _080E6820 @ =0x0000ffff adds r5, r0, 0 _080E67CA: movs r2, 0 lsls r0, r3, 3 adds r0, r3 lsls r4, r0, 2 _080E67D2: lsls r0, r2, 1 adds r0, r4 adds r0, r6 ldrh r1, [r0] orrs r1, r5 strh r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x8 bls _080E67D2 adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0xF bls _080E67CA movs r3, 0 ldr r2, _080E6828 @ =gSaveBlock1 + 0x2D8C movs r1, 0 _080E67F8: adds r0, r3, r2 strb r1, [r0] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x3F bls _080E67F8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E680C: .4byte gSaveBlock1 + 0x2B1C _080E6810: .4byte gUnknown_083DB7EC _080E6814: .4byte gSaveBlock1 + 0x2B28 _080E6818: .4byte gUnknown_083DB7F4 _080E681C: .4byte gSaveBlock1 + 0x2B34 _080E6820: .4byte 0x0000ffff _080E6824: .4byte gSaveBlock1 + 0x2B4C _080E6828: .4byte gSaveBlock1 + 0x2D8C thumb_func_end sub_80E6764 thumb_func_start sub_80E682C sub_80E682C: @ 80E682C ldr r1, _080E6838 @ =0x02001000 str r0, [r1, 0x20] movs r0, 0 strh r0, [r1, 0x24] bx lr .align 2, 0 _080E6838: .4byte 0x02001000 thumb_func_end sub_80E682C thumb_func_start sub_80E683C sub_80E683C: @ 80E683C push {r4,r5,lr} ldr r1, _080E6890 @ =0x02001000 adds r0, r1, 0 adds r0, 0x26 ldrb r0, [r0] adds r2, r1, 0 cmp r0, 0 bne _080E6898 movs r1, 0 movs r0, 0xDB lsls r0, 1 adds r3, r2, r0 movs r0, 0 ldrsb r0, [r3, r0] cmp r1, r0 bge _080E6876 movs r0, 0xD5 lsls r0, 1 adds r5, r2, r0 movs r4, 0x2 _080E6864: adds r0, r1, r5 strb r4, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 movs r0, 0 ldrsb r0, [r3, r0] cmp r1, r0 blt _080E6864 _080E6876: adds r0, r2, r1 ldr r1, _080E6894 @ =0x000001a9 adds r3, r0, r1 ldrh r0, [r2, 0x28] movs r1, 0x1 ands r0, r1 strb r0, [r3] cmp r0, 0 bne _080E68B8 movs r0, 0x2 strb r0, [r3] b _080E68B8 .align 2, 0 _080E6890: .4byte 0x02001000 _080E6894: .4byte 0x000001a9 _080E6898: movs r3, 0xD5 lsls r3, 1 adds r1, r2, r3 movs r0, 0x7 strb r0, [r1] ldr r1, _080E68E0 @ =0x000001ab adds r3, r2, r1 movs r1, 0x6 strb r1, [r3] movs r3, 0xD6 lsls r3, 1 adds r1, r2, r3 strb r0, [r1] adds r3, 0x1 adds r1, r2, r3 strb r0, [r1] _080E68B8: movs r0, 0xD4 lsls r0, 1 adds r1, r2, r0 movs r0, 0 strb r0, [r1] ldr r3, _080E68E4 @ =0x000001a9 adds r1, r2, r3 strb r0, [r1] adds r3, 0xC adds r1, r2, r3 strb r0, [r1] adds r3, 0x2 adds r1, r2, r3 strb r0, [r1] bl sub_80E9A4C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E68E0: .4byte 0x000001ab _080E68E4: .4byte 0x000001a9 thumb_func_end sub_80E683C thumb_func_start sub_80E68E8 sub_80E68E8: @ 80E68E8 push {r4-r6,lr} bl sub_80EB0B0 ldr r3, _080E694C @ =0x02001000 adds r0, r3, 0 adds r0, 0x26 ldrb r0, [r0] cmp r0, 0 bne _080E695C movs r1, 0xDC lsls r1, 1 adds r0, r3, r1 ldrb r6, [r0] lsls r0, r6, 1 ldr r2, _080E6950 @ =0x00004178 adds r1, r3, r2 adds r0, r1 ldrh r0, [r0] adds r0, 0x1 asrs r0, 1 ldr r1, _080E6954 @ =0x00009a28 adds r2, r3, r1 strb r0, [r2] movs r1, 0 movs r0, 0 ldrsb r0, [r2, r0] adds r5, r3, 0 cmp r1, r0 bge _080E693A ldr r3, _080E6958 @ =0x000099a6 adds r4, r5, r3 movs r3, 0x2 _080E6928: adds r0, r1, r4 strb r3, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 movs r0, 0 ldrsb r0, [r2, r0] cmp r1, r0 blt _080E6928 _080E693A: subs r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 ldr r2, _080E6958 @ =0x000099a6 adds r0, r5, r2 adds r2, r1, r0 lsls r0, r6, 1 ldr r3, _080E6950 @ =0x00004178 b _080E69AC .align 2, 0 _080E694C: .4byte 0x02001000 _080E6950: .4byte 0x00004178 _080E6954: .4byte 0x00009a28 _080E6958: .4byte 0x000099a6 _080E695C: movs r1, 0xDC lsls r1, 1 adds r0, r3, r1 ldrb r6, [r0] lsls r0, r6, 1 ldr r2, _080E69E0 @ =0x00004142 adds r1, r3, r2 adds r0, r1 ldrh r0, [r0] adds r0, 0x1 asrs r0, 1 ldr r1, _080E69E4 @ =0x00009a28 adds r2, r3, r1 strb r0, [r2] movs r1, 0 movs r0, 0 ldrsb r0, [r2, r0] adds r5, r3, 0 cmp r1, r0 bge _080E699C ldr r3, _080E69E8 @ =0x000099a6 adds r4, r5, r3 movs r3, 0x2 _080E698A: adds r0, r1, r4 strb r3, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 movs r0, 0 ldrsb r0, [r2, r0] cmp r1, r0 blt _080E698A _080E699C: subs r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 ldr r2, _080E69E8 @ =0x000099a6 adds r0, r5, r2 adds r2, r1, r0 lsls r0, r6, 1 ldr r3, _080E69E0 @ =0x00004142 _080E69AC: adds r1, r5, r3 adds r0, r1 ldrh r0, [r0] movs r1, 0x1 ands r0, r1 strb r0, [r2] cmp r0, 0 bne _080E69C0 movs r0, 0x2 strb r0, [r2] _080E69C0: ldr r1, _080E69EC @ =0x000099a4 adds r0, r5, r1 movs r1, 0 strb r1, [r0] ldr r2, _080E69F0 @ =0x000099a5 adds r0, r5, r2 strb r1, [r0] ldr r3, _080E69F4 @ =0x00009a29 adds r0, r5, r3 strb r1, [r0] bl sub_80E9A4C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E69E0: .4byte 0x00004142 _080E69E4: .4byte 0x00009a28 _080E69E8: .4byte 0x000099a6 _080E69EC: .4byte 0x000099a4 _080E69F0: .4byte 0x000099a5 _080E69F4: .4byte 0x00009a29 thumb_func_end sub_80E68E8 thumb_func_start sub_80E69F8 sub_80E69F8: @ 80E69F8 push {r4,lr} ldr r0, _080E6A10 @ =0x02001000 ldrb r1, [r0, 0x8] adds r4, r0, 0 cmp r1, 0xD bhi _080E6A50 lsls r0, r1, 2 ldr r1, _080E6A14 @ =_080E6A18 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E6A10: .4byte 0x02001000 _080E6A14: .4byte _080E6A18 .align 2, 0 _080E6A18: .4byte _080E6A50 .4byte _080E6A50 .4byte _080E6A50 .4byte _080E6A50 .4byte _080E6A50 .4byte _080E6A58 .4byte _080E6A50 .4byte _080E6A58 .4byte _080E6A58 .4byte _080E6A50 .4byte _080E6A58 .4byte _080E6A58 .4byte _080E6A58 .4byte _080E6A50 _080E6A50: ldrb r0, [r4, 0x8] bl sub_80E9368 b _080E6A66 _080E6A58: ldrb r0, [r4, 0x8] bl sub_80E9368 ldrb r0, [r4, 0xB] ldrb r1, [r4, 0x9] bl sub_80E8BF4 _080E6A66: pop {r4} pop {r0} bx r0 thumb_func_end sub_80E69F8 thumb_func_start sub_80E6A6C sub_80E6A6C: @ 80E6A6C push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl sub_80EAC5C bl TransferPlttBuffer bl sub_8089668 pop {r0} bx r0 thumb_func_end sub_80E6A6C thumb_func_start sub_80E6A88 sub_80E6A88: @ 80E6A88 push {lr} ldr r0, _080E6AA4 @ =0x02001000 ldr r0, [r0, 0x20] bl _call_via_r0 bl AnimateSprites bl BuildOamBuffer bl sub_80EAD08 pop {r0} bx r0 .align 2, 0 _080E6AA4: .4byte 0x02001000 thumb_func_end sub_80E6A88 thumb_func_start sub_80E6AA8 sub_80E6AA8: @ 80E6AA8 push {lr} bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _080E6ABA ldr r0, _080E6AC0 @ =sub_80E6AC4 bl sub_80E682C _080E6ABA: pop {r0} bx r0 .align 2, 0 _080E6AC0: .4byte sub_80E6AC4 thumb_func_end sub_80E6AA8 thumb_func_start sub_80E6AC4 sub_80E6AC4: @ 80E6AC4 push {lr} bl sub_80E88F0 movs r0, 0 bl sub_80E8398 movs r0, 0 bl sub_80E91D4 ldr r0, _080E6AE0 @ =sub_80E6AE4 bl sub_80E682C pop {r0} bx r0 .align 2, 0 _080E6AE0: .4byte sub_80E6AE4 thumb_func_end sub_80E6AC4 thumb_func_start sub_80E6AE4 sub_80E6AE4: @ 80E6AE4 push {r4,r5,lr} bl sub_80E75D8 ldr r4, _080E6B44 @ =0x02001000 adds r1, r4, 0 adds r1, 0x87 strb r0, [r1] lsls r0, 24 cmp r0, 0 beq _080E6AFE movs r0, 0x5 bl PlaySE _080E6AFE: ldr r2, _080E6B48 @ =gMain ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 adds r5, r2, 0 cmp r0, 0 beq _080E6BA4 movs r0, 0x5 bl PlaySE adds r1, r4, 0 adds r1, 0x86 adds r0, r4, 0 adds r0, 0x84 ldrb r2, [r1] ldrb r1, [r1] lsls r1, 24 asrs r1, 24 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r1, r0 bne _080E6B78 adds r0, r4, 0 adds r0, 0x85 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x1 beq _080E6B60 cmp r0, 0x1 bgt _080E6B4C cmp r0, 0 beq _080E6B52 b _080E6BA4 .align 2, 0 _080E6B44: .4byte 0x02001000 _080E6B48: .4byte gMain _080E6B4C: cmp r0, 0x2 beq _080E6B6C b _080E6BA4 _080E6B52: ldr r0, _080E6B5C @ =sub_80E6BC0 bl sub_80E682C b _080E6BB4 .align 2, 0 _080E6B5C: .4byte sub_80E6BC0 _080E6B60: ldr r0, _080E6B68 @ =sub_80E6C84 bl sub_80E682C b _080E6BB4 .align 2, 0 _080E6B68: .4byte sub_80E6C84 _080E6B6C: ldr r0, _080E6B74 @ =sub_80E6D7C bl sub_80E682C b _080E6BB4 .align 2, 0 _080E6B74: .4byte sub_80E6D7C _080E6B78: adds r0, r4, 0 adds r0, 0x83 ldrb r0, [r0] adds r1, r4, 0 adds r1, 0x85 adds r3, r0, 0 muls r3, r2 adds r0, r3, 0 ldrb r1, [r1] adds r0, r1 adds r1, r4, 0 adds r1, 0x27 strb r0, [r1] bl sub_80E7574 ldr r0, _080E6BA0 @ =sub_80E6F68 bl sub_80E682C b _080E6BB4 .align 2, 0 _080E6BA0: .4byte sub_80E6F68 _080E6BA4: ldrh r1, [r5, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080E6BB4 ldr r0, _080E6BBC @ =sub_80E6C84 bl sub_80E682C _080E6BB4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E6BBC: .4byte sub_80E6C84 thumb_func_end sub_80E6AE4 thumb_func_start sub_80E6BC0 sub_80E6BC0: @ 80E6BC0 push {r4,lr} ldr r4, _080E6BD4 @ =0x02001000 ldrh r0, [r4, 0x24] cmp r0, 0x1 beq _080E6C12 cmp r0, 0x1 bgt _080E6BD8 cmp r0, 0 beq _080E6BE2 b _080E6C76 .align 2, 0 _080E6BD4: .4byte 0x02001000 _080E6BD8: cmp r0, 0x2 beq _080E6C54 cmp r0, 0x64 beq _080E6C64 b _080E6C76 _080E6BE2: movs r0, 0x2 bl sub_80E8398 ldrb r0, [r4, 0x8] cmp r0, 0x6 bne _080E6BFA movs r0, 0x6 bl sub_80E91D4 movs r0, 0x64 strh r0, [r4, 0x24] b _080E6C76 _080E6BFA: movs r0, 0x2 bl sub_80E91D4 movs r0, 0x17 movs r1, 0x8 movs r2, 0x1 bl DisplayYesNoMenu movs r0, 0x1 bl MoveMenuCursor b _080E6C3E _080E6C12: bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _080E6C32 cmp r1, 0 bgt _080E6C2C movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080E6C46 b _080E6C76 _080E6C2C: cmp r1, 0x1 beq _080E6C46 b _080E6C76 _080E6C32: bl sub_80E7D6C bl sub_80E98C4 bl sub_80E95A4 _080E6C3E: ldrh r0, [r4, 0x24] adds r0, 0x1 strh r0, [r4, 0x24] b _080E6C76 _080E6C46: ldr r1, _080E6C50 @ =0x02001000 ldrh r0, [r1, 0x24] adds r0, 0x1 strh r0, [r1, 0x24] b _080E6C76 .align 2, 0 _080E6C50: .4byte 0x02001000 _080E6C54: bl sub_80E81FC ldr r0, _080E6C60 @ =sub_80E6AC4 bl sub_80E682C b _080E6C76 .align 2, 0 _080E6C60: .4byte sub_80E6AC4 _080E6C64: ldr r0, _080E6C7C @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _080E6C76 ldr r0, _080E6C80 @ =sub_80E6AC4 bl sub_80E682C _080E6C76: pop {r4} pop {r0} bx r0 .align 2, 0 _080E6C7C: .4byte gMain _080E6C80: .4byte sub_80E6AC4 thumb_func_end sub_80E6BC0 thumb_func_start sub_80E6C84 sub_80E6C84: @ 80E6C84 push {r4,lr} ldr r4, _080E6C98 @ =0x02001000 ldrh r0, [r4, 0x24] cmp r0, 0x1 beq _080E6CF4 cmp r0, 0x1 bgt _080E6C9C cmp r0, 0 beq _080E6CA6 b _080E6D72 .align 2, 0 _080E6C98: .4byte 0x02001000 _080E6C9C: cmp r0, 0x2 beq _080E6D24 cmp r0, 0xFF beq _080E6D64 b _080E6D72 _080E6CA6: movs r0, 0x2 bl sub_80E8398 movs r0, 0x3 bl sub_80E91D4 movs r0, 0x17 movs r1, 0x8 movs r2, 0 bl DisplayYesNoMenu movs r0, 0x1 bl MoveMenuCursor ldrb r0, [r4, 0x8] cmp r0, 0x9 beq _080E6CE8 cmp r0, 0x4 beq _080E6CE8 cmp r0, 0x7 beq _080E6CE8 cmp r0, 0x8 beq _080E6CE8 cmp r0, 0xA beq _080E6CE8 cmp r0, 0xB beq _080E6CE8 cmp r0, 0xC beq _080E6CE8 cmp r0, 0x5 beq _080E6CE8 cmp r0, 0xD bne _080E6D1C _080E6CE8: ldr r1, _080E6CF0 @ =0x02001000 movs r0, 0x2 strh r0, [r1, 0x24] b _080E6D72 .align 2, 0 _080E6CF0: .4byte 0x02001000 _080E6CF4: bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _080E6D06 cmp r1, 0 ble _080E6D34 b _080E6D3E _080E6D06: movs r0, 0x4 bl sub_80E91D4 movs r0, 0x17 movs r1, 0x8 movs r2, 0 bl DisplayYesNoMenu movs r0, 0x1 bl MoveMenuCursor _080E6D1C: ldrh r0, [r4, 0x24] adds r0, 0x1 strh r0, [r4, 0x24] b _080E6D72 _080E6D24: bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _080E6D44 cmp r1, 0 bgt _080E6D3E _080E6D34: movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080E6D58 b _080E6D72 _080E6D3E: cmp r1, 0x1 beq _080E6D58 b _080E6D72 _080E6D44: ldr r0, _080E6D50 @ =gScriptResult strh r1, [r0] ldr r0, _080E6D54 @ =sub_80E752C bl sub_80E682C b _080E6D72 .align 2, 0 _080E6D50: .4byte gScriptResult _080E6D54: .4byte sub_80E752C _080E6D58: ldr r1, _080E6D60 @ =0x02001000 movs r0, 0xFF strh r0, [r1, 0x24] b _080E6D72 .align 2, 0 _080E6D60: .4byte 0x02001000 _080E6D64: bl sub_8072DEC bl sub_80E81FC ldr r0, _080E6D78 @ =sub_80E6AC4 bl sub_80E682C _080E6D72: pop {r4} pop {r0} bx r0 .align 2, 0 _080E6D78: .4byte sub_80E6AC4 thumb_func_end sub_80E6C84 thumb_func_start sub_80E6D7C sub_80E6D7C: @ 80E6D7C push {r4-r7,lr} ldr r5, _080E6D98 @ =0x02001000 ldrh r0, [r5, 0x24] cmp r0, 0xA bne _080E6D88 b _080E6F06 _080E6D88: cmp r0, 0xA bgt _080E6D9C cmp r0, 0 beq _080E6DB6 cmp r0, 0x1 beq _080E6E3C b _080E6F5E .align 2, 0 _080E6D98: .4byte 0x02001000 _080E6D9C: cmp r0, 0x65 bne _080E6DA2 b _080E6F30 _080E6DA2: cmp r0, 0x65 bgt _080E6DAE cmp r0, 0x64 bne _080E6DAC b _080E6F24 _080E6DAC: b _080E6F5E _080E6DAE: cmp r0, 0x66 bne _080E6DB4 b _080E6F50 _080E6DB4: b _080E6F5E _080E6DB6: movs r0, 0x2 bl sub_80E8398 bl sub_80E8054 lsls r0, 24 cmp r0, 0 beq _080E6DCA movs r0, 0x5 b _080E6DEE _080E6DCA: ldrb r0, [r5, 0x8] cmp r0, 0x9 bne _080E6DFC bl sub_80E7FA8 lsls r0, 24 cmp r0, 0 bne _080E6DDE movs r0, 0x8 b _080E6DEE _080E6DDE: ldrh r0, [r5, 0xC] ldr r1, _080E6DF8 @ =0x0000ffff cmp r0, r1 beq _080E6DEC ldrh r0, [r5, 0xE] cmp r0, r1 bne _080E6DFC _080E6DEC: movs r0, 0x9 _080E6DEE: bl sub_80E91D4 movs r0, 0xA strh r0, [r5, 0x24] b _080E6F5E .align 2, 0 _080E6DF8: .4byte 0x0000ffff _080E6DFC: ldr r0, _080E6E18 @ =0x02001000 ldrb r0, [r0, 0x8] cmp r0, 0x4 bne _080E6E20 bl sub_80E7FA8 lsls r0, 24 cmp r0, 0 bne _080E6E20 ldr r0, _080E6E1C @ =sub_80E6C84 bl sub_80E682C b _080E6F5E .align 2, 0 _080E6E18: .4byte 0x02001000 _080E6E1C: .4byte sub_80E6C84 _080E6E20: movs r0, 0x1 bl sub_80E91D4 bl sub_80E9744 movs r0, 0x17 movs r1, 0x8 movs r2, 0 bl DisplayYesNoMenu movs r0, 0 bl MoveMenuCursor b _080E6F3C _080E6E3C: bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r6, r0, 24 cmp r6, 0 beq _080E6E5C cmp r6, 0 bgt _080E6E56 movs r0, 0x1 negs r0, r0 cmp r6, r0 beq _080E6EDC b _080E6F5E _080E6E56: cmp r6, 0x1 beq _080E6EDC b _080E6F5E _080E6E5C: ldr r7, _080E6EC8 @ =gScriptResult bl sub_80E7FA8 lsls r0, 24 lsrs r0, 24 negs r0, r0 lsrs r0, 31 strh r0, [r7] bl sub_80E7D9C ldrb r0, [r5, 0x8] cmp r0, 0 bne _080E6E82 ldr r4, _080E6ECC @ =gUnknown_0202E8CC bl sub_80E8094 lsls r0, 24 lsrs r0, 24 strh r0, [r4] _080E6E82: ldrb r0, [r5, 0x8] cmp r0, 0x9 bne _080E6E9C bl sub_80E81C0 ldr r4, _080E6ECC @ =gUnknown_0202E8CC ldr r1, _080E6ED0 @ =0x00009c7c adds r0, r5, r1 bl sub_80FA364 lsls r0, 24 lsrs r0, 24 strh r0, [r4] _080E6E9C: ldrb r0, [r5, 0x8] cmp r0, 0xD bne _080E6EBE ldrh r0, [r5, 0xC] ldr r1, _080E6ED4 @ =0x0000ffff cmp r0, r1 beq _080E6EB0 ldrh r0, [r5, 0xE] cmp r0, r1 bne _080E6EB2 _080E6EB0: strh r6, [r7] _080E6EB2: ldr r4, _080E6ECC @ =gUnknown_0202E8CC bl sub_80E810C lsls r0, 24 lsrs r0, 24 strh r0, [r4] _080E6EBE: ldr r0, _080E6ED8 @ =sub_80E752C bl sub_80E682C b _080E6F5E .align 2, 0 _080E6EC8: .4byte gScriptResult _080E6ECC: .4byte gUnknown_0202E8CC _080E6ED0: .4byte 0x00009c7c _080E6ED4: .4byte 0x0000ffff _080E6ED8: .4byte sub_80E752C _080E6EDC: bl sub_8072DEC bl sub_80E81FC ldr r4, _080E6EFC @ =0x02001000 ldrb r0, [r4, 0x8] cmp r0, 0x6 bne _080E6F00 bl sub_80E7FA8 lsls r0, 24 cmp r0, 0 beq _080E6F00 movs r0, 0x64 strh r0, [r4, 0x24] b _080E6F5E .align 2, 0 _080E6EFC: .4byte 0x02001000 _080E6F00: bl sub_80E95A4 b _080E6F12 _080E6F06: ldr r0, _080E6F1C @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _080E6F5E _080E6F12: ldr r0, _080E6F20 @ =sub_80E6AC4 bl sub_80E682C b _080E6F5E .align 2, 0 _080E6F1C: .4byte gMain _080E6F20: .4byte sub_80E6AC4 _080E6F24: movs r0, 0x7 bl sub_80E91D4 ldrh r0, [r5, 0x24] adds r0, 0x1 strh r0, [r5, 0x24] _080E6F30: ldr r0, _080E6F48 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080E6F5E _080E6F3C: ldr r1, _080E6F4C @ =0x02001000 ldrh r0, [r1, 0x24] adds r0, 0x1 strh r0, [r1, 0x24] b _080E6F5E .align 2, 0 _080E6F48: .4byte gMain _080E6F4C: .4byte 0x02001000 _080E6F50: bl sub_80E7E50 bl sub_80E95A4 ldr r0, _080E6F64 @ =sub_80E6AC4 bl sub_80E682C _080E6F5E: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E6F64: .4byte sub_80E6AC4 thumb_func_end sub_80E6D7C thumb_func_start sub_80E6F68 sub_80E6F68: @ 80E6F68 push {r4,lr} ldr r4, _080E6F78 @ =0x02001000 ldrh r0, [r4, 0x24] cmp r0, 0 beq _080E6F7C cmp r0, 0x1 beq _080E6F9C b _080E6FBC .align 2, 0 _080E6F78: .4byte 0x02001000 _080E6F7C: movs r0, 0x1 bl sub_80E8398 movs r0, 0xA bl sub_80E91D4 bl sub_80E683C bl sub_80E9974 bl sub_80E9E98 ldrh r0, [r4, 0x24] adds r0, 0x1 strh r0, [r4, 0x24] b _080E6FBC _080E6F9C: bl sub_80E9EA8 lsls r0, 24 cmp r0, 0 beq _080E6FBC movs r0, 0x1 bl sub_80E8D8C bl sub_80E8420 movs r0, 0 bl sub_80E8958 ldr r0, _080E6FC4 @ =sub_80E6FC8 bl sub_80E682C _080E6FBC: pop {r4} pop {r0} bx r0 .align 2, 0 _080E6FC4: .4byte sub_80E6FC8 thumb_func_end sub_80E6F68 thumb_func_start sub_80E6FC8 sub_80E6FC8: @ 80E6FC8 push {r4,lr} bl sub_80E77C8 adds r1, r0, 0 ldr r4, _080E7000 @ =0x02001000 adds r0, r4, 0 adds r0, 0x96 strb r1, [r0] movs r2, 0xE0 lsls r2, 1 adds r0, r4, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 beq _080E700C movs r0, 0x5 bl PlaySE movs r1, 0xE2 lsls r1, 1 adds r0, r4, r1 ldr r1, _080E7004 @ =sub_80E6FC8 str r1, [r0] ldr r0, _080E7008 @ =sub_80E7458 bl sub_80E682C b _080E710A .align 2, 0 _080E7000: .4byte 0x02001000 _080E7004: .4byte sub_80E6FC8 _080E7008: .4byte sub_80E7458 _080E700C: lsls r0, r1, 24 cmp r0, 0 beq _080E7018 movs r0, 0x5 bl PlaySE _080E7018: ldr r0, _080E7054 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080E70E8 ldr r2, _080E7058 @ =0x000001b7 adds r0, r4, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 beq _080E7090 movs r0, 0x5 bl PlaySE movs r1, 0xD4 lsls r1, 1 adds r0, r4, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x2 beq _080E7070 cmp r0, 0x2 bgt _080E705C cmp r0, 0x1 beq _080E7062 b _080E710A .align 2, 0 _080E7054: .4byte gMain _080E7058: .4byte 0x000001b7 _080E705C: cmp r0, 0x3 beq _080E70F0 b _080E710A _080E7062: ldr r0, _080E706C @ =sub_80E718C bl sub_80E682C b _080E710A .align 2, 0 _080E706C: .4byte sub_80E718C _080E7070: ldrb r0, [r4, 0x8] cmp r0, 0x6 beq _080E710A adds r0, r4, 0 adds r0, 0x27 ldrb r0, [r0] ldr r1, _080E708C @ =0x0000ffff bl sub_80E7F00 bl sub_80E7574 bl sub_80E95A4 b _080E710A .align 2, 0 _080E708C: .4byte 0x0000ffff _080E7090: adds r0, r4, 0 adds r0, 0x26 ldrb r0, [r0] cmp r0, 0 beq _080E70CA ldr r2, _080E70DC @ =0x000001a9 adds r0, r4, r2 movs r2, 0 ldrsb r2, [r0, r2] movs r1, 0xD4 lsls r1, 1 adds r0, r4, r1 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 3 subs r0, r1 lsls r0, 1 adds r2, r0 adds r0, r4, 0 adds r0, 0x40 adds r2, r0 ldrb r0, [r2] lsls r0, 1 ldr r2, _080E70E0 @ =0x00004142 adds r1, r4, r2 adds r0, r1 ldrh r0, [r0] cmp r0, 0 beq _080E710A _080E70CA: movs r0, 0x5 bl PlaySE bl sub_80E7AD4 ldr r0, _080E70E4 @ =sub_80E7218 bl sub_80E682C b _080E710A .align 2, 0 _080E70DC: .4byte 0x000001a9 _080E70E0: .4byte 0x00004142 _080E70E4: .4byte sub_80E7218 _080E70E8: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080E70FC _080E70F0: ldr r0, _080E70F8 @ =sub_80E7114 bl sub_80E682C b _080E710A .align 2, 0 _080E70F8: .4byte sub_80E7114 _080E70FC: movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080E710A ldr r0, _080E7110 @ =sub_80E718C bl sub_80E682C _080E710A: pop {r4} pop {r0} bx r0 .align 2, 0 _080E7110: .4byte sub_80E718C thumb_func_end sub_80E6FC8 thumb_func_start sub_80E7114 sub_80E7114: @ 80E7114 push {lr} ldr r0, _080E712C @ =0x02001000 ldrh r1, [r0, 0x24] adds r2, r0, 0 cmp r1, 0x4 bhi _080E7182 lsls r0, r1, 2 ldr r1, _080E7130 @ =_080E7134 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E712C: .4byte 0x02001000 _080E7130: .4byte _080E7134 .align 2, 0 _080E7134: .4byte _080E7148 .4byte _080E715C .4byte _080E715C .4byte _080E7164 .4byte _080E717C _080E7148: bl sub_80E8504 bl sub_80E9E98 bl sub_80E88F0 movs r0, 0 bl sub_80E8D8C b _080E716E _080E715C: ldrh r0, [r2, 0x24] adds r0, 0x1 strh r0, [r2, 0x24] b _080E7182 _080E7164: bl sub_80E9F50 lsls r0, 24 cmp r0, 0 beq _080E7182 _080E716E: ldr r1, _080E7178 @ =0x02001000 ldrh r0, [r1, 0x24] adds r0, 0x1 strh r0, [r1, 0x24] b _080E7182 .align 2, 0 _080E7178: .4byte 0x02001000 _080E717C: ldr r0, _080E7188 @ =sub_80E6AC4 bl sub_80E682C _080E7182: pop {r0} bx r0 .align 2, 0 _080E7188: .4byte sub_80E6AC4 thumb_func_end sub_80E7114 thumb_func_start sub_80E718C sub_80E718C: @ 80E718C push {r4,lr} ldr r0, _080E71A4 @ =0x02001000 ldrh r1, [r0, 0x24] adds r4, r0, 0 cmp r1, 0x1 beq _080E71C6 cmp r1, 0x1 bgt _080E71A8 cmp r1, 0 beq _080E71AE b _080E71EC .align 2, 0 _080E71A4: .4byte 0x02001000 _080E71A8: cmp r1, 0x8 beq _080E71F4 b _080E71EC _080E71AE: bl sub_80E8504 bl sub_80E9E98 bl sub_80E88F0 ldrh r0, [r4, 0x24] adds r0, 0x1 strh r0, [r4, 0x24] bl sub_80E8D54 b _080E720E _080E71C6: bl sub_80E9FD4 lsls r0, 24 cmp r0, 0 beq _080E720E movs r2, 0 adds r1, r4, 0 adds r1, 0x26 ldrb r0, [r1] cmp r0, 0 bne _080E71DE movs r2, 0x1 _080E71DE: strb r2, [r1] bl sub_80E683C bl sub_80E9974 bl sub_80E9E98 _080E71EC: ldrh r0, [r4, 0x24] adds r0, 0x1 strh r0, [r4, 0x24] b _080E720E _080E71F4: bl sub_80EA014 lsls r0, 24 cmp r0, 0 beq _080E720E bl sub_80E8420 movs r0, 0 bl sub_80E8958 ldr r0, _080E7214 @ =sub_80E6FC8 bl sub_80E682C _080E720E: pop {r4} pop {r0} bx r0 .align 2, 0 _080E7214: .4byte sub_80E6FC8 thumb_func_end sub_80E718C thumb_func_start sub_80E7218 sub_80E7218: @ 80E7218 push {r4,lr} ldr r4, _080E7230 @ =0x02001000 ldrh r0, [r4, 0x24] adds r1, r4, 0 cmp r0, 0x9 beq _080E7260 cmp r0, 0x9 bgt _080E7234 cmp r0, 0x8 beq _080E7244 b _080E723C .align 2, 0 _080E7230: .4byte 0x02001000 _080E7234: cmp r0, 0xA beq _080E7276 cmp r0, 0xB beq _080E7288 _080E723C: ldrh r0, [r1, 0x24] adds r0, 0x1 strh r0, [r1, 0x24] b _080E7288 _080E7244: movs r0, 0 bl sub_80E8D8C bl sub_80E8504 bl sub_80E9AD4 bl sub_80E68E8 bl sub_80E88F0 bl sub_80E9E98 b _080E726E _080E7260: bl sub_80EA050 lsls r0, 24 cmp r0, 0 beq _080E7288 bl sub_80E9C94 _080E726E: ldrh r0, [r4, 0x24] adds r0, 0x1 strh r0, [r4, 0x24] b _080E7288 _080E7276: movs r0, 0x1 bl sub_80E87CC movs r0, 0x1 bl sub_80E8958 ldr r0, _080E7290 @ =sub_80E7294 bl sub_80E682C _080E7288: pop {r4} pop {r0} bx r0 .align 2, 0 _080E7290: .4byte sub_80E7294 thumb_func_end sub_80E7218 thumb_func_start sub_80E7294 sub_80E7294: @ 80E7294 push {r4,lr} bl sub_80E7B40 adds r1, r0, 0 ldr r4, _080E72CC @ =0x02001000 ldr r2, _080E72D0 @ =0x000001b9 adds r0, r4, r2 strb r1, [r0] adds r2, 0x7 adds r0, r4, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 beq _080E72DC movs r0, 0x5 bl PlaySE movs r1, 0xE2 lsls r1, 1 adds r0, r4, r1 ldr r1, _080E72D4 @ =sub_80E7294 str r1, [r0] ldr r0, _080E72D8 @ =sub_80E7458 bl sub_80E682C b _080E731A .align 2, 0 _080E72CC: .4byte 0x02001000 _080E72D0: .4byte 0x000001b9 _080E72D4: .4byte sub_80E7294 _080E72D8: .4byte sub_80E7458 _080E72DC: lsls r0, r1, 24 cmp r0, 0 beq _080E72E8 movs r0, 0x5 bl PlaySE _080E72E8: ldr r0, _080E7304 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080E730C movs r0, 0x5 bl PlaySE ldr r0, _080E7308 @ =sub_80E7324 bl sub_80E682C b _080E731A .align 2, 0 _080E7304: .4byte gMain _080E7308: .4byte sub_80E7324 _080E730C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080E731A ldr r0, _080E7320 @ =sub_80E73D0 bl sub_80E682C _080E731A: pop {r4} pop {r0} bx r0 .align 2, 0 _080E7320: .4byte sub_80E73D0 thumb_func_end sub_80E7294 thumb_func_start sub_80E7324 sub_80E7324: @ 80E7324 push {lr} ldr r0, _080E733C @ =0x02001000 ldrh r1, [r0, 0x24] adds r2, r0, 0 cmp r1, 0x4 bhi _080E73C6 lsls r0, r1, 2 ldr r1, _080E7340 @ =_080E7344 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E733C: .4byte 0x02001000 _080E7340: .4byte _080E7344 .align 2, 0 _080E7344: .4byte _080E7358 .4byte _080E737C .4byte _080E7384 .4byte _080E738A .4byte _080E73A4 _080E7358: bl sub_80E7DD0 lsls r0, 24 cmp r0, 0 bne _080E7370 ldr r0, _080E736C @ =sub_80E7294 bl sub_80E682C b _080E73C6 .align 2, 0 _080E736C: .4byte sub_80E7294 _080E7370: bl sub_80E88F0 movs r0, 0 bl sub_80E87CC b _080E7394 _080E737C: ldrh r0, [r2, 0x24] adds r0, 0x1 strh r0, [r2, 0x24] b _080E73C6 _080E7384: bl sub_80E9E98 b _080E7394 _080E738A: bl sub_80EA184 lsls r0, 24 cmp r0, 0 beq _080E73C6 _080E7394: ldr r1, _080E73A0 @ =0x02001000 ldrh r0, [r1, 0x24] adds r0, 0x1 strh r0, [r1, 0x24] b _080E73C6 .align 2, 0 _080E73A0: .4byte 0x02001000 _080E73A4: ldrb r0, [r2, 0x8] cmp r0, 0x6 bne _080E73C0 bl sub_80E7FA8 lsls r0, 24 cmp r0, 0 beq _080E73C0 ldr r0, _080E73BC @ =sub_80E6D7C bl sub_80E682C b _080E73C6 .align 2, 0 _080E73BC: .4byte sub_80E6D7C _080E73C0: ldr r0, _080E73CC @ =sub_80E6AC4 bl sub_80E682C _080E73C6: pop {r0} bx r0 .align 2, 0 _080E73CC: .4byte sub_80E6AC4 thumb_func_end sub_80E7324 thumb_func_start sub_80E73D0 sub_80E73D0: @ 80E73D0 push {lr} ldr r0, _080E73E4 @ =0x02001000 ldrh r0, [r0, 0x24] cmp r0, 0x4 bhi _080E744E lsls r0, 2 ldr r1, _080E73E8 @ =_080E73EC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E73E4: .4byte 0x02001000 _080E73E8: .4byte _080E73EC .align 2, 0 _080E73EC: .4byte _080E7400 .4byte _080E740C .4byte _080E7416 .4byte _080E742C .4byte _080E7444 _080E7400: movs r0, 0 bl sub_80E87CC bl sub_80E88F0 b _080E7436 _080E740C: bl sub_80E9AD4 bl sub_80E9E98 b _080E7436 _080E7416: bl sub_80EA0E4 lsls r0, 24 cmp r0, 0 beq _080E744E movs r0, 0x1 bl sub_80E8D8C bl sub_80E9A14 b _080E7436 _080E742C: bl sub_80E8420 movs r0, 0 bl sub_80E8958 _080E7436: ldr r1, _080E7440 @ =0x02001000 ldrh r0, [r1, 0x24] adds r0, 0x1 strh r0, [r1, 0x24] b _080E744E .align 2, 0 _080E7440: .4byte 0x02001000 _080E7444: bl sub_80E9974 ldr r0, _080E7454 @ =sub_80E6FC8 bl sub_80E682C _080E744E: pop {r0} bx r0 .align 2, 0 _080E7454: .4byte sub_80E6FC8 thumb_func_end sub_80E73D0 thumb_func_start sub_80E7458 sub_80E7458: @ 80E7458 push {r4,r5,lr} ldr r4, _080E7468 @ =0x02001000 ldrh r5, [r4, 0x24] cmp r5, 0 beq _080E746C cmp r5, 0x1 beq _080E74A4 b _080E7518 .align 2, 0 _080E7468: .4byte 0x02001000 _080E746C: movs r1, 0xE2 lsls r1, 1 adds r0, r4, r1 ldr r1, [r0] ldr r0, _080E7480 @ =sub_80E6FC8 cmp r1, r0 bne _080E7484 bl sub_80E9D7C b _080E7488 .align 2, 0 _080E7480: .4byte sub_80E6FC8 _080E7484: bl sub_80E9D00 _080E7488: ldr r4, _080E74A0 @ =0x02001000 movs r2, 0xDF lsls r2, 1 adds r0, r4, r2 ldrb r0, [r0] bl sub_80E9E08 ldrh r0, [r4, 0x24] adds r0, 0x1 strh r0, [r4, 0x24] b _080E7518 .align 2, 0 _080E74A0: .4byte 0x02001000 _080E74A4: bl sub_80E9E54 lsls r0, 24 cmp r0, 0 beq _080E7518 movs r1, 0xE2 lsls r1, 1 adds r0, r4, r1 ldr r1, [r0] ldr r0, _080E74DC @ =sub_80E6FC8 cmp r1, r0 bne _080E74E4 bl sub_80E9D7C ldr r2, _080E74E0 @ =0x000001b5 adds r1, r4, r2 adds r2, 0xB adds r0, r4, r2 ldrb r0, [r0] ldrb r2, [r1] adds r0, r2 strb r0, [r1] bl sub_80E7A98 adds r0, r4, 0 adds r0, 0x96 b _080E74FE .align 2, 0 _080E74DC: .4byte sub_80E6FC8 _080E74E0: .4byte 0x000001b5 _080E74E4: ldr r0, _080E7520 @ =0x00009a29 adds r1, r4, r0 movs r2, 0xE0 lsls r2, 1 adds r0, r4, r2 ldrb r0, [r0] ldrb r2, [r1] adds r0, r2 strb r0, [r1] bl sub_80E7D30 ldr r1, _080E7524 @ =0x000001b9 adds r0, r4, r1 _080E74FE: strb r5, [r0] ldr r1, _080E7528 @ =0x02001000 movs r0, 0xDF lsls r0, 1 adds r2, r1, r0 movs r0, 0x2 strb r0, [r2] movs r2, 0xE2 lsls r2, 1 adds r0, r1, r2 ldr r0, [r0] bl sub_80E682C _080E7518: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E7520: .4byte 0x00009a29 _080E7524: .4byte 0x000001b9 _080E7528: .4byte 0x02001000 thumb_func_end sub_80E7458 thumb_func_start sub_80E752C sub_80E752C: @ 80E752C push {r4,lr} sub sp, 0x4 ldr r4, _080E7540 @ =0x02001000 ldrh r1, [r4, 0x24] cmp r1, 0 beq _080E7544 cmp r1, 0x1 beq _080E755C b _080E756C .align 2, 0 _080E7540: .4byte 0x02001000 _080E7544: movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldrh r0, [r4, 0x24] adds r0, 0x1 strh r0, [r4, 0x24] b _080E756C _080E755C: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _080E756C ldr r0, [r4] bl SetMainCallback2 _080E756C: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_80E752C thumb_func_start sub_80E7574 sub_80E7574: @ 80E7574 push {r4,r5,lr} ldr r4, _080E75B8 @ =0x02001000 ldrb r5, [r4, 0x8] cmp r5, 0x1 bne _080E75BC adds r0, r4, 0 adds r0, 0x86 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r1, r4, 0 adds r1, 0x7E adds r0, r1 ldrb r0, [r0] cmp r0, 0x2 bne _080E75BC adds r0, r4, 0 adds r0, 0x27 ldrb r0, [r0] lsls r0, 1 subs r1, 0x72 adds r0, r1 ldrh r0, [r0] bl sub_80EB2D4 lsls r0, 16 lsrs r0, 16 cmp r0, 0x7 beq _080E75BC adds r0, r4, 0 adds r0, 0x7D strb r5, [r0] adds r1, r4, 0 b _080E75C6 .align 2, 0 _080E75B8: .4byte 0x02001000 _080E75BC: ldr r1, _080E75D4 @ =0x02001000 adds r2, r1, 0 adds r2, 0x7D movs r0, 0 strb r0, [r2] _080E75C6: adds r1, 0x7D movs r0, 0 strb r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E75D4: .4byte 0x02001000 thumb_func_end sub_80E7574 thumb_func_start sub_80E75D8 sub_80E75D8: @ 80E75D8 push {r4-r6,lr} movs r4, 0 ldr r2, _080E75FC @ =gMain ldrh r1, [r2, 0x2E] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080E7604 ldr r1, _080E7600 @ =0x02001000 adds r0, r1, 0 adds r0, 0x84 ldrb r0, [r0] adds r2, r1, 0 adds r2, 0x86 strb r0, [r2] adds r1, 0x85 movs r0, 0x2 b _080E768E .align 2, 0 _080E75FC: .4byte gMain _080E7600: .4byte 0x02001000 _080E7604: ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080E7630 ldr r2, _080E762C @ =0x02001000 adds r1, r2, 0 adds r1, 0x86 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 bge _080E765C adds r0, r2, 0 adds r0, 0x84 ldrb r0, [r0] strb r0, [r1] b _080E765C .align 2, 0 _080E762C: .4byte 0x02001000 _080E7630: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080E7658 ldr r0, _080E7684 @ =0x02001000 adds r3, r0, 0 adds r3, 0x86 ldrb r1, [r3] adds r1, 0x1 strb r1, [r3] adds r0, 0x84 lsls r1, 24 asrs r1, 24 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r1, r0 ble _080E7656 strb r4, [r3] _080E7656: movs r4, 0x1 _080E7658: cmp r4, 0 beq _080E76EA _080E765C: ldr r2, _080E7684 @ =0x02001000 ldrb r3, [r2, 0x9] cmp r3, 0x2 bne _080E7692 adds r1, r2, 0 adds r1, 0x86 adds r0, r2, 0 adds r0, 0x84 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r1, r0 bne _080E7688 adds r0, r2, 0 adds r0, 0x85 strb r3, [r0] b _080E77BC .align 2, 0 _080E7684: .4byte 0x02001000 _080E7688: adds r1, r2, 0 adds r1, 0x85 movs r0, 0 _080E768E: strb r0, [r1] b _080E77BC _080E7692: movs r0, 0x85 adds r0, r2 mov r12, r0 adds r4, r2, 0 adds r4, 0x83 movs r1, 0 ldrsb r1, [r0, r1] ldrb r3, [r4] movs r0, 0 ldrsb r0, [r4, r0] cmp r1, r0 blt _080E76B0 subs r0, r3, 0x1 mov r1, r12 strb r0, [r1] _080E76B0: adds r1, r2, 0 adds r1, 0x86 adds r0, r2, 0 adds r0, 0x84 ldrb r3, [r1] ldrb r1, [r1] lsls r1, 24 asrs r1, 24 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r1, r0 beq _080E77BC ldrb r0, [r4] adds r4, r0, 0 muls r4, r3 adds r0, r4, 0 mov r5, r12 ldrb r5, [r5] adds r0, r5 lsls r0, 24 lsrs r0, 24 ldrb r1, [r2, 0xA] cmp r0, r1 bcc _080E77BC subs r0, r1 mov r6, r12 strb r0, [r6] b _080E77BC _080E76EA: ldrh r2, [r2, 0x30] movs r0, 0x20 ands r0, r2 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 beq _080E7744 ldr r2, _080E7728 @ =0x02001000 adds r3, r2, 0 adds r3, 0x85 ldrb r0, [r3] subs r0, 0x1 strb r0, [r3] lsls r0, 24 cmp r0, 0 bge _080E77BC adds r1, r2, 0 adds r1, 0x86 adds r0, r2, 0 adds r0, 0x84 ldrb r4, [r1] ldrb r1, [r1] lsls r1, 24 asrs r1, 24 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r1, r0 bne _080E772C movs r0, 0x2 b _080E77BA .align 2, 0 _080E7728: .4byte 0x02001000 _080E772C: adds r0, r2, 0 adds r0, 0x83 ldrb r0, [r0] subs r1, r0, 0x1 strb r1, [r3] adds r5, r4, 0 muls r5, r0 adds r0, r5, 0 adds r1, r0 lsls r1, 24 lsrs r0, r1, 24 b _080E77B2 _080E7744: movs r0, 0x10 ands r0, r2 cmp r0, 0 beq _080E77C0 ldr r2, _080E777C @ =0x02001000 adds r5, r2, 0 adds r5, 0x86 adds r0, r2, 0 adds r0, 0x84 movs r1, 0 ldrsb r1, [r5, r1] ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r1, r0 bne _080E7780 adds r1, r2, 0 adds r1, 0x85 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 asrs r0, 24 cmp r0, 0x2 ble _080E77BC strb r4, [r1] b _080E77BC .align 2, 0 _080E777C: .4byte 0x02001000 _080E7780: adds r3, r2, 0 adds r3, 0x85 ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] movs r6, 0x83 adds r6, r2 mov r12, r6 lsls r0, 24 asrs r0, 24 movs r1, 0 ldrsb r1, [r6, r1] cmp r0, r1 blt _080E779E strb r4, [r3] _080E779E: ldrb r1, [r5] mov r4, r12 ldrb r0, [r4] adds r5, r0, 0 muls r5, r1 adds r0, r5, 0 ldrb r6, [r3] adds r0, r6 lsls r0, 24 lsrs r0, 24 _080E77B2: ldrb r1, [r2, 0xA] cmp r0, r1 bcc _080E77BC subs r0, r1 _080E77BA: strb r0, [r3] _080E77BC: movs r0, 0x1 b _080E77C2 _080E77C0: movs r0, 0 _080E77C2: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80E75D8 thumb_func_start sub_80E77C8 sub_80E77C8: @ 80E77C8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r7, 0 ldr r1, _080E780C @ =0x02001000 ldr r2, _080E7810 @ =0x000001b7 adds r0, r1, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r3, r1, 0 cmp r0, 0 beq _080E783E ldr r1, _080E7814 @ =gMain ldrh r2, [r1, 0x30] movs r0, 0x40 ands r0, r2 adds r6, r1, 0 cmp r0, 0 beq _080E7818 movs r4, 0xD4 lsls r4, 1 adds r1, r3, r4 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 ble _080E7806 b _080E7948 _080E7806: movs r0, 0x3 strb r0, [r1] b _080E7948 .align 2, 0 _080E780C: .4byte 0x02001000 _080E7810: .4byte 0x000001b7 _080E7814: .4byte gMain _080E7818: movs r0, 0x80 ands r0, r2 cmp r0, 0 bne _080E7822 b _080E7950 _080E7822: movs r5, 0xD4 lsls r5, 1 adds r1, r3, r5 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 asrs r0, 24 cmp r0, 0x3 bgt _080E7838 b _080E7948 _080E7838: movs r0, 0x1 strb r0, [r1] b _080E7948 _080E783E: adds r0, r3, 0 adds r0, 0x26 ldrb r0, [r0] cmp r0, 0x1 bne _080E789A movs r4, 0 ldr r1, _080E7870 @ =gMain ldrh r2, [r1, 0x30] movs r0, 0x40 ands r0, r2 adds r6, r1, 0 cmp r0, 0 beq _080E7874 movs r6, 0xD4 lsls r6, 1 adds r1, r3, r6 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 bge _080E7944 movs r0, 0x3 strb r0, [r1] b _080E7944 .align 2, 0 _080E7870: .4byte gMain _080E7874: movs r0, 0x80 ands r0, r2 cmp r0, 0 beq _080E7894 movs r0, 0xD4 lsls r0, 1 adds r1, r3, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 asrs r0, 24 cmp r0, 0x3 ble _080E7892 strb r7, [r1] _080E7892: movs r4, 0x1 _080E7894: cmp r4, 0 beq _080E7950 b _080E7944 _080E789A: movs r4, 0 movs r1, 0xE0 lsls r1, 1 adds r5, r3, r1 strb r7, [r5] ldr r1, _080E78E0 @ =gMain ldrh r2, [r1, 0x30] movs r0, 0x40 ands r0, r2 adds r6, r1, 0 cmp r0, 0 beq _080E78E8 movs r2, 0xD4 lsls r2, 1 adds r1, r3, r2 ldrb r2, [r1] movs r0, 0 ldrsb r0, [r1, r0] cmp r0, 0 bne _080E78C4 b _080E7A88 _080E78C4: subs r0, r2, 0x1 strb r0, [r1] ldr r4, _080E78E4 @ =0x000001b5 adds r1, r3, r4 lsls r0, 24 asrs r0, 24 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 cmp r0, r1 bge _080E7932 movs r0, 0xFF strb r0, [r5] b _080E7932 .align 2, 0 _080E78E0: .4byte gMain _080E78E4: .4byte 0x000001b5 _080E78E8: movs r0, 0x80 ands r0, r2 cmp r0, 0 beq _080E792E movs r0, 0xD4 lsls r0, 1 adds r2, r3, r0 movs r1, 0 ldrsb r1, [r2, r1] movs r4, 0xDB lsls r4, 1 adds r0, r3, r4 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 subs r0, 0x1 cmp r1, r0 blt _080E790E b _080E7A88 _080E790E: ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] movs r1, 0 ldrsb r1, [r2, r1] ldr r2, _080E794C @ =0x000001b5 adds r0, r3, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r0, 0x3 cmp r1, r0 ble _080E792C movs r0, 0x1 strb r0, [r5] _080E792C: movs r4, 0x1 _080E792E: cmp r4, 0 beq _080E7950 _080E7932: movs r4, 0xE0 lsls r4, 1 adds r0, r3, r4 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 beq _080E7944 b _080E7A88 _080E7944: bl sub_80E7A98 _080E7948: movs r0, 0x1 b _080E7A8A .align 2, 0 _080E794C: .4byte 0x000001b5 _080E7950: ldrh r1, [r6, 0x30] movs r0, 0x20 ands r0, r1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0 beq _080E7992 ldr r5, _080E7974 @ =0x000001a9 adds r2, r3, r5 ldrb r1, [r2] movs r0, 0 ldrsb r0, [r2, r0] cmp r0, 0 beq _080E7978 subs r0, r1, 0x1 strb r0, [r2] b _080E79E6 .align 2, 0 _080E7974: .4byte 0x000001a9 _080E7978: movs r6, 0xD4 lsls r6, 1 adds r0, r3, r6 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 movs r4, 0xD5 lsls r4, 1 adds r1, r3, r4 adds r0, r1 ldrb r0, [r0] strb r0, [r2] b _080E79E6 _080E7992: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080E79E2 ldr r5, _080E79D4 @ =0x000001b7 adds r0, r3, r5 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 bne _080E79CC ldr r0, _080E79D8 @ =0x000001a9 adds r4, r3, r0 movs r1, 0xD4 lsls r1, 1 adds r0, r3, r1 movs r1, 0 ldrsb r1, [r0, r1] movs r2, 0xD5 lsls r2, 1 adds r0, r3, r2 adds r1, r0 ldrb r5, [r4] movs r2, 0 ldrsb r2, [r4, r2] movs r0, 0 ldrsb r0, [r1, r0] cmp r2, r0 bne _080E79DC _080E79CC: ldr r4, _080E79D8 @ =0x000001a9 adds r0, r3, r4 strb r6, [r0] b _080E79E0 .align 2, 0 _080E79D4: .4byte 0x000001b7 _080E79D8: .4byte 0x000001a9 _080E79DC: adds r0, r5, 0x1 strb r0, [r4] _080E79E0: movs r7, 0x1 _080E79E2: cmp r7, 0 beq _080E7A88 _080E79E6: adds r2, r3, 0 ldr r5, _080E7A48 @ =0x000001b7 adds r7, r2, r5 ldrb r6, [r7] mov r9, r6 movs r1, 0 ldr r0, _080E7A4C @ =0x000001a9 adds r0, r2 mov r12, r0 subs r5, 0xF adds r4, r2, r5 movs r0, 0 ldrsb r0, [r4, r0] movs r6, 0xD5 lsls r6, 1 adds r6, r2 mov r8, r6 add r0, r8 mov r6, r12 movs r5, 0 ldrsb r5, [r6, r5] ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r5, r0 bne _080E7A1C movs r1, 0x1 _080E7A1C: strb r1, [r7] cmp r1, 0 beq _080E7A58 ldr r0, _080E7A50 @ =0x000001b5 adds r1, r2, r0 ldrb r0, [r4] ldrb r1, [r1] subs r0, r1 strb r0, [r4] lsls r0, 24 cmp r0, 0 beq _080E7A36 b _080E7948 _080E7A36: movs r0, 0x1 strb r0, [r4] ldr r1, _080E7A54 @ =0x000001ab adds r0, r2, r1 ldrb r0, [r0] mov r2, r12 strb r0, [r2] b _080E7948 .align 2, 0 _080E7A48: .4byte 0x000001b7 _080E7A4C: .4byte 0x000001a9 _080E7A50: .4byte 0x000001b5 _080E7A54: .4byte 0x000001ab _080E7A58: mov r6, r9 cmp r6, 0 bne _080E7A60 b _080E7948 _080E7A60: ldr r1, _080E7A84 @ =0x000001b5 adds r0, r3, r1 ldrb r0, [r0] ldrb r2, [r4] adds r0, r2 strb r0, [r4] cmp r5, 0 bne _080E7A72 b _080E7948 _080E7A72: movs r0, 0 ldrsb r0, [r4, r0] add r0, r8 ldrb r0, [r0] subs r0, 0x1 mov r4, r12 strb r0, [r4] b _080E7948 .align 2, 0 _080E7A84: .4byte 0x000001b5 _080E7A88: movs r0, 0 _080E7A8A: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80E77C8 thumb_func_start sub_80E7A98 sub_80E7A98: @ 80E7A98 push {lr} ldr r1, _080E7ACC @ =0x02001000 ldr r0, _080E7AD0 @ =0x000001a9 adds r3, r1, r0 movs r2, 0xD4 lsls r2, 1 adds r0, r1, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r2, 0x2 adds r1, r2 adds r0, r1 movs r1, 0 ldrsb r1, [r3, r1] ldrb r2, [r0] ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r1, r0 blt _080E7AC6 subs r0, r2, 0x1 strb r0, [r3] _080E7AC6: pop {r0} bx r0 .align 2, 0 _080E7ACC: .4byte 0x02001000 _080E7AD0: .4byte 0x000001a9 thumb_func_end sub_80E7A98 thumb_func_start sub_80E7AD4 sub_80E7AD4: @ 80E7AD4 push {lr} ldr r3, _080E7B08 @ =0x02001000 adds r0, r3, 0 adds r0, 0x26 ldrb r0, [r0] cmp r0, 0 bne _080E7B10 ldr r1, _080E7B0C @ =0x000001a9 adds r0, r3, r1 movs r1, 0 ldrsb r1, [r0, r1] movs r2, 0xD4 lsls r2, 1 adds r0, r3, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 1 adds r1, r0 adds r0, r3, 0 adds r0, 0x2A adds r1, r0 ldrb r1, [r1] adds r2, 0x10 b _080E7B34 .align 2, 0 _080E7B08: .4byte 0x02001000 _080E7B0C: .4byte 0x000001a9 _080E7B10: ldr r1, _080E7B3C @ =0x000001a9 adds r0, r3, r1 movs r2, 0 ldrsb r2, [r0, r2] subs r1, 0x1 adds r0, r3, r1 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 3 subs r0, r1 lsls r0, 1 adds r2, r0 adds r0, r3, 0 adds r0, 0x40 adds r2, r0 ldrb r1, [r2] movs r2, 0xDC lsls r2, 1 _080E7B34: adds r0, r3, r2 strb r1, [r0] pop {r0} bx r0 .align 2, 0 _080E7B3C: .4byte 0x000001a9 thumb_func_end sub_80E7AD4 thumb_func_start sub_80E7B40 sub_80E7B40: @ 80E7B40 push {r4-r7,lr} movs r5, 0 ldr r2, _080E7B8C @ =0x02001000 movs r0, 0xE0 lsls r0, 1 adds r6, r2, r0 strb r5, [r6] ldr r1, _080E7B90 @ =gMain ldrh r4, [r1, 0x30] movs r0, 0x40 ands r0, r4 adds r3, r2, 0 adds r7, r1, 0 cmp r0, 0 beq _080E7B9C ldr r2, _080E7B94 @ =0x000099a4 adds r1, r3, r2 ldrb r2, [r1] movs r0, 0 ldrsb r0, [r1, r0] cmp r0, 0 bne _080E7B6E b _080E7D1A _080E7B6E: subs r0, r2, 0x1 strb r0, [r1] ldr r4, _080E7B98 @ =0x00009a29 adds r1, r3, r4 lsls r0, 24 asrs r0, 24 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 cmp r0, r1 bge _080E7BF2 movs r0, 0xFF strb r0, [r6] b _080E7D1A .align 2, 0 _080E7B8C: .4byte 0x02001000 _080E7B90: .4byte gMain _080E7B94: .4byte 0x000099a4 _080E7B98: .4byte 0x00009a29 _080E7B9C: movs r0, 0x80 ands r0, r4 cmp r0, 0 beq _080E7BEE ldr r0, _080E7BE0 @ =0x000099a4 adds r2, r3, r0 movs r1, 0 ldrsb r1, [r2, r1] ldr r4, _080E7BE4 @ =0x00009a28 adds r0, r3, r4 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 subs r0, 0x1 cmp r1, r0 blt _080E7BBE b _080E7D1A _080E7BBE: ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] movs r1, 0 ldrsb r1, [r2, r1] ldr r2, _080E7BE8 @ =0x00009a29 adds r0, r3, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r0, 0x4 cmp r1, r0 blt _080E7BEC movs r0, 0x1 strb r0, [r6] b _080E7D1A .align 2, 0 _080E7BE0: .4byte 0x000099a4 _080E7BE4: .4byte 0x00009a28 _080E7BE8: .4byte 0x00009a29 _080E7BEC: movs r5, 0x1 _080E7BEE: cmp r5, 0 beq _080E7BFA _080E7BF2: bl sub_80E7D30 _080E7BF6: movs r0, 0x1 b _080E7D1C _080E7BFA: ldrh r1, [r7, 0x30] movs r0, 0x20 ands r0, r1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0 beq _080E7C38 ldr r4, _080E7C30 @ =0x000099a5 adds r2, r3, r4 ldrb r0, [r2] subs r0, 0x1 strb r0, [r2] lsls r0, 24 cmp r0, 0 bge _080E7BF6 ldr r6, _080E7C34 @ =0x000099a4 adds r0, r3, r6 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r4, 0x1 adds r1, r3, r4 adds r0, r1 ldrb r0, [r0] subs r0, 0x1 strb r0, [r2] b _080E7BF6 .align 2, 0 _080E7C30: .4byte 0x000099a5 _080E7C34: .4byte 0x000099a4 _080E7C38: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080E7C70 ldr r6, _080E7C68 @ =0x000099a5 adds r4, r3, r6 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldr r2, _080E7C6C @ =0x000099a4 adds r1, r3, r2 movs r2, 0 ldrsb r2, [r1, r2] adds r6, 0x1 adds r1, r3, r6 adds r2, r1 lsls r0, 24 asrs r0, 24 movs r1, 0 ldrsb r1, [r2, r1] cmp r0, r1 blt _080E7BF6 strb r5, [r4] b _080E7BF6 .align 2, 0 _080E7C68: .4byte 0x000099a5 _080E7C6C: .4byte 0x000099a4 _080E7C70: ldrh r1, [r7, 0x2E] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080E7CC4 ldr r1, _080E7CBC @ =0x00009a29 adds r0, r3, r1 ldrb r1, [r0] ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 beq _080E7CA2 negs r0, r1 movs r4, 0xE0 lsls r4, 1 adds r2, r3, r4 strb r0, [r2] lsls r0, 24 asrs r0, 24 movs r1, 0x4 negs r1, r1 cmp r0, r1 bge _080E7CA2 strb r1, [r2] _080E7CA2: ldr r6, _080E7CC0 @ =0x000099a4 adds r1, r3, r6 movs r2, 0xE0 lsls r2, 1 adds r0, r3, r2 ldrb r0, [r0] ldrb r4, [r1] adds r0, r4 strb r0, [r1] movs r6, 0xDF lsls r6, 1 adds r1, r3, r6 b _080E7D16 .align 2, 0 _080E7CBC: .4byte 0x00009a29 _080E7CC0: .4byte 0x000099a4 _080E7CC4: movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080E7D1A ldr r0, _080E7D24 @ =0x00009a29 adds r4, r3, r0 movs r1, 0 ldrsb r1, [r4, r1] ldr r6, _080E7D28 @ =0x00009a28 adds r2, r3, r6 movs r0, 0 ldrsb r0, [r2, r0] subs r0, 0x4 cmp r1, r0 bge _080E7CFE ldrb r1, [r4] adds r1, 0x4 ldrb r0, [r2] subs r0, r1 movs r2, 0xE0 lsls r2, 1 adds r1, r3, r2 strb r0, [r1] lsls r0, 24 asrs r0, 24 cmp r0, 0x4 ble _080E7CFE movs r0, 0x4 strb r0, [r1] _080E7CFE: ldr r4, _080E7D2C @ =0x000099a4 adds r1, r3, r4 movs r6, 0xE0 lsls r6, 1 adds r0, r3, r6 ldrb r0, [r0] ldrb r2, [r1] adds r0, r2 strb r0, [r1] movs r4, 0xDF lsls r4, 1 adds r1, r3, r4 _080E7D16: movs r0, 0x4 strb r0, [r1] _080E7D1A: movs r0, 0 _080E7D1C: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080E7D24: .4byte 0x00009a29 _080E7D28: .4byte 0x00009a28 _080E7D2C: .4byte 0x000099a4 thumb_func_end sub_80E7B40 thumb_func_start sub_80E7D30 sub_80E7D30: @ 80E7D30 push {r4,lr} ldr r0, _080E7D60 @ =0x02001000 ldr r1, _080E7D64 @ =0x000099a5 adds r4, r0, r1 ldr r2, _080E7D68 @ =0x000099a4 adds r1, r0, r2 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 adds r2, 0x2 adds r0, r2 adds r1, r0 movs r2, 0 ldrsb r2, [r4, r2] ldrb r3, [r1] movs r0, 0 ldrsb r0, [r1, r0] cmp r2, r0 blt _080E7D5A subs r0, r3, 0x1 strb r0, [r4] _080E7D5A: pop {r4} pop {r0} bx r0 .align 2, 0 _080E7D60: .4byte 0x02001000 _080E7D64: .4byte 0x000099a5 _080E7D68: .4byte 0x000099a4 thumb_func_end sub_80E7D30 thumb_func_start sub_80E7D6C sub_80E7D6C: @ 80E7D6C push {r4,r5,lr} movs r4, 0 ldr r0, _080E7D94 @ =0x02001000 ldrb r1, [r0, 0xA] cmp r4, r1 bcs _080E7D8E adds r5, r0, 0 _080E7D7A: adds r0, r4, 0 ldr r1, _080E7D98 @ =0x0000ffff bl sub_80E7F00 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 ldrb r0, [r5, 0xA] cmp r4, r0 bcc _080E7D7A _080E7D8E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E7D94: .4byte 0x02001000 _080E7D98: .4byte 0x0000ffff thumb_func_end sub_80E7D6C thumb_func_start sub_80E7D9C sub_80E7D9C: @ 80E7D9C push {r4,r5,lr} movs r2, 0 ldr r0, _080E7DCC @ =0x02001000 ldrb r1, [r0, 0xA] cmp r2, r1 bcs _080E7DC6 adds r3, r0, 0 ldr r4, [r3, 0x4] adds r5, r3, 0 adds r5, 0xC _080E7DB0: lsls r0, r2, 1 adds r1, r0, r4 adds r0, r5 ldrh r0, [r0] strh r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 ldrb r0, [r3, 0xA] cmp r2, r0 bcc _080E7DB0 _080E7DC6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E7DCC: .4byte 0x02001000 thumb_func_end sub_80E7D9C thumb_func_start sub_80E7DD0 sub_80E7DD0: @ 80E7DD0 push {r4,lr} ldr r2, _080E7E28 @ =0x02001000 ldr r1, _080E7E2C @ =0x000099a5 adds r0, r2, r1 movs r1, 0 ldrsb r1, [r0, r1] lsls r1, 1 ldr r3, _080E7E30 @ =0x000099a4 adds r0, r2, r3 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 2 adds r1, r0 adds r3, 0x86 adds r0, r2, r3 adds r1, r0 ldrh r4, [r1] adds r0, r2, 0 adds r0, 0x7D ldrb r0, [r0] cmp r0, 0 beq _080E7E34 adds r0, r2, 0 adds r0, 0x86 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r1, r2, 0 adds r1, 0x7E adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bls _080E7E34 adds r0, r4, 0 bl sub_80EB2D4 lsls r0, 16 lsrs r0, 16 cmp r0, 0x7 bne _080E7E34 movs r0, 0 b _080E7E46 .align 2, 0 _080E7E28: .4byte 0x02001000 _080E7E2C: .4byte 0x000099a5 _080E7E30: .4byte 0x000099a4 _080E7E34: ldr r0, _080E7E4C @ =0x02001000 adds r0, 0x27 ldrb r0, [r0] adds r1, r4, 0 bl sub_80E7F00 bl sub_80E95A4 movs r0, 0x1 _080E7E46: pop {r4} pop {r1} bx r1 .align 2, 0 _080E7E4C: .4byte 0x02001000 thumb_func_end sub_80E7DD0 thumb_func_start sub_80E7E50 sub_80E7E50: @ 80E7E50 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r5, 0 movs r2, 0 ldr r1, _080E7EF0 @ =0x02001000 adds r3, r1, 0 adds r3, 0x84 movs r0, 0 ldrsb r0, [r3, r0] cmp r2, r0 bge _080E7EDE mov r8, r1 adds r0, r1, 0 str r0, [sp] _080E7E74: mov r0, r8 adds r0, 0x7E adds r0, r2, r0 movs r1, 0 strb r1, [r0] movs r3, 0 ldr r6, _080E7EF4 @ =0x02001083 movs r0, 0 ldrsb r0, [r6, r0] adds r1, r2, 0x1 str r1, [sp, 0x4] cmp r3, r0 bge _080E7ECE ldr r6, [sp] mov r12, r6 movs r0, 0 mov r10, r0 ldr r1, _080E7EF4 @ =0x02001083 mov r9, r1 ldr r7, _080E7EF8 @ =0x0200100c lsls r4, r2, 1 _080E7E9E: lsls r1, r5, 1 adds r2, r1, r7 mov r6, r12 ldr r0, [r6, 0x4] adds r1, r0 ldrh r0, [r1] strh r0, [r2] adds r0, r3, r4 mov r1, r12 adds r1, 0x8C adds r0, r1 mov r1, r10 strb r1, [r0] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 mov r6, r9 movs r0, 0 ldrsb r0, [r6, r0] cmp r3, r0 blt _080E7E9E _080E7ECE: ldr r1, [sp, 0x4] lsls r0, r1, 16 lsrs r2, r0, 16 ldr r6, _080E7EFC @ =0x02001084 movs r0, 0 ldrsb r0, [r6, r0] cmp r2, r0 blt _080E7E74 _080E7EDE: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E7EF0: .4byte 0x02001000 _080E7EF4: .4byte 0x02001083 _080E7EF8: .4byte 0x0200100c _080E7EFC: .4byte 0x02001084 thumb_func_end sub_80E7E50 thumb_func_start sub_80E7F00 sub_80E7F00: @ 80E7F00 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 16 lsrs r6, r0, 16 lsls r1, 16 lsrs r1, 16 mov r9, r1 ldr r7, _080E7F68 @ =0x02001000 adds r0, r7, 0 adds r0, 0x83 movs r4, 0 ldrsb r4, [r0, r4] adds r0, r6, 0 adds r1, r4, 0 bl __divsi3 lsls r0, 16 lsrs r5, r0, 16 adds r0, r6, 0 adds r1, r4, 0 bl __modsi3 lsls r0, 16 lsrs r0, 16 mov r8, r0 lsls r0, r6, 1 adds r1, r7, 0 adds r1, 0xC adds r0, r1 ldrh r0, [r0] bl sub_80EB2D4 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 mov r0, r9 bl sub_80EB2D4 lsls r0, 16 lsrs r3, r0, 16 cmp r4, 0x7 bne _080E7F6C cmp r3, 0x7 beq _080E7F7C adds r1, r7, 0 adds r1, 0x7E adds r1, r5, r1 ldrb r0, [r1] subs r0, 0x1 b _080E7F7A .align 2, 0 _080E7F68: .4byte 0x02001000 _080E7F6C: cmp r3, 0x7 bne _080E7F7C adds r1, r7, 0 adds r1, 0x7E adds r1, r5, r1 ldrb r0, [r1] adds r0, 0x1 _080E7F7A: strb r0, [r1] _080E7F7C: movs r3, 0 ldr r2, _080E7FA4 @ =0x02001000 lsls r0, r5, 1 add r0, r8 adds r1, r2, 0 adds r1, 0x8C adds r0, r1 strb r3, [r0] lsls r0, r6, 1 adds r2, 0xC adds r0, r2 mov r1, r9 strh r1, [r0] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E7FA4: .4byte 0x02001000 thumb_func_end sub_80E7F00 thumb_func_start sub_80E7FA8 sub_80E7FA8: @ 80E7FA8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r0, 0 mov r8, r0 movs r5, 0 ldr r0, _080E8040 @ =0x02001000 ldrb r1, [r0, 0xA] cmp r8, r1 bcs _080E802E ldr r3, _080E8044 @ =0x00009e14 adds r6, r0, r3 ldr r1, _080E8048 @ =0x00009e41 adds r1, r0 mov r9, r1 _080E7FC8: ldr r3, _080E804C @ =0xffff61ec adds r7, r6, r3 ldr r0, [r7, 0x4] lsls r4, r5, 1 adds r0, r4, r0 ldrh r1, [r0] adds r0, r6, 0 movs r2, 0 bl sub_80EB218 ldr r1, _080E8050 @ =0xffff61f8 adds r0, r6, r1 adds r0, r4 ldrh r1, [r0] mov r0, r9 movs r2, 0 bl sub_80EB218 adds r1, r6, 0 mov r2, r9 ldrb r0, [r1] adds r4, r5, 0x1 ldrb r3, [r2] cmp r0, r3 bne _080E8018 adds r3, r7, 0 cmp r0, 0xFF beq _080E8010 _080E8000: adds r1, 0x1 adds r2, 0x1 ldrb r0, [r1] ldrb r5, [r2] cmp r0, r5 bne _080E8018 cmp r0, 0xFF bne _080E8000 _080E8010: ldrb r0, [r1] ldrb r2, [r2] cmp r0, r2 beq _080E8024 _080E8018: mov r0, r8 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r3, _080E8040 @ =0x02001000 _080E8024: lsls r0, r4, 16 lsrs r5, r0, 16 ldrb r3, [r3, 0xA] cmp r5, r3 bcc _080E7FC8 _080E802E: mov r1, r8 lsls r0, r1, 24 lsrs r0, 24 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080E8040: .4byte 0x02001000 _080E8044: .4byte 0x00009e14 _080E8048: .4byte 0x00009e41 _080E804C: .4byte 0xffff61ec _080E8050: .4byte 0xffff61f8 thumb_func_end sub_80E7FA8 thumb_func_start sub_80E8054 sub_80E8054: @ 80E8054 push {r4,lr} movs r1, 0 ldr r2, _080E8078 @ =0x02001000 ldrb r0, [r2, 0xA] cmp r1, r0 bcs _080E808A adds r4, r2, 0 adds r4, 0xC ldr r3, _080E807C @ =0x0000ffff adds r2, r0, 0 _080E8068: lsls r0, r1, 1 adds r0, r4 ldrh r0, [r0] cmp r0, r3 beq _080E8080 movs r0, 0 b _080E808C .align 2, 0 _080E8078: .4byte 0x02001000 _080E807C: .4byte 0x0000ffff _080E8080: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r2 bcc _080E8068 _080E808A: movs r0, 0x1 _080E808C: pop {r4} pop {r1} bx r1 thumb_func_end sub_80E8054 thumb_func_start sub_80E8094 sub_80E8094: @ 80E8094 push {r4-r7,lr} movs r5, 0 ldr r6, _080E80C4 @ =0x0200ae14 adds r7, r6, 0 adds r7, 0x2D _080E809E: lsls r4, r5, 1 ldr r1, _080E80C8 @ =0xffff61f8 adds r0, r6, r1 adds r0, r4 ldrh r1, [r0] adds r0, r6, 0 movs r2, 0 bl sub_80EB218 ldr r0, _080E80CC @ =gMysteryEventPhrase adds r4, r0 ldrh r1, [r4] adds r0, r7, 0 movs r2, 0 bl sub_80EB218 adds r3, r6, 0 adds r4, r7, 0 b _080E80D8 .align 2, 0 _080E80C4: .4byte 0x0200ae14 _080E80C8: .4byte 0xffff61f8 _080E80CC: .4byte gMysteryEventPhrase _080E80D0: adds r4, 0x1 adds r3, 0x1 cmp r2, r1 bne _080E80F4 _080E80D8: ldrb r2, [r3] adds r0, r2, 0 cmp r0, 0xFF beq _080E80EE ldrb r1, [r4] adds r0, r1, 0 cmp r0, 0xFF bne _080E80D0 ldrb r0, [r3] cmp r0, 0xFF bne _080E80F4 _080E80EE: ldrb r0, [r4] cmp r0, 0xFF beq _080E80F8 _080E80F4: movs r0, 0 b _080E8104 _080E80F8: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x3 bls _080E809E movs r0, 0x1 _080E8104: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80E8094 thumb_func_start sub_80E810C sub_80E810C: @ 80E810C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r5, 0 ldr r6, _080E8198 @ =0x0200ae6e ldr r0, _080E819C @ =0xffff6192 adds r0, r6 mov r9, r0 movs r1, 0 mov r8, r1 adds r7, r6, 0 adds r7, 0x80 ldr r2, _080E81A0 @ =gBerryMasterWifePhrases mov r10, r2 _080E812C: mov r0, r9 ldrh r1, [r0, 0xC] adds r0, r6, 0 movs r2, 0 bl sub_80EB218 mov r1, r8 strb r1, [r0] adds r0, 0x1 mov r2, r9 ldrh r1, [r2, 0xE] movs r2, 0 bl sub_80EB218 lsls r4, r5, 2 mov r1, r10 adds r0, r4, r1 ldrh r1, [r0] adds r0, r7, 0 movs r2, 0 bl sub_80EB218 mov r2, r8 strb r2, [r0] adds r0, 0x1 ldr r1, _080E81A4 @ =gBerryMasterWifePhrases + 0x2 adds r4, r1 ldrh r1, [r4] movs r2, 0 bl sub_80EB218 adds r0, r6, 0 adds r3, r7, 0 adds r4, r5, 0x1 _080E8170: ldrb r2, [r0] cmp r2, 0xFF beq _080E818A ldrb r1, [r3] cmp r1, 0xFF beq _080E8184 adds r3, 0x1 adds r0, 0x1 cmp r2, r1 beq _080E8170 _080E8184: ldrb r0, [r0] cmp r0, 0xFF bne _080E81A8 _080E818A: ldrb r0, [r3] cmp r0, 0xFF bne _080E81A8 lsls r0, r4, 24 lsrs r0, 24 b _080E81B2 .align 2, 0 _080E8198: .4byte 0x0200ae6e _080E819C: .4byte 0xffff6192 _080E81A0: .4byte gBerryMasterWifePhrases _080E81A4: .4byte gBerryMasterWifePhrases + 0x2 _080E81A8: lsls r0, r4, 16 lsrs r5, r0, 16 cmp r5, 0x4 bls _080E812C movs r0, 0 _080E81B2: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80E810C thumb_func_start sub_80E81C0 sub_80E81C0: @ 80E81C0 push {r4,lr} ldr r0, _080E81EC @ =gStringVar2 ldr r4, _080E81F0 @ =0x02001000 ldr r2, _080E81F4 @ =0x00009c7c adds r1, r4, r2 ldrh r1, [r1] movs r2, 0 bl sub_80EB218 movs r1, 0 strb r1, [r0] adds r0, 0x1 ldr r1, _080E81F8 @ =0x00009c7e adds r4, r1 ldrh r1, [r4] movs r2, 0 bl sub_80EB218 pop {r4} pop {r0} bx r0 .align 2, 0 _080E81EC: .4byte gStringVar2 _080E81F0: .4byte 0x02001000 _080E81F4: .4byte 0x00009c7c _080E81F8: .4byte 0x00009c7e thumb_func_end sub_80E81C0 thumb_func_start sub_80E81FC sub_80E81FC: @ 80E81FC push {lr} movs r0, 0x5 bl PlaySE bl sub_80E95A4 movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0xD bl MenuZeroFillWindowRect pop {r0} bx r0 thumb_func_end sub_80E81FC thumb_func_start sub_80E8218 sub_80E8218: @ 80E8218 push {r4,r5,lr} sub sp, 0x40 mov r1, sp ldr r0, _080E8260 @ =gSpriteSheets_Interview ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r4,r5} stm r1!, {r2,r4,r5} ldr r0, [r0] str r0, [r1] add r4, sp, 0x28 adds r1, r4, 0 ldr r0, _080E8264 @ =gSpritePalettes_Interview ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} mov r0, sp bl LoadSpriteSheets adds r0, r4, 0 bl LoadSpritePalettes bl sub_80E8268 bl sub_80E8818 bl sub_80E8A7C add sp, 0x40 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E8260: .4byte gSpriteSheets_Interview _080E8264: .4byte gSpritePalettes_Interview thumb_func_end sub_80E8218 thumb_func_start sub_80E8268 sub_80E8268: @ 80E8268 push {lr} ldr r0, _080E82B0 @ =gSpriteTemplate_83DBBFC movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, _080E82B4 @ =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldr r0, _080E82B8 @ =gUnknown_083DB694 ldr r3, [r0] adds r0, r3, 0 adds r0, 0x8A ldrh r0, [r0] lsls r0, 3 adds r0, 0x8 movs r2, 0 strh r0, [r1, 0x22] adds r0, r3, 0 adds r0, 0x88 ldrh r0, [r0] lsls r0, 3 adds r0, 0x4 strh r0, [r1, 0x20] strh r2, [r1, 0x2E] strh r2, [r1, 0x30] adds r0, r3, 0 adds r0, 0x98 str r1, [r0] pop {r0} bx r0 .align 2, 0 _080E82B0: .4byte gSpriteTemplate_83DBBFC _080E82B4: .4byte gSprites _080E82B8: .4byte gUnknown_083DB694 thumb_func_end sub_80E8268 thumb_func_start sub_80E82BC sub_80E82BC: @ 80E82BC push {r4-r7,lr} adds r3, r0, 0 movs r1, 0x30 ldrsh r0, [r3, r1] cmp r0, 0 bne _080E838C ldr r0, _080E8334 @ =gUnknown_083DB694 ldr r2, [r0] adds r1, r2, 0 adds r1, 0x87 ldrb r1, [r1] mov r12, r0 cmp r1, 0 beq _080E836C adds r0, r2, 0 adds r0, 0x86 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 16 lsrs r5, r0, 16 adds r0, r2, 0 adds r0, 0x85 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 16 lsrs r4, r0, 16 movs r7, 0 movs r1, 0 cmp r7, r4 bcs _080E8316 lsls r6, r5, 1 adds r2, 0x8C _080E8300: adds r0, r1, r6 adds r0, r2, r0 ldrb r0, [r0] adds r0, r7, r0 lsls r0, 16 lsrs r7, r0, 16 adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r4 bcc _080E8300 _080E8316: mov r0, r12 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x84 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r5, r0 bne _080E8338 movs r0, 0x60 strh r0, [r3, 0x22] lsls r0, r4, 3 subs r0, r4 adds r0, 0x3 b _080E8356 .align 2, 0 _080E8334: .4byte gUnknown_083DB694 _080E8338: adds r1, r2, 0 adds r1, 0x8A lsls r0, r5, 1 ldrh r1, [r1] adds r0, r1 lsls r0, 3 adds r0, 0x8 strh r0, [r3, 0x22] adds r0, r2, 0 adds r0, 0x88 ldrh r0, [r0] adds r0, r7 movs r1, 0xB muls r1, r4 adds r0, r1 _080E8356: lsls r0, 3 adds r0, 0x4 strh r0, [r3, 0x20] movs r1, 0 ldr r0, _080E8368 @ =0x0000fffa strh r0, [r3, 0x24] strh r1, [r3, 0x2E] b _080E838C .align 2, 0 _080E8368: .4byte 0x0000fffa _080E836C: ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _080E838C strh r1, [r3, 0x2E] ldrh r0, [r3, 0x24] adds r0, 0x1 strh r0, [r3, 0x24] lsls r0, 16 cmp r0, 0 ble _080E838C ldr r0, _080E8394 @ =0x0000fffa strh r0, [r3, 0x24] _080E838C: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E8394: .4byte 0x0000fffa thumb_func_end sub_80E82BC thumb_func_start sub_80E8398 sub_80E8398: @ 80E8398 push {lr} lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x1 beq _080E83D4 cmp r3, 0x1 bgt _080E83AC cmp r3, 0 beq _080E83B2 b _080E8416 _080E83AC: cmp r3, 0x2 beq _080E83F8 b _080E8416 _080E83B2: ldr r0, _080E83D0 @ =gUnknown_083DB694 ldr r0, [r0] adds r0, 0x98 ldr r1, [r0] strh r3, [r1, 0x30] ldr r1, [r0] strh r3, [r1, 0x24] ldr r1, [r0] adds r1, 0x3E ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 b _080E8414 .align 2, 0 _080E83D0: .4byte gUnknown_083DB694 _080E83D4: ldr r0, _080E83F4 @ =gUnknown_083DB694 ldr r1, [r0] adds r1, 0x98 ldr r0, [r1] movs r2, 0 strh r3, [r0, 0x30] ldr r0, [r1] strh r2, [r0, 0x24] ldr r1, [r1] adds r1, 0x3E ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 b _080E8414 .align 2, 0 _080E83F4: .4byte gUnknown_083DB694 _080E83F8: ldr r0, _080E841C @ =gUnknown_083DB694 ldr r1, [r0] adds r1, 0x98 ldr r2, [r1] movs r3, 0 movs r0, 0x1 strh r0, [r2, 0x30] ldr r0, [r1] strh r3, [r0, 0x24] ldr r1, [r1] adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 _080E8414: strb r0, [r1] _080E8416: pop {r0} bx r0 .align 2, 0 _080E841C: .4byte gUnknown_083DB694 thumb_func_end sub_80E8398 thumb_func_start sub_80E8420 sub_80E8420: @ 80E8420 push {r4-r7,lr} sub sp, 0x18 mov r1, sp ldr r0, _080E84E0 @ =gSpriteTemplate_83DBCAC ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} mov r0, sp movs r1, 0 movs r2, 0 movs r3, 0x3 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, _080E84E4 @ =gUnknown_083DB694 ldr r7, [r1] adds r5, r7, 0 adds r5, 0x9C lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r4, _080E84E8 @ =gSprites adds r1, r4 str r1, [r5] ldr r0, _080E84EC @ =gSpriteAnimTable_83DBC8C str r0, [sp, 0x8] ldr r0, _080E84F0 @ =sub_80E872C str r0, [sp, 0x14] mov r0, sp movs r1, 0 movs r2, 0 movs r3, 0x4 bl CreateSprite lsls r0, 24 lsrs r0, 24 adds r6, r7, 0 adds r6, 0xA0 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 str r1, [r6] ldr r0, _080E84F4 @ =gSpriteAnimTable_83DBC9C str r0, [sp, 0x8] ldr r0, _080E84F8 @ =sub_80E8760 str r0, [sp, 0x14] mov r0, sp movs r1, 0 movs r2, 0 movs r3, 0x5 bl CreateSprite lsls r0, 24 lsrs r0, 24 adds r2, r7, 0 adds r2, 0xA4 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 str r1, [r2] ldr r0, [r5] movs r1, 0 strh r1, [r0, 0x2E] ldr r0, [r6] strh r1, [r0, 0x2E] ldr r0, [r2] strh r1, [r0, 0x2E] movs r0, 0x1 bl IndexOfSpritePaletteTag ldr r1, [r5] lsls r0, 24 lsrs r0, 20 ldr r2, _080E84FC @ =0x00000101 adds r0, r2 strh r0, [r1, 0x34] bl sub_80E8534 adds r1, r7, 0 adds r1, 0x96 movs r0, 0x1 strb r0, [r1] ldr r1, _080E8500 @ =REG_BLDCNT movs r3, 0xFD lsls r3, 6 adds r0, r3, 0 strh r0, [r1] add sp, 0x18 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E84E0: .4byte gSpriteTemplate_83DBCAC _080E84E4: .4byte gUnknown_083DB694 _080E84E8: .4byte gSprites _080E84EC: .4byte gSpriteAnimTable_83DBC8C _080E84F0: .4byte sub_80E872C _080E84F4: .4byte gSpriteAnimTable_83DBC9C _080E84F8: .4byte sub_80E8760 _080E84FC: .4byte 0x00000101 _080E8500: .4byte REG_BLDCNT thumb_func_end sub_80E8420 thumb_func_start sub_80E8504 sub_80E8504: @ 80E8504 push {r4,lr} ldr r0, _080E8530 @ =gUnknown_083DB694 ldr r4, [r0] adds r0, r4, 0 adds r0, 0x9C ldr r0, [r0] bl DestroySprite adds r0, r4, 0 adds r0, 0xA0 ldr r0, [r0] bl DestroySprite adds r0, r4, 0 adds r0, 0xA4 ldr r0, [r0] bl DestroySprite pop {r4} pop {r0} bx r0 .align 2, 0 _080E8530: .4byte gUnknown_083DB694 thumb_func_end sub_80E8504 thumb_func_start sub_80E8534 sub_80E8534: @ 80E8534 push {r4-r7,lr} mov r7, r8 push {r7} ldr r1, _080E8554 @ =gUnknown_083DB694 ldr r3, [r1] ldr r2, _080E8558 @ =0x000001b7 adds r0, r3, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r4, r1, 0 cmp r0, 0 beq _080E8560 ldr r1, _080E855C @ =gUnknown_020388AC movs r0, 0x1 b _080E8598 .align 2, 0 _080E8554: .4byte gUnknown_083DB694 _080E8558: .4byte 0x000001b7 _080E855C: .4byte gUnknown_020388AC _080E8560: adds r0, r3, 0 adds r0, 0x26 ldrb r2, [r0] cmp r2, 0 bne _080E8578 ldr r0, _080E8574 @ =gUnknown_020388AC strb r2, [r0] adds r7, r0, 0 b _080E859C .align 2, 0 _080E8574: .4byte gUnknown_020388AC _080E8578: movs r1, 0xD4 lsls r1, 1 adds r0, r3, r1 ldrh r1, [r0] movs r0, 0xC0 lsls r0, 3 cmp r1, r0 bne _080E8594 ldr r1, _080E8590 @ =gUnknown_020388AC movs r0, 0x2 b _080E8598 .align 2, 0 _080E8590: .4byte gUnknown_020388AC _080E8594: ldr r1, _080E85F4 @ =gUnknown_020388AC movs r0, 0x3 _080E8598: strb r0, [r1] adds r7, r1, 0 _080E859C: ldr r2, [r4] adds r4, r2, 0 adds r4, 0x9C ldr r1, [r4] ldrb r0, [r7] movs r3, 0 mov r8, r3 strh r0, [r1, 0x32] adds r5, r2, 0 adds r5, 0xA0 ldr r1, [r5] ldrb r0, [r7] strh r0, [r1, 0x32] adds r6, r2, 0 adds r6, 0xA4 ldr r1, [r6] ldrb r0, [r7] strh r0, [r1, 0x32] ldr r0, [r4] ldrb r1, [r7] bl StartSpriteAnim ldr r0, [r5] ldrb r1, [r7] bl StartSpriteAnim ldr r0, [r6] ldrb r1, [r7] bl StartSpriteAnim ldr r0, [r4] movs r1, 0x8 strh r1, [r0, 0x38] ldr r0, [r4] strh r1, [r0, 0x3A] ldr r0, [r4] mov r1, r8 strh r1, [r0, 0x30] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E85F4: .4byte gUnknown_020388AC thumb_func_end sub_80E8534 thumb_func_start sub_80E85F8 sub_80E85F8: @ 80E85F8 push {r4-r6,lr} adds r5, r0, 0 ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080E8624 ldr r1, _080E8620 @ =gSineTable movs r2, 0x30 ldrsh r0, [r5, r2] lsls r0, 1 adds r0, r1 ldrh r0, [r0] lsls r0, 16 asrs r0, 21 adds r0, 0x8 strh r0, [r5, 0x38] b _080E863A .align 2, 0 _080E8620: .4byte gSineTable _080E8624: ldr r1, _080E8688 @ =gSineTable movs r2, 0x30 ldrsh r0, [r5, r2] lsls r0, 1 adds r0, r1 ldrh r1, [r0] lsls r1, 16 asrs r1, 21 movs r0, 0x8 subs r0, r1 strh r0, [r5, 0x3A] _080E863A: ldrh r0, [r5, 0x30] adds r0, 0x5 movs r1, 0xFF ands r0, r1 strh r0, [r5, 0x30] ldr r2, _080E868C @ =REG_BLDALPHA ldrh r0, [r5, 0x3A] lsls r0, 8 ldrh r1, [r5, 0x38] orrs r0, r1 strh r0, [r2] ldr r0, _080E8690 @ =gUnknown_083DB694 ldr r6, [r0] adds r0, r6, 0 adds r0, 0x96 ldrb r0, [r0] cmp r0, 0 beq _080E871A bl sub_80E8534 adds r1, r6, 0 adds r1, 0x9C ldr r0, [r1] movs r2, 0x8 strh r2, [r0, 0x38] ldr r0, [r1] strh r2, [r0, 0x3A] ldr r1, [r1] movs r0, 0 strh r0, [r1, 0x30] movs r1, 0x32 ldrsh r0, [r5, r1] cmp r0, 0x1 beq _080E86C4 cmp r0, 0x1 bgt _080E8694 cmp r0, 0 beq _080E869E b _080E871A .align 2, 0 _080E8688: .4byte gSineTable _080E868C: .4byte REG_BLDALPHA _080E8690: .4byte gUnknown_083DB694 _080E8694: cmp r0, 0x2 beq _080E86D6 cmp r0, 0x3 beq _080E86DE b _080E871A _080E869E: ldr r2, _080E86C0 @ =0x000001a9 adds r0, r6, r2 movs r1, 0 ldrsb r1, [r0, r1] movs r0, 0x58 muls r0, r1 adds r0, 0x20 strh r0, [r5, 0x20] movs r1, 0xD4 lsls r1, 1 adds r0, r6, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r2, 0xC b _080E870A .align 2, 0 _080E86C0: .4byte 0x000001a9 _080E86C4: movs r0, 0xD8 strh r0, [r5, 0x20] movs r1, 0xD4 lsls r1, 1 adds r0, r6, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 b _080E8714 _080E86D6: movs r0, 0x97 strh r0, [r5, 0x20] movs r0, 0x60 b _080E8718 _080E86DE: ldr r4, _080E8720 @ =gUnknown_083DBCC4 ldr r2, _080E8724 @ =0x000001a9 adds r0, r6, r2 movs r1, 0 ldrsb r1, [r0, r1] movs r0, 0xD4 lsls r0, 1 adds r3, r6, r0 movs r2, 0 ldrsb r2, [r3, r2] lsls r0, r2, 3 subs r0, r2 adds r1, r0 adds r1, r4 movs r0, 0 ldrsb r0, [r1, r0] lsls r0, 3 adds r0, 0x1F strh r0, [r5, 0x20] movs r0, 0 ldrsb r0, [r3, r0] ldr r2, _080E8728 @ =0x000001b5 _080E870A: adds r1, r6, r2 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 subs r0, r1 _080E8714: lsls r0, 4 adds r0, 0x60 _080E8718: strh r0, [r5, 0x22] _080E871A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E8720: .4byte gUnknown_083DBCC4 _080E8724: .4byte 0x000001a9 _080E8728: .4byte 0x000001b5 thumb_func_end sub_80E85F8 thumb_func_start sub_80E872C sub_80E872C: @ 80E872C push {lr} adds r2, r0, 0 ldr r0, _080E875C @ =gUnknown_083DB694 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x96 ldrb r0, [r0] cmp r0, 0 beq _080E8756 movs r3, 0x32 ldrsh r0, [r2, r3] cmp r0, 0 bne _080E8756 adds r1, 0x9C ldr r0, [r1] ldrh r0, [r0, 0x20] adds r0, 0x20 strh r0, [r2, 0x20] ldr r0, [r1] ldrh r0, [r0, 0x22] strh r0, [r2, 0x22] _080E8756: pop {r0} bx r0 .align 2, 0 _080E875C: .4byte gUnknown_083DB694 thumb_func_end sub_80E872C thumb_func_start sub_80E8760 sub_80E8760: @ 80E8760 push {lr} adds r2, r0, 0 ldr r0, _080E8780 @ =gUnknown_083DB694 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x96 ldrb r0, [r0] cmp r0, 0 beq _080E879E movs r3, 0x32 ldrsh r0, [r2, r3] cmp r0, 0 beq _080E8784 cmp r0, 0x2 beq _080E878E b _080E879E .align 2, 0 _080E8780: .4byte gUnknown_083DB694 _080E8784: adds r1, 0x9C ldr r0, [r1] ldrh r0, [r0, 0x20] adds r0, 0x40 b _080E8796 _080E878E: adds r1, 0x9C ldr r0, [r1] ldrh r0, [r0, 0x20] adds r0, 0x15 _080E8796: strh r0, [r2, 0x20] ldr r0, [r1] ldrh r0, [r0, 0x22] strh r0, [r2, 0x22] _080E879E: pop {r0} bx r0 thumb_func_end sub_80E8760 thumb_func_start sub_80E87A4 sub_80E87A4: @ 80E87A4 push {r4,lr} lsls r0, 24 ldr r1, _080E87C8 @ =gUnknown_083DB694 ldr r1, [r1] adds r2, r1, 0 adds r2, 0xA8 ldr r3, [r2] movs r4, 0 cmp r0, 0 bne _080E87BA movs r4, 0x1 _080E87BA: movs r1, 0 strh r4, [r3, 0x30] ldr r0, [r2] strh r1, [r0, 0x24] pop {r4} pop {r0} bx r0 .align 2, 0 _080E87C8: .4byte gUnknown_083DB694 thumb_func_end sub_80E87A4 thumb_func_start sub_80E87CC sub_80E87CC: @ 80E87CC push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 ldr r0, _080E8810 @ =gUnknown_083DB694 ldr r5, [r0] adds r0, r5, 0 adds r0, 0xA8 ldr r0, [r0] movs r3, 0 cmp r4, 0 bne _080E87E6 movs r3, 0x1 _080E87E6: adds r2, r0, 0 adds r2, 0x3E lsls r3, 2 ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 orrs r0, r3 strb r0, [r2] adds r0, r4, 0 bl sub_80E87A4 cmp r4, 0 beq _080E880A ldr r0, _080E8814 @ =0x000001b9 adds r1, r5, r0 movs r0, 0x1 strb r0, [r1] _080E880A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E8810: .4byte gUnknown_083DB694 _080E8814: .4byte 0x000001b9 thumb_func_end sub_80E87CC thumb_func_start sub_80E8818 sub_80E8818: @ 80E8818 push {lr} ldr r0, _080E8850 @ =gSpriteTemplate_83DBBFC movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, _080E8854 @ =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 movs r0, 0 strh r0, [r1, 0x2E] strh r0, [r1, 0x30] ldr r0, _080E8858 @ =gUnknown_083DB694 ldr r0, [r0] adds r0, 0xA8 str r1, [r0] ldr r0, _080E885C @ =sub_80E8860 str r0, [r1, 0x1C] movs r0, 0 bl sub_80E87CC pop {r0} bx r0 .align 2, 0 _080E8850: .4byte gSpriteTemplate_83DBBFC _080E8854: .4byte gSprites _080E8858: .4byte gUnknown_083DB694 _080E885C: .4byte sub_80E8860 thumb_func_end sub_80E8818 thumb_func_start sub_80E8860 sub_80E8860: @ 80E8860 push {r4,r5,lr} adds r2, r0, 0 movs r0, 0x30 ldrsh r4, [r2, r0] cmp r4, 0 bne _080E88E4 ldr r0, _080E88B0 @ =gUnknown_083DB694 ldr r3, [r0] ldr r1, _080E88B4 @ =0x000001b9 adds r0, r3, r1 ldrb r1, [r0] cmp r1, 0 beq _080E88C4 ldr r5, _080E88B8 @ =0x000099a5 adds r0, r3, r5 movs r1, 0 ldrsb r1, [r0, r1] movs r0, 0x58 muls r0, r1 adds r0, 0x2C strh r0, [r2, 0x20] ldr r1, _080E88BC @ =0x000099a4 adds r0, r3, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r5, 0x84 adds r1, r3, r5 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 subs r0, r1 lsls r0, 4 adds r0, 0x60 strh r0, [r2, 0x22] ldr r0, _080E88C0 @ =0x0000fffa strh r0, [r2, 0x24] strh r4, [r2, 0x2E] b _080E88E4 .align 2, 0 _080E88B0: .4byte gUnknown_083DB694 _080E88B4: .4byte 0x000001b9 _080E88B8: .4byte 0x000099a5 _080E88BC: .4byte 0x000099a4 _080E88C0: .4byte 0x0000fffa _080E88C4: ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _080E88E4 strh r1, [r2, 0x2E] ldrh r0, [r2, 0x24] adds r0, 0x1 strh r0, [r2, 0x24] lsls r0, 16 cmp r0, 0 ble _080E88E4 ldr r0, _080E88EC @ =0x0000fffa strh r0, [r2, 0x24] _080E88E4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E88EC: .4byte 0x0000fffa thumb_func_end sub_80E8860 thumb_func_start sub_80E88F0 sub_80E88F0: @ 80E88F0 push {r4-r7,lr} mov r7, r8 push {r7} movs r4, 0 ldr r0, _080E8950 @ =gUnknown_083DB694 mov r8, r0 ldr r0, [r0] movs r6, 0x4 movs r5, 0 movs r1, 0xB4 adds r1, r0 mov r12, r1 adds r7, r0, 0 adds r7, 0xAC _080E890C: lsls r2, r4, 2 adds r3, r7, r2 ldr r1, [r3] adds r1, 0x3E ldrb r0, [r1] orrs r0, r6 strb r0, [r1] ldr r0, [r3] strh r5, [r0, 0x30] add r2, r12 ldr r1, [r2] adds r1, 0x3E ldrb r0, [r1] orrs r0, r6 strb r0, [r1] ldr r0, [r2] strh r5, [r0, 0x30] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1 bls _080E890C mov r1, r8 ldr r0, [r1] ldr r1, _080E8954 @ =0x00009c70 adds r0, r1 movs r1, 0 strb r1, [r0] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E8950: .4byte gUnknown_083DB694 _080E8954: .4byte 0x00009c70 thumb_func_end sub_80E88F0 thumb_func_start sub_80E8958 sub_80E8958: @ 80E8958 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0 bne _080E89B4 movs r0, 0x64 mov r9, r0 ldr r0, _080E8998 @ =gUnknown_083DB694 ldr r2, [r0] ldr r3, _080E899C @ =0x00009c6c adds r1, r2, r3 ldr r3, _080E89A0 @ =0x000001b5 adds r0, r2, r3 str r0, [r1] adds r0, r2, 0 adds r0, 0x26 ldrb r0, [r0] cmp r0, 0 bne _080E89A8 movs r1, 0xDB lsls r1, 1 adds r0, r2, r1 ldrb r0, [r0] subs r0, 0x4 ldr r3, _080E89A4 @ =0x00009c71 adds r1, r2, r3 strb r0, [r1] b _080E8A00 .align 2, 0 _080E8998: .4byte gUnknown_083DB694 _080E899C: .4byte 0x00009c6c _080E89A0: .4byte 0x000001b5 _080E89A4: .4byte 0x00009c71 _080E89A8: ldr r1, _080E89B0 @ =0x00009c71 adds r0, r2, r1 strb r7, [r0] b _080E8A00 .align 2, 0 _080E89B0: .4byte 0x00009c71 _080E89B4: movs r3, 0x78 mov r9, r3 ldr r0, _080E8A64 @ =gUnknown_083DB694 ldr r2, [r0] ldr r0, _080E8A68 @ =0x00009c6c adds r1, r2, r0 ldr r3, _080E8A6C @ =0x00009a29 adds r0, r2, r3 str r0, [r1] ldr r1, _080E8A70 @ =0x00009a28 adds r0, r2, r1 ldrb r0, [r0] subs r0, 0x4 ldr r3, _080E8A74 @ =0x00009c71 adds r1, r2, r3 strb r0, [r1] movs r4, 0 adds r5, r2, 0 adds r5, 0xB4 movs r0, 0x5 negs r0, r0 mov r12, r0 movs r6, 0x1 _080E89E2: lsls r3, r4, 2 adds r3, r5, r3 ldr r1, [r3] adds r1, 0x3E ldrb r2, [r1] mov r0, r12 ands r0, r2 strb r0, [r1] ldr r0, [r3] strh r6, [r0, 0x30] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1 bls _080E89E2 _080E8A00: ldr r0, _080E8A64 @ =gUnknown_083DB694 ldr r2, [r0] ldr r3, _080E8A74 @ =0x00009c71 adds r1, r2, r3 movs r0, 0 ldrsb r0, [r1, r0] cmp r0, 0 bge _080E8A14 movs r0, 0 strb r0, [r1] _080E8A14: movs r4, 0 adds r6, r2, 0 adds r6, 0xAC movs r0, 0x5 negs r0, r0 mov r8, r0 _080E8A20: lsls r2, r4, 2 adds r2, r6, r2 ldr r0, [r2] mov r1, r9 strh r1, [r0, 0x20] ldr r1, [r2] adds r1, 0x3E ldrb r0, [r1] mov r3, r8 ands r0, r3 strb r0, [r1] ldr r0, [r2] movs r5, 0x1 strh r5, [r0, 0x30] ldr r0, [r2] adds r1, r7, 0 bl StartSpriteAnim adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1 bls _080E8A20 ldr r0, _080E8A64 @ =gUnknown_083DB694 ldr r0, [r0] ldr r1, _080E8A78 @ =0x00009c70 adds r0, r1 strb r5, [r0] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E8A64: .4byte gUnknown_083DB694 _080E8A68: .4byte 0x00009c6c _080E8A6C: .4byte 0x00009a29 _080E8A70: .4byte 0x00009a28 _080E8A74: .4byte 0x00009c71 _080E8A78: .4byte 0x00009c70 thumb_func_end sub_80E8958 thumb_func_start sub_80E8A7C sub_80E8A7C: @ 80E8A7C push {r4-r7,lr} sub sp, 0x18 mov r1, sp ldr r0, _080E8B68 @ =gSpriteTemplate_83DBD18 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} movs r5, 0 _080E8A8E: lsls r2, r5, 3 adds r2, r5 lsls r2, 19 movs r0, 0xA8 lsls r0, 15 adds r2, r0 asrs r2, 16 mov r0, sp movs r1, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 ldr r0, _080E8B6C @ =gUnknown_083DB694 ldr r2, [r0] lsls r0, r5, 2 adds r2, 0xAC adds r2, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080E8B70 @ =gSprites adds r0, r1 str r0, [r2] strh r5, [r0, 0x2E] ldr r3, [r2] adds r3, 0x3F movs r0, 0x1 adds r2, r5, 0 ands r2, r0 lsls r2, 1 ldrb r0, [r3] movs r4, 0x3 negs r4, r4 adds r1, r4, 0 ands r0, r1 orrs r0, r2 strb r0, [r3] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x1 bls _080E8A8E mov r0, sp movs r1, 0x3 strh r1, [r0] ldr r0, _080E8B74 @ =gUnknown_083DBD10 str r0, [sp, 0x8] movs r5, 0 movs r7, 0x3F movs r6, 0x40 _080E8AF6: lsls r4, r5, 2 adds r1, r4, r5 lsls r1, 19 movs r0, 0x8E lsls r0, 16 adds r1, r0 asrs r1, 16 mov r0, sp movs r2, 0x58 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 ldr r0, _080E8B6C @ =gUnknown_083DB694 ldr r2, [r0] adds r2, 0xB4 adds r2, r4 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080E8B70 @ =gSprites adds r0, r1 str r0, [r2] strh r5, [r0, 0x2E] ldr r3, [r2] ldrb r1, [r3, 0x1] adds r0, r7, 0 ands r0, r1 orrs r0, r6 strb r0, [r3, 0x1] ldr r3, [r2] ldrb r1, [r3, 0x3] adds r0, r7, 0 ands r0, r1 orrs r0, r6 strb r0, [r3, 0x3] ldr r0, [r2] lsls r1, r5, 24 lsrs r1, 24 bl StartSpriteAnim adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x1 bls _080E8AF6 movs r0, 0 bl sub_80E8958 bl sub_80E88F0 add sp, 0x18 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E8B68: .4byte gSpriteTemplate_83DBD18 _080E8B6C: .4byte gUnknown_083DB694 _080E8B70: .4byte gSprites _080E8B74: .4byte gUnknown_083DBD10 thumb_func_end sub_80E8A7C thumb_func_start sub_80E8B78 sub_80E8B78: @ 80E8B78 push {r4,lr} adds r3, r0, 0 ldr r0, _080E8BB0 @ =gUnknown_083DB694 ldr r1, [r0] ldr r2, _080E8BB4 @ =0x00009c70 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _080E8BE8 movs r2, 0x30 ldrsh r0, [r3, r2] cmp r0, 0 beq _080E8BE8 movs r2, 0x2E ldrsh r0, [r3, r2] cmp r0, 0 bne _080E8BBC movs r4, 0 ldr r2, _080E8BB8 @ =0x00009c6c adds r0, r1, r2 ldr r0, [r0] ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 bne _080E8BD6 b _080E8BD4 .align 2, 0 _080E8BB0: .4byte gUnknown_083DB694 _080E8BB4: .4byte 0x00009c70 _080E8BB8: .4byte 0x00009c6c _080E8BBC: movs r4, 0 ldr r2, _080E8BF0 @ =0x00009c6c adds r0, r1, r2 ldr r0, [r0] adds r2, 0x5 adds r1, r2 movs r2, 0 ldrsb r2, [r0, r2] movs r0, 0 ldrsb r0, [r1, r0] cmp r2, r0 bne _080E8BD6 _080E8BD4: movs r4, 0x1 _080E8BD6: adds r2, r3, 0 adds r2, 0x3E lsls r3, r4, 2 ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 orrs r0, r3 strb r0, [r2] _080E8BE8: pop {r4} pop {r0} bx r0 .align 2, 0 _080E8BF0: .4byte 0x00009c6c thumb_func_end sub_80E8B78 thumb_func_start sub_80E8BF4 sub_80E8BF4: @ 80E8BF4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 lsls r0, 24 lsrs r3, r0, 24 lsls r1, 24 lsrs r2, r1, 24 ldr r0, _080E8C28 @ =gUnknown_083DBD30 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x4] str r1, [sp, 0x8] ldr r0, _080E8C2C @ =gUnknown_083DBD38 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0xC] str r1, [sp, 0x10] cmp r2, 0x2 beq _080E8C20 cmp r2, 0x5 beq _080E8C30 _080E8C20: movs r4, 0x40 movs r5, 0x28 b _080E8C34 .align 2, 0 _080E8C28: .4byte gUnknown_083DBD30 _080E8C2C: .4byte gUnknown_083DBD38 _080E8C30: movs r4, 0x24 movs r5, 0x30 _080E8C34: cmp r3, 0 beq _080E8C3C cmp r3, 0x1 beq _080E8C40 _080E8C3C: movs r0, 0x43 b _080E8C42 _080E8C40: movs r0, 0x44 _080E8C42: mov r8, r0 add r0, sp, 0x4 bl LoadCompressedObjectPic add r0, sp, 0xC bl LoadSpritePalette ldr r0, _080E8CDC @ =gSpriteTemplate_83DBD48 adds r1, r4, 0 adds r2, r5, 0 movs r3, 0x1 bl CreateSprite ldr r0, _080E8CE0 @ =gSaveBlock2 ldrb r0, [r0, 0x8] movs r1, 0x69 cmp r0, 0 bne _080E8C68 movs r1, 0x64 _080E8C68: ldr r7, _080E8CE4 @ =SpriteCallbackDummy adds r2, r4, 0 subs r2, 0xC movs r6, 0 str r6, [sp] adds r0, r1, 0 adds r1, r7, 0 adds r3, r5, 0 bl AddPseudoFieldObject lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _080E8C9E ldr r1, _080E8CE8 @ =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 ldrb r2, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 strb r1, [r0, 0x5] movs r1, 0x3 bl StartSpriteAnim _080E8C9E: adds r2, r4, 0 adds r2, 0xC str r6, [sp] mov r0, r8 adds r1, r7, 0 adds r3, r5, 0 bl AddPseudoFieldObject lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _080E8CD0 ldr r1, _080E8CE8 @ =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 ldrb r2, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 strb r1, [r0, 0x5] movs r1, 0x2 bl StartSpriteAnim _080E8CD0: add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E8CDC: .4byte gSpriteTemplate_83DBD48 _080E8CE0: .4byte gSaveBlock2 _080E8CE4: .4byte SpriteCallbackDummy _080E8CE8: .4byte gSprites thumb_func_end sub_80E8BF4 thumb_func_start sub_80E8CEC sub_80E8CEC: @ 80E8CEC push {lr} ldr r0, _080E8D24 @ =gUnknown_083DBD60 bl LoadCompressedObjectPic ldr r0, _080E8D28 @ =gUnknown_083DBD68 bl LoadSpritePalette ldr r0, _080E8D2C @ =gSpriteTemplate_83DBDE4 movs r1, 0xE0 movs r2, 0x58 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _080E8D3C ldr r0, _080E8D30 @ =gUnknown_083DB694 ldr r2, [r0] ldr r0, _080E8D34 @ =0x00009c74 adds r2, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080E8D38 @ =gSprites adds r0, r1 str r0, [r2] b _080E8D48 .align 2, 0 _080E8D24: .4byte gUnknown_083DBD60 _080E8D28: .4byte gUnknown_083DBD68 _080E8D2C: .4byte gSpriteTemplate_83DBDE4 _080E8D30: .4byte gUnknown_083DB694 _080E8D34: .4byte 0x00009c74 _080E8D38: .4byte gSprites _080E8D3C: ldr r0, _080E8D4C @ =gUnknown_083DB694 ldr r0, [r0] ldr r1, _080E8D50 @ =0x00009c74 adds r0, r1 movs r1, 0 str r1, [r0] _080E8D48: pop {r0} bx r0 .align 2, 0 _080E8D4C: .4byte gUnknown_083DB694 _080E8D50: .4byte 0x00009c74 thumb_func_end sub_80E8CEC thumb_func_start sub_80E8D54 sub_80E8D54: @ 80E8D54 push {lr} ldr r0, _080E8D78 @ =gUnknown_083DB694 ldr r2, [r0] ldr r1, _080E8D7C @ =0x00009c74 adds r0, r2, r1 ldr r1, [r0] cmp r1, 0 beq _080E8D88 adds r0, r2, 0 adds r0, 0x26 ldrb r0, [r0] cmp r0, 0 bne _080E8D80 adds r0, r1, 0 movs r1, 0x1 bl StartSpriteAnim b _080E8D88 .align 2, 0 _080E8D78: .4byte gUnknown_083DB694 _080E8D7C: .4byte 0x00009c74 _080E8D80: adds r0, r1, 0 movs r1, 0x2 bl StartSpriteAnim _080E8D88: pop {r0} bx r0 thumb_func_end sub_80E8D54 thumb_func_start sub_80E8D8C sub_80E8D8C: @ 80E8D8C push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r0, _080E8DB8 @ =gUnknown_083DB694 ldr r2, [r0] ldr r1, _080E8DBC @ =0x00009c74 adds r0, r2, r1 ldr r1, [r0] cmp r1, 0 beq _080E8DD2 cmp r3, 0 beq _080E8DCA adds r0, r2, 0 adds r0, 0x26 ldrb r0, [r0] cmp r0, 0 bne _080E8DC0 adds r0, r1, 0 movs r1, 0x3 bl StartSpriteAnim b _080E8DD2 .align 2, 0 _080E8DB8: .4byte gUnknown_083DB694 _080E8DBC: .4byte 0x00009c74 _080E8DC0: adds r0, r1, 0 movs r1, 0x4 bl StartSpriteAnim b _080E8DD2 _080E8DCA: adds r0, r1, 0 movs r1, 0x5 bl StartSpriteAnim _080E8DD2: pop {r0} bx r0 thumb_func_end sub_80E8D8C thumb_func_start sub_80E8DD8 sub_80E8DD8: @ 80E8DD8 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x8 ldr r0, _080E8F2C @ =REG_BG0HOFS movs r6, 0 strh r6, [r0] adds r0, 0x2 strh r6, [r0] adds r0, 0x2 strh r6, [r0] adds r0, 0x2 strh r6, [r0] adds r0, 0x4 strh r6, [r0] subs r0, 0x2 strh r6, [r0] adds r0, 0x4 strh r6, [r0] adds r0, 0x2 strh r6, [r0] ldr r1, _080E8F30 @ =REG_BG0CNT movs r2, 0x8B lsls r2, 8 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080E8F34 @ =0x00000d09 adds r0, r2, 0 strh r0, [r1] ldr r0, _080E8F38 @ =gUnknown_08E945D0 ldr r1, _080E8F3C @ =gUnknown_083DB694 ldr r1, [r1] mov r8, r1 movs r4, 0xE4 lsls r4, 1 add r4, r8 movs r5, 0xA0 lsls r5, 2 adds r1, r4, 0 adds r2, r5, 0 bl CpuSet ldr r0, _080E8F40 @ =gUnknown_08E953D0 movs r1, 0xD9 lsls r1, 3 add r1, r8 bl LZ77UnCompWram ldr r0, _080E8F44 @ =gMenuWordGroupFrame_Gfx ldr r1, _080E8F48 @ =0x06008000 bl LZ77UnCompVram ldr r1, _080E8F4C @ =0x06006800 adds r0, r4, 0 adds r2, r5, 0 bl CpuSet ldr r0, _080E8F50 @ =gMenuWordGroupFrame1_Pal movs r1, 0x40 movs r2, 0x40 bl LoadPalette ldr r1, _080E8F54 @ =REG_BG2CNT ldr r2, _080E8F58 @ =0x00000e02 adds r0, r2, 0 strh r0, [r1] ldr r1, _080E8F5C @ =0x06007000 movs r5, 0x80 lsls r5, 4 mov r0, sp strh r6, [r0] ldr r4, _080E8F60 @ =0x040000d4 str r0, [r4] str r1, [r4, 0x4] lsrs r0, r5, 1 movs r2, 0x81 lsls r2, 24 orrs r0, r2 str r0, [r4, 0x8] ldr r0, [r4, 0x8] ldr r0, _080E8F64 @ =gUnknown_08E9AB00 ldr r2, _080E8F68 @ =0x06006000 str r0, [r4] str r2, [r4, 0x4] ldr r0, _080E8F6C @ =0x80000020 str r0, [r4, 0x8] ldr r0, [r4, 0x8] ldr r0, _080E8F70 @ =gUnknown_08E9AB60 bl LZ77UnCompVram ldr r0, _080E8F74 @ =gUnknown_08E9AB40 movs r1, 0 movs r2, 0x20 bl LoadPalette ldr r0, _080E8F78 @ =gUnknown_083DBDFC movs r1, 0x10 movs r2, 0x20 bl LoadPalette ldr r1, _080E8F7C @ =REG_BG3CNT ldr r2, _080E8F80 @ =0x00000f0f adds r0, r2, 0 strh r0, [r1] ldr r1, _080E8F84 @ =0x06007800 movs r0, 0 mov r9, r0 str r0, [sp, 0x4] add r0, sp, 0x4 str r0, [r4] str r1, [r4, 0x4] lsrs r5, 2 movs r0, 0x85 lsls r0, 24 orrs r5, r0 str r5, [r4, 0x8] ldr r0, [r4, 0x8] ldr r0, _080E8F88 @ =gUnknown_083DBE40 movs r1, 0x20 movs r2, 0x20 bl LoadPalette ldr r0, _080E8F8C @ =gPlttBufferUnfaded adds r1, r0, 0 adds r1, 0x7E ldr r3, _080E8F90 @ =0x00007fff strh r3, [r1] subs r1, 0x1C ldr r2, _080E8F94 @ =0x00006f5b strh r2, [r1] adds r0, 0x70 ldr r1, _080E8F98 @ =0x0000739c strh r1, [r0] ldr r0, _080E8F9C @ =gPlttBufferFaded adds r4, r0, 0 adds r4, 0x7E strh r3, [r4] adds r3, r0, 0 adds r3, 0x62 strh r2, [r3] adds r0, 0x70 strh r1, [r0] movs r1, 0xBC add r8, r1 mov r2, r8 strb r6, [r2] bl sub_80E8FA4 bl sub_80E948C movs r0, 0xA bl sub_80E9198 movs r0, 0 bl sub_80E91D4 bl sub_80E95A4 ldr r0, _080E8FA0 @ =REG_BLDCNT mov r1, r9 strh r1, [r0] add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E8F2C: .4byte REG_BG0HOFS _080E8F30: .4byte REG_BG0CNT _080E8F34: .4byte 0x00000d09 _080E8F38: .4byte gUnknown_08E945D0 _080E8F3C: .4byte gUnknown_083DB694 _080E8F40: .4byte gUnknown_08E953D0 _080E8F44: .4byte gMenuWordGroupFrame_Gfx _080E8F48: .4byte 0x06008000 _080E8F4C: .4byte 0x06006800 _080E8F50: .4byte gMenuWordGroupFrame1_Pal _080E8F54: .4byte REG_BG2CNT _080E8F58: .4byte 0x00000e02 _080E8F5C: .4byte 0x06007000 _080E8F60: .4byte 0x040000d4 _080E8F64: .4byte gUnknown_08E9AB00 _080E8F68: .4byte 0x06006000 _080E8F6C: .4byte 0x80000020 _080E8F70: .4byte gUnknown_08E9AB60 _080E8F74: .4byte gUnknown_08E9AB40 _080E8F78: .4byte gUnknown_083DBDFC _080E8F7C: .4byte REG_BG3CNT _080E8F80: .4byte 0x00000f0f _080E8F84: .4byte 0x06007800 _080E8F88: .4byte gUnknown_083DBE40 _080E8F8C: .4byte gPlttBufferUnfaded _080E8F90: .4byte 0x00007fff _080E8F94: .4byte 0x00006f5b _080E8F98: .4byte 0x0000739c _080E8F9C: .4byte gPlttBufferFaded _080E8FA0: .4byte REG_BLDCNT thumb_func_end sub_80E8DD8 thumb_func_start sub_80E8FA4 sub_80E8FA4: @ 80E8FA4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C movs r0, 0 mov r9, r0 mov r1, sp adds r1, 0x18 str r1, [sp, 0x24] add r2, sp, 0xC mov r12, r2 _080E8FBE: mov r3, r9 lsls r1, r3, 1 ldr r4, _080E90F4 @ =gMenuWordGroupFrame2_Pal + 0x2 adds r0, r1, r4 ldrh r2, [r0] movs r0, 0x1F ands r0, r2 lsls r0, 8 str r0, [sp] ldr r5, _080E90F8 @ =gMenuWordGroupFrame2_Pal + 0x8 adds r1, r5 ldrh r1, [r1] movs r0, 0x1F ands r0, r1 lsls r0, 8 str r0, [sp, 0xC] lsls r2, 16 lsrs r0, r2, 21 movs r3, 0x1F ands r0, r3 lsls r0, 8 str r0, [sp, 0x4] lsls r1, 16 lsrs r0, r1, 21 ands r0, r3 lsls r0, 8 mov r4, r12 str r0, [r4, 0x4] lsrs r2, 26 ands r2, r3 lsls r2, 8 str r2, [sp, 0x8] lsrs r1, 26 ands r1, r3 lsls r1, 8 str r1, [r4, 0x8] movs r3, 0 mov r5, r9 lsls r5, 3 mov r10, r5 mov r0, r9 adds r0, 0x1 str r0, [sp, 0x28] ldr r4, [sp, 0x24] _080E9016: lsls r0, r3, 2 adds r2, r4, r0 mov r5, r12 adds r1, r5, r0 add r0, sp ldr r1, [r1] ldr r0, [r0] subs r0, r1, r0 cmp r0, 0 bge _080E902C adds r0, 0x7 _080E902C: asrs r0, 3 str r0, [r2] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x2 bls _080E9016 movs r4, 0 ldr r0, _080E90FC @ =gUnknown_083DB694 ldr r1, [r0] mov r0, r10 add r0, r9 lsls r0, 1 mov r8, r0 movs r5, 0x1F ldr r6, [sp, 0x24] ldr r0, _080E9100 @ =0x00009c34 adds r7, r1, r0 _080E9050: lsls r2, r4, 1 add r2, r8 adds r2, r7, r2 ldr r1, [sp, 0x8] asrs r1, 8 ands r1, r5 lsls r1, 10 ldr r0, [sp, 0x4] asrs r0, 8 ands r0, r5 lsls r0, 5 orrs r1, r0 ldr r0, [sp] asrs r0, 8 ands r0, r5 orrs r1, r0 strh r1, [r2] movs r3, 0 adds r4, 0x1 _080E9076: lsls r0, r3, 2 mov r1, sp adds r2, r1, r0 adds r0, r6, r0 ldr r1, [r2] ldr r0, [r0] adds r1, r0 str r1, [r2] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x2 bls _080E9076 lsls r0, r4, 16 lsrs r4, r0, 16 cmp r4, 0x7 bls _080E9050 ldr r2, _080E90FC @ =gUnknown_083DB694 ldr r3, [r2] mov r0, r10 add r0, r9 adds r0, r4 lsls r0, 1 ldr r4, _080E9100 @ =0x00009c34 adds r2, r3, r4 adds r2, r0 mov r5, r12 ldr r1, [r5, 0x8] asrs r1, 8 movs r0, 0x1F ands r1, r0 lsls r1, 10 ldr r0, [r5, 0x4] asrs r0, 8 movs r4, 0x1F ands r0, r4 lsls r0, 5 orrs r1, r0 ldr r0, [sp, 0xC] asrs r0, 8 ands r0, r4 orrs r1, r0 strh r1, [r2] ldr r5, [sp, 0x28] lsls r0, r5, 16 lsrs r0, 16 mov r9, r0 cmp r0, 0x2 bhi _080E90DA b _080E8FBE _080E90DA: ldr r0, _080E9104 @ =0x00009c32 adds r1, r3, r0 movs r0, 0 strb r0, [r1] add sp, 0x2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E90F4: .4byte gMenuWordGroupFrame2_Pal + 0x2 _080E90F8: .4byte gMenuWordGroupFrame2_Pal + 0x8 _080E90FC: .4byte gUnknown_083DB694 _080E9100: .4byte 0x00009c34 _080E9104: .4byte 0x00009c32 thumb_func_end sub_80E8FA4 thumb_func_start sub_80E9108 sub_80E9108: @ 80E9108 push {r4-r7,lr} lsls r0, 24 ldr r1, _080E9164 @ =gUnknown_083DB694 ldr r2, [r1] ldr r3, _080E9168 @ =0x00009c32 adds r1, r2, r3 lsrs r0, 24 ldrb r3, [r1] adds r0, r3 strb r0, [r1] movs r4, 0 ldr r0, _080E916C @ =gPlttBufferUnfaded mov r12, r0 adds r6, r1, 0 ldr r3, _080E9170 @ =0x00009c34 adds r5, r2, r3 ldr r7, _080E9174 @ =gPlttBufferFaded _080E912A: adds r2, r4, 0 adds r2, 0x51 lsls r2, 1 mov r0, r12 adds r3, r2, r0 ldrb r0, [r6] lsls r0, 1 lsls r1, r4, 3 adds r1, r4 lsls r1, 1 adds r0, r1 adds r0, r5, r0 ldrh r0, [r0] strh r0, [r3] adds r2, r7 ldrb r0, [r6] lsls r0, 1 adds r0, r1 adds r0, r5, r0 ldrh r0, [r0] strh r0, [r2] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x2 bls _080E912A pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E9164: .4byte gUnknown_083DB694 _080E9168: .4byte 0x00009c32 _080E916C: .4byte gPlttBufferUnfaded _080E9170: .4byte 0x00009c34 _080E9174: .4byte gPlttBufferFaded thumb_func_end sub_80E9108 thumb_func_start sub_80E9178 sub_80E9178: @ 80E9178 push {lr} ldr r0, _080E9190 @ =gUnknown_083DB694 ldr r0, [r0] ldr r1, _080E9194 @ =0x00009c32 adds r0, r1 movs r1, 0 strb r1, [r0] movs r0, 0 bl sub_80E9108 pop {r0} bx r0 .align 2, 0 _080E9190: .4byte gUnknown_083DB694 _080E9194: .4byte 0x00009c32 thumb_func_end sub_80E9178 thumb_func_start sub_80E9198 sub_80E9198: @ 80E9198 ldr r1, _080E91A0 @ =gUnknown_03000740 strb r0, [r1] bx lr .align 2, 0 _080E91A0: .4byte gUnknown_03000740 thumb_func_end sub_80E9198 thumb_func_start sub_80E91A4 sub_80E91A4: @ 80E91A4 ldr r0, _080E91AC @ =gUnknown_03000740 ldrb r0, [r0] bx lr .align 2, 0 _080E91AC: .4byte gUnknown_03000740 thumb_func_end sub_80E91A4 thumb_func_start sub_80E91B0 sub_80E91B0: @ 80E91B0 push {lr} sub sp, 0x8 lsls r2, 24 lsls r1, 27 lsrs r1, 24 lsrs r2, 21 lsls r3, 27 lsrs r3, 24 str r3, [sp] movs r3, 0x1 str r3, [sp, 0x4] movs r3, 0xB0 bl sub_8072AB0 add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_80E91B0 thumb_func_start sub_80E91D4 sub_80E91D4: @ 80E91D4 push {r4,lr} lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 ldr r0, _080E91FC @ =gWindowConfig_81E6DA8 bl BasicInitMenuWindow cmp r4, 0xA bne _080E9200 movs r0, 0x3 movs r1, 0xE movs r2, 0x1A movs r3, 0x13 bl MenuZeroFillWindowRect movs r0, 0xA bl sub_80E9198 b _080E935C .align 2, 0 _080E91FC: .4byte gWindowConfig_81E6DA8 _080E9200: bl sub_80E91A4 lsls r0, 24 lsrs r0, 24 cmp r0, 0xA bne _080E9218 movs r0, 0x3 movs r1, 0xE movs r2, 0x1A movs r3, 0x13 bl MenuDrawTextWindow _080E9218: adds r0, r4, 0 bl sub_80E9198 cmp r4, 0x9 bls _080E9224 b _080E935C _080E9224: lsls r0, r4, 2 ldr r1, _080E9230 @ =_080E9234 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E9230: .4byte _080E9234 .align 2, 0 _080E9234: .4byte _080E925C .4byte _080E9284 .4byte _080E92AC .4byte _080E92C4 .4byte _080E92F0 .4byte _080E9308 .4byte _080E9310 .4byte _080E9318 .4byte _080E933C .4byte _080E9350 _080E925C: ldr r0, _080E9278 @ =gUnknown_083DB694 ldr r4, [r0] ldr r1, _080E927C @ =0x00009c80 adds r0, r4, r1 movs r1, 0x4 movs r2, 0xF movs r3, 0x2 bl sub_80E91B0 ldr r0, _080E9280 @ =0x00009cc9 adds r4, r0 adds r0, r4, 0 b _080E9326 .align 2, 0 _080E9278: .4byte gUnknown_083DB694 _080E927C: .4byte 0x00009c80 _080E9280: .4byte 0x00009cc9 _080E9284: ldr r0, _080E92A0 @ =gUnknown_083DB694 ldr r4, [r0] ldr r1, _080E92A4 @ =0x00009d12 adds r0, r4, r1 movs r1, 0x4 movs r2, 0xF movs r3, 0x2 bl sub_80E91B0 ldr r0, _080E92A8 @ =0x00009d5b adds r4, r0 adds r0, r4, 0 b _080E9326 .align 2, 0 _080E92A0: .4byte gUnknown_083DB694 _080E92A4: .4byte 0x00009d12 _080E92A8: .4byte 0x00009d5b _080E92AC: ldr r0, _080E92BC @ =gOtherText_TextDeletedConfirmPage1 movs r1, 0x4 movs r2, 0xF movs r3, 0x2 bl sub_80E91B0 ldr r0, _080E92C0 @ =gOtherText_TextDeletedConfirmPage2 b _080E9326 .align 2, 0 _080E92BC: .4byte gOtherText_TextDeletedConfirmPage1 _080E92C0: .4byte gOtherText_TextDeletedConfirmPage2 _080E92C4: ldr r0, _080E92D8 @ =gUnknown_083DB694 ldr r0, [r0] ldrb r0, [r0, 0x8] cmp r0, 0x4 beq _080E92E0 cmp r0, 0x9 bne _080E92E8 ldr r0, _080E92DC @ =gOtherText_QuitGivingInfo b _080E933E .align 2, 0 _080E92D8: .4byte gUnknown_083DB694 _080E92DC: .4byte gOtherText_QuitGivingInfo _080E92E0: ldr r0, _080E92E4 @ =gOtherText_StopGivingMail b _080E933E .align 2, 0 _080E92E4: .4byte gOtherText_StopGivingMail _080E92E8: ldr r0, _080E92EC @ =gOtherText_QuitEditing b _080E933E .align 2, 0 _080E92EC: .4byte gOtherText_QuitEditing _080E92F0: ldr r0, _080E9300 @ =gOtherText_EditedTextNoSavePage1 movs r1, 0x4 movs r2, 0xF movs r3, 0x2 bl sub_80E91B0 ldr r0, _080E9304 @ =gOtherText_EditedTextNoSavePage2 b _080E9326 .align 2, 0 _080E9300: .4byte gOtherText_EditedTextNoSavePage1 _080E9304: .4byte gOtherText_EditedTextNoSavePage2 _080E9308: ldr r0, _080E930C @ =gOtherText_EnterAPhraseOrWord b _080E933E .align 2, 0 _080E930C: .4byte gOtherText_EnterAPhraseOrWord _080E9310: ldr r0, _080E9314 @ =gOtherText_TextNoDelete b _080E933E .align 2, 0 _080E9314: .4byte gOtherText_TextNoDelete _080E9318: ldr r0, _080E9334 @ =gOtherText_OnlyOnePhrase movs r1, 0x4 movs r2, 0xF movs r3, 0x2 bl sub_80E91B0 ldr r0, _080E9338 @ =gOtherText_OriginalSongRestored _080E9326: movs r1, 0x4 movs r2, 0x11 movs r3, 0x2 bl sub_80E91B0 b _080E935C .align 2, 0 _080E9334: .4byte gOtherText_OnlyOnePhrase _080E9338: .4byte gOtherText_OriginalSongRestored _080E933C: ldr r0, _080E934C @ =gOtherText_TrendyAlready _080E933E: movs r1, 0x4 movs r2, 0xF movs r3, 0x4 bl sub_80E91B0 b _080E935C .align 2, 0 _080E934C: .4byte gOtherText_TrendyAlready _080E9350: ldr r0, _080E9364 @ =gOtherText_CombineTwoPhrases movs r1, 0x4 movs r2, 0xF movs r3, 0x4 bl sub_80E91B0 _080E935C: pop {r4} pop {r0} bx r0 .align 2, 0 _080E9364: .4byte gOtherText_CombineTwoPhrases thumb_func_end sub_80E91D4 thumb_func_start sub_80E9368 sub_80E9368: @ 80E9368 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xD bhi _080E93F8 lsls r0, 2 ldr r1, _080E937C @ =_080E9380 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E937C: .4byte _080E9380 .align 2, 0 _080E9380: .4byte _080E93B8 .4byte _080E93C0 .4byte _080E93C8 .4byte _080E93D0 .4byte _080E93F8 .4byte _080E93E8 .4byte _080E93D8 .4byte _080E93E8 .4byte _080E93E8 .4byte _080E93E0 .4byte _080E93E8 .4byte _080E93E8 .4byte _080E93E8 .4byte _080E93F0 _080E93B8: ldr r4, _080E93BC @ =gOtherText_Profile b _080E93FA .align 2, 0 _080E93BC: .4byte gOtherText_Profile _080E93C0: ldr r4, _080E93C4 @ =gOtherText_AtBattleStart b _080E93FA .align 2, 0 _080E93C4: .4byte gOtherText_AtBattleStart _080E93C8: ldr r4, _080E93CC @ =gOtherText_UponWinningBattle b _080E93FA .align 2, 0 _080E93CC: .4byte gOtherText_UponWinningBattle _080E93D0: ldr r4, _080E93D4 @ =gOtherText_UponLosingBattle b _080E93FA .align 2, 0 _080E93D4: .4byte gOtherText_UponLosingBattle _080E93D8: ldr r4, _080E93DC @ =gOtherText_TheBardsSong b _080E93FA .align 2, 0 _080E93DC: .4byte gOtherText_TheBardsSong _080E93E0: ldr r4, _080E93E4 @ =gOtherText_WhatsHipHappening b _080E93FA .align 2, 0 _080E93E4: .4byte gOtherText_WhatsHipHappening _080E93E8: ldr r4, _080E93EC @ =gOtherText_Interview b _080E93FA .align 2, 0 _080E93EC: .4byte gOtherText_Interview _080E93F0: ldr r4, _080E93F4 @ =gOtherText_GoodSaying b _080E93FA .align 2, 0 _080E93F4: .4byte gOtherText_GoodSaying _080E93F8: movs r4, 0 _080E93FA: ldr r0, _080E943C @ =gWindowConfig_81E6D8C bl BasicInitMenuWindow ldr r0, _080E9440 @ =gUnknown_083DB694 ldr r2, [r0] ldr r0, _080E9444 @ =0x00009f8e adds r5, r2, r0 movs r3, 0xFC strb r3, [r5] adds r0, 0x1 adds r1, r2, r0 movs r0, 0x5 strb r0, [r1] ldr r0, _080E9448 @ =0x00009f90 adds r1, r2, r0 movs r0, 0x1 strb r0, [r1] cmp r4, 0 beq _080E9450 ldr r1, _080E944C @ =0x00009f91 adds r0, r2, r1 adds r1, r4, 0 movs r2, 0xF0 movs r3, 0x2 bl sub_8072C74 adds r0, r5, 0 movs r1, 0 movs r2, 0 bl MenuPrint b _080E9476 .align 2, 0 _080E943C: .4byte gWindowConfig_81E6D8C _080E9440: .4byte gUnknown_083DB694 _080E9444: .4byte 0x00009f8e _080E9448: .4byte 0x00009f90 _080E944C: .4byte 0x00009f91 _080E9450: ldr r0, _080E9484 @ =0x00009f91 adds r1, r2, r0 strb r3, [r1] movs r0, 0x11 strb r0, [r1, 0x1] movs r0, 0x10 strb r0, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] adds r0, r5, 0 movs r1, 0 movs r2, 0 bl MenuPrint adds r0, r5, 0 movs r1, 0x1C movs r2, 0 bl MenuPrint _080E9476: ldr r0, _080E9488 @ =gWindowConfig_81E6DA8 bl BasicInitMenuWindow pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E9484: .4byte 0x00009f91 _080E9488: .4byte gWindowConfig_81E6DA8 thumb_func_end sub_80E9368 thumb_func_start sub_80E948C sub_80E948C: @ 80E948C push {lr} sub sp, 0x10 ldr r0, _080E94A8 @ =gUnknown_083DB694 ldr r0, [r0] ldrb r0, [r0, 0x9] cmp r0, 0x5 bls _080E949C b _080E9594 _080E949C: lsls r0, 2 ldr r1, _080E94AC @ =_080E94B0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E94A8: .4byte gUnknown_083DB694 _080E94AC: .4byte _080E94B0 .align 2, 0 _080E94B0: .4byte _080E9508 .4byte _080E9530 .4byte _080E9554 .4byte _080E9578 .4byte _080E94C8 .4byte _080E94E8 _080E94C8: ldr r0, _080E94E0 @ =0x06006800 ldr r3, _080E94E4 @ =gUnknown_08E94AD0 movs r1, 0 str r1, [sp] movs r1, 0x1A str r1, [sp, 0x4] movs r1, 0x18 str r1, [sp, 0x8] movs r1, 0x6 str r1, [sp, 0xC] movs r1, 0x3 b _080E9568 .align 2, 0 _080E94E0: .4byte 0x06006800 _080E94E4: .4byte gUnknown_08E94AD0 _080E94E8: ldr r0, _080E9500 @ =0x06006800 ldr r3, _080E9504 @ =gUnknown_08E94AD0 movs r1, 0 str r1, [sp] movs r1, 0x12 str r1, [sp, 0x4] movs r1, 0xD str r1, [sp, 0x8] movs r1, 0x8 str r1, [sp, 0xC] movs r1, 0xE b _080E951E .align 2, 0 _080E9500: .4byte 0x06006800 _080E9504: .4byte gUnknown_08E94AD0 _080E9508: ldr r0, _080E9528 @ =0x06006800 ldr r3, _080E952C @ =gUnknown_08E94AD0 movs r1, 0 str r1, [sp] movs r1, 0xA str r1, [sp, 0x4] movs r1, 0x1A str r1, [sp, 0x8] movs r1, 0x8 str r1, [sp, 0xC] movs r1, 0x2 _080E951E: movs r2, 0x2 bl sub_809D104 b _080E9594 .align 2, 0 _080E9528: .4byte 0x06006800 _080E952C: .4byte gUnknown_08E94AD0 _080E9530: ldr r0, _080E954C @ =0x06006800 ldr r3, _080E9550 @ =gUnknown_08E94AD0 movs r1, 0 str r1, [sp] str r1, [sp, 0x4] movs r1, 0x1A str r1, [sp, 0x8] movs r1, 0xA str r1, [sp, 0xC] movs r1, 0x2 movs r2, 0 bl sub_809D104 b _080E9594 .align 2, 0 _080E954C: .4byte 0x06006800 _080E9550: .4byte gUnknown_08E94AD0 _080E9554: ldr r0, _080E9570 @ =0x06006800 ldr r3, _080E9574 @ =gUnknown_08E94AD0 movs r2, 0xD str r2, [sp] movs r1, 0x12 str r1, [sp, 0x4] str r2, [sp, 0x8] movs r1, 0x4 str r1, [sp, 0xC] movs r1, 0xE _080E9568: movs r2, 0x3 bl sub_809D104 b _080E9594 .align 2, 0 _080E9570: .4byte 0x06006800 _080E9574: .4byte gUnknown_08E94AD0 _080E9578: ldr r0, _080E959C @ =0x06006800 ldr r3, _080E95A0 @ =gUnknown_08E94AD0 movs r1, 0 str r1, [sp] movs r1, 0x20 str r1, [sp, 0x4] movs r1, 0x18 str r1, [sp, 0x8] movs r1, 0x4 str r1, [sp, 0xC] movs r1, 0x3 movs r2, 0x2 bl sub_809D104 _080E9594: add sp, 0x10 pop {r0} bx r0 .align 2, 0 _080E959C: .4byte 0x06006800 _080E95A0: .4byte gUnknown_08E94AD0 thumb_func_end sub_80E948C thumb_func_start sub_80E95A4 sub_80E95A4: @ 80E95A4 push {lr} ldr r0, _080E95C0 @ =gWindowConfig_81E6D8C bl BasicInitMenuWindow ldr r0, _080E95C4 @ =gUnknown_083DB694 ldr r0, [r0] ldrb r0, [r0, 0x9] cmp r0, 0x5 bhi _080E9612 lsls r0, 2 ldr r1, _080E95C8 @ =_080E95CC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E95C0: .4byte gWindowConfig_81E6D8C _080E95C4: .4byte gUnknown_083DB694 _080E95C8: .4byte _080E95CC .align 2, 0 _080E95CC: .4byte _080E95F2 .4byte _080E95F6 .4byte _080E9600 .4byte _080E960A .4byte _080E95E4 .4byte _080E95EE _080E95E4: movs r0, 0x4 movs r1, 0x6 bl sub_80E9620 b _080E9612 _080E95EE: movs r0, 0x2 b _080E9602 _080E95F2: movs r0, 0x3 b _080E95F8 _080E95F6: movs r0, 0 _080E95F8: movs r1, 0x5 bl sub_80E9620 b _080E9612 _080E9600: movs r0, 0x4 _080E9602: movs r1, 0x11 bl sub_80E9620 b _080E9612 _080E960A: movs r0, 0x3 movs r1, 0x6 bl sub_80E9620 _080E9612: ldr r0, _080E961C @ =gWindowConfig_81E6DA8 bl BasicInitMenuWindow pop {r0} bx r0 .align 2, 0 _080E961C: .4byte gWindowConfig_81E6DA8 thumb_func_end sub_80E95A4 thumb_func_start sub_80E9620 sub_80E9620: @ 80E9620 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 lsls r0, 16 lsls r1, 16 lsrs r1, 16 str r1, [sp, 0x14] movs r1, 0 mov r10, r1 lsrs r7, r0, 16 mov r9, r1 ldr r0, _080E9644 @ =gUnknown_083DB694 ldr r0, [r0] b _080E971A .align 2, 0 _080E9644: .4byte gUnknown_083DB694 _080E9648: ldr r6, [sp, 0x14] movs r2, 0 mov r8, r2 adds r0, r7, 0x2 str r0, [sp, 0x1C] mov r1, r9 adds r1, 0x1 str r1, [sp, 0x18] b _080E96E4 _080E965A: mov r2, r10 lsls r0, r2, 1 adds r1, r5, 0 adds r1, 0xC adds r1, r0 ldrh r0, [r1] ldr r2, _080E9690 @ =0x0000ffff cmp r0, r2 bne _080E969C movs r0, 0 str r0, [sp] str r0, [sp, 0x4] movs r1, 0x9 str r1, [sp, 0x8] movs r0, 0x2 str r0, [sp, 0xC] str r1, [sp, 0x10] ldr r0, _080E9694 @ =0x06007000 adds r1, r6, 0 adds r2, r7, 0 ldr r3, _080E9698 @ =gUnknown_083DBE1C bl sub_8095C8C adds r0, r6, 0 adds r0, 0xB b _080E96CC .align 2, 0 _080E9690: .4byte 0x0000ffff _080E9694: .4byte 0x06007000 _080E9698: .4byte gUnknown_083DBE1C _080E969C: ldr r0, _080E9738 @ =0x00009e14 adds r4, r5, r0 ldrh r1, [r1] adds r0, r4, 0 movs r2, 0xB bl sub_80EB218 lsls r1, r6, 24 lsrs r1, 24 lsls r2, r7, 24 lsrs r2, 24 adds r0, r4, 0 bl MenuPrint mov r1, r9 lsls r0, r1, 1 add r0, r8 adds r1, r5, 0 adds r1, 0x8C adds r1, r0 adds r0, r6, 0 adds r0, 0xB ldrb r1, [r1] adds r0, r1 _080E96CC: lsls r0, 16 lsrs r6, r0, 16 mov r0, r10 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r10, r0 mov r0, r8 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r8, r0 _080E96E4: ldr r0, _080E973C @ =gUnknown_083DB694 ldr r5, [r0] adds r0, r5, 0 adds r0, 0x83 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r8, r0 bge _080E970A ldrb r2, [r5, 0xA] cmp r10, r2 bcc _080E965A lsls r1, r6, 24 lsrs r1, 24 lsls r2, r7, 24 lsrs r2, 24 ldr r0, _080E9740 @ =gUnknown_083DBEA8 bl MenuPrint _080E970A: ldr r1, [sp, 0x1C] lsls r0, r1, 16 lsrs r7, r0, 16 ldr r2, [sp, 0x18] lsls r0, r2, 16 lsrs r0, 16 mov r9, r0 adds r0, r5, 0 _080E971A: adds r0, 0x84 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r9, r0 blt _080E9648 add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E9738: .4byte 0x00009e14 _080E973C: .4byte gUnknown_083DB694 _080E9740: .4byte gUnknown_083DBEA8 thumb_func_end sub_80E9620 thumb_func_start sub_80E9744 sub_80E9744: @ 80E9744 push {lr} ldr r0, _080E9760 @ =gWindowConfig_81E6D8C bl BasicInitMenuWindow ldr r0, _080E9764 @ =gUnknown_083DB694 ldr r0, [r0] ldrb r0, [r0, 0x9] cmp r0, 0x5 bhi _080E97B2 lsls r0, 2 ldr r1, _080E9768 @ =_080E976C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E9760: .4byte gWindowConfig_81E6D8C _080E9764: .4byte gUnknown_083DB694 _080E9768: .4byte _080E976C .align 2, 0 _080E976C: .4byte _080E9792 .4byte _080E9796 .4byte _080E97A0 .4byte _080E97AA .4byte _080E9784 .4byte _080E978E _080E9784: movs r0, 0x4 movs r1, 0x6 bl sub_80E97C0 b _080E97B2 _080E978E: movs r0, 0x2 b _080E97A2 _080E9792: movs r0, 0x3 b _080E9798 _080E9796: movs r0, 0 _080E9798: movs r1, 0x5 bl sub_80E97C0 b _080E97B2 _080E97A0: movs r0, 0x4 _080E97A2: movs r1, 0x11 bl sub_80E97C0 b _080E97B2 _080E97AA: movs r0, 0x3 movs r1, 0x6 bl sub_80E97C0 _080E97B2: ldr r0, _080E97BC @ =gWindowConfig_81E6DA8 bl BasicInitMenuWindow pop {r0} bx r0 .align 2, 0 _080E97BC: .4byte gWindowConfig_81E6DA8 thumb_func_end sub_80E9744 thumb_func_start sub_80E97C0 sub_80E97C0: @ 80E97C0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 16 lsrs r5, r0, 16 lsls r1, 16 lsrs r1, 16 str r1, [sp] movs r7, 0 movs r3, 0 ldr r1, _080E98B8 @ =gUnknown_083DB694 ldr r0, [r1] adds r0, 0x84 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r3, r0 bge _080E98A6 _080E97EA: ldr r1, [r1] ldr r0, _080E98BC @ =0x00009e6e adds r2, r1, r0 movs r6, 0 adds r0, r1, 0 adds r0, 0x83 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldr r4, [sp] lsls r4, 24 mov r8, r4 lsls r4, r5, 24 mov r9, r4 adds r5, 0x2 mov r10, r5 adds r3, 0x1 str r3, [sp, 0x4] cmp r6, r0 bge _080E985E ldrb r1, [r1, 0xA] cmp r7, r1 bcs _080E985E ldr r0, _080E98B8 @ =gUnknown_083DB694 ldr r4, [r0] ldr r5, _080E98C0 @ =0x0000ffff _080E981E: lsls r0, r7, 1 adds r1, r4, 0 adds r1, 0xC adds r1, r0 ldrh r0, [r1] cmp r0, r5 beq _080E983E adds r1, r0, 0 adds r0, r2, 0 movs r2, 0 bl sub_80EB218 adds r2, r0, 0 movs r0, 0 strb r0, [r2] adds r2, 0x1 _080E983E: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r0, r4, 0 adds r0, 0x83 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r6, r0 bge _080E985E ldrb r0, [r4, 0xA] cmp r7, r0 bcc _080E981E _080E985E: ldr r1, _080E98B8 @ =gUnknown_083DB694 ldr r4, [r1] adds r0, r4, 0 adds r0, 0x83 movs r1, 0 ldrsb r1, [r0, r1] movs r0, 0xB muls r1, r0 movs r0, 0xFC strb r0, [r2] movs r0, 0x13 strb r0, [r2, 0x1] lsls r1, 3 strb r1, [r2, 0x2] movs r0, 0xFF strb r0, [r2, 0x3] ldr r2, _080E98BC @ =0x00009e6e adds r0, r4, r2 mov r3, r8 lsrs r1, r3, 24 mov r3, r9 lsrs r2, r3, 24 bl MenuPrint mov r1, r10 lsls r0, r1, 16 lsrs r5, r0, 16 ldr r2, [sp, 0x4] lsls r0, r2, 24 lsrs r3, r0, 24 ldr r1, _080E98B8 @ =gUnknown_083DB694 adds r4, 0x84 movs r0, 0 ldrsb r0, [r4, r0] cmp r3, r0 blt _080E97EA _080E98A6: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E98B8: .4byte gUnknown_083DB694 _080E98BC: .4byte 0x00009e6e _080E98C0: .4byte 0x0000ffff thumb_func_end sub_80E97C0 thumb_func_start sub_80E98C4 sub_80E98C4: @ 80E98C4 push {lr} ldr r0, _080E98E0 @ =gWindowConfig_81E6D8C bl BasicInitMenuWindow ldr r0, _080E98E4 @ =gUnknown_083DB694 ldr r0, [r0] ldrb r0, [r0, 0x9] cmp r0, 0x5 bhi _080E9936 lsls r0, 2 ldr r1, _080E98E8 @ =_080E98EC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E98E0: .4byte gWindowConfig_81E6D8C _080E98E4: .4byte gUnknown_083DB694 _080E98E8: .4byte _080E98EC .align 2, 0 _080E98EC: .4byte _080E990A .4byte _080E9910 .4byte _080E9916 .4byte _080E991A .4byte _080E9904 .4byte _080E990A _080E9904: movs r1, 0x4 movs r3, 0x2 b _080E991E _080E990A: movs r1, 0x3 movs r3, 0x2 b _080E991E _080E9910: movs r1, 0x1 movs r3, 0x3 b _080E991E _080E9916: movs r1, 0x4 b _080E991C _080E991A: movs r1, 0x3 _080E991C: movs r3, 0x1 _080E991E: lsls r3, 1 adds r3, r1, r3 subs r3, 0x1 lsls r3, 24 lsrs r3, 24 movs r0, 0x2 movs r2, 0x1B bl MenuFillWindowRectWithBlankTile ldr r0, _080E993C @ =gWindowConfig_81E6DA8 bl BasicInitMenuWindow _080E9936: pop {r0} bx r0 .align 2, 0 _080E993C: .4byte gWindowConfig_81E6DA8 thumb_func_end sub_80E98C4 thumb_func_start sub_80E9940 sub_80E9940: @ 80E9940 push {r4-r6,lr} adds r6, r0, 0 lsls r5, r1, 24 lsrs r5, 24 movs r4, 0x7 ands r4, r5 lsls r3, r4, 1 adds r1, r3, 0 adds r3, 0x1 movs r0, 0x2 movs r2, 0x1F bl MenuFillWindowRectWithBlankTile adds r0, r6, 0 adds r1, r5, 0 bl sub_80E9A7C lsls r4, 1 adds r0, r6, 0 movs r1, 0x2 adds r2, r4, 0 bl sub_80E9A60 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80E9940 thumb_func_start sub_80E9974 sub_80E9974: @ 80E9974 push {r4-r6,lr} ldr r0, _080E99C4 @ =gWindowConfig_81E6D54 bl BasicInitMenuWindow ldr r0, _080E99C8 @ =gUnknown_083DB694 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x26 ldrb r0, [r0] cmp r0, 0 bne _080E99D4 ldr r1, _080E99CC @ =0x000001b5 adds r0, r2, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r1, r0, 16 lsrs r4, r1, 16 adds r0, 0x4 cmp r4, r0 bge _080E9A08 adds r5, r2, 0 ldr r2, _080E99CC @ =0x000001b5 adds r6, r5, r2 _080E99A4: lsls r1, r4, 24 lsrs r1, 24 ldr r2, _080E99D0 @ =0x00009dc9 adds r0, r5, r2 bl sub_80E9940 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 movs r0, 0 ldrsb r0, [r6, r0] adds r0, 0x4 cmp r4, r0 blt _080E99A4 b _080E9A08 .align 2, 0 _080E99C4: .4byte gWindowConfig_81E6D54 _080E99C8: .4byte gUnknown_083DB694 _080E99CC: .4byte 0x000001b5 _080E99D0: .4byte 0x00009dc9 _080E99D4: bl sub_80E9AD4 ldr r4, _080E9A10 @ =gUnknown_083DBEAC adds r0, r4, 0 movs r1, 0x2 movs r2, 0 bl sub_80E9A60 adds r0, r4, 0 adds r0, 0x20 movs r1, 0x2 movs r2, 0x2 bl sub_80E9A60 adds r0, r4, 0 adds r0, 0x40 movs r1, 0x2 movs r2, 0x4 bl sub_80E9A60 adds r4, 0x60 adds r0, r4, 0 movs r1, 0x2 movs r2, 0x6 bl sub_80E9A60 _080E9A08: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E9A10: .4byte gUnknown_083DBEAC thumb_func_end sub_80E9974 thumb_func_start sub_80E9A14 sub_80E9A14: @ 80E9A14 push {lr} bl sub_80E9A4C ldr r0, _080E9A44 @ =gUnknown_083DB694 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x26 ldrb r0, [r0] cmp r0, 0 bne _080E9A40 movs r0, 0xDD lsls r0, 1 adds r2, r1, r0 ldr r3, _080E9A48 @ =0x000001b5 adds r0, r1, r3 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 4 ldrh r1, [r2] adds r0, r1 strh r0, [r2] _080E9A40: pop {r0} bx r0 .align 2, 0 _080E9A44: .4byte gUnknown_083DB694 _080E9A48: .4byte 0x000001b5 thumb_func_end sub_80E9A14 thumb_func_start sub_80E9A4C sub_80E9A4C: @ 80E9A4C ldr r0, _080E9A5C @ =gUnknown_083DB694 ldr r0, [r0] movs r2, 0xDD lsls r2, 1 adds r1, r0, r2 movs r0, 0 strh r0, [r1] bx lr .align 2, 0 _080E9A5C: .4byte gUnknown_083DB694 thumb_func_end sub_80E9A4C thumb_func_start sub_80E9A60 sub_80E9A60: @ 80E9A60 push {lr} lsls r2, 16 movs r3, 0xF0 lsls r3, 12 ands r3, r2 lsls r1, 24 lsrs r1, 24 lsrs r3, 16 adds r2, r3, 0 bl MenuPrint pop {r0} bx r0 thumb_func_end sub_80E9A60 thumb_func_start sub_80E9A7C sub_80E9A7C: @ 80E9A7C push {r4-r7,lr} adds r2, r0, 0 lsls r1, 16 lsrs r7, r1, 16 lsls r0, r7, 17 lsrs r5, r0, 16 movs r4, 0 ldr r0, _080E9AD0 @ =gUnknown_083DB694 ldr r6, [r0] _080E9A8E: movs r0, 0xFC strb r0, [r2] movs r0, 0x12 strb r0, [r2, 0x1] movs r0, 0x58 muls r0, r4 strb r0, [r2, 0x2] adds r2, 0x3 lsls r1, r7, 1 adds r1, r4, r1 adds r0, r6, 0 adds r0, 0x2A adds r0, r1 ldrb r1, [r0] adds r0, r2, 0 movs r2, 0xB bl sub_80EAD64 adds r2, r0, 0 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 ldrh r0, [r6, 0x28] cmp r5, r0 bcs _080E9ACA adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1 bls _080E9A8E _080E9ACA: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E9AD0: .4byte gUnknown_083DB694 thumb_func_end sub_80E9A7C thumb_func_start sub_80E9AD4 sub_80E9AD4: @ 80E9AD4 push {r4,lr} ldr r0, _080E9AF4 @ =gWindowConfig_81E6D54 bl BasicInitMenuWindow movs r4, 0 _080E9ADE: adds r0, r4, 0 bl sub_80E9C74 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0xF bls _080E9ADE pop {r4} pop {r0} bx r0 .align 2, 0 _080E9AF4: .4byte gWindowConfig_81E6D54 thumb_func_end sub_80E9AD4 thumb_func_start sub_80E9AF8 sub_80E9AF8: @ 80E9AF8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 16 lsrs r7, r0, 16 adds r0, r7, 0 bl sub_80E9C74 ldr r4, _080E9B7C @ =gUnknown_083DB694 ldr r5, [r4] ldr r0, _080E9B80 @ =0x00009e14 adds r0, r5 mov r8, r0 movs r0, 0xFC mov r1, r8 strb r0, [r1] movs r0, 0x11 strb r0, [r1, 0x1] movs r0, 0x10 strb r0, [r1, 0x2] ldr r2, _080E9B84 @ =0x00009e17 adds r2, r5 mov r8, r2 adds r0, r5, 0 adds r0, 0x7D ldrb r0, [r0] cmp r0, 0 beq _080E9BF4 movs r6, 0 ldr r3, _080E9B88 @ =0x000099a6 adds r0, r5, r3 adds r0, r7 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r6, r0 blt _080E9B4A b _080E9C52 _080E9B4A: lsls r0, r7, 2 mov r9, r0 ldr r1, _080E9B8C @ =0x00009a2a adds r1, r5, r1 str r1, [sp] lsls r2, r7, 17 mov r10, r2 _080E9B58: lsls r4, r6, 1 mov r3, r9 adds r0, r4, r3 ldr r1, [sp] adds r0, r1, r0 ldrh r0, [r0] bl sub_80EB2D4 lsls r0, 16 lsrs r0, 16 adds r5, r4, 0 cmp r0, 0x7 bne _080E9B94 ldr r0, _080E9B90 @ =gWindowConfig_81E6D70 bl BasicInitMenuWindow b _080E9B9A .align 2, 0 _080E9B7C: .4byte gUnknown_083DB694 _080E9B80: .4byte 0x00009e14 _080E9B84: .4byte 0x00009e17 _080E9B88: .4byte 0x000099a6 _080E9B8C: .4byte 0x00009a2a _080E9B90: .4byte gWindowConfig_81E6D70 _080E9B94: ldr r0, _080E9BE0 @ =gWindowConfig_81E6D54 bl BasicInitMenuWindow _080E9B9A: ldr r2, _080E9BE4 @ =gUnknown_083DB694 ldr r4, [r2] mov r3, r9 adds r1, r5, r3 ldr r2, _080E9BE8 @ =0x00009a2a adds r0, r4, r2 adds r0, r1 ldrh r1, [r0] mov r0, r8 movs r2, 0x9 bl sub_80EB218 ldr r3, _080E9BEC @ =0x00009e14 adds r0, r4, r3 movs r1, 0xB muls r1, r6 adds r1, 0x4 lsls r1, 16 lsrs r1, 16 mov r3, r10 lsrs r2, r3, 16 bl sub_80E9A60 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 ldr r0, _080E9BF0 @ =0x000099a6 adds r4, r0 adds r4, r7 movs r0, 0 ldrsb r0, [r4, r0] cmp r6, r0 blt _080E9B58 b _080E9C52 .align 2, 0 _080E9BE0: .4byte gWindowConfig_81E6D54 _080E9BE4: .4byte gUnknown_083DB694 _080E9BE8: .4byte 0x00009a2a _080E9BEC: .4byte 0x00009e14 _080E9BF0: .4byte 0x000099a6 _080E9BF4: ldr r0, _080E9C64 @ =gWindowConfig_81E6D54 bl BasicInitMenuWindow movs r6, 0 ldr r1, _080E9C68 @ =0x000099a6 adds r0, r5, r1 adds r0, r7 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r6, r0 bge _080E9C52 adds r4, r5, 0 adds r0, r4, r1 adds r0, r7 mov r9, r0 lsls r5, r7, 17 _080E9C16: lsls r1, r6, 1 lsls r0, r7, 2 adds r1, r0 ldr r2, _080E9C6C @ =0x00009a2a adds r0, r4, r2 adds r0, r1 ldrh r1, [r0] mov r0, r8 movs r2, 0x9 bl sub_80EB218 movs r0, 0xB adds r1, r6, 0 muls r1, r0 adds r1, 0x4 lsls r1, 16 lsrs r1, 16 ldr r3, _080E9C70 @ =0x00009e14 adds r0, r4, r3 lsrs r2, r5, 16 bl sub_80E9A60 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 mov r1, r9 movs r0, 0 ldrsb r0, [r1, r0] cmp r6, r0 blt _080E9C16 _080E9C52: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E9C64: .4byte gWindowConfig_81E6D54 _080E9C68: .4byte 0x000099a6 _080E9C6C: .4byte 0x00009a2a _080E9C70: .4byte 0x00009e14 thumb_func_end sub_80E9AF8 thumb_func_start sub_80E9C74 sub_80E9C74: @ 80E9C74 push {lr} lsls r0, 16 movs r1, 0xE0 lsls r1, 11 ands r1, r0 lsrs r1, 16 lsls r3, r1, 1 adds r1, r3, 0 adds r3, 0x1 movs r0, 0 movs r2, 0x1D bl MenuFillWindowRectWithBlankTile pop {r0} bx r0 thumb_func_end sub_80E9C74 thumb_func_start sub_80E9C94 sub_80E9C94: @ 80E9C94 push {r4-r6,lr} ldr r0, _080E9CAC @ =gUnknown_083DB694 ldr r0, [r0] ldr r2, _080E9CB0 @ =0x00009a28 adds r1, r0, r2 movs r0, 0 ldrsb r0, [r1, r0] cmp r0, 0x3 bgt _080E9CB4 lsls r0, 16 lsrs r0, 16 b _080E9CB6 .align 2, 0 _080E9CAC: .4byte gUnknown_083DB694 _080E9CB0: .4byte 0x00009a28 _080E9CB4: movs r0, 0x4 _080E9CB6: adds r5, r0, 0 movs r4, 0 cmp r4, r5 bcs _080E9CF4 ldr r0, _080E9CE0 @ =gUnknown_083DB694 ldr r0, [r0] ldr r1, _080E9CE4 @ =0x00009a29 adds r6, r0, r1 _080E9CC6: movs r0, 0 ldrsb r0, [r6, r0] adds r0, r4, r0 lsls r0, 16 lsrs r0, 16 bl sub_80E9AF8 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r5 bcc _080E9CC6 b _080E9CF4 .align 2, 0 _080E9CE0: .4byte gUnknown_083DB694 _080E9CE4: .4byte 0x00009a29 _080E9CE8: adds r0, r4, 0 adds r1, r0, 0x1 lsls r1, 16 lsrs r4, r1, 16 bl sub_80E9C74 _080E9CF4: cmp r4, 0x3 bls _080E9CE8 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80E9C94 thumb_func_start sub_80E9D00 sub_80E9D00: @ 80E9D00 push {r4-r6,lr} ldr r0, _080E9D28 @ =gUnknown_083DB694 ldr r2, [r0] movs r0, 0xE0 lsls r0, 1 adds r1, r2, r0 movs r0, 0 ldrsb r0, [r1, r0] cmp r0, 0 ble _080E9D30 lsls r0, 16 lsrs r4, r0, 16 ldr r1, _080E9D2C @ =0x00009a29 adds r0, r2, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r0, 0x4 b _080E9D46 .align 2, 0 _080E9D28: .4byte gUnknown_083DB694 _080E9D2C: .4byte 0x00009a29 _080E9D30: movs r0, 0 ldrsb r0, [r1, r0] negs r0, r0 lsls r0, 16 lsrs r4, r0, 16 ldr r1, _080E9D74 @ =0x00009a29 adds r0, r2, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 subs r0, r4 _080E9D46: lsls r0, 16 lsrs r5, r0, 16 subs r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 ldr r0, _080E9D78 @ =0x0000ffff cmp r4, r0 beq _080E9D6E adds r6, r0, 0 _080E9D58: adds r0, r5, 0 adds r1, r0, 0x1 lsls r1, 16 lsrs r5, r1, 16 bl sub_80E9AF8 subs r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r6 bne _080E9D58 _080E9D6E: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E9D74: .4byte 0x00009a29 _080E9D78: .4byte 0x0000ffff thumb_func_end sub_80E9D00 thumb_func_start sub_80E9D7C sub_80E9D7C: @ 80E9D7C push {r4-r7,lr} ldr r0, _080E9DAC @ =gWindowConfig_81E6D54 bl BasicInitMenuWindow ldr r0, _080E9DB0 @ =gUnknown_083DB694 ldr r2, [r0] movs r0, 0xE0 lsls r0, 1 adds r1, r2, r0 movs r0, 0 ldrsb r0, [r1, r0] cmp r0, 0 bge _080E9DB8 negs r0, r0 lsls r0, 16 lsrs r6, r0, 16 ldr r1, _080E9DB4 @ =0x000001b5 adds r0, r2, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 subs r0, r6 b _080E9DCC .align 2, 0 _080E9DAC: .4byte gWindowConfig_81E6D54 _080E9DB0: .4byte gUnknown_083DB694 _080E9DB4: .4byte 0x000001b5 _080E9DB8: movs r0, 0 ldrsb r0, [r1, r0] lsls r0, 16 lsrs r6, r0, 16 ldr r1, _080E9DFC @ =0x000001b5 adds r0, r2, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r0, 0x4 _080E9DCC: lsls r0, 16 lsrs r4, r0, 16 movs r5, 0 cmp r5, r6 bcs _080E9DF6 ldr r0, _080E9E00 @ =gUnknown_083DB694 ldr r7, [r0] _080E9DDA: lsls r1, r4, 24 lsrs r1, 24 ldr r2, _080E9E04 @ =0x00009dc9 adds r0, r7, r2 bl sub_80E9940 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r6 bcc _080E9DDA _080E9DF6: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E9DFC: .4byte 0x000001b5 _080E9E00: .4byte gUnknown_083DB694 _080E9E04: .4byte 0x00009dc9 thumb_func_end sub_80E9D7C thumb_func_start sub_80E9E08 sub_80E9E08: @ 80E9E08 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080E9E4C @ =gUnknown_083DB694 ldr r3, [r0] movs r0, 0xDD lsls r0, 1 adds r1, r3, r0 movs r5, 0xE0 lsls r5, 1 adds r2, r3, r5 movs r0, 0 ldrsb r0, [r2, r0] lsls r0, 4 ldrh r1, [r1] adds r0, r1 movs r1, 0x7F ands r0, r1 subs r5, 0x4 adds r1, r3, r5 strh r0, [r1] adds r1, r4, 0 movs r0, 0 ldrsb r0, [r2, r0] cmp r0, 0 bge _080E9E3E negs r1, r4 _080E9E3E: ldr r2, _080E9E50 @ =0x000001bf adds r0, r3, r2 strb r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E9E4C: .4byte gUnknown_083DB694 _080E9E50: .4byte 0x000001bf thumb_func_end sub_80E9E08 thumb_func_start sub_80E9E54 sub_80E9E54: @ 80E9E54 push {r4,lr} ldr r0, _080E9E8C @ =gUnknown_083DB694 ldr r2, [r0] movs r0, 0xDD lsls r0, 1 adds r3, r2, r0 ldr r1, _080E9E90 @ =0x000001bf adds r0, r2, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldrh r4, [r3] adds r0, r4 movs r1, 0x7F ands r0, r1 strh r0, [r3] movs r3, 0 movs r4, 0xDE lsls r4, 1 adds r1, r2, r4 ldrh r1, [r1] cmp r0, r1 bne _080E9E84 movs r3, 0x1 _080E9E84: adds r0, r3, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080E9E8C: .4byte gUnknown_083DB694 _080E9E90: .4byte 0x000001bf thumb_func_end sub_80E9E54 thumb_func_start nullsub_23 nullsub_23: @ 80E9E94 bx lr thumb_func_end nullsub_23 thumb_func_start sub_80E9E98 sub_80E9E98: @ 80E9E98 ldr r0, _080E9EA4 @ =gUnknown_083DB694 ldr r0, [r0] adds r0, 0xBE movs r1, 0 strh r1, [r0] bx lr .align 2, 0 _080E9EA4: .4byte gUnknown_083DB694 thumb_func_end sub_80E9E98 thumb_func_start sub_80E9EA8 sub_80E9EA8: @ 80E9EA8 push {lr} ldr r1, _080E9EC4 @ =gUnknown_083DB694 ldr r0, [r1] adds r0, 0xBE ldrh r0, [r0] adds r2, r1, 0 cmp r0, 0x5 bhi _080E9F48 lsls r0, 2 ldr r1, _080E9EC8 @ =_080E9ECC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E9EC4: .4byte gUnknown_083DB694 _080E9EC8: .4byte _080E9ECC .align 2, 0 _080E9ECC: .4byte _080E9EE4 .4byte _080E9EF4 .4byte _080E9F0C .4byte _080E9F24 .4byte _080E9F38 .4byte _080E9F44 _080E9EE4: bl sub_80EA24C ldr r0, _080E9F08 @ =gUnknown_083DB694 ldr r1, [r0] adds r1, 0xBE ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080E9EF4: bl sub_80EA1E0 lsls r0, 24 cmp r0, 0 beq _080E9F48 bl sub_80EA4A4 ldr r0, _080E9F08 @ =gUnknown_083DB694 ldr r1, [r0] b _080E9F3A .align 2, 0 _080E9F08: .4byte gUnknown_083DB694 _080E9F0C: bl sub_80EA1E0 lsls r0, 24 cmp r0, 0 beq _080E9F48 bl sub_80EA704 ldr r0, _080E9F20 @ =gUnknown_083DB694 ldr r1, [r0] b _080E9F3A .align 2, 0 _080E9F20: .4byte gUnknown_083DB694 _080E9F24: bl sub_80EA1E0 lsls r0, 24 cmp r0, 0 beq _080E9F48 ldr r0, _080E9F34 @ =gUnknown_083DB694 ldr r1, [r0] b _080E9F3A .align 2, 0 _080E9F34: .4byte gUnknown_083DB694 _080E9F38: ldr r1, [r2] _080E9F3A: adds r1, 0xBE ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080E9F48 _080E9F44: movs r0, 0x1 b _080E9F4A _080E9F48: movs r0, 0 _080E9F4A: pop {r1} bx r1 thumb_func_end sub_80E9EA8 thumb_func_start sub_80E9F50 sub_80E9F50: @ 80E9F50 push {lr} ldr r0, _080E9F68 @ =gUnknown_083DB694 ldr r0, [r0] adds r0, 0xBE ldrh r0, [r0] cmp r0, 0x6 bhi _080E9FCC lsls r0, 2 ldr r1, _080E9F6C @ =_080E9F70 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E9F68: .4byte gUnknown_083DB694 _080E9F6C: .4byte _080E9F70 .align 2, 0 _080E9F70: .4byte _080E9F8C .4byte _080E9FAC .4byte _080E9F96 .4byte _080E9FAC .4byte _080E9F9C .4byte _080E9FAC .4byte _080E9FC8 _080E9F8C: bl nullsub_23 bl sub_80EA764 b _080E9FA0 _080E9F96: bl sub_80EA5A0 b _080E9FA0 _080E9F9C: bl sub_80EA348 _080E9FA0: ldr r0, _080E9FC4 @ =gUnknown_083DB694 ldr r1, [r0] adds r1, 0xBE ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080E9FAC: bl sub_80EA1E0 lsls r0, 24 cmp r0, 0 beq _080E9FCC ldr r0, _080E9FC4 @ =gUnknown_083DB694 ldr r1, [r0] adds r1, 0xBE ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080E9FCC .align 2, 0 _080E9FC4: .4byte gUnknown_083DB694 _080E9FC8: movs r0, 0x1 b _080E9FCE _080E9FCC: movs r0, 0 _080E9FCE: pop {r1} bx r1 thumb_func_end sub_80E9F50 thumb_func_start sub_80E9FD4 sub_80E9FD4: @ 80E9FD4 push {r4,lr} ldr r0, _080E9FEC @ =gUnknown_083DB694 ldr r0, [r0] adds r4, r0, 0 adds r4, 0xBE ldrh r0, [r4] cmp r0, 0 beq _080E9FF0 cmp r0, 0x1 beq _080E9FFE b _080EA00C .align 2, 0 _080E9FEC: .4byte gUnknown_083DB694 _080E9FF0: bl nullsub_23 bl sub_80EA5A0 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _080E9FFE: bl sub_80EA1E0 lsls r0, 24 cmp r0, 0 beq _080EA00C movs r0, 0x1 b _080EA00E _080EA00C: movs r0, 0 _080EA00E: pop {r4} pop {r1} bx r1 thumb_func_end sub_80E9FD4 thumb_func_start sub_80EA014 sub_80EA014: @ 80EA014 push {r4,lr} ldr r0, _080EA02C @ =gUnknown_083DB694 ldr r0, [r0] adds r4, r0, 0 adds r4, 0xBE ldrh r0, [r4] cmp r0, 0 beq _080EA030 cmp r0, 0x1 beq _080EA03A b _080EA048 .align 2, 0 _080EA02C: .4byte gUnknown_083DB694 _080EA030: bl sub_80EA4A4 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _080EA03A: bl sub_80EA1E0 lsls r0, 24 cmp r0, 0 beq _080EA048 movs r0, 0x1 b _080EA04A _080EA048: movs r0, 0 _080EA04A: pop {r4} pop {r1} bx r1 thumb_func_end sub_80EA014 thumb_func_start sub_80EA050 sub_80EA050: @ 80EA050 push {lr} ldr r0, _080EA068 @ =gUnknown_083DB694 ldr r0, [r0] adds r0, 0xBE ldrh r0, [r0] cmp r0, 0x4 bhi _080EA0DC lsls r0, 2 ldr r1, _080EA06C @ =_080EA070 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EA068: .4byte gUnknown_083DB694 _080EA06C: .4byte _080EA070 .align 2, 0 _080EA070: .4byte _080EA084 .4byte _080EA08E .4byte _080EA09E .4byte _080EA0B4 .4byte _080EA0D8 _080EA084: bl nullsub_23 bl sub_80EA764 b _080EA0C4 _080EA08E: bl sub_80EA1E0 lsls r0, 24 cmp r0, 0 beq _080EA0DC bl sub_80EA7F4 b _080EA0C4 _080EA09E: movs r0, 0x1 bl sub_80E9108 bl sub_80EA1E0 lsls r0, 24 cmp r0, 0 beq _080EA0DC bl sub_80EA8BC b _080EA0C4 _080EA0B4: movs r0, 0x1 bl sub_80E9108 bl sub_80EA1E0 lsls r0, 24 cmp r0, 0 beq _080EA0DC _080EA0C4: ldr r0, _080EA0D4 @ =gUnknown_083DB694 ldr r1, [r0] adds r1, 0xBE ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080EA0DC .align 2, 0 _080EA0D4: .4byte gUnknown_083DB694 _080EA0D8: movs r0, 0x1 b _080EA0DE _080EA0DC: movs r0, 0 _080EA0DE: pop {r1} bx r1 thumb_func_end sub_80EA050 thumb_func_start sub_80EA0E4 sub_80EA0E4: @ 80EA0E4 push {lr} ldr r0, _080EA0FC @ =gUnknown_083DB694 ldr r0, [r0] adds r0, 0xBE ldrh r0, [r0] cmp r0, 0x4 bhi _080EA17C lsls r0, 2 ldr r1, _080EA100 @ =_080EA104 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EA0FC: .4byte gUnknown_083DB694 _080EA100: .4byte _080EA104 .align 2, 0 _080EA104: .4byte _080EA118 .4byte _080EA128 .4byte _080EA144 .4byte _080EA15C .4byte _080EA178 _080EA118: bl sub_80EA948 ldr r0, _080EA140 @ =gUnknown_083DB694 ldr r1, [r0] adds r1, 0xBE ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EA128: movs r0, 0x1 negs r0, r0 bl sub_80E9108 bl sub_80EA1E0 lsls r0, 24 cmp r0, 0 beq _080EA17C bl sub_80EAA44 b _080EA166 .align 2, 0 _080EA140: .4byte gUnknown_083DB694 _080EA144: movs r0, 0x1 negs r0, r0 bl sub_80E9108 bl sub_80EA1E0 lsls r0, 24 cmp r0, 0 beq _080EA17C bl sub_80EA704 b _080EA166 _080EA15C: bl sub_80EA1E0 lsls r0, 24 cmp r0, 0 beq _080EA17C _080EA166: ldr r0, _080EA174 @ =gUnknown_083DB694 ldr r1, [r0] adds r1, 0xBE ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080EA17C .align 2, 0 _080EA174: .4byte gUnknown_083DB694 _080EA178: movs r0, 0x1 b _080EA17E _080EA17C: movs r0, 0 _080EA17E: pop {r1} bx r1 thumb_func_end sub_80EA0E4 thumb_func_start sub_80EA184 sub_80EA184: @ 80EA184 push {r4,lr} ldr r0, _080EA1A0 @ =gUnknown_083DB694 ldr r0, [r0] adds r4, r0, 0 adds r4, 0xBE ldrh r0, [r4] cmp r0, 0x1 beq _080EA1B4 cmp r0, 0x1 bgt _080EA1A4 cmp r0, 0 beq _080EA1AA b _080EA1D8 .align 2, 0 _080EA1A0: .4byte gUnknown_083DB694 _080EA1A4: cmp r0, 0x2 beq _080EA1D0 b _080EA1D8 _080EA1AA: bl sub_80EAAD4 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _080EA1B4: bl sub_80EA1E0 lsls r0, 24 cmp r0, 0 beq _080EA1D8 ldr r0, _080EA1CC @ =gUnknown_083DB694 ldr r1, [r0] adds r1, 0xBE ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080EA1D8 .align 2, 0 _080EA1CC: .4byte gUnknown_083DB694 _080EA1D0: bl sub_80E9178 movs r0, 0x1 b _080EA1DA _080EA1D8: movs r0, 0 _080EA1DA: pop {r4} pop {r1} bx r1 thumb_func_end sub_80EA184 thumb_func_start sub_80EA1E0 sub_80EA1E0: @ 80EA1E0 push {r4-r6,lr} ldr r0, _080EA240 @ =gUnknown_083DB694 ldr r1, [r0] adds r0, r1, 0 adds r0, 0xC4 ldrh r0, [r0] cmp r0, 0 beq _080EA244 movs r4, 0 adds r0, r1, 0 adds r0, 0xC2 ldrh r2, [r0] cmp r4, r2 bcs _080EA228 adds r5, r1, 0 adds r6, r0, 0 _080EA200: lsls r0, r4, 4 adds r0, 0xC8 adds r0, r5, r0 bl sub_80EAC0C lsls r0, r4, 1 adds r0, r4 lsls r0, 2 movs r1, 0xA4 lsls r1, 1 adds r0, r1 adds r0, r5, r0 bl sub_80EAC48 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 ldrh r2, [r6] cmp r4, r2 bcc _080EA200 _080EA228: ldr r0, _080EA240 @ =gUnknown_083DB694 ldr r1, [r0] adds r2, r1, 0 adds r2, 0xBC movs r0, 0x1 strb r0, [r2] adds r1, 0xC4 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] movs r0, 0 b _080EA246 .align 2, 0 _080EA240: .4byte gUnknown_083DB694 _080EA244: movs r0, 0x1 _080EA246: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80EA1E0 thumb_func_start sub_80EA24C sub_80EA24C: @ 80EA24C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 ldr r0, _080EA340 @ =gUnknown_083DB694 ldr r7, [r0] adds r0, r7, 0 adds r0, 0xC8 movs r6, 0xF str r6, [sp] ldr r1, _080EA344 @ =0x0000fffe mov r8, r1 str r1, [sp, 0x4] movs r4, 0 str r4, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0xD movs r2, 0xE movs r3, 0xD bl sub_80EABD4 movs r1, 0xA4 lsls r1, 1 adds r0, r7, r1 str r4, [sp] movs r1, 0xD9 lsls r1, 3 adds r5, r7, r1 str r5, [sp, 0x4] movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xD8 str r6, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0x2 mov r9, r1 str r1, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0xC movs r2, 0xE movs r3, 0xC bl sub_80EABD4 movs r1, 0xAA lsls r1, 1 adds r0, r7, r1 str r4, [sp] str r5, [sp, 0x4] movs r1, 0x1E movs r2, 0 mov r3, r8 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xE8 movs r6, 0x10 str r6, [sp] mov r1, r8 str r1, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0xD movs r2, 0xF movs r3, 0xD bl sub_80EABD4 movs r1, 0xB0 lsls r1, 1 adds r0, r7, r1 str r4, [sp] str r5, [sp, 0x4] movs r1, 0 movs r2, 0x9 movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xF8 str r6, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] mov r1, r9 str r1, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0xC movs r2, 0xF movs r3, 0xC bl sub_80EABD4 movs r1, 0xB6 lsls r1, 1 adds r0, r7, r1 str r4, [sp] str r5, [sp, 0x4] movs r1, 0x1E movs r2, 0x9 mov r3, r8 bl sub_80EAC30 adds r1, r7, 0 adds r1, 0xC2 movs r0, 0x4 strh r0, [r1] adds r1, 0x2 movs r0, 0x6 strh r0, [r1] add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080EA340: .4byte gUnknown_083DB694 _080EA344: .4byte 0x0000fffe thumb_func_end sub_80EA24C thumb_func_start sub_80EA348 sub_80EA348: @ 80EA348 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 ldr r0, _080EA49C @ =gUnknown_083DB694 ldr r7, [r0] adds r0, r7, 0 adds r0, 0xC8 movs r5, 0xF str r5, [sp] movs r1, 0x2 mov r9, r1 str r1, [sp, 0x4] movs r4, 0 str r4, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x1 movs r2, 0xE movs r3, 0xD bl sub_80EABD4 movs r1, 0xA4 lsls r1, 1 adds r0, r7, r1 str r4, [sp] movs r1, 0xD9 lsls r1, 3 adds r6, r7, r1 str r6, [sp, 0x4] movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xD8 str r5, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] ldr r1, _080EA4A0 @ =0x0000fffe mov r8, r1 str r1, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0xC movs r2, 0xE movs r3, 0x18 bl sub_80EABD4 movs r1, 0xAA lsls r1, 1 adds r0, r7, r1 str r4, [sp] str r6, [sp, 0x4] movs r1, 0x12 movs r2, 0 movs r3, 0x2 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xE8 movs r5, 0x10 str r5, [sp] mov r1, r9 str r1, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x1 movs r2, 0xF movs r3, 0xD bl sub_80EABD4 movs r1, 0xB0 lsls r1, 1 adds r0, r7, r1 str r4, [sp] str r6, [sp, 0x4] movs r1, 0 movs r2, 0x9 movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xF8 str r5, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] mov r1, r8 str r1, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0xC movs r2, 0xF movs r3, 0x18 bl sub_80EABD4 movs r1, 0xB6 lsls r1, 1 adds r0, r7, r1 str r4, [sp] str r6, [sp, 0x4] movs r1, 0x12 movs r2, 0x9 movs r3, 0x2 bl sub_80EAC30 movs r1, 0x84 lsls r1, 1 adds r0, r7, r1 str r5, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] mov r1, r9 str r1, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x1 movs r2, 0xE movs r3, 0x1 bl sub_80EABD4 movs r1, 0xBC lsls r1, 1 adds r0, r7, r1 str r4, [sp] adds r1, 0x50 adds r6, r7, r1 str r6, [sp, 0x4] movs r1, 0x1 movs r2, 0xE movs r3, 0 bl sub_80EAC30 movs r1, 0x8C lsls r1, 1 adds r0, r7, r1 str r5, [sp] mov r1, r8 str r1, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x18 movs r2, 0xE movs r3, 0x18 bl sub_80EABD4 movs r1, 0xC2 lsls r1, 1 adds r0, r7, r1 str r4, [sp] str r6, [sp, 0x4] movs r1, 0x18 movs r2, 0xE mov r3, r8 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xC2 movs r1, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080EA49C: .4byte gUnknown_083DB694 _080EA4A0: .4byte 0x0000fffe thumb_func_end sub_80EA348 thumb_func_start sub_80EA4A4 sub_80EA4A4: @ 80EA4A4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 ldr r0, _080EA598 @ =gUnknown_083DB694 ldr r7, [r0] adds r0, r7, 0 adds r0, 0xC8 movs r6, 0xF str r6, [sp] movs r4, 0 str r4, [sp, 0x4] ldr r1, _080EA59C @ =0x0000ffff mov r8, r1 str r1, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x1 movs r2, 0xE movs r3, 0xD bl sub_80EABD4 movs r1, 0xA4 lsls r1, 1 adds r0, r7, r1 str r4, [sp] movs r1, 0xD9 lsls r1, 3 adds r5, r7, r1 str r5, [sp, 0x4] movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xD8 str r6, [sp] str r4, [sp, 0x4] mov r1, r8 str r1, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0xC movs r2, 0xE movs r3, 0x18 bl sub_80EABD4 movs r1, 0xAA lsls r1, 1 adds r0, r7, r1 str r4, [sp] str r5, [sp, 0x4] movs r1, 0x12 movs r2, 0 movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xE8 movs r1, 0x10 mov r9, r1 str r1, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] movs r6, 0x1 str r6, [sp, 0x10] movs r1, 0x1 movs r2, 0xF movs r3, 0xD bl sub_80EABD4 movs r1, 0xB0 lsls r1, 1 adds r0, r7, r1 mov r1, r8 str r1, [sp] str r5, [sp, 0x4] movs r1, 0 movs r2, 0x9 movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xF8 mov r1, r9 str r1, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r6, [sp, 0x10] movs r1, 0xC movs r2, 0xF movs r3, 0x18 bl sub_80EABD4 movs r1, 0xB6 lsls r1, 1 adds r0, r7, r1 mov r1, r8 str r1, [sp] str r5, [sp, 0x4] movs r1, 0x12 movs r2, 0x9 movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xC2 movs r1, 0x4 strh r1, [r0] adds r0, 0x2 strh r1, [r0] add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080EA598: .4byte gUnknown_083DB694 _080EA59C: .4byte 0x0000ffff thumb_func_end sub_80EA4A4 thumb_func_start sub_80EA5A0 sub_80EA5A0: @ 80EA5A0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 ldr r0, _080EA6FC @ =gUnknown_083DB694 ldr r7, [r0] adds r0, r7, 0 adds r0, 0xC8 movs r6, 0xF str r6, [sp] movs r4, 0 str r4, [sp, 0x4] movs r1, 0x1 mov r8, r1 str r1, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r2, 0xA movs r3, 0xD bl sub_80EABD4 movs r1, 0xA4 lsls r1, 1 adds r0, r7, r1 str r4, [sp] movs r1, 0xD9 lsls r1, 3 adds r5, r7, r1 str r5, [sp, 0x4] movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xD8 str r6, [sp] str r4, [sp, 0x4] mov r1, r8 str r1, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0xC movs r2, 0xA movs r3, 0x18 bl sub_80EABD4 movs r1, 0xAA lsls r1, 1 adds r0, r7, r1 str r4, [sp] str r5, [sp, 0x4] movs r1, 0x12 movs r2, 0 movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xE8 movs r1, 0x14 mov r9, r1 str r1, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] ldr r6, _080EA700 @ =0x0000ffff str r6, [sp, 0x10] movs r1, 0x1 movs r2, 0xF movs r3, 0xD bl sub_80EABD4 movs r1, 0xB0 lsls r1, 1 adds r0, r7, r1 mov r1, r8 str r1, [sp] str r5, [sp, 0x4] movs r1, 0 movs r2, 0x5 movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xF8 mov r1, r9 str r1, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r6, [sp, 0x10] movs r1, 0xC movs r2, 0xF movs r3, 0x18 bl sub_80EABD4 movs r1, 0xB6 lsls r1, 1 adds r0, r7, r1 mov r1, r8 str r1, [sp] str r5, [sp, 0x4] movs r1, 0x12 movs r2, 0x5 movs r3, 0 bl sub_80EAC30 movs r1, 0x84 lsls r1, 1 adds r0, r7, r1 movs r1, 0xA str r1, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] mov r1, r8 str r1, [sp, 0x10] movs r1, 0x1 movs r2, 0xA movs r3, 0x18 bl sub_80EABD4 movs r1, 0xBC lsls r1, 1 adds r0, r7, r1 str r4, [sp] adds r1, 0x50 adds r5, r7, r1 str r5, [sp, 0x4] movs r1, 0x1 movs r2, 0xA movs r3, 0 bl sub_80EAC30 movs r1, 0x8C lsls r1, 1 adds r0, r7, r1 mov r1, r9 str r1, [sp] str r4, [sp, 0x4] str r6, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x1 movs r2, 0x14 movs r3, 0x18 bl sub_80EABD4 movs r1, 0xC2 lsls r1, 1 adds r0, r7, r1 str r6, [sp] str r5, [sp, 0x4] movs r1, 0x1 movs r2, 0x14 movs r3, 0 bl sub_80EAC30 adds r1, r7, 0 adds r1, 0xC2 movs r0, 0x6 strh r0, [r1] adds r1, 0x2 movs r0, 0x4 strh r0, [r1] add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080EA6FC: .4byte gUnknown_083DB694 _080EA700: .4byte 0x0000ffff thumb_func_end sub_80EA5A0 thumb_func_start sub_80EA704 sub_80EA704: @ 80EA704 push {r4-r6,lr} sub sp, 0x14 ldr r0, _080EA75C @ =gUnknown_083DB694 ldr r6, [r0] adds r0, r6, 0 adds r0, 0xC8 movs r1, 0x14 str r1, [sp] movs r4, 0 str r4, [sp, 0x4] str r4, [sp, 0x8] movs r5, 0x1 str r5, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x18 movs r2, 0xC movs r3, 0x19 bl sub_80EABD4 movs r1, 0xA4 lsls r1, 1 adds r0, r6, r1 ldr r3, _080EA760 @ =0x0000ffff str r4, [sp] movs r2, 0xD9 lsls r2, 3 adds r1, r6, r2 str r1, [sp, 0x4] movs r1, 0x5 movs r2, 0xA bl sub_80EAC30 adds r0, r6, 0 adds r0, 0xC2 strh r5, [r0] adds r1, r6, 0 adds r1, 0xC4 movs r0, 0x5 strh r0, [r1] add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080EA75C: .4byte gUnknown_083DB694 _080EA760: .4byte 0x0000ffff thumb_func_end sub_80EA704 thumb_func_start sub_80EA764 sub_80EA764: @ 80EA764 push {r4-r7,lr} sub sp, 0x14 ldr r0, _080EA7EC @ =gUnknown_083DB694 ldr r7, [r0] adds r0, r7, 0 adds r0, 0xC8 movs r6, 0x14 str r6, [sp] movs r4, 0 str r4, [sp, 0x4] str r4, [sp, 0x8] ldr r5, _080EA7F0 @ =0x0000ffff str r5, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x18 movs r2, 0xC movs r3, 0x1E bl sub_80EABD4 movs r1, 0xA4 lsls r1, 1 adds r0, r7, r1 str r4, [sp] movs r2, 0xD9 lsls r2, 3 adds r1, r7, r2 str r1, [sp, 0x4] movs r1, 0 movs r2, 0xA movs r3, 0x1 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xD8 str r6, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x1E movs r2, 0xC movs r3, 0x1F bl sub_80EABD4 movs r1, 0xAA lsls r1, 1 adds r0, r7, r1 str r4, [sp] movs r2, 0xE4 lsls r2, 1 adds r1, r7, r2 str r1, [sp, 0x4] movs r1, 0x1E movs r2, 0xC adds r3, r5, 0 bl sub_80EAC30 adds r1, r7, 0 adds r1, 0xC2 movs r0, 0x2 strh r0, [r1] adds r1, 0x2 movs r0, 0x6 strh r0, [r1] add sp, 0x14 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080EA7EC: .4byte gUnknown_083DB694 _080EA7F0: .4byte 0x0000ffff thumb_func_end sub_80EA764 thumb_func_start sub_80EA7F4 sub_80EA7F4: @ 80EA7F4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 ldr r0, _080EA8B4 @ =gUnknown_083DB694 ldr r7, [r0] adds r0, r7, 0 adds r0, 0xC8 movs r6, 0x14 str r6, [sp] movs r4, 0 str r4, [sp, 0x4] str r4, [sp, 0x8] movs r5, 0x1 str r5, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x14 movs r2, 0xA movs r3, 0x19 bl sub_80EABD4 movs r1, 0xA4 lsls r1, 1 adds r0, r7, r1 ldr r3, _080EA8B8 @ =0x0000ffff str r4, [sp] movs r2, 0xD9 lsls r2, 3 adds r2, r7 mov r8, r2 str r2, [sp, 0x4] movs r1, 0x19 movs r2, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xD8 str r6, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] str r5, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0 movs r2, 0xA movs r3, 0x1 bl sub_80EABD4 movs r1, 0xAA lsls r1, 1 adds r0, r7, r1 str r4, [sp] movs r2, 0xE4 lsls r2, 1 adds r1, r7, r2 str r1, [sp, 0x4] movs r1, 0 movs r2, 0xA movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xE8 str r6, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x1 movs r2, 0xA movs r3, 0x4 bl sub_80EABD4 movs r1, 0xB0 lsls r1, 1 adds r0, r7, r1 str r4, [sp] mov r2, r8 str r2, [sp, 0x4] movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80EAC30 adds r1, r7, 0 adds r1, 0xC2 movs r0, 0x3 strh r0, [r1] adds r1, 0x2 movs r0, 0x2 strh r0, [r1] add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080EA8B4: .4byte gUnknown_083DB694 _080EA8B8: .4byte 0x0000ffff thumb_func_end sub_80EA7F4 thumb_func_start sub_80EA8BC sub_80EA8BC: @ 80EA8BC push {r4-r6,lr} sub sp, 0x14 ldr r0, _080EA944 @ =gUnknown_083DB694 ldr r6, [r0] adds r0, r6, 0 adds r0, 0xC8 movs r5, 0x14 str r5, [sp] movs r4, 0 str r4, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x3 movs r2, 0xA movs r3, 0x4 bl sub_80EABD4 movs r1, 0xA4 lsls r1, 1 adds r0, r6, r1 str r4, [sp] movs r2, 0xD9 lsls r2, 3 adds r1, r6, r2 str r1, [sp, 0x4] movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80EAC30 adds r0, r6, 0 adds r0, 0xD8 str r5, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0 movs r2, 0xA movs r3, 0x2 bl sub_80EABD4 movs r1, 0xAA lsls r1, 1 adds r0, r6, r1 str r4, [sp] movs r2, 0xE4 lsls r2, 1 adds r1, r6, r2 str r1, [sp, 0x4] movs r1, 0 movs r2, 0xA movs r3, 0 bl sub_80EAC30 adds r1, r6, 0 adds r1, 0xC2 movs r0, 0x2 strh r0, [r1] adds r1, 0x2 movs r0, 0x1 strh r0, [r1] add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080EA944: .4byte gUnknown_083DB694 thumb_func_end sub_80EA8BC thumb_func_start sub_80EA948 sub_80EA948: @ 80EA948 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 ldr r0, _080EAA3C @ =gUnknown_083DB694 ldr r7, [r0] adds r0, r7, 0 adds r0, 0xC8 movs r6, 0x14 str r6, [sp] movs r4, 0 str r4, [sp, 0x4] str r4, [sp, 0x8] ldr r5, _080EAA40 @ =0x0000ffff str r5, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0 movs r2, 0xA movs r3, 0x2 bl sub_80EABD4 movs r1, 0xA4 lsls r1, 1 adds r0, r7, r1 str r4, [sp] adds r1, 0x80 adds r1, r7 mov r9, r1 str r1, [sp, 0x4] movs r1, 0 movs r2, 0xA movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xD8 str r6, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x3 movs r2, 0xA movs r3, 0x5 bl sub_80EABD4 movs r1, 0xAA lsls r1, 1 adds r0, r7, r1 str r4, [sp] movs r1, 0xD9 lsls r1, 3 adds r1, r7 mov r8, r1 str r1, [sp, 0x4] movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xE8 str r6, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x1A movs r2, 0xA movs r3, 0x1E bl sub_80EABD4 movs r1, 0xB0 lsls r1, 1 adds r0, r7, r1 str r4, [sp] mov r1, r9 str r1, [sp, 0x4] movs r1, 0x1A movs r2, 0xA adds r3, r5, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xF8 str r6, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] str r5, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x19 movs r2, 0xA movs r3, 0x1A bl sub_80EABD4 movs r1, 0xB6 lsls r1, 1 adds r0, r7, r1 str r4, [sp] mov r1, r8 str r1, [sp, 0x4] movs r1, 0x1D movs r2, 0 movs r3, 0 bl sub_80EAC30 adds r1, r7, 0 adds r1, 0xC2 movs r0, 0x4 strh r0, [r1] adds r1, 0x2 movs r0, 0x2 strh r0, [r1] add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080EAA3C: .4byte gUnknown_083DB694 _080EAA40: .4byte 0x0000ffff thumb_func_end sub_80EA948 thumb_func_start sub_80EAA44 sub_80EAA44: @ 80EAA44 push {r4-r6,lr} sub sp, 0x14 ldr r0, _080EAACC @ =gUnknown_083DB694 ldr r6, [r0] adds r0, r6, 0 adds r0, 0xC8 movs r5, 0x14 str r5, [sp] movs r4, 0 str r4, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x18 movs r2, 0xA movs r3, 0x1E bl sub_80EABD4 movs r1, 0xA4 lsls r1, 1 adds r0, r6, r1 str r4, [sp] movs r2, 0xE4 lsls r2, 1 adds r1, r6, r2 str r1, [sp, 0x4] movs r1, 0x18 movs r2, 0xA movs r3, 0 bl sub_80EAC30 adds r0, r6, 0 adds r0, 0xD8 str r5, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] ldr r1, _080EAAD0 @ =0x0000ffff str r1, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x17 movs r2, 0xA movs r3, 0x18 bl sub_80EABD4 movs r1, 0xAA lsls r1, 1 adds r0, r6, r1 str r4, [sp] movs r2, 0xD9 lsls r2, 3 adds r1, r6, r2 str r1, [sp, 0x4] movs r1, 0x1D movs r2, 0 movs r3, 0 bl sub_80EAC30 adds r1, r6, 0 adds r1, 0xC2 movs r0, 0x2 strh r0, [r1] adds r1, 0x2 movs r0, 0x1 strh r0, [r1] add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080EAACC: .4byte gUnknown_083DB694 _080EAAD0: .4byte 0x0000ffff thumb_func_end sub_80EAA44 thumb_func_start sub_80EAAD4 sub_80EAAD4: @ 80EAAD4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 ldr r0, _080EABCC @ =gUnknown_083DB694 ldr r7, [r0] adds r0, r7, 0 adds r0, 0xC8 movs r1, 0xF str r1, [sp] movs r4, 0 str r4, [sp, 0x4] movs r5, 0x1 str r5, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0 movs r2, 0xA movs r3, 0x1E bl sub_80EABD4 movs r1, 0xA4 lsls r1, 1 adds r0, r7, r1 str r4, [sp] movs r1, 0xD9 lsls r1, 3 adds r1, r7 mov r8, r1 str r1, [sp, 0x4] movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xD8 movs r1, 0x14 mov r9, r1 str r1, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] ldr r6, _080EABD0 @ =0x0000ffff str r6, [sp, 0x10] movs r1, 0 movs r2, 0xF movs r3, 0x1E bl sub_80EABD4 movs r1, 0xAA lsls r1, 1 adds r0, r7, r1 str r5, [sp] mov r1, r8 str r1, [sp, 0x4] movs r1, 0 movs r2, 0x5 movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xE8 movs r1, 0xA str r1, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r5, [sp, 0x10] movs r1, 0 movs r2, 0xA movs r3, 0x1E bl sub_80EABD4 movs r1, 0xB0 lsls r1, 1 adds r0, r7, r1 str r4, [sp] adds r1, 0x68 adds r5, r7, r1 str r5, [sp, 0x4] movs r1, 0 movs r2, 0xA movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xF8 mov r1, r9 str r1, [sp] str r4, [sp, 0x4] str r6, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0 movs r2, 0x14 movs r3, 0x1E bl sub_80EABD4 movs r1, 0xB6 lsls r1, 1 adds r0, r7, r1 str r6, [sp] str r5, [sp, 0x4] movs r1, 0 movs r2, 0x14 movs r3, 0 bl sub_80EAC30 adds r1, r7, 0 adds r1, 0xC2 movs r0, 0x4 strh r0, [r1] adds r1, 0x2 movs r0, 0x5 strh r0, [r1] add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080EABCC: .4byte gUnknown_083DB694 _080EABD0: .4byte 0x0000ffff thumb_func_end sub_80EAAD4 thumb_func_start sub_80EABD4 sub_80EABD4: @ 80EABD4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r5, [sp, 0x1C] ldr r6, [sp, 0x20] ldr r4, [sp, 0x24] mov r9, r4 ldr r4, [sp, 0x28] ldr r7, [sp, 0x2C] mov r8, r7 strh r1, [r0] strh r3, [r0, 0x2] strh r2, [r0, 0x4] strh r5, [r0, 0x6] strh r6, [r0, 0x8] strh r4, [r0, 0xA] mov r1, r9 strh r1, [r0, 0xC] mov r4, r8 strh r4, [r0, 0xE] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80EABD4 thumb_func_start sub_80EAC0C sub_80EAC0C: @ 80EAC0C ldrh r1, [r0, 0x8] ldrh r2, [r0] adds r1, r2 strh r1, [r0] ldrh r1, [r0, 0xA] ldrh r2, [r0, 0x2] adds r1, r2 strh r1, [r0, 0x2] ldrh r1, [r0, 0xC] ldrh r2, [r0, 0x4] adds r1, r2 strh r1, [r0, 0x4] ldrh r1, [r0, 0xE] ldrh r2, [r0, 0x6] adds r1, r2 strh r1, [r0, 0x6] bx lr thumb_func_end sub_80EAC0C thumb_func_start sub_80EAC30 sub_80EAC30: @ 80EAC30 push {r4,r5,lr} ldr r4, [sp, 0xC] ldr r5, [sp, 0x10] strh r1, [r0] strh r2, [r0, 0x2] strh r3, [r0, 0x4] strh r4, [r0, 0x6] str r5, [r0, 0x8] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80EAC30 thumb_func_start sub_80EAC48 sub_80EAC48: @ 80EAC48 ldrh r1, [r0, 0x4] ldrh r2, [r0] adds r1, r2 strh r1, [r0] ldrh r1, [r0, 0x6] ldrh r2, [r0, 0x2] adds r1, r2 strh r1, [r0, 0x2] bx lr thumb_func_end sub_80EAC48 thumb_func_start sub_80EAC5C sub_80EAC5C: @ 80EAC5C push {r4-r6,lr} ldr r0, _080EACB4 @ =gUnknown_083DB694 ldr r1, [r0] adds r0, r1, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0 beq _080EACAC movs r4, 0 adds r0, r1, 0 adds r0, 0xC2 ldrh r2, [r0] cmp r4, r2 bcs _080EACA2 adds r5, r1, 0 adds r6, r0, 0 _080EAC7C: lsls r1, r4, 4 adds r1, 0xC8 adds r1, r5, r1 lsls r2, r4, 1 adds r2, r4 lsls r2, 2 movs r0, 0xA4 lsls r0, 1 adds r2, r0 adds r2, r5, r2 ldr r0, _080EACB8 @ =0x06006800 bl sub_80EACBC adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 ldrh r2, [r6] cmp r4, r2 bcc _080EAC7C _080EACA2: ldr r0, _080EACB4 @ =gUnknown_083DB694 ldr r0, [r0] adds r0, 0xBC movs r1, 0 strb r1, [r0] _080EACAC: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080EACB4: .4byte gUnknown_083DB694 _080EACB8: .4byte 0x06006800 thumb_func_end sub_80EAC5C thumb_func_start sub_80EACBC sub_80EACBC: @ 80EACBC push {r4-r7,lr} sub sp, 0x10 adds r7, r0, 0 adds r3, r1, 0 adds r4, r2, 0 ldrh r2, [r3, 0x2] ldrh r0, [r3] subs r2, r0 ldrh r0, [r3, 0x6] ldrh r1, [r3, 0x4] subs r0, r1 lsls r0, 16 lsrs r0, 16 lsls r6, r2, 16 cmp r6, 0 ble _080EACFE lsls r5, r0, 16 cmp r5, 0 ble _080EACFE ldrh r1, [r3] ldrh r2, [r3, 0x4] ldr r3, [r4, 0x8] ldrh r0, [r4] str r0, [sp] ldrh r0, [r4, 0x2] str r0, [sp, 0x4] lsrs r0, r6, 16 str r0, [sp, 0x8] lsrs r0, r5, 16 str r0, [sp, 0xC] adds r0, r7, 0 bl sub_809D104 _080EACFE: add sp, 0x10 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80EACBC thumb_func_start sub_80EAD08 sub_80EAD08: @ 80EAD08 push {r4,r5,lr} ldr r0, _080EAD58 @ =gUnknown_03004DC0 ldrb r1, [r0, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 ldr r1, _080EAD5C @ =gUnknown_03004DE0 adds r4, r0, r1 adds r4, 0xB0 ldr r0, _080EAD60 @ =gUnknown_083DB694 ldr r1, [r0] movs r0, 0xDD lsls r0, 1 adds r1, r0 ldrh r0, [r1] adds r2, r0, 0 subs r2, 0x58 movs r0, 0xFF ands r2, r0 movs r3, 0 movs r5, 0xFF _080EAD32: ldrh r0, [r1] adds r0, r3 cmp r0, 0x80 bne _080EAD42 negs r0, r3 adds r2, r0, 0 subs r2, 0x58 ands r2, r5 _080EAD42: strh r2, [r4] adds r4, 0x2 adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x3F bls _080EAD32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080EAD58: .4byte gUnknown_03004DC0 _080EAD5C: .4byte gUnknown_03004DE0 _080EAD60: .4byte gUnknown_083DB694 thumb_func_end sub_80EAD08 thumb_func_start sub_80EAD64 sub_80EAD64: @ 80EAD64 push {lr} lsls r1, 24 ldr r2, _080EAD78 @ =gEasyChatGroupNames lsrs r1, 22 adds r1, r2 ldr r1, [r1] bl StringCopy pop {r1} bx r1 .align 2, 0 _080EAD78: .4byte gEasyChatGroupNames thumb_func_end sub_80EAD64 thumb_func_start sub_80EAD7C sub_80EAD7C: @ 80EAD7C push {lr} lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0x14 beq _080EADA2 cmp r0, 0x14 bgt _080EAD9C cmp r0, 0x11 blt _080EADBA ldr r0, _080EAD98 @ =0x00000804 bl FlagGet b _080EADB4 .align 2, 0 _080EAD98: .4byte 0x00000804 _080EAD9C: cmp r1, 0x15 beq _080EADB0 b _080EADBA _080EADA2: ldr r0, _080EADAC @ =0x00000806 bl FlagGet b _080EADB4 .align 2, 0 _080EADAC: .4byte 0x00000806 _080EADB0: bl sub_80EB9C8 _080EADB4: lsls r0, 24 lsrs r0, 24 b _080EADBC _080EADBA: movs r0, 0x1 _080EADBC: pop {r1} bx r1 thumb_func_end sub_80EAD7C thumb_func_start sub_80EADC0 sub_80EADC0: @ 80EADC0 push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 16 lsrs r3, r1, 16 cmp r2, 0x15 bhi _080EAE82 lsls r0, r2, 2 ldr r1, _080EADD8 @ =_080EADDC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EADD8: .4byte _080EADDC .align 2, 0 _080EADDC: .4byte _080EAE50 .4byte _080EAE82 .4byte _080EAE82 .4byte _080EAE82 .4byte _080EAE82 .4byte _080EAE82 .4byte _080EAE82 .4byte _080EAE82 .4byte _080EAE82 .4byte _080EAE82 .4byte _080EAE82 .4byte _080EAE82 .4byte _080EAE82 .4byte _080EAE82 .4byte _080EAE82 .4byte _080EAE82 .4byte _080EAE82 .4byte _080EAE62 .4byte _080EAE62 .4byte _080EAE62 .4byte _080EAE34 .4byte _080EAE78 _080EAE34: ldr r0, _080EAE4C @ =gUnknown_083DB694 ldr r0, [r0] adds r0, r2 adds r0, 0x67 ldrb r0, [r0] cmp r0, 0 beq _080EAE70 lsls r0, r3, 24 lsrs r0, 24 bl sub_80EB868 b _080EAE7C .align 2, 0 _080EAE4C: .4byte gUnknown_083DB694 _080EAE50: adds r0, r3, 0 bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0 bl sub_8090D90 b _080EAE7C _080EAE62: ldr r0, _080EAE74 @ =gUnknown_083DB694 ldr r0, [r0] adds r0, r2 adds r0, 0x67 ldrb r0, [r0] cmp r0, 0 bne _080EAE82 _080EAE70: movs r0, 0 b _080EAE84 .align 2, 0 _080EAE74: .4byte gUnknown_083DB694 _080EAE78: bl sub_80EB9C8 _080EAE7C: lsls r0, 24 lsrs r0, 24 b _080EAE84 _080EAE82: movs r0, 0x1 _080EAE84: pop {r1} bx r1 thumb_func_end sub_80EADC0 thumb_func_start sub_80EAE88 sub_80EAE88: @ 80EAE88 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _080EAEA6 cmp r4, 0x14 beq _080EAEB2 adds r0, r4, 0 bl sub_80EAD7C lsls r0, 24 cmp r0, 0 bne _080EAEBC movs r0, 0 b _080EAEC2 _080EAEA6: movs r0, 0 bl sub_8090F68 lsls r0, 16 lsrs r0, 16 b _080EAEC2 _080EAEB2: bl sub_80EB8C0 lsls r0, 24 lsrs r0, 24 b _080EAEC2 _080EAEBC: ldr r0, _080EAEC8 @ =gEasyChatGroupSizes adds r0, r4, r0 ldrb r0, [r0] _080EAEC2: pop {r4} pop {r1} bx r1 .align 2, 0 _080EAEC8: .4byte gEasyChatGroupSizes thumb_func_end sub_80EAE88 thumb_func_start sub_80EAECC sub_80EAECC: @ 80EAECC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 movs r0, 0 mov r8, r0 ldr r1, _080EAF10 @ =gUnknown_083DB694 ldr r0, [r1] ldr r3, _080EAF14 @ =0x00004142 adds r3, r0, r3 str r3, [sp, 0x4] _080EAEE6: ldr r1, _080EAF18 @ =gEasyChatWordsByLetter mov r7, r8 lsls r2, r7, 1 adds r0, r2, r1 ldrh r4, [r0] mov r3, r8 adds r3, 0x1 lsls r0, r3, 1 adds r0, r1 ldrh r0, [r0] str r0, [sp] ldr r0, [sp, 0x4] adds r1, r0, r2 movs r0, 0 strh r0, [r1] mov r9, r0 adds r6, r4, 0 mov r10, r2 str r3, [sp, 0x8] b _080EB00C .align 2, 0 _080EAF10: .4byte gUnknown_083DB694 _080EAF14: .4byte 0x00004142 _080EAF18: .4byte gEasyChatWordsByLetter _080EAF1C: ldr r2, _080EAFB0 @ =gEasyChatWordsAlphabetized adds r0, r6, 0 adds r1, r0, 0x1 lsls r1, 16 lsrs r6, r1, 16 lsls r0, 1 adds r0, r2 ldrh r1, [r0] adds r4, r1, 0 ldr r0, _080EAFB4 @ =0x0000feff cmp r1, r0 bls _080EAFCC movs r0, 0xFF ands r1, r0 movs r7, 0 subs r0, r1, 0x1 lsls r0, 16 lsrs r5, r0, 16 ldr r3, _080EAFB8 @ =0x0000ffff cmp r5, r3 beq _080EB00C mov r1, r8 lsls r0, r1, 8 subs r0, r1 lsls r3, r0, 1 _080EAF4E: adds r1, r6, 0 adds r0, r1, 0x1 lsls r0, 16 lsrs r6, r0, 16 lsls r1, 1 ldr r0, _080EAFB0 @ =gEasyChatWordsAlphabetized adds r1, r0 ldrh r4, [r1] lsrs r0, r4, 9 ldr r1, _080EAFBC @ =0x000001ff adds r2, r1, 0 adds r1, r4, 0 ands r1, r2 str r3, [sp, 0xC] bl sub_80EADC0 lsls r0, 24 ldr r3, [sp, 0xC] cmp r0, 0 beq _080EAFA2 cmp r7, 0 bne _080EAFA2 ldr r7, _080EAFC0 @ =gUnknown_083DB694 ldr r2, [r7] mov r1, r9 adds r0, r1, 0x1 lsls r0, 16 lsrs r0, 16 mov r9, r0 lsls r1, 1 adds r1, r3 ldr r7, _080EAFC4 @ =0x00000b78 adds r0, r2, r7 adds r0, r1 strh r4, [r0] ldr r0, _080EAFC8 @ =0x00004142 adds r2, r0 add r2, r10 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] movs r7, 0x1 _080EAFA2: subs r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 ldr r1, _080EAFB8 @ =0x0000ffff cmp r5, r1 bne _080EAF4E b _080EB00C .align 2, 0 _080EAFB0: .4byte gEasyChatWordsAlphabetized _080EAFB4: .4byte 0x0000feff _080EAFB8: .4byte 0x0000ffff _080EAFBC: .4byte 0x000001ff _080EAFC0: .4byte gUnknown_083DB694 _080EAFC4: .4byte 0x00000b78 _080EAFC8: .4byte 0x00004142 _080EAFCC: lsrs r0, r4, 9 ldr r3, _080EB030 @ =0x000001ff adds r2, r3, 0 adds r1, r4, 0 ands r1, r2 bl sub_80EADC0 lsls r0, 24 cmp r0, 0 beq _080EB00C ldr r7, _080EB034 @ =gUnknown_083DB694 ldr r2, [r7] mov r1, r9 adds r0, r1, 0x1 lsls r0, 16 lsrs r0, 16 mov r9, r0 mov r3, r8 lsls r0, r3, 8 subs r0, r3 adds r0, r1 lsls r0, 1 ldr r7, _080EB038 @ =0x00000b78 adds r1, r2, r7 adds r1, r0 strh r4, [r1] ldr r0, _080EB03C @ =0x00004142 adds r2, r0 add r2, r10 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] _080EB00C: ldr r1, [sp] cmp r6, r1 bcc _080EAF1C ldr r3, [sp, 0x8] lsls r0, r3, 16 lsrs r0, 16 mov r8, r0 cmp r0, 0x1A bhi _080EB020 b _080EAEE6 _080EB020: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080EB030: .4byte 0x000001ff _080EB034: .4byte gUnknown_083DB694 _080EB038: .4byte 0x00000b78 _080EB03C: .4byte 0x00004142 thumb_func_end sub_80EAECC thumb_func_start sub_80EB040 sub_80EB040: @ 80EB040 push {r4-r6,lr} movs r3, 0 _080EB044: adds r6, r3, 0x1 cmp r3, 0 beq _080EB094 cmp r3, 0x15 beq _080EB094 cmp r3, 0x12 beq _080EB094 cmp r3, 0x13 beq _080EB094 ldr r0, _080EB0A4 @ =gEasyChatGroupWords lsls r1, r3, 2 adds r1, r0 ldr r2, [r1] movs r4, 0 ldrb r0, [r2] cmp r0, 0xFF beq _080EB094 ldr r0, _080EB0A8 @ =gUnknown_083DB694 ldr r0, [r0] ldr r1, _080EB0AC @ =0x000041a4 adds r5, r0, r1 _080EB06E: lsls r0, r4, 2 lsls r1, r3, 10 adds r0, r1 adds r0, r5, r0 str r2, [r0] ldrb r0, [r2] adds r1, r4, 0x1 cmp r0, 0xFF beq _080EB088 _080EB080: adds r2, 0x1 ldrb r0, [r2] cmp r0, 0xFF bne _080EB080 _080EB088: adds r2, 0x1 lsls r0, r1, 16 lsrs r4, r0, 16 ldrb r0, [r2] cmp r0, 0xFF bne _080EB06E _080EB094: lsls r0, r6, 16 lsrs r3, r0, 16 cmp r3, 0x15 bls _080EB044 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080EB0A4: .4byte gEasyChatGroupWords _080EB0A8: .4byte gUnknown_083DB694 _080EB0AC: .4byte 0x000041a4 thumb_func_end sub_80EB040 thumb_func_start sub_80EB0B0 sub_80EB0B0: @ 80EB0B0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 ldr r3, _080EB184 @ =gUnknown_083DB694 ldr r4, [r3] adds r0, r4, 0 adds r0, 0x26 ldrb r5, [r0] cmp r5, 0 bne _080EB19C movs r0, 0xDC lsls r0, 1 adds r2, r4, r0 ldrb r6, [r2] lsls r1, r6, 1 ldr r7, _080EB188 @ =0x00004178 adds r0, r4, r7 adds r0, r1 strh r5, [r0] movs r7, 0 movs r0, 0 mov r9, r0 ldr r1, _080EB18C @ =gEasyChatGroupOrders lsls r0, r6, 2 adds r0, r1 ldr r0, [r0] str r0, [sp] movs r1, 0 mov r8, r1 ldr r1, _080EB190 @ =gEasyChatGroupSizes ldrb r0, [r2] adds r0, r1 ldrb r0, [r0] cmp r8, r0 bcc _080EB0FE b _080EB1FA _080EB0FE: movs r2, 0xDC lsls r2, 1 adds r2, r4, r2 str r2, [sp, 0x4] lsls r5, r6, 24 mov r10, r5 _080EB10A: mov r1, r8 lsls r0, r1, 1 ldr r2, [sp] adds r5, r0, r2 ldrh r1, [r5] mov r2, r10 lsrs r0, r2, 24 bl sub_80EADC0 lsls r0, 24 cmp r0, 0 beq _080EB16A ldr r0, _080EB184 @ =gUnknown_083DB694 ldr r3, [r0] lsls r1, r7, 1 mov r2, r9 lsls r0, r2, 2 adds r1, r0 ldr r0, _080EB194 @ =0x00009a2a adds r4, r3, r0 adds r4, r1 movs r0, 0x7F ands r0, r6 lsls r0, 9 ldrh r1, [r5] ldr r5, _080EB198 @ =0x000001ff adds r2, r5, 0 ands r1, r2 orrs r0, r1 strh r0, [r4] lsls r0, r6, 1 ldr r1, _080EB188 @ =0x00004178 adds r3, r1 adds r3, r0 ldrh r0, [r3] adds r0, 0x1 strh r0, [r3] adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 cmp r7, 0x1 bls _080EB16A movs r7, 0 mov r0, r9 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r9, r0 _080EB16A: mov r0, r8 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r1, _080EB190 @ =gEasyChatGroupSizes ldr r2, [sp, 0x4] ldrb r0, [r2] adds r0, r1 ldrb r0, [r0] cmp r8, r0 bcc _080EB10A b _080EB1FA .align 2, 0 _080EB184: .4byte gUnknown_083DB694 _080EB188: .4byte 0x00004178 _080EB18C: .4byte gEasyChatGroupOrders _080EB190: .4byte gEasyChatGroupSizes _080EB194: .4byte 0x00009a2a _080EB198: .4byte 0x000001ff _080EB19C: movs r5, 0xDC lsls r5, 1 adds r0, r4, r5 ldrb r2, [r0] movs r3, 0 movs r6, 0 movs r5, 0 lsls r1, r2, 1 ldr r7, _080EB20C @ =0x00004142 adds r0, r4, r7 adds r1, r0, r1 ldrh r0, [r1] cmp r5, r0 bcs _080EB1FA ldr r7, _080EB210 @ =0x00009a2a adds r7, r4 mov r8, r7 lsls r0, r2, 8 subs r0, r2 lsls r7, r0, 1 ldr r0, _080EB214 @ =0x00000b78 adds r2, r4, r0 adds r4, r1, 0 _080EB1CA: lsls r1, r3, 1 lsls r0, r6, 2 adds r1, r0 add r1, r8 lsls r0, r5, 1 adds r0, r7 adds r0, r2, r0 ldrh r0, [r0] strh r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x1 bls _080EB1EE movs r3, 0 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 _080EB1EE: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 ldrh r1, [r4] cmp r5, r1 bcc _080EB1CA _080EB1FA: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080EB20C: .4byte 0x00004142 _080EB210: .4byte 0x00009a2a _080EB214: .4byte 0x00000b78 thumb_func_end sub_80EB0B0 thumb_func_start sub_80EB218 sub_80EB218: @ 80EB218 push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 lsls r6, r1, 16 lsrs r4, r6, 16 adds r7, r4, 0 lsls r2, 16 lsrs r2, 16 mov r8, r2 adds r0, r4, 0 bl sub_80EB37C lsls r0, 24 cmp r0, 0 beq _080EB240 ldr r1, _080EB23C @ =gOtherText_ThreeQuestions b _080EB2A2 .align 2, 0 _080EB23C: .4byte gOtherText_ThreeQuestions _080EB240: ldr r0, _080EB250 @ =0x0000ffff cmp r4, r0 bne _080EB254 adds r1, r5, 0 movs r0, 0xFF strb r0, [r1] b _080EB2AA .align 2, 0 _080EB250: .4byte 0x0000ffff _080EB254: lsrs r2, r6, 25 ldr r1, _080EB268 @ =0x000001ff ands r1, r7 cmp r2, 0x13 bgt _080EB26C cmp r2, 0x12 bge _080EB280 cmp r2, 0 beq _080EB270 b _080EB290 .align 2, 0 _080EB268: .4byte 0x000001ff _080EB26C: cmp r2, 0x15 bne _080EB290 _080EB270: movs r0, 0xB muls r1, r0 ldr r0, _080EB27C @ =gSpeciesNames adds r1, r0 b _080EB2A2 .align 2, 0 _080EB27C: .4byte gSpeciesNames _080EB280: movs r0, 0xD muls r1, r0 ldr r0, _080EB28C @ =gMoveNames adds r1, r0 b _080EB2A2 .align 2, 0 _080EB28C: .4byte gMoveNames _080EB290: ldr r0, _080EB2CC @ =gUnknown_083DB694 ldr r0, [r0] lsls r1, 2 lsls r2, 10 adds r1, r2 ldr r2, _080EB2D0 @ =0x000041a4 adds r0, r2 adds r0, r1 ldr r1, [r0] _080EB2A2: adds r0, r5, 0 bl StringCopy adds r1, r0, 0 _080EB2AA: movs r0, 0xFC strb r0, [r1] movs r0, 0x13 strb r0, [r1, 0x1] mov r2, r8 lsls r0, r2, 3 strb r0, [r1, 0x2] adds r1, 0x3 movs r0, 0xFF strb r0, [r1] adds r0, r1, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080EB2CC: .4byte gUnknown_083DB694 _080EB2D0: .4byte 0x000041a4 thumb_func_end sub_80EB218 thumb_func_start sub_80EB2D4 sub_80EB2D4: @ 80EB2D4 push {r4-r6,lr} lsls r5, r0, 16 lsrs r4, r5, 16 adds r6, r4, 0 adds r0, r4, 0 bl sub_80EB37C lsls r0, 24 cmp r0, 0 beq _080EB2F8 ldr r0, _080EB2F4 @ =gOtherText_ThreeQuestions bl StringLength lsls r0, 16 lsrs r0, 16 b _080EB374 .align 2, 0 _080EB2F4: .4byte gOtherText_ThreeQuestions _080EB2F8: ldr r0, _080EB304 @ =0x0000ffff cmp r4, r0 bne _080EB308 movs r0, 0 b _080EB374 .align 2, 0 _080EB304: .4byte 0x0000ffff _080EB308: lsrs r2, r5, 25 ldr r1, _080EB31C @ =0x000001ff ands r1, r6 cmp r2, 0x13 bgt _080EB320 cmp r2, 0x12 bge _080EB334 cmp r2, 0 beq _080EB324 b _080EB344 .align 2, 0 _080EB31C: .4byte 0x000001ff _080EB320: cmp r2, 0x15 bne _080EB344 _080EB324: movs r0, 0xB muls r1, r0 ldr r0, _080EB330 @ =gSpeciesNames adds r1, r0 b _080EB356 .align 2, 0 _080EB330: .4byte gSpeciesNames _080EB334: movs r0, 0xD muls r1, r0 ldr r0, _080EB340 @ =gMoveNames adds r1, r0 b _080EB356 .align 2, 0 _080EB340: .4byte gMoveNames _080EB344: ldr r0, _080EB35C @ =gUnknown_083DB694 ldr r0, [r0] lsls r1, 2 lsls r2, 10 adds r1, r2 ldr r2, _080EB360 @ =0x000041a4 adds r0, r2 adds r0, r1 ldr r1, [r0] _080EB356: movs r2, 0 b _080EB36C .align 2, 0 _080EB35C: .4byte gUnknown_083DB694 _080EB360: .4byte 0x000041a4 _080EB364: adds r1, 0x1 adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 _080EB36C: ldrb r0, [r1] cmp r0, 0xFF bne _080EB364 adds r0, r2, 0 _080EB374: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80EB2D4 thumb_func_start sub_80EB37C sub_80EB37C: @ 80EB37C push {r4,r5,lr} lsls r1, r0, 16 lsrs r3, r1, 16 ldr r0, _080EB3A0 @ =0x0000ffff cmp r3, r0 beq _080EB3EA lsrs r2, r1, 25 ldr r5, _080EB3A4 @ =0x000001ff ands r5, r3 cmp r2, 0x15 bhi _080EB3F4 cmp r2, 0x13 bgt _080EB3A8 cmp r2, 0x12 bge _080EB3AC cmp r2, 0 beq _080EB3AC b _080EB3E0 .align 2, 0 _080EB3A0: .4byte 0x0000ffff _080EB3A4: .4byte 0x000001ff _080EB3A8: cmp r2, 0x15 bne _080EB3E0 _080EB3AC: ldr r0, _080EB3D8 @ =gEasyChatGroupWords lsls r1, r2, 2 adds r1, r0 ldr r4, [r1] movs r3, 0 ldr r0, _080EB3DC @ =gEasyChatGroupSizes adds r0, r2, r0 ldrb r0, [r0] cmp r3, r0 bcs _080EB3F4 adds r1, r0, 0 _080EB3C2: lsls r0, r3, 1 adds r0, r4 ldrh r0, [r0] cmp r5, r0 beq _080EB3EA adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r1 bcc _080EB3C2 b _080EB3F4 .align 2, 0 _080EB3D8: .4byte gEasyChatGroupWords _080EB3DC: .4byte gEasyChatGroupSizes _080EB3E0: ldr r0, _080EB3F0 @ =gEasyChatGroupSizes adds r0, r2, r0 ldrb r0, [r0] cmp r5, r0 bcs _080EB3F4 _080EB3EA: movs r0, 0 b _080EB3F6 .align 2, 0 _080EB3F0: .4byte gEasyChatGroupSizes _080EB3F4: movs r0, 0x1 _080EB3F6: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80EB37C thumb_func_start sub_80EB3FC sub_80EB3FC: @ 80EB3FC push {r4-r7,lr} adds r5, r0, 0 lsls r6, r1, 16 lsrs r4, r6, 16 adds r7, r4, 0 adds r0, r4, 0 bl sub_80EB37C lsls r0, 24 cmp r0, 0 beq _080EB420 ldr r1, _080EB41C @ =gOtherText_ThreeQuestions adds r0, r5, 0 bl StringCopy b _080EB4A6 .align 2, 0 _080EB41C: .4byte gOtherText_ThreeQuestions _080EB420: ldr r0, _080EB43C @ =0x0000ffff cmp r4, r0 beq _080EB4A0 lsrs r1, r6, 25 ldr r2, _080EB440 @ =0x000001ff ands r2, r7 cmp r1, 0x13 bgt _080EB444 cmp r1, 0x12 bge _080EB458 cmp r1, 0 beq _080EB448 b _080EB468 .align 2, 0 _080EB43C: .4byte 0x0000ffff _080EB440: .4byte 0x000001ff _080EB444: cmp r1, 0x15 bne _080EB468 _080EB448: movs r0, 0xB adds r1, r2, 0 muls r1, r0 ldr r0, _080EB454 @ =gSpeciesNames adds r1, r0 b _080EB498 .align 2, 0 _080EB454: .4byte gSpeciesNames _080EB458: movs r0, 0xD adds r1, r2, 0 muls r1, r0 ldr r0, _080EB464 @ =gMoveNames adds r1, r0 b _080EB498 .align 2, 0 _080EB464: .4byte gMoveNames _080EB468: ldr r0, _080EB4AC @ =gEasyChatGroupWords lsls r1, 2 adds r1, r0 ldr r1, [r1] subs r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 ldr r0, _080EB4B0 @ =0x0000ffff cmp r2, r0 beq _080EB498 adds r3, r0, 0 _080EB47E: ldrb r0, [r1] adds r1, 0x1 subs r2, 0x1 cmp r0, 0xFF beq _080EB490 _080EB488: ldrb r0, [r1] adds r1, 0x1 cmp r0, 0xFF bne _080EB488 _080EB490: lsls r0, r2, 16 lsrs r2, r0, 16 cmp r2, r3 bne _080EB47E _080EB498: adds r0, r5, 0 bl StringCopy adds r5, r0, 0 _080EB4A0: movs r0, 0xFF strb r0, [r5] adds r0, r5, 0 _080EB4A6: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080EB4AC: .4byte gEasyChatGroupWords _080EB4B0: .4byte 0x0000ffff thumb_func_end sub_80EB3FC thumb_func_start ConvertEasyChatWordsToString ConvertEasyChatWordsToString: @ 80EB4B4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 lsls r2, 16 lsls r3, 16 lsrs r3, 16 mov r9, r3 ldr r0, _080EB53C @ =0xffff0000 adds r2, r0 lsrs r7, r2, 16 movs r0, 0 cmp r0, r9 bcs _080EB524 _080EB4D6: movs r6, 0 adds r0, 0x1 mov r8, r0 cmp r6, r7 bcs _080EB508 ldr r2, _080EB540 @ =0x0000ffff _080EB4E2: ldrh r1, [r5] adds r0, r4, 0 str r2, [sp] bl sub_80EB3FC adds r4, r0, 0 ldrh r0, [r5] ldr r2, [sp] cmp r0, r2 beq _080EB4FC movs r0, 0 strb r0, [r4] adds r4, 0x1 _080EB4FC: adds r5, 0x2 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, r7 bcc _080EB4E2 _080EB508: ldrh r1, [r5] adds r5, 0x2 adds r0, r4, 0 bl sub_80EB3FC adds r4, r0, 0 movs r0, 0xFE strb r0, [r4] adds r4, 0x1 mov r1, r8 lsls r0, r1, 16 lsrs r0, 16 cmp r0, r9 bcc _080EB4D6 _080EB524: subs r4, 0x1 movs r0, 0xFF strb r0, [r4] adds r0, r4, 0 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080EB53C: .4byte 0xffff0000 _080EB540: .4byte 0x0000ffff thumb_func_end ConvertEasyChatWordsToString thumb_func_start sub_80EB544 sub_80EB544: @ 80EB544 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 lsls r2, 16 lsls r3, 16 lsrs r3, 16 mov r10, r3 ldr r0, _080EB5B0 @ =0xffff0000 adds r2, r0 lsrs r2, 16 mov r8, r2 movs r7, 0 cmp r7, r10 bcs _080EB5C8 _080EB56A: movs r6, 0 adds r1, r7, 0x1 mov r9, r1 cmp r6, r8 bcs _080EB59C ldr r2, _080EB5B4 @ =0x0000ffff _080EB576: ldrh r1, [r5] adds r0, r4, 0 str r2, [sp] bl sub_80EB3FC adds r4, r0, 0 ldrh r0, [r5] ldr r2, [sp] cmp r0, r2 beq _080EB590 movs r0, 0 strb r0, [r4] adds r4, 0x1 _080EB590: adds r5, 0x2 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, r8 bcc _080EB576 _080EB59C: ldrh r1, [r5] adds r5, 0x2 adds r0, r4, 0 bl sub_80EB3FC adds r4, r0, 0 cmp r7, 0 bne _080EB5B8 movs r0, 0xFE b _080EB5BA .align 2, 0 _080EB5B0: .4byte 0xffff0000 _080EB5B4: .4byte 0x0000ffff _080EB5B8: movs r0, 0xFA _080EB5BA: strb r0, [r4] adds r4, 0x1 mov r1, r9 lsls r0, r1, 16 lsrs r7, r0, 16 cmp r7, r10 bcc _080EB56A _080EB5C8: subs r4, 0x1 movs r0, 0xFF strb r0, [r4] adds r0, r4, 0 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80EB544 thumb_func_start unref_sub_80EB5E0 unref_sub_80EB5E0: @ 80EB5E0 push {lr} lsls r1, r0, 16 lsrs r3, r1, 16 ldr r0, _080EB5F0 @ =0x0000ffff cmp r3, r0 bne _080EB5F4 movs r0, 0 b _080EB67C .align 2, 0 _080EB5F0: .4byte 0x0000ffff _080EB5F4: lsrs r1, 25 ldr r2, _080EB608 @ =0x000001ff ands r2, r3 cmp r1, 0x13 bgt _080EB60C cmp r1, 0x12 bge _080EB620 cmp r1, 0 beq _080EB610 b _080EB630 .align 2, 0 _080EB608: .4byte 0x000001ff _080EB60C: cmp r1, 0x15 bne _080EB630 _080EB610: movs r0, 0xB adds r1, r2, 0 muls r1, r0 ldr r0, _080EB61C @ =gSpeciesNames adds r1, r0 b _080EB660 .align 2, 0 _080EB61C: .4byte gSpeciesNames _080EB620: movs r0, 0xD adds r1, r2, 0 muls r1, r0 ldr r0, _080EB62C @ =gMoveNames adds r1, r0 b _080EB660 .align 2, 0 _080EB62C: .4byte gMoveNames _080EB630: ldr r0, _080EB664 @ =gEasyChatGroupWords lsls r1, 2 adds r1, r0 ldr r1, [r1] subs r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 ldr r0, _080EB668 @ =0x0000ffff cmp r2, r0 beq _080EB660 adds r3, r0, 0 _080EB646: ldrb r0, [r1] adds r1, 0x1 subs r2, 0x1 cmp r0, 0xFF beq _080EB658 _080EB650: ldrb r0, [r1] adds r1, 0x1 cmp r0, 0xFF bne _080EB650 _080EB658: lsls r0, r2, 16 lsrs r2, r0, 16 cmp r2, r3 bne _080EB646 _080EB660: movs r2, 0 b _080EB674 .align 2, 0 _080EB664: .4byte gEasyChatGroupWords _080EB668: .4byte 0x0000ffff _080EB66C: adds r1, 0x1 adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 _080EB674: ldrb r0, [r1] cmp r0, 0xFF bne _080EB66C adds r0, r2, 0 _080EB67C: pop {r1} bx r1 thumb_func_end unref_sub_80EB5E0 thumb_func_start sub_80EB680 sub_80EB680: @ 80EB680 movs r0, 0 bx lr thumb_func_end sub_80EB680 thumb_func_start unref_sub_80EB684 unref_sub_80EB684: @ 80EB684 push {r4,lr} lsls r0, 24 lsrs r0, 24 adds r2, r0, 0 lsls r1, 16 lsrs r1, 16 cmp r0, 0x7 beq _080EB6B4 cmp r0, 0x7 bgt _080EB69E cmp r0, 0x5 beq _080EB6A4 b _080EB6EE _080EB69E: cmp r2, 0x8 beq _080EB6C4 b _080EB6EE _080EB6A4: movs r2, 0x6 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080EB6B0 @ =gSaveBlock1 + 0x273C b _080EB6CE .align 2, 0 _080EB6B0: .4byte gSaveBlock1 + 0x273C _080EB6B4: movs r2, 0x2 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080EB6C0 @ =gSaveBlock1 + 0x2754 b _080EB6CE .align 2, 0 _080EB6C0: .4byte gSaveBlock1 + 0x2754 _080EB6C4: movs r2, 0x1 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080EB6F4 @ =gSaveBlock1 + 0x273A _080EB6CE: adds r1, r0, r1 subs r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 ldr r0, _080EB6F8 @ =0x0000ffff cmp r2, r0 beq _080EB6EE adds r4, r0, 0 adds r3, r0, 0 _080EB6E0: strh r4, [r1] adds r1, 0x2 subs r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, r3 bne _080EB6E0 _080EB6EE: pop {r4} pop {r0} bx r0 .align 2, 0 _080EB6F4: .4byte gSaveBlock1 + 0x273A _080EB6F8: .4byte 0x0000ffff thumb_func_end unref_sub_80EB684 thumb_func_start sub_80EB6FC sub_80EB6FC: @ 80EB6FC push {lr} adds r2, r0, 0 lsls r1, 16 ldr r0, _080EB724 @ =0xffff0000 adds r1, r0 lsrs r0, r1, 16 ldr r1, _080EB728 @ =0x0000ffff cmp r0, r1 beq _080EB71E adds r3, r1, 0 _080EB710: strh r3, [r2] adds r2, 0x2 subs r0, 0x1 lsls r0, 16 lsrs r0, 16 cmp r0, r1 bne _080EB710 _080EB71E: pop {r0} bx r0 .align 2, 0 _080EB724: .4byte 0xffff0000 _080EB728: .4byte 0x0000ffff thumb_func_end sub_80EB6FC thumb_func_start sub_80EB72C sub_80EB72C: @ 80EB72C push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 bl Random lsls r0, 16 lsrs r0, 16 ldr r1, _080EB778 @ =gEasyChatGroupSizes adds r1, r4, r1 ldrb r1, [r1] bl __modsi3 lsls r0, 16 lsrs r2, r0, 16 cmp r4, 0 beq _080EB758 cmp r4, 0x15 beq _080EB758 cmp r4, 0x12 beq _080EB758 cmp r4, 0x13 bne _080EB766 _080EB758: ldr r1, _080EB77C @ =gEasyChatGroupWords lsls r0, r4, 2 adds r0, r1 ldr r1, [r0] lsls r0, r2, 1 adds r0, r1 ldrh r2, [r0] _080EB766: movs r0, 0x7F ands r0, r4 lsls r0, 9 ldr r1, _080EB780 @ =0x000001ff ands r2, r1 orrs r0, r2 pop {r4} pop {r1} bx r1 .align 2, 0 _080EB778: .4byte gEasyChatGroupSizes _080EB77C: .4byte gEasyChatGroupWords _080EB780: .4byte 0x000001ff thumb_func_end sub_80EB72C thumb_func_start sub_80EB784 sub_80EB784: @ 80EB784 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 lsls r0, r4, 24 lsrs r0, 24 bl sub_80EAD7C lsls r0, 24 cmp r0, 0 bne _080EB7A0 ldr r0, _080EB79C @ =0x0000ffff b _080EB7BE .align 2, 0 _080EB79C: .4byte 0x0000ffff _080EB7A0: cmp r4, 0 beq _080EB7AE cmp r4, 0x14 bne _080EB7B4 bl sub_80EB960 b _080EB7BA _080EB7AE: bl sub_80EB9D8 b _080EB7BA _080EB7B4: adds r0, r4, 0 bl sub_80EB72C _080EB7BA: lsls r0, 16 lsrs r0, 16 _080EB7BE: pop {r4} pop {r1} bx r1 thumb_func_end sub_80EB784 thumb_func_start sub_80EB7C4 sub_80EB7C4: @ 80EB7C4 push {r4,r5,lr} ldr r0, _080EB7D8 @ =gUnknown_0202E8CC ldrh r0, [r0] cmp r0, 0x1 beq _080EB7F0 cmp r0, 0x1 bgt _080EB7DC cmp r0, 0 beq _080EB7E6 b _080EB82E .align 2, 0 _080EB7D8: .4byte gUnknown_0202E8CC _080EB7DC: cmp r0, 0x2 beq _080EB810 cmp r0, 0x3 beq _080EB818 b _080EB82E _080EB7E6: ldr r5, _080EB7EC @ =gSaveBlock1 + 0x2B1C movs r2, 0x2 b _080EB81C .align 2, 0 _080EB7EC: .4byte gSaveBlock1 + 0x2B1C _080EB7F0: ldr r5, _080EB80C @ =gSaveBlock1 + 0x2B28 adds r0, r5, 0 movs r1, 0x3 movs r2, 0x2 movs r3, 0x14 bl sub_80EB680 lsls r0, 24 cmp r0, 0 beq _080EB81A movs r2, 0x2 movs r3, 0x3 b _080EB81E .align 2, 0 _080EB80C: .4byte gSaveBlock1 + 0x2B28 _080EB810: ldr r5, _080EB814 @ =gSaveBlock1 + 0x2B34 b _080EB81A .align 2, 0 _080EB814: .4byte gSaveBlock1 + 0x2B34 _080EB818: ldr r5, _080EB834 @ =gSaveBlock1 + 0x2B40 _080EB81A: movs r2, 0x3 _080EB81C: movs r3, 0x2 _080EB81E: ldr r4, _080EB838 @ =gStringVar4 adds r0, r4, 0 adds r1, r5, 0 bl ConvertEasyChatWordsToString adds r0, r4, 0 bl ShowFieldAutoScrollMessage _080EB82E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080EB834: .4byte gSaveBlock1 + 0x2B40 _080EB838: .4byte gStringVar4 thumb_func_end sub_80EB7C4 thumb_func_start sub_80EB83C sub_80EB83C: @ 80EB83C push {lr} bl Random movs r1, 0x1 ands r1, r0 movs r0, 0xC cmp r1, 0 beq _080EB84E movs r0, 0xD _080EB84E: bl sub_80EB784 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 ldr r0, _080EB864 @ =gStringVar2 bl sub_80EB3FC pop {r0} bx r0 .align 2, 0 _080EB864: .4byte gStringVar2 thumb_func_end sub_80EB83C thumb_func_start sub_80EB868 sub_80EB868: @ 80EB868 lsls r0, 24 lsrs r2, r0, 27 movs r1, 0xE0 lsls r1, 19 ands r1, r0 lsrs r1, 24 ldr r0, _080EB888 @ =gSaveBlock1 ldr r3, _080EB88C @ =0x00002d8c adds r0, r3 adds r2, r0 ldrb r0, [r2] asrs r0, r1 movs r1, 0x1 ands r0, r1 bx lr .align 2, 0 _080EB888: .4byte gSaveBlock1 _080EB88C: .4byte 0x00002d8c thumb_func_end sub_80EB868 thumb_func_start sub_80EB890 sub_80EB890: @ 80EB890 push {lr} lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x20 bhi _080EB8B2 lsrs r2, r0, 27 movs r1, 0x7 ands r1, r3 ldr r0, _080EB8B8 @ =gSaveBlock1 ldr r3, _080EB8BC @ =0x00002d8c adds r0, r3 adds r2, r0 movs r0, 0x1 lsls r0, r1 ldrb r1, [r2] orrs r0, r1 strb r0, [r2] _080EB8B2: pop {r0} bx r0 .align 2, 0 _080EB8B8: .4byte gSaveBlock1 _080EB8BC: .4byte 0x00002d8c thumb_func_end sub_80EB890 thumb_func_start sub_80EB8C0 sub_80EB8C0: @ 80EB8C0 push {r4,r5,lr} movs r4, 0 movs r5, 0 _080EB8C6: adds r0, r4, 0 bl sub_80EB868 lsls r0, 24 cmp r0, 0 beq _080EB8D8 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _080EB8D8: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x20 bls _080EB8C6 adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80EB8C0 thumb_func_start sub_80EB8EC sub_80EB8EC: @ 80EB8EC push {r4-r6,lr} bl sub_80EB8C0 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x21 bne _080EB918 b _080EB952 _080EB8FC: adds r0, r5, 0 bl sub_80EB890 ldr r0, _080EB914 @ =0x000001ff ands r4, r0 movs r1, 0xA0 lsls r1, 6 adds r0, r1, 0 orrs r4, r0 adds r0, r4, 0 b _080EB954 .align 2, 0 _080EB914: .4byte 0x000001ff _080EB918: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x21 subs r1, r4 bl __modsi3 lsls r0, 16 lsrs r6, r0, 16 movs r4, 0 _080EB92E: lsls r0, r4, 24 lsrs r5, r0, 24 adds r0, r5, 0 bl sub_80EB868 lsls r0, 24 cmp r0, 0 bne _080EB948 cmp r6, 0 beq _080EB8FC subs r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 _080EB948: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x20 bls _080EB92E _080EB952: ldr r0, _080EB95C @ =0x0000ffff _080EB954: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080EB95C: .4byte 0x0000ffff thumb_func_end sub_80EB8EC thumb_func_start sub_80EB960 sub_80EB960: @ 80EB960 push {r4,r5,lr} bl sub_80EB8C0 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _080EB984 b _080EB9BA _080EB970: ldr r0, _080EB980 @ =0x000001ff ands r4, r0 movs r1, 0xA0 lsls r1, 6 adds r0, r1, 0 orrs r4, r0 adds r0, r4, 0 b _080EB9BC .align 2, 0 _080EB980: .4byte 0x000001ff _080EB984: bl Random lsls r0, 16 lsrs r0, 16 adds r1, r5, 0 bl __umodsi3 lsls r0, 16 lsrs r5, r0, 16 movs r4, 0 _080EB998: lsls r0, r4, 24 lsrs r0, 24 bl sub_80EB868 lsls r0, 24 cmp r0, 0 beq _080EB9B0 cmp r5, 0 beq _080EB970 subs r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 _080EB9B0: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x20 bls _080EB998 _080EB9BA: ldr r0, _080EB9C4 @ =0x0000ffff _080EB9BC: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080EB9C4: .4byte 0x0000ffff thumb_func_end sub_80EB960 thumb_func_start sub_80EB9C8 sub_80EB9C8: @ 80EB9C8 push {lr} bl sub_806912C lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_80EB9C8 thumb_func_start sub_80EB9D8 sub_80EB9D8: @ 80EB9D8 push {r4-r7,lr} movs r0, 0 bl sub_80EAE88 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 bne _080EB9F8 b _080EBA46 _080EB9EA: ldrh r1, [r5] ldr r0, _080EB9F4 @ =0x000001ff ands r0, r1 b _080EBA48 .align 2, 0 _080EB9F4: .4byte 0x000001ff _080EB9F8: bl Random lsls r0, 16 lsrs r0, 16 adds r1, r4, 0 bl __umodsi3 lsls r0, 16 lsrs r4, r0, 16 ldr r0, _080EBA50 @ =gEasyChatGroupWords ldr r5, [r0] movs r6, 0 ldr r0, _080EBA54 @ =gEasyChatGroupSizes ldrb r0, [r0] cmp r6, r0 bcs _080EBA46 adds r7, r0, 0 _080EBA1A: ldrh r0, [r5] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0 bl sub_8090D90 lsls r0, 24 cmp r0, 0 beq _080EBA3A cmp r4, 0 beq _080EB9EA subs r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 _080EBA3A: adds r5, 0x2 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, r7 bcc _080EBA1A _080EBA46: ldr r0, _080EBA58 @ =0x0000ffff _080EBA48: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080EBA50: .4byte gEasyChatGroupWords _080EBA54: .4byte gEasyChatGroupSizes _080EBA58: .4byte 0x0000ffff thumb_func_end sub_80EB9D8 thumb_func_start sub_80EBA5C sub_80EBA5C: @ 80EBA5C push {lr} ldr r0, _080EBA74 @ =gMain ldr r2, _080EBA78 @ =0x0000043c adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0xE bhi _080EBABC lsls r0, 2 ldr r1, _080EBA7C @ =_080EBA80 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EBA74: .4byte gMain _080EBA78: .4byte 0x0000043c _080EBA7C: .4byte _080EBA80 .align 2, 0 _080EBA80: .4byte _080EBAC0 .4byte _080EBB08 .4byte _080EBB10 .4byte _080EBB16 .4byte _080EBB1C .4byte _080EBB22 .4byte _080EBB28 .4byte _080EBB2E .4byte _080EBB3E .4byte _080EBB4C .4byte _080EBB5C .4byte _080EBB6C .4byte _080EBB7C .4byte _080EBB90 .4byte _080EBBA0 _080EBABC: movs r0, 0 strb r0, [r1] _080EBAC0: bl is_c1_link_related_active ldr r3, _080EBAF0 @ =0x02000000 ldr r2, _080EBAF4 @ =0x00006dac adds r1, r3, r2 strb r0, [r1] lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _080EBBC0 ldr r1, _080EBAF8 @ =0x00006dab adds r0, r3, r1 strb r2, [r0] ldr r1, _080EBAFC @ =gMain ldr r2, _080EBB00 @ =0x0000043c adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r0, _080EBB04 @ =sub_80EBBE8 bl SetMainCallback2 b _080EBBC0 .align 2, 0 _080EBAF0: .4byte 0x02000000 _080EBAF4: .4byte 0x00006dac _080EBAF8: .4byte 0x00006dab _080EBAFC: .4byte gMain _080EBB00: .4byte 0x0000043c _080EBB04: .4byte sub_80EBBE8 _080EBB08: movs r0, 0 bl SetVBlankCallback b _080EBBC0 _080EBB10: bl ResetPaletteFade b _080EBBC0 _080EBB16: bl ResetSpriteData b _080EBBC0 _080EBB1C: bl FreeAllSpritePalettes b _080EBBC0 _080EBB22: bl ResetTasks b _080EBBC0 _080EBB28: bl remove_some_task b _080EBBC0 _080EBB2E: bl sub_80F1A90 ldr r1, _080EBB44 @ =gMain ldr r0, _080EBB48 @ =0x0000043c adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080EBB3E: bl sub_80F1AC4 b _080EBB80 .align 2, 0 _080EBB44: .4byte gMain _080EBB48: .4byte 0x0000043c _080EBB4C: bl sub_80F2688 ldr r1, _080EBB64 @ =gMain ldr r2, _080EBB68 @ =0x0000043c adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080EBB5C: bl sub_80F26BC b _080EBB80 .align 2, 0 _080EBB64: .4byte gMain _080EBB68: .4byte 0x0000043c _080EBB6C: bl sub_80F36F0 ldr r1, _080EBB88 @ =gMain ldr r0, _080EBB8C @ =0x0000043c adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080EBB7C: bl sub_80F3724 _080EBB80: lsls r0, 24 cmp r0, 0 bne _080EBBCC b _080EBBC0 .align 2, 0 _080EBB88: .4byte gMain _080EBB8C: .4byte 0x0000043c _080EBB90: bl sub_80EBC10 ldr r0, _080EBB9C @ =sub_80EBDD8 bl sub_80EBDBC b _080EBBC0 .align 2, 0 _080EBB9C: .4byte sub_80EBDD8 _080EBBA0: ldr r0, _080EBBD0 @ =0x02000000 ldr r1, _080EBBD4 @ =0x00006dab adds r0, r1 movs r1, 0x1 strb r1, [r0] movs r0, 0x6E bl PlaySE ldr r0, _080EBBD8 @ =sub_80EBD90 bl SetMainCallback2 ldr r0, _080EBBDC @ =sub_80EBD18 bl SetVBlankCallback bl sub_80F1A74 _080EBBC0: ldr r1, _080EBBE0 @ =gMain ldr r2, _080EBBE4 @ =0x0000043c adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080EBBCC: pop {r0} bx r0 .align 2, 0 _080EBBD0: .4byte 0x02000000 _080EBBD4: .4byte 0x00006dab _080EBBD8: .4byte sub_80EBD90 _080EBBDC: .4byte sub_80EBD18 _080EBBE0: .4byte gMain _080EBBE4: .4byte 0x0000043c thumb_func_end sub_80EBA5C thumb_func_start sub_80EBBE8 sub_80EBBE8: @ 80EBBE8 push {r4,lr} ldr r0, _080EBC08 @ =0x02000000 ldr r2, _080EBC0C @ =0x00006dab adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 bne _080EBC02 adds r4, r1, 0 _080EBBF8: bl sub_80EBA5C ldrb r0, [r4] cmp r0, 0 beq _080EBBF8 _080EBC02: pop {r4} pop {r0} bx r0 .align 2, 0 _080EBC08: .4byte 0x02000000 _080EBC0C: .4byte 0x00006dab thumb_func_end sub_80EBBE8 thumb_func_start sub_80EBC10 sub_80EBC10: @ 80EBC10 push {r4-r7,lr} ldr r1, _080EBC7C @ =gKeyRepeatStartDelay movs r0, 0x14 strh r0, [r1] bl CalculatePlayerPartyCount ldr r2, _080EBC80 @ =0x02000000 ldr r1, _080EBC84 @ =0x00008828 adds r3, r2, r1 movs r1, 0 strb r0, [r3] ldr r3, _080EBC88 @ =0x00006ddc adds r0, r2, r3 strb r1, [r0] ldr r3, _080EBC8C @ =0x00009344 adds r0, r2, r3 strb r1, [r0] ldr r3, _080EBC90 @ =0x00008768 adds r0, r2, r3 str r1, [r0] ldr r3, _080EBC94 @ =0x0000ced0 adds r0, r2, r3 str r1, [r0] movs r3, 0 ldr r0, _080EBC98 @ =0x00008fff adds r7, r2, r0 mov r12, r2 movs r6, 0 ldr r5, _080EBC9C @ =0x00009040 movs r4, 0x9B _080EBC4C: adds r0, r3, r7 strb r6, [r0] lsls r1, r3, 2 adds r1, r2 adds r0, r1, r5 strh r4, [r0] ldr r0, _080EBCA0 @ =0x00009042 adds r1, r0 movs r0, 0x5B strh r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x4 bls _080EBC4C ldr r1, _080EBCA4 @ =0x00006e95 add r1, r12 movs r0, 0 strb r0, [r1] bl sub_80EBCA8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080EBC7C: .4byte gKeyRepeatStartDelay _080EBC80: .4byte 0x02000000 _080EBC84: .4byte 0x00008828 _080EBC88: .4byte 0x00006ddc _080EBC8C: .4byte 0x00009344 _080EBC90: .4byte 0x00008768 _080EBC94: .4byte 0x0000ced0 _080EBC98: .4byte 0x00008fff _080EBC9C: .4byte 0x00009040 _080EBCA0: .4byte 0x00009042 _080EBCA4: .4byte 0x00006e95 thumb_func_end sub_80EBC10 thumb_func_start sub_80EBCA8 sub_80EBCA8: @ 80EBCA8 push {r4,lr} ldr r4, _080EBCDC @ =0x02000000 ldr r0, _080EBCE0 @ =0x00006db2 adds r1, r4, r0 movs r0, 0x1 strb r0, [r1] ldr r0, _080EBCE4 @ =0x00006db3 adds r1, r4, r0 movs r0, 0x2 strb r0, [r1] ldr r0, _080EBCE8 @ =0x00006db4 adds r1, r4, r0 movs r0, 0x3 strb r0, [r1] ldr r0, _080EBCEC @ =0x0000083b bl FlagGet lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _080EBCF4 ldr r0, _080EBCF0 @ =0x00006db5 adds r1, r4, r0 movs r0, 0x4 strb r0, [r1] b _080EBCFA .align 2, 0 _080EBCDC: .4byte 0x02000000 _080EBCE0: .4byte 0x00006db2 _080EBCE4: .4byte 0x00006db3 _080EBCE8: .4byte 0x00006db4 _080EBCEC: .4byte 0x0000083b _080EBCF0: .4byte 0x00006db5 _080EBCF4: ldr r1, _080EBD0C @ =0x00006db5 adds r0, r4, r1 strb r2, [r0] _080EBCFA: ldr r0, _080EBD10 @ =0x02000000 ldr r1, _080EBD14 @ =0x00006db6 adds r0, r1 movs r1, 0x5 strb r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080EBD0C: .4byte 0x00006db5 _080EBD10: .4byte 0x02000000 _080EBD14: .4byte 0x00006db6 thumb_func_end sub_80EBCA8 thumb_func_start sub_80EBD18 sub_80EBD18: @ 80EBD18 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer bl sub_80F1FF0 pop {r0} bx r0 thumb_func_end sub_80EBD18 thumb_func_start sub_80EBD30 sub_80EBD30: @ 80EBD30 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer bl sub_80FB260 bl sub_80EFE7C pop {r0} bx r0 thumb_func_end sub_80EBD30 thumb_func_start sub_80EBD4C sub_80EBD4C: @ 80EBD4C push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer bl sub_80F5BF0 bl sub_8089668 pop {r0} bx r0 thumb_func_end sub_80EBD4C thumb_func_start sub_80EBD68 sub_80EBD68: @ 80EBD68 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer bl sub_80F6F64 pop {r0} bx r0 thumb_func_end sub_80EBD68 thumb_func_start sub_80EBD80 sub_80EBD80: @ 80EBD80 push {lr} bl LoadOam bl ProcessSpriteCopyRequests pop {r0} bx r0 thumb_func_end sub_80EBD80 thumb_func_start sub_80EBD90 sub_80EBD90: @ 80EBD90 push {lr} ldr r0, _080EBDB8 @ =0x02000000 movs r1, 0xC0 lsls r1, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 bl AnimateSprites bl BuildOamBuffer bl RunTasks bl UpdatePaletteFade bl sub_80F19FC pop {r0} bx r0 .align 2, 0 _080EBDB8: .4byte 0x02000000 thumb_func_end sub_80EBD90 thumb_func_start sub_80EBDBC sub_80EBDBC: @ 80EBDBC ldr r2, _080EBDD4 @ =0x02000000 movs r3, 0xC0 lsls r3, 2 adds r1, r2, r3 str r0, [r1] movs r0, 0xC1 lsls r0, 2 adds r1, r2, r0 movs r0, 0 strh r0, [r1] bx lr .align 2, 0 _080EBDD4: .4byte 0x02000000 thumb_func_end sub_80EBDBC thumb_func_start sub_80EBDD8 sub_80EBDD8: @ 80EBDD8 push {lr} sub sp, 0x4 ldr r1, _080EBDF8 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] adds r2, r1, 0 cmp r0, 0x11 bls _080EBDEE b _080EC000 _080EBDEE: lsls r0, 2 ldr r1, _080EBDFC @ =_080EBE00 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EBDF8: .4byte 0x02000000 _080EBDFC: .4byte _080EBE00 .align 2, 0 _080EBE00: .4byte _080EBE48 .4byte _080EBE80 .4byte _080EBE92 .4byte _080EBEAC .4byte _080EBEC0 .4byte _080EBED2 .4byte _080EBEF0 .4byte _080EBF04 .4byte _080EBF18 .4byte _080EBF2C .4byte _080EBF48 .4byte _080EBF54 .4byte _080EBF74 .4byte _080EBF88 .4byte _080EBFA0 .4byte _080EBFB4 .4byte _080EBFD0 .4byte _080EBFE8 _080EBE48: movs r0, 0 bl SetVBlankCallback movs r1, 0x80 lsls r1, 19 movs r0, 0 strh r0, [r1] ldr r1, _080EBE74 @ =0x02000000 ldr r3, _080EBE78 @ =0x00006ddc adds r0, r1, r3 ldrb r2, [r0] subs r3, 0x2F adds r0, r1, r3 strb r2, [r0] ldr r0, _080EBE7C @ =0x00006dae adds r2, r1, r0 movs r0, 0x5 strb r0, [r2] movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EBFDC .align 2, 0 _080EBE74: .4byte 0x02000000 _080EBE78: .4byte 0x00006ddc _080EBE7C: .4byte 0x00006dae _080EBE80: bl sub_80F3FF0 ldr r1, _080EBEA8 @ =0x02000000 movs r3, 0xC1 lsls r3, 2 adds r1, r3 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EBE92: bl sub_80F4024 lsls r0, 24 cmp r0, 0 beq _080EBE9E b _080EC000 _080EBE9E: ldr r1, _080EBEA8 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EBFDC .align 2, 0 _080EBEA8: .4byte 0x02000000 _080EBEAC: bl sub_80F2598 ldr r1, _080EBEBC @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EBFDC .align 2, 0 _080EBEBC: .4byte 0x02000000 _080EBEC0: bl sub_80EEE20 ldr r1, _080EBEEC @ =0x02000000 movs r3, 0xC1 lsls r3, 2 adds r1, r3 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EBED2: bl sub_80EEE54 lsls r0, 24 cmp r0, 0 beq _080EBEDE b _080EC000 _080EBEDE: bl sub_80EEE08 ldr r1, _080EBEEC @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EBFDC .align 2, 0 _080EBEEC: .4byte 0x02000000 _080EBEF0: movs r0, 0 bl sub_80EF248 ldr r1, _080EBF14 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EBF04: movs r0, 0 bl sub_80EF284 lsls r0, 24 cmp r0, 0 beq _080EBF12 b _080EC000 _080EBF12: b _080EBFD4 .align 2, 0 _080EBF14: .4byte 0x02000000 _080EBF18: movs r0, 0 bl sub_80F1B8C ldr r1, _080EBF44 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EBF2C: movs r0, 0 bl sub_80F1BC8 lsls r0, 24 cmp r0, 0 bne _080EC000 ldr r1, _080EBF44 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EBFDC .align 2, 0 _080EBF44: .4byte 0x02000000 _080EBF48: ldr r0, _080EBF50 @ =sub_80EBD18 bl SetVBlankCallback b _080EBFD4 .align 2, 0 _080EBF50: .4byte sub_80EBD18 _080EBF54: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r1, _080EBF70 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EBFDC .align 2, 0 _080EBF70: .4byte 0x02000000 _080EBF74: movs r0, 0 bl sub_80EED2C ldr r1, _080EBF84 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EBFDC .align 2, 0 _080EBF84: .4byte 0x02000000 _080EBF88: ldr r0, _080EBF9C @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EC000 movs r3, 0xC1 lsls r3, 2 adds r1, r2, r3 b _080EBFDC .align 2, 0 _080EBF9C: .4byte gPaletteFade _080EBFA0: movs r0, 0 bl sub_80F2C80 ldr r1, _080EBFCC @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EBFB4: movs r0, 0 bl sub_80F2CBC lsls r0, 24 cmp r0, 0 bne _080EC000 ldr r1, _080EBFCC @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EBFDC .align 2, 0 _080EBFCC: .4byte 0x02000000 _080EBFD0: bl sub_80F1DF0 _080EBFD4: ldr r1, _080EBFE4 @ =0x02000000 movs r3, 0xC1 lsls r3, 2 adds r1, r3 _080EBFDC: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080EC000 .align 2, 0 _080EBFE4: .4byte 0x02000000 _080EBFE8: bl sub_80F1E50 lsls r0, 24 cmp r0, 0 bne _080EC000 movs r0, 0 movs r1, 0 bl sub_80EF428 ldr r0, _080EC008 @ =sub_80EC268 bl sub_80EBDBC _080EC000: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080EC008: .4byte sub_80EC268 thumb_func_end sub_80EBDD8 thumb_func_start sub_80EC00C sub_80EC00C: @ 80EC00C push {r4,lr} sub sp, 0x4 ldr r1, _080EC02C @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] adds r4, r1, 0 cmp r0, 0xD bls _080EC022 b _080EC1FA _080EC022: lsls r0, 2 ldr r1, _080EC030 @ =_080EC034 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EC02C: .4byte 0x02000000 _080EC030: .4byte _080EC034 .align 2, 0 _080EC034: .4byte _080EC06C .4byte _080EC0C0 .4byte _080EC0D4 .4byte _080EC0F0 .4byte _080EC104 .4byte _080EC120 .4byte _080EC12A .4byte _080EC154 .4byte _080EC168 .4byte _080EC180 .4byte _080EC194 .4byte _080EC1A8 .4byte _080EC1C4 .4byte _080EC1DC _080EC06C: bl sub_80EEF78 lsls r0, 24 cmp r0, 0 beq _080EC078 b _080EC1FA _080EC078: ldr r0, _080EC0AC @ =sub_80EBD80 bl SetVBlankCallback bl sub_80EED1C ldr r4, _080EC0B0 @ =0x02000000 ldr r1, _080EC0B4 @ =0x00006ddc adds r0, r4, r1 ldrb r1, [r0] ldr r2, _080EC0B8 @ =0x00006dad adds r0, r4, r2 strb r1, [r0] ldr r0, _080EC0BC @ =0x00006dae adds r1, r4, r0 movs r0, 0x5 strb r0, [r1] bl sub_80EEE08 movs r1, 0xC1 lsls r1, 2 adds r4, r1 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _080EC1FA .align 2, 0 _080EC0AC: .4byte sub_80EBD80 _080EC0B0: .4byte 0x02000000 _080EC0B4: .4byte 0x00006ddc _080EC0B8: .4byte 0x00006dad _080EC0BC: .4byte 0x00006dae _080EC0C0: movs r0, 0 bl sub_80EF248 ldr r1, _080EC0EC @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EC0D4: movs r0, 0 bl sub_80EF284 lsls r0, 24 cmp r0, 0 beq _080EC0E2 b _080EC1FA _080EC0E2: ldr r1, _080EC0EC @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EC1D0 .align 2, 0 _080EC0EC: .4byte 0x02000000 _080EC0F0: movs r0, 0 bl sub_80F1B8C ldr r1, _080EC11C @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EC104: movs r0, 0 bl sub_80F1BC8 lsls r0, 24 cmp r0, 0 beq _080EC112 b _080EC1FA _080EC112: ldr r1, _080EC11C @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EC1D0 .align 2, 0 _080EC11C: .4byte 0x02000000 _080EC120: bl sub_8055870 cmp r0, 0 bne _080EC1FA b _080EC1C8 _080EC12A: movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _080EC150 @ =sub_80EBD18 bl SetVBlankCallback movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080EC1D0 .align 2, 0 _080EC150: .4byte sub_80EBD18 _080EC154: movs r0, 0 bl sub_80EED2C ldr r1, _080EC164 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EC1D0 .align 2, 0 _080EC164: .4byte 0x02000000 _080EC168: ldr r0, _080EC17C @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EC1FA movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080EC1D0 .align 2, 0 _080EC17C: .4byte gPaletteFade _080EC180: bl sub_80F2598 ldr r1, _080EC190 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EC1D0 .align 2, 0 _080EC190: .4byte 0x02000000 _080EC194: movs r0, 0 bl sub_80F2C80 ldr r1, _080EC1C0 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EC1A8: movs r0, 0 bl sub_80F2CBC lsls r0, 24 cmp r0, 0 bne _080EC1FA ldr r1, _080EC1C0 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EC1D0 .align 2, 0 _080EC1C0: .4byte 0x02000000 _080EC1C4: bl sub_80F1DF0 _080EC1C8: ldr r1, _080EC1D8 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 _080EC1D0: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080EC1FA .align 2, 0 _080EC1D8: .4byte 0x02000000 _080EC1DC: bl sub_80F1E50 lsls r0, 24 cmp r0, 0 bne _080EC1FA ldr r0, _080EC204 @ =0x02000000 ldr r1, _080EC208 @ =0x00006dad adds r0, r1 ldrb r1, [r0] movs r0, 0 bl sub_80EF428 ldr r0, _080EC20C @ =sub_80EC268 bl sub_80EBDBC _080EC1FA: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080EC204: .4byte 0x02000000 _080EC208: .4byte 0x00006dad _080EC20C: .4byte sub_80EC268 thumb_func_end sub_80EC00C thumb_func_start sub_80EC210 sub_80EC210: @ 80EC210 push {r4,r5,lr} ldr r5, _080EC228 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r4, r5, r0 ldrh r0, [r4] cmp r0, 0 beq _080EC22C cmp r0, 0x1 beq _080EC24C b _080EC25C .align 2, 0 _080EC228: .4byte 0x02000000 _080EC22C: movs r0, 0x1 bl sub_80F2D04 ldr r1, _080EC248 @ =0x00006ddc adds r0, r5, r1 ldrb r1, [r0] movs r0, 0 movs r2, 0 bl sub_80EE9C0 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _080EC25C .align 2, 0 _080EC248: .4byte 0x00006ddc _080EC24C: bl sub_80EEA0C lsls r0, 24 cmp r0, 0 bne _080EC25C ldr r0, _080EC264 @ =sub_80EC268 bl sub_80EBDBC _080EC25C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080EC264: .4byte sub_80EC268 thumb_func_end sub_80EC210 thumb_func_start sub_80EC268 sub_80EC268: @ 80EC268 push {r4-r6,lr} ldr r4, _080EC290 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r6, r4, r0 ldrh r0, [r6] cmp r0, 0x3 bne _080EC27A b _080EC3BE _080EC27A: cmp r0, 0x3 bgt _080EC294 cmp r0, 0x1 bne _080EC284 b _080EC3A2 _080EC284: cmp r0, 0x1 ble _080EC28A b _080EC3B4 _080EC28A: cmp r0, 0 beq _080EC2AE b _080EC492 .align 2, 0 _080EC290: .4byte 0x02000000 _080EC294: cmp r0, 0x6 bne _080EC29A b _080EC414 _080EC29A: cmp r0, 0x6 bgt _080EC2A6 cmp r0, 0x4 bne _080EC2A4 b _080EC3DC _080EC2A4: b _080EC492 _080EC2A6: cmp r0, 0xFF bne _080EC2AC b _080EC44C _080EC2AC: b _080EC492 _080EC2AE: bl sub_80EEC10 lsls r0, 24 cmp r0, 0 beq _080EC2D4 movs r0, 0x5 bl PlaySE ldr r1, _080EC2D0 @ =0x00006dad adds r0, r4, r1 ldrb r1, [r0] movs r0, 0 bl sub_80EF428 bl sub_80EED9C b _080EC492 .align 2, 0 _080EC2D0: .4byte 0x00006dad _080EC2D4: ldr r0, _080EC310 @ =gMain ldrh r1, [r0, 0x2E] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _080EC394 ldr r2, _080EC314 @ =0x00006dad adds r0, r4, r2 ldrb r1, [r0] adds r2, 0x2F adds r0, r4, r2 strb r1, [r0] ldrb r0, [r0] lsls r0, 24 asrs r0, 24 subs r2, 0x2A adds r1, r4, r2 adds r0, r1 ldrb r0, [r0] subs r0, 0x1 cmp r0, 0x4 bls _080EC304 b _080EC492 _080EC304: lsls r0, 2 ldr r1, _080EC318 @ =_080EC31C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EC310: .4byte gMain _080EC314: .4byte 0x00006dad _080EC318: .4byte _080EC31C .align 2, 0 _080EC31C: .4byte _080EC330 .4byte _080EC344 .4byte _080EC380 .4byte _080EC36C .4byte _080EC358 _080EC330: movs r0, 0x5 bl PlaySE ldr r0, _080EC340 @ =sub_80EC4A0 bl sub_80EBDBC b _080EC492 .align 2, 0 _080EC340: .4byte sub_80EC4A0 _080EC344: movs r0, 0x5 bl PlaySE ldr r0, _080EC354 @ =sub_80EC81C bl sub_80EBDBC b _080EC492 .align 2, 0 _080EC354: .4byte sub_80EC81C _080EC358: ldr r0, _080EC368 @ =0x02000000 movs r1, 0xC1 lsls r1, 2 adds r0, r1 movs r1, 0x1 strh r1, [r0] b _080EC492 .align 2, 0 _080EC368: .4byte 0x02000000 _080EC36C: ldr r0, _080EC37C @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r0, r2 movs r1, 0x2 strh r1, [r0] b _080EC492 .align 2, 0 _080EC37C: .4byte 0x02000000 _080EC380: ldr r0, _080EC390 @ =0x02000000 movs r1, 0xC1 lsls r1, 2 adds r0, r1 movs r1, 0x6 strh r1, [r0] b _080EC492 .align 2, 0 _080EC390: .4byte 0x02000000 _080EC394: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080EC39E b _080EC492 _080EC39E: strh r2, [r6] b _080EC492 _080EC3A2: bl sub_80F208C ldr r0, _080EC3B0 @ =sub_80EE96C bl sub_80EBDBC b _080EC492 .align 2, 0 _080EC3B0: .4byte sub_80EE96C _080EC3B4: bl sub_80F6208 ldrh r0, [r6] adds r0, 0x1 strh r0, [r6] _080EC3BE: bl sub_80F6250 lsls r0, 24 cmp r0, 0 bne _080EC492 ldr r1, _080EC3D8 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080EC492 .align 2, 0 _080EC3D8: .4byte 0x02000000 _080EC3DC: bl sub_8055870 cmp r0, 0 bne _080EC492 ldr r1, _080EC400 @ =0x00008fe8 adds r0, r4, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 beq _080EC408 movs r0, 0x5 bl PlaySE ldr r0, _080EC404 @ =sub_80EDB88 bl sub_80EBDBC b _080EC492 .align 2, 0 _080EC400: .4byte 0x00008fe8 _080EC404: .4byte sub_80EDB88 _080EC408: movs r0, 0x20 bl PlaySE movs r0, 0 movs r1, 0x5 b _080EC442 _080EC414: bl sub_80F6C20 ldr r2, _080EC430 @ =0x0000d158 adds r0, r4, r2 ldrh r0, [r0] cmp r0, 0 beq _080EC438 movs r0, 0x5 bl PlaySE ldr r0, _080EC434 @ =sub_80EE3D8 bl sub_80EBDBC b _080EC492 .align 2, 0 _080EC430: .4byte 0x0000d158 _080EC434: .4byte sub_80EE3D8 _080EC438: movs r0, 0x20 bl PlaySE movs r0, 0 movs r1, 0x6 _080EC442: bl sub_80EF428 movs r0, 0xFF strh r0, [r6] b _080EC492 _080EC44C: bl sub_80EEC10 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 beq _080EC478 movs r0, 0x5 bl PlaySE ldr r1, _080EC474 @ =0x00006dad adds r0, r4, r1 ldrb r1, [r0] movs r0, 0 bl sub_80EF428 movs r0, 0 strh r0, [r6] bl sub_80EED9C b _080EC492 .align 2, 0 _080EC474: .4byte 0x00006dad _080EC478: ldr r0, _080EC498 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _080EC492 ldr r2, _080EC49C @ =0x00006dad adds r0, r4, r2 ldrb r1, [r0] movs r0, 0 bl sub_80EF428 strh r5, [r6] _080EC492: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080EC498: .4byte gMain _080EC49C: .4byte 0x00006dad thumb_func_end sub_80EC268 thumb_func_start sub_80EC4A0 sub_80EC4A0: @ 80EC4A0 push {r4,lr} sub sp, 0x4 ldr r1, _080EC4C0 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] adds r4, r1, 0 cmp r0, 0xE bls _080EC4B6 b _080EC66A _080EC4B6: lsls r0, 2 ldr r1, _080EC4C4 @ =_080EC4C8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EC4C0: .4byte 0x02000000 _080EC4C4: .4byte _080EC4C8 .align 2, 0 _080EC4C8: .4byte _080EC504 .4byte _080EC510 .4byte _080EC544 .4byte _080EC578 .4byte _080EC594 .4byte _080EC5A8 .4byte _080EC5AE .4byte _080EC5C0 .4byte _080EC5D0 .4byte _080EC5E4 .4byte _080EC5F8 .4byte _080EC614 .4byte _080EC61E .4byte _080EC63E .4byte _080EC658 _080EC504: bl sub_80F1E84 movs r0, 0 bl sub_80F2D04 b _080EC644 _080EC510: bl sub_80F1F10 lsls r0, 24 cmp r0, 0 beq _080EC51C b _080EC66A _080EC51C: ldr r0, _080EC53C @ =gSaveBlock2 ldrb r1, [r0, 0x15] movs r0, 0x8 ands r0, r1 movs r1, 0x8 cmp r0, 0 beq _080EC52C movs r1, 0x7 _080EC52C: adds r0, r1, 0 bl sub_80EEFBC ldr r1, _080EC540 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EC64C .align 2, 0 _080EC53C: .4byte gSaveBlock2 _080EC540: .4byte 0x02000000 _080EC544: bl sub_80EEF34 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _080EC552 b _080EC66A _080EC552: ldr r4, _080EC574 @ =0x02000000 movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 str r2, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080EC64C .align 2, 0 _080EC574: .4byte 0x02000000 _080EC578: ldr r0, _080EC590 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EC66A movs r0, 0 bl SetVBlankCallback bl sub_80EED0C b _080EC644 .align 2, 0 _080EC590: .4byte gPaletteFade _080EC594: bl sub_80F2620 ldr r1, _080EC5A4 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EC64C .align 2, 0 _080EC5A4: .4byte 0x02000000 _080EC5A8: bl sub_80EF814 b _080EC644 _080EC5AE: bl sub_80EF840 ldr r1, _080EC5CC @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EC5C0: bl sub_80EF874 lsls r0, 24 cmp r0, 0 bne _080EC66A b _080EC644 .align 2, 0 _080EC5CC: .4byte 0x02000000 _080EC5D0: movs r0, 0x4 bl sub_80F2C80 ldr r1, _080EC5F4 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EC5E4: movs r0, 0x4 bl sub_80F2CBC lsls r0, 24 cmp r0, 0 bne _080EC66A b _080EC644 .align 2, 0 _080EC5F4: .4byte 0x02000000 _080EC5F8: bl sub_80F2DD8 ldr r0, _080EC60C @ =sub_80EBD30 bl SetVBlankCallback ldr r1, _080EC610 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EC64C .align 2, 0 _080EC60C: .4byte sub_80EBD30 _080EC610: .4byte 0x02000000 _080EC614: bl sub_8055870 cmp r0, 0 bne _080EC66A b _080EC644 _080EC61E: movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080EC64C _080EC63E: movs r0, 0x1 bl sub_80EED2C _080EC644: ldr r1, _080EC654 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 _080EC64C: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080EC66A .align 2, 0 _080EC654: .4byte 0x02000000 _080EC658: ldr r0, _080EC674 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EC66A ldr r0, _080EC678 @ =sub_80EC67C bl sub_80EBDBC _080EC66A: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080EC674: .4byte gPaletteFade _080EC678: .4byte sub_80EC67C thumb_func_end sub_80EC4A0 thumb_func_start sub_80EC67C sub_80EC67C: @ 80EC67C push {r4,r5,lr} sub sp, 0x4 ldr r1, _080EC69C @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] adds r4, r1, 0 cmp r0, 0x5 bls _080EC692 b _080EC800 _080EC692: lsls r0, 2 ldr r1, _080EC6A0 @ =_080EC6A4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EC69C: .4byte 0x02000000 _080EC6A0: .4byte _080EC6A4 .align 2, 0 _080EC6A4: .4byte _080EC6BC .4byte _080EC718 .4byte _080EC746 .4byte _080EC77C .4byte _080EC7A0 .4byte _080EC7C4 _080EC6BC: bl sub_80FAB60 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _080EC6E2 cmp r0, 0x3 bgt _080EC6D2 cmp r0, 0x1 beq _080EC6DC b _080EC800 _080EC6D2: cmp r0, 0x4 beq _080EC6E8 cmp r0, 0x5 beq _080EC700 b _080EC800 _080EC6DC: bl sub_80EED9C b _080EC800 _080EC6E2: bl sub_80EF9F8 b _080EC800 _080EC6E8: movs r0, 0x5 bl PlaySE ldr r0, _080EC6FC @ =0x02000000 movs r1, 0xC1 lsls r1, 2 adds r0, r1 movs r1, 0x1 strh r1, [r0] b _080EC800 .align 2, 0 _080EC6FC: .4byte 0x02000000 _080EC700: movs r0, 0x5 bl PlaySE ldr r0, _080EC714 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r0, r2 movs r1, 0x4 strh r1, [r0] b _080EC800 .align 2, 0 _080EC714: .4byte 0x02000000 _080EC718: ldr r1, _080EC730 @ =0x00006e90 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 bne _080EC734 bl sub_80FAEC4 movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080EC7BC .align 2, 0 _080EC730: .4byte 0x00006e90 _080EC734: movs r0, 0x1 bl sub_80EFBDC lsls r0, 24 cmp r0, 0 bne _080EC800 bl sub_80FAEC4 b _080EC7B6 _080EC746: bl sub_80FAFC0 lsls r0, 24 cmp r0, 0 bne _080EC800 ldr r5, _080EC76C @ =0x02000000 ldr r1, _080EC770 @ =0x00006e90 adds r0, r5, r1 ldrb r4, [r0] cmp r4, 0 bne _080EC774 bl sub_80EFBB0 movs r2, 0xC1 lsls r2, 2 adds r0, r5, r2 strh r4, [r0] b _080EC800 .align 2, 0 _080EC76C: .4byte 0x02000000 _080EC770: .4byte 0x00006e90 _080EC774: movs r0, 0xC1 lsls r0, 2 adds r1, r5, r0 b _080EC7BC _080EC77C: movs r0, 0 bl sub_80EFBDC lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080EC800 bl sub_80EFBB0 ldr r0, _080EC79C @ =0x02000000 movs r1, 0xC1 lsls r1, 2 adds r0, r1 strh r4, [r0] b _080EC800 .align 2, 0 _080EC79C: .4byte 0x02000000 _080EC7A0: movs r2, 0xC2 lsls r2, 2 adds r0, r4, r2 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r3, 0x10 bl BeginNormalPaletteFade _080EC7B6: movs r0, 0xC1 lsls r0, 2 adds r1, r4, r0 _080EC7BC: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080EC800 _080EC7C4: ldr r0, _080EC808 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EC800 bl sub_80F2DF4 movs r0, 0x4 bl sub_80F2D04 ldr r3, _080EC80C @ =gSaveBlock2 movs r2, 0 ldr r0, _080EC810 @ =0x02000000 ldr r1, _080EC814 @ =0x00006e90 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080EC7EC movs r2, 0x1 _080EC7EC: lsls r2, 3 ldrb r1, [r3, 0x15] movs r0, 0x9 negs r0, r0 ands r0, r1 orrs r0, r2 strb r0, [r3, 0x15] ldr r0, _080EC818 @ =sub_80EC00C bl sub_80EBDBC _080EC800: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080EC808: .4byte gPaletteFade _080EC80C: .4byte gSaveBlock2 _080EC810: .4byte 0x02000000 _080EC814: .4byte 0x00006e90 _080EC818: .4byte sub_80EC00C thumb_func_end sub_80EC67C thumb_func_start sub_80EC81C sub_80EC81C: @ 80EC81C push {r4,lr} ldr r0, _080EC834 @ =0x02000000 movs r1, 0xC1 lsls r1, 2 adds r4, r0, r1 ldrh r0, [r4] cmp r0, 0 beq _080EC838 cmp r0, 0x1 beq _080EC850 b _080EC860 .align 2, 0 _080EC834: .4byte 0x02000000 _080EC838: movs r0, 0 bl sub_80F2D04 movs r0, 0x1 movs r1, 0 movs r2, 0x1 bl sub_80EE9C0 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _080EC860 _080EC850: bl sub_80EEA0C lsls r0, 24 cmp r0, 0 bne _080EC860 ldr r0, _080EC868 @ =sub_80EC86C bl sub_80EBDBC _080EC860: pop {r4} pop {r0} bx r0 .align 2, 0 _080EC868: .4byte sub_80EC86C thumb_func_end sub_80EC81C thumb_func_start sub_80EC86C sub_80EC86C: @ 80EC86C push {r4-r6,lr} ldr r4, _080EC884 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r5, r4, r0 ldrh r0, [r5] cmp r0, 0 beq _080EC888 cmp r0, 0x1 beq _080EC944 b _080EC954 .align 2, 0 _080EC884: .4byte 0x02000000 _080EC888: bl sub_80EEC90 lsls r0, 24 cmp r0, 0 beq _080EC8B0 movs r0, 0x5 bl PlaySE ldr r1, _080EC8AC @ =0x00006dad adds r0, r4, r1 ldrb r1, [r0] movs r0, 0x1 bl sub_80EF428 bl sub_80EED9C b _080EC954 .align 2, 0 _080EC8AC: .4byte 0x00006dad _080EC8B0: ldr r0, _080EC8E4 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080EC918 movs r0, 0x5 bl PlaySE ldr r2, _080EC8E8 @ =0x00006dad adds r0, r4, r2 ldrb r1, [r0] adds r2, 0x43 adds r0, r4, r2 strb r1, [r0] ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x1 beq _080EC900 cmp r0, 0x1 bgt _080EC8EC cmp r0, 0 beq _080EC8F2 b _080EC954 .align 2, 0 _080EC8E4: .4byte gMain _080EC8E8: .4byte 0x00006dad _080EC8EC: cmp r0, 0x2 beq _080EC90C b _080EC954 _080EC8F2: ldr r0, _080EC8FC @ =sub_80ED620 bl sub_80EBDBC b _080EC954 .align 2, 0 _080EC8FC: .4byte sub_80ED620 _080EC900: ldr r0, _080EC908 @ =sub_80EC960 bl sub_80EBDBC b _080EC954 .align 2, 0 _080EC908: .4byte sub_80EC960 _080EC90C: ldr r0, _080EC914 @ =sub_80EC210 bl sub_80EBDBC b _080EC954 .align 2, 0 _080EC914: .4byte sub_80EC210 _080EC918: movs r6, 0x2 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080EC954 movs r0, 0x5 bl PlaySE ldr r1, _080EC93C @ =0x00006df0 adds r0, r4, r1 strb r6, [r0] ldr r2, _080EC940 @ =0x00006dad adds r0, r4, r2 strb r6, [r0] ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] b _080EC954 .align 2, 0 _080EC93C: .4byte 0x00006df0 _080EC940: .4byte 0x00006dad _080EC944: bl sub_80F1E6C lsls r0, 24 cmp r0, 0 bne _080EC954 ldr r0, _080EC95C @ =sub_80EC210 bl sub_80EBDBC _080EC954: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080EC95C: .4byte sub_80EC210 thumb_func_end sub_80EC86C thumb_func_start sub_80EC960 sub_80EC960: @ 80EC960 push {r4,lr} ldr r0, _080EC978 @ =0x02000000 movs r1, 0xC1 lsls r1, 2 adds r4, r0, r1 ldrh r0, [r4] cmp r0, 0 beq _080EC97C cmp r0, 0x1 beq _080EC98E b _080EC99E .align 2, 0 _080EC978: .4byte 0x02000000 _080EC97C: movs r0, 0x2 movs r1, 0 movs r2, 0x5 bl sub_80EE9C0 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _080EC99E _080EC98E: bl sub_80EEA0C lsls r0, 24 cmp r0, 0 bne _080EC99E ldr r0, _080EC9A4 @ =sub_80ECC08 bl sub_80EBDBC _080EC99E: pop {r4} pop {r0} bx r0 .align 2, 0 _080EC9A4: .4byte sub_80ECC08 thumb_func_end sub_80EC960 thumb_func_start sub_80EC9A8 sub_80EC9A8: @ 80EC9A8 push {r4,r5,lr} ldr r5, _080EC9C0 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r4, r5, r0 ldrh r0, [r4] cmp r0, 0 beq _080EC9C4 cmp r0, 0x1 beq _080EC9E4 b _080ECA00 .align 2, 0 _080EC9C0: .4byte 0x02000000 _080EC9C4: movs r0, 0x5 bl sub_80F2D04 ldr r1, _080EC9E0 @ =0x00006df0 adds r0, r5, r1 ldrb r1, [r0] movs r0, 0x1 movs r2, 0xC bl sub_80EE9C0 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _080ECA00 .align 2, 0 _080EC9E0: .4byte 0x00006df0 _080EC9E4: bl sub_80EEA0C lsls r0, 24 cmp r0, 0 bne _080ECA00 ldr r0, _080ECA08 @ =sub_80EC86C bl sub_80EBDBC ldr r1, _080ECA0C @ =0x00006dad adds r0, r5, r1 ldrb r1, [r0] movs r0, 0x1 bl sub_80EF428 _080ECA00: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080ECA08: .4byte sub_80EC86C _080ECA0C: .4byte 0x00006dad thumb_func_end sub_80EC9A8 thumb_func_start sub_80ECA10 sub_80ECA10: @ 80ECA10 push {r4,lr} sub sp, 0x4 ldr r1, _080ECA30 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] adds r4, r1, 0 cmp r0, 0xD bls _080ECA26 b _080ECBF2 _080ECA26: lsls r0, 2 ldr r1, _080ECA34 @ =_080ECA38 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080ECA30: .4byte 0x02000000 _080ECA34: .4byte _080ECA38 .align 2, 0 _080ECA38: .4byte _080ECA70 .4byte _080ECAC4 .4byte _080ECAD8 .4byte _080ECAF4 .4byte _080ECB08 .4byte _080ECB24 .4byte _080ECB2E .4byte _080ECB58 .4byte _080ECB6C .4byte _080ECB72 .4byte _080ECB8C .4byte _080ECBA0 .4byte _080ECBBC .4byte _080ECBD4 _080ECA70: bl sub_80EEF78 lsls r0, 24 cmp r0, 0 beq _080ECA7C b _080ECBF2 _080ECA7C: ldr r0, _080ECAB0 @ =sub_80EBD80 bl SetVBlankCallback bl sub_80EED1C ldr r4, _080ECAB4 @ =0x02000000 ldr r1, _080ECAB8 @ =0x00006df0 adds r0, r4, r1 ldrb r1, [r0] ldr r2, _080ECABC @ =0x00006dad adds r0, r4, r2 strb r1, [r0] ldr r0, _080ECAC0 @ =0x00006dae adds r1, r4, r0 movs r0, 0x3 strb r0, [r1] bl sub_80EEE08 movs r1, 0xC1 lsls r1, 2 adds r4, r1 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _080ECBF2 .align 2, 0 _080ECAB0: .4byte sub_80EBD80 _080ECAB4: .4byte 0x02000000 _080ECAB8: .4byte 0x00006df0 _080ECABC: .4byte 0x00006dad _080ECAC0: .4byte 0x00006dae _080ECAC4: movs r0, 0x1 bl sub_80EF248 ldr r1, _080ECAF0 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080ECAD8: movs r0, 0x1 bl sub_80EF284 lsls r0, 24 cmp r0, 0 beq _080ECAE6 b _080ECBF2 _080ECAE6: ldr r1, _080ECAF0 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080ECBC8 .align 2, 0 _080ECAF0: .4byte 0x02000000 _080ECAF4: movs r0, 0x1 bl sub_80F1B8C ldr r1, _080ECB20 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080ECB08: movs r0, 0x1 bl sub_80F1BC8 lsls r0, 24 cmp r0, 0 bne _080ECBF2 ldr r1, _080ECB20 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080ECBC8 .align 2, 0 _080ECB20: .4byte 0x02000000 _080ECB24: bl sub_8055870 cmp r0, 0 bne _080ECBF2 b _080ECBC0 _080ECB2E: movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _080ECB54 @ =sub_80EBD18 bl SetVBlankCallback movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080ECBC8 .align 2, 0 _080ECB54: .4byte sub_80EBD18 _080ECB58: movs r0, 0 bl sub_80EED2C ldr r1, _080ECB68 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080ECBC8 .align 2, 0 _080ECB68: .4byte 0x02000000 _080ECB6C: bl sub_80F2598 b _080ECBC0 _080ECB72: ldr r0, _080ECB88 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080ECBF2 movs r0, 0xC1 lsls r0, 2 adds r1, r4, r0 b _080ECBC8 .align 2, 0 _080ECB88: .4byte gPaletteFade _080ECB8C: movs r0, 0x1 bl sub_80F2C80 ldr r1, _080ECBB8 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080ECBA0: movs r0, 0x1 bl sub_80F2CBC lsls r0, 24 cmp r0, 0 bne _080ECBF2 ldr r1, _080ECBB8 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080ECBC8 .align 2, 0 _080ECBB8: .4byte 0x02000000 _080ECBBC: bl sub_80F1DF0 _080ECBC0: ldr r1, _080ECBD0 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 _080ECBC8: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080ECBF2 .align 2, 0 _080ECBD0: .4byte 0x02000000 _080ECBD4: bl sub_80F1E50 lsls r0, 24 cmp r0, 0 bne _080ECBF2 ldr r0, _080ECBFC @ =0x02000000 ldr r1, _080ECC00 @ =0x00006dad adds r0, r1 ldrb r1, [r0] movs r0, 0x1 bl sub_80EF428 ldr r0, _080ECC04 @ =sub_80EC86C bl sub_80EBDBC _080ECBF2: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080ECBFC: .4byte 0x02000000 _080ECC00: .4byte 0x00006dad _080ECC04: .4byte sub_80EC86C thumb_func_end sub_80ECA10 thumb_func_start sub_80ECC08 sub_80ECC08: @ 80ECC08 push {r4,r5,lr} ldr r4, _080ECC20 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r5, r4, r0 ldrh r0, [r5] cmp r0, 0 beq _080ECC24 cmp r0, 0x1 bne _080ECC1E b _080ECD64 _080ECC1E: b _080ECD74 .align 2, 0 _080ECC20: .4byte 0x02000000 _080ECC24: bl sub_80EEC90 lsls r0, 24 cmp r0, 0 beq _080ECC4C movs r0, 0x5 bl PlaySE ldr r1, _080ECC48 @ =0x00006dad adds r0, r4, r1 ldrb r1, [r0] movs r0, 0x2 bl sub_80EF428 bl sub_80EED9C b _080ECD74 .align 2, 0 _080ECC48: .4byte 0x00006dad _080ECC4C: ldr r0, _080ECC78 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080ECC5A b _080ECD40 _080ECC5A: movs r0, 0x5 bl PlaySE ldr r2, _080ECC7C @ =0x00006dad adds r0, r4, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x5 bhi _080ECD0C lsls r0, 2 ldr r1, _080ECC80 @ =_080ECC84 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080ECC78: .4byte gMain _080ECC7C: .4byte 0x00006dad _080ECC80: .4byte _080ECC84 .align 2, 0 _080ECC84: .4byte _080ECC9C .4byte _080ECCB0 .4byte _080ECCC4 .4byte _080ECCD8 .4byte _080ECCEC .4byte _080ECD00 _080ECC9C: ldr r0, _080ECCA8 @ =0x02000000 ldr r3, _080ECCAC @ =0x000087d8 adds r0, r3 movs r1, 0x16 strb r1, [r0] b _080ECD0C .align 2, 0 _080ECCA8: .4byte 0x02000000 _080ECCAC: .4byte 0x000087d8 _080ECCB0: ldr r0, _080ECCBC @ =0x02000000 ldr r1, _080ECCC0 @ =0x000087d8 adds r0, r1 movs r1, 0x17 strb r1, [r0] b _080ECD0C .align 2, 0 _080ECCBC: .4byte 0x02000000 _080ECCC0: .4byte 0x000087d8 _080ECCC4: ldr r0, _080ECCD0 @ =0x02000000 ldr r2, _080ECCD4 @ =0x000087d8 adds r0, r2 movs r1, 0x18 strb r1, [r0] b _080ECD0C .align 2, 0 _080ECCD0: .4byte 0x02000000 _080ECCD4: .4byte 0x000087d8 _080ECCD8: ldr r0, _080ECCE4 @ =0x02000000 ldr r3, _080ECCE8 @ =0x000087d8 adds r0, r3 movs r1, 0x21 strb r1, [r0] b _080ECD0C .align 2, 0 _080ECCE4: .4byte 0x02000000 _080ECCE8: .4byte 0x000087d8 _080ECCEC: ldr r0, _080ECCF8 @ =0x02000000 ldr r1, _080ECCFC @ =0x000087d8 adds r0, r1 movs r1, 0x2F strb r1, [r0] b _080ECD0C .align 2, 0 _080ECCF8: .4byte 0x02000000 _080ECCFC: .4byte 0x000087d8 _080ECD00: ldr r0, _080ECD08 @ =sub_80EC9A8 bl sub_80EBDBC b _080ECD74 .align 2, 0 _080ECD08: .4byte sub_80EC9A8 _080ECD0C: ldr r1, _080ECD2C @ =0x02000000 ldr r2, _080ECD30 @ =0x00006dad adds r0, r1, r2 ldrb r2, [r0] ldr r3, _080ECD34 @ =0x00006dfc adds r0, r1, r3 strb r2, [r0] ldr r0, _080ECD38 @ =0x000076aa adds r1, r0 movs r0, 0x1 strb r0, [r1] ldr r0, _080ECD3C @ =sub_80ED01C bl sub_80EBDBC b _080ECD74 .align 2, 0 _080ECD2C: .4byte 0x02000000 _080ECD30: .4byte 0x00006dad _080ECD34: .4byte 0x00006dfc _080ECD38: .4byte 0x000076aa _080ECD3C: .4byte sub_80ED01C _080ECD40: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080ECD74 movs r0, 0x5 bl PlaySE ldr r2, _080ECD60 @ =0x00006dad adds r1, r4, r2 movs r0, 0x5 strb r0, [r1] ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] b _080ECD74 .align 2, 0 _080ECD60: .4byte 0x00006dad _080ECD64: bl sub_80F1E6C lsls r0, 24 cmp r0, 0 bne _080ECD74 ldr r0, _080ECD7C @ =sub_80EC9A8 bl sub_80EBDBC _080ECD74: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080ECD7C: .4byte sub_80EC9A8 thumb_func_end sub_80ECC08 thumb_func_start sub_80ECD80 sub_80ECD80: @ 80ECD80 push {r4,lr} sub sp, 0x4 ldr r1, _080ECDA0 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] adds r4, r1, 0 cmp r0, 0x14 bls _080ECD96 b _080ED006 _080ECD96: lsls r0, 2 ldr r1, _080ECDA4 @ =_080ECDA8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080ECDA0: .4byte 0x02000000 _080ECDA4: .4byte _080ECDA8 .align 2, 0 _080ECDA8: .4byte _080ECDFC .4byte _080ECE1A .4byte _080ECE34 .4byte _080ECE4C .4byte _080ECE64 .4byte _080ECE78 .4byte _080ECE80 .4byte _080ECEAC .4byte _080ECEC0 .4byte _080ECED4 .4byte _080ECEE8 .4byte _080ECF04 .4byte _080ECF10 .4byte _080ECF3C .4byte _080ECF44 .4byte _080ECF58 .4byte _080ECF70 .4byte _080ECF84 .4byte _080ECFB0 .4byte _080ECFC4 .4byte _080ECFE8 _080ECDFC: movs r3, 0xC2 lsls r3, 2 adds r0, r4, r3 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r3, 0x10 bl BeginNormalPaletteFade movs r0, 0xC1 lsls r0, 2 adds r1, r4, r0 b _080ECFDC _080ECE1A: ldr r0, _080ECE30 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080ECE28 b _080ED006 _080ECE28: movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080ECFDC .align 2, 0 _080ECE30: .4byte gPaletteFade _080ECE34: bl sub_80EEF78 lsls r0, 24 cmp r0, 0 beq _080ECE40 b _080ED006 _080ECE40: ldr r0, _080ECE48 @ =sub_80EBD80 bl SetVBlankCallback b _080ECFD4 .align 2, 0 _080ECE48: .4byte sub_80EBD80 _080ECE4C: bl sub_80EED1C bl sub_80F3130 ldr r1, _080ECE60 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080ECFDC .align 2, 0 _080ECE60: .4byte 0x02000000 _080ECE64: movs r0, 0x1 bl sub_80F2D6C ldr r1, _080ECE74 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080ECFDC .align 2, 0 _080ECE74: .4byte 0x02000000 _080ECE78: movs r0, 0x5 bl sub_80F2D6C b _080ECFD4 _080ECE80: ldr r1, _080ECEA0 @ =0x00006dfc adds r0, r4, r1 ldrb r1, [r0] ldr r2, _080ECEA4 @ =0x00006dad adds r0, r4, r2 strb r1, [r0] ldr r3, _080ECEA8 @ =0x00006dae adds r1, r4, r3 movs r0, 0x6 strb r0, [r1] bl sub_80EEE08 movs r0, 0xC1 lsls r0, 2 adds r1, r4, r0 b _080ECFDC .align 2, 0 _080ECEA0: .4byte 0x00006dfc _080ECEA4: .4byte 0x00006dad _080ECEA8: .4byte 0x00006dae _080ECEAC: movs r0, 0x2 bl sub_80EF248 ldr r1, _080ECED0 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080ECEC0: movs r0, 0x2 bl sub_80EF284 lsls r0, 24 cmp r0, 0 beq _080ECECE b _080ED006 _080ECECE: b _080ECFD4 .align 2, 0 _080ECED0: .4byte 0x02000000 _080ECED4: movs r0, 0x2 bl sub_80F1B8C ldr r1, _080ECF00 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080ECEE8: movs r0, 0x2 bl sub_80F1BC8 lsls r0, 24 cmp r0, 0 beq _080ECEF6 b _080ED006 _080ECEF6: ldr r1, _080ECF00 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080ECFDC .align 2, 0 _080ECF00: .4byte 0x02000000 _080ECF04: bl sub_8055870 cmp r0, 0 beq _080ECF0E b _080ED006 _080ECF0E: b _080ECFD4 _080ECF10: movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _080ECF38 @ =sub_80EBD18 bl SetVBlankCallback movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080ECFDC .align 2, 0 _080ECF38: .4byte sub_80EBD18 _080ECF3C: movs r0, 0 bl sub_80EED2C b _080ECFD4 _080ECF44: bl sub_80F2598 ldr r1, _080ECF54 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080ECFDC .align 2, 0 _080ECF54: .4byte 0x02000000 _080ECF58: ldr r0, _080ECF6C @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080ED006 movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080ECFDC .align 2, 0 _080ECF6C: .4byte gPaletteFade _080ECF70: movs r0, 0x1 bl sub_80F2C80 ldr r1, _080ECFA8 @ =0x02000000 movs r3, 0xC1 lsls r3, 2 adds r1, r3 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080ECF84: movs r0, 0x1 bl sub_80F2CBC lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _080ED006 ldr r0, _080ECFA8 @ =0x02000000 ldr r3, _080ECFAC @ =0x00000306 adds r1, r0, r3 strh r2, [r1] movs r1, 0xC1 lsls r1, 2 adds r0, r1 ldrh r1, [r0] adds r1, 0x1 strh r1, [r0] b _080ED006 .align 2, 0 _080ECFA8: .4byte 0x02000000 _080ECFAC: .4byte 0x00000306 _080ECFB0: movs r0, 0x5 bl sub_80F2C80 ldr r1, _080ECFE4 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080ECFC4: movs r0, 0x5 bl sub_80F2CBC lsls r0, 24 cmp r0, 0 bne _080ED006 bl sub_80F1DF0 _080ECFD4: ldr r1, _080ECFE4 @ =0x02000000 movs r3, 0xC1 lsls r3, 2 adds r1, r3 _080ECFDC: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080ED006 .align 2, 0 _080ECFE4: .4byte 0x02000000 _080ECFE8: bl sub_80F1E50 lsls r0, 24 cmp r0, 0 bne _080ED006 ldr r0, _080ED010 @ =0x02000000 ldr r1, _080ED014 @ =0x00006dad adds r0, r1 ldrb r1, [r0] movs r0, 0x2 bl sub_80EF428 ldr r0, _080ED018 @ =sub_80ECC08 bl sub_80EBDBC _080ED006: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080ED010: .4byte 0x02000000 _080ED014: .4byte 0x00006dad _080ED018: .4byte sub_80ECC08 thumb_func_end sub_80ECD80 thumb_func_start sub_80ED01C sub_80ED01C: @ 80ED01C push {r4,lr} sub sp, 0x4 ldr r1, _080ED03C @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] adds r4, r1, 0 cmp r0, 0x13 bls _080ED032 b _080ED308 _080ED032: lsls r0, 2 ldr r1, _080ED040 @ =_080ED044 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080ED03C: .4byte 0x02000000 _080ED040: .4byte _080ED044 .align 2, 0 _080ED044: .4byte _080ED094 .4byte _080ED0B4 .4byte _080ED0D4 .4byte _080ED108 .4byte _080ED138 .4byte _080ED14C .4byte _080ED15E .4byte _080ED18C .4byte _080ED1AC .4byte _080ED1C4 .4byte _080ED1D8 .4byte _080ED1F4 .4byte _080ED208 .4byte _080ED220 .4byte _080ED24C .4byte _080ED260 .4byte _080ED28C .4byte _080ED2A0 .4byte _080ED2CC .4byte _080ED2EA _080ED094: bl sub_80F1E84 movs r0, 0x1 bl sub_80F2D04 movs r0, 0x5 bl sub_80F2D04 ldr r1, _080ED0B0 @ =0x02000000 movs r3, 0xC1 lsls r3, 2 adds r1, r3 b _080ED27C .align 2, 0 _080ED0B0: .4byte 0x02000000 _080ED0B4: bl sub_80F1F10 lsls r0, 24 cmp r0, 0 beq _080ED0C0 b _080ED308 _080ED0C0: movs r0, 0 bl sub_80EEFBC ldr r1, _080ED0D0 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080ED27C .align 2, 0 _080ED0D0: .4byte 0x02000000 _080ED0D4: bl sub_80EEF34 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _080ED0E2 b _080ED308 _080ED0E2: ldr r4, _080ED104 @ =0x02000000 movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 str r2, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080ED27C .align 2, 0 _080ED104: .4byte 0x02000000 _080ED108: ldr r0, _080ED130 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080ED116 b _080ED308 _080ED116: movs r0, 0 bl SetVBlankCallback bl sub_80EED0C bl sub_80EF814 ldr r1, _080ED134 @ =0x02000000 movs r3, 0xC1 lsls r3, 2 adds r1, r3 b _080ED27C .align 2, 0 _080ED130: .4byte gPaletteFade _080ED134: .4byte 0x02000000 _080ED138: bl sub_80F2620 ldr r1, _080ED148 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080ED27C .align 2, 0 _080ED148: .4byte 0x02000000 _080ED14C: bl sub_80F4D44 ldr r1, _080ED178 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080ED15E: bl sub_80F4D88 lsls r0, 24 cmp r0, 0 bne _080ED17C ldr r1, _080ED178 @ =0x02000000 movs r3, 0xC1 lsls r3, 2 adds r1, r3 ldrh r0, [r1] adds r0, 0x2 strh r0, [r1] b _080ED308 .align 2, 0 _080ED178: .4byte 0x02000000 _080ED17C: ldr r1, _080ED188 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080ED27C .align 2, 0 _080ED188: .4byte 0x02000000 _080ED18C: bl sub_8055870 cmp r0, 0 beq _080ED196 b _080ED308 _080ED196: ldr r1, _080ED1A8 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] b _080ED308 .align 2, 0 _080ED1A8: .4byte 0x02000000 _080ED1AC: bl sub_8055870 cmp r0, 0 beq _080ED1B6 b _080ED308 _080ED1B6: ldr r1, _080ED1C0 @ =0x02000000 movs r3, 0xC1 lsls r3, 2 adds r1, r3 b _080ED27C .align 2, 0 _080ED1C0: .4byte 0x02000000 _080ED1C4: movs r0, 0 bl sub_80F0264 ldr r1, _080ED1F0 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080ED1D8: bl sub_80F02A0 lsls r0, 24 cmp r0, 0 beq _080ED1E4 b _080ED308 _080ED1E4: ldr r1, _080ED1F0 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080ED27C .align 2, 0 _080ED1F0: .4byte 0x02000000 _080ED1F4: movs r0, 0 bl sub_80F3008 ldr r1, _080ED204 @ =0x02000000 movs r3, 0xC1 lsls r3, 2 adds r1, r3 b _080ED27C .align 2, 0 _080ED204: .4byte 0x02000000 _080ED208: bl sub_8055870 cmp r0, 0 beq _080ED212 b _080ED308 _080ED212: ldr r1, _080ED21C @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080ED27C .align 2, 0 _080ED21C: .4byte 0x02000000 _080ED220: movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _080ED248 @ =sub_80EBD18 bl SetVBlankCallback movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080ED27C .align 2, 0 _080ED248: .4byte sub_80EBD18 _080ED24C: movs r0, 0x4 bl sub_80EED2C ldr r1, _080ED25C @ =0x02000000 movs r3, 0xC1 lsls r3, 2 adds r1, r3 b _080ED27C .align 2, 0 _080ED25C: .4byte 0x02000000 _080ED260: ldr r0, _080ED284 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _080ED308 ldr r2, _080ED288 @ =0x00000306 adds r0, r4, r2 strh r1, [r0] movs r3, 0xC1 lsls r3, 2 adds r1, r4, r3 _080ED27C: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080ED308 .align 2, 0 _080ED284: .4byte gPaletteFade _080ED288: .4byte 0x00000306 _080ED28C: movs r0, 0x1 bl sub_80F2C80 ldr r1, _080ED2C4 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080ED2A0: movs r0, 0x1 bl sub_80F2CBC lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _080ED308 ldr r0, _080ED2C4 @ =0x02000000 ldr r3, _080ED2C8 @ =0x00000306 adds r1, r0, r3 strh r2, [r1] movs r1, 0xC1 lsls r1, 2 adds r0, r1 ldrh r1, [r0] adds r1, 0x1 strh r1, [r0] b _080ED308 .align 2, 0 _080ED2C4: .4byte 0x02000000 _080ED2C8: .4byte 0x00000306 _080ED2CC: ldr r4, _080ED310 @ =0x02000000 ldr r2, _080ED314 @ =0x00006dfc adds r0, r4, r2 ldrb r0, [r0] adds r0, 0x7 lsls r0, 24 lsrs r0, 24 bl sub_80F2C80 movs r3, 0xC1 lsls r3, 2 adds r4, r3 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _080ED2EA: ldr r0, _080ED310 @ =0x02000000 ldr r1, _080ED314 @ =0x00006dfc adds r0, r1 ldrb r0, [r0] adds r0, 0x7 lsls r0, 24 lsrs r0, 24 bl sub_80F2CBC lsls r0, 24 cmp r0, 0 bne _080ED308 ldr r0, _080ED318 @ =sub_80ED31C bl sub_80EBDBC _080ED308: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080ED310: .4byte 0x02000000 _080ED314: .4byte 0x00006dfc _080ED318: .4byte sub_80ED31C thumb_func_end sub_80ED01C thumb_func_start sub_80ED31C sub_80ED31C: @ 80ED31C push {r4,lr} ldr r0, _080ED338 @ =0x02000000 movs r1, 0xC1 lsls r1, 2 adds r4, r0, r1 ldrh r0, [r4] cmp r0, 0x1 beq _080ED3A8 cmp r0, 0x1 bgt _080ED33C cmp r0, 0 beq _080ED342 b _080ED3CA .align 2, 0 _080ED338: .4byte 0x02000000 _080ED33C: cmp r0, 0x2 beq _080ED3C0 b _080ED3CA _080ED342: bl sub_80F5DD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080ED374 cmp r0, 0x2 beq _080ED380 ldr r0, _080ED36C @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080ED38C movs r0, 0x5 bl PlaySE ldr r0, _080ED370 @ =sub_80ED4D8 bl sub_80EBDBC b _080ED3CA .align 2, 0 _080ED36C: .4byte gMain _080ED370: .4byte sub_80ED4D8 _080ED374: movs r0, 0x5 bl PlaySE bl ShowMapNamePopUpWindow b _080ED3CA _080ED380: movs r0, 0x5 bl PlaySE ldrh r0, [r4] adds r0, 0x1 b _080ED3C8 _080ED38C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080ED3CA movs r0, 0x5 bl PlaySE ldr r0, _080ED3A4 @ =sub_80ECD80 bl sub_80EBDBC b _080ED3CA .align 2, 0 _080ED3A4: .4byte sub_80ECD80 _080ED3A8: bl sub_80F0718 lsls r0, 24 cmp r0, 0 bne _080ED3CA bl ShowMapNamePopUpWindow bl sub_80F3264 ldrh r0, [r4] adds r0, 0x1 b _080ED3C8 _080ED3C0: bl sub_8055870 cmp r0, 0 bne _080ED3CA _080ED3C8: strh r0, [r4] _080ED3CA: pop {r4} pop {r0} bx r0 thumb_func_end sub_80ED31C thumb_func_start sub_80ED3D0 sub_80ED3D0: @ 80ED3D0 push {r4,lr} sub sp, 0x4 ldr r0, _080ED3EC @ =0x02000000 movs r1, 0xC1 lsls r1, 2 adds r0, r1 ldrh r0, [r0] cmp r0, 0x8 bhi _080ED4C6 lsls r0, 2 ldr r1, _080ED3F0 @ =_080ED3F4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080ED3EC: .4byte 0x02000000 _080ED3F0: .4byte _080ED3F4 .align 2, 0 _080ED3F4: .4byte _080ED418 .4byte _080ED420 .4byte _080ED42A .4byte _080ED432 .4byte _080ED446 .4byte _080ED458 .4byte _080ED462 .4byte _080ED498 .4byte _080ED4B4 _080ED418: movs r0, 0 bl SetVBlankCallback b _080ED49E _080ED420: bl sub_80EED0C bl sub_80F6134 b _080ED49E _080ED42A: movs r0, 0 bl sub_80EEFBC b _080ED49E _080ED432: movs r0, 0 bl sub_80F0264 ldr r1, _080ED454 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080ED446: bl sub_80F02A0 lsls r0, 24 cmp r0, 0 bne _080ED4C6 b _080ED49E .align 2, 0 _080ED454: .4byte 0x02000000 _080ED458: bl sub_8055870 cmp r0, 0 bne _080ED4C6 b _080ED49E _080ED462: movs r0, 0 bl sub_80F3008 ldr r4, _080ED490 @ =0x02000000 movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _080ED494 @ =sub_80EBD18 bl SetVBlankCallback movs r0, 0xC1 lsls r0, 2 adds r1, r4, r0 b _080ED4A6 .align 2, 0 _080ED490: .4byte 0x02000000 _080ED494: .4byte sub_80EBD18 _080ED498: movs r0, 0x4 bl sub_80EED2C _080ED49E: ldr r1, _080ED4B0 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 _080ED4A6: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080ED4C6 .align 2, 0 _080ED4B0: .4byte 0x02000000 _080ED4B4: ldr r0, _080ED4D0 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080ED4C6 ldr r0, _080ED4D4 @ =sub_80ED31C bl sub_80EBDBC _080ED4C6: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080ED4D0: .4byte gPaletteFade _080ED4D4: .4byte sub_80ED31C thumb_func_end sub_80ED3D0 thumb_func_start sub_80ED4D8 sub_80ED4D8: @ 80ED4D8 push {r4,lr} sub sp, 0x4 ldr r1, _080ED4F8 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] adds r4, r1, 0 cmp r0, 0x8 bls _080ED4EE b _080ED60E _080ED4EE: lsls r0, 2 ldr r1, _080ED4FC @ =_080ED500 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080ED4F8: .4byte 0x02000000 _080ED4FC: .4byte _080ED500 .align 2, 0 _080ED500: .4byte _080ED524 .4byte _080ED542 .4byte _080ED564 .4byte _080ED57C .4byte _080ED582 .4byte _080ED594 .4byte _080ED5A4 .4byte _080ED5E0 .4byte _080ED5FC _080ED524: movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r3, 0x10 bl BeginNormalPaletteFade movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080ED5EE _080ED542: ldr r0, _080ED560 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080ED60E movs r0, 0 bl SetVBlankCallback bl sub_80EED0C bl sub_80F3130 b _080ED5E6 .align 2, 0 _080ED560: .4byte gPaletteFade _080ED564: bl sub_8055870 cmp r0, 0 bne _080ED60E ldr r1, _080ED578 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080ED5EE .align 2, 0 _080ED578: .4byte 0x02000000 _080ED57C: bl sub_80F4CF0 b _080ED5E6 _080ED582: bl sub_80EFF34 ldr r1, _080ED5A0 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080ED594: bl sub_80EFF68 lsls r0, 24 cmp r0, 0 bne _080ED60E b _080ED5E6 .align 2, 0 _080ED5A0: .4byte 0x02000000 _080ED5A4: bl sub_80F35B4 movs r0, 0x2 bl sub_80EEFBC ldr r4, _080ED5D8 @ =0x02000000 movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _080ED5DC @ =sub_80EBD4C bl SetVBlankCallback movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080ED5EE .align 2, 0 _080ED5D8: .4byte 0x02000000 _080ED5DC: .4byte sub_80EBD4C _080ED5E0: movs r0, 0x2 bl sub_80EED2C _080ED5E6: ldr r1, _080ED5F8 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 _080ED5EE: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080ED60E .align 2, 0 _080ED5F8: .4byte 0x02000000 _080ED5FC: ldr r0, _080ED618 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080ED60E ldr r0, _080ED61C @ =sub_80ED858 bl sub_80EBDBC _080ED60E: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080ED618: .4byte gPaletteFade _080ED61C: .4byte sub_80ED858 thumb_func_end sub_80ED4D8 thumb_func_start sub_80ED620 sub_80ED620: @ 80ED620 push {r4,lr} sub sp, 0x4 ldr r1, _080ED640 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] adds r4, r1, 0 cmp r0, 0x10 bls _080ED636 b _080ED846 _080ED636: lsls r0, 2 ldr r1, _080ED644 @ =_080ED648 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080ED640: .4byte 0x02000000 _080ED644: .4byte _080ED648 .align 2, 0 _080ED648: .4byte _080ED68C .4byte _080ED6A4 .4byte _080ED6B8 .4byte _080ED6EC .4byte _080ED730 .4byte _080ED736 .4byte _080ED750 .4byte _080ED762 .4byte _080ED76C .4byte _080ED784 .4byte _080ED78A .4byte _080ED7C0 .4byte _080ED7D4 .4byte _080ED7EC .4byte _080ED800 .4byte _080ED820 .4byte _080ED834 _080ED68C: bl sub_80F1E84 movs r0, 0x1 bl sub_80F2D04 ldr r1, _080ED6A0 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080ED814 .align 2, 0 _080ED6A0: .4byte 0x02000000 _080ED6A4: bl sub_80F1F10 lsls r0, 24 cmp r0, 0 beq _080ED6B0 b _080ED846 _080ED6B0: movs r0, 0x1 bl sub_80EEFBC b _080ED80C _080ED6B8: bl sub_80EEF34 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _080ED6C6 b _080ED846 _080ED6C6: ldr r4, _080ED6E8 @ =0x02000000 movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 str r2, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080ED814 .align 2, 0 _080ED6E8: .4byte 0x02000000 _080ED6EC: ldr r0, _080ED724 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _080ED6FE b _080ED846 _080ED6FE: movs r0, 0 bl SetVBlankCallback bl sub_80EED0C bl sub_80EF814 ldr r0, _080ED728 @ =0x02000000 ldr r2, _080ED72C @ =0x000076aa adds r1, r0, r2 strb r4, [r1] movs r1, 0xC1 lsls r1, 2 adds r0, r1 ldrh r1, [r0] adds r1, 0x1 strh r1, [r0] b _080ED846 .align 2, 0 _080ED724: .4byte gPaletteFade _080ED728: .4byte 0x02000000 _080ED72C: .4byte 0x000076aa _080ED730: bl sub_80F2620 b _080ED80C _080ED736: ldr r0, _080ED74C @ =0x0000d162 adds r1, r4, r0 movs r0, 0x2 strb r0, [r1] bl sub_80F4BD0 movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080ED814 .align 2, 0 _080ED74C: .4byte 0x0000d162 _080ED750: bl sub_80EFF34 ldr r1, _080ED768 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080ED762: bl sub_80EFF68 b _080ED806 .align 2, 0 _080ED768: .4byte 0x02000000 _080ED76C: bl sub_8055870 cmp r0, 0 bne _080ED846 ldr r1, _080ED780 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080ED814 .align 2, 0 _080ED780: .4byte 0x02000000 _080ED784: bl sub_8055870 b _080ED808 _080ED78A: bl sub_80F33A8 ldr r4, _080ED7B8 @ =0x02000000 movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _080ED7BC @ =sub_80EBD4C bl SetVBlankCallback movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080ED814 .align 2, 0 _080ED7B8: .4byte 0x02000000 _080ED7BC: .4byte sub_80EBD4C _080ED7C0: movs r0, 0x2 bl sub_80EED2C ldr r1, _080ED7D0 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080ED814 .align 2, 0 _080ED7D0: .4byte 0x02000000 _080ED7D4: ldr r0, _080ED7E8 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080ED846 movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080ED814 .align 2, 0 _080ED7E8: .4byte gPaletteFade _080ED7EC: movs r0, 0x1 bl sub_80F2C80 ldr r1, _080ED81C @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080ED800: movs r0, 0x1 bl sub_80F2CBC _080ED806: lsls r0, 24 _080ED808: cmp r0, 0 bne _080ED846 _080ED80C: ldr r1, _080ED81C @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 _080ED814: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080ED846 .align 2, 0 _080ED81C: .4byte 0x02000000 _080ED820: movs r0, 0x6 bl sub_80F2C80 ldr r1, _080ED850 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080ED834: movs r0, 0x6 bl sub_80F2CBC lsls r0, 24 cmp r0, 0 bne _080ED846 ldr r0, _080ED854 @ =sub_80ED858 bl sub_80EBDBC _080ED846: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080ED850: .4byte 0x02000000 _080ED854: .4byte sub_80ED858 thumb_func_end sub_80ED620 thumb_func_start sub_80ED858 sub_80ED858: @ 80ED858 push {r4,r5,lr} sub sp, 0x4 ldr r1, _080ED878 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] adds r5, r1, 0 cmp r0, 0xB bls _080ED86E b _080EDB7A _080ED86E: lsls r0, 2 ldr r1, _080ED87C @ =_080ED880 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080ED878: .4byte 0x02000000 _080ED87C: .4byte _080ED880 .align 2, 0 _080ED880: .4byte _080ED8B0 .4byte _080ED8CC .4byte _080ED8EC .4byte _080ED904 .4byte _080ED91A .4byte _080EDA68 .4byte _080EDA8C .4byte _080EDAA4 .4byte _080EDAC0 .4byte _080EDAE8 .4byte _080EDB7A .4byte _080EDB28 _080ED8B0: bl sub_80F4F78 bl sub_80F5B38 ldr r0, _080ED8C8 @ =0x02000000 movs r4, 0xC1 lsls r4, 2 adds r0, r4 movs r1, 0x1 strh r1, [r0] b _080EDB7A .align 2, 0 _080ED8C8: .4byte 0x02000000 _080ED8CC: bl sub_80F5B50 lsls r0, 24 cmp r0, 0 beq _080ED8D8 b _080EDB7A _080ED8D8: ldr r0, _080ED8E8 @ =0x02000000 movs r1, 0xC1 lsls r1, 2 adds r0, r1 movs r1, 0x2 strh r1, [r0] b _080EDB7A .align 2, 0 _080ED8E8: .4byte 0x02000000 _080ED8EC: movs r0, 0x1 bl sub_80F0174 ldr r0, _080ED900 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r0, r2 movs r1, 0x3 strh r1, [r0] b _080EDB7A .align 2, 0 _080ED900: .4byte 0x02000000 _080ED904: bl sub_80F4FB4 lsls r0, 24 cmp r0, 0 beq _080ED910 b _080EDB7A _080ED910: bl sub_80F3C94 bl sub_80F3D00 b _080EDAD4 _080ED91A: ldr r2, _080ED960 @ =gMain ldrh r1, [r2, 0x2C] movs r0, 0x40 ands r0, r1 adds r3, r2, 0 cmp r0, 0 beq _080ED970 ldr r1, _080ED964 @ =0x000087cb adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0 beq _080ED970 ldr r2, _080ED968 @ =0x000076aa adds r0, r5, r2 ldrb r0, [r0] cmp r0, 0 beq _080ED948 ldr r4, _080ED96C @ =0x000087dc adds r0, r5, r4 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _080ED970 _080ED948: movs r0, 0x5 bl PlaySE movs r0, 0x1 bl sub_80F5060 bl move_anim_execute movs r2, 0xC1 lsls r2, 2 adds r1, r5, r2 b _080ED9B8 .align 2, 0 _080ED960: .4byte gMain _080ED964: .4byte 0x000087cb _080ED968: .4byte 0x000076aa _080ED96C: .4byte 0x000087dc _080ED970: ldrh r1, [r3, 0x2C] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080ED9CC ldr r4, _080ED9C0 @ =0x000087cb adds r0, r5, r4 ldrb r0, [r0] cmp r0, 0 beq _080ED9CC ldr r1, _080ED9C4 @ =0x000076aa adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0 beq _080ED9A2 ldr r2, _080ED9C8 @ =0x000087dc adds r0, r5, r2 subs r4, 0x57 adds r1, r5, r4 movs r4, 0 ldrsh r2, [r0, r4] movs r4, 0 ldrsh r0, [r1, r4] cmp r2, r0 bge _080ED9CC _080ED9A2: movs r0, 0x5 bl PlaySE movs r0, 0 bl sub_80F5060 bl move_anim_execute movs r0, 0xC1 lsls r0, 2 adds r1, r5, r0 _080ED9B8: movs r0, 0x5 strh r0, [r1] b _080EDB7A .align 2, 0 _080ED9C0: .4byte 0x000087cb _080ED9C4: .4byte 0x000076aa _080ED9C8: .4byte 0x000087dc _080ED9CC: ldrh r2, [r3, 0x2E] movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _080ED9F8 movs r0, 0x5 bl PlaySE bl sub_80F4FDC bl move_anim_execute ldr r0, _080ED9F4 @ =0x02000000 movs r1, 0xC1 lsls r1, 2 adds r0, r1 movs r1, 0x9 strh r1, [r0] b _080EDB7A .align 2, 0 _080ED9F4: .4byte 0x02000000 _080ED9F8: movs r0, 0x1 ands r0, r2 cmp r0, 0 bne _080EDA02 b _080EDB7A _080EDA02: adds r4, r5, 0 ldr r2, _080EDA38 @ =0x000076aa adds r0, r4, r2 ldrb r0, [r0] cmp r0, 0 bne _080EDA44 ldr r1, _080EDA3C @ =0x000087dc adds r0, r4, r1 movs r2, 0 ldrsh r1, [r0, r2] ldr r2, _080EDA40 @ =0x000087da adds r0, r4, r2 movs r2, 0 ldrsh r0, [r0, r2] subs r0, 0x1 cmp r1, r0 beq _080EDA26 b _080EDB7A _080EDA26: movs r0, 0x5 bl PlaySE movs r0, 0xC1 lsls r0, 2 adds r1, r4, r0 movs r0, 0x9 strh r0, [r1] b _080EDB7A .align 2, 0 _080EDA38: .4byte 0x000076aa _080EDA3C: .4byte 0x000087dc _080EDA40: .4byte 0x000087da _080EDA44: ldr r1, _080EDA64 @ =0x00006dac adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0 beq _080EDA50 b _080EDB7A _080EDA50: movs r0, 0x5 bl PlaySE movs r2, 0xC1 lsls r2, 2 adds r1, r5, r2 movs r0, 0x7 strh r0, [r1] b _080EDB7A .align 2, 0 _080EDA64: .4byte 0x00006dac _080EDA68: bl gpu_sync_bg_show lsls r0, 24 cmp r0, 0 beq _080EDA74 b _080EDB7A _080EDA74: bl sub_80F3D00 ldr r0, _080EDA88 @ =0x02000000 movs r4, 0xC1 lsls r4, 2 adds r0, r4 movs r1, 0x6 strh r1, [r0] b _080EDB7A .align 2, 0 _080EDA88: .4byte 0x02000000 _080EDA8C: bl sub_8055870 cmp r0, 0 bne _080EDB7A ldr r0, _080EDAA0 @ =0x02000000 movs r1, 0xC1 lsls r1, 2 adds r0, r1 b _080EDADC .align 2, 0 _080EDAA0: .4byte 0x02000000 _080EDAA4: movs r0, 0x3 bl sub_80EEFBC bl sub_80F3668 ldr r0, _080EDABC @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r0, r2 movs r1, 0x8 strh r1, [r0] b _080EDB7A .align 2, 0 _080EDABC: .4byte 0x02000000 _080EDAC0: bl sub_80F7500 lsls r0, 24 cmp r0, 0 bne _080EDB7A movs r0, 0x2 bl sub_80EEFBC bl sub_80F3698 _080EDAD4: ldr r0, _080EDAE4 @ =0x02000000 movs r4, 0xC1 lsls r4, 2 adds r0, r4 _080EDADC: movs r1, 0x4 strh r1, [r0] b _080EDB7A .align 2, 0 _080EDAE4: .4byte 0x02000000 _080EDAE8: bl sub_80F5038 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080EDB7A movs r0, 0 bl sub_80F0174 bl sub_80F2F48 ldr r5, _080EDB24 @ =0x02000000 movs r1, 0xC2 lsls r1, 2 adds r0, r5, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 str r4, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade movs r2, 0xC1 lsls r2, 2 adds r1, r5, r2 movs r0, 0xB strh r0, [r1] b _080EDB7A .align 2, 0 _080EDB24: .4byte 0x02000000 _080EDB28: ldr r0, _080EDB60 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EDB7A bl sub_80F3CE8 bl sub_80F5BDC ldr r0, _080EDB64 @ =0x02000000 ldr r4, _080EDB68 @ =0x000076aa adds r0, r4 ldrb r0, [r0] cmp r0, 0 bne _080EDB70 bl sub_80F357C movs r0, 0x1 bl sub_80F2D6C movs r0, 0x6 bl sub_80F2D6C ldr r0, _080EDB6C @ =sub_80ECA10 bl sub_80EBDBC b _080EDB7A .align 2, 0 _080EDB60: .4byte gPaletteFade _080EDB64: .4byte 0x02000000 _080EDB68: .4byte 0x000076aa _080EDB6C: .4byte sub_80ECA10 _080EDB70: bl sub_80F3614 ldr r0, _080EDB84 @ =sub_80ED3D0 bl sub_80EBDBC _080EDB7A: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080EDB84: .4byte sub_80ED3D0 thumb_func_end sub_80ED858 thumb_func_start sub_80EDB88 sub_80EDB88: @ 80EDB88 push {r4,lr} sub sp, 0x4 ldr r1, _080EDBA8 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] adds r4, r1, 0 cmp r0, 0x11 bls _080EDB9E b _080EDDAA _080EDB9E: lsls r0, 2 ldr r1, _080EDBAC @ =_080EDBB0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EDBA8: .4byte 0x02000000 _080EDBAC: .4byte _080EDBB0 .align 2, 0 _080EDBB0: .4byte _080EDBF8 .4byte _080EDC04 .4byte _080EDC24 .4byte _080EDC58 .4byte _080EDC7C .4byte _080EDC90 .4byte _080EDCA2 .4byte _080EDCC0 .4byte _080EDCDC .4byte _080EDCE6 .4byte _080EDCFA .4byte _080EDD0C .4byte _080EDD20 .4byte _080EDD34 .4byte _080EDD48 .4byte _080EDD52 .4byte _080EDD7C .4byte _080EDD98 _080EDBF8: bl sub_80F1E84 movs r0, 0 bl sub_80F2D04 b _080EDD82 _080EDC04: bl sub_80F1F10 lsls r0, 24 cmp r0, 0 beq _080EDC10 b _080EDDAA _080EDC10: movs r0, 0x4 bl sub_80EEFBC ldr r1, _080EDC20 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EDD8A .align 2, 0 _080EDC20: .4byte 0x02000000 _080EDC24: bl sub_80EEF34 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _080EDC32 b _080EDDAA _080EDC32: ldr r4, _080EDC54 @ =0x02000000 movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 str r2, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080EDD8A .align 2, 0 _080EDC54: .4byte 0x02000000 _080EDC58: ldr r0, _080EDC78 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080EDC66 b _080EDDAA _080EDC66: movs r0, 0 bl SetVBlankCallback bl sub_80EED0C bl sub_80EF814 b _080EDD82 .align 2, 0 _080EDC78: .4byte gPaletteFade _080EDC7C: bl sub_80F2620 ldr r1, _080EDC8C @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EDD8A .align 2, 0 _080EDC8C: .4byte 0x02000000 _080EDC90: bl sub_80F638C ldr r1, _080EDCBC @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EDCA2: bl sub_80F63D0 lsls r0, 24 cmp r0, 0 bne _080EDD82 ldr r1, _080EDCBC @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x2 strh r0, [r1] b _080EDDAA .align 2, 0 _080EDCBC: .4byte 0x02000000 _080EDCC0: bl sub_8055870 cmp r0, 0 bne _080EDDAA ldr r1, _080EDCD8 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] b _080EDDAA .align 2, 0 _080EDCD8: .4byte 0x02000000 _080EDCDC: bl sub_8055870 cmp r0, 0 bne _080EDDAA b _080EDD82 _080EDCE6: movs r0, 0x1 bl sub_80F0264 ldr r1, _080EDD08 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EDCFA: bl sub_80F02A0 lsls r0, 24 cmp r0, 0 bne _080EDDAA b _080EDD82 .align 2, 0 _080EDD08: .4byte 0x02000000 _080EDD0C: movs r0, 0x2 bl sub_80F2C80 ldr r1, _080EDD30 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EDD20: movs r0, 0x2 bl sub_80F2CBC lsls r0, 24 cmp r0, 0 bne _080EDDAA b _080EDD82 .align 2, 0 _080EDD30: .4byte 0x02000000 _080EDD34: movs r0, 0x1 bl sub_80F3008 ldr r1, _080EDD44 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EDD8A .align 2, 0 _080EDD44: .4byte 0x02000000 _080EDD48: bl sub_8055870 cmp r0, 0 bne _080EDDAA b _080EDD82 _080EDD52: movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _080EDD78 @ =sub_80EBD18 bl SetVBlankCallback movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080EDD8A .align 2, 0 _080EDD78: .4byte sub_80EBD18 _080EDD7C: movs r0, 0x4 bl sub_80EED2C _080EDD82: ldr r1, _080EDD94 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 _080EDD8A: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080EDDAA .align 2, 0 _080EDD94: .4byte 0x02000000 _080EDD98: ldr r0, _080EDDB4 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EDDAA ldr r0, _080EDDB8 @ =sub_80EDDBC bl sub_80EBDBC _080EDDAA: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080EDDB4: .4byte gPaletteFade _080EDDB8: .4byte sub_80EDDBC thumb_func_end sub_80EDB88 thumb_func_start sub_80EDDBC sub_80EDDBC: @ 80EDDBC push {r4,lr} ldr r0, _080EDDD8 @ =0x02000000 movs r1, 0xC1 lsls r1, 2 adds r4, r0, r1 ldrh r0, [r4] cmp r0, 0x1 beq _080EDE48 cmp r0, 0x1 bgt _080EDDDC cmp r0, 0 beq _080EDDE2 b _080EDE6A .align 2, 0 _080EDDD8: .4byte 0x02000000 _080EDDDC: cmp r0, 0x2 beq _080EDE60 b _080EDE6A _080EDDE2: bl sub_80F5DD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080EDE14 cmp r0, 0x2 beq _080EDE20 ldr r0, _080EDE0C @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080EDE2C movs r0, 0x5 bl PlaySE ldr r0, _080EDE10 @ =sub_80EDEE4 bl sub_80EBDBC b _080EDE6A .align 2, 0 _080EDE0C: .4byte gMain _080EDE10: .4byte sub_80EDEE4 _080EDE14: movs r0, 0x5 bl PlaySE bl ShowMapNamePopUpWindow b _080EDE6A _080EDE20: movs r0, 0x5 bl PlaySE ldrh r0, [r4] adds r0, 0x1 b _080EDE68 _080EDE2C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080EDE6A movs r0, 0x5 bl PlaySE ldr r0, _080EDE44 @ =sub_80EDE70 bl sub_80EBDBC b _080EDE6A .align 2, 0 _080EDE44: .4byte sub_80EDE70 _080EDE48: bl sub_80F0718 lsls r0, 24 cmp r0, 0 bne _080EDE6A bl ShowMapNamePopUpWindow bl sub_80F3264 ldrh r0, [r4] adds r0, 0x1 b _080EDE68 _080EDE60: bl sub_8055870 cmp r0, 0 bne _080EDE6A _080EDE68: strh r0, [r4] _080EDE6A: pop {r4} pop {r0} bx r0 thumb_func_end sub_80EDDBC thumb_func_start sub_80EDE70 sub_80EDE70: @ 80EDE70 push {r4,lr} sub sp, 0x4 ldr r0, _080EDE8C @ =0x02000000 movs r1, 0xC1 lsls r1, 2 adds r4, r0, r1 ldrh r2, [r4] cmp r2, 0x1 beq _080EDEAE cmp r2, 0x1 bgt _080EDE90 cmp r2, 0 beq _080EDE96 b _080EDED6 .align 2, 0 _080EDE8C: .4byte 0x02000000 _080EDE90: cmp r2, 0x2 beq _080EDED0 b _080EDED6 _080EDE96: movs r1, 0xC2 lsls r1, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 str r2, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _080EDEC4 _080EDEAE: ldr r0, _080EDECC @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EDED6 bl sub_80F3130 movs r0, 0x2 bl sub_80F2D6C _080EDEC4: ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _080EDED6 .align 2, 0 _080EDECC: .4byte gPaletteFade _080EDED0: ldr r0, _080EDEE0 @ =sub_80EC00C bl sub_80EBDBC _080EDED6: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080EDEE0: .4byte sub_80EC00C thumb_func_end sub_80EDE70 thumb_func_start sub_80EDEE4 sub_80EDEE4: @ 80EDEE4 push {r4,lr} sub sp, 0x4 ldr r1, _080EDF04 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] adds r4, r1, 0 cmp r0, 0xA bls _080EDEFA b _080EE060 _080EDEFA: lsls r0, 2 ldr r1, _080EDF08 @ =_080EDF0C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EDF04: .4byte 0x02000000 _080EDF08: .4byte _080EDF0C .align 2, 0 _080EDF0C: .4byte _080EDF38 .4byte _080EDF50 .4byte _080EDF80 .4byte _080EDF98 .4byte _080EDFB0 .4byte _080EDFC8 .4byte _080EDFE0 .4byte _080EDFF8 .4byte _080EE01C .4byte _080EE030 .4byte _080EE050 _080EDF38: movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r3, 0x10 bl BeginNormalPaletteFade b _080EE03C _080EDF50: ldr r0, _080EDF78 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080EDF5E b _080EE060 _080EDF5E: movs r0, 0 bl SetVBlankCallback bl sub_80EED0C bl sub_80F3130 ldr r1, _080EDF7C @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EE042 .align 2, 0 _080EDF78: .4byte gPaletteFade _080EDF7C: .4byte 0x02000000 _080EDF80: bl sub_80F66E0 bl sub_80EEE08 ldr r1, _080EDF94 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EE042 .align 2, 0 _080EDF94: .4byte 0x02000000 _080EDF98: bl sub_80F1080 lsls r0, 24 cmp r0, 0 bne _080EE060 ldr r1, _080EDFAC @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EE042 .align 2, 0 _080EDFAC: .4byte 0x02000000 _080EDFB0: movs r0, 0x5 bl sub_80EEFBC bl sub_80F38B8 ldr r1, _080EDFDC @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EDFC8: bl sub_80F38EC lsls r0, 24 cmp r0, 0 bne _080EE060 ldr r1, _080EDFDC @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EE042 .align 2, 0 _080EDFDC: .4byte 0x02000000 _080EDFE0: bl sub_8055870 cmp r0, 0 bne _080EE060 ldr r1, _080EDFF4 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EE042 .align 2, 0 _080EDFF4: .4byte 0x02000000 _080EDFF8: movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _080EE018 @ =sub_80EBD18 bl SetVBlankCallback b _080EE03C .align 2, 0 _080EE018: .4byte sub_80EBD18 _080EE01C: movs r0, 0x3 bl sub_80EED2C ldr r1, _080EE02C @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EE042 .align 2, 0 _080EE02C: .4byte 0x02000000 _080EE030: ldr r0, _080EE04C @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EE060 _080EE03C: movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 _080EE042: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080EE060 .align 2, 0 _080EE04C: .4byte gPaletteFade _080EE050: bl sub_80F170C lsls r0, 24 cmp r0, 0 bne _080EE060 ldr r0, _080EE068 @ =sub_80EE06C bl sub_80EBDBC _080EE060: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080EE068: .4byte sub_80EE06C thumb_func_end sub_80EDEE4 thumb_func_start sub_80EE06C sub_80EE06C: @ 80EE06C push {r4,r5,lr} ldr r1, _080EE08C @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] adds r4, r1, 0 cmp r0, 0x8 bls _080EE080 b _080EE288 _080EE080: lsls r0, 2 ldr r1, _080EE090 @ =_080EE094 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EE08C: .4byte 0x02000000 _080EE090: .4byte _080EE094 .align 2, 0 _080EE094: .4byte _080EE0B8 .4byte _080EE0CC .4byte _080EE180 .4byte _080EE19C .4byte _080EE1B8 .4byte _080EE1D0 .4byte _080EE1F8 .4byte _080EE250 .4byte _080EE26C _080EE0B8: bl sub_80F15A8 ldr r1, _080EE0C8 @ =0x02000000 movs r5, 0xC1 lsls r5, 2 adds r1, r5 b _080EE1C4 .align 2, 0 _080EE0C8: .4byte 0x02000000 _080EE0CC: ldr r2, _080EE0FC @ =gMain ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 adds r3, r2, 0 cmp r0, 0 beq _080EE104 ldr r1, _080EE100 @ =0x000087dc adds r0, r4, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 beq _080EE104 movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 bl sub_80F6A4C movs r5, 0xC1 lsls r5, 2 adds r1, r4, r5 b _080EE1C4 .align 2, 0 _080EE0FC: .4byte gMain _080EE100: .4byte 0x000087dc _080EE104: ldrh r1, [r3, 0x30] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080EE140 ldr r1, _080EE138 @ =0x000087dc adds r0, r4, r1 ldr r2, _080EE13C @ =0x00008774 adds r1, r4, r2 movs r5, 0 ldrsh r2, [r0, r5] movs r5, 0 ldrsh r0, [r1, r5] cmp r2, r0 bge _080EE140 movs r0, 0x5 bl PlaySE movs r0, 0x1 bl sub_80F6A4C movs r0, 0xC1 lsls r0, 2 adds r1, r4, r0 b _080EE1C4 .align 2, 0 _080EE138: .4byte 0x000087dc _080EE13C: .4byte 0x00008774 _080EE140: ldrh r2, [r3, 0x2E] movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _080EE164 movs r0, 0x5 bl PlaySE movs r0, 0xB bl sub_80EEFBC ldr r0, _080EE160 @ =0x02000000 movs r1, 0xC1 lsls r1, 2 adds r0, r1 b _080EE262 .align 2, 0 _080EE160: .4byte 0x02000000 _080EE164: movs r0, 0x2 ands r0, r2 cmp r0, 0 bne _080EE16E b _080EE288 _080EE16E: movs r0, 0x5 bl PlaySE ldr r0, _080EE17C @ =sub_80EE294 bl sub_80EBDBC b _080EE288 .align 2, 0 _080EE17C: .4byte sub_80EE294 _080EE180: bl sub_80F6AF0 lsls r0, 24 cmp r0, 0 beq _080EE18C b _080EE288 _080EE18C: ldr r1, _080EE198 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EE1C4 .align 2, 0 _080EE198: .4byte 0x02000000 _080EE19C: bl sub_8055870 adds r1, r0, 0 cmp r1, 0 bne _080EE288 ldr r0, _080EE1B4 @ =0x02000000 movs r5, 0xC1 lsls r5, 2 adds r0, r5 strh r1, [r0] b _080EE288 .align 2, 0 _080EE1B4: .4byte 0x02000000 _080EE1B8: bl sub_80F3B00 ldr r1, _080EE1CC @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 _080EE1C4: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080EE288 .align 2, 0 _080EE1CC: .4byte 0x02000000 _080EE1D0: bl sub_80F3B58 lsls r0, 24 cmp r0, 0 bne _080EE288 bl sub_80F1494 ldr r1, _080EE1F4 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] bl sub_80EED9C b _080EE288 .align 2, 0 _080EE1F4: .4byte 0x02000000 _080EE1F8: bl sub_80F68E8 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080EE224 cmp r0, 0x1 bne _080EE224 movs r0, 0x5 bl PlaySE bl sub_80F3B94 ldr r0, _080EE220 @ =0x02000000 movs r5, 0xC1 lsls r5, 2 adds r0, r5 movs r1, 0x7 strh r1, [r0] b _080EE288 .align 2, 0 _080EE220: .4byte 0x02000000 _080EE224: ldr r0, _080EE248 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080EE288 movs r0, 0x5 bl PlaySE bl sub_80F3B94 ldr r0, _080EE24C @ =0x02000000 movs r1, 0xC1 lsls r1, 2 adds r0, r1 movs r1, 0x8 strh r1, [r0] b _080EE288 .align 2, 0 _080EE248: .4byte gMain _080EE24C: .4byte 0x02000000 _080EE250: bl sub_80F3BD4 lsls r0, 24 cmp r0, 0 bne _080EE288 ldr r0, _080EE268 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r0, r2 _080EE262: movs r1, 0x4 strh r1, [r0] b _080EE288 .align 2, 0 _080EE268: .4byte 0x02000000 _080EE26C: bl sub_80F3BD4 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080EE288 movs r0, 0x5 bl sub_80EEFBC ldr r0, _080EE290 @ =0x02000000 movs r5, 0xC1 lsls r5, 2 adds r0, r5 strh r4, [r0] _080EE288: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080EE290: .4byte 0x02000000 thumb_func_end sub_80EE06C thumb_func_start sub_80EE294 sub_80EE294: @ 80EE294 push {r4,lr} sub sp, 0x4 ldr r1, _080EE2B4 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] adds r4, r1, 0 cmp r0, 0x8 bls _080EE2AA b _080EE3C6 _080EE2AA: lsls r0, 2 ldr r1, _080EE2B8 @ =_080EE2BC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EE2B4: .4byte 0x02000000 _080EE2B8: .4byte _080EE2BC .align 2, 0 _080EE2BC: .4byte _080EE2E0 .4byte _080EE2FE .4byte _080EE324 .4byte _080EE33C .4byte _080EE34C .4byte _080EE370 .4byte _080EE37A .4byte _080EE39A .4byte _080EE3B4 _080EE2E0: movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r3, 0x10 bl BeginNormalPaletteFade movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080EE3A8 _080EE2FE: ldr r0, _080EE320 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EE3C6 movs r0, 0 bl SetVBlankCallback bl sub_80EED0C bl sub_80F3C2C bl sub_80EEE08 b _080EE3A0 .align 2, 0 _080EE320: .4byte gPaletteFade _080EE324: bl sub_80F6134 movs r0, 0x1 bl sub_80F0264 ldr r1, _080EE348 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EE33C: bl sub_80F02A0 lsls r0, 24 cmp r0, 0 bne _080EE3C6 b _080EE3A0 .align 2, 0 _080EE348: .4byte 0x02000000 _080EE34C: movs r0, 0x4 bl sub_80EEFBC movs r0, 0x1 bl sub_80F3008 ldr r0, _080EE368 @ =sub_80EBD18 bl SetVBlankCallback ldr r1, _080EE36C @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EE3A8 .align 2, 0 _080EE368: .4byte sub_80EBD18 _080EE36C: .4byte 0x02000000 _080EE370: bl sub_8055870 cmp r0, 0 bne _080EE3C6 b _080EE3A0 _080EE37A: movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080EE3A8 _080EE39A: movs r0, 0x4 bl sub_80EED2C _080EE3A0: ldr r1, _080EE3B0 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 _080EE3A8: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080EE3C6 .align 2, 0 _080EE3B0: .4byte 0x02000000 _080EE3B4: ldr r0, _080EE3D0 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EE3C6 ldr r0, _080EE3D4 @ =sub_80EDDBC bl sub_80EBDBC _080EE3C6: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080EE3D0: .4byte gPaletteFade _080EE3D4: .4byte sub_80EDDBC thumb_func_end sub_80EE294 thumb_func_start sub_80EE3D8 sub_80EE3D8: @ 80EE3D8 push {r4,lr} sub sp, 0x4 ldr r0, _080EE3F8 @ =0x02000000 movs r1, 0xC1 lsls r1, 2 adds r0, r1 ldrh r0, [r0] cmp r0, 0xD bls _080EE3EC b _080EE57A _080EE3EC: lsls r0, 2 ldr r1, _080EE3FC @ =_080EE400 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EE3F8: .4byte 0x02000000 _080EE3FC: .4byte _080EE400 .align 2, 0 _080EE400: .4byte _080EE438 .4byte _080EE444 .4byte _080EE458 .4byte _080EE48C .4byte _080EE4B0 .4byte _080EE4B6 .4byte _080EE4CA .4byte _080EE4DC .4byte _080EE4F0 .4byte _080EE504 .4byte _080EE50C .4byte _080EE516 .4byte _080EE54C .4byte _080EE568 _080EE438: bl sub_80F1E84 movs r0, 0 bl sub_80F2D04 b _080EE552 _080EE444: bl sub_80F1F10 lsls r0, 24 cmp r0, 0 beq _080EE450 b _080EE57A _080EE450: movs r0, 0x9 bl sub_80EEFBC b _080EE552 _080EE458: bl sub_80EEF34 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _080EE466 b _080EE57A _080EE466: ldr r4, _080EE488 @ =0x02000000 movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 str r2, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade movs r0, 0xC1 lsls r0, 2 adds r1, r4, r0 b _080EE55A .align 2, 0 _080EE488: .4byte 0x02000000 _080EE48C: ldr r0, _080EE4AC @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EE57A movs r0, 0 bl SetVBlankCallback bl sub_80EED0C bl sub_80EF814 bl sub_80EEE08 b _080EE552 .align 2, 0 _080EE4AC: .4byte gPaletteFade _080EE4B0: bl sub_80F2620 b _080EE552 _080EE4B6: movs r0, 0x2 bl sub_80F0264 ldr r1, _080EE4D8 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EE4CA: bl sub_80F02A0 lsls r0, 24 cmp r0, 0 bne _080EE57A b _080EE552 .align 2, 0 _080EE4D8: .4byte 0x02000000 _080EE4DC: movs r0, 0x3 bl sub_80F2C80 ldr r1, _080EE500 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EE4F0: movs r0, 0x3 bl sub_80F2CBC lsls r0, 24 cmp r0, 0 bne _080EE57A b _080EE552 .align 2, 0 _080EE500: .4byte 0x02000000 _080EE504: movs r0, 0x2 bl sub_80F3008 b _080EE552 _080EE50C: bl sub_8055870 cmp r0, 0 bne _080EE57A b _080EE552 _080EE516: bl sub_80F6F10 ldr r4, _080EE544 @ =0x02000000 movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _080EE548 @ =sub_80EBD68 bl SetVBlankCallback movs r0, 0xC1 lsls r0, 2 adds r1, r4, r0 b _080EE55A .align 2, 0 _080EE544: .4byte 0x02000000 _080EE548: .4byte sub_80EBD68 _080EE54C: movs r0, 0x5 bl sub_80EED2C _080EE552: ldr r1, _080EE564 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 _080EE55A: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080EE57A .align 2, 0 _080EE564: .4byte 0x02000000 _080EE568: ldr r0, _080EE584 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EE57A ldr r0, _080EE588 @ =sub_80EE58C bl sub_80EBDBC _080EE57A: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080EE584: .4byte gPaletteFade _080EE588: .4byte sub_80EE58C thumb_func_end sub_80EE3D8 thumb_func_start sub_80EE58C sub_80EE58C: @ 80EE58C push {r4,r5,lr} ldr r5, _080EE5A8 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r4, r5, r0 ldrh r0, [r4] cmp r0, 0x1 beq _080EE624 cmp r0, 0x1 bgt _080EE5AC cmp r0, 0 beq _080EE5B2 b _080EE652 .align 2, 0 _080EE5A8: .4byte 0x02000000 _080EE5AC: cmp r0, 0x2 beq _080EE648 b _080EE652 _080EE5B2: bl sub_80F5DD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080EE5E4 cmp r0, 0x2 beq _080EE5FC ldr r0, _080EE5DC @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080EE608 movs r0, 0x5 bl PlaySE ldr r0, _080EE5E0 @ =sub_80EE658 bl sub_80EBDBC b _080EE652 .align 2, 0 _080EE5DC: .4byte gMain _080EE5E0: .4byte sub_80EE658 _080EE5E4: movs r0, 0x5 bl PlaySE ldr r1, _080EE5F8 @ =0x0000876e adds r0, r5, r1 ldrb r0, [r0] bl sub_80F0FFC b _080EE652 .align 2, 0 _080EE5F8: .4byte 0x0000876e _080EE5FC: movs r0, 0x5 bl PlaySE ldrh r0, [r4] adds r0, 0x1 b _080EE650 _080EE608: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080EE652 movs r0, 0x5 bl PlaySE ldr r0, _080EE620 @ =sub_80EE8F4 bl sub_80EBDBC b _080EE652 .align 2, 0 _080EE620: .4byte sub_80EE8F4 _080EE624: bl sub_80F0718 lsls r0, 24 cmp r0, 0 bne _080EE652 ldr r1, _080EE644 @ =0x0000876e adds r0, r5, r1 ldrb r0, [r0] bl sub_80F0FFC bl sub_80F3264 ldrh r0, [r4] adds r0, 0x1 b _080EE650 .align 2, 0 _080EE644: .4byte 0x0000876e _080EE648: bl sub_8055870 cmp r0, 0 bne _080EE652 _080EE650: strh r0, [r4] _080EE652: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80EE58C thumb_func_start sub_80EE658 sub_80EE658: @ 80EE658 push {r4,r5,lr} ldr r1, _080EE678 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] adds r4, r1, 0 cmp r0, 0x11 bls _080EE66C b _080EE8E8 _080EE66C: lsls r0, 2 ldr r1, _080EE67C @ =_080EE680 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EE678: .4byte 0x02000000 _080EE67C: .4byte _080EE680 .align 2, 0 _080EE680: .4byte _080EE6C8 .4byte _080EE6DA .4byte _080EE6F4 .4byte _080EE708 .4byte _080EE71C .4byte _080EE730 .4byte _080EE758 .4byte _080EE76A .4byte _080EE780 .4byte _080EE820 .4byte _080EE840 .4byte _080EE854 .4byte _080EE868 .4byte _080EE86E .4byte _080EE880 .4byte _080EE898 .4byte _080EE8B4 .4byte _080EE8D4 _080EE6C8: movs r0, 0x1 bl sub_80F3294 movs r0, 0xA bl sub_80EEFBC bl sub_80F0B24 b _080EE8BE _080EE6DA: bl sub_80F0B44 lsls r0, 24 cmp r0, 0 beq _080EE6E6 b _080EE8E8 _080EE6E6: ldr r1, _080EE6F0 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EE8C6 .align 2, 0 _080EE6F0: .4byte 0x02000000 _080EE6F4: bl sub_80F0F64 ldr r1, _080EE704 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EE8C6 .align 2, 0 _080EE704: .4byte 0x02000000 _080EE708: bl sub_80F0FEC lsls r0, 24 cmp r0, 0 beq _080EE714 b _080EE8E8 _080EE714: movs r0, 0x1 bl sub_80F6FB8 b _080EE8BE _080EE71C: bl sub_80F6DB8 ldr r1, _080EE72C @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EE8C6 .align 2, 0 _080EE72C: .4byte 0x02000000 _080EE730: ldr r4, _080EE750 @ =0x02008788 adds r0, r4, 0 subs r0, 0x1A ldrh r1, [r0] adds r0, r4, 0 bl sub_80F700C adds r0, r4, 0 bl sub_80F42C4 ldr r1, _080EE754 @ =0xffff7b7c adds r4, r1 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _080EE8E8 .align 2, 0 _080EE750: .4byte 0x02008788 _080EE754: .4byte 0xffff7b7c _080EE758: bl sub_80F0CD8 ldr r1, _080EE77C @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EE76A: bl sub_80F6E9C lsls r0, 24 cmp r0, 0 beq _080EE776 b _080EE8E8 _080EE776: bl sub_80F0D5C b _080EE8B8 .align 2, 0 _080EE77C: .4byte 0x02000000 _080EE780: ldr r2, _080EE7B0 @ =gMain ldrh r1, [r2, 0x2C] movs r0, 0x40 ands r0, r1 adds r3, r2, 0 cmp r0, 0 beq _080EE7B8 ldr r1, _080EE7B4 @ =0x000087dc adds r0, r4, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 beq _080EE7B8 movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 bl sub_80F708C movs r5, 0xC1 lsls r5, 2 adds r1, r4, r5 b _080EE7E8 .align 2, 0 _080EE7B0: .4byte gMain _080EE7B4: .4byte 0x000087dc _080EE7B8: ldrh r1, [r3, 0x2C] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080EE7F8 ldr r1, _080EE7F0 @ =0x000087dc adds r0, r4, r1 ldr r2, _080EE7F4 @ =0x00008774 adds r1, r4, r2 movs r5, 0 ldrsh r2, [r0, r5] movs r5, 0 ldrsh r0, [r1, r5] cmp r2, r0 bge _080EE7F8 movs r0, 0x5 bl PlaySE movs r0, 0x1 bl sub_80F708C movs r0, 0xC1 lsls r0, 2 adds r1, r4, r0 _080EE7E8: movs r0, 0x10 strh r0, [r1] b _080EE8E8 .align 2, 0 _080EE7F0: .4byte 0x000087dc _080EE7F4: .4byte 0x00008774 _080EE7F8: ldrh r1, [r3, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080EE8E8 movs r0, 0x5 bl PlaySE bl sub_80F4394 bl sub_80F0EC0 ldr r1, _080EE81C @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EE8C6 .align 2, 0 _080EE81C: .4byte 0x02000000 _080EE820: bl sub_80F6ED4 lsls r0, 24 cmp r0, 0 bne _080EE8E8 bl sub_80F0EF4 lsls r0, 24 cmp r0, 0 bne _080EE8E8 movs r0, 0 bl sub_80F6FB8 bl sub_80F2FB0 b _080EE8BE _080EE840: bl sub_80F6134 ldr r1, _080EE850 @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EE8C6 .align 2, 0 _080EE850: .4byte 0x02000000 _080EE854: bl sub_80F0FA0 ldr r1, _080EE864 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EE8C6 .align 2, 0 _080EE864: .4byte 0x02000000 _080EE868: bl sub_80F0FEC b _080EE8B8 _080EE86E: bl sub_80F0C28 ldr r1, _080EE87C @ =0x02000000 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EE8C6 .align 2, 0 _080EE87C: .4byte 0x02000000 _080EE880: bl sub_80F0C48 lsls r0, 24 cmp r0, 0 bne _080EE8E8 ldr r1, _080EE894 @ =0x02000000 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EE8C6 .align 2, 0 _080EE894: .4byte 0x02000000 _080EE898: movs r0, 0x9 bl sub_80EEFBC movs r0, 0 bl sub_80F3294 ldr r0, _080EE8B0 @ =sub_80EE58C bl sub_80EBDBC bl sub_80EED9C b _080EE8E8 .align 2, 0 _080EE8B0: .4byte sub_80EE58C _080EE8B4: bl sub_80F70FC _080EE8B8: lsls r0, 24 cmp r0, 0 bne _080EE8E8 _080EE8BE: ldr r1, _080EE8D0 @ =0x02000000 movs r5, 0xC1 lsls r5, 2 adds r1, r5 _080EE8C6: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080EE8E8 .align 2, 0 _080EE8D0: .4byte 0x02000000 _080EE8D4: bl sub_8055870 cmp r0, 0 bne _080EE8E8 ldr r0, _080EE8F0 @ =0x02000000 movs r1, 0xC1 lsls r1, 2 adds r0, r1 movs r1, 0x8 strh r1, [r0] _080EE8E8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080EE8F0: .4byte 0x02000000 thumb_func_end sub_80EE658 thumb_func_start sub_80EE8F4 sub_80EE8F4: @ 80EE8F4 push {r4,lr} sub sp, 0x4 ldr r0, _080EE910 @ =0x02000000 movs r1, 0xC1 lsls r1, 2 adds r4, r0, r1 ldrh r2, [r4] cmp r2, 0x1 beq _080EE932 cmp r2, 0x1 bgt _080EE914 cmp r2, 0 beq _080EE91A b _080EE95E .align 2, 0 _080EE910: .4byte 0x02000000 _080EE914: cmp r2, 0x2 beq _080EE958 b _080EE95E _080EE91A: movs r1, 0xC2 lsls r1, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 str r2, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _080EE94C _080EE932: ldr r0, _080EE954 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EE95E bl sub_80F3130 movs r0, 0x2 bl sub_80F2D6C bl sub_80F6FFC _080EE94C: ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _080EE95E .align 2, 0 _080EE954: .4byte gPaletteFade _080EE958: ldr r0, _080EE968 @ =sub_80EC00C bl sub_80EBDBC _080EE95E: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080EE968: .4byte sub_80EC00C thumb_func_end sub_80EE8F4 thumb_func_start sub_80EE96C sub_80EE96C: @ 80EE96C push {r4,r5,lr} sub sp, 0x4 ldr r0, _080EE99C @ =0x02000000 movs r1, 0xC1 lsls r1, 2 adds r5, r0, r1 ldrh r4, [r5] cmp r4, 0 bne _080EE9A0 movs r0, 0x6F bl PlaySE movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] b _080EE9B4 .align 2, 0 _080EE99C: .4byte 0x02000000 _080EE9A0: ldr r0, _080EE9BC @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EE9B4 bl sub_80F5BDC bl sub_805469C _080EE9B4: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080EE9BC: .4byte gPaletteFade thumb_func_end sub_80EE96C thumb_func_start sub_80EE9C0 sub_80EE9C0: @ 80EE9C0 push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 bl sub_80F1E84 ldr r1, _080EE9FC @ =0x02000000 ldr r2, _080EEA00 @ =0x00006e14 adds r0, r1, r2 movs r2, 0 strb r4, [r0] ldr r3, _080EEA04 @ =0x00006e15 adds r0, r1, r3 strb r5, [r0] adds r3, 0x1 adds r0, r1, r3 strb r2, [r0] ldr r0, _080EEA08 @ =0x00006e17 adds r1, r0 strb r6, [r1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080EE9FC: .4byte 0x02000000 _080EEA00: .4byte 0x00006e14 _080EEA04: .4byte 0x00006e15 _080EEA08: .4byte 0x00006e17 thumb_func_end sub_80EE9C0 thumb_func_start sub_80EEA0C sub_80EEA0C: @ 80EEA0C push {r4,lr} ldr r1, _080EEA28 @ =0x02000000 ldr r2, _080EEA2C @ =0x00006e16 adds r0, r1, r2 ldrb r0, [r0] adds r3, r1, 0 cmp r0, 0x8 bls _080EEA1E b _080EEBFA _080EEA1E: lsls r0, 2 ldr r1, _080EEA30 @ =_080EEA34 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EEA28: .4byte 0x02000000 _080EEA2C: .4byte 0x00006e16 _080EEA30: .4byte _080EEA34 .align 2, 0 _080EEA34: .4byte _080EEA58 .4byte _080EEA98 .4byte _080EEAAE .4byte _080EEAD4 .4byte _080EEB3E .4byte _080EEB68 .4byte _080EEB88 .4byte _080EEBAC .4byte _080EEBE4 _080EEA58: bl sub_80F1F10 lsls r0, 24 cmp r0, 0 beq _080EEA64 b _080EEC08 _080EEA64: ldr r1, _080EEA7C @ =0x02000000 ldr r4, _080EEA80 @ =0x00006e17 adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0xC beq _080EEA88 ldr r0, _080EEA84 @ =0x00006e16 adds r1, r0 movs r0, 0x1 strb r0, [r1] b _080EEC08 .align 2, 0 _080EEA7C: .4byte 0x02000000 _080EEA80: .4byte 0x00006e17 _080EEA84: .4byte 0x00006e16 _080EEA88: ldr r2, _080EEA94 @ =0x00006e16 adds r1, r2 movs r0, 0x3 strb r0, [r1] b _080EEC08 .align 2, 0 _080EEA94: .4byte 0x00006e16 _080EEA98: ldr r4, _080EEAC8 @ =0x02000000 ldr r1, _080EEACC @ =0x00006e17 adds r0, r4, r1 ldrb r0, [r0] bl sub_80F2C80 ldr r2, _080EEAD0 @ =0x00006e16 adds r4, r2 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] _080EEAAE: ldr r4, _080EEAC8 @ =0x02000000 ldr r1, _080EEACC @ =0x00006e17 adds r0, r4, r1 ldrb r0, [r0] bl sub_80F2CBC lsls r0, 24 cmp r0, 0 beq _080EEAC2 b _080EEC08 _080EEAC2: ldr r2, _080EEAD0 @ =0x00006e16 adds r1, r4, r2 b _080EEB76 .align 2, 0 _080EEAC8: .4byte 0x02000000 _080EEACC: .4byte 0x00006e17 _080EEAD0: .4byte 0x00006e16 _080EEAD4: adds r2, r3, 0 ldr r4, _080EEAF8 @ =0x00006e15 adds r0, r2, r4 ldrb r1, [r0] subs r4, 0x68 adds r0, r2, r4 strb r1, [r0] ldr r1, _080EEAFC @ =0x00006e14 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0x1 beq _080EEB14 cmp r0, 0x1 bgt _080EEB00 cmp r0, 0 beq _080EEB06 b _080EEB28 .align 2, 0 _080EEAF8: .4byte 0x00006e15 _080EEAFC: .4byte 0x00006e14 _080EEB00: cmp r0, 0x2 beq _080EEB20 b _080EEB28 _080EEB06: ldr r4, _080EEB10 @ =0x00006dae adds r1, r2, r4 movs r0, 0x5 b _080EEB26 .align 2, 0 _080EEB10: .4byte 0x00006dae _080EEB14: ldr r0, _080EEB1C @ =0x00006dae adds r1, r2, r0 movs r0, 0x3 b _080EEB26 .align 2, 0 _080EEB1C: .4byte 0x00006dae _080EEB20: ldr r2, _080EEB58 @ =0x00006dae adds r1, r3, r2 movs r0, 0x6 _080EEB26: strb r0, [r1] _080EEB28: ldr r4, _080EEB5C @ =0x02000000 ldr r1, _080EEB60 @ =0x00006e14 adds r0, r4, r1 ldrb r0, [r0] bl sub_80F1B8C ldr r2, _080EEB64 @ =0x00006e16 adds r4, r2 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] _080EEB3E: ldr r4, _080EEB5C @ =0x02000000 ldr r1, _080EEB60 @ =0x00006e14 adds r0, r4, r1 ldrb r0, [r0] bl sub_80F1BC8 lsls r0, 24 cmp r0, 0 bne _080EEC08 ldr r2, _080EEB64 @ =0x00006e16 adds r1, r4, r2 b _080EEB76 .align 2, 0 _080EEB58: .4byte 0x00006dae _080EEB5C: .4byte 0x02000000 _080EEB60: .4byte 0x00006e14 _080EEB64: .4byte 0x00006e16 _080EEB68: bl sub_8055870 cmp r0, 0 bne _080EEC08 ldr r1, _080EEB80 @ =0x02000000 ldr r4, _080EEB84 @ =0x00006e16 adds r1, r4 _080EEB76: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080EEC08 .align 2, 0 _080EEB80: .4byte 0x02000000 _080EEB84: .4byte 0x00006e16 _080EEB88: bl sub_80F1DF0 ldr r4, _080EEBA0 @ =0x02000000 ldr r1, _080EEBA4 @ =0x00006e14 adds r0, r4, r1 ldrb r0, [r0] bl sub_80EF490 ldr r2, _080EEBA8 @ =0x00006e16 adds r4, r2 b _080EEBCC .align 2, 0 _080EEBA0: .4byte 0x02000000 _080EEBA4: .4byte 0x00006e14 _080EEBA8: .4byte 0x00006e16 _080EEBAC: bl sub_80F1E50 lsls r0, 24 cmp r0, 0 bne _080EEC08 ldr r4, _080EEBD4 @ =0x02000000 ldr r1, _080EEBD8 @ =0x00006e14 adds r0, r4, r1 ldrb r0, [r0] ldr r2, _080EEBDC @ =0x00006dad adds r1, r4, r2 ldrb r1, [r1] bl sub_80EF428 ldr r0, _080EEBE0 @ =0x00006e16 adds r4, r0 _080EEBCC: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _080EEC08 .align 2, 0 _080EEBD4: .4byte 0x02000000 _080EEBD8: .4byte 0x00006e14 _080EEBDC: .4byte 0x00006dad _080EEBE0: .4byte 0x00006e16 _080EEBE4: bl sub_80EF4F8 lsls r0, 24 cmp r0, 0 bne _080EEC08 ldr r1, _080EEC00 @ =0x02000000 ldr r2, _080EEC04 @ =0x00006e16 adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080EEBFA: movs r0, 0 b _080EEC0A .align 2, 0 _080EEC00: .4byte 0x02000000 _080EEC04: .4byte 0x00006e16 _080EEC08: movs r0, 0x1 _080EEC0A: pop {r4} pop {r1} bx r1 thumb_func_end sub_80EEA0C thumb_func_start sub_80EEC10 sub_80EEC10: @ 80EEC10 push {r4,lr} ldr r0, _080EEC48 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080EEC50 ldr r1, _080EEC4C @ =0x02006dad adds r3, r1, 0x1 adds r2, r1, 0x5 _080EEC24: ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 bge _080EEC36 ldrb r0, [r3] subs r0, 0x1 strb r0, [r1] _080EEC36: movs r0, 0 ldrsb r0, [r1, r0] adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _080EEC24 movs r0, 0x1 b _080EEC8A .align 2, 0 _080EEC48: .4byte gMain _080EEC4C: .4byte 0x02006dad _080EEC50: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080EEC88 ldr r1, _080EEC84 @ =0x02006dad movs r4, 0 movs r2, 0x1 ldrsb r2, [r1, r2] adds r3, r1, 0x5 _080EEC62: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 asrs r0, 24 cmp r0, r2 blt _080EEC72 strb r4, [r1] _080EEC72: movs r0, 0 ldrsb r0, [r1, r0] adds r0, r3 ldrb r0, [r0] cmp r0, 0 beq _080EEC62 movs r0, 0x1 b _080EEC8A .align 2, 0 _080EEC84: .4byte 0x02006dad _080EEC88: movs r0, 0 _080EEC8A: pop {r4} pop {r1} bx r1 thumb_func_end sub_80EEC10 thumb_func_start sub_80EEC90 sub_80EEC90: @ 80EEC90 push {r4,lr} ldr r0, _080EECC0 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0 beq _080EECD0 ldr r2, _080EECC4 @ =0x02000000 ldr r0, _080EECC8 @ =0x00006dad adds r1, r2, r0 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 bge _080EECF8 ldr r3, _080EECCC @ =0x00006dae adds r0, r2, r3 ldrb r0, [r0] subs r0, 0x1 strb r0, [r1] b _080EECF8 .align 2, 0 _080EECC0: .4byte gMain _080EECC4: .4byte 0x02000000 _080EECC8: .4byte 0x00006dad _080EECCC: .4byte 0x00006dae _080EECD0: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080EED04 ldr r0, _080EECFC @ =0x02000000 ldr r4, _080EED00 @ =0x00006dad adds r2, r0, r4 ldrb r1, [r2] adds r1, 0x1 strb r1, [r2] adds r4, 0x1 adds r0, r4 lsls r1, 24 asrs r1, 24 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r1, r0 blt _080EECF8 strb r3, [r2] _080EECF8: movs r0, 0x1 b _080EED06 .align 2, 0 _080EECFC: .4byte 0x02000000 _080EED00: .4byte 0x00006dad _080EED04: movs r0, 0 _080EED06: pop {r4} pop {r1} bx r1 thumb_func_end sub_80EEC90 thumb_func_start sub_80EED0C sub_80EED0C: @ 80EED0C movs r1, 0x80 lsls r1, 19 movs r2, 0x80 lsls r2, 2 adds r0, r2, 0 strh r0, [r1] bx lr thumb_func_end sub_80EED0C thumb_func_start sub_80EED1C sub_80EED1C: @ 80EED1C movs r1, 0x80 lsls r1, 19 movs r2, 0x92 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] bx lr thumb_func_end sub_80EED1C thumb_func_start sub_80EED2C sub_80EED2C: @ 80EED2C push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bhi _080EED98 lsls r0, 2 ldr r1, _080EED40 @ =_080EED44 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EED40: .4byte _080EED44 .align 2, 0 _080EED44: .4byte _080EED5C .4byte _080EED66 .4byte _080EED7E .4byte _080EED74 .4byte _080EED74 .4byte _080EED8C _080EED5C: movs r1, 0x80 lsls r1, 19 movs r2, 0xFA lsls r2, 5 b _080EED94 _080EED66: movs r1, 0x80 lsls r1, 19 ldr r2, _080EED70 @ =0x00001741 b _080EED94 .align 2, 0 _080EED70: .4byte 0x00001741 _080EED74: movs r1, 0x80 lsls r1, 19 movs r2, 0xFA lsls r2, 5 b _080EED94 _080EED7E: movs r1, 0x80 lsls r1, 19 ldr r2, _080EED88 @ =0x00007b40 b _080EED94 .align 2, 0 _080EED88: .4byte 0x00007b40 _080EED8C: movs r1, 0x80 lsls r1, 19 movs r2, 0xFD lsls r2, 6 _080EED94: adds r0, r2, 0 strh r0, [r1] _080EED98: pop {r0} bx r0 thumb_func_end sub_80EED2C thumb_func_start sub_80EED9C sub_80EED9C: @ 80EED9C push {lr} ldr r2, _080EEDB8 @ =gUnknown_03000744 ldr r0, _080EEDBC @ =0x02000000 movs r1, 0xC0 lsls r1, 2 adds r0, r1 ldr r1, [r0] str r1, [r2] ldr r1, _080EEDC0 @ =sub_80EEDC4 str r1, [r0] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _080EEDB8: .4byte gUnknown_03000744 _080EEDBC: .4byte 0x02000000 _080EEDC0: .4byte sub_80EEDC4 thumb_func_end sub_80EED9C thumb_func_start sub_80EEDC4 sub_80EEDC4: @ 80EEDC4 push {lr} bl sub_8055870 cmp r0, 0x1 beq _080EEDDC ldr r0, _080EEDE0 @ =0x02000000 movs r1, 0xC0 lsls r1, 2 adds r0, r1 ldr r1, _080EEDE4 @ =gUnknown_03000744 ldr r1, [r1] str r1, [r0] _080EEDDC: pop {r0} bx r0 .align 2, 0 _080EEDE0: .4byte 0x02000000 _080EEDE4: .4byte gUnknown_03000744 thumb_func_end sub_80EEDC4 thumb_func_start sub_80EEDE8 sub_80EEDE8: @ 80EEDE8 ldr r0, _080EEE04 @ =REG_BG0HOFS movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x8 strh r1, [r0] subs r0, 0x2 strh r1, [r0] adds r0, 0x4 strh r1, [r0] adds r0, 0x2 strh r1, [r0] bx lr .align 2, 0 _080EEE04: .4byte REG_BG0HOFS thumb_func_end sub_80EEDE8 thumb_func_start sub_80EEE08 sub_80EEE08: @ 80EEE08 ldr r0, _080EEE18 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080EEE1C @ =0x0000d160 adds r0, r1 movs r1, 0 strh r1, [r0] bx lr .align 2, 0 _080EEE18: .4byte gUnknown_083DFEC4 _080EEE1C: .4byte 0x0000d160 thumb_func_end sub_80EEE08 thumb_func_start sub_80EEE20 sub_80EEE20: @ 80EEE20 push {lr} ldr r0, _080EEE48 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080EEE4C @ =0x0000d160 adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080EEE50 @ =0x00006dac adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080EEE42 _080EEE38: bl sub_80EEE54 lsls r0, 24 cmp r0, 0 bne _080EEE38 _080EEE42: pop {r0} bx r0 .align 2, 0 _080EEE48: .4byte gUnknown_083DFEC4 _080EEE4C: .4byte 0x0000d160 _080EEE50: .4byte 0x00006dac thumb_func_end sub_80EEE20 thumb_func_start sub_80EEE54 sub_80EEE54: @ 80EEE54 push {lr} ldr r1, _080EEE70 @ =gUnknown_083DFEC4 ldr r0, [r1] ldr r2, _080EEE74 @ =0x0000d160 adds r0, r2 ldrh r0, [r0] adds r2, r1, 0 cmp r0, 0x4 bhi _080EEF02 lsls r0, 2 ldr r1, _080EEE78 @ =_080EEE7C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EEE70: .4byte gUnknown_083DFEC4 _080EEE74: .4byte 0x0000d160 _080EEE78: .4byte _080EEE7C .align 2, 0 _080EEE7C: .4byte _080EEE90 .4byte _080EEEA4 .4byte _080EEEB8 .4byte _080EEEC8 .4byte _080EEEDC _080EEE90: ldr r0, _080EEE9C @ =gPokenavHoennMapMisc_Gfx ldr r1, _080EEEA0 @ =0x0600c000 bl LZ77UnCompVram b _080EEF18 .align 2, 0 _080EEE9C: .4byte gPokenavHoennMapMisc_Gfx _080EEEA0: .4byte 0x0600c000 _080EEEA4: ldr r0, _080EEEB0 @ =gUnknown_08E99FB0 ldr r1, _080EEEB4 @ =0x0600d800 bl LZ77UnCompVram b _080EEF18 .align 2, 0 _080EEEB0: .4byte gUnknown_08E99FB0 _080EEEB4: .4byte 0x0600d800 _080EEEB8: ldr r0, _080EEEC4 @ =gPokenavHoennMap1_Pal movs r1, 0x10 movs r2, 0x20 bl LoadPalette b _080EEF18 .align 2, 0 _080EEEC4: .4byte gPokenavHoennMap1_Pal _080EEEC8: movs r0, 0 bl sub_80EF58C movs r0, 0x1 bl sub_80EF58C movs r0, 0x2 bl sub_80EF58C b _080EEF18 _080EEEDC: ldr r2, [r2] movs r3, 0xC3 lsls r3, 2 adds r0, r2, r3 movs r1, 0 strh r1, [r0] ldr r0, _080EEF08 @ =REG_BG1HOFS strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r1, _080EEF0C @ =REG_BG1CNT ldr r3, _080EEF10 @ =0x00001b0c adds r0, r3, 0 strh r0, [r1] ldr r0, _080EEF14 @ =0x0000d160 adds r2, r0 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] _080EEF02: movs r0, 0 b _080EEF28 .align 2, 0 _080EEF08: .4byte REG_BG1HOFS _080EEF0C: .4byte REG_BG1CNT _080EEF10: .4byte 0x00001b0c _080EEF14: .4byte 0x0000d160 _080EEF18: ldr r0, _080EEF2C @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r2, _080EEF30 @ =0x0000d160 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] movs r0, 0x1 _080EEF28: pop {r1} bx r1 .align 2, 0 _080EEF2C: .4byte gUnknown_083DFEC4 _080EEF30: .4byte 0x0000d160 thumb_func_end sub_80EEE54 thumb_func_start sub_80EEF34 sub_80EEF34: @ 80EEF34 push {r4,lr} movs r3, 0x1 ldr r0, _080EEF50 @ =gUnknown_083DFEC4 ldr r0, [r0] movs r1, 0xC3 lsls r1, 2 adds r2, r0, r1 ldrh r1, [r2] movs r4, 0 ldrsh r0, [r2, r4] cmp r0, 0x20 bne _080EEF54 movs r0, 0 b _080EEF6E .align 2, 0 _080EEF50: .4byte gUnknown_083DFEC4 _080EEF54: adds r0, r1, 0x2 strh r0, [r2] lsls r0, 16 asrs r0, 16 cmp r0, 0x1F ble _080EEF66 movs r0, 0x20 strh r0, [r2] movs r3, 0 _080EEF66: ldr r1, _080EEF74 @ =REG_BG1VOFS ldrh r0, [r2] strh r0, [r1] adds r0, r3, 0 _080EEF6E: pop {r4} pop {r1} bx r1 .align 2, 0 _080EEF74: .4byte REG_BG1VOFS thumb_func_end sub_80EEF34 thumb_func_start sub_80EEF78 sub_80EEF78: @ 80EEF78 push {r4,lr} movs r3, 0x1 ldr r0, _080EEF94 @ =gUnknown_083DFEC4 ldr r0, [r0] movs r1, 0xC3 lsls r1, 2 adds r2, r0, r1 ldrh r1, [r2] movs r4, 0 ldrsh r0, [r2, r4] cmp r0, 0 bne _080EEF98 movs r0, 0 b _080EEFB0 .align 2, 0 _080EEF94: .4byte gUnknown_083DFEC4 _080EEF98: subs r0, r1, 0x2 strh r0, [r2] lsls r0, 16 cmp r0, 0 bgt _080EEFA8 movs r0, 0 strh r0, [r2] movs r3, 0 _080EEFA8: ldr r1, _080EEFB8 @ =REG_BG1VOFS ldrh r0, [r2] strh r0, [r1] adds r0, r3, 0 _080EEFB0: pop {r4} pop {r1} bx r1 .align 2, 0 _080EEFB8: .4byte REG_BG1VOFS thumb_func_end sub_80EEF78 thumb_func_start sub_80EEFBC sub_80EEFBC: @ 80EEFBC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080EEFF4 @ =0x0600d800 ldr r3, _080EEFF8 @ =gUnknown_08E9A100 movs r1, 0 str r1, [sp] str r1, [sp, 0x4] movs r1, 0x11 str r1, [sp, 0x8] movs r1, 0x2 str r1, [sp, 0xC] movs r1, 0 movs r2, 0x16 bl sub_809D104 cmp r4, 0xB bls _080EEFE8 b _080EF234 _080EEFE8: lsls r0, r4, 2 ldr r1, _080EEFFC @ =_080EF000 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EEFF4: .4byte 0x0600d800 _080EEFF8: .4byte gUnknown_08E9A100 _080EEFFC: .4byte _080EF000 .align 2, 0 _080EF000: .4byte _080EF030 .4byte _080EF234 .4byte _080EF08C .4byte _080EF100 .4byte _080EF13C .4byte _080EF1D4 .4byte _080EF234 .4byte _080EF178 .4byte _080EF190 .4byte _080EF1D4 .4byte _080EF218 .4byte _080EF06C _080EF030: ldr r6, _080EF064 @ =0x0600d800 ldr r0, _080EF068 @ =gUnknown_08E9A100 mov r8, r0 movs r0, 0x11 str r0, [sp] movs r4, 0 str r4, [sp, 0x4] movs r0, 0xA str r0, [sp, 0x8] movs r5, 0x2 str r5, [sp, 0xC] adds r0, r6, 0 movs r1, 0 movs r2, 0x16 mov r3, r8 bl sub_809D104 str r4, [sp] movs r0, 0x6 str r0, [sp, 0x4] movs r0, 0x7 str r0, [sp, 0x8] str r5, [sp, 0xC] adds r0, r6, 0 movs r1, 0xA b _080EF204 .align 2, 0 _080EF064: .4byte 0x0600d800 _080EF068: .4byte gUnknown_08E9A100 _080EF06C: ldr r0, _080EF084 @ =0x0600d800 ldr r3, _080EF088 @ =gUnknown_08E9A100 movs r1, 0 str r1, [sp] movs r1, 0x6 str r1, [sp, 0x4] movs r1, 0x7 str r1, [sp, 0x8] movs r1, 0x2 str r1, [sp, 0xC] movs r1, 0x8 b _080EF0EE .align 2, 0 _080EF084: .4byte 0x0600d800 _080EF088: .4byte gUnknown_08E9A100 _080EF08C: ldr r0, _080EF0C8 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080EF0CC @ =0x00006dac adds r0, r1 ldrb r7, [r0] cmp r7, 0 bne _080EF0D8 ldr r5, _080EF0D0 @ =0x0600d800 ldr r6, _080EF0D4 @ =gUnknown_08E9A100 movs r0, 0xA str r0, [sp] movs r4, 0x2 str r4, [sp, 0x4] str r0, [sp, 0x8] str r4, [sp, 0xC] adds r0, r5, 0 movs r1, 0 movs r2, 0x16 adds r3, r6, 0 bl sub_809D104 str r7, [sp] movs r0, 0x6 str r0, [sp, 0x4] movs r0, 0x7 str r0, [sp, 0x8] str r4, [sp, 0xC] adds r0, r5, 0 movs r1, 0xA b _080EF1C2 .align 2, 0 _080EF0C8: .4byte gUnknown_083DFEC4 _080EF0CC: .4byte 0x00006dac _080EF0D0: .4byte 0x0600d800 _080EF0D4: .4byte gUnknown_08E9A100 _080EF0D8: ldr r0, _080EF0F8 @ =0x0600d800 ldr r3, _080EF0FC @ =gUnknown_08E9A100 movs r1, 0 str r1, [sp] movs r1, 0x6 str r1, [sp, 0x4] movs r1, 0x7 str r1, [sp, 0x8] movs r1, 0x2 str r1, [sp, 0xC] movs r1, 0xA _080EF0EE: movs r2, 0x16 bl sub_809D104 b _080EF234 .align 2, 0 _080EF0F8: .4byte 0x0600d800 _080EF0FC: .4byte gUnknown_08E9A100 _080EF100: ldr r6, _080EF134 @ =0x0600d800 ldr r0, _080EF138 @ =gUnknown_08E9A100 mov r8, r0 movs r5, 0 str r5, [sp] movs r0, 0x4 str r0, [sp, 0x4] movs r0, 0xA str r0, [sp, 0x8] movs r4, 0x2 str r4, [sp, 0xC] adds r0, r6, 0 movs r1, 0 movs r2, 0x16 mov r3, r8 bl sub_809D104 str r5, [sp] movs r0, 0x6 str r0, [sp, 0x4] movs r0, 0x7 str r0, [sp, 0x8] str r4, [sp, 0xC] adds r0, r6, 0 movs r1, 0xA b _080EF204 .align 2, 0 _080EF134: .4byte 0x0600d800 _080EF138: .4byte gUnknown_08E9A100 _080EF13C: ldr r5, _080EF170 @ =0x0600d800 ldr r6, _080EF174 @ =gUnknown_08E9A100 movs r0, 0x14 str r0, [sp] movs r4, 0x2 str r4, [sp, 0x4] movs r0, 0xA str r0, [sp, 0x8] str r4, [sp, 0xC] adds r0, r5, 0 movs r1, 0 movs r2, 0x16 adds r3, r6, 0 bl sub_809D104 movs r0, 0 str r0, [sp] movs r0, 0x6 str r0, [sp, 0x4] movs r0, 0x7 str r0, [sp, 0x8] str r4, [sp, 0xC] adds r0, r5, 0 movs r1, 0xA b _080EF1C2 .align 2, 0 _080EF170: .4byte 0x0600d800 _080EF174: .4byte gUnknown_08E9A100 _080EF178: ldr r5, _080EF188 @ =0x0600d800 ldr r6, _080EF18C @ =gUnknown_08E9A100 movs r1, 0xA str r1, [sp] movs r0, 0x4 str r0, [sp, 0x4] str r1, [sp, 0x8] b _080EF1A0 .align 2, 0 _080EF188: .4byte 0x0600d800 _080EF18C: .4byte gUnknown_08E9A100 _080EF190: ldr r5, _080EF1CC @ =0x0600d800 ldr r6, _080EF1D0 @ =gUnknown_08E9A100 movs r0, 0x14 str r0, [sp] movs r0, 0x4 str r0, [sp, 0x4] movs r0, 0xA str r0, [sp, 0x8] _080EF1A0: movs r4, 0x2 str r4, [sp, 0xC] adds r0, r5, 0 movs r1, 0 movs r2, 0x16 adds r3, r6, 0 bl sub_809D104 movs r0, 0 str r0, [sp] movs r0, 0x6 str r0, [sp, 0x4] movs r0, 0x7 str r0, [sp, 0x8] str r4, [sp, 0xC] adds r0, r5, 0 movs r1, 0x7 _080EF1C2: movs r2, 0x16 adds r3, r6, 0 bl sub_809D104 b _080EF234 .align 2, 0 _080EF1CC: .4byte 0x0600d800 _080EF1D0: .4byte gUnknown_08E9A100 _080EF1D4: ldr r6, _080EF210 @ =0x0600d800 ldr r1, _080EF214 @ =gUnknown_08E9A100 mov r8, r1 movs r5, 0 str r5, [sp] movs r4, 0x2 str r4, [sp, 0x4] movs r0, 0xA str r0, [sp, 0x8] str r4, [sp, 0xC] adds r0, r6, 0 movs r1, 0 movs r2, 0x16 mov r3, r8 bl sub_809D104 str r5, [sp] movs r0, 0x6 str r0, [sp, 0x4] movs r0, 0x7 str r0, [sp, 0x8] str r4, [sp, 0xC] adds r0, r6, 0 movs r1, 0x8 _080EF204: movs r2, 0x16 mov r3, r8 bl sub_809D104 b _080EF234 .align 2, 0 _080EF210: .4byte 0x0600d800 _080EF214: .4byte gUnknown_08E9A100 _080EF218: ldr r0, _080EF240 @ =0x0600d800 ldr r3, _080EF244 @ =gUnknown_08E9A100 movs r1, 0 str r1, [sp] movs r1, 0x6 str r1, [sp, 0x4] movs r1, 0x7 str r1, [sp, 0x8] movs r1, 0x2 str r1, [sp, 0xC] movs r1, 0x8 movs r2, 0x16 bl sub_809D104 _080EF234: add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080EF240: .4byte 0x0600d800 _080EF244: .4byte gUnknown_08E9A100 thumb_func_end sub_80EEFBC thumb_func_start sub_80EF248 sub_80EF248: @ 80EF248 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080EF278 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080EF27C @ =0x0000d160 adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080EF280 @ =0x00006dac adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080EF270 _080EF264: adds r0, r4, 0 bl sub_80EF284 lsls r0, 24 cmp r0, 0 bne _080EF264 _080EF270: pop {r4} pop {r0} bx r0 .align 2, 0 _080EF278: .4byte gUnknown_083DFEC4 _080EF27C: .4byte 0x0000d160 _080EF280: .4byte 0x00006dac thumb_func_end sub_80EF248 thumb_func_start sub_80EF284 sub_80EF284: @ 80EF284 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080EF2A8 @ =gUnknown_083DFEC4 ldr r0, [r1] ldr r3, _080EF2AC @ =0x0000d160 adds r0, r3 ldrh r0, [r0] adds r3, r1, 0 cmp r0, 0xB bls _080EF29C b _080EF3F6 _080EF29C: lsls r0, 2 ldr r1, _080EF2B0 @ =_080EF2B4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EF2A8: .4byte gUnknown_083DFEC4 _080EF2AC: .4byte 0x0000d160 _080EF2B0: .4byte _080EF2B4 .align 2, 0 _080EF2B4: .4byte _080EF2E4 .4byte _080EF2EA .4byte _080EF2F8 .4byte _080EF304 .4byte _080EF310 .4byte _080EF330 .4byte _080EF344 .4byte _080EF368 .4byte _080EF37C .4byte _080EF390 .4byte _080EF3A4 .4byte _080EF3CC _080EF2E4: bl sub_80EEDE8 b _080EF40C _080EF2EA: ldr r0, _080EF2F4 @ =gWindowConfig_81E7224 bl SetUpWindowConfig b _080EF40C .align 2, 0 _080EF2F4: .4byte gWindowConfig_81E7224 _080EF2F8: ldr r0, _080EF300 @ =gWindowConfig_81E7224 bl MultistepInitMenuWindowBegin b _080EF40C .align 2, 0 _080EF300: .4byte gWindowConfig_81E7224 _080EF304: bl MultistepInitMenuWindowContinue cmp r0, 0 beq _080EF30E b _080EF40C _080EF30E: b _080EF41A _080EF310: ldr r1, _080EF320 @ =gUnknown_083DFEEC ldr r2, _080EF324 @ =0x06005000 ldr r0, _080EF328 @ =0x040000d4 str r1, [r0] str r2, [r0, 0x4] ldr r1, _080EF32C @ =0x80000050 b _080EF350 .align 2, 0 _080EF320: .4byte gUnknown_083DFEEC _080EF324: .4byte 0x06005000 _080EF328: .4byte 0x040000d4 _080EF32C: .4byte 0x80000050 _080EF330: ldr r0, _080EF33C @ =gUnknown_083DFF8C ldr r1, _080EF340 @ =0x0600f800 bl LZ77UnCompVram b _080EF40C .align 2, 0 _080EF33C: .4byte gUnknown_083DFF8C _080EF340: .4byte 0x0600f800 _080EF344: ldr r1, _080EF358 @ =gUnknown_083E005C ldr r2, _080EF35C @ =0x06008000 ldr r0, _080EF360 @ =0x040000d4 str r1, [r0] str r2, [r0, 0x4] ldr r1, _080EF364 @ =0x80000010 _080EF350: str r1, [r0, 0x8] ldr r0, [r0, 0x8] b _080EF40C .align 2, 0 _080EF358: .4byte gUnknown_083E005C _080EF35C: .4byte 0x06008000 _080EF360: .4byte 0x040000d4 _080EF364: .4byte 0x80000010 _080EF368: ldr r0, _080EF374 @ =gUnknown_083E007C ldr r1, _080EF378 @ =0x0600e000 bl LZ77UnCompVram b _080EF40C .align 2, 0 _080EF374: .4byte gUnknown_083E007C _080EF378: .4byte 0x0600e000 _080EF37C: ldr r0, _080EF388 @ =gPokenavOutlineTilemap ldr r1, _080EF38C @ =0x0600e800 bl LZ77UnCompVram b _080EF40C .align 2, 0 _080EF388: .4byte gPokenavOutlineTilemap _080EF38C: .4byte 0x0600e800 _080EF390: ldr r0, _080EF39C @ =gPokenavOutlineTiles ldr r1, _080EF3A0 @ =0x06008020 bl LZ77UnCompVram b _080EF40C .align 2, 0 _080EF39C: .4byte gPokenavOutlineTiles _080EF3A0: .4byte 0x06008020 _080EF3A4: adds r0, r2, 0 bl sub_80EF54C ldr r0, _080EF3C4 @ =gUnknown_083DFECC movs r1, 0xF0 movs r2, 0x20 bl LoadPalette ldr r0, _080EF3C8 @ =gPokenavOutlinePalette movs r1, 0x40 movs r2, 0x20 bl LoadPalette bl sub_80EF7D4 b _080EF40C .align 2, 0 _080EF3C4: .4byte gUnknown_083DFECC _080EF3C8: .4byte gPokenavOutlinePalette _080EF3CC: ldr r1, _080EF3FC @ =REG_BG0CNT ldr r2, _080EF400 @ =0x00001f01 adds r0, r2, 0 strh r0, [r1] adds r1, 0x4 ldr r2, _080EF404 @ =0x00001d0a adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 subs r2, 0xFF adds r0, r2, 0 strh r0, [r1] adds r1, 0x42 movs r0, 0 strh r0, [r1] ldr r1, [r3] ldr r3, _080EF408 @ =0x0000d160 adds r1, r3 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EF3F6: movs r0, 0 b _080EF41C .align 2, 0 _080EF3FC: .4byte REG_BG0CNT _080EF400: .4byte 0x00001f01 _080EF404: .4byte 0x00001d0a _080EF408: .4byte 0x0000d160 _080EF40C: ldr r0, _080EF420 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r0, _080EF424 @ =0x0000d160 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EF41A: movs r0, 0x1 _080EF41C: pop {r1} bx r1 .align 2, 0 _080EF420: .4byte gUnknown_083DFEC4 _080EF424: .4byte 0x0000d160 thumb_func_end sub_80EF284 thumb_func_start sub_80EF428 sub_80EF428: @ 80EF428 push {r4,lr} lsls r0, 24 lsrs r0, 24 adds r3, r0, 0 lsls r1, 24 lsrs r2, r1, 24 movs r1, 0 cmp r0, 0x1 beq _080EF454 cmp r0, 0x1 bgt _080EF444 cmp r0, 0 beq _080EF44A b _080EF464 _080EF444: cmp r3, 0x2 beq _080EF45C b _080EF464 _080EF44A: ldr r1, _080EF450 @ =gUnknown_083E31B0 b _080EF45E .align 2, 0 _080EF450: .4byte gUnknown_083E31B0 _080EF454: ldr r1, _080EF458 @ =gUnknown_083E31CC b _080EF45E .align 2, 0 _080EF458: .4byte gUnknown_083E31CC _080EF45C: ldr r1, _080EF488 @ =gUnknown_083E31D8 _080EF45E: lsls r0, r2, 2 adds r0, r1 ldr r1, [r0] _080EF464: ldr r0, _080EF48C @ =gUnknown_083DFEC8 ldr r4, [r0] movs r0, 0x80 lsls r0, 4 adds r4, r0 adds r0, r4, 0 movs r2, 0xC0 movs r3, 0x2 bl sub_8072C74 adds r0, r4, 0 movs r1, 0x3 movs r2, 0x11 bl MenuPrint pop {r4} pop {r0} bx r0 .align 2, 0 _080EF488: .4byte gUnknown_083E31D8 _080EF48C: .4byte gUnknown_083DFEC8 thumb_func_end sub_80EF428 thumb_func_start sub_80EF490 sub_80EF490: @ 80EF490 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x2 bne _080EF49C movs r2, 0x1 _080EF49C: ldr r0, _080EF4C4 @ =gUnknown_083DFEC4 ldr r3, [r0] lsls r1, r2, 4 subs r1, r2 lsls r2, r1, 1 ldr r4, _080EF4C8 @ =0x0000ce4e adds r0, r3, r4 strh r2, [r0] ldr r2, _080EF4CC @ =0x0000ce4c adds r0, r3, r2 ldrh r2, [r0] lsls r1, 17 lsrs r0, r1, 16 cmp r2, r0 bcs _080EF4D0 adds r4, 0x2 adds r1, r3, r4 movs r0, 0x2 b _080EF4EA .align 2, 0 _080EF4C4: .4byte gUnknown_083DFEC4 _080EF4C8: .4byte 0x0000ce4e _080EF4CC: .4byte 0x0000ce4c _080EF4D0: cmp r2, r0 bls _080EF4E4 ldr r0, _080EF4DC @ =0x0000ce50 adds r1, r3, r0 ldr r0, _080EF4E0 @ =0x0000fffe b _080EF4EA .align 2, 0 _080EF4DC: .4byte 0x0000ce50 _080EF4E0: .4byte 0x0000fffe _080EF4E4: ldr r2, _080EF4F4 @ =0x0000ce50 adds r1, r3, r2 movs r0, 0 _080EF4EA: strh r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _080EF4F4: .4byte 0x0000ce50 thumb_func_end sub_80EF490 thumb_func_start sub_80EF4F8 sub_80EF4F8: @ 80EF4F8 push {r4,lr} ldr r0, _080EF530 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r0, _080EF534 @ =0x0000ce4c adds r2, r1, r0 ldr r3, _080EF538 @ =0x0000ce4e adds r0, r1, r3 ldrh r3, [r2] ldrh r0, [r0] cmp r3, r0 beq _080EF544 ldr r4, _080EF53C @ =0x0000ce50 adds r0, r1, r4 ldrh r0, [r0] adds r0, r3, r0 strh r0, [r2] ldr r3, _080EF540 @ =0x0000ce52 adds r0, r1, r3 ldrh r1, [r2] lsls r1, 1 adds r0, r1 movs r1, 0x31 movs r2, 0x4 bl LoadPalette movs r0, 0x1 b _080EF546 .align 2, 0 _080EF530: .4byte gUnknown_083DFEC4 _080EF534: .4byte 0x0000ce4c _080EF538: .4byte 0x0000ce4e _080EF53C: .4byte 0x0000ce50 _080EF540: .4byte 0x0000ce52 _080EF544: movs r0, 0 _080EF546: pop {r4} pop {r1} bx r1 thumb_func_end sub_80EF4F8 thumb_func_start sub_80EF54C sub_80EF54C: @ 80EF54C push {lr} lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x2 bne _080EF558 movs r2, 0x1 _080EF558: ldr r0, _080EF580 @ =gUnknown_083DFEC4 ldr r0, [r0] lsls r1, r2, 4 subs r1, r2 lsls r1, 1 ldr r3, _080EF584 @ =0x0000ce4c adds r2, r0, r3 strh r1, [r2] ldrh r1, [r2] lsls r1, 1 ldr r2, _080EF588 @ =0x0000ce52 adds r1, r2 adds r0, r1 movs r1, 0x31 movs r2, 0x4 bl LoadPalette pop {r0} bx r0 .align 2, 0 _080EF580: .4byte gUnknown_083DFEC4 _080EF584: .4byte 0x0000ce4c _080EF588: .4byte 0x0000ce52 thumb_func_end sub_80EF54C thumb_func_start sub_80EF58C sub_80EF58C: @ 80EF58C push {lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0x1 beq _080EF5D0 cmp r0, 0x1 bgt _080EF5A4 cmp r0, 0 beq _080EF5AA b _080EF610 _080EF5A4: cmp r1, 0x2 beq _080EF5F8 b _080EF610 _080EF5AA: movs r1, 0 ldr r0, _080EF5C8 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r3, _080EF5CC @ =0x0000ce52 adds r2, r0, r3 movs r3, 0 _080EF5B6: lsls r0, r1, 1 adds r0, r2, r0 strh r3, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x3D bls _080EF5B6 b _080EF610 .align 2, 0 _080EF5C8: .4byte gUnknown_083DFEC4 _080EF5CC: .4byte 0x0000ce52 _080EF5D0: ldr r0, _080EF5EC @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080EF5F0 @ =0x0000ce52 adds r2, r0, r1 ldr r1, _080EF5F4 @ =gUnknown_083E003C adds r0, r1, 0x2 adds r1, 0x6 str r2, [sp] movs r2, 0x10 movs r3, 0x2 bl sub_80EF624 b _080EF610 .align 2, 0 _080EF5EC: .4byte gUnknown_083DFEC4 _080EF5F0: .4byte 0x0000ce52 _080EF5F4: .4byte gUnknown_083E003C _080EF5F8: ldr r0, _080EF618 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r3, _080EF61C @ =0x0000ce8e adds r2, r0, r3 ldr r1, _080EF620 @ =gUnknown_083E003C adds r0, r1, 0x6 adds r1, 0xE str r2, [sp] movs r2, 0x10 movs r3, 0x2 bl sub_80EF624 _080EF610: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080EF618: .4byte gUnknown_083DFEC4 _080EF61C: .4byte 0x0000ce8e _080EF620: .4byte gUnknown_083E003C thumb_func_end sub_80EF58C thumb_func_start sub_80EF624 sub_80EF624: @ 80EF624 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x38 str r0, [sp] str r1, [sp, 0x4] ldr r4, [sp, 0x58] lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x8] lsls r3, 24 lsrs r3, 24 str r3, [sp, 0xC] movs r0, 0 str r0, [sp, 0x10] lsls r0, r3, 16 ldr r1, [sp, 0x10] cmp r1, r3 bcs _080EF72E subs r2, 0x1 str r2, [sp, 0x20] str r0, [sp, 0x2C] _080EF654: ldr r2, [sp] ldrh r1, [r2] movs r0, 0x1F ands r0, r1 lsls r7, r0, 8 lsls r1, 16 lsrs r0, r1, 21 movs r2, 0x1F ands r0, r2 lsls r6, r0, 8 lsrs r1, 26 ands r1, r2 lsls r5, r1, 8 ldr r0, [sp, 0x4] ldrh r1, [r0] movs r0, 0x1F ands r0, r1 lsls r0, 8 str r0, [sp, 0x14] lsls r1, 16 lsrs r0, r1, 21 ands r0, r2 lsls r0, 8 str r0, [sp, 0x18] lsrs r1, 26 ands r1, r2 lsls r1, 8 str r1, [sp, 0x1C] ldr r1, [sp, 0x14] subs r0, r1, r7 ldr r1, [sp, 0x8] bl __divsi3 mov r10, r0 ldr r2, [sp, 0x18] subs r0, r2, r6 ldr r1, [sp, 0x8] bl __divsi3 mov r9, r0 ldr r1, [sp, 0x1C] subs r0, r1, r5 ldr r1, [sp, 0x8] bl __divsi3 mov r8, r0 adds r3, r4, 0 movs r4, 0 ldr r2, [sp] adds r2, 0x2 str r2, [sp, 0x30] ldr r0, [sp, 0x4] adds r0, 0x2 str r0, [sp, 0x34] adds r1, r3, 0x2 str r1, [sp, 0x24] ldr r2, [sp, 0x10] adds r2, 0x1 str r2, [sp, 0x28] ldr r0, [sp, 0x20] cmp r4, r0 bge _080EF700 ldr r1, [sp, 0xC] lsls r1, 1 mov r12, r1 _080EF6D6: lsls r0, r7, 8 lsrs r2, r0, 16 lsls r0, r6, 8 lsrs r1, r0, 16 lsls r0, r5, 8 lsrs r0, 16 lsls r0, 10 lsls r1, 5 orrs r0, r1 orrs r2, r0 strh r2, [r3] add r3, r12 add r7, r10 add r6, r9 add r5, r8 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 ldr r2, [sp, 0x20] cmp r4, r2 blt _080EF6D6 _080EF700: ldr r4, [sp, 0x14] lsrs r2, r4, 8 ldr r1, [sp, 0x1C] lsls r0, r1, 2 ldr r4, [sp, 0x18] lsrs r1, r4, 3 orrs r0, r1 orrs r2, r0 strh r2, [r3] ldr r0, [sp, 0x30] str r0, [sp] ldr r1, [sp, 0x34] str r1, [sp, 0x4] ldr r4, [sp, 0x24] ldr r2, [sp, 0x28] lsls r0, r2, 16 lsrs r0, 16 str r0, [sp, 0x10] ldr r1, [sp, 0x2C] lsrs r0, r1, 16 ldr r2, [sp, 0x10] cmp r2, r0 bcc _080EF654 _080EF72E: add sp, 0x38 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80EF624 thumb_func_start sub_80EF740 sub_80EF740: @ 80EF740 push {lr} ldr r0, _080EF770 @ =gUnknown_083DFEC4 ldr r3, [r0] ldr r0, _080EF774 @ =0x00006da0 adds r2, r3, r0 ldrh r0, [r2] adds r0, 0x1 movs r1, 0x1 ands r0, r1 strh r0, [r2] cmp r0, 0 beq _080EF762 ldr r2, _080EF778 @ =0x00006da2 adds r1, r3, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EF762: ldr r0, _080EF77C @ =REG_BG3HOFS ldr r2, _080EF778 @ =0x00006da2 adds r1, r3, r2 ldrh r1, [r1] strh r1, [r0] pop {r0} bx r0 .align 2, 0 _080EF770: .4byte gUnknown_083DFEC4 _080EF774: .4byte 0x00006da0 _080EF778: .4byte 0x00006da2 _080EF77C: .4byte REG_BG3HOFS thumb_func_end sub_80EF740 thumb_func_start sub_80EF780 sub_80EF780: @ 80EF780 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080EF7B0 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 beq _080EF7AA ldr r0, _080EF7B4 @ =gUnknown_083DFEC4 ldr r3, [r0] ldr r0, _080EF7B8 @ =0x00006da2 adds r2, r3, r0 ldrh r0, [r2] movs r1, 0x7 ands r1, r0 cmp r1, 0 beq _080EF7BC _080EF7AA: bl sub_80EF740 b _080EF7C8 .align 2, 0 _080EF7B0: .4byte gTasks _080EF7B4: .4byte gUnknown_083DFEC4 _080EF7B8: .4byte 0x00006da2 _080EF7BC: strh r1, [r2] ldr r2, _080EF7CC @ =0x00006da0 adds r0, r3, r2 strh r1, [r0] ldr r0, _080EF7D0 @ =REG_BG3HOFS strh r1, [r0] _080EF7C8: pop {r0} bx r0 .align 2, 0 _080EF7CC: .4byte 0x00006da0 _080EF7D0: .4byte REG_BG3HOFS thumb_func_end sub_80EF780 thumb_func_start sub_80EF7D4 sub_80EF7D4: @ 80EF7D4 push {r4,lr} ldr r0, _080EF800 @ =gUnknown_083DFEC4 ldr r4, [r0] ldr r1, _080EF804 @ =0x00006da2 adds r0, r4, r1 movs r1, 0 strh r1, [r0] ldr r2, _080EF808 @ =0x00006da0 adds r0, r4, r2 strh r1, [r0] ldr r0, _080EF80C @ =sub_80EF780 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r1, _080EF810 @ =0x00006da4 adds r4, r1 strh r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080EF800: .4byte gUnknown_083DFEC4 _080EF804: .4byte 0x00006da2 _080EF808: .4byte 0x00006da0 _080EF80C: .4byte sub_80EF780 _080EF810: .4byte 0x00006da4 thumb_func_end sub_80EF7D4 thumb_func_start sub_80EF814 sub_80EF814: @ 80EF814 push {lr} ldr r0, _080EF834 @ =sub_80EF780 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 beq _080EF830 ldr r0, _080EF838 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080EF83C @ =0x00006da4 adds r0, r1 ldrb r0, [r0] bl DestroyTask _080EF830: pop {r0} bx r0 .align 2, 0 _080EF834: .4byte sub_80EF780 _080EF838: .4byte gUnknown_083DFEC4 _080EF83C: .4byte 0x00006da4 thumb_func_end sub_80EF814 thumb_func_start sub_80EF840 sub_80EF840: @ 80EF840 push {lr} ldr r0, _080EF868 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080EF86C @ =0x0000d160 adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080EF870 @ =0x00006dac adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080EF862 _080EF858: bl sub_80EF874 lsls r0, 24 cmp r0, 0 bne _080EF858 _080EF862: pop {r0} bx r0 .align 2, 0 _080EF868: .4byte gUnknown_083DFEC4 _080EF86C: .4byte 0x0000d160 _080EF870: .4byte 0x00006dac thumb_func_end sub_80EF840 thumb_func_start sub_80EF874 sub_80EF874: @ 80EF874 push {lr} ldr r0, _080EF890 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080EF894 @ =0x0000d160 adds r0, r1 ldrh r0, [r0] cmp r0, 0xB bls _080EF886 b _080EF9D8 _080EF886: lsls r0, 2 ldr r1, _080EF898 @ =_080EF89C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EF890: .4byte gUnknown_083DFEC4 _080EF894: .4byte 0x0000d160 _080EF898: .4byte _080EF89C .align 2, 0 _080EF89C: .4byte _080EF8CC .4byte _080EF8D2 .4byte _080EF8E0 .4byte _080EF8EC .4byte _080EF8F6 .4byte _080EF8FC .4byte _080EF920 .4byte _080EF92C .4byte _080EF940 .4byte _080EF954 .4byte _080EF960 .4byte _080EF972 _080EF8CC: bl sub_80EEDE8 b _080EF9DC _080EF8D2: ldr r0, _080EF8DC @ =gWindowConfig_81E7224 bl SetUpWindowConfig b _080EF9DC .align 2, 0 _080EF8DC: .4byte gWindowConfig_81E7224 _080EF8E0: ldr r0, _080EF8E8 @ =gWindowConfig_81E7224 bl MultistepInitMenuWindowBegin b _080EF9DC .align 2, 0 _080EF8E8: .4byte gWindowConfig_81E7224 _080EF8EC: bl MultistepInitMenuWindowContinue cmp r0, 0 bne _080EF9DC b _080EF9EA _080EF8F6: bl MenuZeroFillScreen b _080EF9DC _080EF8FC: ldr r0, _080EF914 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r2, _080EF918 @ =0x00006e18 adds r0, r2 ldr r1, _080EF91C @ =gSaveBlock2 ldrb r1, [r1, 0x15] lsrs r1, 3 movs r2, 0x1 ands r1, r2 bl sub_80FA904 b _080EF9DC .align 2, 0 _080EF914: .4byte gUnknown_083DFEC4 _080EF918: .4byte 0x00006e18 _080EF91C: .4byte gSaveBlock2 _080EF920: bl sub_80FA940 lsls r0, 24 cmp r0, 0 beq _080EF9DC b _080EF9EA _080EF92C: ldr r0, _080EF938 @ =gPokenavHoennMapSquares_Gfx ldr r1, _080EF93C @ =0x06005000 bl LZ77UnCompVram b _080EF9DC .align 2, 0 _080EF938: .4byte gPokenavHoennMapSquares_Gfx _080EF93C: .4byte 0x06005000 _080EF940: ldr r0, _080EF950 @ =gPokenavHoennMapSquares_Pal movs r1, 0x30 movs r2, 0x20 bl LoadPalette bl sub_80EFC3C b _080EF9DC .align 2, 0 _080EF950: .4byte gPokenavHoennMapSquares_Pal _080EF954: bl sub_80EFC64 lsls r0, 24 cmp r0, 0 beq _080EF9DC b _080EF9EA _080EF960: movs r0, 0xD movs r1, 0x3 movs r2, 0x1D movs r3, 0x11 bl MenuDrawTextWindow bl sub_80EF9F8 b _080EF9DC _080EF972: ldr r0, _080EF990 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r2, _080EF994 @ =0x00006e90 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _080EF9A0 ldr r2, _080EF998 @ =0x00007698 adds r0, r1, r2 movs r1, 0xA0 strh r1, [r0] ldr r0, _080EF99C @ =REG_BG0VOFS strh r1, [r0] b _080EF9B0 .align 2, 0 _080EF990: .4byte gUnknown_083DFEC4 _080EF994: .4byte 0x00006e90 _080EF998: .4byte 0x00007698 _080EF99C: .4byte REG_BG0VOFS _080EF9A0: ldr r0, _080EF9C8 @ =0x00007698 adds r1, r0 movs r2, 0 movs r0, 0x80 lsls r0, 1 strh r0, [r1] ldr r0, _080EF9CC @ =REG_BG0VOFS strh r2, [r0] _080EF9B0: ldr r2, _080EF9D0 @ =REG_BG0CNT ldrh r0, [r2] strh r0, [r2] ldrh r0, [r2] movs r1, 0x1 orrs r0, r1 strh r0, [r2] ldr r1, _080EF9D4 @ =REG_BLDCNT movs r0, 0 strh r0, [r1] b _080EF9DC .align 2, 0 _080EF9C8: .4byte 0x00007698 _080EF9CC: .4byte REG_BG0VOFS _080EF9D0: .4byte REG_BG0CNT _080EF9D4: .4byte REG_BLDCNT _080EF9D8: movs r0, 0 b _080EF9EC _080EF9DC: ldr r0, _080EF9F0 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r2, _080EF9F4 @ =0x0000d160 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EF9EA: movs r0, 0x1 _080EF9EC: pop {r1} bx r1 .align 2, 0 _080EF9F0: .4byte gUnknown_083DFEC4 _080EF9F4: .4byte 0x0000d160 thumb_func_end sub_80EF874 thumb_func_start sub_80EF9F8 sub_80EF9F8: @ 80EF9F8 push {r4-r6,lr} sub sp, 0x14 movs r5, 0x4 ldr r0, _080EFA18 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080EFA1C @ =0x00006e2e adds r0, r1 ldrb r0, [r0] cmp r0, 0x4 bls _080EFA0E b _080EFB6A _080EFA0E: lsls r0, 2 ldr r1, _080EFA20 @ =_080EFA24 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EFA18: .4byte gUnknown_083DFEC4 _080EFA1C: .4byte 0x00006e2e _080EFA20: .4byte _080EFA24 .align 2, 0 _080EFA24: .4byte _080EFB6A .4byte _080EFA38 .4byte _080EFAC0 .4byte _080EFB4C .4byte _080EFA38 _080EFA38: ldr r0, _080EFA64 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r2, _080EFA68 @ =0x00006e18 adds r0, r2 lsls r2, r5, 19 lsrs r2, 16 movs r1, 0x1 str r1, [sp] movs r1, 0x70 movs r3, 0x78 bl sub_8072A18 adds r0, r5, 0x2 lsls r0, 16 lsrs r5, r0, 16 ldr r0, _080EFA6C @ =gLinkOpen ldrb r0, [r0] cmp r0, 0x1 bne _080EFA70 bl sub_80F1A80 b _080EFB82 .align 2, 0 _080EFA64: .4byte gUnknown_083DFEC4 _080EFA68: .4byte 0x00006e18 _080EFA6C: .4byte gLinkOpen _080EFA70: movs r4, 0 b _080EFA92 _080EFA74: lsls r2, r5, 19 lsrs r2, 16 movs r0, 0x1 str r0, [sp] adds r0, r1, 0 movs r1, 0x70 movs r3, 0x78 bl sub_8072A18 adds r0, r5, 0x2 lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 _080EFA92: cmp r4, 0x3 bhi _080EFB6A ldr r0, _080EFAB8 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r2, _080EFABC @ =0x00006e2c adds r0, r1, r2 ldrb r0, [r0] adds r2, 0x3 adds r1, r2 ldrb r1, [r1] lsls r2, r4, 24 lsrs r2, 24 bl sub_811A8CC adds r1, r0, 0 cmp r1, 0 bne _080EFA74 b _080EFB6A .align 2, 0 _080EFAB8: .4byte gUnknown_083DFEC4 _080EFABC: .4byte 0x00006e2c _080EFAC0: ldr r0, _080EFB38 @ =gUnknown_083DFEC4 ldr r4, [r0] ldr r1, _080EFB3C @ =0x00006e18 adds r0, r4, r1 lsls r2, r5, 19 lsrs r2, 16 movs r1, 0x1 str r1, [sp] movs r1, 0x70 movs r3, 0x78 bl sub_8072A18 adds r0, r5, 0x2 lsls r0, 16 lsrs r5, r0, 16 ldr r2, _080EFB40 @ =0x00006e2c adds r0, r4, r2 ldrh r1, [r0] adds r2, 0x3 adds r0, r4, r2 ldrb r0, [r0] lsls r0, 2 lsls r1, 3 adds r0, r1 ldr r1, _080EFB44 @ =0x0000cdcc adds r4, r1 adds r6, r4, r0 ldr r0, [r6] cmp r0, 0 beq _080EFB6A lsls r4, r5, 24 lsrs r4, 24 movs r0, 0xE adds r1, r4, 0 movs r2, 0xF movs r3, 0xF bl MenuFillWindowRectWithBlankTile movs r0, 0x1A adds r1, r4, 0 movs r2, 0x1C movs r3, 0xF bl MenuFillWindowRectWithBlankTile ldr r0, _080EFB48 @ =0x0600f800 ldr r3, [r6] movs r1, 0 str r1, [sp] str r1, [sp, 0x4] movs r1, 0xA str r1, [sp, 0x8] str r1, [sp, 0xC] str r1, [sp, 0x10] movs r1, 0x10 movs r2, 0x6 bl sub_8095C8C adds r0, r5, 0 adds r0, 0xB b _080EFB66 .align 2, 0 _080EFB38: .4byte gUnknown_083DFEC4 _080EFB3C: .4byte 0x00006e18 _080EFB40: .4byte 0x00006e2c _080EFB44: .4byte 0x0000cdcc _080EFB48: .4byte 0x0600f800 _080EFB4C: ldr r0, _080EFB98 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r2, _080EFB9C @ =0x00006e18 adds r0, r2 lsls r2, r5, 19 lsrs r2, 16 movs r1, 0x1 str r1, [sp] movs r1, 0x70 movs r3, 0x78 bl sub_8072A18 adds r0, r5, 0x2 _080EFB66: lsls r0, 16 lsrs r5, r0, 16 _080EFB6A: movs r0, 0 cmp r0, 0 bne _080EFB82 cmp r5, 0xF bhi _080EFB82 lsls r1, r5, 24 lsrs r1, 24 movs r0, 0xE movs r2, 0x1C movs r3, 0xF bl MenuFillWindowRectWithBlankTile _080EFB82: ldr r0, _080EFB98 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080EFBA0 @ =0x00006e2e adds r0, r1 ldrb r0, [r0] cmp r0, 0x2 bne _080EFBA4 bl sub_80EFD74 b _080EFBA8 .align 2, 0 _080EFB98: .4byte gUnknown_083DFEC4 _080EFB9C: .4byte 0x00006e18 _080EFBA0: .4byte 0x00006e2e _080EFBA4: bl sub_80EFDA0 _080EFBA8: add sp, 0x14 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80EF9F8 thumb_func_start sub_80EFBB0 sub_80EFBB0: @ 80EFBB0 push {lr} ldr r0, _080EFBC8 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080EFBCC @ =0x00006e90 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080EFBD0 movs r0, 0x8 bl sub_80EEFBC b _080EFBD6 .align 2, 0 _080EFBC8: .4byte gUnknown_083DFEC4 _080EFBCC: .4byte 0x00006e90 _080EFBD0: movs r0, 0x7 bl sub_80EEFBC _080EFBD6: pop {r0} bx r0 thumb_func_end sub_80EFBB0 thumb_func_start sub_80EFBDC sub_80EFBDC: @ 80EFBDC push {r4,lr} lsls r0, 24 movs r4, 0x1 ldr r2, _080EFBFC @ =gUnknown_083DFEC4 ldr r1, [r2] ldr r3, _080EFC00 @ =0x00007698 adds r1, r3 ldrh r3, [r1] cmp r0, 0 beq _080EFC08 cmp r3, 0xA8 bls _080EFC04 adds r0, r3, 0 subs r0, 0x8 b _080EFC10 .align 2, 0 _080EFBFC: .4byte gUnknown_083DFEC4 _080EFC00: .4byte 0x00007698 _080EFC04: movs r3, 0xA0 b _080EFC1A _080EFC08: cmp r3, 0xF7 bhi _080EFC16 adds r0, r3, 0 adds r0, 0x8 _080EFC10: lsls r0, 16 lsrs r3, r0, 16 b _080EFC1C _080EFC16: movs r3, 0x80 lsls r3, 1 _080EFC1A: movs r4, 0 _080EFC1C: ldr r0, [r2] ldr r1, _080EFC34 @ =0x00007698 adds r0, r1 strh r3, [r0] ldr r1, _080EFC38 @ =REG_BG0VOFS movs r0, 0xFF ands r3, r0 strh r3, [r1] adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080EFC34: .4byte 0x00007698 _080EFC38: .4byte REG_BG0VOFS thumb_func_end sub_80EFBDC thumb_func_start sub_80EFC3C sub_80EFC3C: @ 80EFC3C push {lr} ldr r0, _080EFC58 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r2, _080EFC5C @ =0x0000bc9a adds r1, r0, r2 movs r2, 0 strb r2, [r1] ldr r1, _080EFC60 @ =0x0000bc9b adds r0, r1 strb r2, [r0] bl sub_80EFD3C pop {r0} bx r0 .align 2, 0 _080EFC58: .4byte gUnknown_083DFEC4 _080EFC5C: .4byte 0x0000bc9a _080EFC60: .4byte 0x0000bc9b thumb_func_end sub_80EFC3C thumb_func_start sub_80EFC64 sub_80EFC64: @ 80EFC64 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 ldr r4, _080EFCD0 @ =gUnknown_083DFEC4 ldr r2, [r4] ldr r0, _080EFCD4 @ =0x0000bc9a adds r1, r2, r0 ldrb r0, [r1] cmp r0, 0xF bhi _080EFD2C ldrb r1, [r1] mov r8, r1 ldr r1, _080EFCD8 @ =0x0000bc9b adds r0, r2, r1 ldrb r7, [r0] movs r2, 0 ldr r0, _080EFCDC @ =gPokenavCityMaps mov r9, r0 adds r3, r4, 0 _080EFC8E: lsls r0, r2, 2 mov r4, r8 lsls r1, r4, 3 adds r6, r0, r1 mov r1, r9 adds r0, r6, r1 ldr r1, [r0] cmp r1, 0 beq _080EFCE8 movs r0, 0xC8 adds r5, r7, 0 muls r5, r0 ldr r4, _080EFCE0 @ =0x0000bc9c adds r5, r4 ldr r4, [r3] adds r5, r4, r5 adds r0, r1, 0 adds r1, r5, 0 str r2, [sp] str r3, [sp, 0x4] bl LZ77UnCompVram ldr r0, _080EFCE4 @ =0x0000cdcc adds r4, r0 adds r4, r6 str r5, [r4] adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 ldr r2, [sp] ldr r3, [sp, 0x4] b _080EFCF2 .align 2, 0 _080EFCD0: .4byte gUnknown_083DFEC4 _080EFCD4: .4byte 0x0000bc9a _080EFCD8: .4byte 0x0000bc9b _080EFCDC: .4byte gPokenavCityMaps _080EFCE0: .4byte 0x0000bc9c _080EFCE4: .4byte 0x0000cdcc _080EFCE8: ldr r0, [r3] ldr r4, _080EFD1C @ =0x0000cdcc adds r0, r4 adds r0, r6 str r1, [r0] _080EFCF2: adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x1 bls _080EFC8E ldr r0, _080EFD20 @ =gUnknown_083DFEC4 ldr r2, [r0] ldr r0, _080EFD24 @ =0x0000bc9a adds r1, r2, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0xF bhi _080EFD2C ldr r1, _080EFD28 @ =0x0000bc9b adds r0, r2, r1 strb r7, [r0] movs r0, 0x1 b _080EFD2E .align 2, 0 _080EFD1C: .4byte 0x0000cdcc _080EFD20: .4byte gUnknown_083DFEC4 _080EFD24: .4byte 0x0000bc9a _080EFD28: .4byte 0x0000bc9b _080EFD2C: movs r0, 0 _080EFD2E: add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80EFC64 thumb_func_start sub_80EFD3C sub_80EFD3C: @ 80EFD3C ldr r0, _080EFD60 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r2, _080EFD64 @ =0x0000769e adds r0, r1, r2 movs r2, 0 strb r2, [r0] ldr r0, _080EFD68 @ =0x0000769c adds r3, r1, r0 movs r0, 0x2F strb r0, [r3] ldr r3, _080EFD6C @ =0x0000769d adds r0, r1, r3 strb r2, [r0] ldr r0, _080EFD70 @ =0x0000769a adds r1, r0 strh r2, [r1] bx lr .align 2, 0 _080EFD60: .4byte gUnknown_083DFEC4 _080EFD64: .4byte 0x0000769e _080EFD68: .4byte 0x0000769c _080EFD6C: .4byte 0x0000769d _080EFD70: .4byte 0x0000769a thumb_func_end sub_80EFD3C thumb_func_start sub_80EFD74 sub_80EFD74: @ 80EFD74 push {lr} ldr r0, _080EFD94 @ =gUnknown_083DFEC4 ldr r2, [r0] ldr r0, _080EFD98 @ =0x0000769e adds r1, r2, r0 movs r0, 0x1 strb r0, [r1] ldr r0, _080EFD9C @ =0x0000769d adds r2, r0 ldrb r0, [r2] cmp r0, 0x1 bne _080EFD90 movs r0, 0x2 strb r0, [r2] _080EFD90: pop {r0} bx r0 .align 2, 0 _080EFD94: .4byte gUnknown_083DFEC4 _080EFD98: .4byte 0x0000769e _080EFD9C: .4byte 0x0000769d thumb_func_end sub_80EFD74 thumb_func_start sub_80EFDA0 sub_80EFDA0: @ 80EFDA0 push {r4,lr} sub sp, 0x14 ldr r0, _080EFDD4 @ =0x0600f800 ldr r3, _080EFDD8 @ =gUnknown_08E9AC2C movs r4, 0 str r4, [sp] str r4, [sp, 0x4] movs r2, 0xF str r2, [sp, 0x8] movs r1, 0x1 str r1, [sp, 0xC] str r2, [sp, 0x10] movs r1, 0xE movs r2, 0x10 bl sub_8095C8C ldr r0, _080EFDDC @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080EFDE0 @ =0x0000769e adds r0, r1 strb r4, [r0] add sp, 0x14 pop {r4} pop {r0} bx r0 .align 2, 0 _080EFDD4: .4byte 0x0600f800 _080EFDD8: .4byte gUnknown_08E9AC2C _080EFDDC: .4byte gUnknown_083DFEC4 _080EFDE0: .4byte 0x0000769e thumb_func_end sub_80EFDA0 thumb_func_start sub_80EFDE4 sub_80EFDE4: @ 80EFDE4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 ldr r0, _080EFE68 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r2, _080EFE6C @ =0x0000769c adds r0, r1, r2 ldrb r2, [r0] movs r0, 0x3C subs r0, r2 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0xF bls _080EFE06 movs r4, 0xF _080EFE06: ldr r3, _080EFE70 @ =0x0000769e adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 beq _080EFE58 ldr r0, _080EFE74 @ =0x0600f800 mov r8, r0 ldr r3, _080EFE78 @ =gUnknown_08E9ABB4 mov r9, r3 str r2, [sp] movs r5, 0 str r5, [sp, 0x4] str r4, [sp, 0x8] movs r7, 0x1 str r7, [sp, 0xC] movs r6, 0x3C str r6, [sp, 0x10] movs r1, 0xE movs r2, 0x10 bl sub_8095C8C cmp r4, 0xE bhi _080EFE58 adds r1, r4, 0 adds r1, 0xE lsls r1, 16 lsrs r1, 16 str r5, [sp] str r5, [sp, 0x4] movs r0, 0xF subs r0, r4 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x8] str r7, [sp, 0xC] str r6, [sp, 0x10] mov r0, r8 movs r2, 0x10 mov r3, r9 bl sub_8095C8C _080EFE58: add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080EFE68: .4byte gUnknown_083DFEC4 _080EFE6C: .4byte 0x0000769c _080EFE70: .4byte 0x0000769e _080EFE74: .4byte 0x0600f800 _080EFE78: .4byte gUnknown_08E9ABB4 thumb_func_end sub_80EFDE4 thumb_func_start sub_80EFE7C sub_80EFE7C: @ 80EFE7C push {r4,lr} ldr r0, _080EFE98 @ =gUnknown_083DFEC4 ldr r2, [r0] ldr r0, _080EFE9C @ =0x0000769d adds r4, r2, r0 ldrb r1, [r4] cmp r1, 0x1 beq _080EFF08 cmp r1, 0x1 bgt _080EFEA0 cmp r1, 0 beq _080EFEA6 b _080EFF2E .align 2, 0 _080EFE98: .4byte gUnknown_083DFEC4 _080EFE9C: .4byte 0x0000769d _080EFEA0: cmp r1, 0x2 beq _080EFF24 b _080EFF2E _080EFEA6: ldr r0, _080EFED4 @ =0x0000769c adds r4, r2, r0 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] lsls r0, 24 lsrs r0, 24 cmp r0, 0x3B bls _080EFEBA strb r1, [r4] _080EFEBA: ldr r1, _080EFED8 @ =0x0000769e adds r0, r2, r1 ldrb r0, [r0] bl sub_80EFDE4 ldrb r0, [r4] cmp r0, 0xF beq _080EFEE4 cmp r0, 0xF bgt _080EFEDC cmp r0, 0 beq _080EFEE4 b _080EFF2E .align 2, 0 _080EFED4: .4byte 0x0000769c _080EFED8: .4byte 0x0000769e _080EFEDC: cmp r0, 0x1E beq _080EFEE4 cmp r0, 0x2D bne _080EFF2E _080EFEE4: ldr r0, _080EFEFC @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r0, _080EFF00 @ =0x0000769d adds r2, r1, r0 movs r3, 0 movs r0, 0x1 strb r0, [r2] ldr r0, _080EFF04 @ =0x0000769a adds r1, r0 strh r3, [r1] b _080EFF2E .align 2, 0 _080EFEFC: .4byte gUnknown_083DFEC4 _080EFF00: .4byte 0x0000769d _080EFF04: .4byte 0x0000769a _080EFF08: ldr r0, _080EFF20 @ =0x0000769a adds r1, r2, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 lsrs r0, 16 cmp r0, 0x78 bls _080EFF2E movs r0, 0 strh r0, [r1] b _080EFF2C .align 2, 0 _080EFF20: .4byte 0x0000769a _080EFF24: movs r0, 0x1 bl sub_80EFDE4 movs r0, 0x1 _080EFF2C: strb r0, [r4] _080EFF2E: pop {r4} pop {r0} bx r0 thumb_func_end sub_80EFE7C thumb_func_start sub_80EFF34 sub_80EFF34: @ 80EFF34 push {lr} ldr r0, _080EFF5C @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080EFF60 @ =0x0000d160 adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080EFF64 @ =0x00006dac adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080EFF56 _080EFF4C: bl sub_80EFF68 lsls r0, 24 cmp r0, 0 bne _080EFF4C _080EFF56: pop {r0} bx r0 .align 2, 0 _080EFF5C: .4byte gUnknown_083DFEC4 _080EFF60: .4byte 0x0000d160 _080EFF64: .4byte 0x00006dac thumb_func_end sub_80EFF34 thumb_func_start sub_80EFF68 sub_80EFF68: @ 80EFF68 push {r4,lr} sub sp, 0x14 ldr r0, _080EFF88 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080EFF8C @ =0x0000d160 adds r0, r1 ldrh r0, [r0] cmp r0, 0xD bls _080EFF7C b _080F0150 _080EFF7C: lsls r0, 2 ldr r1, _080EFF90 @ =_080EFF94 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EFF88: .4byte gUnknown_083DFEC4 _080EFF8C: .4byte 0x0000d160 _080EFF90: .4byte _080EFF94 .align 2, 0 _080EFF94: .4byte _080EFFCC .4byte _080EFFE8 .4byte _080EFFF4 .4byte _080F0000 .4byte _080F000C .4byte _080F0012 .4byte _080F0018 .4byte _080F0028 .4byte _080F003C .4byte _080F005C .4byte _080F0098 .4byte _080F00AC .4byte _080F00F8 .4byte _080F0118 _080EFFCC: bl sub_80EEDE8 ldr r0, _080EFFE0 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r2, _080EFFE4 @ =0x0000d162 adds r0, r2 movs r1, 0xB strb r1, [r0] b _080F0154 .align 2, 0 _080EFFE0: .4byte gUnknown_083DFEC4 _080EFFE4: .4byte 0x0000d162 _080EFFE8: ldr r0, _080EFFF0 @ =gWindowConfig_81E7080 bl SetUpWindowConfig b _080F0154 .align 2, 0 _080EFFF0: .4byte gWindowConfig_81E7080 _080EFFF4: ldr r0, _080EFFFC @ =gWindowConfig_81E7080 bl MultistepInitMenuWindowBegin b _080F0154 .align 2, 0 _080EFFFC: .4byte gWindowConfig_81E7080 _080F0000: bl MultistepInitMenuWindowContinue cmp r0, 0 beq _080F000A b _080F0154 _080F000A: b _080F0162 _080F000C: bl MenuZeroFillScreen b _080F0154 _080F0012: bl sub_80F1614 b _080F0154 _080F0018: movs r0, 0 bl sub_80F162C lsls r0, 24 cmp r0, 0 bne _080F0026 b _080F0154 _080F0026: b _080F0162 _080F0028: ldr r0, _080F0034 @ =gPokenavConditionView_Gfx ldr r1, _080F0038 @ =0x06005000 bl LZ77UnCompVram b _080F0154 .align 2, 0 _080F0034: .4byte gPokenavConditionView_Gfx _080F0038: .4byte 0x06005000 _080F003C: ldr r0, _080F0050 @ =gUnknown_08E9AC4C ldr r1, _080F0054 @ =0x0600f000 bl LZ77UnCompVram ldr r0, _080F0058 @ =gPokenavConditionMenu2_Pal movs r1, 0x20 movs r2, 0x20 bl LoadPalette b _080F0154 .align 2, 0 _080F0050: .4byte gUnknown_08E9AC4C _080F0054: .4byte 0x0600f000 _080F0058: .4byte gPokenavConditionMenu2_Pal _080F005C: ldr r0, _080F0088 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F008C @ =0x000076aa adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080F0154 ldr r0, _080F0090 @ =0x0600f000 ldr r3, _080F0094 @ =gUnknown_083E01AC movs r1, 0 str r1, [sp] str r1, [sp, 0x4] movs r2, 0x9 str r2, [sp, 0x8] movs r1, 0x4 str r1, [sp, 0xC] str r2, [sp, 0x10] movs r1, 0 movs r2, 0x5 bl sub_8095C8C b _080F0154 .align 2, 0 _080F0088: .4byte gUnknown_083DFEC4 _080F008C: .4byte 0x000076aa _080F0090: .4byte 0x0600f000 _080F0094: .4byte gUnknown_083E01AC _080F0098: ldr r0, _080F00A4 @ =gUnknown_08E9FEB4 ldr r1, _080F00A8 @ =0x0600b800 bl LZ77UnCompVram b _080F0154 .align 2, 0 _080F00A4: .4byte gUnknown_08E9FEB4 _080F00A8: .4byte 0x0600b800 _080F00AC: ldr r0, _080F00EC @ =gUnknown_083E0254 movs r1, 0x30 movs r2, 0x20 bl LoadPalette ldr r0, _080F00F0 @ =gUnknownPalette_81E6692 movs r1, 0xB0 movs r2, 0x20 bl LoadPalette ldr r4, _080F00F4 @ =gPokenavConditionMenu2_Pal + 0x2 adds r0, r4, 0 movs r1, 0xB1 movs r2, 0x2 bl LoadPalette adds r0, r4, 0 adds r0, 0xE movs r1, 0xB5 movs r2, 0x2 bl LoadPalette adds r4, 0x1C adds r0, r4, 0 movs r1, 0xBF movs r2, 0x2 bl LoadPalette bl sub_80F01A4 b _080F0154 .align 2, 0 _080F00EC: .4byte gUnknown_083E0254 _080F00F0: .4byte gUnknownPalette_81E6692 _080F00F4: .4byte gPokenavConditionMenu2_Pal + 0x2 _080F00F8: ldr r0, _080F0110 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r2, _080F0114 @ =0x00008fe9 adds r0, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 16 lsrs r0, 16 bl sub_80F01E0 b _080F0154 .align 2, 0 _080F0110: .4byte gUnknown_083DFEC4 _080F0114: .4byte 0x00008fe9 _080F0118: ldr r1, _080F013C @ =REG_BG3CNT ldr r2, _080F0140 @ =0x00001e03 adds r0, r2, 0 strh r0, [r1] subs r1, 0x2 ldr r2, _080F0144 @ =0x00001702 adds r0, r2, 0 strh r0, [r1] adds r1, 0x44 ldr r2, _080F0148 @ =0x00000844 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080F014C @ =0x0000040b adds r0, r2, 0 strh r0, [r1] b _080F0154 .align 2, 0 _080F013C: .4byte REG_BG3CNT _080F0140: .4byte 0x00001e03 _080F0144: .4byte 0x00001702 _080F0148: .4byte 0x00000844 _080F014C: .4byte 0x0000040b _080F0150: movs r0, 0 b _080F0164 _080F0154: ldr r0, _080F016C @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r0, _080F0170 @ =0x0000d160 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080F0162: movs r0, 0x1 _080F0164: add sp, 0x14 pop {r4} pop {r1} bx r1 .align 2, 0 _080F016C: .4byte gUnknown_083DFEC4 _080F0170: .4byte 0x0000d160 thumb_func_end sub_80EFF68 thumb_func_start sub_80F0174 sub_80F0174: @ 80F0174 push {lr} lsls r0, 24 cmp r0, 0 beq _080F018E movs r0, 0x80 lsls r0, 19 ldrh r1, [r0] movs r3, 0x80 lsls r3, 3 adds r2, r3, 0 orrs r1, r2 strh r1, [r0] b _080F019A _080F018E: movs r2, 0x80 lsls r2, 19 ldrh r1, [r2] ldr r0, _080F01A0 @ =0x0000fbff ands r0, r1 strh r0, [r2] _080F019A: pop {r0} bx r0 .align 2, 0 _080F01A0: .4byte 0x0000fbff thumb_func_end sub_80F0174 thumb_func_start sub_80F01A4 sub_80F01A4: @ 80F01A4 ldr r1, _080F01CC @ =REG_WIN0H movs r0, 0xF0 strh r0, [r1] adds r1, 0x2 movs r0, 0x9B strh r0, [r1] ldr r0, _080F01D0 @ =REG_WIN0V ldr r2, _080F01D4 @ =0x00003879 adds r1, r2, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r1, _080F01D8 @ =REG_WININ ldr r2, _080F01DC @ =0x00003f3f adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0x1B strh r0, [r1] bx lr .align 2, 0 _080F01CC: .4byte REG_WIN0H _080F01D0: .4byte REG_WIN0V _080F01D4: .4byte 0x00003879 _080F01D8: .4byte REG_WININ _080F01DC: .4byte 0x00003f3f thumb_func_end sub_80F01A4 thumb_func_start sub_80F01E0 sub_80F01E0: @ 80F01E0 push {r4,r5,lr} lsls r0, 16 lsrs r4, r0, 16 ldr r1, _080F0248 @ =gUnknown_083DFEC4 lsls r0, r4, 6 ldr r2, _080F024C @ =0x00008829 adds r0, r2 ldr r5, [r1] adds r0, r5, r0 movs r1, 0xD movs r2, 0x1 bl MenuPrint ldr r1, _080F0250 @ =0x000076aa adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080F0242 lsls r0, r4, 1 adds r0, r4 lsls r0, 3 ldr r2, _080F0254 @ =0x000088e9 adds r0, r2 adds r0, r5, r0 movs r1, 0xD movs r2, 0x3 bl MenuPrint ldr r0, _080F0258 @ =0x00008788 adds r4, r5, r0 ldr r1, _080F025C @ =0x000087dc adds r0, r5, r1 movs r2, 0 ldrsh r0, [r0, r2] lsls r0, 2 adds r0, r5, r0 ldr r1, _080F0260 @ =0x0000893e adds r0, r1 ldrh r1, [r0] lsls r1, 18 lsrs r1, 23 adds r0, r4, 0 bl sub_80F443C adds r0, r4, 0 movs r1, 0x1 movs r2, 0x6 bl MenuPrint _080F0242: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F0248: .4byte gUnknown_083DFEC4 _080F024C: .4byte 0x00008829 _080F0250: .4byte 0x000076aa _080F0254: .4byte 0x000088e9 _080F0258: .4byte 0x00008788 _080F025C: .4byte 0x000087dc _080F0260: .4byte 0x0000893e thumb_func_end sub_80F01E0 thumb_func_start sub_80F0264 sub_80F0264: @ 80F0264 push {lr} ldr r1, _080F0290 @ =gUnknown_083DFEC4 ldr r2, [r1] ldr r1, _080F0294 @ =0x00000306 adds r3, r2, r1 movs r1, 0 strh r1, [r3] ldr r3, _080F0298 @ =0x000087ca adds r1, r2, r3 strb r0, [r1] ldr r0, _080F029C @ =0x00006dac adds r2, r0 ldrb r0, [r2] cmp r0, 0 bne _080F028C _080F0282: bl sub_80F02A0 lsls r0, 24 cmp r0, 0 bne _080F0282 _080F028C: pop {r0} bx r0 .align 2, 0 _080F0290: .4byte gUnknown_083DFEC4 _080F0294: .4byte 0x00000306 _080F0298: .4byte 0x000087ca _080F029C: .4byte 0x00006dac thumb_func_end sub_80F0264 thumb_func_start sub_80F02A0 sub_80F02A0: @ 80F02A0 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x18 ldr r1, _080F02C4 @ =gUnknown_083DFEC4 ldr r0, [r1] ldr r2, _080F02C8 @ =0x00000306 adds r0, r2 ldrh r0, [r0] adds r2, r1, 0 cmp r0, 0xE bls _080F02BA b _080F05FA _080F02BA: lsls r0, 2 ldr r1, _080F02CC @ =_080F02D0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F02C4: .4byte gUnknown_083DFEC4 _080F02C8: .4byte 0x00000306 _080F02CC: .4byte _080F02D0 .align 2, 0 _080F02D0: .4byte _080F030C .4byte _080F0344 .4byte _080F0350 .4byte _080F035C .4byte _080F0368 .4byte _080F036E .4byte _080F0380 .4byte _080F0394 .4byte _080F04BC .4byte _080F053C .4byte _080F0550 .4byte _080F0574 .4byte _080F057A .4byte _080F0586 .4byte _080F05BC _080F030C: bl sub_80EEDE8 ldr r0, _080F0334 @ =gUnknown_083DFEC4 ldr r1, [r0] movs r2, 0 ldr r3, _080F0338 @ =0x000087ca adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0x1 bne _080F0322 movs r2, 0x1 _080F0322: ldr r3, _080F033C @ =0x000087c8 adds r0, r1, r3 strb r2, [r0] ldr r0, _080F0340 @ =0x0000d162 adds r1, r0 movs r0, 0xB strb r0, [r1] b _080F0618 .align 2, 0 _080F0334: .4byte gUnknown_083DFEC4 _080F0338: .4byte 0x000087ca _080F033C: .4byte 0x000087c8 _080F0340: .4byte 0x0000d162 _080F0344: ldr r0, _080F034C @ =gWindowConfig_81E70D4 bl SetUpWindowConfig b _080F0618 .align 2, 0 _080F034C: .4byte gWindowConfig_81E70D4 _080F0350: ldr r0, _080F0358 @ =gWindowConfig_81E70D4 bl MultistepInitMenuWindowBegin b _080F0618 .align 2, 0 _080F0358: .4byte gWindowConfig_81E70D4 _080F035C: bl MultistepInitMenuWindowContinue cmp r0, 0 beq _080F0366 b _080F0618 _080F0366: b _080F0626 _080F0368: bl MenuZeroFillScreen b _080F0618 _080F036E: ldr r0, _080F0378 @ =gUnknown_08E9FC64 ldr r1, _080F037C @ =0x0600e800 bl LZ77UnCompVram b _080F0618 .align 2, 0 _080F0378: .4byte gUnknown_08E9FC64 _080F037C: .4byte 0x0600e800 _080F0380: ldr r0, _080F038C @ =gPokenavConditionSearch2_Gfx ldr r1, _080F0390 @ =0x06008000 bl LZ77UnCompVram b _080F0618 .align 2, 0 _080F038C: .4byte gPokenavConditionSearch2_Gfx _080F0390: .4byte 0x06008000 _080F0394: ldr r6, _080F03FC @ =gUnknown_083E02B4 adds r0, r6, 0 movs r1, 0xB0 movs r2, 0x20 bl LoadPalette adds r0, r6, 0 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette ldr r0, _080F0400 @ =gUnknown_083E0334 movs r1, 0x40 movs r2, 0x20 bl LoadPalette ldr r0, _080F0404 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F0408 @ =0x000087ca adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080F0418 ldr r4, _080F040C @ =gPokenavConditionSearch2_Pal adds r0, r4, 0 movs r1, 0x30 movs r2, 0x20 bl LoadPalette ldr r1, _080F0410 @ =gPlttBufferUnfaded ldrh r0, [r4, 0xA] strh r0, [r1] ldr r0, _080F0414 @ =gUnknownPalette_81E6692 movs r1, 0xB0 movs r2, 0x20 bl LoadPalette adds r0, r6, 0x2 movs r1, 0xB1 movs r2, 0x2 bl LoadPalette adds r0, r6, 0 adds r0, 0x10 movs r1, 0xB5 movs r2, 0x2 bl LoadPalette adds r4, 0xA adds r0, r4, 0 movs r1, 0xBF b _080F04A8 .align 2, 0 _080F03FC: .4byte gUnknown_083E02B4 _080F0400: .4byte gUnknown_083E0334 _080F0404: .4byte gUnknown_083DFEC4 _080F0408: .4byte 0x000087ca _080F040C: .4byte gPokenavConditionSearch2_Pal _080F0410: .4byte gPlttBufferUnfaded _080F0414: .4byte gUnknownPalette_81E6692 _080F0418: cmp r0, 0x1 bne _080F0464 ldr r4, _080F0458 @ =gUnknown_083E0274 adds r0, r4, 0 movs r1, 0x30 movs r2, 0x20 bl LoadPalette ldr r1, _080F045C @ =gPlttBufferUnfaded ldrh r0, [r4, 0xA] strh r0, [r1] ldr r0, _080F0460 @ =gUnknownPalette_81E6692 movs r1, 0xB0 movs r2, 0x20 bl LoadPalette adds r0, r6, 0x2 movs r1, 0xB1 movs r2, 0x2 bl LoadPalette adds r0, r6, 0 adds r0, 0x10 movs r1, 0xB5 movs r2, 0x2 bl LoadPalette adds r4, 0xA adds r0, r4, 0 movs r1, 0xBF b _080F04A8 .align 2, 0 _080F0458: .4byte gUnknown_083E0274 _080F045C: .4byte gPlttBufferUnfaded _080F0460: .4byte gUnknownPalette_81E6692 _080F0464: ldr r4, _080F04B0 @ =gUnknown_08E9F9E8 adds r0, r4, 0 movs r1, 0x30 movs r2, 0x20 bl LoadPalette ldr r1, _080F04B4 @ =gPlttBufferUnfaded adds r5, r4, 0 adds r5, 0xA ldrh r0, [r4, 0xA] strh r0, [r1] ldr r0, _080F04B8 @ =gUnknown_083E0314 movs r1, 0x50 movs r2, 0x20 bl LoadPalette adds r0, r6, 0x2 movs r1, 0xB1 movs r2, 0x2 bl LoadPalette adds r0, r6, 0 adds r0, 0x10 movs r1, 0xB5 movs r2, 0x2 bl LoadPalette adds r0, r5, 0 movs r1, 0xBF movs r2, 0x2 bl LoadPalette adds r0, r5, 0 movs r1, 0x5F _080F04A8: movs r2, 0x2 bl LoadPalette b _080F0618 .align 2, 0 _080F04B0: .4byte gUnknown_08E9F9E8 _080F04B4: .4byte gPlttBufferUnfaded _080F04B8: .4byte gUnknown_083E0314 _080F04BC: ldr r0, _080F04E8 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r2, _080F04EC @ =0x000087ca adds r0, r2 ldrb r0, [r0] cmp r0, 0x2 beq _080F04F8 ldr r0, _080F04F0 @ =0x0600e800 ldr r3, _080F04F4 @ =gUnknown_08E9FD1C movs r1, 0 str r1, [sp] str r1, [sp, 0x4] movs r2, 0x9 str r2, [sp, 0x8] movs r1, 0x4 str r1, [sp, 0xC] str r2, [sp, 0x10] movs r1, 0 movs r2, 0x5 bl sub_8095C8C b _080F0618 .align 2, 0 _080F04E8: .4byte gUnknown_083DFEC4 _080F04EC: .4byte 0x000087ca _080F04F0: .4byte 0x0600e800 _080F04F4: .4byte gUnknown_08E9FD1C _080F04F8: ldr r3, _080F0530 @ =0x0600e800 mov r8, r3 ldr r3, _080F0534 @ =gUnknown_08E9FE54 movs r4, 0 str r4, [sp] str r4, [sp, 0x4] movs r5, 0xC str r5, [sp, 0x8] movs r6, 0xA str r6, [sp, 0xC] str r5, [sp, 0x10] mov r0, r8 movs r1, 0 movs r2, 0x4 bl sub_8095C8C ldr r3, _080F0538 @ =gUnknown_08E9FD64 str r4, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] str r6, [sp, 0xC] str r5, [sp, 0x10] mov r0, r8 movs r1, 0 movs r2, 0x8 bl sub_8095C8C b _080F0618 .align 2, 0 _080F0530: .4byte 0x0600e800 _080F0534: .4byte gUnknown_08E9FE54 _080F0538: .4byte gUnknown_08E9FD64 _080F053C: ldr r0, _080F0548 @ =gUnknown_083E0354 ldr r1, _080F054C @ =0x06005000 bl LZ77UnCompVram b _080F0618 .align 2, 0 _080F0548: .4byte gUnknown_083E0354 _080F054C: .4byte 0x06005000 _080F0550: ldr r2, _080F0568 @ =0x0600f800 add r1, sp, 0x14 movs r0, 0 strh r0, [r1] ldr r0, _080F056C @ =0x040000d4 str r1, [r0] str r2, [r0, 0x4] ldr r1, _080F0570 @ =0x81000400 str r1, [r0, 0x8] ldr r0, [r0, 0x8] b _080F0618 .align 2, 0 _080F0568: .4byte 0x0600f800 _080F056C: .4byte 0x040000d4 _080F0570: .4byte 0x81000400 _080F0574: bl sub_80F0900 b _080F0618 _080F057A: bl sub_80F0944 lsls r0, 24 cmp r0, 0 beq _080F0618 b _080F0626 _080F0586: ldr r0, _080F059C @ =gUnknown_083DFEC4 ldr r4, [r0] ldr r1, _080F05A0 @ =0x000087ca adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0x2 beq _080F05A4 bl ShowMapNamePopUpWindow b _080F0618 .align 2, 0 _080F059C: .4byte gUnknown_083DFEC4 _080F05A0: .4byte 0x000087ca _080F05A4: movs r0, 0 bl sub_80F081C ldr r2, _080F05B8 @ =0x0000876e adds r0, r4, r2 ldrb r0, [r0] bl sub_80F0FFC b _080F0618 .align 2, 0 _080F05B8: .4byte 0x0000876e _080F05BC: ldr r1, _080F0600 @ =REG_BG2CNT ldr r3, _080F0604 @ =0x00001d0a adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 adds r3, 0xF9 adds r0, r3, 0 strh r0, [r1] subs r1, 0x6 adds r3, 0xFE adds r0, r3, 0 strh r0, [r1] adds r1, 0x16 movs r0, 0xF8 strh r0, [r1] ldr r1, [r2] ldr r0, _080F0608 @ =0x00008776 adds r2, r1, r0 movs r3, 0 movs r0, 0xF8 strh r0, [r2] ldr r2, _080F060C @ =0x00008778 adds r0, r1, r2 strh r3, [r0] ldr r0, _080F0610 @ =REG_BLDCNT strh r3, [r0] ldr r3, _080F0614 @ =0x0000d160 adds r1, r3 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080F05FA: movs r0, 0 b _080F0628 .align 2, 0 _080F0600: .4byte REG_BG2CNT _080F0604: .4byte 0x00001d0a _080F0608: .4byte 0x00008776 _080F060C: .4byte 0x00008778 _080F0610: .4byte REG_BLDCNT _080F0614: .4byte 0x0000d160 _080F0618: ldr r0, _080F0634 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r0, _080F0638 @ =0x00000306 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080F0626: movs r0, 0x1 _080F0628: add sp, 0x18 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080F0634: .4byte gUnknown_083DFEC4 _080F0638: .4byte 0x00000306 thumb_func_end sub_80F02A0 thumb_func_start sub_80F063C sub_80F063C: @ 80F063C push {r4-r7,lr} lsls r0, 16 ldr r3, _080F0664 @ =gUnknown_083DFEC4 ldr r2, [r3] lsrs r5, r0, 16 asrs r4, r0, 16 lsls r1, r4, 4 ldr r6, _080F0668 @ =0x0000877c adds r0, r2, r6 strh r1, [r0] adds r7, r3, 0 cmp r4, 0x1 beq _080F065E movs r0, 0x1 negs r0, r0 cmp r4, r0 bne _080F066C _080F065E: movs r1, 0x4 b _080F066E .align 2, 0 _080F0664: .4byte gUnknown_083DFEC4 _080F0668: .4byte 0x0000877c _080F066C: movs r1, 0x8 _080F066E: ldr r3, _080F06C0 @ =0x0000877a adds r0, r2, r3 strh r1, [r0] lsls r0, r5, 16 asrs r3, r0, 16 cmp r3, 0 bge _080F06CC ldr r4, [r7] ldr r6, _080F06C0 @ =0x0000877a adds r1, r4, r6 movs r2, 0 ldrsh r0, [r1, r2] negs r0, r0 strh r0, [r1] subs r6, 0x2 adds r1, r4, r6 lsls r0, r3, 1 ldrh r1, [r1] adds r0, r1 lsls r0, 16 lsrs r6, r0, 16 ldr r1, _080F06C4 @ =0x00008770 adds r0, r4, r1 ldrh r0, [r0] adds r0, r3, r0 lsls r0, 16 lsrs r2, r0, 16 asrs r0, 16 cmp r0, 0 bge _080F06B8 ldr r2, _080F06C8 @ =0x00008774 adds r1, r4, r2 adds r0, 0x1 ldrh r1, [r1] adds r0, r1 lsls r0, 16 lsrs r2, r0, 16 _080F06B8: negs r0, r3 lsls r0, 16 lsrs r5, r0, 16 b _080F06E6 .align 2, 0 _080F06C0: .4byte 0x0000877a _080F06C4: .4byte 0x00008770 _080F06C8: .4byte 0x00008774 _080F06CC: ldr r1, [r7] ldr r3, _080F070C @ =0x00008778 adds r0, r1, r3 ldrh r0, [r0] adds r0, 0x10 lsls r0, 16 lsrs r6, r0, 16 ldr r0, _080F0710 @ =0x00008772 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 lsls r0, 16 lsrs r2, r0, 16 _080F06E6: ldr r0, [r7] ldr r1, _080F0714 @ =0x00008774 adds r0, r1 lsls r1, r2, 16 asrs r1, 16 movs r3, 0 ldrsh r0, [r0, r3] cmp r1, r0 ble _080F06FA movs r2, 0 _080F06FA: movs r1, 0x1F adds r0, r2, 0 ands r1, r6 adds r2, r5, 0 bl sub_80F0954 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F070C: .4byte 0x00008778 _080F0710: .4byte 0x00008772 _080F0714: .4byte 0x00008774 thumb_func_end sub_80F063C thumb_func_start sub_80F0718 sub_80F0718: @ 80F0718 push {r4,r5,lr} bl sub_80F098C lsls r0, 24 cmp r0, 0 bne _080F0790 ldr r0, _080F073C @ =gUnknown_083DFEC4 ldr r4, [r0] ldr r0, _080F0740 @ =0x0000877c adds r3, r4, r0 ldrh r2, [r3] movs r1, 0 ldrsh r0, [r3, r1] cmp r0, 0 bne _080F0744 movs r0, 0 b _080F0792 .align 2, 0 _080F073C: .4byte gUnknown_083DFEC4 _080F0740: .4byte 0x0000877c _080F0744: ldr r0, _080F0780 @ =0x0000877a adds r1, r4, r0 ldrh r0, [r1] subs r0, r2, r0 strh r0, [r3] ldr r0, _080F0784 @ =0x00008776 adds r2, r4, r0 ldrh r0, [r1] ldrh r1, [r2] adds r0, r1 movs r5, 0xFF ands r0, r5 strh r0, [r2] ldr r1, _080F0788 @ =REG_BG3VOFS strh r0, [r1] movs r1, 0 ldrsh r0, [r3, r1] cmp r0, 0 bne _080F0790 movs r1, 0 ldrsh r0, [r2, r1] adds r0, 0x8 ands r0, r5 asrs r1, r0, 3 ldr r2, _080F078C @ =0x00008778 adds r0, r4, r2 strh r1, [r0] movs r0, 0 b _080F0792 .align 2, 0 _080F0780: .4byte 0x0000877a _080F0784: .4byte 0x00008776 _080F0788: .4byte REG_BG3VOFS _080F078C: .4byte 0x00008778 _080F0790: movs r0, 0x1 _080F0792: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80F0718 thumb_func_start ShowMapNamePopUpWindow ShowMapNamePopUpWindow: @ 80F0798 push {lr} ldr r0, _080F07B0 @ =gUnknown_083DFEC4 ldr r2, [r0] ldr r1, _080F07B4 @ =0x000087ca adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 beq _080F07B8 cmp r0, 0x1 beq _080F07E0 b _080F080A .align 2, 0 _080F07B0: .4byte gUnknown_083DFEC4 _080F07B4: .4byte 0x000087ca _080F07B8: ldr r3, _080F07D8 @ =0x00008788 adds r0, r2, r3 subs r3, 0x1A adds r1, r2, r3 movs r3, 0 ldrsh r1, [r1, r3] lsls r1, 2 adds r1, r2, r1 ldr r2, _080F07DC @ =0x0000893e adds r1, r2 ldrh r1, [r1] lsls r1, 18 lsrs r1, 23 bl sub_80F443C b _080F07F4 .align 2, 0 _080F07D8: .4byte 0x00008788 _080F07DC: .4byte 0x0000893e _080F07E0: ldr r3, _080F0810 @ =0x00008788 adds r0, r2, r3 subs r3, 0x1A adds r1, r2, r3 ldrh r1, [r1] adds r1, 0x1 lsls r1, 16 lsrs r1, 16 bl sub_80F445C _080F07F4: ldr r0, _080F0814 @ =gWindowConfig_81E710C bl BasicInitMenuWindow ldr r0, _080F0818 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F0810 @ =0x00008788 adds r0, r1 movs r1, 0x1 movs r2, 0x6 bl MenuPrint _080F080A: pop {r0} bx r0 .align 2, 0 _080F0810: .4byte 0x00008788 _080F0814: .4byte gWindowConfig_81E710C _080F0818: .4byte gUnknown_083DFEC4 thumb_func_end ShowMapNamePopUpWindow thumb_func_start sub_80F081C sub_80F081C: @ 80F081C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080F0838 @ =gWindowConfig_81E710C bl BasicInitMenuWindow cmp r5, 0x4 bhi _080F08C6 lsls r0, r5, 2 ldr r1, _080F083C @ =_080F0840 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F0838: .4byte gWindowConfig_81E710C _080F083C: .4byte _080F0840 .align 2, 0 _080F0840: .4byte _080F0854 .4byte _080F0854 .4byte _080F0862 .4byte _080F088C .4byte _080F089A _080F0854: ldr r0, _080F08CC @ =gOtherText_NumberRegistered movs r1, 0xA movs r2, 0x9 bl sub_8072B4C cmp r5, 0 bne _080F08C6 _080F0862: ldr r0, _080F08D0 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F08D4 @ =0x00008788 adds r4, r0, r1 ldr r2, _080F08D8 @ =0x00008774 adds r0, r2 movs r2, 0 ldrsh r1, [r0, r2] adds r1, 0x1 adds r0, r4, 0 movs r2, 0x1 movs r3, 0x5 bl ConvertIntToDecimalStringN adds r0, r4, 0 movs r1, 0xA movs r2, 0xB bl sub_8072B4C cmp r5, 0 bne _080F08C6 _080F088C: ldr r0, _080F08DC @ =gOtherText_NumberBattles movs r1, 0xA movs r2, 0xD bl sub_8072B4C cmp r5, 0 bne _080F08C6 _080F089A: movs r0, 0x9 bl sub_8053108 adds r1, r0, 0 ldr r0, _080F08E0 @ =0x0001869f cmp r1, r0 bls _080F08AA adds r1, r0, 0 _080F08AA: ldr r0, _080F08D0 @ =gUnknown_083DFEC4 ldr r4, [r0] ldr r0, _080F08D4 @ =0x00008788 adds r4, r0 adds r0, r4, 0 movs r2, 0x1 movs r3, 0x5 bl ConvertIntToDecimalStringN adds r0, r4, 0 movs r1, 0xA movs r2, 0xF bl sub_8072B4C _080F08C6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F08CC: .4byte gOtherText_NumberRegistered _080F08D0: .4byte gUnknown_083DFEC4 _080F08D4: .4byte 0x00008788 _080F08D8: .4byte 0x00008774 _080F08DC: .4byte gOtherText_NumberBattles _080F08E0: .4byte 0x0001869f thumb_func_end sub_80F081C thumb_func_start sub_80F08E4 sub_80F08E4: @ 80F08E4 push {lr} ldr r0, _080F08FC @ =gWindowConfig_81E710C bl BasicInitMenuWindow movs r0, 0 movs r1, 0x9 movs r2, 0xB movs r3, 0x10 bl MenuZeroFillWindowRect pop {r0} bx r0 .align 2, 0 _080F08FC: .4byte gWindowConfig_81E710C thumb_func_end sub_80F08E4 thumb_func_start sub_80F0900 sub_80F0900: @ 80F0900 push {r4,r5,lr} ldr r0, _080F093C @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r2, _080F0940 @ =0x00008772 adds r1, r0, r2 subs r2, 0x2 adds r5, r0, r2 ldrh r0, [r1] ldrh r1, [r5] subs r0, r1 adds r0, 0x1 lsls r4, r0, 16 asrs r0, r4, 16 cmp r0, 0x7 bgt _080F092A movs r0, 0xC movs r1, 0x1 movs r2, 0x1F movs r3, 0xF bl MenuZeroFillWindowRect _080F092A: ldrh r0, [r5] lsrs r2, r4, 16 movs r1, 0 bl sub_80F0954 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F093C: .4byte gUnknown_083DFEC4 _080F0940: .4byte 0x00008772 thumb_func_end sub_80F0900 thumb_func_start sub_80F0944 sub_80F0944: @ 80F0944 push {lr} bl sub_80F098C lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_80F0944 thumb_func_start sub_80F0954 sub_80F0954: @ 80F0954 push {r4,r5,lr} ldr r3, _080F097C @ =gUnknown_083DFEC4 ldr r3, [r3] ldr r5, _080F0980 @ =0x0000877e adds r4, r3, r5 movs r5, 0 strh r0, [r4] ldr r4, _080F0984 @ =0x00008780 adds r0, r3, r4 strh r1, [r0] ldr r1, _080F0988 @ =0x00008784 adds r0, r3, r1 strh r2, [r0] adds r4, 0x6 adds r3, r4 strh r5, [r3] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F097C: .4byte gUnknown_083DFEC4 _080F0980: .4byte 0x0000877e _080F0984: .4byte 0x00008780 _080F0988: .4byte 0x00008784 thumb_func_end sub_80F0954 thumb_func_start sub_80F098C sub_80F098C: @ 80F098C push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _080F09A4 @ =gUnknown_083DFEC4 ldr r6, [r0] ldr r0, _080F09A8 @ =0x00008784 adds r7, r6, r0 ldrh r0, [r7] cmp r0, 0 bne _080F09AC _080F09A0: movs r0, 0 b _080F0A02 .align 2, 0 _080F09A4: .4byte gUnknown_083DFEC4 _080F09A8: .4byte 0x00008784 _080F09AC: movs r1, 0 mov r8, r1 ldr r1, _080F0A0C @ =gUnknown_083E3270 ldr r2, _080F0A10 @ =0x000087ca adds r0, r6, r2 ldrb r2, [r0] lsls r2, 2 adds r2, r1 ldr r0, _080F0A14 @ =0x0000877e adds r4, r6, r0 ldrh r0, [r4] ldr r1, _080F0A18 @ =0x00008780 adds r5, r6, r1 ldrh r1, [r5] ldr r2, [r2] bl _call_via_r2 ldrh r0, [r7] subs r0, 0x1 strh r0, [r7] ldr r2, _080F0A1C @ =0x0000ffff adds r1, r2, 0 lsls r0, 16 cmp r0, 0 beq _080F09A0 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] ands r0, r1 ldr r2, _080F0A20 @ =0x00008774 adds r1, r6, r2 movs r2, 0 ldrsh r1, [r1, r2] cmp r0, r1 ble _080F09F6 mov r0, r8 strh r0, [r4] _080F09F6: ldrh r0, [r5] adds r0, 0x2 movs r1, 0x1F ands r0, r1 strh r0, [r5] movs r0, 0x1 _080F0A02: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080F0A0C: .4byte gUnknown_083E3270 _080F0A10: .4byte 0x000087ca _080F0A14: .4byte 0x0000877e _080F0A18: .4byte 0x00008780 _080F0A1C: .4byte 0x0000ffff _080F0A20: .4byte 0x00008774 thumb_func_end sub_80F098C thumb_func_start sub_80F0A24 sub_80F0A24: @ 80F0A24 push {r4,r5,lr} lsls r0, 16 lsrs r3, r0, 16 lsls r1, 16 lsrs r5, r1, 16 ldr r0, _080F0A64 @ =gUnknown_083DFEC4 ldr r4, [r0] ldr r1, _080F0A68 @ =0x000087c8 adds r0, r4, r1 ldrb r0, [r0] movs r2, 0x1 cmp r0, 0 bne _080F0A40 movs r2, 0x2 _080F0A40: ldr r0, _080F0A6C @ =0x00008788 adds r4, r0 adds r0, r4, 0 adds r1, r3, 0 bl sub_80F4428 ldr r0, _080F0A70 @ =gWindowConfig_81E70D4 bl BasicInitMenuWindow lsls r2, r5, 24 lsrs r2, 24 adds r0, r4, 0 movs r1, 0xD bl MenuPrint pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F0A64: .4byte gUnknown_083DFEC4 _080F0A68: .4byte 0x000087c8 _080F0A6C: .4byte 0x00008788 _080F0A70: .4byte gWindowConfig_81E70D4 thumb_func_end sub_80F0A24 thumb_func_start sub_80F0A74 sub_80F0A74: @ 80F0A74 push {r4-r7,lr} sub sp, 0x14 lsls r0, 16 lsrs r6, r0, 16 lsls r1, 16 lsrs r7, r1, 16 ldr r0, _080F0ADC @ =gUnknown_083DFEC4 ldr r5, [r0] ldr r0, _080F0AE0 @ =0x00008788 adds r4, r5, r0 adds r0, r4, 0 adds r1, r6, 0 bl sub_80F700C movs r0, 0x1F ands r7, r0 ldr r0, _080F0AE4 @ =gWindowConfig_81E70D4 bl BasicInitMenuWindow lsls r2, r7, 3 adds r0, r4, 0 movs r1, 0x61 movs r3, 0 bl MenuPrint_PixelCoords ldr r1, _080F0AE8 @ =0x0000d158 adds r0, r5, r1 ldrh r0, [r0] cmp r6, r0 bcs _080F0AF8 lsls r0, r6, 3 adds r0, r5, r0 ldr r1, _080F0AEC @ =0x0000ceed adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _080F0AF8 ldr r0, _080F0AF0 @ =0x0600f000 ldr r3, _080F0AF4 @ =gUnknown_083E039C movs r1, 0 str r1, [sp] str r1, [sp, 0x4] movs r2, 0x1 str r2, [sp, 0x8] movs r1, 0x2 str r1, [sp, 0xC] str r2, [sp, 0x10] movs r1, 0x1D adds r2, r7, 0 bl sub_8095C8C b _080F0B14 .align 2, 0 _080F0ADC: .4byte gUnknown_083DFEC4 _080F0AE0: .4byte 0x00008788 _080F0AE4: .4byte gWindowConfig_81E70D4 _080F0AE8: .4byte 0x0000d158 _080F0AEC: .4byte 0x0000ceed _080F0AF0: .4byte 0x0600f000 _080F0AF4: .4byte gUnknown_083E039C _080F0AF8: ldr r0, _080F0B1C @ =0x0600f000 ldr r3, _080F0B20 @ =gUnknown_083E03A0 movs r1, 0 str r1, [sp] str r1, [sp, 0x4] movs r2, 0x1 str r2, [sp, 0x8] movs r1, 0x2 str r1, [sp, 0xC] str r2, [sp, 0x10] movs r1, 0x1D adds r2, r7, 0 bl sub_8095C8C _080F0B14: add sp, 0x14 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F0B1C: .4byte 0x0600f000 _080F0B20: .4byte gUnknown_083E03A0 thumb_func_end sub_80F0A74 thumb_func_start sub_80F0B24 sub_80F0B24: @ 80F0B24 ldr r0, _080F0B38 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r2, _080F0B3C @ =0x0000d15c adds r1, r0, r2 movs r2, 0 strh r2, [r1] ldr r1, _080F0B40 @ =0x00000306 adds r0, r1 strh r2, [r0] bx lr .align 2, 0 _080F0B38: .4byte gUnknown_083DFEC4 _080F0B3C: .4byte 0x0000d15c _080F0B40: .4byte 0x00000306 thumb_func_end sub_80F0B24 thumb_func_start sub_80F0B44 sub_80F0B44: @ 80F0B44 push {r4-r6,lr} ldr r0, _080F0B58 @ =gUnknown_083DFEC4 ldr r5, [r0] ldr r0, _080F0B5C @ =0x0000d15c adds r6, r5, r0 ldrh r0, [r6] cmp r0, 0x8 bls _080F0B60 movs r0, 0 b _080F0C22 .align 2, 0 _080F0B58: .4byte gUnknown_083DFEC4 _080F0B5C: .4byte 0x0000d15c _080F0B60: ldr r0, _080F0BBC @ =0x00000306 adds r1, r5, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _080F0C20 movs r0, 0 strh r0, [r1] ldrh r0, [r6] cmp r0, 0x7 bhi _080F0BCC ldr r0, _080F0BC0 @ =0x00008778 adds r1, r5, r0 ldrh r2, [r6] lsls r0, r2, 1 ldrh r1, [r1] adds r4, r0, r1 movs r0, 0x1F ands r4, r0 ldr r1, _080F0BC4 @ =0x0000876c adds r0, r5, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r2, r0 beq _080F0BAA ldr r0, _080F0BC8 @ =gWindowConfig_81E70D4 bl BasicInitMenuWindow adds r1, r4, 0 adds r3, r1, 0x1 movs r0, 0xC movs r2, 0x1F bl MenuZeroFillWindowRect _080F0BAA: ldrh r0, [r6] cmp r0, 0 bne _080F0BB4 bl sub_80F08E4 _080F0BB4: ldrh r0, [r6] adds r0, 0x1 strh r0, [r6] b _080F0C20 .align 2, 0 _080F0BBC: .4byte 0x00000306 _080F0BC0: .4byte 0x00008778 _080F0BC4: .4byte 0x0000876c _080F0BC8: .4byte gWindowConfig_81E70D4 _080F0BCC: ldr r0, _080F0C10 @ =gWindowConfig_81E70D4 bl BasicInitMenuWindow ldr r1, _080F0C14 @ =0x00008778 adds r0, r5, r1 ldrh r0, [r0] adds r4, r0, 0 adds r4, 0x10 movs r0, 0x1F ands r4, r0 movs r5, 0 _080F0BE2: adds r3, r4, 0x1 movs r0, 0xC adds r1, r4, 0 movs r2, 0x1F bl MenuZeroFillWindowRect adds r4, 0x2 movs r0, 0x1F ands r4, r0 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x7 bls _080F0BE2 ldr r0, _080F0C18 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r0, _080F0C1C @ =0x0000d15c adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] movs r0, 0 b _080F0C22 .align 2, 0 _080F0C10: .4byte gWindowConfig_81E70D4 _080F0C14: .4byte 0x00008778 _080F0C18: .4byte gUnknown_083DFEC4 _080F0C1C: .4byte 0x0000d15c _080F0C20: movs r0, 0x1 _080F0C22: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80F0B44 thumb_func_start sub_80F0C28 sub_80F0C28: @ 80F0C28 ldr r0, _080F0C3C @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r2, _080F0C40 @ =0x0000d15c adds r1, r0, r2 movs r2, 0 strh r2, [r1] ldr r1, _080F0C44 @ =0x00000306 adds r0, r1 strh r2, [r0] bx lr .align 2, 0 _080F0C3C: .4byte gUnknown_083DFEC4 _080F0C40: .4byte 0x0000d15c _080F0C44: .4byte 0x00000306 thumb_func_end sub_80F0C28 thumb_func_start sub_80F0C48 sub_80F0C48: @ 80F0C48 push {r4-r6,lr} ldr r0, _080F0C5C @ =gUnknown_083DFEC4 ldr r4, [r0] ldr r0, _080F0C60 @ =0x0000d15c adds r5, r4, r0 ldrh r0, [r5] cmp r0, 0x7 bls _080F0C64 movs r0, 0 b _080F0CD2 .align 2, 0 _080F0C5C: .4byte gUnknown_083DFEC4 _080F0C60: .4byte 0x0000d15c _080F0C64: ldr r2, _080F0CBC @ =0x00000306 adds r1, r4, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] ldr r2, _080F0CC0 @ =0x0000ffff adds r6, r2, 0 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _080F0CD0 movs r0, 0 strh r0, [r1] ldr r0, _080F0CC4 @ =gWindowConfig_81E70D4 bl BasicInitMenuWindow ldr r0, _080F0CC8 @ =0x00008770 adds r1, r4, r0 ldrh r0, [r5] ldrh r1, [r1] adds r0, r1 lsls r0, 16 lsrs r0, 16 ldr r1, _080F0CCC @ =0x00008778 adds r2, r4, r1 ldrh r1, [r5] lsls r1, 1 ldrh r2, [r2] adds r1, r2 lsls r1, 16 lsrs r1, 16 bl sub_80F0A74 ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] ands r0, r6 cmp r0, 0x7 bls _080F0CD0 movs r0, 0 bl sub_80F081C movs r0, 0 b _080F0CD2 .align 2, 0 _080F0CBC: .4byte 0x00000306 _080F0CC0: .4byte 0x0000ffff _080F0CC4: .4byte gWindowConfig_81E70D4 _080F0CC8: .4byte 0x00008770 _080F0CCC: .4byte 0x00008778 _080F0CD0: movs r0, 0x1 _080F0CD2: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80F0C48 thumb_func_start sub_80F0CD8 sub_80F0CD8: @ 80F0CD8 push {r4,r5,lr} ldr r4, _080F0D40 @ =gUnknown_083DFEC4 ldr r1, [r4] ldr r2, _080F0D44 @ =0x00000306 adds r0, r1, r2 movs r2, 0 strh r2, [r0] ldr r3, _080F0D48 @ =0x0000d15c adds r0, r1, r3 strh r2, [r0] ldr r2, _080F0D4C @ =0x0000876e adds r0, r1, r2 movs r3, 0 ldrsh r0, [r0, r3] lsls r0, 3 adds r0, r1, r0 ldr r2, _080F0D50 @ =0x0000ceec adds r0, r2 ldrb r0, [r0] ldr r3, _080F0D54 @ =0x0000d110 adds r1, r3 ldr r2, _080F0D58 @ =gTrainerEyeDescriptions lsls r0, 2 adds r0, r2 ldr r0, [r0] str r0, [r1] adds r2, r0, 0 movs r1, 0 adds r5, r4, 0 adds r4, r3, 0 _080F0D14: ldrb r0, [r2] adds r3, r1, 0x1 cmp r0, 0xFF beq _080F0D24 _080F0D1C: adds r2, 0x1 ldrb r0, [r2] cmp r0, 0xFF bne _080F0D1C _080F0D24: ldr r0, [r5] lsls r1, r3, 2 adds r0, r4 adds r0, r1 adds r2, 0x1 str r2, [r0] lsls r0, r3, 16 lsrs r1, r0, 16 cmp r1, 0x2 bls _080F0D14 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F0D40: .4byte gUnknown_083DFEC4 _080F0D44: .4byte 0x00000306 _080F0D48: .4byte 0x0000d15c _080F0D4C: .4byte 0x0000876e _080F0D50: .4byte 0x0000ceec _080F0D54: .4byte 0x0000d110 _080F0D58: .4byte gTrainerEyeDescriptions thumb_func_end sub_80F0CD8 thumb_func_start sub_80F0D5C sub_80F0D5C: @ 80F0D5C push {r4,r5,lr} ldr r0, _080F0D70 @ =gUnknown_083DFEC4 ldr r4, [r0] ldr r0, _080F0D74 @ =0x0000d15c adds r5, r4, r0 ldrh r0, [r5] cmp r0, 0x7 bne _080F0D78 _080F0D6C: movs r0, 0 b _080F0EB0 .align 2, 0 _080F0D70: .4byte gUnknown_083DFEC4 _080F0D74: .4byte 0x0000d15c _080F0D78: ldr r0, _080F0DB8 @ =0x00000306 adds r1, r4, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _080F0D8C b _080F0EAE _080F0D8C: movs r0, 0 strh r0, [r1] ldr r0, _080F0DBC @ =gWindowConfig_81E70D4 bl BasicInitMenuWindow ldr r0, _080F0DC0 @ =0x00008778 adds r1, r4, r0 ldrh r3, [r5] lsls r0, r3, 1 adds r0, 0x2 ldrh r1, [r1] adds r5, r0, r1 movs r0, 0x1F ands r5, r0 cmp r3, 0x6 bhi _080F0D6C lsls r0, r3, 2 ldr r1, _080F0DC4 @ =_080F0DC8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F0DB8: .4byte 0x00000306 _080F0DBC: .4byte gWindowConfig_81E70D4 _080F0DC0: .4byte 0x00008778 _080F0DC4: .4byte _080F0DC8 .align 2, 0 _080F0DC8: .4byte _080F0DE4 .4byte _080F0DF0 .4byte _080F0E08 .4byte _080F0E14 .4byte _080F0E2C .4byte _080F0E38 .4byte _080F0E6C _080F0DE4: ldr r0, _080F0DEC @ =gOtherText_Strategy lsls r2, r5, 3 b _080F0E54 .align 2, 0 _080F0DEC: .4byte gOtherText_Strategy _080F0DF0: ldr r0, _080F0DFC @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F0E00 @ =0x00008788 adds r4, r0, r1 ldr r1, _080F0E04 @ =0x0000d110 b _080F0E42 .align 2, 0 _080F0DFC: .4byte gUnknown_083DFEC4 _080F0E00: .4byte 0x00008788 _080F0E04: .4byte 0x0000d110 _080F0E08: ldr r0, _080F0E10 @ =gOtherText_TrainersPokemon lsls r2, r5, 3 b _080F0E54 .align 2, 0 _080F0E10: .4byte gOtherText_TrainersPokemon _080F0E14: ldr r0, _080F0E20 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F0E24 @ =0x00008788 adds r4, r0, r1 ldr r1, _080F0E28 @ =0x0000d114 b _080F0E42 .align 2, 0 _080F0E20: .4byte gUnknown_083DFEC4 _080F0E24: .4byte 0x00008788 _080F0E28: .4byte 0x0000d114 _080F0E2C: ldr r0, _080F0E34 @ =gOtherText_SelfIntroduction lsls r2, r5, 3 b _080F0E54 .align 2, 0 _080F0E34: .4byte gOtherText_SelfIntroduction _080F0E38: ldr r0, _080F0E60 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F0E64 @ =0x00008788 adds r4, r0, r1 ldr r1, _080F0E68 @ =0x0000d118 _080F0E42: adds r0, r1 ldr r1, [r0] adds r0, r4, 0 movs r2, 0x88 movs r3, 0 bl sub_8072C74 lsls r2, r5, 3 adds r0, r4, 0 _080F0E54: movs r1, 0x61 movs r3, 0 bl MenuPrint_PixelCoords b _080F0EA0 .align 2, 0 _080F0E60: .4byte gUnknown_083DFEC4 _080F0E64: .4byte 0x00008788 _080F0E68: .4byte 0x0000d118 _080F0E6C: ldr r0, _080F0E94 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F0E98 @ =0x00008788 adds r4, r0, r1 ldr r1, _080F0E9C @ =0x0000d11c adds r0, r1 ldr r1, [r0] adds r0, r4, 0 movs r2, 0x88 movs r3, 0 bl sub_8072C74 lsls r2, r5, 3 adds r0, r4, 0 movs r1, 0x61 movs r3, 0 bl MenuPrint_PixelCoords b _080F0D6C .align 2, 0 _080F0E94: .4byte gUnknown_083DFEC4 _080F0E98: .4byte 0x00008788 _080F0E9C: .4byte 0x0000d11c _080F0EA0: ldr r0, _080F0EB8 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r0, _080F0EBC @ =0x0000d15c adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080F0EAE: movs r0, 0x1 _080F0EB0: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080F0EB8: .4byte gUnknown_083DFEC4 _080F0EBC: .4byte 0x0000d15c thumb_func_end sub_80F0D5C thumb_func_start sub_80F0EC0 sub_80F0EC0: @ 80F0EC0 push {lr} ldr r0, _080F0EE4 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r2, _080F0EE8 @ =0x00000306 adds r1, r0, r2 movs r2, 0 strh r2, [r1] ldr r3, _080F0EEC @ =0x0000d15c adds r1, r0, r3 strh r2, [r1] ldr r1, _080F0EF0 @ =0x00008788 adds r0, r1 movs r1, 0 movs r2, 0x10 bl StringFill pop {r0} bx r0 .align 2, 0 _080F0EE4: .4byte gUnknown_083DFEC4 _080F0EE8: .4byte 0x00000306 _080F0EEC: .4byte 0x0000d15c _080F0EF0: .4byte 0x00008788 thumb_func_end sub_80F0EC0 thumb_func_start sub_80F0EF4 sub_80F0EF4: @ 80F0EF4 push {r4,r5,lr} ldr r0, _080F0F08 @ =gUnknown_083DFEC4 ldr r2, [r0] ldr r0, _080F0F0C @ =0x0000d15c adds r5, r2, r0 ldrh r0, [r5] cmp r0, 0x6 bls _080F0F10 movs r0, 0 b _080F0F52 .align 2, 0 _080F0F08: .4byte gUnknown_083DFEC4 _080F0F0C: .4byte 0x0000d15c _080F0F10: ldr r0, _080F0F58 @ =0x00000306 adds r1, r2, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _080F0F50 movs r0, 0 strh r0, [r1] ldr r1, _080F0F5C @ =0x00008778 adds r0, r2, r1 ldrh r4, [r5] lsls r4, 1 adds r4, 0x2 ldrh r0, [r0] adds r4, r0 movs r0, 0x1F ands r4, r0 ldr r0, _080F0F60 @ =gWindowConfig_81E70D4 bl BasicInitMenuWindow adds r3, r4, 0x1 movs r0, 0xC adds r1, r4, 0 movs r2, 0x1F bl MenuZeroFillWindowRect ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] _080F0F50: movs r0, 0x1 _080F0F52: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080F0F58: .4byte 0x00000306 _080F0F5C: .4byte 0x00008778 _080F0F60: .4byte gWindowConfig_81E70D4 thumb_func_end sub_80F0EF4 thumb_func_start sub_80F0F64 sub_80F0F64: @ 80F0F64 push {r4,lr} ldr r0, _080F0F90 @ =gUnknown_083DFEC4 ldr r3, [r0] ldr r1, _080F0F94 @ =0x0000876c adds r0, r3, r1 movs r4, 0 ldrsh r2, [r0, r4] lsls r1, r2, 4 ldr r4, _080F0F98 @ =0x0000877c adds r0, r3, r4 strh r1, [r0] movs r1, 0x8 cmp r2, 0x1 bne _080F0F82 movs r1, 0x4 _080F0F82: ldr r2, _080F0F9C @ =0x0000877a adds r0, r3, r2 strh r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080F0F90: .4byte gUnknown_083DFEC4 _080F0F94: .4byte 0x0000876c _080F0F98: .4byte 0x0000877c _080F0F9C: .4byte 0x0000877a thumb_func_end sub_80F0F64 thumb_func_start sub_80F0FA0 sub_80F0FA0: @ 80F0FA0 push {r4,lr} ldr r0, _080F0FDC @ =gUnknown_083DFEC4 ldr r3, [r0] ldr r1, _080F0FE0 @ =0x0000876c adds r0, r3, r1 movs r4, 0 ldrsh r0, [r0, r4] negs r0, r0 lsls r0, 16 asrs r0, 16 lsls r2, r0, 4 ldr r4, _080F0FE4 @ =0x0000877c adds r1, r3, r4 strh r2, [r1] movs r1, 0x1 negs r1, r1 movs r4, 0x8 negs r4, r4 adds r2, r4, 0 cmp r0, r1 bne _080F0FD0 movs r0, 0x4 negs r0, r0 adds r2, r0, 0 _080F0FD0: ldr r1, _080F0FE8 @ =0x0000877a adds r0, r3, r1 strh r2, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080F0FDC: .4byte gUnknown_083DFEC4 _080F0FE0: .4byte 0x0000876c _080F0FE4: .4byte 0x0000877c _080F0FE8: .4byte 0x0000877a thumb_func_end sub_80F0FA0 thumb_func_start sub_80F0FEC sub_80F0FEC: @ 80F0FEC push {lr} bl sub_80F0718 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_80F0FEC thumb_func_start sub_80F0FFC sub_80F0FFC: @ 80F0FFC push {r4,r5,lr} lsls r0, 24 ldr r1, _080F1048 @ =gUnknown_083DFEC4 ldr r4, [r1] ldr r1, _080F104C @ =0x00008788 adds r5, r4, r1 lsrs r0, 21 adds r0, r4, r0 ldr r1, _080F1050 @ =0x0000ceea adds r0, r1 ldrh r1, [r0] adds r0, r5, 0 movs r2, 0 bl sub_80FBFB4 ldr r0, _080F1054 @ =gWindowConfig_81E710C bl BasicInitMenuWindow adds r0, r5, 0 bl sub_80F19DC ldr r0, _080F1058 @ =0x0000d138 adds r4, r0 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x58 movs r3, 0x2 bl sub_8072C74 adds r0, r4, 0 movs r1, 0 movs r2, 0x5 bl MenuPrint pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F1048: .4byte gUnknown_083DFEC4 _080F104C: .4byte 0x00008788 _080F1050: .4byte 0x0000ceea _080F1054: .4byte gWindowConfig_81E710C _080F1058: .4byte 0x0000d138 thumb_func_end sub_80F0FFC thumb_func_start sub_80F105C sub_80F105C: @ 80F105C push {lr} ldr r0, _080F1078 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r2, _080F107C @ =0x0000876e adds r0, r1, r2 ldrh r0, [r0] adds r2, 0xA adds r1, r2 ldrh r1, [r1] bl sub_80F0A74 pop {r0} bx r0 .align 2, 0 _080F1078: .4byte gUnknown_083DFEC4 _080F107C: .4byte 0x0000876e thumb_func_end sub_80F105C thumb_func_start sub_80F1080 sub_80F1080: @ 80F1080 push {r4,lr} ldr r1, _080F10A0 @ =gUnknown_083DFEC4 ldr r0, [r1] ldr r2, _080F10A4 @ =0x0000d160 adds r0, r2 ldrh r0, [r0] adds r2, r1, 0 cmp r0, 0xE bls _080F1094 b _080F1204 _080F1094: lsls r0, 2 ldr r1, _080F10A8 @ =_080F10AC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F10A0: .4byte gUnknown_083DFEC4 _080F10A4: .4byte 0x0000d160 _080F10A8: .4byte _080F10AC .align 2, 0 _080F10AC: .4byte _080F10E8 .4byte _080F1104 .4byte _080F1110 .4byte _080F111C .4byte _080F1128 .4byte _080F112E .4byte _080F1134 .4byte _080F1142 .4byte _080F1160 .4byte _080F1166 .4byte _080F116C .4byte _080F1180 .4byte _080F1194 .4byte _080F11DC .4byte _080F11E2 _080F10E8: bl sub_80EEDE8 ldr r0, _080F10FC @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r3, _080F1100 @ =0x0000d162 adds r0, r3 movs r1, 0xB strb r1, [r0] b _080F1218 .align 2, 0 _080F10FC: .4byte gUnknown_083DFEC4 _080F1100: .4byte 0x0000d162 _080F1104: ldr r0, _080F110C @ =gWindowConfig_81E70B8 bl SetUpWindowConfig b _080F1218 .align 2, 0 _080F110C: .4byte gWindowConfig_81E70B8 _080F1110: ldr r0, _080F1118 @ =gWindowConfig_81E70B8 bl MultistepInitMenuWindowBegin b _080F1218 .align 2, 0 _080F1118: .4byte gWindowConfig_81E70B8 _080F111C: bl MultistepInitMenuWindowContinue cmp r0, 0 beq _080F1126 b _080F1218 _080F1126: b _080F1226 _080F1128: bl MenuZeroFillScreen b _080F1218 _080F112E: bl sub_80F1614 b _080F1218 _080F1134: movs r0, 0x1 bl sub_80F162C lsls r0, 24 cmp r0, 0 beq _080F1218 b _080F1226 _080F1142: ldr r0, _080F1154 @ =gUnknown_08E9FBA0 ldr r1, _080F1158 @ =gUnknown_083DFEC4 ldr r1, [r1] ldr r2, _080F115C @ =0x0000934c adds r1, r2 bl LZ77UnCompWram b _080F1218 .align 2, 0 _080F1154: .4byte gUnknown_08E9FBA0 _080F1158: .4byte gUnknown_083DFEC4 _080F115C: .4byte 0x0000934c _080F1160: bl sub_80F1238 b _080F1218 _080F1166: bl sub_80F13FC b _080F1218 _080F116C: ldr r0, _080F1178 @ =gPokenavRibbonView_Gfx ldr r1, _080F117C @ =0x06008000 bl LZ77UnCompVram b _080F1218 .align 2, 0 _080F1178: .4byte gPokenavRibbonView_Gfx _080F117C: .4byte 0x06008000 _080F1180: ldr r0, _080F118C @ =gUnknown_083E040C ldr r1, _080F1190 @ =0x06008200 bl LZ77UnCompVram b _080F1218 .align 2, 0 _080F118C: .4byte gUnknown_083E040C _080F1190: .4byte 0x06008200 _080F1194: ldr r0, _080F11CC @ =gPokenavRibbonView_Pal movs r1, 0x20 movs r2, 0x20 bl LoadPalette ldr r4, _080F11D0 @ =gUnknown_083E03A8 adds r0, r4, 0 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette ldr r0, _080F11D4 @ =gUnknown_083E3C60 movs r1, 0x30 movs r2, 0xA0 bl LoadPalette ldr r0, _080F11D8 @ =gUnknownPalette_81E6692 movs r1, 0xB0 movs r2, 0x20 bl LoadPalette adds r4, 0x1E adds r0, r4, 0 movs r1, 0xBF movs r2, 0x2 bl LoadPalette b _080F1218 .align 2, 0 _080F11CC: .4byte gPokenavRibbonView_Pal _080F11D0: .4byte gUnknown_083E03A8 _080F11D4: .4byte gUnknown_083E3C60 _080F11D8: .4byte gUnknownPalette_81E6692 _080F11DC: bl sub_80F1438 b _080F1218 _080F11E2: ldr r1, _080F1208 @ =REG_BG2CNT ldr r3, _080F120C @ =0x00001e02 adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 ldr r3, _080F1210 @ =0x0000170b adds r0, r3, 0 strh r0, [r1] adds r1, 0x42 movs r0, 0 strh r0, [r1] ldr r1, [r2] ldr r0, _080F1214 @ =0x0000d160 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080F1204: movs r0, 0 b _080F1228 .align 2, 0 _080F1208: .4byte REG_BG2CNT _080F120C: .4byte 0x00001e02 _080F1210: .4byte 0x0000170b _080F1214: .4byte 0x0000d160 _080F1218: ldr r0, _080F1230 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r2, _080F1234 @ =0x0000d160 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080F1226: movs r0, 0x1 _080F1228: pop {r4} pop {r1} bx r1 .align 2, 0 _080F1230: .4byte gUnknown_083DFEC4 _080F1234: .4byte 0x0000d160 thumb_func_end sub_80F1080 thumb_func_start sub_80F1238 sub_80F1238: @ 80F1238 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r6, 0x8B ldr r0, _080F1318 @ =gUnknown_083DFEC4 ldr r2, [r0] ldr r1, _080F131C @ =0x0000bc8e adds r0, r2, r1 ldr r3, _080F1320 @ =0x0000bc8f adds r1, r2, r3 ldrb r0, [r0] ldrb r1, [r1] subs r0, r1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] movs r7, 0 mov r5, sp adds r4, r2, 0 _080F1264: movs r1, 0x80 lsls r1, 6 adds r0, r1, 0 strh r0, [r5] lsls r1, r7, 5 adds r1, r6, r1 lsls r1, 1 ldr r2, _080F1324 @ =0x0000934c adds r1, r2 adds r1, r4, r1 mov r0, sp ldr r2, _080F1328 @ =0x01000012 bl CpuSet adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 cmp r7, 0x7 bls _080F1264 ldr r3, [sp, 0x4] lsls r0, r3, 16 movs r7, 0 mov r9, r0 cmp r0, 0 beq _080F1342 ldr r0, _080F1318 @ =gUnknown_083DFEC4 ldr r0, [r0] mov r8, r0 ldr r1, _080F132C @ =gUnknown_083E4698 mov r10, r1 ldr r5, _080F1324 @ =0x0000934c add r5, r8 _080F12A4: ldr r0, _080F1330 @ =0x0000bc4c add r0, r8 adds r0, r7 ldrb r1, [r0] lsls r1, 2 mov r0, r10 adds r0, 0x2 adds r0, r1, r0 ldrb r2, [r0] adds r2, 0x3 lsls r2, 24 add r1, r10 ldrh r0, [r1] lsls r0, 25 movs r3, 0x80 lsls r3, 21 adds r0, r3 lsrs r4, r0, 24 lsls r1, r6, 1 adds r1, r5, r1 lsrs r2, 12 adds r0, r2, 0 orrs r0, r4 strh r0, [r1] adds r1, r6, 0x1 lsls r1, 1 adds r1, r5, r1 movs r3, 0x80 lsls r3, 3 adds r0, r3, 0 adds r3, r2, 0 orrs r3, r0 adds r0, r3, 0 orrs r0, r4 strh r0, [r1] adds r0, r6, 0 adds r0, 0x20 lsls r0, 1 adds r0, r5, r0 adds r1, r4, 0x1 orrs r2, r1 strh r2, [r0] adds r0, r6, 0 adds r0, 0x21 lsls r0, 1 adds r0, r5, r0 orrs r3, r1 strh r3, [r0] adds r4, r7, 0x1 adds r0, r4, 0 movs r1, 0x9 bl __modsi3 cmp r0, 0 bne _080F1334 adds r0, r6, 0 adds r0, 0x30 b _080F1336 .align 2, 0 _080F1318: .4byte gUnknown_083DFEC4 _080F131C: .4byte 0x0000bc8e _080F1320: .4byte 0x0000bc8f _080F1324: .4byte 0x0000934c _080F1328: .4byte 0x01000012 _080F132C: .4byte gUnknown_083E4698 _080F1330: .4byte 0x0000bc4c _080F1334: adds r0, r6, 0x2 _080F1336: lsls r0, 16 lsrs r6, r0, 16 lsls r0, r4, 16 lsrs r7, r0, 16 cmp r0, r9 bcc _080F12A4 _080F1342: ldr r6, _080F13E8 @ =0x0000014b movs r7, 0 ldr r1, _080F13EC @ =gUnknown_083DFEC4 ldr r0, [r1] ldr r2, _080F13F0 @ =0x0000bc8f adds r1, r0, r2 ldrb r3, [r1] cmp r7, r3 bcs _080F13D8 subs r2, 0x43 adds r2, r0 mov r10, r2 ldr r3, _080F13F4 @ =gUnknown_083E4698 mov r8, r3 ldr r2, _080F13F8 @ =0x0000934c adds r5, r0, r2 mov r9, r1 _080F1364: ldr r3, [sp, 0x4] adds r0, r3, r7 add r0, r10 ldrb r1, [r0] lsls r1, 2 mov r0, r8 adds r0, 0x2 adds r0, r1, r0 ldrb r2, [r0] adds r2, 0x3 lsls r2, 24 add r1, r8 ldrh r0, [r1] lsls r0, 25 movs r1, 0x80 lsls r1, 21 adds r0, r1 lsrs r4, r0, 24 lsls r1, r6, 1 adds r1, r5, r1 lsrs r2, 12 adds r0, r2, 0 orrs r0, r4 strh r0, [r1] adds r1, r6, 0x1 lsls r1, 1 adds r1, r5, r1 movs r3, 0x80 lsls r3, 3 adds r0, r3, 0 adds r3, r2, 0 orrs r3, r0 adds r0, r3, 0 orrs r0, r4 strh r0, [r1] adds r0, r6, 0 adds r0, 0x20 lsls r0, 1 adds r0, r5, r0 adds r1, r4, 0x1 orrs r2, r1 strh r2, [r0] adds r0, r6, 0 adds r0, 0x21 lsls r0, 1 adds r0, r5, r0 orrs r3, r1 strh r3, [r0] adds r0, r6, 0x2 lsls r0, 16 lsrs r6, r0, 16 adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 mov r0, r9 ldrb r0, [r0] cmp r7, r0 bcc _080F1364 _080F13D8: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F13E8: .4byte 0x0000014b _080F13EC: .4byte gUnknown_083DFEC4 _080F13F0: .4byte 0x0000bc8f _080F13F4: .4byte gUnknown_083E4698 _080F13F8: .4byte 0x0000934c thumb_func_end sub_80F1238 thumb_func_start sub_80F13FC sub_80F13FC: @ 80F13FC ldr r0, _080F141C @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F1420 @ =0x0000934c adds r0, r1 ldr r2, _080F1424 @ =0x0600b800 ldr r1, _080F1428 @ =0x040000d4 str r0, [r1] str r2, [r1, 0x4] ldr r0, _080F142C @ =0x84000140 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r1, _080F1430 @ =gPlttBufferUnfaded ldr r0, _080F1434 @ =gPokenavRibbonView_Pal + 0x1C ldrh r0, [r0] strh r0, [r1] bx lr .align 2, 0 _080F141C: .4byte gUnknown_083DFEC4 _080F1420: .4byte 0x0000934c _080F1424: .4byte 0x0600b800 _080F1428: .4byte 0x040000d4 _080F142C: .4byte 0x84000140 _080F1430: .4byte gPlttBufferUnfaded _080F1434: .4byte gPokenavRibbonView_Pal + 0x1C thumb_func_end sub_80F13FC thumb_func_start sub_80F1438 sub_80F1438: @ 80F1438 push {r4,r5,lr} ldr r0, _080F1470 @ =gUnknown_083DFEC4 ldr r4, [r0] ldr r1, _080F1474 @ =0x00008829 adds r0, r4, r1 movs r1, 0xD movs r2, 0x1 bl MenuPrint ldr r0, _080F1478 @ =0x00008788 adds r5, r4, r0 ldr r1, _080F147C @ =0x0000876e adds r4, r1 ldrh r1, [r4] adds r1, 0x1 lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 bl sub_80F445C adds r0, r5, 0 movs r1, 0x1 movs r2, 0x5 bl MenuPrint pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F1470: .4byte gUnknown_083DFEC4 _080F1474: .4byte 0x00008829 _080F1478: .4byte 0x00008788 _080F147C: .4byte 0x0000876e thumb_func_end sub_80F1438 thumb_func_start sub_80F1480 sub_80F1480: @ 80F1480 push {lr} movs r0, 0xC movs r1, 0xD movs r2, 0x1B movs r3, 0x10 bl MenuZeroFillWindowRect pop {r0} bx r0 thumb_func_end sub_80F1480 thumb_func_start sub_80F1494 sub_80F1494: @ 80F1494 push {r4-r7,lr} ldr r0, _080F14D4 @ =gUnknown_083DFEC8 ldr r0, [r0] movs r1, 0x80 lsls r1, 4 adds r6, r0, r1 ldr r2, _080F14D8 @ =0x00000a98 adds r7, r0, r2 ldr r0, _080F14DC @ =gUnknown_083DFEC4 ldr r3, [r0] ldr r4, _080F14E0 @ =0x0000bc91 adds r1, r3, r4 ldrb r0, [r1] cmp r0, 0x2 bhi _080F14F0 ldr r5, _080F14E4 @ =gUnknown_020388B4 adds r1, r0, 0 lsls r0, r1, 3 subs r4, 0x1 adds r2, r3, r4 adds r0, r1 ldrb r2, [r2] adds r0, r2 strh r0, [r5] ldr r1, _080F14E8 @ =0x0000bc4c adds r0, r3, r1 ldrh r2, [r5] adds r0, r2 ldrb r0, [r0] strh r0, [r5] ldr r4, _080F14EC @ =gRibbonDescriptions b _080F152E .align 2, 0 _080F14D4: .4byte gUnknown_083DFEC8 _080F14D8: .4byte 0x00000a98 _080F14DC: .4byte gUnknown_083DFEC4 _080F14E0: .4byte 0x0000bc91 _080F14E4: .4byte gUnknown_020388B4 _080F14E8: .4byte 0x0000bc4c _080F14EC: .4byte gRibbonDescriptions _080F14F0: ldr r5, _080F1558 @ =gUnknown_020388B4 ldr r4, _080F155C @ =0x0000bc8e adds r0, r3, r4 ldrb r0, [r0] ldr r2, _080F1560 @ =0x0000bc8f adds r1, r3, r2 ldrb r1, [r1] subs r0, r1 strh r0, [r5] ldrh r1, [r5] adds r4, 0x2 adds r0, r3, r4 ldrb r0, [r0] adds r1, r0 subs r2, 0x43 adds r0, r3, r2 adds r0, r1 ldrb r0, [r0] strh r0, [r5] ldr r0, _080F1564 @ =gSaveBlock1 ldrh r1, [r5] adds r0, r1 ldr r4, _080F1568 @ =0x000030f7 adds r0, r4 ldrb r0, [r0] strh r0, [r5] cmp r0, 0 beq _080F1570 subs r0, 0x1 strh r0, [r5] ldr r4, _080F156C @ =gGiftRibbonDescriptions _080F152E: ldrh r0, [r5] lsls r0, 3 adds r0, r4 ldr r1, [r0] adds r0, r6, 0 movs r2, 0x80 movs r3, 0 bl sub_8072C74 ldrh r0, [r5] lsls r0, 3 adds r4, 0x4 adds r0, r4 ldr r1, [r0] adds r0, r7, 0 movs r2, 0x80 movs r3, 0 bl sub_8072C74 b _080F158A .align 2, 0 _080F1558: .4byte gUnknown_020388B4 _080F155C: .4byte 0x0000bc8e _080F1560: .4byte 0x0000bc8f _080F1564: .4byte gSaveBlock1 _080F1568: .4byte 0x000030f7 _080F156C: .4byte gGiftRibbonDescriptions _080F1570: ldr r4, _080F15A4 @ =gEmptyString_81E72B0 adds r0, r6, 0 adds r1, r4, 0 movs r2, 0x80 movs r3, 0 bl sub_8072C74 adds r0, r7, 0 adds r1, r4, 0 movs r2, 0x80 movs r3, 0 bl sub_8072C74 _080F158A: adds r0, r6, 0 movs r1, 0xC movs r2, 0xD bl MenuPrint adds r0, r7, 0 movs r1, 0xC movs r2, 0xF bl MenuPrint pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F15A4: .4byte gEmptyString_81E72B0 thumb_func_end sub_80F1494 thumb_func_start sub_80F15A8 sub_80F15A8: @ 80F15A8 push {r4,r5,lr} movs r0, 0xC movs r1, 0xD movs r2, 0x1B movs r3, 0x10 bl MenuZeroFillWindowRect ldr r0, _080F1600 @ =gUnknown_083DFEC4 ldr r4, [r0] ldr r0, _080F1604 @ =0x00008788 adds r5, r4, r0 ldr r1, _080F1608 @ =gOtherText_Ribbons adds r0, r5, 0 bl StringCopy adds r2, r0, 0 movs r0, 0 strb r0, [r2] adds r2, 0x1 ldr r1, _080F160C @ =0x000087dc adds r0, r4, r1 movs r1, 0 ldrsh r0, [r0, r1] lsls r0, 2 adds r4, r0 ldr r0, _080F1610 @ =0x0000893c adds r4, r0 ldrb r1, [r4] adds r0, r2, 0 movs r2, 0 movs r3, 0x2 bl ConvertIntToDecimalStringN adds r2, r0, 0 movs r0, 0xFF strb r0, [r2] adds r0, r5, 0 movs r1, 0xC movs r2, 0xD bl MenuPrint pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F1600: .4byte gUnknown_083DFEC4 _080F1604: .4byte 0x00008788 _080F1608: .4byte gOtherText_Ribbons _080F160C: .4byte 0x000087dc _080F1610: .4byte 0x0000893c thumb_func_end sub_80F15A8 thumb_func_start sub_80F1614 sub_80F1614: @ 80F1614 ldr r0, _080F1624 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F1628 @ =0x00008764 adds r0, r1 movs r1, 0 strh r1, [r0] bx lr .align 2, 0 _080F1624: .4byte gUnknown_083DFEC4 _080F1628: .4byte 0x00008764 thumb_func_end sub_80F1614 thumb_func_start sub_80F162C sub_80F162C: @ 80F162C push {lr} lsls r0, 24 lsrs r1, r0, 24 ldr r0, _080F164C @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r2, _080F1650 @ =0x00008764 adds r0, r2 ldrh r0, [r0] cmp r0, 0x1 beq _080F165E cmp r0, 0x1 bgt _080F1654 cmp r0, 0 beq _080F16F0 b _080F16D0 .align 2, 0 _080F164C: .4byte gUnknown_083DFEC4 _080F1650: .4byte 0x00008764 _080F1654: cmp r0, 0x2 beq _080F1670 cmp r0, 0x3 beq _080F1694 b _080F16D0 _080F165E: ldr r0, _080F1668 @ =gUnknown_08E9FF58 ldr r1, _080F166C @ =0x0600e800 bl LZ77UnCompVram b _080F16F0 .align 2, 0 _080F1668: .4byte gUnknown_08E9FF58 _080F166C: .4byte 0x0600e800 _080F1670: ldr r1, _080F1684 @ =gPokenavRibbonPokeView_Gfx ldr r2, _080F1688 @ =0x0600e000 ldr r0, _080F168C @ =0x040000d4 str r1, [r0] str r2, [r0, 0x4] ldr r1, _080F1690 @ =0x80000070 str r1, [r0, 0x8] ldr r0, [r0, 0x8] b _080F16F0 .align 2, 0 _080F1684: .4byte gPokenavRibbonPokeView_Gfx _080F1688: .4byte 0x0600e000 _080F168C: .4byte 0x040000d4 _080F1690: .4byte 0x80000070 _080F1694: cmp r1, 0 bne _080F16A8 ldr r0, _080F16A4 @ =gUnknown_083E0124 movs r1, 0xD0 movs r2, 0x20 bl LoadPalette b _080F16B2 .align 2, 0 _080F16A4: .4byte gUnknown_083E0124 _080F16A8: ldr r0, _080F16D4 @ =gUnknown_083E0144 movs r1, 0xD0 movs r2, 0x20 bl LoadPalette _080F16B2: ldr r0, _080F16D8 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r3, _080F16DC @ =0x00008766 adds r2, r1, r3 ldr r0, _080F16E0 @ =0x0000ffb0 strh r0, [r2] ldr r2, _080F16E4 @ =REG_BG0CNT ldr r3, _080F16E8 @ =0x00001d0d adds r0, r3, 0 strh r0, [r2] ldr r0, _080F16EC @ =0x00008764 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080F16D0: movs r0, 0 b _080F1700 .align 2, 0 _080F16D4: .4byte gUnknown_083E0144 _080F16D8: .4byte gUnknown_083DFEC4 _080F16DC: .4byte 0x00008766 _080F16E0: .4byte 0x0000ffb0 _080F16E4: .4byte REG_BG0CNT _080F16E8: .4byte 0x00001d0d _080F16EC: .4byte 0x00008764 _080F16F0: ldr r0, _080F1704 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r2, _080F1708 @ =0x00008764 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] movs r0, 0x1 _080F1700: pop {r1} bx r1 .align 2, 0 _080F1704: .4byte gUnknown_083DFEC4 _080F1708: .4byte 0x00008764 thumb_func_end sub_80F162C thumb_func_start sub_80F170C sub_80F170C: @ 80F170C push {lr} ldr r0, _080F1734 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r2, _080F1738 @ =0x00008766 adds r1, r0, r2 ldrh r0, [r1] adds r0, 0x10 strh r0, [r1] lsls r0, 16 cmp r0, 0 ble _080F1726 movs r0, 0 strh r0, [r1] _080F1726: movs r0, 0 ldrsh r1, [r1, r0] negs r0, r1 orrs r0, r1 lsrs r0, 31 pop {r1} bx r1 .align 2, 0 _080F1734: .4byte gUnknown_083DFEC4 _080F1738: .4byte 0x00008766 thumb_func_end sub_80F170C thumb_func_start sub_80F173C sub_80F173C: @ 80F173C push {lr} ldr r0, _080F176C @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r2, _080F1770 @ =0x00008766 adds r1, r0, r2 ldrh r0, [r1] subs r0, 0x10 strh r0, [r1] lsls r0, 16 asrs r0, 16 movs r2, 0x50 negs r2, r2 cmp r0, r2 bge _080F175C ldr r0, _080F1774 @ =0x0000ffb0 strh r0, [r1] _080F175C: movs r0, 0 ldrsh r1, [r1, r0] eors r1, r2 negs r0, r1 orrs r0, r1 lsrs r0, 31 pop {r1} bx r1 .align 2, 0 _080F176C: .4byte gUnknown_083DFEC4 _080F1770: .4byte 0x00008766 _080F1774: .4byte 0x0000ffb0 thumb_func_end sub_80F173C thumb_func_start sub_80F1778 sub_80F1778: @ 80F1778 push {r4,lr} sub sp, 0x14 ldr r0, _080F1798 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F179C @ =0x0000d160 adds r0, r1 ldrh r0, [r0] cmp r0, 0x9 bls _080F178C b _080F1910 _080F178C: lsls r0, 2 ldr r1, _080F17A0 @ =_080F17A4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F1798: .4byte gUnknown_083DFEC4 _080F179C: .4byte 0x0000d160 _080F17A0: .4byte _080F17A4 .align 2, 0 _080F17A4: .4byte _080F17CC .4byte _080F17E8 .4byte _080F17EE .4byte _080F17FE .4byte _080F1810 .4byte _080F1830 .4byte _080F1858 .4byte _080F186C .4byte _080F18B8 .4byte _080F18D8 _080F17CC: bl sub_80EEDE8 ldr r0, _080F17E0 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r2, _080F17E4 @ =0x0000d162 adds r0, r2 movs r1, 0x2 strb r1, [r0] b _080F1914 .align 2, 0 _080F17E0: .4byte gUnknown_083DFEC4 _080F17E4: .4byte 0x0000d162 _080F17E8: bl sub_80F1614 b _080F1914 _080F17EE: movs r0, 0 bl sub_80F162C lsls r0, 24 cmp r0, 0 bne _080F17FC b _080F1914 _080F17FC: b _080F1922 _080F17FE: ldr r0, _080F1808 @ =gPokenavConditionView_Gfx ldr r1, _080F180C @ =0x06005000 bl LZ77UnCompVram b _080F1914 .align 2, 0 _080F1808: .4byte gPokenavConditionView_Gfx _080F180C: .4byte 0x06005000 _080F1810: ldr r0, _080F1824 @ =gUnknown_08E9AC4C ldr r1, _080F1828 @ =0x0600f000 bl LZ77UnCompVram ldr r0, _080F182C @ =gPokenavConditionMenu2_Pal movs r1, 0x20 movs r2, 0x20 bl LoadPalette b _080F1914 .align 2, 0 _080F1824: .4byte gUnknown_08E9AC4C _080F1828: .4byte 0x0600f000 _080F182C: .4byte gPokenavConditionMenu2_Pal _080F1830: ldr r0, _080F1850 @ =0x0600f000 ldr r3, _080F1854 @ =gUnknown_083E01F4 movs r1, 0 str r1, [sp] str r1, [sp, 0x4] movs r2, 0xC str r2, [sp, 0x8] movs r1, 0x4 str r1, [sp, 0xC] str r2, [sp, 0x10] movs r1, 0 movs r2, 0xD bl sub_8095C8C b _080F1914 .align 2, 0 _080F1850: .4byte 0x0600f000 _080F1854: .4byte gUnknown_083E01F4 _080F1858: ldr r0, _080F1864 @ =gUnknown_08E9FEB4 ldr r1, _080F1868 @ =0x0600b800 bl LZ77UnCompVram b _080F1914 .align 2, 0 _080F1864: .4byte gUnknown_08E9FEB4 _080F1868: .4byte 0x0600b800 _080F186C: ldr r0, _080F18AC @ =gUnknown_083E0254 movs r1, 0x30 movs r2, 0x20 bl LoadPalette ldr r0, _080F18B0 @ =gUnknownPalette_81E6692 movs r1, 0xB0 movs r2, 0x20 bl LoadPalette ldr r4, _080F18B4 @ =gPokenavConditionMenu2_Pal + 0x2 adds r0, r4, 0 movs r1, 0xB1 movs r2, 0x2 bl LoadPalette adds r0, r4, 0 adds r0, 0xE movs r1, 0xB5 movs r2, 0x2 bl LoadPalette adds r4, 0x1C adds r0, r4, 0 movs r1, 0xBF movs r2, 0x2 bl LoadPalette bl sub_80F01A4 b _080F1914 .align 2, 0 _080F18AC: .4byte gUnknown_083E0254 _080F18B0: .4byte gUnknownPalette_81E6692 _080F18B4: .4byte gPokenavConditionMenu2_Pal + 0x2 _080F18B8: ldr r0, _080F18D0 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F18D4 @ =0x00008fe9 adds r0, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 16 lsrs r0, 16 bl sub_80F01E0 b _080F1914 .align 2, 0 _080F18D0: .4byte gUnknown_083DFEC4 _080F18D4: .4byte 0x00008fe9 _080F18D8: ldr r1, _080F18FC @ =REG_BG3CNT ldr r2, _080F1900 @ =0x00001e03 adds r0, r2, 0 strh r0, [r1] subs r1, 0x2 ldr r2, _080F1904 @ =0x00001702 adds r0, r2, 0 strh r0, [r1] adds r1, 0x44 ldr r2, _080F1908 @ =0x00000844 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080F190C @ =0x0000040b adds r0, r2, 0 strh r0, [r1] b _080F1914 .align 2, 0 _080F18FC: .4byte REG_BG3CNT _080F1900: .4byte 0x00001e03 _080F1904: .4byte 0x00001702 _080F1908: .4byte 0x00000844 _080F190C: .4byte 0x0000040b _080F1910: movs r0, 0 b _080F1924 _080F1914: ldr r0, _080F192C @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r0, _080F1930 @ =0x0000d160 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080F1922: movs r0, 0x1 _080F1924: add sp, 0x14 pop {r4} pop {r1} bx r1 .align 2, 0 _080F192C: .4byte gUnknown_083DFEC4 _080F1930: .4byte 0x0000d160 thumb_func_end sub_80F1778 thumb_func_start sub_80F1934 sub_80F1934: @ 80F1934 push {r4,r5,lr} ldr r0, _080F1990 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r0, _080F1994 @ =0x00008788 adds r5, r1, r0 ldr r3, _080F1998 @ =0x000087dc adds r2, r1, r3 movs r3, 0 ldrsh r0, [r2, r3] lsls r0, 2 adds r1, r0 ldr r0, _080F199C @ =0x0000893f adds r1, r0 ldrb r0, [r1] lsls r0, 25 cmp r0, 0 bge _080F19AC ldrb r0, [r2] bl sub_8137124 lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _080F19A0 @ =gPlayerParty adds r0, r1 bl GetNature adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _080F19A4 @ =gOtherText_Nature2 adds r0, r5, 0 bl StringCopy adds r5, r0, 0 ldr r0, _080F19A8 @ =gNatureNames lsls r4, 2 adds r4, r0 ldr r1, [r4] adds r0, r5, 0 movs r2, 0x57 movs r3, 0 bl sub_8072C74 b _080F19B8 .align 2, 0 _080F1990: .4byte gUnknown_083DFEC4 _080F1994: .4byte 0x00008788 _080F1998: .4byte 0x000087dc _080F199C: .4byte 0x0000893f _080F19A0: .4byte gPlayerParty _080F19A4: .4byte gOtherText_Nature2 _080F19A8: .4byte gNatureNames _080F19AC: ldr r1, _080F19D0 @ =gEmptyString_81E72B0 adds r0, r5, 0 movs r2, 0x57 movs r3, 0 bl sub_8072C74 _080F19B8: ldr r0, _080F19D4 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F19D8 @ =0x00008788 adds r0, r1 movs r1, 0x1 movs r2, 0x70 movs r3, 0x1 bl MenuPrint_PixelCoords pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F19D0: .4byte gEmptyString_81E72B0 _080F19D4: .4byte gUnknown_083DFEC4 _080F19D8: .4byte 0x00008788 thumb_func_end sub_80F1934 thumb_func_start sub_80F19DC sub_80F19DC: @ 80F19DC push {lr} adds r1, r0, 0 b _080F19E4 _080F19E2: adds r1, 0x1 _080F19E4: ldrb r0, [r1] cmp r0, 0xFF beq _080F19F8 cmp r0, 0xFC bne _080F19E2 ldrb r0, [r1, 0x1] cmp r0, 0 bne _080F19E2 movs r0, 0xFF strb r0, [r1] _080F19F8: pop {r0} bx r0 thumb_func_end sub_80F19DC thumb_func_start sub_80F19FC sub_80F19FC: @ 80F19FC push {r4,r5,lr} sub sp, 0x4 ldr r5, _080F1A68 @ =gUnknown_020388B0 ldrb r4, [r5] cmp r4, 0x1 bne _080F1A60 ldr r0, _080F1A6C @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r2, _080F1A70 @ =0x00006e2c adds r0, r1, r2 ldrb r0, [r0] adds r2, 0x3 adds r1, r2 ldrb r1, [r1] ldrb r2, [r5, 0x1] bl sub_811A8CC cmp r0, 0 beq _080F1A46 ldrb r2, [r5, 0x1] lsls r2, 20 movs r1, 0xC0 lsls r1, 14 adds r2, r1 lsrs r2, 16 str r4, [sp] movs r1, 0x70 movs r3, 0x78 bl sub_8072A18 ldrb r0, [r5, 0x1] adds r0, 0x1 strb r0, [r5, 0x1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bne _080F1A60 _080F1A46: ldrb r1, [r5, 0x1] lsls r1, 25 movs r2, 0xC0 lsls r2, 19 adds r1, r2 lsrs r1, 24 movs r0, 0xE movs r2, 0x1C movs r3, 0xF bl MenuFillWindowRectWithBlankTile movs r0, 0 strb r0, [r5] _080F1A60: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F1A68: .4byte gUnknown_020388B0 _080F1A6C: .4byte gUnknown_083DFEC4 _080F1A70: .4byte 0x00006e2c thumb_func_end sub_80F19FC thumb_func_start sub_80F1A74 sub_80F1A74: @ 80F1A74 ldr r1, _080F1A7C @ =gUnknown_020388B0 movs r0, 0 strb r0, [r1] bx lr .align 2, 0 _080F1A7C: .4byte gUnknown_020388B0 thumb_func_end sub_80F1A74 thumb_func_start sub_80F1A80 sub_80F1A80: @ 80F1A80 ldr r0, _080F1A8C @ =gUnknown_020388B0 movs r2, 0 movs r1, 0x1 strb r1, [r0] strb r2, [r0, 0x1] bx lr .align 2, 0 _080F1A8C: .4byte gUnknown_020388B0 thumb_func_end sub_80F1A80 thumb_func_start sub_80F1A90 sub_80F1A90: @ 80F1A90 push {lr} ldr r0, _080F1AB8 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F1ABC @ =0x00000306 adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080F1AC0 @ =0x00006dac adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080F1AB2 _080F1AA8: bl sub_80F1AC4 lsls r0, 24 cmp r0, 0 bne _080F1AA8 _080F1AB2: pop {r0} bx r0 .align 2, 0 _080F1AB8: .4byte gUnknown_083DFEC4 _080F1ABC: .4byte 0x00000306 _080F1AC0: .4byte 0x00006dac thumb_func_end sub_80F1A90 thumb_func_start sub_80F1AC4 sub_80F1AC4: @ 80F1AC4 push {r4,r5,lr} ldr r0, _080F1AE0 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r2, _080F1AE4 @ =0x00000306 adds r0, r1, r2 ldrh r0, [r0] cmp r0, 0x1 beq _080F1B34 cmp r0, 0x1 bgt _080F1AE8 cmp r0, 0 beq _080F1AF2 b _080F1B6C .align 2, 0 _080F1AE0: .4byte gUnknown_083DFEC4 _080F1AE4: .4byte 0x00000306 _080F1AE8: cmp r0, 0x2 beq _080F1B40 cmp r0, 0x3 beq _080F1B54 b _080F1B6C _080F1AF2: movs r0, 0 movs r2, 0xC8 lsls r2, 2 adds r4, r1, r2 movs r5, 0 _080F1AFC: movs r2, 0 adds r1, r0, 0x1 lsls r3, r0, 4 _080F1B02: lsls r0, r2, 2 adds r0, r3 adds r0, r4, r0 str r5, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x3 bls _080F1B02 lsls r0, r1, 16 lsrs r0, 16 cmp r0, 0x5 bls _080F1AFC ldr r0, _080F1B2C @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F1B30 @ =0x00000311 adds r0, r1 movs r1, 0 strb r1, [r0] b _080F1B6C .align 2, 0 _080F1B2C: .4byte gUnknown_083DFEC4 _080F1B30: .4byte 0x00000311 _080F1B34: ldr r0, _080F1B3C @ =gPokenavMenuOptions_Gfx movs r2, 0xE2 lsls r2, 2 b _080F1B44 .align 2, 0 _080F1B3C: .4byte gPokenavMenuOptions_Gfx _080F1B40: ldr r0, _080F1B4C @ =gPokenavConditionMenu_Gfx ldr r2, _080F1B50 @ =0x00001788 _080F1B44: adds r1, r2 bl LZ77UnCompWram b _080F1B6C .align 2, 0 _080F1B4C: .4byte gPokenavConditionMenu_Gfx _080F1B50: .4byte 0x00001788 _080F1B54: ldr r0, _080F1B64 @ =gPokenavConditionSearch_Gfx ldr r2, _080F1B68 @ =0x00002388 adds r1, r2 bl LZ77UnCompWram movs r0, 0 b _080F1B7C .align 2, 0 _080F1B64: .4byte gPokenavConditionSearch_Gfx _080F1B68: .4byte 0x00002388 _080F1B6C: ldr r0, _080F1B84 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r0, _080F1B88 @ =0x00000306 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] movs r0, 0x1 _080F1B7C: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080F1B84: .4byte gUnknown_083DFEC4 _080F1B88: .4byte 0x00000306 thumb_func_end sub_80F1AC4 thumb_func_start sub_80F1B8C sub_80F1B8C: @ 80F1B8C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080F1BBC @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F1BC0 @ =0x00000306 adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080F1BC4 @ =0x00006dac adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080F1BB4 _080F1BA8: adds r0, r4, 0 bl sub_80F1BC8 lsls r0, 24 cmp r0, 0 bne _080F1BA8 _080F1BB4: pop {r4} pop {r0} bx r0 .align 2, 0 _080F1BBC: .4byte gUnknown_083DFEC4 _080F1BC0: .4byte 0x00000306 _080F1BC4: .4byte 0x00006dac thumb_func_end sub_80F1B8C thumb_func_start sub_80F1BC8 sub_80F1BC8: @ 80F1BC8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r1, _080F1BF4 @ =gUnknown_083DFEC4 ldr r2, [r1] ldr r3, _080F1BF8 @ =0x00000306 adds r0, r2, r3 ldrh r0, [r0] adds r3, r1, 0 cmp r0, 0x1 beq _080F1C0A cmp r0, 0x1 bgt _080F1BFC cmp r0, 0 beq _080F1C02 b _080F1DC4 .align 2, 0 _080F1BF4: .4byte gUnknown_083DFEC4 _080F1BF8: .4byte 0x00000306 _080F1BFC: cmp r0, 0x2 beq _080F1C12 b _080F1DC4 _080F1C02: mov r0, r9 bl sub_80F2458 b _080F1DC8 _080F1C0A: mov r0, r9 bl sub_80F2514 b _080F1DC8 _080F1C12: mov r4, r9 cmp r4, 0x1 beq _080F1C40 cmp r4, 0x1 bgt _080F1C22 cmp r4, 0 beq _080F1C2A b _080F1DC4 _080F1C22: mov r5, r9 cmp r5, 0x2 beq _080F1C54 b _080F1DC4 _080F1C2A: movs r0, 0x2A str r0, [sp, 0x4] movs r1, 0x14 str r1, [sp, 0x8] ldr r4, _080F1C3C @ =0x0000030e adds r1, r2, r4 movs r0, 0x5 b _080F1C62 .align 2, 0 _080F1C3C: .4byte 0x0000030e _080F1C40: movs r5, 0x38 str r5, [sp, 0x4] movs r0, 0x14 str r0, [sp, 0x8] ldr r4, _080F1C50 @ =0x0000030e adds r1, r2, r4 movs r0, 0x3 b _080F1C62 .align 2, 0 _080F1C50: .4byte 0x0000030e _080F1C54: movs r5, 0x28 str r5, [sp, 0x4] movs r0, 0x10 str r0, [sp, 0x8] ldr r4, _080F1CDC @ =0x0000030e adds r1, r2, r4 movs r0, 0x6 _080F1C62: strb r0, [r1] movs r5, 0 str r5, [sp] mov r8, r5 adds r1, r3, 0 ldr r0, [r1] ldr r2, _080F1CDC @ =0x0000030e adds r0, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r8, r0 blt _080F1C7E b _080F1DC8 _080F1C7E: ldr r4, [sp, 0x8] mov r3, r8 muls r3, r4 ldr r5, [sp, 0x4] adds r0, r5, r3 subs r0, 0x8 lsls r0, 16 lsrs r0, 16 ldr r4, [r1] mov r2, r8 lsls r1, r2, 1 movs r5, 0xC5 lsls r5, 2 adds r2, r4, r5 adds r2, r1 lsls r1, r0, 8 adds r0, 0x11 orrs r1, r0 strh r1, [r2] mov r0, r9 cmp r0, 0 bne _080F1CF2 ldr r1, _080F1CE0 @ =0x00006db2 adds r0, r4, r1 mov r2, r8 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 bne _080F1CE8 movs r5, 0 ldr r0, _080F1CE4 @ =gUnknown_083DFEC4 ldr r0, [r0] lsls r2, 4 movs r3, 0xC8 lsls r3, 2 adds r1, r0, r3 movs r3, 0 _080F1CC8: lsls r0, r5, 2 adds r0, r2 adds r0, r1, r0 str r3, [r0] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x3 bls _080F1CC8 b _080F1D92 .align 2, 0 _080F1CDC: .4byte 0x0000030e _080F1CE0: .4byte 0x00006db2 _080F1CE4: .4byte gUnknown_083DFEC4 _080F1CE8: ldrb r0, [r1] subs r0, 0x1 lsls r0, 18 lsrs r0, 16 str r0, [sp] _080F1CF2: movs r5, 0 ldr r4, [sp, 0x4] adds r0, r4, r3 lsls r0, 16 mov r10, r0 _080F1CFC: lsls r6, r5, 5 movs r0, 0x80 lsls r0, 1 adds r7, r6, r0 lsls r1, r7, 16 asrs r1, 16 ldr r0, _080F1DB4 @ =gSpriteTemplate_83E4454 mov r3, r10 asrs r2, r3, 16 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x40 beq _080F1DC4 ldr r0, _080F1DB8 @ =gUnknown_083DFEC4 ldr r2, [r0] lsls r1, r5, 2 mov r4, r8 lsls r0, r4, 4 adds r1, r0 movs r0, 0xC8 lsls r0, 2 adds r2, r0 adds r4, r2, r1 lsls r0, r3, 4 adds r0, r3 lsls r0, 2 ldr r1, _080F1DBC @ =gSprites adds r0, r1 str r0, [r4] mov r1, r8 strh r1, [r0, 0x2E] ldr r0, [r4] strh r5, [r0, 0x30] ldr r1, [r4] adds r0, r6, 0 adds r0, 0x98 strh r0, [r1, 0x32] ldr r0, [r4] strh r7, [r0, 0x34] ldr r0, [r4] ldr r1, [sp] adds r2, r1, 0x1 lsls r2, 16 lsrs r2, 16 str r2, [sp] lsls r1, 24 lsrs r1, 24 bl StartSpriteAnim mov r2, r9 cmp r2, 0x2 beq _080F1D6E cmp r2, 0 bne _080F1D88 _080F1D6E: mov r3, r8 cmp r3, 0x2 bls _080F1D88 movs r0, 0x1 bl IndexOfSpritePaletteTag ldr r3, [r4] lsls r0, 4 ldrb r2, [r3, 0x5] movs r1, 0xF ands r1, r2 orrs r1, r0 strb r1, [r3, 0x5] _080F1D88: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x3 bls _080F1CFC _080F1D92: mov r0, r8 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r1, _080F1DB8 @ =gUnknown_083DFEC4 ldr r0, [r1] ldr r4, _080F1DC0 @ =0x0000030e adds r0, r4 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r8, r0 bge _080F1DB0 b _080F1C7E _080F1DB0: b _080F1DC8 .align 2, 0 _080F1DB4: .4byte gSpriteTemplate_83E4454 _080F1DB8: .4byte gUnknown_083DFEC4 _080F1DBC: .4byte gSprites _080F1DC0: .4byte 0x0000030e _080F1DC4: movs r0, 0 b _080F1DD8 _080F1DC8: ldr r0, _080F1DE8 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r5, _080F1DEC @ =0x00000306 adds r1, r5 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] movs r0, 0x1 _080F1DD8: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080F1DE8: .4byte gUnknown_083DFEC4 _080F1DEC: .4byte 0x00000306 thumb_func_end sub_80F1BC8 thumb_func_start sub_80F1DF0 sub_80F1DF0: @ 80F1DF0 push {r4-r6,lr} movs r2, 0 ldr r0, _080F1E44 @ =gUnknown_083DFEC4 ldr r3, [r0] ldr r0, _080F1E48 @ =0x0000030e adds r1, r3, r0 movs r0, 0 ldrsb r0, [r1, r0] cmp r2, r0 bge _080F1E38 movs r0, 0xC8 lsls r0, 2 adds r4, r3, r0 adds r6, r1, 0 ldr r5, _080F1E4C @ =sub_80F2218 _080F1E0E: movs r1, 0 adds r3, r2, 0x1 lsls r2, 4 _080F1E14: lsls r0, r1, 2 adds r0, r2 adds r0, r4, r0 ldr r0, [r0] cmp r0, 0 beq _080F1E22 str r5, [r0, 0x1C] _080F1E22: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x3 bls _080F1E14 lsls r0, r3, 16 lsrs r2, r0, 16 movs r0, 0 ldrsb r0, [r6, r0] cmp r2, r0 blt _080F1E0E _080F1E38: movs r0, 0x6 bl PlaySE pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F1E44: .4byte gUnknown_083DFEC4 _080F1E48: .4byte 0x0000030e _080F1E4C: .4byte sub_80F2218 thumb_func_end sub_80F1DF0 thumb_func_start sub_80F1E50 sub_80F1E50: @ 80F1E50 push {lr} bl sub_80F22F8 lsls r0, 24 cmp r0, 0 bne _080F1E60 movs r0, 0x1 b _080F1E66 _080F1E60: bl sub_80F2108 movs r0, 0 _080F1E66: pop {r1} bx r1 thumb_func_end sub_80F1E50 thumb_func_start sub_80F1E6C sub_80F1E6C: @ 80F1E6C push {lr} bl sub_80F22F8 movs r1, 0 lsls r0, 24 cmp r0, 0 bne _080F1E7C movs r1, 0x1 _080F1E7C: adds r0, r1, 0 pop {r1} bx r1 thumb_func_end sub_80F1E6C thumb_func_start sub_80F1E84 sub_80F1E84: @ 80F1E84 push {r4-r7,lr} mov r7, r8 push {r7} ldr r5, _080F1EFC @ =gUnknown_083DFEC4 ldr r4, [r5] ldr r1, _080F1F00 @ =0x0000030f adds r0, r4, r1 movs r1, 0 strb r1, [r0] bl sub_80F2148 movs r2, 0 ldr r3, _080F1F04 @ =0x0000030e adds r1, r4, r3 movs r0, 0 ldrsb r0, [r1, r0] cmp r2, r0 bge _080F1EF2 ldr r0, _080F1F08 @ =0x00006dad adds r7, r4, r0 adds r6, r1, 0 mov r8, r5 ldr r1, _080F1F0C @ =sub_80F2240 mov r12, r1 _080F1EB4: movs r0, 0 ldrsb r0, [r7, r0] adds r5, r2, 0x1 cmp r2, r0 beq _080F1EE6 movs r1, 0 mov r3, r8 ldr r0, [r3] lsls r3, r2, 4 movs r4, 0xC8 lsls r4, 2 adds r2, r0, r4 mov r4, r12 _080F1ECE: lsls r0, r1, 2 adds r0, r3 adds r0, r2, r0 ldr r0, [r0] cmp r0, 0 beq _080F1EDC str r4, [r0, 0x1C] _080F1EDC: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x3 bls _080F1ECE _080F1EE6: lsls r0, r5, 16 lsrs r2, r0, 16 movs r0, 0 ldrsb r0, [r6, r0] cmp r2, r0 blt _080F1EB4 _080F1EF2: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F1EFC: .4byte gUnknown_083DFEC4 _080F1F00: .4byte 0x0000030f _080F1F04: .4byte 0x0000030e _080F1F08: .4byte 0x00006dad _080F1F0C: .4byte sub_80F2240 thumb_func_end sub_80F1E84 thumb_func_start sub_80F1F10 sub_80F1F10: @ 80F1F10 push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _080F1F2C @ =gUnknown_083DFEC4 ldr r4, [r0] ldr r1, _080F1F30 @ =0x0000030f adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 beq _080F1F34 cmp r0, 0x1 beq _080F1FC0 b _080F1FE4 .align 2, 0 _080F1F2C: .4byte gUnknown_083DFEC4 _080F1F30: .4byte 0x0000030f _080F1F34: bl sub_80F2360 lsls r0, 24 cmp r0, 0 beq _080F1FE4 movs r6, 0 adds r7, r4, 0 movs r0, 0xC8 lsls r0, 2 adds r0, r7 mov r8, r0 _080F1F4A: lsls r5, r6, 2 ldr r1, _080F1FAC @ =0x00006dad adds r0, r7, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 4 adds r0, r5, r0 add r0, r8 ldr r4, [r0] ldrb r0, [r4, 0x1] movs r1, 0x3 orrs r0, r1 strb r0, [r4, 0x1] ldr r0, _080F1FB0 @ =gUnknown_083E4450 str r0, [r4, 0x10] adds r0, r4, 0 bl InitSpriteAffineAnim subs r5, 0x6 strh r5, [r4, 0x36] movs r1, 0x36 ldrsh r0, [r4, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 strh r0, [r4, 0x36] movs r1, 0x36 ldrsh r0, [r4, r1] lsls r0, 3 strh r0, [r4, 0x38] ldr r0, _080F1FB4 @ =sub_80F2240 str r0, [r4, 0x1C] adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x3 bls _080F1F4A bl sub_80F2170 ldr r0, _080F1FB8 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r0, _080F1FBC @ =0x0000030f adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080F1FE4 .align 2, 0 _080F1FAC: .4byte 0x00006dad _080F1FB0: .4byte gUnknown_083E4450 _080F1FB4: .4byte sub_80F2240 _080F1FB8: .4byte gUnknown_083DFEC4 _080F1FBC: .4byte 0x0000030f _080F1FC0: bl sub_80F23C8 lsls r0, 24 cmp r0, 0 beq _080F1FE4 bl sub_80F21F8 movs r0, 0 bl FreeSpriteTilesByTag movs r0, 0 bl FreeSpritePaletteByTag movs r0, 0x1 bl FreeSpritePaletteByTag movs r0, 0 b _080F1FE6 _080F1FE4: movs r0, 0x1 _080F1FE6: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80F1F10 thumb_func_start sub_80F1FF0 sub_80F1FF0: @ 80F1FF0 push {r4,lr} ldr r0, _080F203C @ =gUnknown_083DFEC4 ldr r4, [r0] ldr r1, _080F2040 @ =0x00000311 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080F2058 ldr r2, _080F2044 @ =REG_WIN0V ldr r3, _080F2048 @ =0x00006dad adds r0, r4, r3 movs r1, 0 ldrsb r1, [r0, r1] lsls r1, 1 movs r3, 0xC5 lsls r3, 2 adds r0, r4, r3 adds r0, r1 ldrh r0, [r0] strh r0, [r2] ldr r3, _080F204C @ =REG_BLDY ldr r1, _080F2050 @ =gSineTable ldr r0, _080F2054 @ =0x00000312 adds r2, r4, r0 ldrh r0, [r2] lsls r0, 1 adds r0, r1 ldrh r0, [r0] lsls r0, 16 asrs r0, 21 strh r0, [r3] ldrh r0, [r2] adds r0, 0x3 movs r1, 0x7F ands r0, r1 strh r0, [r2] b _080F2078 .align 2, 0 _080F203C: .4byte gUnknown_083DFEC4 _080F2040: .4byte 0x00000311 _080F2044: .4byte REG_WIN0V _080F2048: .4byte 0x00006dad _080F204C: .4byte REG_BLDY _080F2050: .4byte gSineTable _080F2054: .4byte 0x00000312 _080F2058: cmp r0, 0x2 bne _080F2078 ldr r2, _080F2080 @ =REG_BLDALPHA ldr r1, _080F2084 @ =gUnknown_083E42F8 ldr r0, _080F2088 @ =0x00000312 adds r3, r4, r0 ldrh r0, [r3] lsls r0, 1 adds r0, r1 ldrh r0, [r0] strh r0, [r2] ldrh r0, [r3] cmp r0, 0xE bhi _080F2078 adds r0, 0x1 strh r0, [r3] _080F2078: pop {r4} pop {r0} bx r0 .align 2, 0 _080F2080: .4byte REG_BLDALPHA _080F2084: .4byte gUnknown_083E42F8 _080F2088: .4byte 0x00000312 thumb_func_end sub_80F1FF0 thumb_func_start sub_80F208C sub_80F208C: @ 80F208C push {lr} bl sub_80F2148 pop {r0} bx r0 thumb_func_end sub_80F208C thumb_func_start sub_80F2098 sub_80F2098: @ 80F2098 ldr r1, _080F20DC @ =REG_WIN0H ldr r2, _080F20E0 @ =0x000077f0 adds r0, r2, 0 strh r0, [r1] ldr r2, _080F20E4 @ =REG_WIN0V ldr r0, _080F20E8 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r3, _080F20EC @ =0x00006dad adds r0, r1, r3 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 1 movs r3, 0xC5 lsls r3, 2 adds r1, r3 adds r1, r0 ldrh r0, [r1] strh r0, [r2] ldr r1, _080F20F0 @ =REG_WININ movs r0, 0x3F strh r0, [r1] adds r1, 0x2 movs r0, 0x1F strh r0, [r1] subs r2, 0x44 ldrh r0, [r2] movs r3, 0x80 lsls r3, 6 adds r1, r3, 0 orrs r0, r1 strh r0, [r2] bx lr .align 2, 0 _080F20DC: .4byte REG_WIN0H _080F20E0: .4byte 0x000077f0 _080F20E4: .4byte REG_WIN0V _080F20E8: .4byte gUnknown_083DFEC4 _080F20EC: .4byte 0x00006dad _080F20F0: .4byte REG_WININ thumb_func_end sub_80F2098 thumb_func_start sub_80F20F4 sub_80F20F4: @ 80F20F4 movs r2, 0x80 lsls r2, 19 ldrh r1, [r2] ldr r0, _080F2104 @ =0x0000dfff ands r0, r1 strh r0, [r2] bx lr .align 2, 0 _080F2104: .4byte 0x0000dfff thumb_func_end sub_80F20F4 thumb_func_start sub_80F2108 sub_80F2108: @ 80F2108 push {lr} ldr r0, _080F2134 @ =gUnknown_083DFEC4 ldr r3, [r0] ldr r0, _080F2138 @ =0x00000311 adds r1, r3, r0 ldrb r2, [r1] cmp r2, 0 bne _080F2130 movs r0, 0x1 strb r0, [r1] ldr r1, _080F213C @ =0x00000312 adds r0, r3, r1 strh r2, [r0] ldr r1, _080F2140 @ =REG_BLDCNT movs r0, 0x90 strh r0, [r1] ldr r0, _080F2144 @ =REG_BLDY strh r2, [r0] bl sub_80F2098 _080F2130: pop {r0} bx r0 .align 2, 0 _080F2134: .4byte gUnknown_083DFEC4 _080F2138: .4byte 0x00000311 _080F213C: .4byte 0x00000312 _080F2140: .4byte REG_BLDCNT _080F2144: .4byte REG_BLDY thumb_func_end sub_80F2108 thumb_func_start sub_80F2148 sub_80F2148: @ 80F2148 push {lr} ldr r0, _080F2164 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F2168 @ =0x00000311 adds r0, r1 movs r1, 0 strb r1, [r0] ldr r0, _080F216C @ =REG_BLDCNT strh r1, [r0] bl sub_80F20F4 pop {r0} bx r0 .align 2, 0 _080F2164: .4byte gUnknown_083DFEC4 _080F2168: .4byte 0x00000311 _080F216C: .4byte REG_BLDCNT thumb_func_end sub_80F2148 thumb_func_start sub_80F2170 sub_80F2170: @ 80F2170 push {r4-r7,lr} ldr r7, _080F21E4 @ =gUnknown_083DFEC4 ldr r4, [r7] ldr r1, _080F21E8 @ =0x00000311 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 bne _080F21DC bl sub_80F20F4 movs r3, 0 ldr r2, _080F21EC @ =0x00006dad adds r5, r4, r2 movs r0, 0xC8 lsls r0, 2 adds r4, r0 movs r1, 0xD negs r1, r1 mov r12, r1 movs r6, 0x4 _080F2198: lsls r1, r3, 2 movs r0, 0 ldrsb r0, [r5, r0] lsls r0, 4 adds r1, r0 adds r1, r4, r1 ldr r2, [r1] ldrb r1, [r2, 0x1] mov r0, r12 ands r0, r1 orrs r0, r6 strb r0, [r2, 0x1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x3 bls _080F2198 ldr r1, [r7] ldr r0, _080F21E8 @ =0x00000311 adds r2, r1, r0 movs r3, 0 movs r0, 0x2 strb r0, [r2] ldr r2, _080F21F0 @ =0x00000312 adds r1, r2 strh r3, [r1] ldr r1, _080F21F4 @ =REG_BLDCNT movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0x10 strh r0, [r1] _080F21DC: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F21E4: .4byte gUnknown_083DFEC4 _080F21E8: .4byte 0x00000311 _080F21EC: .4byte 0x00006dad _080F21F0: .4byte 0x00000312 _080F21F4: .4byte REG_BLDCNT thumb_func_end sub_80F2170 thumb_func_start sub_80F21F8 sub_80F21F8: @ 80F21F8 ldr r0, _080F220C @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F2210 @ =0x00000311 adds r0, r1 movs r1, 0 strb r1, [r0] ldr r0, _080F2214 @ =REG_BLDCNT strh r1, [r0] bx lr .align 2, 0 _080F220C: .4byte gUnknown_083DFEC4 _080F2210: .4byte 0x00000311 _080F2214: .4byte REG_BLDCNT thumb_func_end sub_80F21F8 thumb_func_start sub_80F2218 sub_80F2218: @ 80F2218 push {r4,lr} adds r2, r0, 0 ldrh r0, [r2, 0x20] subs r0, 0x8 strh r0, [r2, 0x20] lsls r0, 16 asrs r0, 16 ldrh r3, [r2, 0x32] movs r4, 0x32 ldrsh r1, [r2, r4] cmp r0, r1 bgt _080F2236 strh r3, [r2, 0x20] ldr r0, _080F223C @ =sub_80F22B0 str r0, [r2, 0x1C] _080F2236: pop {r4} pop {r0} bx r0 .align 2, 0 _080F223C: .4byte sub_80F22B0 thumb_func_end sub_80F2218 thumb_func_start sub_80F2240 sub_80F2240: @ 80F2240 push {r4,lr} adds r2, r0, 0 ldr r0, _080F2288 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F228C @ =0x00006dad adds r0, r1 movs r3, 0x2E ldrsh r1, [r2, r3] ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r1, r0 bne _080F2290 ldrh r3, [r2, 0x38] movs r4, 0x38 ldrsh r0, [r2, r4] cmp r0, 0 beq _080F2270 ldrh r0, [r2, 0x36] ldrh r4, [r2, 0x20] adds r1, r0, r4 strh r1, [r2, 0x20] subs r0, r3, r0 strh r0, [r2, 0x38] _080F2270: adds r0, r2, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080F22A8 adds r0, r2, 0 bl sub_80F240C b _080F22A8 .align 2, 0 _080F2288: .4byte gUnknown_083DFEC4 _080F228C: .4byte 0x00006dad _080F2290: ldrh r0, [r2, 0x20] adds r0, 0x8 strh r0, [r2, 0x20] lsls r0, 16 asrs r0, 16 movs r3, 0x34 ldrsh r1, [r2, r3] cmp r0, r1 blt _080F22A8 adds r0, r2, 0 bl sub_80F240C _080F22A8: pop {r4} pop {r0} bx r0 thumb_func_end sub_80F2240 thumb_func_start sub_80F22B0 sub_80F22B0: @ 80F22B0 push {lr} adds r2, r0, 0 ldr r0, _080F22DC @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F22E0 @ =0x00006dad adds r0, r1 movs r3, 0x2E ldrsh r1, [r2, r3] ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r1, r0 bne _080F22E4 ldrh r3, [r2, 0x24] movs r0, 0x24 ldrsh r1, [r2, r0] movs r0, 0x10 negs r0, r0 cmp r1, r0 ble _080F22F2 subs r0, r3, 0x4 b _080F22F0 .align 2, 0 _080F22DC: .4byte gUnknown_083DFEC4 _080F22E0: .4byte 0x00006dad _080F22E4: ldrh r1, [r2, 0x24] movs r3, 0x24 ldrsh r0, [r2, r3] cmp r0, 0 bge _080F22F2 adds r0, r1, 0x4 _080F22F0: strh r0, [r2, 0x24] _080F22F2: pop {r0} bx r0 thumb_func_end sub_80F22B0 thumb_func_start sub_80F22F8 sub_80F22F8: @ 80F22F8 push {r4-r7,lr} movs r3, 0 ldr r0, _080F233C @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r2, _080F2340 @ =0x00006dae adds r0, r1, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r3, r0 bge _080F2358 movs r7, 0xC8 lsls r7, 2 adds r4, r1, r7 movs r5, 0x10 negs r5, r5 adds r6, r0, 0 _080F231A: movs r1, 0 lsls r2, r3, 4 _080F231E: lsls r0, r1, 2 adds r0, r2 adds r0, r4, r0 ldr r0, [r0] cmp r0, 0 beq _080F2358 movs r7, 0x24 ldrsh r0, [r0, r7] cmp r0, 0 beq _080F2344 cmp r0, r5 beq _080F2344 movs r0, 0 b _080F235A .align 2, 0 _080F233C: .4byte gUnknown_083DFEC4 _080F2340: .4byte 0x00006dae _080F2344: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x3 bls _080F231E adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r6 blt _080F231A _080F2358: movs r0, 0x1 _080F235A: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80F22F8 thumb_func_start sub_80F2360 sub_80F2360: @ 80F2360 push {r4-r7,lr} movs r4, 0 ldr r0, _080F23A0 @ =gUnknown_083DFEC4 ldr r2, [r0] ldr r1, _080F23A4 @ =0x0000030e adds r0, r2, r1 movs r1, 0 ldrsb r1, [r0, r1] cmp r4, r1 bge _080F23C0 ldr r3, _080F23A8 @ =0x00006dad adds r0, r2, r3 movs r6, 0 ldrsb r6, [r0, r6] adds r5, r1, 0 _080F237E: cmp r4, r6 beq _080F23B6 movs r1, 0 ldr r0, _080F23A0 @ =gUnknown_083DFEC4 ldr r0, [r0] lsls r3, r4, 4 movs r7, 0xC8 lsls r7, 2 adds r2, r0, r7 _080F2390: lsls r0, r1, 2 adds r0, r3 adds r0, r2, r0 ldr r0, [r0] cmp r0, 0 beq _080F23AC movs r0, 0 b _080F23C2 .align 2, 0 _080F23A0: .4byte gUnknown_083DFEC4 _080F23A4: .4byte 0x0000030e _080F23A8: .4byte 0x00006dad _080F23AC: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x3 bls _080F2390 _080F23B6: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r5 blt _080F237E _080F23C0: movs r0, 0x1 _080F23C2: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80F2360 thumb_func_start sub_80F23C8 sub_80F23C8: @ 80F23C8 push {lr} movs r2, 0 ldr r0, _080F23F4 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r3, _080F23F8 @ =0x00006dad adds r0, r1, r3 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r3, r0, 4 movs r0, 0xC8 lsls r0, 2 adds r1, r0 _080F23E2: lsls r0, r2, 2 adds r0, r3 adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 beq _080F23FC movs r0, 0 b _080F2408 .align 2, 0 _080F23F4: .4byte gUnknown_083DFEC4 _080F23F8: .4byte 0x00006dad _080F23FC: adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x3 bls _080F23E2 movs r0, 0x1 _080F2408: pop {r1} bx r1 thumb_func_end sub_80F23C8 thumb_func_start sub_80F240C sub_80F240C: @ 80F240C push {r4,lr} adds r4, r0, 0 ldr r0, _080F2454 @ =gUnknown_083DFEC4 ldr r2, [r0] movs r0, 0x30 ldrsh r1, [r4, r0] lsls r1, 2 movs r3, 0x2E ldrsh r0, [r4, r3] lsls r0, 4 adds r1, r0 movs r0, 0xC8 lsls r0, 2 adds r2, r0 adds r2, r1 movs r0, 0 str r0, [r2] adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080F2446 ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix _080F2446: adds r0, r4, 0 bl DestroySprite pop {r4} pop {r0} bx r0 .align 2, 0 _080F2454: .4byte gUnknown_083DFEC4 thumb_func_end sub_80F240C thumb_func_start sub_80F2458 sub_80F2458: @ 80F2458 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 beq _080F24A0 cmp r4, 0x1 bgt _080F246C cmp r4, 0 beq _080F2472 b _080F2502 _080F246C: cmp r4, 0x2 beq _080F24D0 b _080F2502 _080F2472: ldr r2, _080F2498 @ =gUnknown_083DFEC4 ldr r3, [r2] movs r0, 0xE0 lsls r0, 2 adds r1, r3, r0 movs r5, 0xE2 lsls r5, 2 adds r0, r3, r5 str r0, [r1] movs r0, 0xE1 lsls r0, 2 adds r1, r3, r0 movs r0, 0xA0 lsls r0, 5 strh r0, [r1] ldr r1, _080F249C @ =0x00000386 adds r0, r3, r1 strh r4, [r0] b _080F24F6 .align 2, 0 _080F2498: .4byte gUnknown_083DFEC4 _080F249C: .4byte 0x00000386 _080F24A0: ldr r4, _080F24C4 @ =gUnknown_083DFEC4 ldr r1, [r4] movs r3, 0xE0 lsls r3, 2 adds r2, r1, r3 ldr r5, _080F24C8 @ =0x00001788 adds r0, r1, r5 str r0, [r2] movs r0, 0xE1 lsls r0, 2 adds r2, r1, r0 movs r3, 0 movs r0, 0xC0 lsls r0, 4 strh r0, [r2] ldr r5, _080F24CC @ =0x00000386 adds r1, r5 b _080F24F2 .align 2, 0 _080F24C4: .4byte gUnknown_083DFEC4 _080F24C8: .4byte 0x00001788 _080F24CC: .4byte 0x00000386 _080F24D0: ldr r4, _080F2508 @ =gUnknown_083DFEC4 ldr r1, [r4] movs r0, 0xE0 lsls r0, 2 adds r2, r1, r0 ldr r3, _080F250C @ =0x00002388 adds r0, r1, r3 str r0, [r2] movs r5, 0xE1 lsls r5, 2 adds r2, r1, r5 movs r3, 0 movs r0, 0xC0 lsls r0, 5 strh r0, [r2] ldr r0, _080F2510 @ =0x00000386 adds r1, r0 _080F24F2: strh r3, [r1] adds r2, r4, 0 _080F24F6: ldr r0, [r2] movs r1, 0xE0 lsls r1, 2 adds r0, r1 bl LoadSpriteSheet _080F2502: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F2508: .4byte gUnknown_083DFEC4 _080F250C: .4byte 0x00002388 _080F2510: .4byte 0x00000386 thumb_func_end sub_80F2458 thumb_func_start sub_80F2514 sub_80F2514: @ 80F2514 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0x1 beq _080F2558 cmp r0, 0x1 bgt _080F252C cmp r0, 0 beq _080F2532 b _080F2586 _080F252C: cmp r1, 0x2 beq _080F2568 b _080F2586 _080F2532: ldr r0, _080F254C @ =gPokenavMenuOptions1_Pal str r0, [sp] ldr r1, _080F2550 @ =0xffff0000 mov r4, sp ldr r0, [sp, 0x4] ands r0, r1 str r0, [sp, 0x4] mov r0, sp bl LoadSpritePalette ldr r0, _080F2554 @ =gPokenavMenuOptions2_Pal b _080F257A .align 2, 0 _080F254C: .4byte gPokenavMenuOptions1_Pal _080F2550: .4byte 0xffff0000 _080F2554: .4byte gPokenavMenuOptions2_Pal _080F2558: ldr r0, _080F2564 @ =gPokenavConditionMenu_Pal str r0, [sp] mov r1, sp movs r0, 0 strh r0, [r1, 0x4] b _080F2580 .align 2, 0 _080F2564: .4byte gPokenavConditionMenu_Pal _080F2568: ldr r0, _080F2590 @ =gPokenavCondition6_Pal str r0, [sp] mov r4, sp movs r0, 0 strh r0, [r4, 0x4] mov r0, sp bl LoadSpritePalette ldr r0, _080F2594 @ =gPokenavCondition7_Pal _080F257A: str r0, [sp] movs r0, 0x1 strh r0, [r4, 0x4] _080F2580: mov r0, sp bl LoadSpritePalette _080F2586: add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _080F2590: .4byte gPokenavCondition6_Pal _080F2594: .4byte gPokenavCondition7_Pal thumb_func_end sub_80F2514 thumb_func_start sub_80F2598 sub_80F2598: @ 80F2598 push {r4,lr} ldr r0, _080F25F0 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F25F4 @ =0x00006d9c adds r4, r0, r1 movs r0, 0 str r0, [r4] ldr r1, _080F25F8 @ =gSaveBlock1 movs r0, 0x4 ldrsb r0, [r1, r0] lsls r0, 16 lsrs r0, 16 ldrb r1, [r1, 0x5] lsls r1, 24 asrs r1, 24 lsls r1, 16 lsrs r1, 16 bl sub_8082C0C cmp r0, 0x1 bne _080F2618 ldr r0, _080F25FC @ =gSpriteSheet_PokenavBlueLight bl LoadSpriteSheet ldr r0, _080F2600 @ =gSpritePalette_PokenavBlueLight bl LoadSpritePalette ldr r0, _080F2604 @ =gSpriteTemplate_83E4484 movs r1, 0xC movs r2, 0x60 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _080F260C lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080F2608 @ =gSprites adds r0, r1 str r0, [r4] b _080F2618 .align 2, 0 _080F25F0: .4byte gUnknown_083DFEC4 _080F25F4: .4byte 0x00006d9c _080F25F8: .4byte gSaveBlock1 _080F25FC: .4byte gSpriteSheet_PokenavBlueLight _080F2600: .4byte gSpritePalette_PokenavBlueLight _080F2604: .4byte gSpriteTemplate_83E4484 _080F2608: .4byte gSprites _080F260C: movs r0, 0x19 bl FreeSpriteTilesByTag movs r0, 0x11 bl FreeSpritePaletteByTag _080F2618: pop {r4} pop {r0} bx r0 thumb_func_end sub_80F2598 thumb_func_start sub_80F2620 sub_80F2620: @ 80F2620 push {r4,lr} ldr r0, _080F264C @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F2650 @ =0x00006d9c adds r4, r0, r1 ldr r0, [r4] cmp r0, 0 beq _080F2644 bl DestroySprite movs r0, 0x19 bl FreeSpriteTilesByTag movs r0, 0x11 bl FreeSpritePaletteByTag movs r0, 0 str r0, [r4] _080F2644: pop {r4} pop {r0} bx r0 .align 2, 0 _080F264C: .4byte gUnknown_083DFEC4 _080F2650: .4byte 0x00006d9c thumb_func_end sub_80F2620 thumb_func_start sub_80F2654 sub_80F2654: @ 80F2654 push {lr} adds r3, r0, 0 ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 ble _080F2682 movs r0, 0 strh r0, [r3, 0x2E] adds r3, 0x3E ldrb r2, [r3] lsrs r1, r2, 2 movs r0, 0x1 eors r1, r0 ands r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _080F2682: pop {r0} bx r0 thumb_func_end sub_80F2654 thumb_func_start sub_80F2688 sub_80F2688: @ 80F2688 push {lr} ldr r0, _080F26B0 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F26B4 @ =0x00000306 adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080F26B8 @ =0x00006dac adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080F26AA _080F26A0: bl sub_80F26BC lsls r0, 24 cmp r0, 0 bne _080F26A0 _080F26AA: pop {r0} bx r0 .align 2, 0 _080F26B0: .4byte gUnknown_083DFEC4 _080F26B4: .4byte 0x00000306 _080F26B8: .4byte 0x00006dac thumb_func_end sub_80F2688 thumb_func_start sub_80F26BC sub_80F26BC: @ 80F26BC push {lr} ldr r0, _080F26D8 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F26DC @ =0x00000306 adds r0, r1 ldrh r0, [r0] cmp r0, 0x7 bls _080F26CE b _080F27BC _080F26CE: lsls r0, 2 ldr r1, _080F26E0 @ =_080F26E4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F26D8: .4byte gUnknown_083DFEC4 _080F26DC: .4byte 0x00000306 _080F26E0: .4byte _080F26E4 .align 2, 0 _080F26E4: .4byte _080F2704 .4byte _080F271C .4byte _080F2734 .4byte _080F274C .4byte _080F2764 .4byte _080F277C .4byte _080F2794 .4byte _080F27B0 _080F2704: ldr r0, _080F2710 @ =gPokenavMainMenu_Gfx ldr r1, _080F2714 @ =gUnknown_083DFEC4 ldr r1, [r1] ldr r2, _080F2718 @ =0x00003b98 b _080F279C .align 2, 0 _080F2710: .4byte gPokenavMainMenu_Gfx _080F2714: .4byte gUnknown_083DFEC4 _080F2718: .4byte 0x00003b98 _080F271C: ldr r0, _080F2728 @ =gPokenavConditionMenuHeader_Gfx ldr r1, _080F272C @ =gUnknown_083DFEC4 ldr r1, [r1] ldr r2, _080F2730 @ =0x00004198 b _080F279C .align 2, 0 _080F2728: .4byte gPokenavConditionMenuHeader_Gfx _080F272C: .4byte gUnknown_083DFEC4 _080F2730: .4byte 0x00004198 _080F2734: ldr r0, _080F2740 @ =gPokenavRibbonsHeader_Gfx ldr r1, _080F2744 @ =gUnknown_083DFEC4 ldr r1, [r1] ldr r2, _080F2748 @ =0x00004d98 b _080F279C .align 2, 0 _080F2740: .4byte gPokenavRibbonsHeader_Gfx _080F2744: .4byte gUnknown_083DFEC4 _080F2748: .4byte 0x00004d98 _080F274C: ldr r0, _080F2758 @ =gPokenavHoennMapHeader_Gfx ldr r1, _080F275C @ =gUnknown_083DFEC4 ldr r1, [r1] ldr r2, _080F2760 @ =0x00005398 b _080F279C .align 2, 0 _080F2758: .4byte gPokenavHoennMapHeader_Gfx _080F275C: .4byte gUnknown_083DFEC4 _080F2760: .4byte 0x00005398 _080F2764: ldr r0, _080F2770 @ =gPokenavConditionMenuOptions_Gfx ldr r1, _080F2774 @ =gUnknown_083DFEC4 ldr r1, [r1] ldr r2, _080F2778 @ =0x00005f98 b _080F279C .align 2, 0 _080F2770: .4byte gPokenavConditionMenuOptions_Gfx _080F2774: .4byte gUnknown_083DFEC4 _080F2778: .4byte 0x00005f98 _080F277C: ldr r0, _080F2788 @ =gPokenavConditionMenuOptions2_Gfx ldr r1, _080F278C @ =gUnknown_083DFEC4 ldr r1, [r1] ldr r2, _080F2790 @ =0x00006798 b _080F279C .align 2, 0 _080F2788: .4byte gPokenavConditionMenuOptions2_Gfx _080F278C: .4byte gUnknown_083DFEC4 _080F2790: .4byte 0x00006798 _080F2794: ldr r0, _080F27A4 @ =gPokenavTrainersEyesHeader_Gfx ldr r1, _080F27A8 @ =gUnknown_083DFEC4 ldr r1, [r1] ldr r2, _080F27AC @ =0x00004798 _080F279C: adds r1, r2 bl LZ77UnCompWram b _080F27C0 .align 2, 0 _080F27A4: .4byte gPokenavTrainersEyesHeader_Gfx _080F27A8: .4byte gUnknown_083DFEC4 _080F27AC: .4byte 0x00004798 _080F27B0: ldr r0, _080F27B8 @ =gUnknown_083E449C bl LoadSpritePalettes b _080F27C0 .align 2, 0 _080F27B8: .4byte gUnknown_083E449C _080F27BC: movs r0, 0 b _080F27D0 _080F27C0: ldr r0, _080F27D4 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r0, _080F27D8 @ =0x00000306 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] movs r0, 0x1 _080F27D0: pop {r1} bx r1 .align 2, 0 _080F27D4: .4byte gUnknown_083DFEC4 _080F27D8: .4byte 0x00000306 thumb_func_end sub_80F26BC thumb_func_start sub_80F27DC sub_80F27DC: @ 80F27DC push {lr} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 cmp r0, 0xB bls _080F27EA b _080F29A0 _080F27EA: lsls r0, 2 ldr r1, _080F27F4 @ =_080F27F8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F27F4: .4byte _080F27F8 .align 2, 0 _080F27F8: .4byte _080F2828 .4byte _080F2858 .4byte _080F28B8 .4byte _080F2888 .4byte _080F28E8 .4byte _080F2918 .4byte _080F2928 .4byte _080F2978 .4byte _080F2938 .4byte _080F2948 .4byte _080F2968 .4byte _080F2958 _080F2828: ldr r0, _080F2848 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F284C @ =0x00003b98 adds r0, r1 str r0, [sp] ldr r1, _080F2850 @ =0xffff0000 ldr r0, [sp, 0x4] ands r0, r1 movs r1, 0xC0 lsls r1, 3 orrs r0, r1 ldr r1, _080F2854 @ =0x0000ffff ands r0, r1 adds r1, 0x1 b _080F2996 .align 2, 0 _080F2848: .4byte gUnknown_083DFEC4 _080F284C: .4byte 0x00003b98 _080F2850: .4byte 0xffff0000 _080F2854: .4byte 0x0000ffff _080F2858: ldr r0, _080F2878 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F287C @ =0x00004198 adds r0, r1 str r0, [sp] ldr r1, _080F2880 @ =0xffff0000 ldr r0, [sp, 0x4] ands r0, r1 movs r1, 0xC0 lsls r1, 3 orrs r0, r1 ldr r1, _080F2884 @ =0x0000ffff ands r0, r1 adds r1, 0x1 b _080F2996 .align 2, 0 _080F2878: .4byte gUnknown_083DFEC4 _080F287C: .4byte 0x00004198 _080F2880: .4byte 0xffff0000 _080F2884: .4byte 0x0000ffff _080F2888: ldr r0, _080F28A8 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F28AC @ =0x00004798 adds r0, r1 str r0, [sp] ldr r1, _080F28B0 @ =0xffff0000 ldr r0, [sp, 0x4] ands r0, r1 movs r1, 0xC0 lsls r1, 3 orrs r0, r1 ldr r1, _080F28B4 @ =0x0000ffff ands r0, r1 adds r1, 0x1 b _080F2996 .align 2, 0 _080F28A8: .4byte gUnknown_083DFEC4 _080F28AC: .4byte 0x00004798 _080F28B0: .4byte 0xffff0000 _080F28B4: .4byte 0x0000ffff _080F28B8: ldr r0, _080F28D8 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F28DC @ =0x00004d98 adds r0, r1 str r0, [sp] ldr r1, _080F28E0 @ =0xffff0000 ldr r0, [sp, 0x4] ands r0, r1 movs r1, 0xC0 lsls r1, 3 orrs r0, r1 ldr r1, _080F28E4 @ =0x0000ffff ands r0, r1 adds r1, 0x1 b _080F2996 .align 2, 0 _080F28D8: .4byte gUnknown_083DFEC4 _080F28DC: .4byte 0x00004d98 _080F28E0: .4byte 0xffff0000 _080F28E4: .4byte 0x0000ffff _080F28E8: ldr r0, _080F2908 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F290C @ =0x00005398 adds r0, r1 str r0, [sp] ldr r1, _080F2910 @ =0xffff0000 ldr r0, [sp, 0x4] ands r0, r1 movs r1, 0xC0 lsls r1, 4 orrs r0, r1 ldr r1, _080F2914 @ =0x0000ffff ands r0, r1 adds r1, 0x1 b _080F2996 .align 2, 0 _080F2908: .4byte gUnknown_083DFEC4 _080F290C: .4byte 0x00005398 _080F2910: .4byte 0xffff0000 _080F2914: .4byte 0x0000ffff _080F2918: ldr r0, _080F2920 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F2924 @ =0x00005f98 b _080F297E .align 2, 0 _080F2920: .4byte gUnknown_083DFEC4 _080F2924: .4byte 0x00005f98 _080F2928: ldr r0, _080F2930 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F2934 @ =0x00006198 b _080F297E .align 2, 0 _080F2930: .4byte gUnknown_083DFEC4 _080F2934: .4byte 0x00006198 _080F2938: ldr r0, _080F2940 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F2944 @ =0x00006398 b _080F297E .align 2, 0 _080F2940: .4byte gUnknown_083DFEC4 _080F2944: .4byte 0x00006398 _080F2948: ldr r0, _080F2950 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F2954 @ =0x00006598 b _080F297E .align 2, 0 _080F2950: .4byte gUnknown_083DFEC4 _080F2954: .4byte 0x00006598 _080F2958: ldr r0, _080F2960 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F2964 @ =0x00006998 b _080F297E .align 2, 0 _080F2960: .4byte gUnknown_083DFEC4 _080F2964: .4byte 0x00006998 _080F2968: ldr r0, _080F2970 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F2974 @ =0x00006798 b _080F297E .align 2, 0 _080F2970: .4byte gUnknown_083DFEC4 _080F2974: .4byte 0x00006798 _080F2978: ldr r0, _080F29A8 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F29AC @ =0x00006b98 _080F297E: adds r0, r1 str r0, [sp] ldr r1, _080F29B0 @ =0xffff0000 ldr r0, [sp, 0x4] ands r0, r1 movs r1, 0x80 lsls r1, 2 orrs r0, r1 ldr r1, _080F29B4 @ =0x0000ffff ands r0, r1 movs r1, 0x80 lsls r1, 10 _080F2996: orrs r0, r1 str r0, [sp, 0x4] mov r0, sp bl LoadSpriteSheet _080F29A0: add sp, 0x8 pop {r0} bx r0 .align 2, 0 _080F29A8: .4byte gUnknown_083DFEC4 _080F29AC: .4byte 0x00006b98 _080F29B0: .4byte 0xffff0000 _080F29B4: .4byte 0x0000ffff thumb_func_end sub_80F27DC thumb_func_start sub_80F29B8 sub_80F29B8: @ 80F29B8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 lsls r0, 24 lsrs r7, r0, 24 movs r0, 0 mov r8, r0 cmp r7, 0xB bls _080F29D2 b _080F2BA6 _080F29D2: lsls r0, r7, 2 ldr r1, _080F29DC @ =_080F29E0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F29DC: .4byte _080F29E0 .align 2, 0 _080F29E0: .4byte _080F2A10 .4byte _080F2A10 .4byte _080F2A10 .4byte _080F2A10 .4byte _080F2A58 .4byte _080F2A94 .4byte _080F2A94 .4byte _080F2A98 .4byte _080F2A94 .4byte _080F2A94 .4byte _080F2A98 .4byte _080F2A98 _080F2A10: ldr r3, _080F2A44 @ =0x0000ffa0 ldr r0, _080F2A48 @ =gUnknown_083DFEC4 ldr r2, [r0] movs r1, 0xC3 lsls r1, 2 adds r0, r2, r1 ldrh r1, [r0] movs r0, 0x31 subs r0, r1 lsls r0, 16 lsrs r0, 16 movs r4, 0x8 str r4, [sp] movs r1, 0x20 str r1, [sp, 0x4] movs r1, 0x40 ldr r4, _080F2A4C @ =0x00003b88 adds r4, r2 mov r9, r4 ldr r2, _080F2A50 @ =gSpriteTemplate_83E44F8 mov r8, r2 cmp r7, 0x3 beq _080F2AC8 ldr r4, _080F2A54 @ =gSpriteTemplate_83E44E0 mov r8, r4 b _080F2AC8 .align 2, 0 _080F2A44: .4byte 0x0000ffa0 _080F2A48: .4byte gUnknown_083DFEC4 _080F2A4C: .4byte 0x00003b88 _080F2A50: .4byte gSpriteTemplate_83E44F8 _080F2A54: .4byte gSpriteTemplate_83E44E0 _080F2A58: movs r3, 0x88 lsls r3, 1 ldr r0, _080F2A84 @ =gUnknown_083DFEC4 ldr r2, [r0] movs r1, 0xC3 lsls r1, 2 adds r0, r2, r1 ldrh r1, [r0] movs r0, 0x31 subs r0, r1 lsls r0, 16 lsrs r0, 16 ldr r4, _080F2A88 @ =0x0000fff8 str r4, [sp] movs r1, 0x98 str r1, [sp, 0x4] movs r1, 0x40 ldr r4, _080F2A8C @ =gSpriteTemplate_83E44E0 mov r8, r4 ldr r4, _080F2A90 @ =0x00003b88 b _080F2AC4 .align 2, 0 _080F2A84: .4byte gUnknown_083DFEC4 _080F2A88: .4byte 0x0000fff8 _080F2A8C: .4byte gSpriteTemplate_83E44E0 _080F2A90: .4byte 0x00003b88 _080F2A94: ldr r0, _080F2B40 @ =gSpriteTemplate_83E4530 mov r8, r0 _080F2A98: mov r1, r8 cmp r1, 0 bne _080F2AA2 ldr r2, _080F2B44 @ =gSpriteTemplate_83E4548 mov r8, r2 _080F2AA2: ldr r3, _080F2B48 @ =0x0000ffa0 ldr r0, _080F2B4C @ =gUnknown_083DFEC4 ldr r2, [r0] movs r4, 0xC3 lsls r4, 2 adds r0, r2, r4 ldrh r1, [r0] movs r0, 0x44 subs r0, r1 lsls r0, 16 lsrs r0, 16 movs r1, 0x8 str r1, [sp] movs r4, 0x10 str r4, [sp, 0x4] movs r1, 0x20 ldr r4, _080F2B50 @ =0x00003b90 _080F2AC4: adds r4, r2 mov r9, r4 _080F2AC8: movs r6, 0 lsls r1, 16 str r1, [sp, 0x10] lsls r3, 16 str r3, [sp, 0x8] lsls r0, 16 str r0, [sp, 0xC] ldr r0, _080F2B54 @ =gSprites mov r10, r0 _080F2ADA: ldr r1, [sp, 0x10] asrs r0, r1, 16 adds r5, r6, 0 muls r5, r0 ldr r2, [sp, 0x8] asrs r1, r2, 16 adds r1, r5 lsls r1, 16 asrs r1, 16 mov r0, r8 ldr r3, [sp, 0xC] asrs r2, r3, 16 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x40 beq _080F2B9C lsls r0, r4, 4 adds r1, r0, r4 lsls r1, 2 mov r2, r10 adds r3, r1, r2 mov r1, sp ldrh r1, [r1] strh r1, [r3, 0x2E] ldr r2, [sp, 0x4] adds r1, r2, r5 strh r1, [r3, 0x30] strh r6, [r3, 0x32] strh r7, [r3, 0x34] adds r5, r0, 0 cmp r7, 0x4 bne _080F2B5C cmp r6, 0x1 bne _080F2B5C ldr r0, _080F2B4C @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F2B58 @ =0x00006e90 adds r0, r1 ldrb r0, [r0] movs r1, 0x2 cmp r0, 0 bne _080F2B36 movs r1, 0x1 _080F2B36: adds r0, r3, 0 bl StartSpriteAnim b _080F2B6A .align 2, 0 _080F2B40: .4byte gSpriteTemplate_83E4530 _080F2B44: .4byte gSpriteTemplate_83E4548 _080F2B48: .4byte 0x0000ffa0 _080F2B4C: .4byte gUnknown_083DFEC4 _080F2B50: .4byte 0x00003b90 _080F2B54: .4byte gSprites _080F2B58: .4byte 0x00006e90 _080F2B5C: adds r0, r5, r4 lsls r0, 2 add r0, r10 lsls r1, r6, 24 lsrs r1, 24 bl StartSpriteAnim _080F2B6A: ldr r2, _080F2BB8 @ =gSprites mov r12, r2 cmp r7, 0x3 bhi _080F2B90 cmp r6, 0x1 bne _080F2B90 adds r2, r5, r4 lsls r2, 2 add r2, r10 ldrb r3, [r2, 0x1] movs r1, 0x3F adds r0, r1, 0 ands r0, r3 strb r0, [r2, 0x1] ldrb r0, [r2, 0x3] ands r1, r0 movs r0, 0x80 orrs r1, r0 strb r1, [r2, 0x3] _080F2B90: lsls r1, r6, 2 add r1, r9 adds r0, r5, r4 lsls r0, 2 add r0, r12 str r0, [r1] _080F2B9C: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x1 bls _080F2ADA _080F2BA6: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F2BB8: .4byte gSprites thumb_func_end sub_80F29B8 thumb_func_start sub_80F2BBC sub_80F2BBC: @ 80F2BBC push {r4,lr} adds r2, r0, 0 ldrh r0, [r2, 0x20] ldrh r1, [r2, 0x2E] adds r3, r0, r1 strh r3, [r2, 0x20] lsls r0, 16 asrs r4, r0, 16 movs r0, 0x30 ldrsh r1, [r2, r0] cmp r4, r1 bgt _080F2BE0 lsls r0, r3, 16 asrs r0, 16 cmp r0, r1 bge _080F2BE8 cmp r4, r1 blt _080F2C08 _080F2BE0: lsls r0, r3, 16 asrs r0, 16 cmp r0, r1 bgt _080F2C08 _080F2BE8: ldrh r0, [r2, 0x30] strh r0, [r2, 0x20] movs r1, 0x34 ldrsh r0, [r2, r1] cmp r0, 0x4 bne _080F2C04 movs r1, 0x32 ldrsh r0, [r2, r1] cmp r0, 0x1 bne _080F2C04 ldr r0, _080F2C00 @ =sub_80F2C58 b _080F2C06 .align 2, 0 _080F2C00: .4byte sub_80F2C58 _080F2C04: ldr r0, _080F2C10 @ =SpriteCallbackDummy _080F2C06: str r0, [r2, 0x1C] _080F2C08: pop {r4} pop {r0} bx r0 .align 2, 0 _080F2C10: .4byte SpriteCallbackDummy thumb_func_end sub_80F2BBC thumb_func_start sub_80F2C14 sub_80F2C14: @ 80F2C14 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x20] ldrh r1, [r4, 0x2E] subs r0, r1 strh r0, [r4, 0x20] adds r0, 0x20 lsls r0, 16 movs r1, 0x98 lsls r1, 17 cmp r0, r1 bls _080F2C50 movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0x1 bne _080F2C4A movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0x4 bgt _080F2C44 movs r0, 0x1 bl FreeSpriteTilesByTag b _080F2C4A _080F2C44: movs r0, 0x2 bl FreeSpriteTilesByTag _080F2C4A: adds r0, r4, 0 bl DestroySprite _080F2C50: pop {r4} pop {r0} bx r0 thumb_func_end sub_80F2C14 thumb_func_start sub_80F2C58 sub_80F2C58: @ 80F2C58 push {lr} adds r2, r0, 0 ldr r0, _080F2C78 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F2C7C @ =0x00006e90 adds r0, r1 ldrb r0, [r0] movs r1, 0x2 cmp r0, 0 bne _080F2C6E movs r1, 0x1 _080F2C6E: adds r0, r2, 0 bl StartSpriteAnim pop {r0} bx r0 .align 2, 0 _080F2C78: .4byte gUnknown_083DFEC4 _080F2C7C: .4byte 0x00006e90 thumb_func_end sub_80F2C58 thumb_func_start sub_80F2C80 sub_80F2C80: @ 80F2C80 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080F2CB0 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F2CB4 @ =0x00000306 adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080F2CB8 @ =0x00006dac adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080F2CA8 _080F2C9C: adds r0, r4, 0 bl sub_80F2CBC lsls r0, 24 cmp r0, 0 bne _080F2C9C _080F2CA8: pop {r4} pop {r0} bx r0 .align 2, 0 _080F2CB0: .4byte gUnknown_083DFEC4 _080F2CB4: .4byte 0x00000306 _080F2CB8: .4byte 0x00006dac thumb_func_end sub_80F2C80 thumb_func_start sub_80F2CBC sub_80F2CBC: @ 80F2CBC push {r4,lr} lsls r0, 24 lsrs r1, r0, 24 ldr r0, _080F2CD8 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r2, _080F2CDC @ =0x00000306 adds r4, r0, r2 ldrh r0, [r4] cmp r0, 0 beq _080F2CE0 cmp r0, 0x1 beq _080F2CF0 b _080F2CFC .align 2, 0 _080F2CD8: .4byte gUnknown_083DFEC4 _080F2CDC: .4byte 0x00000306 _080F2CE0: adds r0, r1, 0 bl sub_80F27DC ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] movs r0, 0x1 b _080F2CFE _080F2CF0: adds r0, r1, 0 bl sub_80F29B8 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _080F2CFC: movs r0, 0 _080F2CFE: pop {r4} pop {r1} bx r1 thumb_func_end sub_80F2CBC thumb_func_start sub_80F2D04 sub_80F2D04: @ 80F2D04 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080F2D3C movs r1, 0 ldr r0, _080F2D30 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r3, _080F2D34 @ =0x00003b88 adds r2, r0, r3 ldr r3, _080F2D38 @ =sub_80F2C14 _080F2D1A: lsls r0, r1, 2 adds r0, r2, r0 ldr r0, [r0] str r3, [r0, 0x1C] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x1 bls _080F2D1A b _080F2D5A .align 2, 0 _080F2D30: .4byte gUnknown_083DFEC4 _080F2D34: .4byte 0x00003b88 _080F2D38: .4byte sub_80F2C14 _080F2D3C: movs r1, 0 ldr r0, _080F2D60 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r3, _080F2D64 @ =0x00003b90 adds r2, r0, r3 ldr r3, _080F2D68 @ =sub_80F2C14 _080F2D48: lsls r0, r1, 2 adds r0, r2, r0 ldr r0, [r0] str r3, [r0, 0x1C] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x1 bls _080F2D48 _080F2D5A: pop {r0} bx r0 .align 2, 0 _080F2D60: .4byte gUnknown_083DFEC4 _080F2D64: .4byte 0x00003b90 _080F2D68: .4byte sub_80F2C14 thumb_func_end sub_80F2D04 thumb_func_start sub_80F2D6C sub_80F2D6C: @ 80F2D6C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080F2DA4 movs r0, 0x1 bl FreeSpriteTilesByTag movs r4, 0 ldr r0, _080F2D9C @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F2DA0 @ =0x00003b88 adds r5, r0, r1 _080F2D86: lsls r0, r4, 2 adds r0, r5, r0 ldr r0, [r0] bl DestroySprite adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1 bls _080F2D86 b _080F2DC8 .align 2, 0 _080F2D9C: .4byte gUnknown_083DFEC4 _080F2DA0: .4byte 0x00003b88 _080F2DA4: movs r0, 0x2 bl FreeSpriteTilesByTag movs r4, 0 ldr r0, _080F2DD0 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F2DD4 @ =0x00003b90 adds r5, r0, r1 _080F2DB4: lsls r0, r4, 2 adds r0, r5, r0 ldr r0, [r0] bl DestroySprite adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1 bls _080F2DB4 _080F2DC8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F2DD0: .4byte gUnknown_083DFEC4 _080F2DD4: .4byte 0x00003b90 thumb_func_end sub_80F2D6C thumb_func_start sub_80F2DD8 sub_80F2DD8: @ 80F2DD8 push {lr} movs r0, 0x7 movs r1, 0x7 bl sub_80FBB3C movs r0, 0x8 movs r1, 0x8 bl sub_80FBCF0 bl sub_80FBF94 pop {r0} bx r0 thumb_func_end sub_80F2DD8 thumb_func_start sub_80F2DF4 sub_80F2DF4: @ 80F2DF4 push {lr} bl sub_80FAB10 pop {r0} bx r0 thumb_func_end sub_80F2DF4 thumb_func_start sub_80F2E00 sub_80F2E00: @ 80F2E00 ldr r1, _080F2E10 @ =gUnknown_083DFEC4 ldr r1, [r1] ldr r2, _080F2E14 @ =0x00008766 adds r1, r2 ldrh r1, [r1] adds r1, 0x26 strh r1, [r0, 0x20] bx lr .align 2, 0 _080F2E10: .4byte gUnknown_083DFEC4 _080F2E14: .4byte 0x00008766 thumb_func_end sub_80F2E00 thumb_func_start sub_80F2E18 sub_80F2E18: @ 80F2E18 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x28 lsls r0, 24 lsrs r3, r0, 24 ldr r0, _080F2EA8 @ =gUnknown_083DFEC4 ldr r4, [r0] ldr r0, _080F2EAC @ =0x00008768 adds r7, r4, r0 ldr r1, [r7] mov r8, r1 cmp r1, 0 bne _080F2EFC ldr r0, _080F2EB0 @ =gUnknown_083E4568 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x20] str r1, [sp, 0x24] mov r1, sp ldr r0, _080F2EB4 @ =gSpriteTemplate_83E4570 ldm r0!, {r2,r5,r6} stm r1!, {r2,r5,r6} ldm r0!, {r2,r5,r6} stm r1!, {r2,r5,r6} ldr r0, _080F2EB8 @ =gUnknown_083E4588 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x18] str r1, [sp, 0x1C] lsls r0, r3, 13 ldr r1, _080F2EBC @ =0x0000d1e4 adds r0, r1 adds r0, r4, r0 str r0, [sp, 0x20] lsls r0, r3, 7 adds r0, r4, r0 str r0, [sp, 0x18] add r0, sp, 0x18 bl LoadSpritePalette lsls r0, 24 lsrs r0, 24 ldr r2, _080F2EC0 @ =0x0000d1dc adds r5, r4, r2 strh r0, [r5] add r0, sp, 0x20 bl LoadSpriteSheet ldr r1, _080F2EC4 @ =0x0000d1de adds r6, r4, r1 strh r0, [r6] mov r0, sp movs r1, 0x26 movs r2, 0x68 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 bne _080F2EC8 movs r0, 0x6 bl FreeSpriteTilesByTag movs r0, 0x6 bl FreeSpritePaletteByTag mov r2, r8 str r2, [r7] b _080F2F26 .align 2, 0 _080F2EA8: .4byte gUnknown_083DFEC4 _080F2EAC: .4byte 0x00008768 _080F2EB0: .4byte gUnknown_083E4568 _080F2EB4: .4byte gSpriteTemplate_83E4570 _080F2EB8: .4byte gUnknown_083E4588 _080F2EBC: .4byte 0x0000d1e4 _080F2EC0: .4byte 0x0000d1dc _080F2EC4: .4byte 0x0000d1de _080F2EC8: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080F2EF0 @ =gSprites adds r0, r1 str r0, [r7] ldr r0, _080F2EF4 @ =0x0000d1e0 adds r1, r4, r0 ldrh r0, [r6] lsls r0, 5 ldr r2, _080F2EF8 @ =0x06010000 adds r0, r2 str r0, [r1] ldrh r0, [r5] lsls r0, 4 movs r6, 0x80 lsls r6, 1 adds r0, r6 strh r0, [r5] b _080F2F26 .align 2, 0 _080F2EF0: .4byte gSprites _080F2EF4: .4byte 0x0000d1e0 _080F2EF8: .4byte 0x06010000 _080F2EFC: lsls r0, r3, 13 ldr r1, _080F2F34 @ =0x0000d1e4 adds r0, r1 adds r0, r4, r0 ldr r2, _080F2F38 @ =0x0000d1e0 adds r1, r4, r2 ldr r2, [r1] ldr r1, _080F2F3C @ =0x040000d4 str r0, [r1] str r2, [r1, 0x4] ldr r0, _080F2F40 @ =0x80000400 str r0, [r1, 0x8] ldr r0, [r1, 0x8] lsls r0, r3, 7 adds r0, r4, r0 ldr r5, _080F2F44 @ =0x0000d1dc adds r1, r4, r5 ldrh r1, [r1] movs r2, 0x20 bl LoadPalette _080F2F26: add sp, 0x28 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F2F34: .4byte 0x0000d1e4 _080F2F38: .4byte 0x0000d1e0 _080F2F3C: .4byte 0x040000d4 _080F2F40: .4byte 0x80000400 _080F2F44: .4byte 0x0000d1dc thumb_func_end sub_80F2E18 thumb_func_start sub_80F2F48 sub_80F2F48: @ 80F2F48 push {r4,lr} ldr r0, _080F2F74 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F2F78 @ =0x00008768 adds r4, r0, r1 ldr r0, [r4] cmp r0, 0 beq _080F2F6C bl DestroySprite movs r0, 0x6 bl FreeSpriteTilesByTag movs r0, 0x6 bl FreeSpritePaletteByTag movs r0, 0 str r0, [r4] _080F2F6C: pop {r4} pop {r0} bx r0 .align 2, 0 _080F2F74: .4byte gUnknown_083DFEC4 _080F2F78: .4byte 0x00008768 thumb_func_end sub_80F2F48 thumb_func_start sub_80F2F7C sub_80F2F7C: @ 80F2F7C push {lr} lsls r0, 24 lsrs r0, 24 bl sub_80F2E18 ldr r0, _080F2FA0 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F2FA4 @ =0x0000ced0 adds r2, r0, r1 ldr r1, _080F2FA8 @ =0x00008768 adds r0, r1 ldr r1, [r0] str r1, [r2] ldr r0, _080F2FAC @ =sub_80F2FEC str r0, [r1, 0x1C] pop {r0} bx r0 .align 2, 0 _080F2FA0: .4byte gUnknown_083DFEC4 _080F2FA4: .4byte 0x0000ced0 _080F2FA8: .4byte 0x00008768 _080F2FAC: .4byte sub_80F2FEC thumb_func_end sub_80F2F7C thumb_func_start sub_80F2FB0 sub_80F2FB0: @ 80F2FB0 push {r4,r5,lr} ldr r0, _080F2FE0 @ =gUnknown_083DFEC4 ldr r5, [r0] ldr r0, _080F2FE4 @ =0x0000ced0 adds r4, r5, r0 ldr r0, [r4] cmp r0, 0 beq _080F2FDA bl DestroySprite movs r0, 0x6 bl FreeSpriteTilesByTag movs r0, 0x6 bl FreeSpritePaletteByTag movs r1, 0 str r1, [r4] ldr r2, _080F2FE8 @ =0x00008768 adds r0, r5, r2 str r1, [r0] _080F2FDA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F2FE0: .4byte gUnknown_083DFEC4 _080F2FE4: .4byte 0x0000ced0 _080F2FE8: .4byte 0x00008768 thumb_func_end sub_80F2FB0 thumb_func_start sub_80F2FEC sub_80F2FEC: @ 80F2FEC ldr r1, _080F3000 @ =gUnknown_083DFEC4 ldr r1, [r1] ldr r2, _080F3004 @ =0x0000d15a adds r1, r2 ldrh r1, [r1] adds r1, 0x28 strh r1, [r0, 0x20] movs r1, 0x68 strh r1, [r0, 0x22] bx lr .align 2, 0 _080F3000: .4byte gUnknown_083DFEC4 _080F3004: .4byte 0x0000d15a thumb_func_end sub_80F2FEC thumb_func_start sub_80F3008 sub_80F3008: @ 80F3008 push {r4,r5,lr} sub sp, 0x20 lsls r0, 24 lsrs r2, r0, 24 mov r1, sp ldr r0, _080F3060 @ =gUnknown_083E4590 ldm r0!, {r3-r5} stm r1!, {r3-r5} ldm r0!, {r3-r5} stm r1!, {r3-r5} ldr r0, _080F3064 @ =gUnknown_083E45A8 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x18] str r1, [sp, 0x1C] cmp r2, 0x2 bgt _080F3032 cmp r2, 0x1 blt _080F3032 ldr r0, _080F3068 @ =gUnknown_08E9F988 str r0, [sp, 0x18] _080F3032: mov r0, sp bl LoadSpriteSheets add r0, sp, 0x18 bl LoadSpritePalette ldr r0, _080F306C @ =gSpriteTemplate_83E45B8 movs r1, 0x5F movs r2, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 bne _080F3078 ldr r0, _080F3070 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F3074 @ =0x000087cc adds r0, r1 movs r1, 0 str r1, [r0] b _080F3120 .align 2, 0 _080F3060: .4byte gUnknown_083E4590 _080F3064: .4byte gUnknown_083E45A8 _080F3068: .4byte gUnknown_08E9F988 _080F306C: .4byte gSpriteTemplate_83E45B8 _080F3070: .4byte gUnknown_083DFEC4 _080F3074: .4byte 0x000087cc _080F3078: ldr r0, _080F30F4 @ =gUnknown_083DFEC4 ldr r2, [r0] ldr r3, _080F30F8 @ =0x000087cc adds r2, r3 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080F30FC @ =gSprites adds r0, r1 str r0, [r2] movs r4, 0 movs r5, 0 _080F3090: lsls r2, r4, 7 adds r2, 0x8 lsls r2, 16 asrs r2, 16 ldr r0, _080F3100 @ =gSpriteTemplate_83E45F0 movs r1, 0xA8 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _080F3108 ldr r0, _080F30F4 @ =gUnknown_083DFEC4 ldr r2, [r0] lsls r0, r4, 2 ldr r3, _080F3104 @ =0x000087d0 adds r2, r3 adds r2, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080F30FC @ =gSprites adds r3, r0, r1 str r3, [r2] adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] strh r5, [r3, 0x2E] strh r5, [r3, 0x30] movs r0, 0x1 cmp r4, 0 bne _080F30DE movs r1, 0x1 negs r1, r1 adds r0, r1, 0 _080F30DE: strh r0, [r3, 0x32] strh r4, [r3, 0x34] movs r0, 0x1 strh r0, [r3, 0x36] lsls r1, r4, 24 lsrs r1, 24 adds r0, r3, 0 bl StartSpriteAnim b _080F3116 .align 2, 0 _080F30F4: .4byte gUnknown_083DFEC4 _080F30F8: .4byte 0x000087cc _080F30FC: .4byte gSprites _080F3100: .4byte gSpriteTemplate_83E45F0 _080F3104: .4byte 0x000087d0 _080F3108: ldr r0, _080F3128 @ =gUnknown_083DFEC4 ldr r0, [r0] lsls r1, r4, 2 ldr r2, _080F312C @ =0x000087d0 adds r0, r2 adds r0, r1 str r5, [r0] _080F3116: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1 bls _080F3090 _080F3120: add sp, 0x20 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F3128: .4byte gUnknown_083DFEC4 _080F312C: .4byte 0x000087d0 thumb_func_end sub_80F3008 thumb_func_start sub_80F3130 sub_80F3130: @ 80F3130 push {r4-r6,lr} ldr r0, _080F3184 @ =gUnknown_083DFEC4 ldr r6, [r0] ldr r0, _080F3188 @ =0x000087cc adds r4, r6, r0 ldr r0, [r4] cmp r0, 0 beq _080F3154 bl DestroySprite movs r0, 0x9 bl FreeSpriteTilesByTag movs r0, 0x9 bl FreeSpritePaletteByTag movs r0, 0 str r0, [r4] _080F3154: movs r5, 0 ldr r0, _080F318C @ =0x000087d0 adds r6, r0 _080F315A: lsls r0, r5, 2 adds r4, r6, r0 ldr r0, [r4] cmp r0, 0 beq _080F316C bl DestroySprite movs r0, 0 str r0, [r4] _080F316C: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x1 bls _080F315A movs r0, 0xA bl FreeSpriteTilesByTag pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F3184: .4byte gUnknown_083DFEC4 _080F3188: .4byte 0x000087cc _080F318C: .4byte 0x000087d0 thumb_func_end sub_80F3130 thumb_func_start sub_80F3190 sub_80F3190: @ 80F3190 ldr r1, _080F31A4 @ =gUnknown_083DFEC4 ldr r1, [r1] ldr r2, _080F31A8 @ =0x0000876c adds r1, r2 movs r2, 0 ldrsh r1, [r1, r2] lsls r1, 4 adds r1, 0x10 strh r1, [r0, 0x22] bx lr .align 2, 0 _080F31A4: .4byte gUnknown_083DFEC4 _080F31A8: .4byte 0x0000876c thumb_func_end sub_80F3190 thumb_func_start sub_80F31AC sub_80F31AC: @ 80F31AC push {r4,r5,lr} adds r3, r0, 0 ldr r0, _080F31E8 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r2, _080F31EC @ =0x000087c9 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _080F325C movs r4, 0x36 ldrsh r0, [r3, r4] cmp r0, 0 beq _080F3226 movs r5, 0x34 ldrsh r0, [r3, r5] cmp r0, 0 bne _080F31F4 movs r2, 0 ldr r4, _080F31F0 @ =0x00008770 adds r0, r1, r4 movs r5, 0 ldrsh r0, [r0, r5] cmp r0, 0 bne _080F31DE movs r2, 0x1 _080F31DE: movs r0, 0x3E adds r0, r3 mov r12, r0 lsls r2, 2 b _080F3214 .align 2, 0 _080F31E8: .4byte gUnknown_083DFEC4 _080F31EC: .4byte 0x000087c9 _080F31F0: .4byte 0x00008770 _080F31F4: movs r4, 0 ldr r2, _080F3250 @ =0x00008772 adds r0, r1, r2 ldr r5, _080F3254 @ =0x00008774 adds r1, r5 movs r5, 0 ldrsh r2, [r0, r5] movs r5, 0 ldrsh r0, [r1, r5] cmp r2, r0 bne _080F320C movs r4, 0x1 _080F320C: movs r0, 0x3E adds r0, r3 mov r12, r0 lsls r2, r4, 2 _080F3214: ldrb r1, [r0] movs r0, 0x5 negs r0, r0 ands r0, r1 orrs r0, r2 mov r1, r12 strb r0, [r1] movs r0, 0 strh r0, [r3, 0x36] _080F3226: ldrh r0, [r3, 0x2E] adds r0, 0x1 movs r1, 0 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 ble _080F325C strh r1, [r3, 0x2E] ldrh r0, [r3, 0x30] adds r0, 0x1 strh r0, [r3, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bgt _080F3258 ldrh r0, [r3, 0x32] ldrh r2, [r3, 0x26] adds r0, r2 strh r0, [r3, 0x26] b _080F325C .align 2, 0 _080F3250: .4byte 0x00008772 _080F3254: .4byte 0x00008774 _080F3258: strh r1, [r3, 0x30] strh r1, [r3, 0x26] _080F325C: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80F31AC thumb_func_start sub_80F3264 sub_80F3264: @ 80F3264 push {lr} movs r1, 0 ldr r0, _080F328C @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r3, _080F3290 @ =0x000087d0 adds r2, r0, r3 movs r3, 0x1 _080F3272: lsls r0, r1, 2 adds r0, r2, r0 ldr r0, [r0] cmp r0, 0 beq _080F327E strh r3, [r0, 0x36] _080F327E: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x1 bls _080F3272 pop {r0} bx r0 .align 2, 0 _080F328C: .4byte gUnknown_083DFEC4 _080F3290: .4byte 0x000087d0 thumb_func_end sub_80F3264 thumb_func_start sub_80F3294 sub_80F3294: @ 80F3294 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r0, _080F32F4 @ =gUnknown_083DFEC4 ldr r4, [r0] ldr r1, _080F32F8 @ =0x000087cc adds r0, r4, r1 ldr r2, [r0] adds r2, 0x3E movs r0, 0x1 adds r1, r6, 0 ands r1, r0 lsls r1, 2 ldrb r3, [r2] movs r5, 0x5 negs r5, r5 adds r0, r5, 0 ands r0, r3 orrs r0, r1 strb r0, [r2] ldr r2, _080F32FC @ =0x000087c9 adds r0, r4, r2 ldrb r0, [r0] cmp r0, 0 beq _080F331A cmp r6, 0x1 bne _080F3308 ldr r1, _080F3300 @ =0x000087d0 adds r0, r4, r1 ldr r1, [r0] adds r1, 0x3E ldrb r2, [r1] adds r0, r5, 0 ands r0, r2 movs r3, 0x4 orrs r0, r3 strb r0, [r1] ldr r2, _080F3304 @ =0x000087d4 adds r0, r4, r2 ldr r1, [r0] adds r1, 0x3E ldrb r2, [r1] adds r0, r5, 0 ands r0, r2 orrs r0, r3 strb r0, [r1] b _080F331A .align 2, 0 _080F32F4: .4byte gUnknown_083DFEC4 _080F32F8: .4byte 0x000087cc _080F32FC: .4byte 0x000087c9 _080F3300: .4byte 0x000087d0 _080F3304: .4byte 0x000087d4 _080F3308: ldr r1, _080F3320 @ =0x000087d0 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 strh r1, [r0, 0x36] ldr r2, _080F3324 @ =0x000087d4 adds r0, r4, r2 ldr r0, [r0] strh r1, [r0, 0x36] _080F331A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F3320: .4byte 0x000087d0 _080F3324: .4byte 0x000087d4 thumb_func_end sub_80F3294 thumb_func_start sub_80F3328 sub_80F3328: @ 80F3328 push {lr} adds r2, r0, 0 ldr r0, _080F334C @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F3350 @ =0x000087dc adds r0, r1 movs r3, 0x2E ldrsh r1, [r2, r3] movs r3, 0 ldrsh r0, [r0, r3] cmp r1, r0 bne _080F3354 adds r0, r2, 0 movs r1, 0 bl StartSpriteAnim b _080F335C .align 2, 0 _080F334C: .4byte gUnknown_083DFEC4 _080F3350: .4byte 0x000087dc _080F3354: adds r0, r2, 0 movs r1, 0x1 bl StartSpriteAnim _080F335C: pop {r0} bx r0 thumb_func_end sub_80F3328 thumb_func_start sub_80F3360 sub_80F3360: @ 80F3360 push {r4,lr} adds r4, r0, 0 ldr r0, _080F3384 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r2, _080F3388 @ =0x000087dc adds r1, r0, r2 movs r2, 0 ldrsh r1, [r1, r2] ldr r2, _080F338C @ =0x000087da adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] subs r0, 0x1 cmp r1, r0 bne _080F3390 movs r0, 0x4 b _080F3392 .align 2, 0 _080F3384: .4byte gUnknown_083DFEC4 _080F3388: .4byte 0x000087dc _080F338C: .4byte 0x000087da _080F3390: movs r0, 0x5 _080F3392: bl IndexOfSpritePaletteTag lsls r0, 4 ldrb r2, [r4, 0x5] movs r1, 0xF ands r1, r2 orrs r1, r0 strb r1, [r4, 0x5] pop {r4} pop {r0} bx r0 thumb_func_end sub_80F3360 thumb_func_start sub_80F33A8 sub_80F33A8: @ 80F33A8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x50 mov r1, sp ldr r0, _080F3440 @ =gUnknown_083E4628 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r5,r6} stm r1!, {r2,r5,r6} ldm r0!, {r3,r4} stm r1!, {r3,r4} add r4, sp, 0x20 adds r1, r4, 0 ldr r0, _080F3444 @ =gUnknown_083E4648 ldm r0!, {r2,r5,r6} stm r1!, {r2,r5,r6} ldm r0!, {r3,r5,r6} stm r1!, {r3,r5,r6} add r5, sp, 0x38 adds r1, r5, 0 ldr r0, _080F3448 @ =gSpriteTemplate_83E4660 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} mov r0, sp bl LoadSpriteSheets adds r0, r4, 0 bl LoadSpritePalettes movs r6, 0 ldr r2, _080F344C @ =gUnknown_083DFEC4 ldr r1, [r2] ldr r3, _080F3450 @ =0x000087da adds r0, r1, r3 movs r4, 0 ldrsh r0, [r0, r4] subs r0, 0x1 adds r7, r5, 0 cmp r6, r0 bge _080F347A adds r5, r2, 0 adds r0, r3, 0 adds r0, r1 mov r8, r0 _080F3406: lsls r4, r6, 2 adds r2, r4, r6 lsls r2, 18 movs r1, 0x80 lsls r1, 12 adds r2, r1 asrs r2, 16 adds r0, r7, 0 movs r1, 0xE2 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x40 beq _080F345C ldr r0, [r5] ldr r2, _080F3454 @ =0x000087e4 adds r0, r2 adds r0, r4 lsls r1, r3, 4 adds r1, r3 lsls r1, 2 ldr r2, _080F3458 @ =gSprites adds r1, r2 str r1, [r0] strh r6, [r1, 0x2E] b _080F3468 .align 2, 0 _080F3440: .4byte gUnknown_083E4628 _080F3444: .4byte gUnknown_083E4648 _080F3448: .4byte gSpriteTemplate_83E4660 _080F344C: .4byte gUnknown_083DFEC4 _080F3450: .4byte 0x000087da _080F3454: .4byte 0x000087e4 _080F3458: .4byte gSprites _080F345C: ldr r0, [r5] ldr r3, _080F34C8 @ =0x000087e4 adds r0, r3 adds r0, r4 movs r1, 0 str r1, [r0] _080F3468: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 mov r4, r8 movs r1, 0 ldrsh r0, [r4, r1] subs r0, 0x1 cmp r6, r0 blt _080F3406 _080F347A: movs r0, 0x4 strh r0, [r7] ldr r0, _080F34CC @ =SpriteCallbackDummy str r0, [r7, 0x14] cmp r6, 0x5 bhi _080F34EE ldr r5, _080F34D0 @ =gUnknown_083DFEC4 _080F3488: lsls r4, r6, 2 adds r2, r4, r6 lsls r2, 18 movs r3, 0x80 lsls r3, 12 adds r2, r3 asrs r2, 16 adds r0, r7, 0 movs r1, 0xE6 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x40 beq _080F34D8 ldr r2, [r5] ldr r0, _080F34C8 @ =0x000087e4 adds r2, r0 adds r2, r4 lsls r1, r3, 4 adds r1, r3 lsls r1, 2 ldr r0, _080F34D4 @ =gSprites adds r1, r0 str r1, [r2] ldrb r2, [r1, 0x3] movs r0, 0x3F ands r0, r2 strb r0, [r1, 0x3] b _080F34E4 .align 2, 0 _080F34C8: .4byte 0x000087e4 _080F34CC: .4byte SpriteCallbackDummy _080F34D0: .4byte gUnknown_083DFEC4 _080F34D4: .4byte gSprites _080F34D8: ldr r0, [r5] ldr r1, _080F3548 @ =0x000087e4 adds r0, r1 adds r0, r4 movs r1, 0 str r1, [r0] _080F34E4: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x5 bls _080F3488 _080F34EE: movs r0, 0x5 strh r0, [r7] ldr r0, _080F354C @ =sub_80F3360 str r0, [r7, 0x14] lsls r5, r6, 2 adds r2, r5, r6 lsls r2, 18 movs r3, 0x80 lsls r3, 12 adds r2, r3 asrs r2, 16 adds r0, r7, 0 movs r1, 0xDE movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x40 beq _080F3558 ldr r0, _080F3550 @ =gUnknown_083DFEC4 ldr r4, [r0] ldr r6, _080F3548 @ =0x000087e4 adds r4, r6 adds r4, r5 lsls r1, r3, 4 adds r1, r3 lsls r1, 2 ldr r0, _080F3554 @ =gSprites adds r1, r0 str r1, [r4] ldrb r3, [r1, 0x1] movs r2, 0x3F adds r0, r2, 0 ands r0, r3 movs r3, 0x40 orrs r0, r3 strb r0, [r1, 0x1] ldr r1, [r4] ldrb r0, [r1, 0x3] ands r2, r0 movs r0, 0x80 orrs r2, r0 strb r2, [r1, 0x3] b _080F3566 .align 2, 0 _080F3548: .4byte 0x000087e4 _080F354C: .4byte sub_80F3360 _080F3550: .4byte gUnknown_083DFEC4 _080F3554: .4byte gSprites _080F3558: ldr r0, _080F3574 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F3578 @ =0x000087e4 adds r0, r1 adds r0, r5 movs r1, 0 str r1, [r0] _080F3566: add sp, 0x50 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F3574: .4byte gUnknown_083DFEC4 _080F3578: .4byte 0x000087e4 thumb_func_end sub_80F33A8 thumb_func_start sub_80F357C sub_80F357C: @ 80F357C push {r4-r6,lr} movs r5, 0 ldr r0, _080F35AC @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F35B0 @ =0x000087e4 adds r6, r0, r1 _080F3588: lsls r0, r5, 2 adds r4, r6, r0 ldr r0, [r4] cmp r0, 0 beq _080F359A bl DestroySprite movs r0, 0 str r0, [r4] _080F359A: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x6 bls _080F3588 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F35AC: .4byte gUnknown_083DFEC4 _080F35B0: .4byte 0x000087e4 thumb_func_end sub_80F357C thumb_func_start sub_80F35B4 sub_80F35B4: @ 80F35B4 push {r4,lr} ldr r0, _080F35FC @ =gUnknown_083DFEC4 ldr r4, [r0] ldr r1, _080F3600 @ =0x000076b0 adds r0, r4, r1 movs r1, 0x1C strh r1, [r0] ldr r1, _080F3604 @ =0x000076b2 adds r2, r4, r1 movs r1, 0x13 strh r1, [r2] bl sub_80F727C bl sub_80F7404 ldr r2, _080F3608 @ =gUnknown_083E4678 movs r0, 0x1B movs r1, 0x15 bl sub_80F7920 ldrb r1, [r0, 0x5] movs r2, 0xC orrs r1, r2 strb r1, [r0, 0x5] movs r1, 0xC0 strh r1, [r0, 0x20] movs r1, 0x20 strh r1, [r0, 0x22] ldr r1, _080F360C @ =sub_80F363C str r1, [r0, 0x1C] ldr r1, _080F3610 @ =0x000076ac adds r4, r1 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080F35FC: .4byte gUnknown_083DFEC4 _080F3600: .4byte 0x000076b0 _080F3604: .4byte 0x000076b2 _080F3608: .4byte gUnknown_083E4678 _080F360C: .4byte sub_80F363C _080F3610: .4byte 0x000076ac thumb_func_end sub_80F35B4 thumb_func_start sub_80F3614 sub_80F3614: @ 80F3614 push {lr} ldr r0, _080F3634 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F3638 @ =0x000076ac adds r0, r1 ldr r0, [r0] bl DestroySprite movs r0, 0x1B bl FreeSpriteTilesByTag movs r0, 0x15 bl FreeSpritePaletteByTag pop {r0} bx r0 .align 2, 0 _080F3634: .4byte gUnknown_083DFEC4 _080F3638: .4byte 0x000076ac thumb_func_end sub_80F3614 thumb_func_start sub_80F363C sub_80F363C: @ 80F363C push {lr} ldr r1, _080F365C @ =gUnknown_083DFEC4 ldr r1, [r1] ldr r3, _080F3660 @ =0x00008fe9 adds r2, r1, r3 ldrb r2, [r2] lsls r2, 24 asrs r2, 24 ldr r3, _080F3664 @ =0x00008934 adds r1, r3 adds r1, r2 ldrb r1, [r1] bl StartSpriteAnim pop {r0} bx r0 .align 2, 0 _080F365C: .4byte gUnknown_083DFEC4 _080F3660: .4byte 0x00008fe9 _080F3664: .4byte 0x00008934 thumb_func_end sub_80F363C thumb_func_start sub_80F3668 sub_80F3668: @ 80F3668 push {lr} ldr r0, _080F368C @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r2, _080F3690 @ =0x00008fe9 adds r1, r0, r2 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 ldr r2, _080F3694 @ =0x00008934 adds r0, r2 adds r0, r1 ldrb r0, [r0] movs r1, 0xB0 movs r2, 0x20 bl sub_80F7418 pop {r0} bx r0 .align 2, 0 _080F368C: .4byte gUnknown_083DFEC4 _080F3690: .4byte 0x00008fe9 _080F3694: .4byte 0x00008934 thumb_func_end sub_80F3668 thumb_func_start sub_80F3698 sub_80F3698: @ 80F3698 push {r4,lr} ldr r0, _080F36DC @ =gUnknown_083DFEC4 ldr r3, [r0] ldr r1, _080F36E0 @ =0x000087dc adds r0, r3, r1 movs r2, 0 ldrsh r1, [r0, r2] lsls r1, 2 ldr r4, _080F36E4 @ =0x0000893c adds r1, r4 adds r1, r3, r1 ldr r2, _080F36E8 @ =0x00008fe9 adds r0, r3, r2 movs r2, 0 ldrsb r2, [r0, r2] subs r4, 0x8 adds r0, r3, r4 adds r0, r2 ldr r2, _080F36EC @ =0x000076b4 adds r3, r2 ldrb r2, [r3] strb r2, [r0] ldrb r0, [r1, 0x1] ldr r1, [r1] lsls r1, 11 lsrs r1, 27 ldrb r2, [r3] bl sub_80F4548 bl sub_80F7470 pop {r4} pop {r0} bx r0 .align 2, 0 _080F36DC: .4byte gUnknown_083DFEC4 _080F36E0: .4byte 0x000087dc _080F36E4: .4byte 0x0000893c _080F36E8: .4byte 0x00008fe9 _080F36EC: .4byte 0x000076b4 thumb_func_end sub_80F3698 thumb_func_start sub_80F36F0 sub_80F36F0: @ 80F36F0 push {lr} ldr r0, _080F3718 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F371C @ =0x00000306 adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080F3720 @ =0x00006dac adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080F3712 _080F3708: bl sub_80F3724 lsls r0, 24 cmp r0, 0 bne _080F3708 _080F3712: pop {r0} bx r0 .align 2, 0 _080F3718: .4byte gUnknown_083DFEC4 _080F371C: .4byte 0x00000306 _080F3720: .4byte 0x00006dac thumb_func_end sub_80F36F0 thumb_func_start sub_80F3724 sub_80F3724: @ 80F3724 push {r4,lr} ldr r0, _080F3740 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r0, _080F3744 @ =0x00000306 adds r4, r1, r0 ldrh r0, [r4] cmp r0, 0x1 beq _080F3764 cmp r0, 0x1 bgt _080F3748 cmp r0, 0 beq _080F374E b _080F377A .align 2, 0 _080F3740: .4byte gUnknown_083DFEC4 _080F3744: .4byte 0x00000306 _080F3748: cmp r0, 0x2 beq _080F376E b _080F377A _080F374E: ldr r0, _080F375C @ =gUnknown_083E3D00 ldr r2, _080F3760 @ =0x0000984c adds r1, r2 bl LZ77UnCompWram b _080F377E .align 2, 0 _080F375C: .4byte gUnknown_083E3D00 _080F3760: .4byte 0x0000984c _080F3764: bl sub_80F379C ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _080F376E: bl sub_80F37D0 lsls r0, 24 cmp r0, 0 beq _080F377E b _080F378C _080F377A: movs r0, 0 b _080F378E _080F377E: ldr r0, _080F3794 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r0, _080F3798 @ =0x00000306 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080F378C: movs r0, 0x1 _080F378E: pop {r4} pop {r1} bx r1 .align 2, 0 _080F3794: .4byte gUnknown_083DFEC4 _080F3798: .4byte 0x00000306 thumb_func_end sub_80F3724 thumb_func_start sub_80F379C sub_80F379C: @ 80F379C push {lr} ldr r0, _080F37C4 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F37C8 @ =0x0000bc93 adds r2, r0, r1 movs r1, 0 strb r1, [r2] ldr r1, _080F37CC @ =0x00006dac adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080F37BE _080F37B4: bl sub_80F37D0 lsls r0, 24 cmp r0, 0 bne _080F37B4 _080F37BE: pop {r0} bx r0 .align 2, 0 _080F37C4: .4byte gUnknown_083DFEC4 _080F37C8: .4byte 0x0000bc93 _080F37CC: .4byte 0x00006dac thumb_func_end sub_80F379C thumb_func_start sub_80F37D0 sub_80F37D0: @ 80F37D0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, _080F3898 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r2, _080F389C @ =0x0000bc93 adds r1, r2 ldrb r1, [r1] adds r2, r0, 0 cmp r1, 0xB bhi _080F38A8 movs r3, 0 mov r8, r3 movs r7, 0xF mov r9, r7 _080F37F0: ldr r2, [r2] ldr r1, _080F389C @ =0x0000bc93 adds r0, r2, r1 ldrb r1, [r0] lsls r0, r1, 8 ldr r3, _080F38A0 @ =0x0000984c adds r0, r3 adds r4, r2, r0 lsls r1, 9 ldr r7, _080F38A4 @ =0x0000a44c adds r1, r7 adds r5, r2, r1 movs r6, 0 _080F380A: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x10 bl CpuFastSet adds r5, 0x40 adds r4, 0x20 movs r1, 0 adds r6, 0x1 mov r12, r6 _080F381E: movs r0, 0 adds r6, r1, 0x1 _080F3822: adds r4, 0x4 movs r2, 0 adds r3, r0, 0x1 _080F3828: subs r4, 0x1 ldrb r0, [r4] lsls r1, r0, 4 lsrs r0, 4 mov r7, r9 ands r0, r7 orrs r1, r0 strb r1, [r5] adds r5, 0x1 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _080F3828 adds r4, 0x4 lsls r0, r3, 24 lsrs r0, 24 cmp r0, 0x7 bls _080F3822 subs r4, 0x40 lsls r0, r6, 24 lsrs r1, r0, 24 cmp r1, 0x1 bls _080F381E adds r4, 0x60 mov r1, r12 lsls r0, r1, 24 lsrs r6, r0, 24 cmp r6, 0x3 bls _080F380A ldr r2, _080F3898 @ =gUnknown_083DFEC4 ldr r3, [r2] ldr r7, _080F389C @ =0x0000bc93 adds r1, r3, r7 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0xB bhi _080F38A8 mov r0, r8 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r8, r0 cmp r0, 0x1 bls _080F37F0 adds r1, r7, 0 adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0xB bhi _080F38A8 movs r0, 0x1 b _080F38AA .align 2, 0 _080F3898: .4byte gUnknown_083DFEC4 _080F389C: .4byte 0x0000bc93 _080F38A0: .4byte 0x0000984c _080F38A4: .4byte 0x0000a44c _080F38A8: movs r0, 0 _080F38AA: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80F37D0 thumb_func_start sub_80F38B8 sub_80F38B8: @ 80F38B8 push {lr} ldr r0, _080F38E0 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F38E4 @ =0x00000306 adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080F38E8 @ =0x00006dac adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080F38DA _080F38D0: bl sub_80F38EC lsls r0, 24 cmp r0, 0 bne _080F38D0 _080F38DA: pop {r0} bx r0 .align 2, 0 _080F38E0: .4byte gUnknown_083DFEC4 _080F38E4: .4byte 0x00000306 _080F38E8: .4byte 0x00006dac thumb_func_end sub_80F38B8 thumb_func_start sub_80F38EC sub_80F38EC: @ 80F38EC push {r4,lr} ldr r0, _080F3908 @ =gUnknown_083DFEC4 ldr r2, [r0] ldr r0, _080F390C @ =0x00000306 adds r4, r2, r0 ldrh r1, [r4] cmp r1, 0x1 beq _080F3930 cmp r1, 0x1 bgt _080F3910 cmp r1, 0 beq _080F391A b _080F394E .align 2, 0 _080F3908: .4byte gUnknown_083DFEC4 _080F390C: .4byte 0x00000306 _080F3910: cmp r1, 0x2 beq _080F3938 cmp r1, 0x3 beq _080F3942 b _080F394E _080F391A: ldr r3, _080F3928 @ =0x00009348 adds r0, r2, r3 str r1, [r0] ldr r3, _080F392C @ =0x0000bc92 adds r0, r2, r3 strb r1, [r0] b _080F3952 .align 2, 0 _080F3928: .4byte 0x00009348 _080F392C: .4byte 0x0000bc92 _080F3930: movs r0, 0 bl sub_80F2E18 b _080F3952 _080F3938: bl sub_80F3970 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _080F3942: bl sub_80F39A4 lsls r0, 24 cmp r0, 0 beq _080F3952 b _080F3960 _080F394E: movs r0, 0 b _080F3962 _080F3952: ldr r0, _080F3968 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r0, _080F396C @ =0x00000306 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080F3960: movs r0, 0x1 _080F3962: pop {r4} pop {r1} bx r1 .align 2, 0 _080F3968: .4byte gUnknown_083DFEC4 _080F396C: .4byte 0x00000306 thumb_func_end sub_80F38EC thumb_func_start sub_80F3970 sub_80F3970: @ 80F3970 push {lr} ldr r0, _080F3998 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F399C @ =0x0000bc93 adds r2, r0, r1 movs r1, 0 strb r1, [r2] ldr r1, _080F39A0 @ =0x00006dac adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080F3992 _080F3988: bl sub_80F39A4 lsls r0, 24 cmp r0, 0 bne _080F3988 _080F3992: pop {r0} bx r0 .align 2, 0 _080F3998: .4byte gUnknown_083DFEC4 _080F399C: .4byte 0x0000bc93 _080F39A0: .4byte 0x00006dac thumb_func_end sub_80F3970 thumb_func_start sub_80F39A4 sub_80F39A4: @ 80F39A4 push {r4,r5,lr} sub sp, 0x10 ldr r0, _080F3A18 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r0, _080F3A1C @ =0x0000bc93 adds r4, r1, r0 ldrb r0, [r4] cmp r0, 0xB bhi _080F3A30 ldrb r0, [r4] lsls r0, 9 ldr r2, _080F3A20 @ =0x0000a44c adds r0, r2 adds r0, r1, r0 str r0, [sp] ldr r5, _080F3A24 @ =0xffff0000 ldr r2, [sp, 0x4] ands r2, r5 movs r0, 0x80 lsls r0, 2 orrs r2, r0 str r2, [sp, 0x4] ldrb r1, [r4] adds r1, 0xB lsls r1, 16 ldr r0, _080F3A28 @ =0x0000ffff ands r0, r2 orrs r0, r1 str r0, [sp, 0x4] mov r0, sp bl LoadSpriteSheet ldrb r0, [r4] cmp r0, 0x4 bhi _080F3A04 lsls r0, 5 ldr r1, _080F3A2C @ =gUnknown_083E3C60 adds r0, r1 str r0, [sp, 0x8] ldrb r2, [r4] adds r2, 0xA add r0, sp, 0x8 ldr r1, [r0, 0x4] ands r1, r5 orrs r1, r2 str r1, [r0, 0x4] bl LoadSpritePalette _080F3A04: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] lsls r0, 24 lsrs r0, 24 cmp r0, 0xB bhi _080F3A30 movs r0, 0x1 b _080F3A32 .align 2, 0 _080F3A18: .4byte gUnknown_083DFEC4 _080F3A1C: .4byte 0x0000bc93 _080F3A20: .4byte 0x0000a44c _080F3A24: .4byte 0xffff0000 _080F3A28: .4byte 0x0000ffff _080F3A2C: .4byte gUnknown_083E3C60 _080F3A30: movs r0, 0 _080F3A32: add sp, 0x10 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80F39A4 thumb_func_start sub_80F3A3C sub_80F3A3C: @ 80F3A3C push {r4-r7,lr} sub sp, 0x18 lsls r0, 16 lsrs r5, r0, 16 lsls r1, 16 lsrs r4, r1, 16 cmp r4, 0x2 bhi _080F3A60 lsls r0, r4, 3 adds r0, r4 adds r0, r5, r0 lsls r0, 16 lsrs r1, r0, 16 ldr r2, _080F3A5C @ =gUnknown_083DFEC4 b _080F3A78 .align 2, 0 _080F3A5C: .4byte gUnknown_083DFEC4 _080F3A60: ldr r2, _080F3AD0 @ =gUnknown_083DFEC4 ldr r1, [r2] ldr r3, _080F3AD4 @ =0x0000bc8e adds r0, r1, r3 ldrb r0, [r0] ldr r6, _080F3AD8 @ =0x0000bc8f adds r1, r6 ldrb r1, [r1] subs r0, r1 adds r0, r5, r0 lsls r0, 16 lsrs r1, r0, 16 _080F3A78: ldr r0, [r2] ldr r7, _080F3ADC @ =0x0000bc4c adds r0, r7 adds r0, r1 ldrb r2, [r0] mov r1, sp ldr r0, _080F3AE0 @ =gSpriteTemplate_83E476C ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} mov r3, sp ldr r1, _080F3AE4 @ =gUnknown_083E4698 lsls r2, 2 adds r0, r2, r1 ldrh r0, [r0] adds r0, 0xB strh r0, [r3] adds r1, 0x2 adds r2, r1 ldrh r0, [r2] adds r0, 0xA strh r0, [r3, 0x2] lsls r1, r5, 20 movs r0, 0xC0 lsls r0, 15 adds r1, r0 asrs r1, 16 lsls r2, r4, 20 movs r3, 0xA0 lsls r3, 14 adds r2, r3 asrs r2, 16 mov r0, sp movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 bne _080F3AE8 movs r0, 0 b _080F3AF2 .align 2, 0 _080F3AD0: .4byte gUnknown_083DFEC4 _080F3AD4: .4byte 0x0000bc8e _080F3AD8: .4byte 0x0000bc8f _080F3ADC: .4byte 0x0000bc4c _080F3AE0: .4byte gSpriteTemplate_83E476C _080F3AE4: .4byte gUnknown_083E4698 _080F3AE8: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080F3AFC @ =gSprites adds r0, r1 _080F3AF2: add sp, 0x18 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080F3AFC: .4byte gSprites thumb_func_end sub_80F3A3C thumb_func_start sub_80F3B00 sub_80F3B00: @ 80F3B00 push {r4,lr} ldr r0, _080F3B34 @ =gUnknown_083DFEC4 ldr r4, [r0] ldr r1, _080F3B38 @ =0x0000bc90 adds r0, r4, r1 ldrb r0, [r0] ldr r2, _080F3B3C @ =0x0000bc91 adds r1, r4, r2 ldrb r1, [r1] bl sub_80F3A3C adds r2, r0, 0 ldr r1, _080F3B40 @ =0x00009348 adds r0, r4, r1 str r2, [r0] cmp r2, 0 beq _080F3B48 adds r0, r2, 0 movs r1, 0x1 bl StartSpriteAffineAnim ldr r2, _080F3B44 @ =0x0000bc92 adds r1, r4, r2 movs r0, 0x1 strb r0, [r1] b _080F3B4E .align 2, 0 _080F3B34: .4byte gUnknown_083DFEC4 _080F3B38: .4byte 0x0000bc90 _080F3B3C: .4byte 0x0000bc91 _080F3B40: .4byte 0x00009348 _080F3B44: .4byte 0x0000bc92 _080F3B48: ldr r1, _080F3B54 @ =0x0000bc92 adds r0, r4, r1 strb r2, [r0] _080F3B4E: pop {r4} pop {r0} bx r0 .align 2, 0 _080F3B54: .4byte 0x0000bc92 thumb_func_end sub_80F3B00 thumb_func_start sub_80F3B58 sub_80F3B58: @ 80F3B58 push {lr} ldr r0, _080F3B6C @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r0, _080F3B70 @ =0x0000bc92 adds r2, r1, r0 ldrb r0, [r2] cmp r0, 0 bne _080F3B74 movs r0, 0 b _080F3B8A .align 2, 0 _080F3B6C: .4byte gUnknown_083DFEC4 _080F3B70: .4byte 0x0000bc92 _080F3B74: ldr r3, _080F3B90 @ =0x00009348 adds r0, r1, r3 ldr r0, [r0] adds r0, 0x3F ldrb r0, [r0] lsrs r0, 5 movs r1, 0x1 eors r0, r1 ands r0, r1 strb r0, [r2] ldrb r0, [r2] _080F3B8A: pop {r1} bx r1 .align 2, 0 _080F3B90: .4byte 0x00009348 thumb_func_end sub_80F3B58 thumb_func_start sub_80F3B94 sub_80F3B94: @ 80F3B94 push {r4,lr} ldr r0, _080F3BB8 @ =gUnknown_083DFEC4 ldr r4, [r0] ldr r1, _080F3BBC @ =0x00009348 adds r0, r4, r1 ldr r2, [r0] cmp r2, 0 beq _080F3BC4 adds r0, r2, 0 movs r1, 0x2 bl StartSpriteAffineAnim ldr r0, _080F3BC0 @ =0x0000bc92 adds r1, r4, r0 movs r0, 0x1 strb r0, [r1] b _080F3BCA .align 2, 0 _080F3BB8: .4byte gUnknown_083DFEC4 _080F3BBC: .4byte 0x00009348 _080F3BC0: .4byte 0x0000bc92 _080F3BC4: ldr r1, _080F3BD0 @ =0x0000bc92 adds r0, r4, r1 strb r2, [r0] _080F3BCA: pop {r4} pop {r0} bx r0 .align 2, 0 _080F3BD0: .4byte 0x0000bc92 thumb_func_end sub_80F3B94 thumb_func_start sub_80F3BD4 sub_80F3BD4: @ 80F3BD4 push {r4-r6,lr} ldr r0, _080F3C18 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r0, _080F3C1C @ =0x0000bc92 adds r5, r1, r0 ldrb r0, [r5] cmp r0, 0 beq _080F3C24 ldr r0, _080F3C20 @ =0x00009348 adds r4, r1, r0 ldr r0, [r4] adds r0, 0x3F ldrb r0, [r0] lsrs r0, 5 movs r1, 0x1 eors r0, r1 ands r0, r1 strb r0, [r5] adds r6, r0, 0 cmp r6, 0 bne _080F3C12 ldr r0, [r4] ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix ldr r0, [r4] bl DestroySprite str r6, [r4] _080F3C12: ldrb r0, [r5] b _080F3C26 .align 2, 0 _080F3C18: .4byte gUnknown_083DFEC4 _080F3C1C: .4byte 0x0000bc92 _080F3C20: .4byte 0x00009348 _080F3C24: movs r0, 0 _080F3C26: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80F3BD4 thumb_func_start sub_80F3C2C sub_80F3C2C: @ 80F3C2C push {r4,lr} ldr r0, _080F3C8C @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F3C90 @ =0x00009348 adds r4, r0, r1 ldr r0, [r4] cmp r0, 0 beq _080F3C50 ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix ldr r0, [r4] bl DestroySprite movs r0, 0 str r0, [r4] _080F3C50: movs r4, 0 _080F3C52: adds r0, r4, 0 adds r0, 0xB lsls r0, 16 lsrs r0, 16 bl FreeSpriteTilesByTag adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0xB bls _080F3C52 movs r4, 0 _080F3C6A: adds r0, r4, 0 adds r0, 0xA lsls r0, 16 lsrs r0, 16 bl FreeSpritePaletteByTag adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x4 bls _080F3C6A bl sub_80F2F48 pop {r4} pop {r0} bx r0 .align 2, 0 _080F3C8C: .4byte gUnknown_083DFEC4 _080F3C90: .4byte 0x00009348 thumb_func_end sub_80F3C2C thumb_func_start sub_80F3C94 sub_80F3C94: @ 80F3C94 push {lr} sub sp, 0x10 ldr r0, _080F3CDC @ =gUnknown_083E4784 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] ldr r0, _080F3CE0 @ =gUnknown_083E478C ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x8] str r1, [sp, 0xC] mov r0, sp bl LoadSpriteSheet add r0, sp, 0x8 bl LoadSpritePalette movs r1, 0 ldr r0, _080F3CE4 @ =gUnknown_083DFEC4 ldr r0, [r0] movs r3, 0x88 lsls r3, 8 adds r2, r0, r3 movs r3, 0 _080F3CC6: lsls r0, r1, 2 adds r0, r2, r0 str r3, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x9 bls _080F3CC6 add sp, 0x10 pop {r0} bx r0 .align 2, 0 _080F3CDC: .4byte gUnknown_083E4784 _080F3CE0: .4byte gUnknown_083E478C _080F3CE4: .4byte gUnknown_083DFEC4 thumb_func_end sub_80F3C94 thumb_func_start sub_80F3CE8 sub_80F3CE8: @ 80F3CE8 push {lr} bl move_anim_execute movs r0, 0x17 bl FreeSpriteTilesByTag movs r0, 0xF bl FreeSpritePaletteByTag pop {r0} bx r0 thumb_func_end sub_80F3CE8 thumb_func_start sub_80F3D00 sub_80F3D00: @ 80F3D00 push {r4,r5,lr} ldr r0, _080F3D34 @ =gUnknown_083DFEC4 ldr r2, [r0] ldr r1, _080F3D38 @ =0x000087dc adds r0, r2, r1 movs r3, 0 ldrsh r0, [r0, r3] lsls r0, 2 ldr r1, _080F3D3C @ =0x0000893c adds r0, r1 adds r0, r2, r0 ldrb r1, [r0, 0x3] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080F3D94 ldr r3, _080F3D40 @ =0x00008fe9 adds r0, r2, r3 movs r1, 0 ldrsb r1, [r0, r1] ldr r3, _080F3D44 @ =0x00008931 adds r0, r2, r3 adds r0, r1 ldrb r5, [r0] movs r4, 0 b _080F3D86 .align 2, 0 _080F3D34: .4byte gUnknown_083DFEC4 _080F3D38: .4byte 0x000087dc _080F3D3C: .4byte 0x0000893c _080F3D40: .4byte 0x00008fe9 _080F3D44: .4byte 0x00008931 _080F3D48: ldr r0, _080F3D9C @ =gSpriteTemplate_83E4800 movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _080F3D8C ldr r0, _080F3DA0 @ =gUnknown_083DFEC4 ldr r2, [r0] lsls r0, r4, 2 movs r3, 0x88 lsls r3, 8 adds r2, r3 adds r2, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080F3DA4 @ =gSprites adds r0, r1 str r0, [r2] adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 _080F3D86: adds r0, r5, 0x1 cmp r4, r0 blt _080F3D48 _080F3D8C: adds r0, r5, 0 movs r1, 0x1 bl sub_80F3F20 _080F3D94: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F3D9C: .4byte gSpriteTemplate_83E4800 _080F3DA0: .4byte gUnknown_083DFEC4 _080F3DA4: .4byte gSprites thumb_func_end sub_80F3D00 thumb_func_start move_anim_execute move_anim_execute: @ 80F3DA8 push {r4-r6,lr} movs r5, 0 ldr r0, _080F3DD8 @ =gUnknown_083DFEC4 ldr r0, [r0] movs r1, 0x88 lsls r1, 8 adds r6, r0, r1 _080F3DB6: lsls r0, r5, 2 adds r4, r6, r0 ldr r0, [r4] cmp r0, 0 beq _080F3DD2 bl DestroySprite movs r0, 0 str r0, [r4] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x9 bls _080F3DB6 _080F3DD2: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F3DD8: .4byte gUnknown_083DFEC4 thumb_func_end move_anim_execute thumb_func_start sub_80F3DDC sub_80F3DDC: @ 80F3DDC push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x30] adds r0, 0x1 strh r0, [r1, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x3C ble _080F3DFE movs r0, 0 strh r0, [r1, 0x30] ldrh r0, [r1, 0x32] lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_80F3F20 _080F3DFE: pop {r0} bx r0 thumb_func_end sub_80F3DDC thumb_func_start sub_80F3E04 sub_80F3E04: @ 80F3E04 push {lr} adds r2, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080F3E1C movs r0, 0 strh r0, [r2, 0x30] ldr r0, _080F3E20 @ =sub_80F3DDC str r0, [r2, 0x1C] _080F3E1C: pop {r0} bx r0 .align 2, 0 _080F3E20: .4byte sub_80F3DDC thumb_func_end sub_80F3E04 thumb_func_start sub_80F3E24 sub_80F3E24: @ 80F3E24 push {r4,r5,lr} adds r3, r0, 0 ldr r0, _080F3E64 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F3E68 @ =0x00008768 adds r4, r0, r1 ldr r0, [r4] cmp r0, 0 beq _080F3E70 ldrh r1, [r0, 0x24] ldrh r0, [r0, 0x20] adds r1, r0 ldr r2, _080F3E6C @ =gUnknown_083E4794 movs r5, 0x2E ldrsh r0, [r3, r5] lsls r0, 2 adds r0, r2 ldrh r0, [r0] adds r0, r1 strh r0, [r3, 0x20] ldr r0, [r4] ldrh r1, [r0, 0x26] ldrh r0, [r0, 0x22] adds r1, r0 movs r4, 0x2E ldrsh r0, [r3, r4] lsls r0, 2 adds r2, 0x2 adds r0, r2 ldrh r0, [r0] adds r0, r1 b _080F3E8E .align 2, 0 _080F3E64: .4byte gUnknown_083DFEC4 _080F3E68: .4byte 0x00008768 _080F3E6C: .4byte gUnknown_083E4794 _080F3E70: ldr r1, _080F3E98 @ =gUnknown_083E4794 movs r5, 0x2E ldrsh r0, [r3, r5] lsls r0, 2 adds r0, r1 ldrh r0, [r0] adds r0, 0x28 strh r0, [r3, 0x20] movs r2, 0x2E ldrsh r0, [r3, r2] lsls r0, 2 adds r1, 0x2 adds r0, r1 ldrh r0, [r0] adds r0, 0x68 _080F3E8E: strh r0, [r3, 0x22] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F3E98: .4byte gUnknown_083E4794 thumb_func_end sub_80F3E24 thumb_func_start sub_80F3E9C sub_80F3E9C: @ 80F3E9C push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x30] movs r2, 0x30 ldrsh r0, [r4, r2] cmp r0, 0 beq _080F3ECA subs r0, r1, 0x1 strh r0, [r4, 0x30] lsls r0, 16 cmp r0, 0 bne _080F3F14 adds r0, r4, 0 movs r1, 0 bl SeekSpriteAnim adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] _080F3ECA: adds r0, r4, 0 bl sub_80F3E24 adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080F3F14 adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] movs r0, 0x34 ldrsh r1, [r4, r0] movs r2, 0x32 ldrsh r0, [r4, r2] cmp r1, r0 bne _080F3F10 cmp r1, 0x9 bne _080F3F08 bl sub_80F3FAC ldr r0, _080F3F04 @ =sub_80F3E04 b _080F3F12 .align 2, 0 _080F3F04: .4byte sub_80F3E04 _080F3F08: ldr r0, _080F3F0C @ =sub_80F3DDC b _080F3F12 .align 2, 0 _080F3F0C: .4byte sub_80F3DDC _080F3F10: ldr r0, _080F3F1C @ =SpriteCallbackDummy _080F3F12: str r0, [r4, 0x1C] _080F3F14: pop {r4} pop {r0} bx r0 .align 2, 0 _080F3F1C: .4byte SpriteCallbackDummy thumb_func_end sub_80F3E9C thumb_func_start sub_80F3F20 sub_80F3F20: @ 80F3F20 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r1, 24 mov r8, r1 movs r5, 0 ldr r0, _080F3F6C @ =gUnknown_083DFEC4 ldr r0, [r0] movs r1, 0x88 lsls r1, 8 adds r7, r0, r1 _080F3F3C: lsls r0, r5, 2 adds r4, r7, r0 ldr r0, [r4] cmp r0, 0 beq _080F3F92 strh r5, [r0, 0x2E] ldr r1, [r4] lsls r0, r5, 4 adds r0, 0x1 strh r0, [r1, 0x30] ldr r0, [r4] strh r6, [r0, 0x32] ldr r0, [r4] strh r5, [r0, 0x34] mov r3, r8 cmp r3, 0 beq _080F3F62 cmp r6, 0x9 beq _080F3F74 _080F3F62: ldr r1, [r4] ldr r0, _080F3F70 @ =sub_80F3E9C str r0, [r1, 0x1C] b _080F3F92 .align 2, 0 _080F3F6C: .4byte gUnknown_083DFEC4 _080F3F70: .4byte sub_80F3E9C _080F3F74: ldr r0, [r4] bl sub_80F3E24 bl sub_80F3FAC ldr r2, [r4] ldr r0, _080F3FA8 @ =sub_80F3E04 str r0, [r2, 0x1C] adds r2, 0x3E ldrb r0, [r2] movs r3, 0x5 negs r3, r3 adds r1, r3, 0 ands r0, r1 strb r0, [r2] _080F3F92: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x9 bls _080F3F3C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F3FA8: .4byte sub_80F3E04 thumb_func_end sub_80F3F20 thumb_func_start sub_80F3FAC sub_80F3FAC: @ 80F3FAC push {r4-r7,lr} movs r5, 0 ldr r0, _080F3FEC @ =gUnknown_083DFEC4 ldr r0, [r0] movs r1, 0x88 lsls r1, 8 adds r6, r0, r1 movs r0, 0x5 negs r0, r0 adds r7, r0, 0 _080F3FC0: lsls r0, r5, 2 adds r4, r6, r0 ldr r0, [r4] cmp r0, 0 beq _080F3FDA movs r1, 0 bl SeekSpriteAnim ldr r1, [r4] adds r1, 0x3E ldrb r0, [r1] ands r0, r7 strb r0, [r1] _080F3FDA: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x9 bls _080F3FC0 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F3FEC: .4byte gUnknown_083DFEC4 thumb_func_end sub_80F3FAC thumb_func_start sub_80F3FF0 sub_80F3FF0: @ 80F3FF0 push {lr} ldr r0, _080F4018 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F401C @ =0x00000306 adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080F4020 @ =0x00006dac adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080F4012 _080F4008: bl sub_80F4024 lsls r0, 24 cmp r0, 0 bne _080F4008 _080F4012: pop {r0} bx r0 .align 2, 0 _080F4018: .4byte gUnknown_083DFEC4 _080F401C: .4byte 0x00000306 _080F4020: .4byte 0x00006dac thumb_func_end sub_80F3FF0 thumb_func_start sub_80F4024 sub_80F4024: @ 80F4024 push {r4,lr} sub sp, 0x10 ldr r0, _080F4040 @ =gUnknown_083DFEC4 ldr r4, [r0] ldr r1, _080F4044 @ =0x00000306 adds r0, r4, r1 ldrh r0, [r0] cmp r0, 0x1 beq _080F4068 cmp r0, 0x1 bgt _080F4048 cmp r0, 0 beq _080F4052 b _080F4106 .align 2, 0 _080F4040: .4byte gUnknown_083DFEC4 _080F4044: .4byte 0x00000306 _080F4048: cmp r0, 0x2 beq _080F4084 cmp r0, 0x3 beq _080F40B8 b _080F4106 _080F4052: ldr r0, _080F4060 @ =gUnknown_083E329C ldr r2, _080F4064 @ =0x000131e4 adds r1, r4, r2 bl LZ77UnCompWram b _080F4118 .align 2, 0 _080F4060: .4byte gUnknown_083E329C _080F4064: .4byte 0x000131e4 _080F4068: ldr r1, _080F407C @ =0x000131e4 adds r0, r4, r1 str r0, [sp] ldr r0, _080F4080 @ =0x00181000 str r0, [sp, 0x4] mov r0, sp bl LoadSpriteSheet b _080F4118 .align 2, 0 _080F407C: .4byte 0x000131e4 _080F4080: .4byte 0x00181000 _080F4084: ldr r0, _080F40B4 @ =gUnknown_083E4818 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x8] str r1, [sp, 0xC] add r0, sp, 0x8 bl LoadSpritePalette movs r0, 0x10 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 movs r1, 0xC2 lsls r1, 2 adds r2, r4, r1 adds r0, 0x10 movs r1, 0x1 lsls r1, r0 movs r0, 0x3 negs r0, r0 bics r0, r1 str r0, [r2] b _080F4118 .align 2, 0 _080F40B4: .4byte gUnknown_083E4818 _080F40B8: ldr r0, _080F40E4 @ =gSpriteTemplate_83E4850 movs r1, 0xDA movs r2, 0xE movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _080F40F0 ldr r0, _080F40E8 @ =0x00006d98 adds r2, r4, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080F40EC @ =gSprites adds r0, r1 str r0, [r2] movs r1, 0 strh r1, [r0, 0x2E] b _080F40F8 .align 2, 0 _080F40E4: .4byte gSpriteTemplate_83E4850 _080F40E8: .4byte 0x00006d98 _080F40EC: .4byte gSprites _080F40F0: ldr r2, _080F410C @ =0x00006d98 adds r1, r4, r2 movs r0, 0 str r0, [r1] _080F40F8: ldr r0, _080F4110 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r0, _080F4114 @ =0x00000306 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080F4106: movs r0, 0 b _080F4128 .align 2, 0 _080F410C: .4byte 0x00006d98 _080F4110: .4byte gUnknown_083DFEC4 _080F4114: .4byte 0x00000306 _080F4118: ldr r0, _080F4130 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r2, _080F4134 @ =0x00000306 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] movs r0, 0x1 _080F4128: add sp, 0x10 pop {r4} pop {r1} bx r1 .align 2, 0 _080F4130: .4byte gUnknown_083DFEC4 _080F4134: .4byte 0x00000306 thumb_func_end sub_80F4024 thumb_func_start sub_80F4138 sub_80F4138: @ 80F4138 push {lr} adds r2, r0, 0 ldr r0, _080F4170 @ =gUnknown_083DFEC4 ldr r0, [r0] movs r1, 0xC3 lsls r1, 2 adds r0, r1 ldrh r0, [r0] negs r0, r0 strh r0, [r2, 0x26] lsls r0, 16 asrs r0, 16 movs r1, 0x20 negs r1, r1 cmp r0, r1 bgt _080F4174 movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0 bne _080F418E adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 strb r0, [r3] movs r0, 0x1 b _080F418C .align 2, 0 _080F4170: .4byte gUnknown_083DFEC4 _080F4174: movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0x1 bne _080F418E adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x5 negs r1, r1 ands r1, r0 strb r1, [r3] movs r0, 0 _080F418C: strh r0, [r2, 0x2E] _080F418E: pop {r0} bx r0 thumb_func_end sub_80F4138 thumb_func_start sub_80F4194 sub_80F4194: @ 80F4194 push {r4-r7,lr} sub sp, 0x4 adds r7, r0, 0 adds r2, r1, 0 ldr r0, _080F42A4 @ =gUnknown_083DFEC8 ldr r6, [r0] mov r0, sp ldr r1, _080F42A8 @ =0x00001111 adds r5, r1, 0 strh r5, [r0] ldr r4, _080F42AC @ =0x040000d4 str r0, [r4] str r6, [r4, 0x4] ldr r3, _080F42B0 @ =0x81000140 str r3, [r4, 0x8] ldr r0, [r4, 0x8] movs r0, 0x80 lsls r0, 3 adds r1, r6, r0 mov r0, sp strh r5, [r0] str r0, [r4] str r1, [r4, 0x4] str r3, [r4, 0x8] ldr r0, [r4, 0x8] ldr r0, _080F42B4 @ =gWindowConfig_81E70F0 adds r1, r6, 0 bl sub_8004E3C movs r3, 0x88 lsls r3, 2 adds r1, r6, r3 mov r0, sp movs r3, 0 strh r3, [r0] str r0, [r4] str r1, [r4, 0x4] ldr r2, _080F42B8 @ =0x81000030 str r2, [r4, 0x8] ldr r0, [r4, 0x8] movs r0, 0xC4 lsls r0, 3 adds r1, r6, r0 mov r0, sp strh r3, [r0] str r0, [r4] str r1, [r4, 0x4] str r2, [r4, 0x8] ldr r0, [r4, 0x8] movs r1, 0x80 lsls r1, 2 adds r2, r6, r1 ldr r0, [r2] ldr r1, _080F42BC @ =0x0fffffff ands r0, r1 str r0, [r2] ldr r0, [r2, 0x4] ands r0, r1 str r0, [r2, 0x4] ldr r0, [r2, 0x8] ands r0, r1 str r0, [r2, 0x8] ldr r0, [r2, 0xC] ands r0, r1 str r0, [r2, 0xC] ldr r0, [r2, 0x10] ands r0, r1 str r0, [r2, 0x10] ldr r0, [r2, 0x14] ands r0, r1 str r0, [r2, 0x14] ldr r0, [r2, 0x18] ands r0, r1 str r0, [r2, 0x18] ldr r0, [r2, 0x1C] ands r0, r1 str r0, [r2, 0x1C] movs r3, 0xC0 lsls r3, 3 adds r2, r6, r3 ldr r0, [r2] ands r0, r1 str r0, [r2] ldr r0, [r2, 0x4] ands r0, r1 str r0, [r2, 0x4] ldr r0, [r2, 0x8] ands r0, r1 str r0, [r2, 0x8] ldr r0, [r2, 0xC] ands r0, r1 str r0, [r2, 0xC] ldr r0, [r2, 0x10] ands r0, r1 str r0, [r2, 0x10] ldr r0, [r2, 0x14] ands r0, r1 str r0, [r2, 0x14] ldr r0, [r2, 0x18] ands r0, r1 str r0, [r2, 0x18] ldr r0, [r2, 0x1C] ands r0, r1 str r0, [r2, 0x1C] movs r1, 0 ldr r2, _080F42C0 @ =0x80000040 _080F4268: lsls r0, r1, 7 adds r0, r6, r0 str r0, [r4] lsls r0, r1, 8 adds r0, r7, r0 str r0, [r4, 0x4] str r2, [r4, 0x8] ldr r0, [r4, 0x8] lsls r0, r1, 7 movs r3, 0x80 lsls r3, 3 adds r0, r3 adds r0, r6, r0 str r0, [r4] lsls r0, r1, 3 adds r0, 0x4 lsls r0, 5 adds r0, r7, r0 str r0, [r4, 0x4] str r2, [r4, 0x8] ldr r0, [r4, 0x8] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x4 bls _080F4268 add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F42A4: .4byte gUnknown_083DFEC8 _080F42A8: .4byte 0x00001111 _080F42AC: .4byte 0x040000d4 _080F42B0: .4byte 0x81000140 _080F42B4: .4byte gWindowConfig_81E70F0 _080F42B8: .4byte 0x81000030 _080F42BC: .4byte 0x0fffffff _080F42C0: .4byte 0x80000040 thumb_func_end sub_80F4194 thumb_func_start sub_80F42C4 sub_80F42C4: @ 80F42C4 push {r4-r7,lr} sub sp, 0x8 adds r1, r0, 0 ldr r0, _080F433C @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r2, _080F4340 @ =0x0000d1e4 adds r0, r2 str r0, [sp] ldr r2, _080F4344 @ =0x001a0500 str r2, [sp, 0x4] bl sub_80F4194 mov r0, sp bl LoadSpriteSheet ldr r0, _080F4348 @ =gUnknown_083E4868 bl LoadSpritePalette movs r5, 0 movs r4, 0 ldr r6, _080F434C @ =gSprites _080F42EE: lsls r1, r4, 21 movs r7, 0xE2 lsls r7, 15 adds r1, r7 asrs r1, 16 ldr r0, _080F4350 @ =gSpriteTemplate_83E4878 movs r2, 0x10 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _080F4360 lsls r3, r0, 4 adds r3, r0 lsls r3, 2 adds r3, r6 ldrh r2, [r3, 0x4] lsls r0, r2, 22 lsrs r0, 22 adds r0, r5, r0 ldr r7, _080F4354 @ =0x000003ff adds r1, r7, 0 ands r0, r1 ldr r7, _080F4358 @ =0xfffffc00 adds r1, r7, 0 ands r2, r1 orrs r2, r0 strh r2, [r3, 0x4] ldr r0, _080F433C @ =gUnknown_083DFEC4 ldr r0, [r0] lsls r1, r4, 2 ldr r2, _080F435C @ =0x0000ced4 adds r0, r2 adds r0, r1 str r3, [r0] b _080F4370 .align 2, 0 _080F433C: .4byte gUnknown_083DFEC4 _080F4340: .4byte 0x0000d1e4 _080F4344: .4byte 0x001a0500 _080F4348: .4byte gUnknown_083E4868 _080F434C: .4byte gSprites _080F4350: .4byte gSpriteTemplate_83E4878 _080F4354: .4byte 0x000003ff _080F4358: .4byte 0xfffffc00 _080F435C: .4byte 0x0000ced4 _080F4360: ldr r0, _080F438C @ =gUnknown_083DFEC4 ldr r1, [r0] lsls r0, r4, 2 ldr r7, _080F4390 @ =0x0000ced4 adds r1, r7 adds r1, r0 movs r0, 0 str r0, [r1] _080F4370: adds r0, r5, 0 adds r0, 0x8 lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x4 bls _080F42EE add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F438C: .4byte gUnknown_083DFEC4 _080F4390: .4byte 0x0000ced4 thumb_func_end sub_80F42C4 thumb_func_start sub_80F4394 sub_80F4394: @ 80F4394 push {r4,r5,lr} movs r4, 0 ldr r0, _080F43CC @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F43D0 @ =0x0000ced4 adds r5, r0, r1 _080F43A0: lsls r0, r4, 2 adds r0, r5, r0 ldr r0, [r0] cmp r0, 0 beq _080F43AE bl DestroySprite _080F43AE: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x4 bls _080F43A0 movs r0, 0x1A bl FreeSpriteTilesByTag movs r0, 0x12 bl FreeSpritePaletteByTag pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F43CC: .4byte gUnknown_083DFEC4 _080F43D0: .4byte 0x0000ced4 thumb_func_end sub_80F4394 thumb_func_start sub_80F43D4 sub_80F43D4: @ 80F43D4 push {r4,lr} adds r1, r0, 0 ldr r0, _080F4410 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r2, _080F4414 @ =0x0000d1e4 adds r4, r0, r2 adds r0, r4, 0 bl sub_80F4194 movs r0, 0x1A bl GetSpriteTileStartByTag lsls r0, 16 lsrs r1, r0, 16 ldr r0, _080F4418 @ =0x0000ffff cmp r1, r0 beq _080F4408 lsls r0, r1, 5 ldr r1, _080F441C @ =0x06010000 adds r0, r1 ldr r1, _080F4420 @ =0x040000d4 str r4, [r1] str r0, [r1, 0x4] ldr r0, _080F4424 @ =0x84000140 str r0, [r1, 0x8] ldr r0, [r1, 0x8] _080F4408: pop {r4} pop {r0} bx r0 .align 2, 0 _080F4410: .4byte gUnknown_083DFEC4 _080F4414: .4byte 0x0000d1e4 _080F4418: .4byte 0x0000ffff _080F441C: .4byte 0x06010000 _080F4420: .4byte 0x040000d4 _080F4424: .4byte 0x84000140 thumb_func_end sub_80F43D4 thumb_func_start sub_80F4428 sub_80F4428: @ 80F4428 push {lr} lsls r1, 16 lsrs r1, 16 lsls r2, 24 lsrs r2, 24 bl sub_80F6514 pop {r1} bx r1 thumb_func_end sub_80F4428 thumb_func_start sub_80F443C sub_80F443C: @ 80F443C push {r4,lr} lsls r4, r1, 16 lsrs r4, 16 ldr r1, _080F4458 @ =gOtherText_Number bl StringCopy adds r1, r4, 0 movs r2, 0x38 movs r3, 0x1 bl sub_8072C14 pop {r4} pop {r1} bx r1 .align 2, 0 _080F4458: .4byte gOtherText_Number thumb_func_end sub_80F443C thumb_func_start sub_80F445C sub_80F445C: @ 80F445C push {r4,lr} lsls r1, 16 lsrs r1, 16 movs r2, 0x17 movs r3, 0x1 bl sub_8072C14 adds r4, r0, 0 movs r3, 0xFC strb r3, [r4] movs r2, 0x11 strb r2, [r4, 0x1] movs r1, 0x1 strb r1, [r4, 0x2] adds r4, 0x3 movs r0, 0xBA strb r0, [r4] adds r4, 0x1 strb r3, [r4] strb r2, [r4, 0x1] strb r1, [r4, 0x2] adds r4, 0x3 ldr r0, _080F44A8 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F44AC @ =0x00008774 adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] adds r1, 0x1 adds r0, r4, 0 movs r2, 0x32 movs r3, 0x1 bl sub_8072C14 adds r4, r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080F44A8: .4byte gUnknown_083DFEC4 _080F44AC: .4byte 0x00008774 thumb_func_end sub_80F445C thumb_func_start sub_80F44B0 sub_80F44B0: @ 80F44B0 push {r4,lr} adds r4, r2, 0 lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r2, r1, 16 cmp r0, 0xE bne _080F44F4 cmp r4, 0x2 beq _080F44C8 cmp r4, 0x7 bne _080F44E0 _080F44C8: movs r0, 0x64 muls r0, r2 ldr r1, _080F44DC @ =gPlayerParty adds r0, r1 adds r1, r4, 0 adds r2, r3, 0 bl GetMonData b _080F453C .align 2, 0 _080F44DC: .4byte gPlayerParty _080F44E0: movs r0, 0x64 muls r0, r2 ldr r1, _080F44F0 @ =gPlayerParty adds r0, r1 adds r1, r4, 0 bl GetMonData b _080F453C .align 2, 0 _080F44F0: .4byte gPlayerParty _080F44F4: cmp r4, 0x2 beq _080F44FC cmp r4, 0x7 bne _080F4520 _080F44FC: lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 lsls r1, r2, 2 adds r1, r2 lsls r1, 4 ldr r2, _080F451C @ =gUnknown_020300A4 adds r1, r2 adds r0, r1 adds r1, r4, 0 adds r2, r3, 0 bl GetBoxMonData b _080F453C .align 2, 0 _080F451C: .4byte gUnknown_020300A4 _080F4520: lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 lsls r1, r2, 2 adds r1, r2 lsls r1, 4 ldr r2, _080F4544 @ =gUnknown_020300A4 adds r1, r2 adds r0, r1 adds r1, r4, 0 bl GetBoxMonData _080F453C: pop {r4} pop {r1} bx r1 .align 2, 0 _080F4544: .4byte gUnknown_020300A4 thumb_func_end sub_80F44B0 thumb_func_start sub_80F4548 sub_80F4548: @ 80F4548 push {r4,lr} sub sp, 0x4 lsls r0, 16 lsrs r3, r0, 16 lsls r1, 16 lsrs r4, r1, 16 mov r0, sp strb r2, [r0] cmp r3, 0xE bne _080F4574 movs r0, 0x64 muls r0, r4 ldr r1, _080F4570 @ =gPlayerParty adds r0, r1 movs r1, 0x8 mov r2, sp bl SetMonData b _080F4592 .align 2, 0 _080F4570: .4byte gPlayerParty _080F4574: lsls r1, r3, 2 adds r1, r3 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 lsls r1, r4, 2 adds r1, r4 lsls r1, 4 ldr r2, _080F459C @ =gUnknown_020300A4 adds r1, r2 adds r0, r1 movs r1, 0x8 mov r2, sp bl SetBoxMonData _080F4592: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080F459C: .4byte gUnknown_020300A4 thumb_func_end sub_80F4548 thumb_func_start sub_80F45A0 sub_80F45A0: @ 80F45A0 push {r4-r7,lr} lsls r1, 24 lsrs r6, r1, 24 ldr r1, _080F45F0 @ =gUnknown_083DFEC4 ldr r5, [r1] lsls r1, r0, 16 asrs r0, r1, 14 adds r4, r5, r0 ldr r2, _080F45F4 @ =0x0000893f adds r0, r4, r2 ldrb r0, [r0] lsls r0, 25 lsrs r7, r0, 31 cmp r7, 0 beq _080F4644 lsls r0, r6, 6 ldr r2, _080F45F8 @ =0x00008829 adds r0, r2 adds r0, r5, r0 lsrs r1, 16 movs r2, 0 bl sub_80F4428 ldr r1, _080F45FC @ =0x0000893d adds r0, r4, r1 ldrb r2, [r0] cmp r2, 0xE bne _080F4608 lsls r0, r6, 1 adds r0, r6 lsls r0, 3 ldr r2, _080F4600 @ =0x000088e9 adds r0, r2 adds r0, r5, r0 ldr r1, _080F4604 @ =gOtherText_InParty movs r2, 0x40 movs r3, 0 bl sub_8072C74 b _080F4624 .align 2, 0 _080F45F0: .4byte gUnknown_083DFEC4 _080F45F4: .4byte 0x0000893f _080F45F8: .4byte 0x00008829 _080F45FC: .4byte 0x0000893d _080F4600: .4byte 0x000088e9 _080F4604: .4byte gOtherText_InParty _080F4608: lsls r0, r6, 1 adds r0, r6 lsls r0, 3 ldr r1, _080F4634 @ =0x000088e9 adds r0, r1 adds r0, r5, r0 lsls r1, r2, 3 adds r1, r2 ldr r2, _080F4638 @ =gUnknown_020383E4 adds r1, r2 movs r2, 0x40 movs r3, 0 bl sub_8072C74 _080F4624: ldr r0, _080F463C @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r2, _080F4640 @ =0x00008937 adds r0, r2 adds r0, r6 movs r1, 0x1 strb r1, [r0] b _080F4676 .align 2, 0 _080F4634: .4byte 0x000088e9 _080F4638: .4byte gUnknown_020383E4 _080F463C: .4byte gUnknown_083DFEC4 _080F4640: .4byte 0x00008937 _080F4644: lsls r0, r6, 6 ldr r1, _080F467C @ =0x00008829 adds r0, r1 adds r0, r5, r0 ldr r4, _080F4680 @ =gEmptyString_81E72B0 adds r1, r4, 0 movs r2, 0x68 movs r3, 0 bl sub_8072C74 lsls r0, r6, 1 adds r0, r6 lsls r0, 3 ldr r2, _080F4684 @ =0x000088e9 adds r0, r2 adds r0, r5, r0 adds r1, r4, 0 movs r2, 0x40 movs r3, 0 bl sub_8072C74 ldr r1, _080F4688 @ =0x00008937 adds r0, r5, r1 adds r0, r6 strb r7, [r0] _080F4676: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F467C: .4byte 0x00008829 _080F4680: .4byte gEmptyString_81E72B0 _080F4684: .4byte 0x000088e9 _080F4688: .4byte 0x00008937 thumb_func_end sub_80F45A0 thumb_func_start sub_80F468C sub_80F468C: @ 80F468C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r1, 24 lsrs r1, 24 mov r9, r1 ldr r1, _080F475C @ =gUnknown_083DFEC4 ldr r7, [r1] lsls r0, 16 asrs r0, 14 adds r1, r7, r0 ldr r2, _080F4760 @ =0x0000893f adds r0, r1, r2 ldrb r0, [r0] lsls r0, 25 cmp r0, 0 blt _080F46B2 b _080F47C4 _080F46B2: ldr r3, _080F4764 @ =0x0000893d adds r0, r1, r3 ldrb r5, [r0] subs r2, 0x1 adds r0, r1, r2 ldrb r0, [r0] lsls r0, 27 lsrs r6, r0, 27 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x16 movs r3, 0 bl sub_80F44B0 mov r3, r9 lsls r3, 2 mov r8, r3 mov r4, r8 add r4, r9 ldr r2, _080F4768 @ =0x00008ff0 adds r1, r7, r2 adds r1, r4 strb r0, [r1] adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x2F movs r3, 0 bl sub_80F44B0 ldr r3, _080F476C @ =0x00008ff1 adds r1, r7, r3 adds r1, r4 strb r0, [r1] adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x21 movs r3, 0 bl sub_80F44B0 ldr r2, _080F4770 @ =0x00008ff2 adds r1, r7, r2 adds r1, r4 strb r0, [r1] adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x18 movs r3, 0 bl sub_80F44B0 ldr r3, _080F4774 @ =0x00008ff3 adds r1, r7, r3 adds r1, r4 strb r0, [r1] adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x17 movs r3, 0 bl sub_80F44B0 ldr r2, _080F4778 @ =0x00008ff4 adds r1, r7, r2 adds r1, r4 strb r0, [r1] ldr r3, _080F477C @ =0x00008931 adds r0, r7, r3 mov r7, r9 adds r4, r0, r7 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x30 movs r3, 0 bl sub_80F44B0 cmp r0, 0xFF beq _080F4780 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x30 movs r3, 0 bl sub_80F44B0 movs r1, 0x1D bl __udivsi3 b _080F4782 .align 2, 0 _080F475C: .4byte gUnknown_083DFEC4 _080F4760: .4byte 0x0000893f _080F4764: .4byte 0x0000893d _080F4768: .4byte 0x00008ff0 _080F476C: .4byte 0x00008ff1 _080F4770: .4byte 0x00008ff2 _080F4774: .4byte 0x00008ff3 _080F4778: .4byte 0x00008ff4 _080F477C: .4byte 0x00008931 _080F4780: movs r0, 0x9 _080F4782: strb r0, [r4] adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x8 movs r3, 0 bl sub_80F44B0 ldr r1, _080F47B4 @ =gUnknown_083DFEC4 ldr r1, [r1] ldr r3, _080F47B8 @ =0x00008934 adds r2, r1, r3 add r2, r9 strb r0, [r2] mov r2, r8 add r2, r9 ldr r7, _080F47BC @ =0x00008ff0 adds r0, r2, r7 adds r0, r1, r0 lsls r2, 2 ldr r3, _080F47C0 @ =0x00009004 adds r2, r3 adds r1, r2 bl sub_80F55AC b _080F480A .align 2, 0 _080F47B4: .4byte gUnknown_083DFEC4 _080F47B8: .4byte 0x00008934 _080F47BC: .4byte 0x00008ff0 _080F47C0: .4byte 0x00009004 _080F47C4: movs r3, 0 mov r0, r9 lsls r0, 2 mov r8, r0 adds r4, r7, 0 mov r2, r8 add r2, r9 ldr r1, _080F4818 @ =0x00008ff0 adds r6, r4, r1 lsls r5, r2, 2 mov r9, r3 ldr r7, _080F481C @ =0x00009004 mov r8, r7 movs r0, 0x9B mov r12, r0 _080F47E2: adds r0, r3, r2 adds r0, r6, r0 mov r1, r9 strb r1, [r0] lsls r0, r3, 2 adds r0, r5 adds r0, r4, r0 mov r7, r8 adds r1, r0, r7 mov r7, r12 strh r7, [r1] ldr r1, _080F4820 @ =0x00009006 adds r0, r1 movs r1, 0x5B strh r1, [r0] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x4 bls _080F47E2 _080F480A: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F4818: .4byte 0x00008ff0 _080F481C: .4byte 0x00009004 _080F4820: .4byte 0x00009006 thumb_func_end sub_80F468C thumb_func_start sub_80F4824 sub_80F4824: @ 80F4824 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC lsls r1, 24 lsrs r1, 24 mov r9, r1 ldr r1, _080F48E0 @ =gUnknown_083DFEC4 ldr r7, [r1] lsls r0, 16 asrs r0, 14 adds r1, r7, r0 ldr r2, _080F48E4 @ =0x0000893f adds r0, r1, r2 ldrb r0, [r0] lsls r0, 25 cmp r0, 0 bge _080F48D0 ldr r6, _080F48E8 @ =0x0000893d adds r0, r1, r6 ldrb r6, [r0] subs r2, 0x1 adds r0, r1, r2 ldrb r4, [r0] lsls r4, 27 lsrs r4, 27 adds r0, r6, 0 adds r1, r4, 0 movs r2, 0x41 movs r3, 0 bl sub_80F44B0 adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r6, 0 adds r1, r4, 0 movs r2, 0x1 movs r3, 0 bl sub_80F44B0 mov r8, r0 adds r0, r6, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0 bl sub_80F44B0 adds r4, r0, 0 lsls r0, r5, 3 ldr r1, _080F48EC @ =gMonFrontPicTable adds r0, r1 ldr r2, _080F48F0 @ =gMonFrontPicCoords lsls r1, r5, 2 adds r1, r2 ldrb r1, [r1] ldr r6, _080F48F4 @ =0x000131e4 adds r3, r7, r6 mov r6, r9 lsls r2, r6, 13 ldr r6, _080F48F8 @ =0x0000d1e4 adds r2, r6 adds r2, r7, r2 str r2, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] movs r2, 0x1 bl sub_800D334 adds r0, r5, 0 mov r1, r8 adds r2, r4, 0 bl species_and_otid_get_pal mov r2, r9 lsls r1, r2, 7 adds r1, r7, r1 bl LZ77UnCompWram mov r6, r9 lsls r1, r6, 1 ldr r2, _080F48FC @ =0x0000d1d6 adds r0, r7, r2 adds r0, r1 strh r5, [r0] _080F48D0: add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F48E0: .4byte gUnknown_083DFEC4 _080F48E4: .4byte 0x0000893f _080F48E8: .4byte 0x0000893d _080F48EC: .4byte gMonFrontPicTable _080F48F0: .4byte gMonFrontPicCoords _080F48F4: .4byte 0x000131e4 _080F48F8: .4byte 0x0000d1e4 _080F48FC: .4byte 0x0000d1d6 thumb_func_end sub_80F4824 thumb_func_start sub_80F4900 sub_80F4900: @ 80F4900 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r5, 24 lsrs r5, 24 lsls r4, 16 asrs r4, 16 adds r0, r4, 0 adds r1, r5, 0 bl sub_80F45A0 adds r0, r4, 0 adds r1, r5, 0 bl sub_80F468C adds r0, r4, 0 adds r1, r5, 0 bl sub_80F4824 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80F4900 thumb_func_start sub_80F492C sub_80F492C: @ 80F492C ldr r0, _080F493C @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F4940 @ =0x00008fe4 adds r0, r1 movs r1, 0 strh r1, [r0] bx lr .align 2, 0 _080F493C: .4byte gUnknown_083DFEC4 _080F4940: .4byte 0x00008fe4 thumb_func_end sub_80F492C thumb_func_start sub_80F4944 sub_80F4944: @ 80F4944 push {r4-r7,lr} mov r7, r8 push {r7} mov r12, r0 movs r2, 0 ldr r1, _080F4978 @ =gUnknown_083DFEC4 ldr r5, [r1] ldr r3, _080F497C @ =0x00008fe4 adds r0, r5, r3 ldrh r4, [r0] lsrs r3, r4, 1 mov r8, r1 cmp r4, r3 beq _080F499C adds r6, r5, 0 mov r0, r12 ldrb r5, [r0] ldr r7, _080F4980 @ =0x0000893c _080F4968: lsls r0, r3, 2 adds r0, r6, r0 adds r0, r7 ldrb r0, [r0] cmp r5, r0 bls _080F4984 adds r4, r3, 0 b _080F498A .align 2, 0 _080F4978: .4byte gUnknown_083DFEC4 _080F497C: .4byte 0x00008fe4 _080F4980: .4byte 0x0000893c _080F4984: adds r0, r3, 0x1 lsls r0, 16 lsrs r2, r0, 16 _080F498A: subs r0, r4, r2 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 adds r0, r2, r0 lsls r0, 16 lsrs r3, r0, 16 cmp r4, r3 bne _080F4968 _080F499C: mov r1, r8 ldr r2, [r1] ldr r1, _080F49EC @ =0x00008fe4 adds r0, r2, r1 ldrh r4, [r0] lsls r6, r3, 2 cmp r4, r3 bls _080F49C6 ldr r0, _080F49F0 @ =0x0000893c adds r5, r2, r0 _080F49B0: lsls r2, r4, 2 adds r2, r5, r2 subs r1, r4, 0x1 lsls r0, r1, 2 adds r0, r5, r0 ldr r0, [r0] str r0, [r2] lsls r1, 16 lsrs r4, r1, 16 cmp r4, r3 bhi _080F49B0 _080F49C6: mov r1, r8 ldr r2, [r1] ldr r3, _080F49F0 @ =0x0000893c adds r0, r2, r3 adds r0, r6 mov r3, r12 ldr r1, [r3] str r1, [r0] ldr r0, _080F49EC @ =0x00008fe4 adds r2, r0 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F49EC: .4byte 0x00008fe4 _080F49F0: .4byte 0x0000893c thumb_func_end sub_80F4944 thumb_func_start sub_80F49F4 sub_80F49F4: @ 80F49F4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r3, _080F4A64 @ =gUnknown_083DFEC4 ldr r4, [r3] ldr r7, _080F4A68 @ =0x0000893e adds r2, r4, r7 ldrh r1, [r2] ldr r0, _080F4A6C @ =0xffffc01f mov r12, r0 ands r0, r1 movs r1, 0x20 orrs r0, r1 strh r0, [r2] movs r5, 0x1 ldr r1, _080F4A70 @ =0x00008fe4 adds r0, r4, r1 ldrh r3, [r0] cmp r5, r3 bcs _080F4A9E adds r6, r4, 0 ldr r1, _080F4A74 @ =0x0000893c mov r8, r1 ldr r3, _080F4A78 @ =0x000001ff mov r10, r3 mov r9, r0 _080F4A2C: lsls r0, r5, 2 adds r3, r6, r0 mov r0, r8 adds r2, r3, r0 subs r0, r5, 0x1 lsls r0, 2 adds r4, r6, r0 mov r0, r8 adds r1, r4, r0 ldrb r0, [r2] ldrb r1, [r1] cmp r0, r1 bne _080F4A7C adds r0, r4, r7 ldrh r0, [r0] lsls r0, 18 lsrs r0, 23 adds r3, r7 ldr r1, _080F4A78 @ =0x000001ff ands r1, r0 lsls r1, 5 ldrh r2, [r3] mov r0, r12 ands r0, r2 orrs r0, r1 strh r0, [r3] adds r4, r5, 0x1 b _080F4A92 .align 2, 0 _080F4A64: .4byte gUnknown_083DFEC4 _080F4A68: .4byte 0x0000893e _080F4A6C: .4byte 0xffffc01f _080F4A70: .4byte 0x00008fe4 _080F4A74: .4byte 0x0000893c _080F4A78: .4byte 0x000001ff _080F4A7C: adds r4, r5, 0x1 adds r3, r7 adds r1, r4, 0 mov r0, r10 ands r1, r0 lsls r1, 5 ldrh r2, [r3] mov r0, r12 ands r0, r2 orrs r0, r1 strh r0, [r3] _080F4A92: lsls r0, r4, 16 lsrs r5, r0, 16 mov r1, r9 ldrh r1, [r1] cmp r5, r1 bcc _080F4A2C _080F4A9E: ldr r3, _080F4AC4 @ =gUnknown_083DFEC4 ldr r2, [r3] ldr r1, _080F4AC8 @ =0x0000876c adds r0, r2, r1 movs r1, 0 strh r1, [r0] ldr r3, _080F4ACC @ =0x00008770 adds r0, r2, r3 strh r1, [r0] subs r3, 0x2 adds r0, r2, r3 strh r1, [r0] ldr r1, _080F4AD0 @ =0x00008fe4 adds r0, r2, r1 ldrh r0, [r0] cmp r0, 0x8 bhi _080F4AD4 subs r1, r0, 0x1 b _080F4AD6 .align 2, 0 _080F4AC4: .4byte gUnknown_083DFEC4 _080F4AC8: .4byte 0x0000876c _080F4ACC: .4byte 0x00008770 _080F4AD0: .4byte 0x00008fe4 _080F4AD4: movs r1, 0x7 _080F4AD6: ldr r3, _080F4B10 @ =0x00008772 adds r0, r2, r3 strh r1, [r0] ldr r0, _080F4B14 @ =gUnknown_083DFEC4 ldr r2, [r0] ldr r1, _080F4B18 @ =0x00008fe4 adds r0, r2, r1 ldrh r0, [r0] subs r0, 0x1 adds r3, 0x2 adds r1, r2, r3 strh r0, [r1] movs r1, 0 lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _080F4AFA movs r1, 0x1 _080F4AFA: ldr r3, _080F4B1C @ =0x000087c9 adds r0, r2, r3 strb r1, [r0] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F4B10: .4byte 0x00008772 _080F4B14: .4byte gUnknown_083DFEC4 _080F4B18: .4byte 0x00008fe4 _080F4B1C: .4byte 0x000087c9 thumb_func_end sub_80F49F4 thumb_func_start sub_80F4B20 sub_80F4B20: @ 80F4B20 push {r4-r6,lr} ldr r0, _080F4B5C @ =gUnknown_083DFEC4 ldr r4, [r0] ldr r0, _080F4B60 @ =0x000087dc adds r5, r4, r0 movs r1, 0 ldrsh r0, [r5, r1] movs r1, 0 bl sub_80F4900 movs r0, 0 bl sub_80F2E18 ldr r0, _080F4B64 @ =0x000087da adds r2, r4, r0 movs r1, 0 ldrsh r0, [r2, r1] cmp r0, 0x1 bne _080F4B6C ldr r2, _080F4B68 @ =0x00008fe9 adds r0, r4, r2 movs r1, 0 strb r1, [r0] adds r2, 0x1 adds r0, r4, r2 strb r1, [r0] adds r2, 0x1 adds r0, r4, r2 strb r1, [r0] b _080F4BBE .align 2, 0 _080F4B5C: .4byte gUnknown_083DFEC4 _080F4B60: .4byte 0x000087dc _080F4B64: .4byte 0x000087da _080F4B68: .4byte 0x00008fe9 _080F4B6C: ldr r0, _080F4BC4 @ =0x00008fe9 adds r1, r4, r0 movs r0, 0 strb r0, [r1] ldr r0, _080F4BC8 @ =0x00008fea adds r1, r4, r0 movs r0, 0x1 strb r0, [r1] ldr r0, _080F4BCC @ =0x00008feb adds r1, r4, r0 movs r0, 0x2 strb r0, [r1] ldrh r3, [r5] adds r0, r3, 0x1 lsls r0, 16 lsrs r5, r0, 16 asrs r0, 16 ldrh r6, [r2] movs r4, 0 ldrsh r1, [r2, r4] cmp r0, r1 blt _080F4B9A movs r5, 0 _080F4B9A: subs r0, r3, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r0, 0 bge _080F4BAA subs r0, r6, 0x1 lsls r0, 16 lsrs r4, r0, 16 _080F4BAA: lsls r0, r5, 16 asrs r0, 16 movs r1, 0x1 bl sub_80F4900 lsls r0, r4, 16 asrs r0, 16 movs r1, 0x2 bl sub_80F4900 _080F4BBE: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F4BC4: .4byte 0x00008fe9 _080F4BC8: .4byte 0x00008fea _080F4BCC: .4byte 0x00008feb thumb_func_end sub_80F4B20 thumb_func_start sub_80F4BD0 sub_80F4BD0: @ 80F4BD0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r6, 0 movs r7, 0 ldr r0, _080F4CC4 @ =gUnknown_083DFEC4 ldr r2, [r0] ldr r3, _080F4CC8 @ =0x00008828 adds r1, r2, r3 mov r9, r0 ldrb r1, [r1] cmp r7, r1 bcs _080F4C66 mov r10, r9 adds r4, r3, 0 adds r4, r2 mov r8, r4 _080F4BF6: movs r0, 0x64 muls r0, r6 ldr r1, _080F4CCC @ =gPlayerParty adds r0, r1 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _080F4C58 mov r0, r10 ldr r3, [r0] lsls r0, r7, 2 adds r3, r0 ldr r2, _080F4CD0 @ =0x0000893d adds r1, r3, r2 movs r0, 0xE strb r0, [r1] ldr r4, _080F4CD4 @ =0x0000893e adds r5, r3, r4 movs r0, 0x1F adds r2, r6, 0 ands r2, r0 ldrb r0, [r5] movs r4, 0x20 negs r4, r4 adds r1, r4, 0 ands r0, r1 orrs r0, r2 strb r0, [r5] adds r4, r7, 0x1 ldr r7, _080F4CD8 @ =0x000001ff adds r0, r7, 0 adds r2, r4, 0 ands r2, r0 lsls r2, 5 ldrh r0, [r5] ldr r7, _080F4CDC @ =0xffffc01f adds r1, r7, 0 ands r0, r1 orrs r0, r2 strh r0, [r5] ldr r0, _080F4CE0 @ =0x0000893f adds r3, r0 ldrb r0, [r3] movs r1, 0x40 orrs r0, r1 strb r0, [r3] lsls r4, 16 lsrs r7, r4, 16 _080F4C58: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 mov r1, r8 ldrb r1, [r1] cmp r6, r1 bcc _080F4BF6 _080F4C66: mov r2, r9 ldr r4, [r2] lsls r1, r7, 2 adds r1, r4, r1 ldr r3, _080F4CD0 @ =0x0000893d adds r0, r1, r3 movs r5, 0 strb r5, [r0] ldr r0, _080F4CD4 @ =0x0000893e adds r2, r1, r0 ldrb r3, [r2] movs r0, 0x20 negs r0, r0 ands r0, r3 strb r0, [r2] ldrh r3, [r2] ldr r0, _080F4CDC @ =0xffffc01f ands r0, r3 strh r0, [r2] ldr r2, _080F4CE0 @ =0x0000893f adds r1, r2 ldrb r2, [r1] movs r0, 0x41 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r3, _080F4CE4 @ =0x000087dc adds r0, r4, r3 strh r5, [r0] adds r1, r7, 0x1 ldr r7, _080F4CE8 @ =0x000087da adds r0, r4, r7 strh r1, [r0] bl sub_80F4B20 ldr r0, _080F4CEC @ =0x000087cb adds r4, r0 movs r0, 0x1 strb r0, [r4] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F4CC4: .4byte gUnknown_083DFEC4 _080F4CC8: .4byte 0x00008828 _080F4CCC: .4byte gPlayerParty _080F4CD0: .4byte 0x0000893d _080F4CD4: .4byte 0x0000893e _080F4CD8: .4byte 0x000001ff _080F4CDC: .4byte 0xffffc01f _080F4CE0: .4byte 0x0000893f _080F4CE4: .4byte 0x000087dc _080F4CE8: .4byte 0x000087da _080F4CEC: .4byte 0x000087cb thumb_func_end sub_80F4BD0 thumb_func_start sub_80F4CF0 sub_80F4CF0: @ 80F4CF0 push {r4,lr} ldr r0, _080F4D1C @ =gUnknown_083DFEC4 ldr r4, [r0] ldr r1, _080F4D20 @ =0x0000876e adds r0, r4, r1 ldrh r1, [r0] ldr r2, _080F4D24 @ =0x000087dc adds r0, r4, r2 strh r1, [r0] bl sub_80F4B20 ldr r1, _080F4D28 @ =0x00008774 adds r0, r4, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 bne _080F4D30 ldr r0, _080F4D2C @ =0x000087cb adds r1, r4, r0 movs r0, 0 b _080F4D36 .align 2, 0 _080F4D1C: .4byte gUnknown_083DFEC4 _080F4D20: .4byte 0x0000876e _080F4D24: .4byte 0x000087dc _080F4D28: .4byte 0x00008774 _080F4D2C: .4byte 0x000087cb _080F4D30: ldr r2, _080F4D40 @ =0x000087cb adds r1, r4, r2 movs r0, 0x1 _080F4D36: strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _080F4D40: .4byte 0x000087cb thumb_func_end sub_80F4CF0 thumb_func_start sub_80F4D44 sub_80F4D44: @ 80F4D44 push {r4,lr} ldr r0, _080F4D78 @ =gUnknown_083DFEC4 ldr r4, [r0] ldr r1, _080F4D7C @ =0x00008fe6 adds r0, r4, r1 movs r1, 0 strb r1, [r0] ldr r2, _080F4D80 @ =0x00008fe7 adds r0, r4, r2 strb r1, [r0] bl sub_80F492C ldr r0, _080F4D84 @ =0x00006dac adds r4, r0 ldrb r0, [r4] cmp r0, 0 bne _080F4D70 _080F4D66: bl sub_80F4D88 lsls r0, 24 cmp r0, 0 bne _080F4D66 _080F4D70: pop {r4} pop {r0} bx r0 .align 2, 0 _080F4D78: .4byte gUnknown_083DFEC4 _080F4D7C: .4byte 0x00008fe6 _080F4D80: .4byte 0x00008fe7 _080F4D84: .4byte 0x00006dac thumb_func_end sub_80F4D44 thumb_func_start sub_80F4D88 sub_80F4D88: @ 80F4D88 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r6, _080F4E98 @ =gUnknown_083DFEC4 ldr r4, [r6] ldr r1, _080F4E9C @ =0x00008fe6 adds r0, r4, r1 ldrb r3, [r0] cmp r3, 0xE bne _080F4DA4 b _080F4EB8 _080F4DA4: cmp r3, 0xF bne _080F4DAA b _080F4F60 _080F4DAA: movs r1, 0x80 lsls r1, 23 ldr r0, [sp] orrs r0, r1 str r0, [sp] movs r7, 0 mov r10, r6 ldr r2, _080F4E9C @ =0x00008fe6 adds r6, r4, r2 ldr r3, _080F4EA0 @ =0x00008fe7 adds r5, r4, r3 ldr r0, _080F4EA4 @ =0x000087d8 adds r0, r4 mov r9, r0 ldr r1, _080F4EA8 @ =gUnknown_020300A4 mov r8, r1 _080F4DCA: ldrb r0, [r6] lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 ldrb r2, [r5] lsls r1, r2, 2 adds r1, r2 lsls r1, 4 add r1, r8 adds r0, r1 movs r1, 0xB bl GetBoxMonData cmp r0, 0 beq _080F4E60 ldrb r0, [r6] lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 ldrb r2, [r5] lsls r1, r2, 2 adds r1, r2 lsls r1, 4 add r1, r8 adds r0, r1 movs r1, 0x2D bl GetBoxMonData cmp r0, 0 bne _080F4E60 ldrb r1, [r6] lsls r1, 8 ldr r2, _080F4EAC @ =0xffff00ff ldr r0, [sp] ands r0, r2 orrs r0, r1 str r0, [sp] ldrb r2, [r5] movs r1, 0x1F ands r2, r1 lsls r2, 16 ldr r1, _080F4EB0 @ =0xffe0ffff ands r0, r1 orrs r0, r2 str r0, [sp] ldrb r0, [r6] lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 ldrb r2, [r5] lsls r1, r2, 2 adds r1, r2 lsls r1, 4 add r1, r8 adds r0, r1 mov r2, r9 ldrb r1, [r2] bl GetBoxMonData lsls r0, 24 lsrs r0, 24 ldr r2, _080F4EB4 @ =0xffffff00 ldr r1, [sp] ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp bl sub_80F4944 _080F4E60: mov r3, r10 ldr r1, [r3] ldr r0, _080F4EA0 @ =0x00008fe7 adds r2, r1, r0 ldrb r0, [r2] adds r0, 0x1 movs r4, 0 strb r0, [r2] movs r3, 0xFF lsls r0, 24 lsrs r0, 24 cmp r0, 0x1E bne _080F4E8C strb r4, [r2] ldr r2, _080F4E9C @ =0x00008fe6 adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ands r0, r3 cmp r0, 0xE beq _080F4F64 _080F4E8C: adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 cmp r7, 0xE bls _080F4DCA b _080F4F64 .align 2, 0 _080F4E98: .4byte gUnknown_083DFEC4 _080F4E9C: .4byte 0x00008fe6 _080F4EA0: .4byte 0x00008fe7 _080F4EA4: .4byte 0x000087d8 _080F4EA8: .4byte gUnknown_020300A4 _080F4EAC: .4byte 0xffff00ff _080F4EB0: .4byte 0xffe0ffff _080F4EB4: .4byte 0xffffff00 _080F4EB8: mov r2, sp ldrb r0, [r2, 0x3] movs r1, 0x40 orrs r0, r1 strb r0, [r2, 0x3] strb r3, [r2, 0x1] movs r7, 0 ldr r3, _080F4F44 @ =0x00008828 adds r0, r4, r3 ldrb r0, [r0] cmp r7, r0 bcs _080F4F24 mov r5, sp mov r8, r6 adds r6, r4, r3 _080F4ED6: movs r0, 0x64 adds r1, r7, 0 muls r1, r0 ldr r0, _080F4F48 @ =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _080F4F18 movs r0, 0x1F adds r2, r7, 0 ands r2, r0 ldrb r0, [r5, 0x2] movs r3, 0x20 negs r3, r3 adds r1, r3, 0 ands r0, r1 orrs r0, r2 strb r0, [r5, 0x2] mov r1, r8 ldr r0, [r1] ldr r2, _080F4F4C @ =0x000087d8 adds r0, r2 ldrb r1, [r0] adds r0, r4, 0 bl GetMonData strb r0, [r5] mov r0, sp bl sub_80F4944 _080F4F18: adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 ldrb r3, [r6] cmp r7, r3 bcc _080F4ED6 _080F4F24: bl sub_80F49F4 ldr r0, _080F4F50 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r2, _080F4F54 @ =0x00008fe4 adds r0, r1, r2 ldrh r2, [r0] ldr r3, _080F4F58 @ =0x000087da adds r0, r1, r3 strh r2, [r0] ldr r0, _080F4F5C @ =0x00008fe6 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080F4F64 .align 2, 0 _080F4F44: .4byte 0x00008828 _080F4F48: .4byte gPlayerParty _080F4F4C: .4byte 0x000087d8 _080F4F50: .4byte gUnknown_083DFEC4 _080F4F54: .4byte 0x00008fe4 _080F4F58: .4byte 0x000087da _080F4F5C: .4byte 0x00008fe6 _080F4F60: movs r0, 0 b _080F4F66 _080F4F64: movs r0, 0x1 _080F4F66: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80F4D88 thumb_func_start sub_80F4F78 sub_80F4F78: @ 80F4F78 push {lr} ldr r0, _080F4FA4 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r2, _080F4FA8 @ =0x00009040 adds r0, r1, r2 ldr r3, _080F4FAC @ =0x00008fe9 adds r2, r1, r3 movs r3, 0 ldrsb r3, [r2, r3] lsls r2, r3, 2 adds r2, r3 lsls r2, 2 ldr r3, _080F4FB0 @ =0x00009004 adds r2, r3 adds r1, r2 bl sub_80F53EC bl sub_80F5504 pop {r0} bx r0 .align 2, 0 _080F4FA4: .4byte gUnknown_083DFEC4 _080F4FA8: .4byte 0x00009040 _080F4FAC: .4byte 0x00008fe9 _080F4FB0: .4byte 0x00009004 thumb_func_end sub_80F4F78 thumb_func_start sub_80F4FB4 sub_80F4FB4: @ 80F4FB4 push {r4,lr} bl sub_80F5504 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_80F170C lsls r0, 24 lsrs r0, 24 movs r1, 0 cmp r4, 0 bne _080F4FD2 cmp r0, 0 beq _080F4FD4 _080F4FD2: movs r1, 0x1 _080F4FD4: adds r0, r1, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_80F4FB4 thumb_func_start sub_80F4FDC sub_80F4FDC: @ 80F4FDC push {lr} ldr r0, _080F5020 @ =gUnknown_083DFEC4 ldr r2, [r0] ldr r1, _080F5024 @ =0x000076aa adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 bne _080F4FFE ldr r3, _080F5028 @ =0x000087dc adds r0, r2, r3 movs r3, 0 ldrsh r1, [r0, r3] ldr r3, _080F502C @ =0x00008828 adds r0, r2, r3 ldrb r0, [r0] cmp r1, r0 beq _080F501A _080F4FFE: ldr r1, _080F5030 @ =0x00008fe9 adds r0, r2, r1 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 ldr r3, _080F5034 @ =0x00009004 adds r0, r3 adds r0, r2, r0 adds r3, 0x3C adds r1, r2, r3 bl sub_80F53EC _080F501A: pop {r0} bx r0 .align 2, 0 _080F5020: .4byte gUnknown_083DFEC4 _080F5024: .4byte 0x000076aa _080F5028: .4byte 0x000087dc _080F502C: .4byte 0x00008828 _080F5030: .4byte 0x00008fe9 _080F5034: .4byte 0x00009004 thumb_func_end sub_80F4FDC thumb_func_start sub_80F5038 sub_80F5038: @ 80F5038 push {r4,lr} bl sub_80F5504 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_80F173C lsls r0, 24 lsrs r0, 24 movs r1, 0 cmp r4, 0 bne _080F5056 cmp r0, 0 beq _080F5058 _080F5056: movs r1, 0x1 _080F5058: adds r0, r1, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_80F5038 thumb_func_start sub_80F5060 sub_80F5060: @ 80F5060 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0 beq _080F507C ldr r0, _080F5074 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F5078 @ =0x00008feb adds r0, r1 b _080F5084 .align 2, 0 _080F5074: .4byte gUnknown_083DFEC4 _080F5078: .4byte 0x00008feb _080F507C: ldr r0, _080F50FC @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r2, _080F5100 @ =0x00008fea adds r0, r2 _080F5084: ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 16 lsrs r6, r0, 16 ldr r0, _080F50FC @ =gUnknown_083DFEC4 ldr r4, [r0] ldr r3, _080F5104 @ =0x00008fe9 adds r5, r4, r3 movs r1, 0 ldrsb r1, [r5, r1] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 ldr r2, _080F5108 @ =0x00009004 adds r0, r2 adds r0, r4, r0 lsls r1, r6, 2 adds r1, r6 lsls r1, 2 adds r1, r2 adds r1, r4, r1 bl sub_80F53EC ldr r0, _080F510C @ =0x000087dc adds r3, r4, r0 movs r1, 0 ldrsh r0, [r3, r1] lsls r0, 2 adds r0, r4, r0 ldr r2, _080F5110 @ =0x0000893f adds r0, r2 ldrb r0, [r0] lsls r0, 25 lsrs r0, 31 mov r12, r0 cmp r7, 0 beq _080F5158 ldr r7, _080F5100 @ =0x00008fea adds r1, r4, r7 ldrb r0, [r1] adds r7, 0x1 adds r2, r4, r7 strb r0, [r2] ldrb r0, [r5] strb r0, [r1] strb r6, [r5] ldrb r1, [r2] ldr r2, _080F5114 @ =0x00008fec adds r0, r4, r2 strb r1, [r0] adds r5, r4, 0 ldrh r1, [r3] movs r7, 0 ldrsh r0, [r3, r7] cmp r0, 0 beq _080F5118 subs r2, r1, 0x1 b _080F5120 .align 2, 0 _080F50FC: .4byte gUnknown_083DFEC4 _080F5100: .4byte 0x00008fea _080F5104: .4byte 0x00008fe9 _080F5108: .4byte 0x00009004 _080F510C: .4byte 0x000087dc _080F5110: .4byte 0x0000893f _080F5114: .4byte 0x00008fec _080F5118: ldr r1, _080F513C @ =0x000087da adds r0, r4, r1 ldrh r0, [r0] subs r2, r0, 0x1 _080F5120: ldr r1, _080F5140 @ =0x000087dc adds r0, r5, r1 strh r2, [r0] ldr r2, _080F5144 @ =gUnknown_083DFEC4 ldr r3, [r2] adds r1, r3, r1 ldrh r4, [r1] movs r5, 0 ldrsh r0, [r1, r5] cmp r0, 0 beq _080F5148 subs r1, r4, 0x1 b _080F51CE .align 2, 0 _080F513C: .4byte 0x000087da _080F5140: .4byte 0x000087dc _080F5144: .4byte gUnknown_083DFEC4 _080F5148: ldr r7, _080F5154 @ =0x000087da adds r0, r3, r7 ldrh r0, [r0] subs r1, r0, 0x1 b _080F51CE .align 2, 0 _080F5154: .4byte 0x000087da _080F5158: ldr r7, _080F518C @ =0x00008feb adds r1, r4, r7 ldrb r0, [r1] subs r7, 0x1 adds r2, r4, r7 strb r0, [r2] ldrb r0, [r5] strb r0, [r1] strb r6, [r5] ldrb r1, [r2] ldr r2, _080F5190 @ =0x00008fec adds r0, r4, r2 strb r1, [r0] adds r2, r4, 0 movs r4, 0 ldrsh r1, [r3, r4] ldr r5, _080F5194 @ =0x000087da adds r0, r2, r5 movs r7, 0 ldrsh r0, [r0, r7] subs r0, 0x1 cmp r1, r0 bge _080F5198 ldrh r0, [r3] adds r3, r0, 0x1 b _080F519A .align 2, 0 _080F518C: .4byte 0x00008feb _080F5190: .4byte 0x00008fec _080F5194: .4byte 0x000087da _080F5198: movs r3, 0 _080F519A: ldr r1, _080F51C0 @ =0x000087dc adds r0, r2, r1 strh r3, [r0] ldr r2, _080F51C4 @ =gUnknown_083DFEC4 ldr r3, [r2] adds r4, r3, r1 movs r0, 0 ldrsh r1, [r4, r0] ldr r5, _080F51C8 @ =0x000087da adds r0, r3, r5 movs r7, 0 ldrsh r0, [r0, r7] subs r0, 0x1 cmp r1, r0 bge _080F51CC ldrh r0, [r4] adds r1, r0, 0x1 b _080F51CE .align 2, 0 _080F51C0: .4byte 0x000087dc _080F51C4: .4byte gUnknown_083DFEC4 _080F51C8: .4byte 0x000087da _080F51CC: movs r1, 0 _080F51CE: ldr r4, _080F51FC @ =0x00008fee adds r0, r3, r4 strh r1, [r0] ldr r1, [r2] ldr r5, _080F5200 @ =0x000087dc adds r0, r1, r5 movs r7, 0 ldrsh r0, [r0, r7] lsls r0, 2 adds r0, r1, r0 ldr r3, _080F5204 @ =0x0000893f adds r0, r3 ldrb r0, [r0] lsls r0, 25 lsrs r0, 31 mov r4, r12 cmp r4, 0 bne _080F520C adds r5, 0x4 adds r1, r5 ldr r0, _080F5208 @ =sub_80F5264 b _080F5226 .align 2, 0 _080F51FC: .4byte 0x00008fee _080F5200: .4byte 0x000087dc _080F5204: .4byte 0x0000893f _080F5208: .4byte sub_80F5264 _080F520C: cmp r0, 0 bne _080F5220 ldr r7, _080F5218 @ =0x000087e0 adds r1, r7 ldr r0, _080F521C @ =sub_80F52F8 b _080F5226 .align 2, 0 _080F5218: .4byte 0x000087e0 _080F521C: .4byte sub_80F52F8 _080F5220: ldr r0, _080F5238 @ =0x000087e0 adds r1, r0 ldr r0, _080F523C @ =sub_80F5364 _080F5226: str r0, [r1] ldr r0, [r2] ldr r1, _080F5240 @ =0x000087de adds r0, r1 movs r1, 0 strb r1, [r0] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F5238: .4byte 0x000087e0 _080F523C: .4byte sub_80F5364 _080F5240: .4byte 0x000087de thumb_func_end sub_80F5060 thumb_func_start gpu_sync_bg_show gpu_sync_bg_show: @ 80F5244 push {lr} ldr r0, _080F525C @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F5260 @ =0x000087e0 adds r0, r1 ldr r0, [r0] bl _call_via_r0 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _080F525C: .4byte gUnknown_083DFEC4 _080F5260: .4byte 0x000087e0 thumb_func_end gpu_sync_bg_show thumb_func_start sub_80F5264 sub_80F5264: @ 80F5264 push {r4,r5,lr} ldr r0, _080F5280 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F5284 @ =0x000087de adds r5, r0, r1 ldrb r1, [r5] cmp r1, 0x1 beq _080F52AA cmp r1, 0x1 bgt _080F5288 cmp r1, 0 beq _080F528E b _080F52F0 .align 2, 0 _080F5280: .4byte gUnknown_083DFEC4 _080F5284: .4byte 0x000087de _080F5288: cmp r1, 0x2 beq _080F52EC b _080F52F0 _080F528E: ldr r2, _080F52D8 @ =0x00008fe9 adds r4, r0, r2 ldrb r0, [r4] bl sub_80F2E18 movs r0, 0 ldrsb r0, [r4, r0] lsls r0, 16 lsrs r0, 16 bl sub_80F01E0 ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] _080F52AA: bl sub_80F4FB4 lsls r0, 24 cmp r0, 0 bne _080F52F0 ldr r0, _080F52DC @ =gUnknown_083DFEC4 ldr r4, [r0] ldr r1, _080F52E0 @ =0x00008fee adds r0, r4, r1 movs r2, 0 ldrsh r0, [r0, r2] ldr r2, _080F52E4 @ =0x00008fec adds r1, r4, r2 ldrb r1, [r1] bl sub_80F4900 ldr r0, _080F52E8 @ =0x000087de adds r4, r0 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _080F52F0 .align 2, 0 _080F52D8: .4byte 0x00008fe9 _080F52DC: .4byte gUnknown_083DFEC4 _080F52E0: .4byte 0x00008fee _080F52E4: .4byte 0x00008fec _080F52E8: .4byte 0x000087de _080F52EC: movs r0, 0 b _080F52F2 _080F52F0: movs r0, 0x1 _080F52F2: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80F5264 thumb_func_start sub_80F52F8 sub_80F52F8: @ 80F52F8 push {r4,r5,lr} ldr r0, _080F5310 @ =gUnknown_083DFEC4 ldr r4, [r0] ldr r0, _080F5314 @ =0x000087de adds r5, r4, r0 ldrb r0, [r5] cmp r0, 0 beq _080F5318 cmp r0, 0x1 beq _080F5358 b _080F535C .align 2, 0 _080F5310: .4byte gUnknown_083DFEC4 _080F5314: .4byte 0x000087de _080F5318: bl sub_80F5038 lsls r0, 24 cmp r0, 0 bne _080F535C ldr r1, _080F5350 @ =0x00008fe9 adds r0, r4, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 16 lsrs r0, 16 bl sub_80F01E0 ldr r2, _080F5354 @ =0x00008fee adds r0, r4, r2 movs r1, 0 ldrsh r0, [r0, r1] subs r2, 0x2 adds r1, r4, r2 ldrb r1, [r1] bl sub_80F4900 ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] b _080F535C .align 2, 0 _080F5350: .4byte 0x00008fe9 _080F5354: .4byte 0x00008fee _080F5358: movs r0, 0 b _080F535E _080F535C: movs r0, 0x1 _080F535E: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80F52F8 thumb_func_start sub_80F5364 sub_80F5364: @ 80F5364 push {r4,r5,lr} ldr r0, _080F5380 @ =gUnknown_083DFEC4 ldr r4, [r0] ldr r0, _080F5384 @ =0x000087de adds r5, r4, r0 ldrb r0, [r5] cmp r0, 0x1 beq _080F53B8 cmp r0, 0x1 bgt _080F5388 cmp r0, 0 beq _080F538E b _080F53E4 .align 2, 0 _080F5380: .4byte gUnknown_083DFEC4 _080F5384: .4byte 0x000087de _080F5388: cmp r0, 0x2 beq _080F53CA b _080F53E4 _080F538E: bl sub_80F5504 bl sub_80F173C lsls r0, 24 cmp r0, 0 bne _080F53E4 ldr r1, _080F53B4 @ =0x00008fe9 adds r4, r1 ldrb r0, [r4] bl sub_80F2E18 movs r0, 0 ldrsb r0, [r4, r0] lsls r0, 16 lsrs r0, 16 bl sub_80F01E0 b _080F53C2 .align 2, 0 _080F53B4: .4byte 0x00008fe9 _080F53B8: bl sub_80F4FB4 lsls r0, 24 cmp r0, 0 bne _080F53E4 _080F53C2: ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] b _080F53E4 _080F53CA: ldr r2, _080F53E0 @ =0x00008fee adds r0, r4, r2 movs r1, 0 ldrsh r0, [r0, r1] subs r2, 0x2 adds r1, r4, r2 ldrb r1, [r1] bl sub_80F4900 movs r0, 0 b _080F53E6 .align 2, 0 _080F53E0: .4byte 0x00008fee _080F53E4: movs r0, 0x1 _080F53E6: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80F5364 thumb_func_start sub_80F53EC sub_80F53EC: @ 80F53EC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC str r0, [sp] mov r9, r1 movs r7, 0 ldr r0, _080F54F4 @ =gUnknown_083DFEC4 ldr r0, [r0] str r0, [sp, 0x4] _080F5404: lsls r4, r7, 2 ldr r1, [sp] adds r0, r4, r1 ldrh r1, [r0] lsls r5, r1, 8 mov r2, r9 adds r0, r4, r2 ldrh r0, [r0] subs r0, r1 lsls r0, 8 movs r1, 0xA bl __divsi3 adds r6, r0, 0 movs r3, 0 adds r7, 0x1 mov r10, r7 mov r8, r4 _080F5428: lsls r0, r3, 2 adds r0, r3 lsls r0, 2 add r0, r8 ldr r7, [sp, 0x4] adds r0, r7, r0 asrs r2, r5, 8 asrs r1, r5, 7 movs r7, 0x1 ands r1, r7 adds r2, r1 ldr r1, _080F54F8 @ =0x00009054 adds r0, r1 strh r2, [r0] adds r5, r6 adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x8 bls _080F5428 ldr r2, _080F54F4 @ =gUnknown_083DFEC4 ldr r1, [r2] lsls r0, r3, 2 adds r0, r3 lsls r0, 2 adds r0, r4, r0 adds r1, r0 mov r3, r9 adds r2, r4, r3 ldrh r0, [r2] ldr r7, _080F54F8 @ =0x00009054 adds r1, r7 strh r0, [r1] ldr r1, [sp] adds r0, r4, r1 ldrh r1, [r0, 0x2] lsls r5, r1, 8 ldrh r0, [r2, 0x2] subs r0, r1 lsls r0, 8 movs r1, 0xA bl __divsi3 adds r6, r0, 0 movs r3, 0 ldr r0, _080F54F4 @ =gUnknown_083DFEC4 ldr r0, [r0] mov r12, r0 str r4, [sp, 0x8] movs r2, 0x1 mov r8, r2 _080F548E: lsls r0, r3, 2 adds r0, r3 lsls r0, 2 ldr r7, [sp, 0x8] adds r0, r7, r0 add r0, r12 asrs r2, r5, 8 asrs r1, r5, 7 mov r7, r8 ands r1, r7 adds r2, r1 ldr r1, _080F54FC @ =0x00009056 adds r0, r1 strh r2, [r0] adds r5, r6 adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x8 bls _080F548E ldr r7, _080F54F4 @ =gUnknown_083DFEC4 ldr r2, [r7] lsls r0, r3, 2 adds r0, r3 lsls r0, 2 adds r0, r4, r0 adds r0, r2, r0 mov r3, r9 adds r1, r4, r3 ldrh r1, [r1, 0x2] ldr r7, _080F54FC @ =0x00009056 adds r0, r7 strh r1, [r0] mov r1, r10 lsls r0, r1, 16 lsrs r7, r0, 16 cmp r7, 0x4 bls _080F5404 ldr r3, _080F5500 @ =0x00009342 adds r1, r2, r3 movs r0, 0 strh r0, [r1] add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F54F4: .4byte gUnknown_083DFEC4 _080F54F8: .4byte 0x00009054 _080F54FC: .4byte 0x00009056 _080F5500: .4byte 0x00009342 thumb_func_end sub_80F53EC thumb_func_start sub_80F5504 sub_80F5504: @ 80F5504 push {r4,lr} ldr r0, _080F551C @ =gUnknown_083DFEC4 ldr r2, [r0] ldr r0, _080F5520 @ =0x00009342 adds r4, r2, r0 ldrh r0, [r4] adds r1, r0, 0 cmp r1, 0x9 bls _080F5524 movs r0, 0 b _080F5544 .align 2, 0 _080F551C: .4byte gUnknown_083DFEC4 _080F5520: .4byte 0x00009342 _080F5524: adds r0, 0x1 strh r0, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 ldr r1, _080F554C @ =0x00009054 adds r0, r1 adds r0, r2, r0 bl sub_80F556C ldrh r1, [r4] movs r0, 0xA eors r1, r0 negs r0, r1 orrs r0, r1 lsrs r0, 31 _080F5544: pop {r4} pop {r1} bx r1 .align 2, 0 _080F554C: .4byte 0x00009054 thumb_func_end sub_80F5504 thumb_func_start sub_80F5550 sub_80F5550: @ 80F5550 push {lr} bl sub_80F53EC pop {r0} bx r0 thumb_func_end sub_80F5550 thumb_func_start sub_80F555C sub_80F555C: @ 80F555C push {lr} bl sub_80F5504 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_80F555C thumb_func_start sub_80F556C sub_80F556C: @ 80F556C push {r4,r5,lr} adds r4, r0, 0 movs r2, 0 ldr r5, _080F55A0 @ =gUnknown_083DFEC4 ldr r0, [r5] ldr r1, _080F55A4 @ =0x0000911c adds r3, r0, r1 _080F557A: lsls r0, r2, 2 adds r1, r3, r0 adds r0, r4 ldr r0, [r0] str r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x4 bls _080F557A ldr r0, [r5] ldr r1, _080F55A8 @ =0x00009344 adds r0, r1 movs r1, 0x1 strb r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F55A0: .4byte gUnknown_083DFEC4 _080F55A4: .4byte 0x0000911c _080F55A8: .4byte 0x00009344 thumb_func_end sub_80F556C thumb_func_start sub_80F55AC sub_80F55AC: @ 80F55AC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r6, r0, 0 mov r8, r1 ldr r1, _080F5674 @ =gUnknown_083E4890 ldrb r0, [r6] adds r0, r1 ldrb r2, [r0] adds r6, 0x1 movs r0, 0x9B mov r3, r8 strh r0, [r3] movs r0, 0x5B subs r0, r2 strh r0, [r3, 0x2] movs r7, 0x40 movs r0, 0 mov r12, r0 movs r2, 0x1 mov r9, r2 ldr r3, _080F5678 @ =gSineTable mov r10, r3 _080F55DE: adds r0, r7, 0 adds r0, 0x33 lsls r0, 24 lsrs r7, r0, 24 mov r1, r12 lsls r0, r1, 24 movs r2, 0xFF lsls r2, 24 adds r0, r2 lsrs r3, r0, 24 mov r12, r3 cmp r0, 0 bge _080F55FC movs r0, 0x4 mov r12, r0 _080F55FC: mov r1, r12 lsls r0, r1, 24 asrs r4, r0, 24 cmp r4, 0x2 bne _080F560C adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 _080F560C: ldrb r0, [r6] ldr r2, _080F5674 @ =gUnknown_083E4890 adds r0, r2 ldrb r2, [r0] adds r6, 0x1 lsls r0, r4, 2 mov r1, r8 adds r3, r0, r1 adds r0, r7, 0 adds r0, 0x40 lsls r0, 1 add r0, r10 movs r1, 0 ldrsh r0, [r0, r1] muls r0, r2 asrs r5, r0, 8 adds r0, r5, 0 adds r0, 0x9B strh r0, [r3] lsls r0, r7, 1 add r0, r10 movs r1, 0 ldrsh r0, [r0, r1] adds r1, r2, 0 muls r1, r0 asrs r1, 8 movs r0, 0x5B subs r0, r1 strh r0, [r3, 0x2] cmp r4, 0x2 bgt _080F5658 cmp r2, 0x20 bne _080F5652 cmp r4, 0x2 beq _080F5658 _080F5652: adds r0, r5, 0 adds r0, 0x9C strh r0, [r3] _080F5658: mov r0, r9 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r9, r0 cmp r0, 0x4 bls _080F55DE pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F5674: .4byte gUnknown_083E4890 _080F5678: .4byte gSineTable thumb_func_end sub_80F55AC thumb_func_start sub_80F567C sub_80F567C: @ 80F567C push {lr} bl sub_80F55AC pop {r0} bx r0 thumb_func_end sub_80F567C thumb_func_start sub_80F5688 sub_80F5688: @ 80F5688 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 adds r6, r0, 0 adds r5, r1, 0 str r2, [sp] ldr r7, [sp, 0x34] lsls r3, 24 lsrs r3, 24 mov r9, r3 movs r0, 0 str r0, [sp, 0x8] ldrh r0, [r5, 0x2] ldrh r1, [r2, 0x2] cmp r0, r1 bcs _080F56D0 adds r2, r0, 0 str r2, [sp, 0x4] ldr r3, [sp] ldrh r0, [r3, 0x2] ldrh r1, [r5] lsls r4, r1, 10 ldrh r2, [r3] mov r10, r2 ldr r3, [sp, 0x4] subs r0, r3 lsls r0, 16 lsrs r0, 16 mov r8, r0 cmp r0, 0 beq _080F56FC subs r0, r2, r1 b _080F56F2 _080F56D0: ldrh r0, [r5, 0x2] ldr r1, [sp] ldrh r1, [r1, 0x2] str r1, [sp, 0x4] ldr r2, [sp] ldrh r1, [r2] lsls r4, r1, 10 ldrh r3, [r5] mov r10, r3 ldr r2, [sp, 0x4] subs r0, r2 lsls r0, 16 lsrs r0, 16 mov r8, r0 cmp r0, 0 beq _080F56FC subs r0, r3, r1 _080F56F2: lsls r0, 10 mov r1, r8 bl __divsi3 str r0, [sp, 0x8] _080F56FC: mov r0, r8 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r8, r0 cmp r7, 0 bne _080F5746 ldr r0, [sp, 0x4] subs r0, 0x38 lsls r0, 2 adds r6, r0 movs r5, 0 mov r3, r9 lsls r3, 1 mov r12, r3 mov r0, r10 add r0, r9 str r0, [sp, 0xC] cmp r7, r8 bcs _080F57D4 movs r7, 0x1 _080F5726: adds r2, r3, r6 asrs r1, r4, 10 asrs r0, r4, 9 ands r0, r7 adds r1, r0 add r1, r9 strh r1, [r2] ldr r1, [sp, 0x8] adds r4, r1 adds r6, 0x4 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r8 bcc _080F5726 b _080F57D4 _080F5746: ldr r2, [sp, 0x8] cmp r2, 0 ble _080F57E4 ldr r0, [sp, 0x4] subs r0, 0x38 lsls r0, 2 adds r7, r0 movs r5, 0 mov r3, r9 lsls r3, 1 mov r12, r3 mov r0, r10 add r0, r9 str r0, [sp, 0xC] cmp r5, r8 bcs _080F5798 ldr r0, _080F57D8 @ =0x00026bff cmp r4, r0 bgt _080F5798 mov r1, r12 str r1, [sp, 0x10] mov r10, r0 _080F5772: ldr r3, [sp, 0x10] adds r2, r3, r7 asrs r1, r4, 10 asrs r0, r4, 9 movs r3, 0x1 ands r0, r3 adds r1, r0 add r1, r9 strh r1, [r2] ldr r0, [sp, 0x8] adds r4, r0 adds r7, 0x4 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r8 bcs _080F5798 cmp r4, r10 ble _080F5772 _080F5798: ldr r1, _080F57DC @ =gUnknown_083DFEC4 ldr r0, [r1] ldr r2, [sp, 0x4] adds r1, r2, r5 ldr r3, _080F57E0 @ =0x00009340 adds r0, r3 strh r1, [r0] ldrh r0, [r0] subs r0, 0x38 lsls r0, 2 adds r6, r0 cmp r5, r8 bcs _080F57D4 mov r3, r12 movs r7, 0x1 _080F57B6: adds r2, r3, r6 asrs r1, r4, 10 asrs r0, r4, 9 ands r0, r7 adds r1, r0 add r1, r9 strh r1, [r2] ldr r0, [sp, 0x8] adds r4, r0 adds r6, 0x4 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r8 bcc _080F57B6 _080F57D4: subs r0, r6, 0x4 b _080F58C4 .align 2, 0 _080F57D8: .4byte 0x00026bff _080F57DC: .4byte gUnknown_083DFEC4 _080F57E0: .4byte 0x00009340 _080F57E4: ldr r1, [sp, 0x8] cmp r1, 0 bge _080F5890 ldr r0, [sp, 0x4] subs r0, 0x38 lsls r0, 2 adds r6, r0 movs r5, 0 mov r2, r9 lsls r2, 1 mov r12, r2 mov r3, r10 add r3, r9 str r3, [sp, 0xC] cmp r5, r8 bcs _080F5842 adds r3, r2, r6 asrs r1, r4, 10 asrs r0, r4, 9 movs r2, 0x1 ands r0, r2 adds r1, r0 add r1, r9 strh r1, [r3] b _080F5838 _080F5816: ldr r0, [sp, 0x8] adds r4, r0 adds r6, 0x4 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r8 bcs _080F5842 mov r1, r12 adds r3, r1, r6 asrs r2, r4, 10 asrs r0, r4, 9 movs r1, 0x1 ands r0, r1 adds r2, r0 add r2, r9 strh r2, [r3] _080F5838: ldr r0, _080F5884 @ =0x00026bff cmp r4, r0 bgt _080F5816 movs r0, 0x9B strh r0, [r3] _080F5842: ldr r2, _080F5888 @ =gUnknown_083DFEC4 ldr r0, [r2] ldr r3, [sp, 0x4] adds r1, r3, r5 ldr r2, _080F588C @ =0x00009340 adds r0, r2 strh r1, [r0] ldrh r0, [r0] subs r0, 0x38 lsls r0, 2 adds r7, r0 cmp r5, r8 bcs _080F587E mov r3, r12 movs r6, 0x1 _080F5860: adds r2, r3, r7 asrs r1, r4, 10 asrs r0, r4, 9 ands r0, r6 adds r1, r0 add r1, r9 strh r1, [r2] ldr r0, [sp, 0x8] adds r4, r0 adds r7, 0x4 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r8 bcc _080F5860 _080F587E: subs r0, r7, 0x4 b _080F58C4 .align 2, 0 _080F5884: .4byte 0x00026bff _080F5888: .4byte gUnknown_083DFEC4 _080F588C: .4byte 0x00009340 _080F5890: ldr r0, _080F58BC @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F58C0 @ =0x00009340 adds r0, r1 mov r2, sp ldrh r2, [r2, 0x4] strh r2, [r0] ldr r0, [sp, 0x4] subs r0, 0x38 lsls r0, 2 adds r6, r0 adds r7, r0 ldrh r0, [r5] adds r0, 0x1 strh r0, [r6, 0x2] ldr r3, [sp] ldrh r0, [r3] strh r0, [r7] movs r0, 0x9B strh r0, [r7, 0x2] b _080F58CC .align 2, 0 _080F58BC: .4byte gUnknown_083DFEC4 _080F58C0: .4byte 0x00009340 _080F58C4: add r0, r12 mov r1, sp ldrh r1, [r1, 0xC] strh r1, [r0] _080F58CC: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80F5688 thumb_func_start sub_80F58DC sub_80F58DC: @ 80F58DC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r5, r0, 0 ldrh r0, [r5, 0x2] ldrh r1, [r5, 0x6] cmp r0, r1 bcs _080F5914 adds r4, r0, 0 mov r8, r4 ldr r0, _080F590C @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F5910 @ =0x00009130 adds r0, r1 adds r4, r5, 0x4 movs r1, 0 str r1, [sp] adds r1, r5, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_80F5688 b _080F5930 .align 2, 0 _080F590C: .4byte gUnknown_083DFEC4 _080F5910: .4byte 0x00009130 _080F5914: ldrh r4, [r5, 0x6] mov r8, r4 ldr r0, _080F5A08 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F5A0C @ =0x00009130 adds r0, r1 adds r4, r5, 0x4 movs r1, 0 str r1, [sp] adds r1, r4, 0 adds r2, r5, 0 movs r3, 0 bl sub_80F5688 _080F5930: adds r1, r4, 0 ldr r0, _080F5A08 @ =gUnknown_083DFEC4 ldr r6, [r0] ldr r0, _080F5A0C @ =0x00009130 adds r4, r6, r0 adds r7, r5, 0 adds r7, 0x8 movs r0, 0 str r0, [sp] adds r0, r4, 0 adds r2, r7, 0 movs r3, 0x1 bl sub_80F5688 movs r3, 0 ldrh r0, [r5, 0xA] ldrh r1, [r5, 0xE] cmp r0, r1 bhi _080F5958 movs r3, 0x1 _080F5958: adds r2, r5, 0 adds r2, 0xC ldr r1, _080F5A10 @ =0x00009238 adds r0, r6, r1 str r0, [sp] adds r0, r4, 0 adds r1, r7, 0 bl sub_80F5688 movs r2, 0x38 cmp r2, r8 bcs _080F5990 adds r7, r4, 0 movs r3, 0 ldr r0, _080F5A14 @ =0x00009132 adds r4, r6, r0 _080F5978: adds r0, r2, 0 subs r0, 0x38 lsls r0, 2 adds r1, r7, r0 strh r3, [r1] adds r0, r4, r0 strh r3, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, r8 bcc _080F5978 _080F5990: ldrh r2, [r5, 0x2] ldr r0, _080F5A08 @ =gUnknown_083DFEC4 ldr r3, [r0] ldr r4, _080F5A18 @ =0x00009340 adds r1, r3, r4 adds r6, r0, 0 ldrh r0, [r1] cmp r2, r0 bhi _080F59BE ldr r4, _080F5A0C @ =0x00009130 adds r3, r4 movs r4, 0x9B _080F59A8: adds r0, r2, 0 subs r0, 0x38 lsls r0, 2 adds r0, r3, r0 strh r4, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 ldrh r0, [r1] cmp r2, r0 bls _080F59A8 _080F59BE: ldr r4, [r6] ldr r1, _080F5A18 @ =0x00009340 adds r0, r4, r1 ldrh r0, [r0] ldrh r1, [r5, 0xA] cmp r0, r1 bcs _080F59CE adds r0, r1, 0 _080F59CE: adds r0, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x79 bhi _080F59FA ldr r0, _080F5A0C @ =0x00009130 adds r5, r4, r0 movs r3, 0 ldr r1, _080F5A14 @ =0x00009132 adds r4, r1 _080F59E2: adds r0, r2, 0 subs r0, 0x38 lsls r0, 2 adds r1, r5, r0 strh r3, [r1] adds r0, r4, r0 strh r3, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x79 bls _080F59E2 _080F59FA: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F5A08: .4byte gUnknown_083DFEC4 _080F5A0C: .4byte 0x00009130 _080F5A10: .4byte 0x00009238 _080F5A14: .4byte 0x00009132 _080F5A18: .4byte 0x00009340 thumb_func_end sub_80F58DC thumb_func_start sub_80F5A1C sub_80F5A1C: @ 80F5A1C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r5, r0, 0 ldrh r0, [r5, 0x2] ldrh r1, [r5, 0x12] cmp r0, r1 bcs _080F5A54 adds r7, r0, 0 ldr r0, _080F5A4C @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r2, _080F5A50 @ =0x00009238 adds r0, r2 adds r4, r5, 0 adds r4, 0x10 movs r1, 0 str r1, [sp] adds r1, r5, 0 adds r2, r4, 0 movs r3, 0 bl sub_80F5688 b _080F5A70 .align 2, 0 _080F5A4C: .4byte gUnknown_083DFEC4 _080F5A50: .4byte 0x00009238 _080F5A54: ldrh r7, [r5, 0x12] ldr r0, _080F5B28 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r4, _080F5B2C @ =0x00009238 adds r0, r4 adds r4, r5, 0 adds r4, 0x10 movs r1, 0 str r1, [sp] adds r1, r4, 0 adds r2, r5, 0 movs r3, 0x1 bl sub_80F5688 _080F5A70: adds r1, r4, 0 ldr r0, _080F5B28 @ =gUnknown_083DFEC4 ldr r0, [r0] mov r8, r0 ldr r4, _080F5B2C @ =0x00009238 add r4, r8 adds r2, r5, 0 adds r2, 0xC movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r3, 0 bl sub_80F5688 movs r2, 0x38 cmp r2, r7 bcs _080F5AB2 adds r6, r4, 0 movs r3, 0 ldr r4, _080F5B30 @ =0x0000923a add r4, r8 _080F5A9A: adds r0, r2, 0 subs r0, 0x38 lsls r0, 2 adds r1, r6, r0 strh r3, [r1] adds r0, r4, r0 strh r3, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, r7 bcc _080F5A9A _080F5AB2: ldrh r2, [r5, 0x2] ldr r0, _080F5B28 @ =gUnknown_083DFEC4 ldr r3, [r0] ldr r4, _080F5B34 @ =0x00009340 adds r1, r3, r4 adds r6, r0, 0 ldrh r0, [r1] cmp r2, r0 bhi _080F5AE0 ldr r4, _080F5B30 @ =0x0000923a adds r3, r4 movs r4, 0x9B _080F5ACA: adds r0, r2, 0 subs r0, 0x38 lsls r0, 2 adds r0, r3, r0 strh r4, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 ldrh r0, [r1] cmp r2, r0 bls _080F5ACA _080F5AE0: ldrh r0, [r5, 0xE] adds r1, r0, 0x1 ldr r3, [r6] ldr r2, _080F5B34 @ =0x00009340 adds r0, r3, r2 ldrh r0, [r0] cmp r0, r1 bge _080F5AF2 adds r0, r1, 0 _080F5AF2: lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x79 bhi _080F5B1C ldr r4, _080F5B2C @ =0x00009238 adds r5, r3, r4 movs r4, 0 ldr r0, _080F5B30 @ =0x0000923a adds r3, r0 _080F5B04: adds r0, r2, 0 subs r0, 0x38 lsls r0, 2 adds r1, r5, r0 strh r4, [r1] adds r0, r3, r0 strh r4, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x79 bls _080F5B04 _080F5B1C: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F5B28: .4byte gUnknown_083DFEC4 _080F5B2C: .4byte 0x00009238 _080F5B30: .4byte 0x0000923a _080F5B34: .4byte 0x00009340 thumb_func_end sub_80F5A1C thumb_func_start sub_80F5B38 sub_80F5B38: @ 80F5B38 ldr r0, _080F5B48 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F5B4C @ =0x00009345 adds r0, r1 movs r1, 0 strb r1, [r0] bx lr .align 2, 0 _080F5B48: .4byte gUnknown_083DFEC4 _080F5B4C: .4byte 0x00009345 thumb_func_end sub_80F5B38 thumb_func_start sub_80F5B50 sub_80F5B50: @ 80F5B50 push {r4,r5,lr} sub sp, 0xC ldr r0, _080F5B68 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F5B6C @ =0x00009345 adds r4, r0, r1 ldrb r0, [r4] cmp r0, 0 beq _080F5B70 cmp r0, 0x1 beq _080F5BB4 b _080F5BCC .align 2, 0 _080F5B68: .4byte gUnknown_083DFEC4 _080F5B6C: .4byte 0x00009345 _080F5B70: bl dp12_8087EA4 ldr r0, _080F5BA8 @ =gUnknown_03004DE0 movs r2, 0xEF movs r3, 0xF4 lsls r3, 3 adds r1, r0, r3 adds r0, 0x20 movs r3, 0xF _080F5B82: strh r2, [r0] strh r2, [r0, 0x2] strh r2, [r1] strh r2, [r1, 0x2] adds r1, 0x4 adds r0, 0x4 subs r3, 0x1 cmp r3, 0 bge _080F5B82 ldr r0, _080F5BAC @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r5, _080F5BB0 @ =0x00009345 adds r1, r5 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r0, 0x1 b _080F5BCE .align 2, 0 _080F5BA8: .4byte gUnknown_03004DE0 _080F5BAC: .4byte gUnknown_083DFEC4 _080F5BB0: .4byte 0x00009345 _080F5BB4: mov r0, sp ldr r1, _080F5BD8 @ =gUnknown_083E4990 ldm r1!, {r2,r3,r5} stm r0!, {r2,r3,r5} ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] bl sub_80895F8 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] _080F5BCC: movs r0, 0 _080F5BCE: add sp, 0xC pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080F5BD8: .4byte gUnknown_083E4990 thumb_func_end sub_80F5B50 thumb_func_start sub_80F5BDC sub_80F5BDC: @ 80F5BDC push {lr} ldr r1, _080F5BEC @ =gUnknown_03004DC0 movs r0, 0x3 strb r0, [r1, 0x15] bl sub_8089668 pop {r0} bx r0 .align 2, 0 _080F5BEC: .4byte gUnknown_03004DC0 thumb_func_end sub_80F5BDC thumb_func_start sub_80F5BF0 sub_80F5BF0: @ 80F5BF0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC ldr r0, _080F5CB8 @ =gUnknown_083DFEC4 ldr r5, [r0] ldr r1, _080F5CBC @ =0x00009344 adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0 beq _080F5CA6 ldr r0, _080F5CC0 @ =0x0000911c adds r4, r5, r0 adds r0, r4, 0 bl sub_80F58DC adds r0, r4, 0 bl sub_80F5A1C movs r6, 0 ldr r1, _080F5CC4 @ =gUnknown_03004DE0 mov r12, r1 movs r0, 0xF0 lsls r0, 3 add r0, r12 mov r9, r0 adds r7, r5, 0 ldr r1, _080F5CC8 @ =0x0000ffff mov r8, r1 ldr r5, _080F5CCC @ =0x00009130 adds r5, r7, r5 str r5, [sp] ldr r0, _080F5CD0 @ =0x00009132 adds r0, r7, r0 str r0, [sp, 0x4] ldr r1, _080F5CD4 @ =0x00009238 adds r1, r7 mov r10, r1 _080F5C40: adds r2, r6, 0 adds r2, 0x37 lsls r3, r2, 2 mov r5, r9 adds r5, r3, r5 str r5, [sp, 0x8] add r3, r12 lsls r4, r6, 2 ldr r1, [sp] adds r0, r1, r4 ldrh r0, [r0] lsls r0, 8 ldr r5, [sp, 0x4] adds r1, r5, r4 ldrh r1, [r1] orrs r0, r1 strh r0, [r3] mov r1, r8 ands r0, r1 ldr r5, [sp, 0x8] strh r0, [r5] lsls r2, 1 adds r2, 0x1 lsls r2, 1 mov r0, r9 adds r3, r2, r0 add r2, r12 mov r1, r10 adds r0, r1, r4 ldrh r1, [r0] lsls r1, 8 ldr r5, _080F5CD8 @ =0x0000923a adds r0, r7, r5 adds r0, r4 ldrh r0, [r0] orrs r1, r0 strh r1, [r2] mov r0, r8 ands r1, r0 strh r1, [r3] adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 ldr r0, _080F5CB8 @ =gUnknown_083DFEC4 cmp r6, 0x41 bls _080F5C40 ldr r0, [r0] ldr r1, _080F5CBC @ =0x00009344 adds r0, r1 movs r1, 0 strb r1, [r0] _080F5CA6: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F5CB8: .4byte gUnknown_083DFEC4 _080F5CBC: .4byte 0x00009344 _080F5CC0: .4byte 0x0000911c _080F5CC4: .4byte gUnknown_03004DE0 _080F5CC8: .4byte 0x0000ffff _080F5CCC: .4byte 0x00009130 _080F5CD0: .4byte 0x00009132 _080F5CD4: .4byte 0x00009238 _080F5CD8: .4byte 0x0000923a thumb_func_end sub_80F5BF0 thumb_func_start sub_80F5CDC sub_80F5CDC: @ 80F5CDC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080F5DB0 @ =gUnknown_083DFEC4 ldr r6, [r0] ldr r1, _080F5DB4 @ =0x00009344 adds r0, r6, r1 ldrb r0, [r0] cmp r0, 0 beq _080F5DA0 ldr r0, _080F5DB8 @ =0x0000911c adds r4, r6, r0 adds r0, r4, 0 bl sub_80F58DC adds r0, r4, 0 bl sub_80F5A1C movs r0, 0x37 subs r0, r5 lsls r0, 17 lsrs r5, r0, 16 movs r7, 0 ldr r1, _080F5DBC @ =gUnknown_03004DE0 mov r12, r1 movs r4, 0xF0 lsls r4, 3 add r4, r12 mov r9, r4 ldr r0, _080F5DC0 @ =0x0000ffff mov r8, r0 ldr r1, _080F5DC4 @ =0x00009130 adds r1, r6, r1 str r1, [sp] ldr r4, _080F5DC8 @ =0x00009132 adds r4, r6, r4 str r4, [sp, 0x4] ldr r0, _080F5DCC @ =0x00009238 adds r0, r6 mov r10, r0 _080F5D36: lsls r2, r5, 1 mov r1, r9 adds r1, r2, r1 str r1, [sp, 0x8] add r2, r12 lsls r3, r7, 2 ldr r4, [sp] adds r0, r4, r3 ldrh r0, [r0] lsls r0, 8 ldr r4, [sp, 0x4] adds r1, r4, r3 ldrh r1, [r1] orrs r0, r1 strh r0, [r2] mov r1, r8 ands r0, r1 ldr r4, [sp, 0x8] strh r0, [r4] adds r2, r5, 0x1 lsls r2, 1 mov r0, r9 adds r0, r2, r0 str r0, [sp, 0x8] add r2, r12 mov r1, r10 adds r0, r1, r3 ldrh r1, [r0] lsls r1, 8 ldr r4, _080F5DD0 @ =0x0000923a adds r0, r6, r4 adds r0, r3 ldrh r0, [r0] orrs r1, r0 strh r1, [r2] mov r0, r8 ands r1, r0 ldr r4, [sp, 0x8] strh r1, [r4] adds r0, r5, 0x2 lsls r0, 16 lsrs r5, r0, 16 adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 ldr r0, _080F5DB0 @ =gUnknown_083DFEC4 cmp r7, 0x41 bls _080F5D36 ldr r0, [r0] ldr r1, _080F5DB4 @ =0x00009344 adds r0, r1 movs r1, 0 strb r1, [r0] _080F5DA0: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F5DB0: .4byte gUnknown_083DFEC4 _080F5DB4: .4byte 0x00009344 _080F5DB8: .4byte 0x0000911c _080F5DBC: .4byte gUnknown_03004DE0 _080F5DC0: .4byte 0x0000ffff _080F5DC4: .4byte 0x00009130 _080F5DC8: .4byte 0x00009132 _080F5DCC: .4byte 0x00009238 _080F5DD0: .4byte 0x0000923a thumb_func_end sub_80F5CDC thumb_func_start sub_80F5DD4 sub_80F5DD4: @ 80F5DD4 push {lr} ldr r0, _080F5DE8 @ =gMain ldrh r1, [r0, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080F5DEC bl sub_80F5E20 b _080F5E18 .align 2, 0 _080F5DE8: .4byte gMain _080F5DEC: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080F5DFA bl sub_80F5EE4 b _080F5E18 _080F5DFA: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080F5E08 bl sub_80F5FB4 b _080F5E18 _080F5E08: movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _080F5E14 movs r0, 0 b _080F5E1C _080F5E14: bl sub_80F6010 _080F5E18: lsls r0, 24 lsrs r0, 24 _080F5E1C: pop {r1} bx r1 thumb_func_end sub_80F5DD4 thumb_func_start sub_80F5E20 sub_80F5E20: @ 80F5E20 push {r4,r5,lr} ldr r0, _080F5E38 @ =gUnknown_083DFEC4 ldr r2, [r0] ldr r3, _080F5E3C @ =0x0000876e adds r1, r2, r3 movs r5, 0 ldrsh r1, [r1, r5] adds r4, r0, 0 cmp r1, 0 bne _080F5E40 movs r0, 0 b _080F5EC8 .align 2, 0 _080F5E38: .4byte gUnknown_083DFEC4 _080F5E3C: .4byte 0x0000876e _080F5E40: ldr r1, _080F5E6C @ =0x000087c9 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 beq _080F5E74 ldr r3, _080F5E70 @ =0x0000876c adds r0, r2, r3 movs r5, 0 ldrsh r0, [r0, r5] cmp r0, 0 bne _080F5E74 movs r4, 0x1 negs r4, r4 adds r0, r4, 0 bl sub_80F063C adds r0, r4, 0 bl sub_80F6074 movs r0, 0x2 b _080F5EC8 .align 2, 0 _080F5E6C: .4byte 0x000087c9 _080F5E70: .4byte 0x0000876c _080F5E74: ldr r1, [r4] ldr r0, _080F5ED0 @ =0x0000876c adds r2, r1, r0 ldrh r0, [r2] subs r3, r0, 0x1 strh r3, [r2] ldr r5, _080F5ED4 @ =0x000087c9 adds r0, r1, r5 ldrb r0, [r0] cmp r0, 0 bne _080F5E98 lsls r0, r3, 16 cmp r0, 0 bge _080F5E98 ldr r3, _080F5ED8 @ =0x00008772 adds r0, r1, r3 ldrh r0, [r0] strh r0, [r2] _080F5E98: ldr r0, [r4] ldr r5, _080F5EDC @ =0x00008770 adds r2, r0, r5 ldr r3, _080F5ED0 @ =0x0000876c adds r1, r0, r3 ldrh r1, [r1] ldrh r2, [r2] adds r2, r1, r2 subs r5, 0x2 adds r4, r0, r5 strh r2, [r4] ldr r1, _080F5EE0 @ =0x00008774 adds r0, r1 lsls r1, r2, 16 asrs r1, 16 ldrh r3, [r0] movs r5, 0 ldrsh r0, [r0, r5] cmp r1, r0 ble _080F5EC6 subs r0, r2, 0x1 subs r0, r3 strh r0, [r4] _080F5EC6: movs r0, 0x1 _080F5EC8: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080F5ED0: .4byte 0x0000876c _080F5ED4: .4byte 0x000087c9 _080F5ED8: .4byte 0x00008772 _080F5EDC: .4byte 0x00008770 _080F5EE0: .4byte 0x00008774 thumb_func_end sub_80F5E20 thumb_func_start sub_80F5EE4 sub_80F5EE4: @ 80F5EE4 push {r4-r6,lr} ldr r3, _080F5F04 @ =gUnknown_083DFEC4 ldr r4, [r3] ldr r1, _080F5F08 @ =0x0000876e adds r0, r4, r1 ldr r2, _080F5F0C @ =0x00008774 adds r1, r4, r2 movs r5, 0 ldrsh r2, [r0, r5] movs r6, 0 ldrsh r0, [r1, r6] adds r5, r3, 0 cmp r2, r0 bne _080F5F10 movs r0, 0 b _080F5F98 .align 2, 0 _080F5F04: .4byte gUnknown_083DFEC4 _080F5F08: .4byte 0x0000876e _080F5F0C: .4byte 0x00008774 _080F5F10: ldr r1, _080F5F38 @ =0x000087c9 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 beq _080F5F40 ldr r2, _080F5F3C @ =0x0000876c adds r0, r4, r2 movs r3, 0 ldrsh r0, [r0, r3] cmp r0, 0x7 bne _080F5F40 movs r0, 0x1 bl sub_80F063C movs r0, 0x1 bl sub_80F6074 movs r0, 0x2 b _080F5F98 .align 2, 0 _080F5F38: .4byte 0x000087c9 _080F5F3C: .4byte 0x0000876c _080F5F40: ldr r2, [r5] ldr r6, _080F5FA0 @ =0x0000876c adds r4, r2, r6 ldrh r0, [r4] adds r1, r0, 0x1 strh r1, [r4] ldr r3, _080F5FA4 @ =0x000087c9 adds r0, r2, r3 ldrb r3, [r0] cmp r3, 0 bne _080F5F68 adds r6, 0x6 adds r0, r2, r6 lsls r1, 16 asrs r1, 16 movs r2, 0 ldrsh r0, [r0, r2] cmp r1, r0 ble _080F5F68 strh r3, [r4] _080F5F68: ldr r0, [r5] ldr r3, _080F5FA8 @ =0x00008770 adds r2, r0, r3 ldr r5, _080F5FA0 @ =0x0000876c adds r1, r0, r5 ldrh r1, [r1] ldrh r2, [r2] adds r2, r1, r2 ldr r6, _080F5FAC @ =0x0000876e adds r4, r0, r6 strh r2, [r4] ldr r1, _080F5FB0 @ =0x00008774 adds r0, r1 lsls r1, r2, 16 asrs r1, 16 ldrh r3, [r0] movs r5, 0 ldrsh r0, [r0, r5] cmp r1, r0 ble _080F5F96 subs r0, r2, 0x1 subs r0, r3 strh r0, [r4] _080F5F96: movs r0, 0x1 _080F5F98: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080F5FA0: .4byte 0x0000876c _080F5FA4: .4byte 0x000087c9 _080F5FA8: .4byte 0x00008770 _080F5FAC: .4byte 0x0000876e _080F5FB0: .4byte 0x00008774 thumb_func_end sub_80F5EE4 thumb_func_start sub_80F5FB4 sub_80F5FB4: @ 80F5FB4 push {r4,lr} ldr r0, _080F5FD8 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r2, _080F5FDC @ =0x00008770 adds r0, r1, r2 ldrh r3, [r0] movs r4, 0 ldrsh r2, [r0, r4] cmp r2, 0 beq _080F5FD2 ldr r4, _080F5FE0 @ =0x000087c9 adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0 bne _080F5FE4 _080F5FD2: movs r0, 0 b _080F6004 .align 2, 0 _080F5FD8: .4byte gUnknown_083DFEC4 _080F5FDC: .4byte 0x00008770 _080F5FE0: .4byte 0x000087c9 _080F5FE4: cmp r2, 0x7 bgt _080F5FF0 negs r0, r3 lsls r0, 16 lsrs r0, 16 b _080F5FF2 _080F5FF0: ldr r0, _080F600C @ =0x0000fff8 _080F5FF2: lsls r4, r0, 16 asrs r4, 16 adds r0, r4, 0 bl sub_80F063C adds r0, r4, 0 bl sub_80F6074 movs r0, 0x2 _080F6004: pop {r4} pop {r1} bx r1 .align 2, 0 _080F600C: .4byte 0x0000fff8 thumb_func_end sub_80F5FB4 thumb_func_start sub_80F6010 sub_80F6010: @ 80F6010 push {r4-r6,lr} ldr r0, _080F603C @ =gUnknown_083DFEC4 ldr r3, [r0] ldr r1, _080F6040 @ =0x00008772 adds r0, r3, r1 ldr r2, _080F6044 @ =0x00008774 adds r1, r3, r2 ldrh r5, [r0] movs r4, 0 ldrsh r2, [r0, r4] ldrh r4, [r1] movs r6, 0 ldrsh r0, [r1, r6] cmp r2, r0 beq _080F6038 ldr r1, _080F6048 @ =0x000087c9 adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 bne _080F604C _080F6038: movs r0, 0 b _080F606C .align 2, 0 _080F603C: .4byte gUnknown_083DFEC4 _080F6040: .4byte 0x00008772 _080F6044: .4byte 0x00008774 _080F6048: .4byte 0x000087c9 _080F604C: subs r0, r4, r5 lsls r0, 16 lsrs r4, r0, 16 asrs r0, 16 cmp r0, 0x8 ble _080F605A movs r4, 0x8 _080F605A: lsls r4, 16 asrs r4, 16 adds r0, r4, 0 bl sub_80F063C adds r0, r4, 0 bl sub_80F6074 movs r0, 0x2 _080F606C: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80F6010 thumb_func_start sub_80F6074 sub_80F6074: @ 80F6074 push {r4-r7,lr} ldr r1, _080F6120 @ =gUnknown_083DFEC4 ldr r6, [r1] ldr r1, _080F6124 @ =0x00008770 adds r3, r6, r1 ldrh r1, [r3] lsls r0, 16 asrs r7, r0, 16 adds r2, r7, r1 strh r2, [r3] ldr r5, _080F6128 @ =0x00008774 adds r4, r6, r5 lsls r0, r2, 16 asrs r0, 16 ldrh r1, [r4] mov r12, r1 movs r5, 0 ldrsh r1, [r4, r5] cmp r0, r1 ble _080F60A4 subs r0, r2, 0x1 mov r1, r12 subs r0, r1 strh r0, [r3] _080F60A4: ldrh r1, [r3] movs r2, 0 ldrsh r0, [r3, r2] cmp r0, 0 bge _080F60B6 adds r0, r1, 0x1 ldrh r5, [r4] adds r0, r5 strh r0, [r3] _080F60B6: ldr r0, _080F612C @ =0x00008772 adds r3, r6, r0 ldrh r0, [r3] adds r2, r7, r0 strh r2, [r3] lsls r0, r2, 16 asrs r0, 16 ldrh r1, [r4] mov r12, r1 movs r5, 0 ldrsh r1, [r4, r5] cmp r0, r1 ble _080F60D8 subs r0, r2, 0x1 mov r1, r12 subs r0, r1 strh r0, [r3] _080F60D8: ldrh r1, [r3] movs r2, 0 ldrsh r0, [r3, r2] cmp r0, 0 bge _080F60EA adds r0, r1, 0x1 ldrh r5, [r4] adds r0, r5 strh r0, [r3] _080F60EA: ldr r0, _080F6130 @ =0x0000876e adds r3, r6, r0 ldrh r0, [r3] adds r2, r7, r0 strh r2, [r3] lsls r0, r2, 16 asrs r0, 16 ldrh r5, [r4] movs r6, 0 ldrsh r1, [r4, r6] cmp r0, r1 ble _080F6108 subs r0, r2, 0x1 subs r0, r5 strh r0, [r3] _080F6108: ldrh r1, [r3] movs r2, 0 ldrsh r0, [r3, r2] cmp r0, 0 bge _080F611A adds r0, r1, 0x1 ldrh r4, [r4] adds r0, r4 strh r0, [r3] _080F611A: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F6120: .4byte gUnknown_083DFEC4 _080F6124: .4byte 0x00008770 _080F6128: .4byte 0x00008774 _080F612C: .4byte 0x00008772 _080F6130: .4byte 0x0000876e thumb_func_end sub_80F6074 thumb_func_start sub_80F6134 sub_80F6134: @ 80F6134 push {r4-r6,lr} ldr r0, _080F6194 @ =gUnknown_083DFEC4 ldr r3, [r0] ldr r1, _080F6198 @ =0x000087c9 adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 beq _080F61E0 ldr r2, _080F619C @ =0x000087dc adds r5, r3, r2 movs r4, 0 ldrsh r1, [r5, r4] ldr r6, _080F61A0 @ =0x00008774 adds r4, r3, r6 movs r2, 0 ldrsh r0, [r4, r2] subs r0, 0x7 cmp r1, r0 bge _080F61AC subs r6, 0x8 adds r1, r3, r6 movs r0, 0 strh r0, [r1] ldrh r0, [r5] ldr r1, _080F61A4 @ =0x00008770 adds r2, r3, r1 strh r0, [r2] ldrh r1, [r5] ldr r5, _080F61A8 @ =0x0000876e adds r0, r3, r5 strh r1, [r0] ldrh r5, [r2] adds r0, r5, 0x7 adds r6, 0x6 adds r2, r3, r6 strh r0, [r2] lsls r0, 16 asrs r0, 16 ldrh r3, [r4] movs r6, 0 ldrsh r1, [r4, r6] cmp r0, r1 ble _080F61F4 adds r0, r5, 0x6 subs r0, r3 strh r0, [r2] b _080F61F4 .align 2, 0 _080F6194: .4byte gUnknown_083DFEC4 _080F6198: .4byte 0x000087c9 _080F619C: .4byte 0x000087dc _080F61A0: .4byte 0x00008774 _080F61A4: .4byte 0x00008770 _080F61A8: .4byte 0x0000876e _080F61AC: ldrh r0, [r4] subs r0, 0x7 ldr r2, _080F61D4 @ =0x00008770 adds r1, r3, r2 strh r0, [r1] ldrh r1, [r4] ldr r6, _080F61D8 @ =0x00008772 adds r0, r3, r6 strh r1, [r0] ldrh r1, [r5] subs r2, 0x2 adds r0, r3, r2 strh r1, [r0] ldrh r0, [r4] subs r0, r1 movs r1, 0x7 subs r1, r0 ldr r4, _080F61DC @ =0x0000876c adds r0, r3, r4 b _080F61F2 .align 2, 0 _080F61D4: .4byte 0x00008770 _080F61D8: .4byte 0x00008772 _080F61DC: .4byte 0x0000876c _080F61E0: ldr r5, _080F61FC @ =0x000087dc adds r2, r3, r5 ldrh r1, [r2] ldr r6, _080F6200 @ =0x0000876c adds r0, r3, r6 strh r1, [r0] ldrh r1, [r2] ldr r2, _080F6204 @ =0x0000876e adds r0, r3, r2 _080F61F2: strh r1, [r0] _080F61F4: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F61FC: .4byte 0x000087dc _080F6200: .4byte 0x0000876c _080F6204: .4byte 0x0000876e thumb_func_end sub_80F6134 thumb_func_start sub_80F6208 sub_80F6208: @ 80F6208 push {lr} ldr r0, _080F623C @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r2, _080F6240 @ =0x00008fe6 adds r0, r1, r2 movs r2, 0 strb r2, [r0] ldr r3, _080F6244 @ =0x00008fe7 adds r0, r1, r3 strb r2, [r0] ldr r0, _080F6248 @ =0x00008fe8 adds r2, r1, r0 movs r0, 0xFF strb r0, [r2] ldr r2, _080F624C @ =0x00006dac adds r1, r2 ldrb r0, [r1] cmp r0, 0 bne _080F6238 _080F622E: bl sub_80F6250 lsls r0, 24 cmp r0, 0 bne _080F622E _080F6238: pop {r0} bx r0 .align 2, 0 _080F623C: .4byte gUnknown_083DFEC4 _080F6240: .4byte 0x00008fe6 _080F6244: .4byte 0x00008fe7 _080F6248: .4byte 0x00008fe8 _080F624C: .4byte 0x00006dac thumb_func_end sub_80F6208 thumb_func_start sub_80F6250 sub_80F6250: @ 80F6250 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, _080F6270 @ =gUnknown_083DFEC4 ldr r2, [r0] ldr r0, _080F6274 @ =0x00008fe8 adds r3, r2, r0 movs r1, 0 ldrsb r1, [r3, r1] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080F6278 _080F626C: movs r0, 0 b _080F637E .align 2, 0 _080F6270: .4byte gUnknown_083DFEC4 _080F6274: .4byte 0x00008fe8 _080F6278: ldr r1, _080F630C @ =0x00008fe6 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0x7 beq _080F631C cmp r0, 0x8 beq _080F626C movs r6, 0 adds r7, r2, 0 adds r5, r7, r1 ldr r0, _080F6310 @ =0x00008fe7 adds r4, r7, r0 ldr r1, _080F6314 @ =gUnknown_020300A4 mov r8, r1 ldr r0, _080F6318 @ =0x000041a0 add r0, r8 mov r9, r0 _080F629A: ldrb r0, [r5] lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 ldrb r2, [r4] lsls r1, r2, 2 adds r1, r2 lsls r1, 4 add r1, r8 adds r0, r1 movs r1, 0x51 bl GetBoxMonData cmp r0, 0 bne _080F636C ldrb r0, [r5] lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 ldrb r2, [r4] lsls r1, r2, 2 adds r1, r2 lsls r1, 4 add r1, r9 adds r0, r1 movs r1, 0x51 bl GetBoxMonData adds r1, r0, 0 cmp r1, 0 bne _080F636C ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] movs r2, 0xFF lsls r0, 24 lsrs r0, 24 cmp r0, 0x1D bls _080F62FE strb r1, [r4] ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] ands r0, r2 cmp r0, 0x6 bhi _080F637C _080F62FE: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x9 bls _080F629A b _080F637C .align 2, 0 _080F630C: .4byte 0x00008fe6 _080F6310: .4byte 0x00008fe7 _080F6314: .4byte gUnknown_020300A4 _080F6318: .4byte 0x000041a0 _080F631C: movs r0, 0 strb r0, [r3] movs r6, 0 b _080F632A _080F6324: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 _080F632A: cmp r6, 0x5 bhi _080F634C movs r0, 0x64 muls r0, r6 ldr r1, _080F635C @ =gPlayerParty adds r0, r1 movs r1, 0x51 bl GetMonData cmp r0, 0 beq _080F6324 ldr r0, _080F6360 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F6364 @ =0x00008fe8 adds r0, r1 movs r1, 0x1 strb r1, [r0] _080F634C: ldr r0, _080F6360 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r0, _080F6368 @ =0x00008fe6 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 b _080F6372 .align 2, 0 _080F635C: .4byte gPlayerParty _080F6360: .4byte gUnknown_083DFEC4 _080F6364: .4byte 0x00008fe8 _080F6368: .4byte 0x00008fe6 _080F636C: ldr r0, _080F6378 @ =0x00008fe8 adds r1, r7, r0 movs r0, 0x1 _080F6372: strb r0, [r1] b _080F626C .align 2, 0 _080F6378: .4byte 0x00008fe8 _080F637C: movs r0, 0x1 _080F637E: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80F6250 thumb_func_start sub_80F638C sub_80F638C: @ 80F638C push {r4,lr} ldr r0, _080F63C0 @ =gUnknown_083DFEC4 ldr r4, [r0] ldr r1, _080F63C4 @ =0x00008fe6 adds r0, r4, r1 movs r1, 0 strb r1, [r0] ldr r2, _080F63C8 @ =0x00008fe7 adds r0, r4, r2 strb r1, [r0] bl sub_80F492C ldr r0, _080F63CC @ =0x00006dac adds r4, r0 ldrb r0, [r4] cmp r0, 0 bne _080F63B8 _080F63AE: bl sub_80F63D0 lsls r0, 24 cmp r0, 0 bne _080F63AE _080F63B8: pop {r4} pop {r0} bx r0 .align 2, 0 _080F63C0: .4byte gUnknown_083DFEC4 _080F63C4: .4byte 0x00008fe6 _080F63C8: .4byte 0x00008fe7 _080F63CC: .4byte 0x00006dac thumb_func_end sub_80F638C thumb_func_start sub_80F63D0 sub_80F63D0: @ 80F63D0 push {r4-r6,lr} sub sp, 0x4 ldr r0, _080F647C @ =gUnknown_083DFEC4 ldr r2, [r0] ldr r1, _080F6480 @ =0x00008fe6 adds r0, r2, r1 ldrb r3, [r0] cmp r3, 0xE beq _080F6498 cmp r3, 0xF bne _080F63E8 b _080F64F6 _080F63E8: movs r1, 0x80 lsls r1, 23 ldr r0, [sp] orrs r0, r1 str r0, [sp] movs r6, 0 ldr r0, _080F6480 @ =0x00008fe6 adds r5, r2, r0 ldr r1, _080F6484 @ =0x00008fe7 adds r4, r2, r1 _080F63FC: ldrb r0, [r5] lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 ldrb r2, [r4] lsls r1, r2, 2 adds r1, r2 lsls r1, 4 ldr r2, _080F6488 @ =gUnknown_020300A4 adds r1, r2 adds r0, r1 movs r1, 0x51 bl GetBoxMonData lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 beq _080F644E ldrb r1, [r5] lsls r1, 8 ldr r2, _080F648C @ =0xffff00ff ldr r0, [sp] ands r0, r2 orrs r0, r1 str r0, [sp] ldrb r2, [r4] movs r1, 0x1F ands r2, r1 lsls r2, 16 ldr r1, _080F6490 @ =0xffe0ffff ands r0, r1 orrs r0, r2 ldr r1, _080F6494 @ =0xffffff00 ands r0, r1 orrs r0, r3 str r0, [sp] mov r0, sp bl sub_80F4944 _080F644E: ldrb r0, [r4] adds r0, 0x1 movs r2, 0 strb r0, [r4] movs r1, 0xFF lsls r0, 24 lsrs r0, 24 cmp r0, 0x1E bne _080F646E strb r2, [r4] ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] ands r0, r1 cmp r0, 0xE beq _080F6508 _080F646E: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0xE bls _080F63FC b _080F6508 .align 2, 0 _080F647C: .4byte gUnknown_083DFEC4 _080F6480: .4byte 0x00008fe6 _080F6484: .4byte 0x00008fe7 _080F6488: .4byte gUnknown_020300A4 _080F648C: .4byte 0xffff00ff _080F6490: .4byte 0xffe0ffff _080F6494: .4byte 0xffffff00 _080F6498: mov r0, sp ldrb r1, [r0, 0x3] movs r2, 0x40 orrs r1, r2 strb r1, [r0, 0x3] strb r3, [r0, 0x1] movs r6, 0 mov r4, sp _080F64A8: movs r0, 0x64 muls r0, r6 ldr r1, _080F64FC @ =gPlayerParty adds r0, r1 movs r1, 0x51 bl GetMonData lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 beq _080F64DA movs r0, 0x1F adds r2, r6, 0 ands r2, r0 ldrb r0, [r4, 0x2] movs r5, 0x20 negs r5, r5 adds r1, r5, 0 ands r0, r1 orrs r0, r2 strb r0, [r4, 0x2] strb r3, [r4] mov r0, sp bl sub_80F4944 _080F64DA: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x5 bls _080F64A8 bl sub_80F49F4 ldr r0, _080F6500 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r0, _080F6504 @ =0x00008fe6 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080F64F6: movs r0, 0 b _080F650A .align 2, 0 _080F64FC: .4byte gPlayerParty _080F6500: .4byte gUnknown_083DFEC4 _080F6504: .4byte 0x00008fe6 _080F6508: movs r0, 0x1 _080F650A: add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80F63D0 thumb_func_start sub_80F6514 sub_80F6514: @ 80F6514 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC mov r10, r0 lsls r1, 16 lsrs r1, 16 str r1, [sp] lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x4] mov r5, r10 ldr r0, _080F65A4 @ =gUnknown_083DFEC4 ldr r0, [r0] lsls r1, 2 adds r0, r1 ldr r2, _080F65A8 @ =0x0000893d adds r1, r0, r2 ldrb r6, [r1] mov r8, r6 ldr r1, _080F65AC @ =0x0000893e adds r0, r1 ldrb r0, [r0] lsls r0, 27 lsrs r4, r0, 27 adds r7, r4, 0 adds r0, r6, 0 adds r1, r4, 0 movs r2, 0x2D movs r3, 0 bl sub_80F44B0 cmp r0, 0 beq _080F655E b _080F66CA _080F655E: adds r0, r6, 0 adds r1, r4, 0 movs r2, 0x2 adds r3, r5, 0 bl sub_80F44B0 adds r0, r5, 0 bl StringGetEnd10 adds r0, r6, 0 adds r1, r4, 0 movs r2, 0xB movs r3, 0 bl sub_80F44B0 lsls r0, 16 lsrs r0, 16 mov r9, r0 cmp r6, 0xE bne _080F65B4 movs r0, 0x64 muls r4, r0 ldr r0, _080F65B0 @ =gPlayerParty adds r4, r0 adds r0, r4, 0 movs r1, 0x38 bl GetMonData lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x8] adds r0, r4, 0 bl GetMonGender b _080F65EA .align 2, 0 _080F65A4: .4byte gUnknown_083DFEC4 _080F65A8: .4byte 0x0000893d _080F65AC: .4byte 0x0000893e _080F65B0: .4byte gPlayerParty _080F65B4: mov r2, r8 lsls r1, r2, 2 add r1, r8 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 lsls r1, r7, 2 adds r1, r7 lsls r1, 4 ldr r2, _080F6620 @ =gUnknown_020300A4 adds r1, r2 adds r0, r1 bl GetLevelFromBoxMonExp lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x8] mov r0, r8 adds r1, r7, 0 movs r2, 0 movs r3, 0 bl sub_80F44B0 adds r1, r0, 0 mov r0, r9 bl GetGenderFromSpeciesAndPersonality _080F65EA: lsls r0, 24 lsrs r4, r0, 24 mov r0, r9 mov r1, r10 bl sub_8040D8C cmp r0, 0 beq _080F65FC movs r4, 0xFF _080F65FC: adds r0, r5, 0 bl StringLength lsls r0, 16 lsrs r0, 16 adds r5, r0 movs r1, 0xFC strb r1, [r5] movs r0, 0x13 strb r0, [r5, 0x1] movs r0, 0x3F strb r0, [r5, 0x2] adds r5, 0x3 cmp r4, 0 beq _080F6624 cmp r4, 0xFE beq _080F663C b _080F6656 .align 2, 0 _080F6620: .4byte gUnknown_020300A4 _080F6624: strb r1, [r5] movs r0, 0x1 strb r0, [r5, 0x1] movs r0, 0xC strb r0, [r5, 0x2] strb r1, [r5, 0x3] movs r0, 0x3 strb r0, [r5, 0x4] movs r0, 0xD strb r0, [r5, 0x5] movs r0, 0xB5 b _080F6652 _080F663C: strb r1, [r5] movs r0, 0x1 strb r0, [r5, 0x1] movs r0, 0xA strb r0, [r5, 0x2] strb r1, [r5, 0x3] movs r0, 0x3 strb r0, [r5, 0x4] movs r0, 0xB strb r0, [r5, 0x5] movs r0, 0xB6 _080F6652: strb r0, [r5, 0x6] adds r5, 0x7 _080F6656: movs r4, 0xFC strb r4, [r5] movs r1, 0x1 strb r1, [r5, 0x1] strb r1, [r5, 0x2] strb r4, [r5, 0x3] movs r0, 0x3 strb r0, [r5, 0x4] movs r0, 0x5 strb r0, [r5, 0x5] adds r5, 0x6 strb r4, [r5] movs r6, 0x13 strb r6, [r5, 0x1] movs r0, 0x46 strb r0, [r5, 0x2] adds r5, 0x3 movs r0, 0xBA strb r0, [r5] strb r4, [r5, 0x1] movs r0, 0x11 strb r0, [r5, 0x2] strb r1, [r5, 0x3] movs r0, 0x34 strb r0, [r5, 0x4] adds r5, 0x5 adds r0, r5, 0 ldr r1, [sp, 0x8] bl ConvertIntToDecimalString adds r5, r0, 0 ldr r0, [sp, 0x4] cmp r0, 0x1 bne _080F66C0 ldr r0, _080F66B8 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r2, [sp] lsls r1, r2, 2 adds r0, r1 ldr r1, _080F66BC @ =0x0000893c adds r0, r1 ldrb r1, [r0] adds r0, r5, 0 movs r2, 0x80 movs r3, 0x1 bl sub_8072C14 adds r5, r0, 0 b _080F66CE .align 2, 0 _080F66B8: .4byte gUnknown_083DFEC4 _080F66BC: .4byte 0x0000893c _080F66C0: strb r4, [r5] strb r6, [r5, 0x1] movs r0, 0x67 strb r0, [r5, 0x2] adds r5, 0x3 _080F66CA: movs r0, 0xFF strb r0, [r5] _080F66CE: adds r0, r5, 0 add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80F6514 thumb_func_start sub_80F66E0 sub_80F66E0: @ 80F66E0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r0, _080F676C @ =gUnknown_083DFEC4 mov r8, r0 ldr r4, [r0] ldr r1, _080F6770 @ =0x00008829 adds r0, r4, r1 ldr r2, _080F6774 @ =0x0000876e adds r5, r4, r2 ldrh r1, [r5] movs r2, 0 bl sub_80F6514 movs r3, 0 ldrsh r0, [r5, r3] movs r1, 0 bl sub_80F4824 ldrh r1, [r5] ldr r6, _080F6778 @ =0x000087dc adds r0, r4, r6 movs r6, 0 strh r1, [r0] ldr r1, _080F677C @ =0x0000bc8e adds r0, r4, r1 strb r6, [r0] movs r2, 0 mov r9, r2 movs r3, 0 ldrsh r1, [r5, r3] lsls r1, 2 adds r1, r4, r1 ldr r5, _080F6780 @ =0x0000893d adds r0, r1, r5 ldrb r0, [r0] ldr r2, _080F6784 @ =0x0000893e adds r1, r2 ldrb r1, [r1] lsls r1, 27 lsrs r1, 27 movs r2, 0x52 movs r3, 0 bl sub_80F44B0 adds r7, r0, 0 ldr r3, _080F6788 @ =0x0000bc8f adds r4, r3 strb r6, [r4] movs r5, 0 mov r12, r5 mov r10, r8 _080F674E: ldr r1, _080F678C @ =gUnknown_083E499C mov r6, r12 lsls r0, r6, 1 adds r0, r1 ldrh r0, [r0] cmp r0, 0x36 bgt _080F6790 cmp r0, 0x32 blt _080F6790 movs r0, 0x7 adds r2, r7, 0 ands r2, r0 lsrs r7, 3 movs r0, 0x4 b _080F679A .align 2, 0 _080F676C: .4byte gUnknown_083DFEC4 _080F6770: .4byte 0x00008829 _080F6774: .4byte 0x0000876e _080F6778: .4byte 0x000087dc _080F677C: .4byte 0x0000bc8e _080F6780: .4byte 0x0000893d _080F6784: .4byte 0x0000893e _080F6788: .4byte 0x0000bc8f _080F678C: .4byte gUnknown_083E499C _080F6790: movs r0, 0x1 adds r2, r7, 0 ands r2, r0 lsrs r7, 1 movs r0, 0x1 _080F679A: movs r4, 0 adds r1, r2, 0 add r0, r9 mov r8, r0 cmp r4, r1 bcs _080F67D4 mov r3, r10 ldr r0, [r3] ldr r5, _080F6828 @ =0x0000bc8e adds r3, r0, r5 ldr r6, _080F682C @ =0x0000bc4c adds r6, r0, r6 str r6, [sp] adds r5, r1, 0 _080F67B6: ldrb r0, [r3] adds r1, r0, 0x1 strb r1, [r3] lsls r0, 24 lsrs r0, 24 ldr r1, [sp] adds r0, r1, r0 mov r6, r9 adds r1, r6, r4 strb r1, [r0] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r5 bcc _080F67B6 _080F67D4: cmp r2, 0 beq _080F67EC mov r0, r9 cmp r0, 0x18 bls _080F67EC mov r2, r10 ldr r1, [r2] ldr r3, _080F6830 @ =0x0000bc8f adds r1, r3 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080F67EC: mov r5, r8 lsls r0, r5, 24 lsrs r0, 24 mov r9, r0 mov r0, r12 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r12, r0 cmp r0, 0x10 bls _080F674E ldr r6, _080F6834 @ =gUnknown_083DFEC4 ldr r2, [r6] ldr r1, _080F6828 @ =0x0000bc8e adds r0, r2, r1 ldr r3, _080F6830 @ =0x0000bc8f adds r1, r2, r3 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 beq _080F6840 ldr r5, _080F6838 @ =0x0000bc90 adds r0, r2, r5 movs r1, 0 strb r1, [r0] ldr r6, _080F683C @ =0x0000bc91 adds r0, r2, r6 strb r1, [r0] b _080F6850 .align 2, 0 _080F6828: .4byte 0x0000bc8e _080F682C: .4byte 0x0000bc4c _080F6830: .4byte 0x0000bc8f _080F6834: .4byte gUnknown_083DFEC4 _080F6838: .4byte 0x0000bc90 _080F683C: .4byte 0x0000bc91 _080F6840: ldr r0, _080F6888 @ =0x0000bc90 adds r1, r2, r0 movs r0, 0 strb r0, [r1] ldr r3, _080F688C @ =0x0000bc91 adds r1, r2, r3 movs r0, 0x3 strb r0, [r1] _080F6850: ldr r5, _080F6890 @ =gUnknown_083DFEC4 ldr r1, [r5] ldr r6, _080F6894 @ =0x0000bc8e adds r0, r1, r6 ldr r2, _080F6898 @ =0x0000bc8f adds r1, r2 ldrb r0, [r0] ldrb r1, [r1] subs r0, r1 lsls r0, 24 lsrs r2, r0, 24 movs r3, 0 mov r12, r3 adds r3, r5, 0 ldr r1, _080F689C @ =0x0000bc96 movs r4, 0x9 _080F6870: cmp r2, 0x8 bls _080F68A0 ldr r0, [r3] adds r0, r1 add r0, r12 strb r4, [r0] adds r0, r2, 0 subs r0, 0x9 lsls r0, 24 lsrs r2, r0, 24 b _080F68AA .align 2, 0 _080F6888: .4byte 0x0000bc90 _080F688C: .4byte 0x0000bc91 _080F6890: .4byte gUnknown_083DFEC4 _080F6894: .4byte 0x0000bc8e _080F6898: .4byte 0x0000bc8f _080F689C: .4byte 0x0000bc96 _080F68A0: ldr r0, [r3] adds r0, r1 add r0, r12 strb r2, [r0] movs r2, 0 _080F68AA: mov r0, r12 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r12, r0 cmp r0, 0x2 bls _080F6870 ldr r5, _080F68DC @ =gUnknown_083DFEC4 ldr r0, [r5] ldr r6, _080F68E0 @ =0x0000bc96 adds r1, r0, r6 add r1, r12 ldr r2, _080F68E4 @ =0x0000bc8f adds r0, r2 ldrb r0, [r0] strb r0, [r1] add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F68DC: .4byte gUnknown_083DFEC4 _080F68E0: .4byte 0x0000bc96 _080F68E4: .4byte 0x0000bc8f thumb_func_end sub_80F66E0 thumb_func_start sub_80F68E8 sub_80F68E8: @ 80F68E8 push {r4-r7,lr} ldr r3, _080F6918 @ =gUnknown_083DFEC4 ldr r0, [r3] ldr r2, _080F691C @ =0x0000bc90 adds r1, r0, r2 ldrb r5, [r1] ldr r6, _080F6920 @ =0x0000bc91 adds r0, r6 ldrb r4, [r0] movs r0, 0x1 mov r12, r0 ldr r2, _080F6924 @ =gMain ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 adds r6, r3, 0 adds r7, r2, 0 cmp r0, 0 beq _080F692E lsls r0, r4, 24 cmp r0, 0 ble _080F692E b _080F69BC .align 2, 0 _080F6918: .4byte gUnknown_083DFEC4 _080F691C: .4byte 0x0000bc90 _080F6920: .4byte 0x0000bc91 _080F6924: .4byte gMain _080F6928: ldr r1, _080F69B0 @ =0x0000bc91 adds r0, r2, r1 ldrb r4, [r0] _080F692E: ldrh r1, [r7, 0x30] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080F6978 lsls r0, r4, 24 asrs r0, 24 cmp r0, 0x2 bgt _080F6978 ldr r3, _080F69B4 @ =gUnknown_083DFEC4 ldr r2, _080F69B8 @ =0x0000bc96 _080F6944: lsls r0, r4, 24 asrs r0, 24 cmp r0, 0x2 bgt _080F6960 adds r0, 0x1 lsls r0, 24 ldr r1, [r3] lsrs r4, r0, 24 asrs r0, 24 adds r1, r2 adds r1, r0 ldrb r0, [r1] cmp r0, 0 beq _080F6944 _080F6960: ldr r2, [r6] lsls r0, r4, 24 asrs r0, 24 ldr r3, _080F69B8 @ =0x0000bc96 adds r1, r2, r3 adds r1, r0 ldrb r0, [r1] cmp r0, 0 bne _080F69EC ldr r1, _080F69B0 @ =0x0000bc91 adds r0, r2, r1 ldrb r4, [r0] _080F6978: ldrh r2, [r7, 0x30] movs r0, 0x20 ands r0, r2 cmp r0, 0 beq _080F698A lsls r0, r5, 24 asrs r0, 24 cmp r0, 0 bgt _080F6A3C _080F698A: movs r0, 0x10 ands r0, r2 cmp r0, 0 beq _080F69AA lsls r0, r5, 24 asrs r2, r0, 24 ldr r1, [r6] lsls r0, r4, 24 asrs r0, 24 ldr r3, _080F69B8 @ =0x0000bc96 adds r1, r3 adds r1, r0 ldrb r0, [r1] subs r0, 0x1 cmp r2, r0 blt _080F6A38 _080F69AA: movs r0, 0 mov r12, r0 b _080F69FC .align 2, 0 _080F69B0: .4byte 0x0000bc91 _080F69B4: .4byte gUnknown_083DFEC4 _080F69B8: .4byte 0x0000bc96 _080F69BC: lsls r0, r4, 24 asrs r0, 24 cmp r0, 0 ble _080F69DA subs r0, 0x1 lsls r0, 24 ldr r1, [r6] lsrs r4, r0, 24 asrs r0, 24 ldr r2, _080F6A2C @ =0x0000bc96 adds r1, r2 adds r1, r0 ldrb r0, [r1] cmp r0, 0 beq _080F69BC _080F69DA: ldr r2, [r6] lsls r0, r4, 24 asrs r0, 24 ldr r3, _080F6A2C @ =0x0000bc96 adds r1, r2, r3 adds r1, r0 ldrb r0, [r1] cmp r0, 0 beq _080F6928 _080F69EC: lsls r0, r5, 24 asrs r0, 24 ldrb r1, [r1] cmp r0, r1 blt _080F69FC subs r0, r1, 0x1 _080F69F8: lsls r0, 24 lsrs r5, r0, 24 _080F69FC: mov r0, r12 cmp r0, 0 beq _080F6A44 lsls r0, r5, 24 asrs r0, 24 ldr r3, [r6] ldr r1, _080F6A30 @ =0x0000bc90 adds r2, r3, r1 ldrb r6, [r2] cmp r0, r6 bne _080F6A20 lsls r0, r4, 24 asrs r0, 24 ldr r6, _080F6A34 @ =0x0000bc91 adds r1, r3, r6 ldrb r1, [r1] cmp r0, r1 beq _080F6A40 _080F6A20: strb r5, [r2] ldr r1, _080F6A34 @ =0x0000bc91 adds r0, r3, r1 strb r4, [r0] b _080F6A44 .align 2, 0 _080F6A2C: .4byte 0x0000bc96 _080F6A30: .4byte 0x0000bc90 _080F6A34: .4byte 0x0000bc91 _080F6A38: adds r0, r2, 0x1 b _080F69F8 _080F6A3C: subs r0, 0x1 b _080F69F8 _080F6A40: movs r2, 0 mov r12, r2 _080F6A44: mov r0, r12 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80F68E8 thumb_func_start sub_80F6A4C sub_80F6A4C: @ 80F6A4C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 ldr r0, _080F6AC4 @ =gUnknown_083DFEC4 ldr r3, [r0] ldr r0, _080F6AC8 @ =0x0000876e adds r2, r3, r0 lsls r0, r4, 24 asrs r0, 24 ldrh r1, [r2] adds r0, r1 strh r0, [r2] lsls r0, 16 cmp r0, 0 bge _080F6A74 ldr r5, _080F6ACC @ =0x00008774 adds r0, r3, r5 ldrh r0, [r0] strh r0, [r2] _080F6A74: ldr r1, _080F6ACC @ =0x00008774 adds r0, r3, r1 movs r5, 0 ldrsh r1, [r2, r5] movs r5, 0 ldrsh r0, [r0, r5] cmp r1, r0 ble _080F6A88 movs r0, 0 strh r0, [r2] _080F6A88: ldr r1, _080F6AD0 @ =0x0000bc94 adds r0, r3, r1 strb r4, [r0] ldrh r1, [r2] ldr r2, _080F6AD4 @ =0x000087dc adds r0, r3, r2 strh r1, [r0] ldr r1, _080F6AD8 @ =REG_WININ ldr r5, _080F6ADC @ =0x00003f37 adds r0, r5, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080F6AE0 @ =0x00003f3f adds r0, r2, 0 strh r0, [r1] subs r1, 0xA ldr r5, _080F6AE4 @ =0x000058f0 adds r0, r5, 0 strh r0, [r1] adds r1, 0x4 ldr r2, _080F6AE8 @ =0x00002060 adds r0, r2, 0 strh r0, [r1] ldr r5, _080F6AEC @ =0x000087de adds r1, r3, r5 movs r0, 0 strb r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F6AC4: .4byte gUnknown_083DFEC4 _080F6AC8: .4byte 0x0000876e _080F6ACC: .4byte 0x00008774 _080F6AD0: .4byte 0x0000bc94 _080F6AD4: .4byte 0x000087dc _080F6AD8: .4byte REG_WININ _080F6ADC: .4byte 0x00003f37 _080F6AE0: .4byte 0x00003f3f _080F6AE4: .4byte 0x000058f0 _080F6AE8: .4byte 0x00002060 _080F6AEC: .4byte 0x000087de thumb_func_end sub_80F6A4C thumb_func_start sub_80F6AF0 sub_80F6AF0: @ 80F6AF0 push {r4,lr} ldr r1, _080F6B10 @ =gUnknown_083DFEC4 ldr r0, [r1] ldr r2, _080F6B14 @ =0x000087de adds r0, r2 ldrb r0, [r0] adds r4, r1, 0 cmp r0, 0x6 bls _080F6B04 b _080F6C08 _080F6B04: lsls r0, 2 ldr r1, _080F6B18 @ =_080F6B1C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F6B10: .4byte gUnknown_083DFEC4 _080F6B14: .4byte 0x000087de _080F6B18: .4byte _080F6B1C .align 2, 0 _080F6B1C: .4byte _080F6B38 .4byte _080F6B54 .4byte _080F6B6E .4byte _080F6B84 .4byte _080F6B9C .4byte _080F6BC0 .4byte _080F6BE0 _080F6B38: bl sub_80F173C lsls r0, 24 cmp r0, 0 bne _080F6C18 ldr r0, _080F6B4C @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r3, _080F6B50 @ =0x000087de adds r1, r3 b _080F6BCE .align 2, 0 _080F6B4C: .4byte gUnknown_083DFEC4 _080F6B50: .4byte 0x000087de _080F6B54: movs r2, 0x80 lsls r2, 19 ldrh r0, [r2] movs r3, 0x80 lsls r3, 6 adds r1, r3, 0 orrs r0, r1 strh r0, [r2] bl sub_80F1480 bl sub_80F66E0 b _080F6BC6 _080F6B6E: bl sub_80F1238 ldr r0, _080F6B7C @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r2, _080F6B80 @ =0x000087de adds r1, r2 b _080F6BCE .align 2, 0 _080F6B7C: .4byte gUnknown_083DFEC4 _080F6B80: .4byte 0x000087de _080F6B84: bl sub_80F13FC ldr r0, _080F6B94 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r3, _080F6B98 @ =0x000087de adds r1, r3 b _080F6BCE .align 2, 0 _080F6B94: .4byte gUnknown_083DFEC4 _080F6B98: .4byte 0x000087de _080F6B9C: ldr r4, [r4] ldr r1, _080F6BB8 @ =0x0000876e adds r0, r4, r1 movs r2, 0 ldrsh r0, [r0, r2] movs r1, 0 bl sub_80F4824 ldr r3, _080F6BBC @ =0x000087de adds r4, r3 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _080F6C18 .align 2, 0 _080F6BB8: .4byte 0x0000876e _080F6BBC: .4byte 0x000087de _080F6BC0: movs r0, 0 bl sub_80F2E18 _080F6BC6: ldr r0, _080F6BD8 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r0, _080F6BDC @ =0x000087de adds r1, r0 _080F6BCE: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080F6C18 .align 2, 0 _080F6BD8: .4byte gUnknown_083DFEC4 _080F6BDC: .4byte 0x000087de _080F6BE0: bl sub_80F170C lsls r0, 24 cmp r0, 0 bne _080F6C18 bl sub_80F1438 movs r2, 0x80 lsls r2, 19 ldrh r1, [r2] ldr r0, _080F6C0C @ =0x0000dfff ands r0, r1 strh r0, [r2] ldr r0, _080F6C10 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r2, _080F6C14 @ =0x000087de adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080F6C08: movs r0, 0 b _080F6C1A .align 2, 0 _080F6C0C: .4byte 0x0000dfff _080F6C10: .4byte gUnknown_083DFEC4 _080F6C14: .4byte 0x000087de _080F6C18: movs r0, 0x1 _080F6C1A: pop {r4} pop {r1} bx r1 thumb_func_end sub_80F6AF0 thumb_func_start sub_80F6C20 sub_80F6C20: @ 80F6C20 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, _080F6D44 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r1, _080F6D48 @ =0x0000d158 adds r0, r1 movs r1, 0 strh r1, [r0] mov r8, r1 ldr r2, _080F6D4C @ =gSaveBlock1 + 0x97A mov r9, r2 _080F6C3A: ldr r1, _080F6D50 @ =gTrainerEyeTrainers mov r4, r8 lsls r0, r4, 4 adds r6, r0, r1 ldrh r7, [r6] adds r0, r7, 0 bl trainer_flag_check lsls r0, 24 cmp r0, 0 beq _080F6CA0 ldr r0, _080F6D44 @ =gUnknown_083DFEC4 ldr r4, [r0] ldr r0, _080F6D48 @ =0x0000d158 adds r5, r4, r0 ldrh r0, [r5] lsls r0, 3 adds r0, r4, r0 ldr r1, _080F6D54 @ =0x0000cee8 adds r0, r1 strh r7, [r0] ldrh r0, [r5] lsls r0, 3 adds r0, r4, r0 ldr r2, _080F6D58 @ =0x0000ceec adds r0, r2 mov r1, r8 strb r1, [r0] ldrh r0, [r5] lsls r0, 3 adds r0, r4, r0 mov r1, r8 add r1, r9 ldrb r1, [r1] adds r2, 0x1 adds r0, r2 strb r1, [r0] ldrh r0, [r6, 0xA] ldrh r1, [r6, 0xC] bl get_mapheader_by_bank_and_number ldrh r1, [r5] lsls r1, 3 adds r4, r1 ldrb r0, [r0, 0x14] ldr r1, _080F6D5C @ =0x0000ceea adds r4, r1 strh r0, [r4] ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] _080F6CA0: mov r0, r8 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r8, r0 cmp r0, 0x37 bls _080F6C3A movs r2, 0 mov r8, r2 movs r6, 0 _080F6CB4: ldr r1, _080F6D60 @ =gUnknown_083E49C0 mov r4, r8 lsls r0, r4, 2 adds r5, r0, r1 ldrh r4, [r5] adds r0, r4, 0 bl trainer_flag_check lsls r0, 24 cmp r0, 0 beq _080F6D0E ldr r0, _080F6D44 @ =gUnknown_083DFEC4 ldr r2, [r0] ldr r0, _080F6D48 @ =0x0000d158 adds r3, r2, r0 ldrh r0, [r3] lsls r0, 3 adds r0, r2, r0 ldr r1, _080F6D54 @ =0x0000cee8 adds r0, r1 strh r4, [r0] ldrh r0, [r3] lsls r0, 3 adds r0, r2, r0 ldrh r1, [r5, 0x2] ldr r4, _080F6D5C @ =0x0000ceea adds r0, r4 strh r1, [r0] ldrh r0, [r3] lsls r0, 3 adds r0, r2, r0 ldr r1, _080F6D64 @ =0x0000ceed adds r0, r1 strb r6, [r0] ldrh r0, [r3] lsls r0, 3 adds r2, r0 mov r0, r8 adds r0, 0x38 adds r4, 0x2 adds r2, r4 strb r0, [r2] ldrh r0, [r3] adds r0, 0x1 strh r0, [r3] _080F6D0E: mov r0, r8 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r8, r0 cmp r0, 0xC bls _080F6CB4 ldr r3, _080F6D44 @ =gUnknown_083DFEC4 ldr r2, [r3] ldr r1, _080F6D68 @ =0x0000876c adds r0, r2, r1 movs r1, 0 strh r1, [r0] ldr r4, _080F6D6C @ =0x00008770 adds r0, r2, r4 strh r1, [r0] subs r4, 0x2 adds r0, r2, r4 strh r1, [r0] ldr r1, _080F6D48 @ =0x0000d158 adds r0, r2, r1 ldrh r0, [r0] cmp r0, 0x8 bhi _080F6D70 subs r4, r0, 0x1 b _080F6D72 .align 2, 0 _080F6D44: .4byte gUnknown_083DFEC4 _080F6D48: .4byte 0x0000d158 _080F6D4C: .4byte gSaveBlock1 + 0x97A _080F6D50: .4byte gTrainerEyeTrainers _080F6D54: .4byte 0x0000cee8 _080F6D58: .4byte 0x0000ceec _080F6D5C: .4byte 0x0000ceea _080F6D60: .4byte gUnknown_083E49C0 _080F6D64: .4byte 0x0000ceed _080F6D68: .4byte 0x0000876c _080F6D6C: .4byte 0x00008770 _080F6D70: movs r4, 0x7 _080F6D72: ldr r1, _080F6DA8 @ =0x00008772 adds r0, r2, r1 strh r4, [r0] ldr r3, [r3] ldr r2, _080F6DAC @ =0x0000d158 adds r0, r3, r2 ldrh r0, [r0] subs r0, 0x1 ldr r4, _080F6DB0 @ =0x00008774 adds r1, r3, r4 strh r0, [r1] movs r1, 0 lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _080F6D94 movs r1, 0x1 _080F6D94: ldr r2, _080F6DB4 @ =0x000087c9 adds r0, r3, r2 strb r1, [r0] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F6DA8: .4byte 0x00008772 _080F6DAC: .4byte 0x0000d158 _080F6DB0: .4byte 0x00008774 _080F6DB4: .4byte 0x000087c9 thumb_func_end sub_80F6C20 thumb_func_start sub_80F6DB8 sub_80F6DB8: @ 80F6DB8 push {r4,lr} movs r1, 0 ldr r0, _080F6DEC @ =gUnknown_083DFEC4 ldr r4, [r0] ldr r2, _080F6DF0 @ =0x00008fe9 adds r0, r4, r2 strb r1, [r0] movs r0, 0 bl sub_80F6E04 ldr r0, _080F6DF4 @ =0x0000d15a adds r1, r4, r0 ldr r0, _080F6DF8 @ =0x0000ffb8 strh r0, [r1] movs r0, 0 bl sub_80F2F7C ldr r1, _080F6DFC @ =0x0000876e adds r0, r4, r1 ldrh r0, [r0] ldr r2, _080F6E00 @ =0x000087dc adds r4, r2 strh r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080F6DEC: .4byte gUnknown_083DFEC4 _080F6DF0: .4byte 0x00008fe9 _080F6DF4: .4byte 0x0000d15a _080F6DF8: .4byte 0x0000ffb8 _080F6DFC: .4byte 0x0000876e _080F6E00: .4byte 0x000087dc thumb_func_end sub_80F6DB8 thumb_func_start sub_80F6E04 sub_80F6E04: @ 80F6E04 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080F6E78 @ =gUnknown_083DFEC4 ldr r5, [r0] ldr r1, _080F6E7C @ =0x0000876e adds r0, r5, r1 movs r2, 0 ldrsh r0, [r0, r2] lsls r0, 3 adds r0, r5, r0 ldr r7, _080F6E80 @ =0x0000cee8 adds r0, r7 ldrh r1, [r0] ldr r2, _080F6E84 @ =gTrainers lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r6, [r0, 0x3] lsls r0, r6, 3 mov r8, r0 ldr r0, _080F6E88 @ =gTrainerFrontPicTable add r0, r8 ldr r2, _080F6E8C @ =gTrainerFrontPicCoords lsls r1, r6, 2 adds r1, r2 ldrb r1, [r1] ldr r2, _080F6E90 @ =0x000131e4 adds r3, r5, r2 lsls r2, r4, 13 ldr r7, _080F6E94 @ =0x0000d1e4 adds r2, r7 adds r2, r5, r2 str r2, [sp] str r6, [sp, 0x4] movs r2, 0x1 bl DecompressPicFromTable_2 ldr r0, _080F6E98 @ =gTrainerFrontPicPaletteTable add r8, r0 mov r1, r8 ldr r0, [r1] lsls r4, 7 adds r5, r4 adds r1, r5, 0 bl LZ77UnCompWram add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F6E78: .4byte gUnknown_083DFEC4 _080F6E7C: .4byte 0x0000876e _080F6E80: .4byte 0x0000cee8 _080F6E84: .4byte gTrainers _080F6E88: .4byte gTrainerFrontPicTable _080F6E8C: .4byte gTrainerFrontPicCoords _080F6E90: .4byte 0x000131e4 _080F6E94: .4byte 0x0000d1e4 _080F6E98: .4byte gTrainerFrontPicPaletteTable thumb_func_end sub_80F6E04 thumb_func_start sub_80F6E9C sub_80F6E9C: @ 80F6E9C push {lr} ldr r0, _080F6EB4 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r2, _080F6EB8 @ =0x0000d15a adds r1, r0, r2 ldrh r2, [r1] movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 bne _080F6EBC movs r0, 0 b _080F6ED0 .align 2, 0 _080F6EB4: .4byte gUnknown_083DFEC4 _080F6EB8: .4byte 0x0000d15a _080F6EBC: adds r0, r2, 0 adds r0, 0x8 strh r0, [r1] lsls r0, 16 cmp r0, 0 bge _080F6ECC movs r0, 0x1 b _080F6ED0 _080F6ECC: movs r0, 0 strh r0, [r1] _080F6ED0: pop {r1} bx r1 thumb_func_end sub_80F6E9C thumb_func_start sub_80F6ED4 sub_80F6ED4: @ 80F6ED4 push {lr} ldr r0, _080F6F00 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r2, _080F6F04 @ =0x0000d15a adds r1, r0, r2 ldrh r3, [r1] movs r2, 0 ldrsh r0, [r1, r2] movs r2, 0x48 negs r2, r2 cmp r0, r2 beq _080F6F0A adds r0, r3, 0 subs r0, 0x8 strh r0, [r1] lsls r0, 16 asrs r0, 16 cmp r0, r2 ble _080F6F08 movs r0, 0x1 b _080F6F0C .align 2, 0 _080F6F00: .4byte gUnknown_083DFEC4 _080F6F04: .4byte 0x0000d15a _080F6F08: strh r2, [r1] _080F6F0A: movs r0, 0 _080F6F0C: pop {r1} bx r1 thumb_func_end sub_80F6ED4 thumb_func_start sub_80F6F10 sub_80F6F10: @ 80F6F10 push {lr} ldr r0, _080F6F48 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r2, _080F6F4C @ =0x0000d15e adds r1, r0, r2 movs r2, 0 strb r2, [r1] ldr r1, _080F6F50 @ =0x0000d15f adds r0, r1 strb r2, [r0] ldr r1, _080F6F54 @ =REG_BLDCNT movs r0, 0xC8 strh r0, [r1] ldr r0, _080F6F58 @ =REG_BLDY strh r2, [r0] subs r1, 0x8 ldr r2, _080F6F5C @ =0x00003f3f adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080F6F60 @ =0x00001f1f adds r0, r2, 0 strh r0, [r1] movs r0, 0 bl sub_80F6FB8 pop {r0} bx r0 .align 2, 0 _080F6F48: .4byte gUnknown_083DFEC4 _080F6F4C: .4byte 0x0000d15e _080F6F50: .4byte 0x0000d15f _080F6F54: .4byte REG_BLDCNT _080F6F58: .4byte REG_BLDY _080F6F5C: .4byte 0x00003f3f _080F6F60: .4byte 0x00001f1f thumb_func_end sub_80F6F10 thumb_func_start sub_80F6F64 sub_80F6F64: @ 80F6F64 push {lr} ldr r0, _080F6F9C @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r0, _080F6FA0 @ =0x0000d15e adds r2, r1, r0 ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] lsls r0, 24 lsrs r0, 24 cmp r0, 0x8 bls _080F6FB0 movs r0, 0 strb r0, [r2] ldr r0, _080F6FA4 @ =0x0000d15f adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _080F6FAC ldr r1, _080F6FA8 @ =REG_BLDY movs r0, 0x6 strh r0, [r1] b _080F6FB0 .align 2, 0 _080F6F9C: .4byte gUnknown_083DFEC4 _080F6FA0: .4byte 0x0000d15e _080F6FA4: .4byte 0x0000d15f _080F6FA8: .4byte REG_BLDY _080F6FAC: ldr r0, _080F6FB4 @ =REG_BLDY strh r1, [r0] _080F6FB0: pop {r0} bx r0 .align 2, 0 _080F6FB4: .4byte REG_BLDY thumb_func_end sub_80F6F64 thumb_func_start sub_80F6FB8 sub_80F6FB8: @ 80F6FB8 push {lr} lsls r0, 24 cmp r0, 0 bne _080F6FDC ldr r1, _080F6FD0 @ =REG_WIN0H ldr r2, _080F6FD4 @ =0x0000e8f0 adds r0, r2, 0 strh r0, [r1] adds r1, 0x4 ldr r2, _080F6FD8 @ =0x00000888 b _080F6FE8 .align 2, 0 _080F6FD0: .4byte REG_WIN0H _080F6FD4: .4byte 0x0000e8f0 _080F6FD8: .4byte 0x00000888 _080F6FDC: ldr r1, _080F6FF0 @ =REG_WIN0H ldr r2, _080F6FF4 @ =0x0000e8f0 adds r0, r2, 0 strh r0, [r1] adds r1, 0x4 ldr r2, _080F6FF8 @ =0x00000818 _080F6FE8: adds r0, r2, 0 strh r0, [r1] pop {r0} bx r0 .align 2, 0 _080F6FF0: .4byte REG_WIN0H _080F6FF4: .4byte 0x0000e8f0 _080F6FF8: .4byte 0x00000818 thumb_func_end sub_80F6FB8 thumb_func_start sub_80F6FFC sub_80F6FFC: @ 80F6FFC ldr r0, _080F7008 @ =REG_BLDCNT movs r1, 0 strh r1, [r0] adds r0, 0x4 strh r1, [r0] bx lr .align 2, 0 _080F7008: .4byte REG_BLDCNT thumb_func_end sub_80F6FFC thumb_func_start sub_80F700C sub_80F700C: @ 80F700C push {r4,r5,lr} lsls r1, 16 lsrs r1, 16 ldr r2, _080F7078 @ =gUnknown_083DFEC4 ldr r4, [r2] lsls r2, r1, 3 adds r2, r4, r2 ldr r3, _080F707C @ =0x0000cee8 adds r2, r3 ldrh r3, [r2] lsls r2, r3, 2 adds r2, r3 lsls r2, 3 ldr r3, _080F7080 @ =gTrainers adds r5, r2, r3 adds r3, r0, 0 ldr r0, _080F7084 @ =0x0000d158 adds r4, r0 ldrh r4, [r4] cmp r1, r4 bcs _080F7060 ldrb r1, [r5, 0x1] movs r0, 0xD muls r1, r0 ldr r0, _080F7088 @ =gTrainerClassNames adds r1, r0 adds r0, r3, 0 bl StringCopy adds r3, r0, 0 movs r0, 0xFC strb r0, [r3] movs r0, 0x13 strb r0, [r3, 0x1] movs r0, 0x4B strb r0, [r3, 0x2] adds r3, 0x3 adds r1, r5, 0x4 adds r0, r3, 0 bl StringCopy adds r3, r0, 0 _080F7060: movs r0, 0xFC strb r0, [r3] movs r0, 0x13 strb r0, [r3, 0x1] movs r0, 0x80 strb r0, [r3, 0x2] movs r0, 0xFF strb r0, [r3, 0x3] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F7078: .4byte gUnknown_083DFEC4 _080F707C: .4byte 0x0000cee8 _080F7080: .4byte gTrainers _080F7084: .4byte 0x0000d158 _080F7088: .4byte gTrainerClassNames thumb_func_end sub_80F700C thumb_func_start sub_80F708C sub_80F708C: @ 80F708C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 ldr r0, _080F70E4 @ =gUnknown_083DFEC4 ldr r3, [r0] ldr r0, _080F70E8 @ =0x0000876e adds r2, r3, r0 lsls r0, r4, 24 asrs r0, 24 ldrh r1, [r2] adds r0, r1 strh r0, [r2] lsls r0, 16 cmp r0, 0 bge _080F70B4 ldr r5, _080F70EC @ =0x00008774 adds r0, r3, r5 ldrh r0, [r0] strh r0, [r2] _080F70B4: ldr r1, _080F70EC @ =0x00008774 adds r0, r3, r1 movs r5, 0 ldrsh r1, [r2, r5] movs r5, 0 ldrsh r0, [r0, r5] cmp r1, r0 ble _080F70C8 movs r0, 0 strh r0, [r2] _080F70C8: ldr r1, _080F70F0 @ =0x0000bc94 adds r0, r3, r1 strb r4, [r0] ldrh r1, [r2] ldr r2, _080F70F4 @ =0x000087dc adds r0, r3, r2 strh r1, [r0] ldr r5, _080F70F8 @ =0x000087de adds r1, r3, r5 movs r0, 0 strb r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F70E4: .4byte gUnknown_083DFEC4 _080F70E8: .4byte 0x0000876e _080F70EC: .4byte 0x00008774 _080F70F0: .4byte 0x0000bc94 _080F70F4: .4byte 0x000087dc _080F70F8: .4byte 0x000087de thumb_func_end sub_80F708C thumb_func_start sub_80F70FC sub_80F70FC: @ 80F70FC push {r4-r6,lr} ldr r1, _080F711C @ =gUnknown_083DFEC4 ldr r0, [r1] ldr r2, _080F7120 @ =0x000087de adds r0, r2 ldrb r0, [r0] adds r4, r1, 0 cmp r0, 0x6 bls _080F7110 b _080F7218 _080F7110: lsls r0, 2 ldr r1, _080F7124 @ =_080F7128 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F711C: .4byte gUnknown_083DFEC4 _080F7120: .4byte 0x000087de _080F7124: .4byte _080F7128 .align 2, 0 _080F7128: .4byte _080F7144 .4byte _080F714A .4byte _080F7164 .4byte _080F716C .4byte _080F71A0 .4byte _080F71BA .4byte _080F71EA _080F7144: bl sub_80F6ED4 b _080F71F8 _080F714A: movs r0, 0 bl sub_80F6E04 ldr r0, _080F715C @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r2, _080F7160 @ =0x000087de adds r1, r2 b _080F7206 .align 2, 0 _080F715C: .4byte gUnknown_083DFEC4 _080F7160: .4byte 0x000087de _080F7164: movs r0, 0 bl sub_80F2F7C b _080F71FE _080F716C: ldr r4, [r4] ldr r2, _080F7194 @ =0x00008788 adds r5, r4, r2 ldr r0, _080F7198 @ =0x0000876e adds r6, r4, r0 ldrh r1, [r6] adds r0, r5, 0 bl sub_80F700C adds r0, r5, 0 bl sub_80F43D4 bl sub_80F105C ldrb r0, [r6] bl sub_80F0FFC ldr r2, _080F719C @ =0x000087de adds r4, r2 b _080F71CC .align 2, 0 _080F7194: .4byte 0x00008788 _080F7198: .4byte 0x0000876e _080F719C: .4byte 0x000087de _080F71A0: bl sub_80F0CD8 ldr r0, _080F71D4 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r0, _080F71D8 @ =0x0000bc95 adds r2, r1, r0 movs r0, 0 strb r0, [r2] ldr r2, _080F71DC @ =0x000087de adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080F71BA: ldr r0, _080F71D4 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r0, _080F71D8 @ =0x0000bc95 adds r4, r1, r0 ldrb r0, [r4] cmp r0, 0x1 bhi _080F71E0 bl sub_80F0D5C _080F71CC: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _080F721C .align 2, 0 _080F71D4: .4byte gUnknown_083DFEC4 _080F71D8: .4byte 0x0000bc95 _080F71DC: .4byte 0x000087de _080F71E0: ldr r2, _080F7210 @ =0x000087de adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080F71EA: bl sub_80F6E9C lsls r0, 24 cmp r0, 0 bne _080F721C bl sub_80F0D5C _080F71F8: lsls r0, 24 cmp r0, 0 bne _080F721C _080F71FE: ldr r0, _080F7214 @ =gUnknown_083DFEC4 ldr r1, [r0] ldr r0, _080F7210 @ =0x000087de adds r1, r0 _080F7206: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080F721C .align 2, 0 _080F7210: .4byte 0x000087de _080F7214: .4byte gUnknown_083DFEC4 _080F7218: movs r0, 0 b _080F721E _080F721C: movs r0, 0x1 _080F721E: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80F70FC thumb_func_start sub_80F7224 sub_80F7224: @ 80F7224 push {r4,lr} lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _080F7260 @ =gPlayerParty adds r0, r1 movs r1, 0x30 bl GetMonData lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080F7264 @ =gUnknown_083DFEC4 ldr r0, [r0] ldr r3, _080F7268 @ =0x00008fe9 adds r1, r0, r3 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 ldr r3, _080F726C @ =0x00008931 adds r0, r3 adds r4, r0, r1 cmp r2, 0xFF beq _080F7270 adds r0, r2, 0 movs r1, 0x1D bl __udivsi3 b _080F7272 .align 2, 0 _080F7260: .4byte gPlayerParty _080F7264: .4byte gUnknown_083DFEC4 _080F7268: .4byte 0x00008fe9 _080F726C: .4byte 0x00008931 _080F7270: movs r0, 0x9 _080F7272: strb r0, [r4] pop {r4} pop {r0} bx r0 thumb_func_end sub_80F7224 thumb_func_start sub_80F727C sub_80F727C: @ 80F727C ldr r1, _080F7288 @ =gUnknown_020388B8 str r0, [r1] movs r1, 0 strb r1, [r0, 0xB] bx lr .align 2, 0 _080F7288: .4byte gUnknown_020388B8 thumb_func_end sub_80F727C thumb_func_start sub_80F728C sub_80F728C: @ 80F728C push {lr} sub sp, 0x4 ldr r0, _080F72C4 @ =gSaveBlock2 ldrb r0, [r0, 0x14] lsrs r0, 3 bl GetTextWindowFrameGraphics ldr r3, _080F72C8 @ =gUnknown_020388B8 ldr r2, [r3] ldr r1, [r0] str r1, [r2, 0x28] ldr r0, [r0, 0x4] str r0, [r2, 0x2C] ldr r0, _080F72CC @ =0x000010b0 adds r2, r0 movs r1, 0 strb r1, [r2] mov r0, sp strh r1, [r0] ldr r1, [r3] adds r1, 0x30 ldr r2, _080F72D0 @ =0x01000800 bl CpuSet add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080F72C4: .4byte gSaveBlock2 _080F72C8: .4byte gUnknown_020388B8 _080F72CC: .4byte 0x000010b0 _080F72D0: .4byte 0x01000800 thumb_func_end sub_80F728C thumb_func_start sub_80F72D4 sub_80F72D4: @ 80F72D4 push {r4-r7,lr} ldr r0, _080F72F4 @ =gUnknown_020388B8 ldr r1, [r0] ldr r2, _080F72F8 @ =0x000010b0 adds r0, r1, r2 ldrb r2, [r0] lsls r0, r2, 8 adds r0, 0x30 adds r5, r1, r0 cmp r2, 0xD beq _080F73A4 cmp r2, 0xD bgt _080F72FC cmp r2, 0 beq _080F7302 b _080F734C .align 2, 0 _080F72F4: .4byte gUnknown_020388B8 _080F72F8: .4byte 0x000010b0 _080F72FC: cmp r2, 0xE beq _080F73F0 b _080F734C _080F7302: ldr r0, [r1, 0x28] adds r1, r5, 0 movs r2, 0x8 bl CpuFastSet movs r4, 0 adds r7, r5, 0 adds r7, 0xE0 _080F7312: ldr r6, _080F7344 @ =gUnknown_020388B8 ldr r0, [r6] ldr r0, [r0, 0x28] adds r0, 0x20 adds r4, 0x1 lsls r1, r4, 5 adds r1, r5, r1 movs r2, 0x8 bl CpuFastSet lsls r4, 16 lsrs r4, 16 cmp r4, 0x5 bls _080F7312 ldr r0, [r6] ldr r0, [r0, 0x28] adds r0, 0x40 adds r1, r7, 0 movs r2, 0x8 bl CpuFastSet ldr r1, [r6] ldr r0, _080F7348 @ =0x000010b0 adds r1, r0 b _080F7392 .align 2, 0 _080F7344: .4byte gUnknown_020388B8 _080F7348: .4byte 0x000010b0 _080F734C: ldr r0, _080F739C @ =gUnknown_020388B8 ldr r0, [r0] ldr r0, [r0, 0x28] adds r0, 0x60 adds r1, r5, 0 movs r2, 0x8 bl CpuFastSet movs r4, 0 adds r7, r5, 0 adds r7, 0xE0 _080F7362: ldr r6, _080F739C @ =gUnknown_020388B8 ldr r0, [r6] ldr r0, [r0, 0x28] adds r0, 0x80 adds r4, 0x1 lsls r1, r4, 5 adds r1, r5, r1 movs r2, 0x8 bl CpuFastSet lsls r4, 16 lsrs r4, 16 cmp r4, 0x5 bls _080F7362 ldr r0, [r6] ldr r0, [r0, 0x28] adds r0, 0xA0 adds r1, r7, 0 movs r2, 0x8 bl CpuFastSet ldr r1, [r6] ldr r2, _080F73A0 @ =0x000010b0 adds r1, r2 _080F7392: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080F73FC .align 2, 0 _080F739C: .4byte gUnknown_020388B8 _080F73A0: .4byte 0x000010b0 _080F73A4: ldr r0, [r1, 0x28] adds r0, 0xC0 adds r1, r5, 0 movs r2, 0x8 bl CpuFastSet movs r4, 0 adds r7, r5, 0 adds r7, 0xE0 _080F73B6: ldr r6, _080F73F4 @ =gUnknown_020388B8 ldr r0, [r6] ldr r0, [r0, 0x28] adds r0, 0xE0 adds r4, 0x1 lsls r1, r4, 5 adds r1, r5, r1 movs r2, 0x8 bl CpuFastSet lsls r4, 16 lsrs r4, 16 cmp r4, 0x5 bls _080F73B6 ldr r0, [r6] ldr r0, [r0, 0x28] movs r1, 0x80 lsls r1, 1 adds r0, r1 adds r1, r7, 0 movs r2, 0x8 bl CpuFastSet ldr r1, [r6] ldr r2, _080F73F8 @ =0x000010b0 adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080F73F0: movs r0, 0 b _080F73FE .align 2, 0 _080F73F4: .4byte gUnknown_020388B8 _080F73F8: .4byte 0x000010b0 _080F73FC: movs r0, 0x1 _080F73FE: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80F72D4 thumb_func_start sub_80F7404 sub_80F7404: @ 80F7404 push {lr} bl sub_80F728C _080F740A: bl sub_80F72D4 lsls r0, 24 cmp r0, 0 bne _080F740A pop {r0} bx r0 thumb_func_end sub_80F7404 thumb_func_start sub_80F7418 sub_80F7418: @ 80F7418 push {r4-r6,lr} lsls r1, 16 lsrs r5, r1, 16 lsls r2, 16 lsrs r6, r2, 16 ldr r2, _080F746C @ =gUnknown_020388B8 ldr r3, [r2] movs r1, 0 strb r1, [r3, 0x5] ldr r1, [r2] strb r0, [r1, 0x4] movs r3, 0 adds r4, r2, 0 movs r2, 0x1 _080F7434: ldr r0, [r4] adds r1, r0, 0x6 adds r1, r3 ldrb r0, [r0, 0x4] asrs r0, r3 ands r0, r2 strb r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x3 bls _080F7434 bl sub_814A7FC lsls r0, r5, 16 asrs r0, 16 lsls r1, r6, 16 asrs r1, 16 ldr r2, _080F746C @ =gUnknown_020388B8 ldr r3, [r2] ldrh r2, [r3] ldrh r3, [r3, 0x2] bl sub_80F761C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F746C: .4byte gUnknown_020388B8 thumb_func_end sub_80F7418 thumb_func_start sub_80F7470 sub_80F7470: @ 80F7470 push {r4,r5,lr} movs r4, 0 ldr r5, _080F74FC @ =gUnknown_020388B8 _080F7476: ldr r0, [r5] ldrh r0, [r0] adds r0, r4, r0 lsls r0, 16 lsrs r0, 16 bl FreeSpriteTilesByTag adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x2 bls _080F7476 ldr r4, _080F74FC @ =gUnknown_020388B8 ldr r0, [r4] ldrh r0, [r0, 0x2] bl FreeSpritePaletteByTag ldr r0, [r4] ldrh r0, [r0, 0x2] adds r0, 0x1 lsls r0, 16 lsrs r0, 16 bl FreeSpritePaletteByTag movs r4, 0 _080F74A8: ldr r0, _080F74FC @ =gUnknown_020388B8 ldr r0, [r0] lsls r1, r4, 2 adds r0, 0xC adds r0, r1 ldr r0, [r0] cmp r0, 0 beq _080F74F6 bl DestroySprite adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1 bls _080F74A8 movs r4, 0 _080F74C8: ldr r5, _080F74FC @ =gUnknown_020388B8 ldr r0, [r5] lsls r1, r4, 2 adds r0, 0x14 adds r0, r1 ldr r0, [r0] cmp r0, 0 beq _080F74F6 bl DestroySprite adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x3 bls _080F74C8 bl sub_814A7FC ldr r0, [r5] ldr r0, [r0, 0x24] cmp r0, 0 beq _080F74F6 bl DestroySprite _080F74F6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F74FC: .4byte gUnknown_020388B8 thumb_func_end sub_80F7470 thumb_func_start sub_80F7500 sub_80F7500: @ 80F7500 push {r4,r5,lr} sub sp, 0x30 ldr r4, _080F7580 @ =gUnknown_020388B8 ldr r2, [r4] adds r0, r2, 0 adds r0, 0x30 str r0, [sp, 0x18] add r1, sp, 0x1C movs r5, 0 movs r0, 0x80 lsls r0, 5 strh r0, [r1] ldrh r1, [r2] mov r0, sp adds r0, 0x1E strh r1, [r0] add r1, sp, 0x20 ldr r0, _080F7584 @ =gPokenavConditionMenuMisc_Gfx str r0, [sp, 0x20] movs r0, 0xA4 lsls r0, 3 strh r0, [r1, 0x4] ldrh r0, [r2] adds r0, 0x1 strh r0, [r1, 0x6] add r0, sp, 0x28 movs r1, 0 movs r2, 0x8 bl memset add r1, sp, 0x18 mov r0, sp movs r2, 0x18 bl memcpy ldr r0, [r4] ldrb r0, [r0, 0xB] cmp r0, 0 beq _080F7558 mov r0, sp bl LoadTilesForSpriteSheets ldr r0, [r4] strb r5, [r0, 0xB] _080F7558: ldr r0, _080F7588 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080F758C movs r0, 0x5 bl PlaySE ldr r1, [r4] ldrb r0, [r1, 0x5] subs r0, 0x1 strb r0, [r1, 0x5] lsls r0, 24 cmp r0, 0 bge _080F75FE ldr r1, [r4] movs r0, 0x5 strb r0, [r1, 0x5] b _080F75FE .align 2, 0 _080F7580: .4byte gUnknown_020388B8 _080F7584: .4byte gPokenavConditionMenuMisc_Gfx _080F7588: .4byte gMain _080F758C: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080F75B0 movs r0, 0x5 bl PlaySE ldr r1, [r4] ldrb r0, [r1, 0x5] adds r0, 0x1 strb r0, [r1, 0x5] lsls r0, 24 asrs r0, 24 cmp r0, 0x5 ble _080F75FE ldr r0, [r4] strb r5, [r0, 0x5] b _080F75FE _080F75B0: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080F7602 movs r0, 0x5 bl PlaySE ldr r0, [r4] movs r1, 0x5 ldrsb r1, [r0, r1] cmp r1, 0x4 beq _080F75DC cmp r1, 0x5 beq _080F7610 adds r0, 0x6 adds r1, r0, r1 movs r2, 0 ldrb r0, [r1] cmp r0, 0 bne _080F75FC movs r2, 0x1 b _080F75FC _080F75DC: strb r5, [r0, 0x4] movs r3, 0 _080F75E0: ldr r2, [r4] adds r0, r2, 0x6 adds r0, r3 ldrb r0, [r0] lsls r0, r3 ldrb r1, [r2, 0x4] orrs r0, r1 strb r0, [r2, 0x4] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x3 bls _080F75E0 b _080F7610 _080F75FC: strb r2, [r1] _080F75FE: movs r0, 0x1 b _080F7612 _080F7602: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080F75FE movs r0, 0x5 bl PlaySE _080F7610: movs r0, 0 _080F7612: add sp, 0x30 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80F7500 thumb_func_start sub_80F761C sub_80F761C: @ 80F761C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x5C adds r5, r2, 0 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x4C] lsls r1, 16 lsrs r1, 16 str r1, [sp, 0x50] lsls r5, 16 lsrs r5, 16 lsls r3, 16 lsrs r3, 16 str r3, [sp, 0x54] ldr r0, _080F7820 @ =gUnknown_020388B8 mov r8, r0 ldr r0, [r0] adds r0, 0x30 str r0, [sp, 0x1C] add r1, sp, 0x20 movs r2, 0 mov r9, r2 movs r0, 0x80 lsls r0, 5 strh r0, [r1] mov r0, sp adds r0, 0x22 strh r5, [r0] add r1, sp, 0x24 ldr r0, _080F7824 @ =gPokenavConditionMenuMisc_Gfx str r0, [sp, 0x24] movs r0, 0xA4 lsls r0, 3 strh r0, [r1, 0x4] adds r0, r5, 0x1 strh r0, [r1, 0x6] add r0, sp, 0x2C movs r1, 0 movs r2, 0x8 bl memset add r6, sp, 0x1C add r0, sp, 0x4 adds r1, r6, 0 movs r2, 0x18 bl memcpy mov r3, r8 ldr r0, [r3] ldr r0, [r0, 0x2C] str r0, [sp, 0x34] add r0, sp, 0x38 add r1, sp, 0x54 ldrh r1, [r1] strh r1, [r0] add r1, sp, 0x3C ldr r0, _080F7828 @ =gUnknown_08E966B8 str r0, [sp, 0x3C] ldr r0, [sp, 0x54] adds r0, 0x1 strh r0, [r1, 0x4] add r0, sp, 0x44 movs r1, 0 movs r2, 0x8 bl memset add r4, sp, 0x34 adds r0, r6, 0 adds r1, r4, 0 movs r2, 0x18 bl memcpy strh r5, [r4] add r2, sp, 0x54 ldrh r2, [r2] strh r2, [r4, 0x2] ldr r0, _080F782C @ =gUnknown_083E5214 str r0, [r4, 0x4] ldr r0, _080F7830 @ =gSpriteAnimTable_83E52AC str r0, [r4, 0x8] mov r3, r9 str r3, [r4, 0xC] ldr r0, _080F7834 @ =gDummySpriteAffineAnimTable str r0, [r4, 0x10] ldr r0, _080F7838 @ =nullsub_65 str r0, [r4, 0x14] mov r0, r8 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0xB] add r0, sp, 0x4 bl AllocTilesForSpriteSheets adds r0, r6, 0 bl LoadSpritePalettes movs r5, 0 ldr r1, [sp, 0x4C] lsls r0, r1, 16 movs r2, 0x80 lsls r2, 14 adds r2, r0 mov r8, r2 str r0, [sp, 0x58] ldr r3, [sp, 0x50] lsls r0, r3, 16 movs r1, 0x80 lsls r1, 14 adds r7, r0, r1 mov r9, r0 _080F7700: adds r0, r4, 0 mov r2, r8 asrs r1, r2, 16 asrs r2, r7, 16 movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x40 bne _080F7718 b _080F7850 _080F7718: ldr r6, _080F7820 @ =gUnknown_020388B8 ldr r2, [r6] lsls r0, r5, 2 adds r2, 0xC adds r2, r0 lsls r0, r3, 4 adds r0, r3 lsls r0, 2 ldr r1, _080F783C @ =gSprites adds r0, r1 str r0, [r2] lsls r1, r5, 24 lsrs r1, 24 bl StartSpriteAnim adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x1 bls _080F7700 ldr r0, [r6] ldr r1, [r0, 0x10] mov r3, r9 asrs r0, r3, 16 adds r0, 0x60 strh r0, [r1, 0x22] ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] ldrh r0, [r4, 0x2] adds r0, 0x1 strh r0, [r4, 0x2] ldr r0, _080F7840 @ =gSpriteAnimTable_83E5274 str r0, [r4, 0x8] ldr r0, _080F7844 @ =sub_80F78CC str r0, [r4, 0x14] ldr r0, _080F7848 @ =gUnknown_083E521C str r0, [r4, 0x4] movs r5, 0 ldr r0, [sp, 0x58] movs r1, 0x80 lsls r1, 14 adds r0, r1 mov r10, r0 _080F7770: lsls r2, r5, 4 adds r2, 0x10 mov r3, r9 asrs r3, 16 mov r8, r3 add r2, r8 lsls r2, 16 asrs r2, 16 adds r0, r4, 0 mov r3, r10 asrs r1, r3, 16 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x40 beq _080F7860 ldr r6, _080F7820 @ =gUnknown_020388B8 ldr r1, [r6] lsls r0, r5, 2 adds r1, 0x14 adds r1, r0 lsls r0, r3, 4 adds r0, r3 lsls r0, 2 ldr r7, _080F783C @ =gSprites adds r0, r7 str r0, [r1] strh r5, [r0, 0x2E] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x3 bls _080F7770 ldr r0, _080F784C @ =SpriteCallbackDummy str r0, [r4, 0x14] adds r0, r4, 0 movs r1, 0 movs r2, 0 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x40 beq _080F7874 ldr r1, [r6] lsls r0, r3, 4 adds r0, r3 lsls r0, 2 adds r0, r7 str r0, [r1, 0x24] ldrb r2, [r0, 0x1] movs r1, 0x3F ands r1, r2 movs r2, 0x40 orrs r1, r2 strb r1, [r0, 0x1] ldr r0, [r6] ldr r2, [r0, 0x24] ldrb r0, [r2, 0x3] movs r1, 0xC0 orrs r0, r1 strb r0, [r2, 0x3] ldr r0, [r6] ldr r0, [r0, 0x24] movs r1, 0x9 bl StartSpriteAnim ldr r1, [r6] ldr r2, [r1, 0x24] ldr r3, [sp, 0x58] asrs r0, r3, 16 adds r0, 0x20 strh r0, [r2, 0x20] ldr r2, [r1, 0x24] mov r0, r8 adds r0, 0x50 strh r0, [r2, 0x22] ldr r0, [r1, 0x24] movs r1, 0x1 movs r2, 0x2 movs r3, 0 bl CalcCenterToCornerVec b _080F787A .align 2, 0 _080F7820: .4byte gUnknown_020388B8 _080F7824: .4byte gPokenavConditionMenuMisc_Gfx _080F7828: .4byte gUnknown_08E966B8 _080F782C: .4byte gUnknown_083E5214 _080F7830: .4byte gSpriteAnimTable_83E52AC _080F7834: .4byte gDummySpriteAffineAnimTable _080F7838: .4byte nullsub_65 _080F783C: .4byte gSprites _080F7840: .4byte gSpriteAnimTable_83E5274 _080F7844: .4byte sub_80F78CC _080F7848: .4byte gUnknown_083E521C _080F784C: .4byte SpriteCallbackDummy _080F7850: ldr r0, _080F785C @ =gUnknown_020388B8 ldr r0, [r0] lsls r1, r5, 2 adds r0, 0xC b _080F7868 .align 2, 0 _080F785C: .4byte gUnknown_020388B8 _080F7860: ldr r0, _080F7870 @ =gUnknown_020388B8 ldr r0, [r0] lsls r1, r5, 2 adds r0, 0x14 _080F7868: adds r0, r1 movs r1, 0 str r1, [r0] b _080F78B0 .align 2, 0 _080F7870: .4byte gUnknown_020388B8 _080F7874: ldr r1, [r6] movs r0, 0 str r0, [r1, 0x24] _080F787A: ldr r4, _080F78C0 @ =gUnknown_020388B8 ldr r1, [r4] ldr r0, [sp, 0x50] adds r0, 0x8 strb r0, [r1, 0xA] ldr r1, [sp, 0x54] adds r1, 0x1 lsls r1, 16 lsrs r1, 16 movs r0, 0x30 str r0, [sp] movs r0, 0 movs r2, 0xF movs r3, 0 bl sub_814A5C0 ldr r0, [sp, 0x4C] adds r0, 0x8 lsls r0, 24 lsrs r0, 24 ldr r1, [r4] ldrb r1, [r1, 0xA] bl sub_814A880 ldr r0, _080F78C4 @ =sub_80F7908 bl sub_814AABC _080F78B0: add sp, 0x5C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F78C0: .4byte gUnknown_020388B8 _080F78C4: .4byte sub_80F7908 thumb_func_end sub_80F761C thumb_func_start nullsub_65 nullsub_65: @ 80F78C8 bx lr thumb_func_end nullsub_65 thumb_func_start sub_80F78CC sub_80F78CC: @ 80F78CC push {lr} adds r2, r0, 0 ldr r0, _080F78F4 @ =gUnknown_020388B8 ldr r0, [r0] movs r3, 0x2E ldrsh r1, [r2, r3] adds r0, 0x6 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _080F78F8 lsls r1, 1 adds r1, 0x1 lsls r1, 24 lsrs r1, 24 adds r0, r2, 0 bl StartSpriteAnim b _080F7902 .align 2, 0 _080F78F4: .4byte gUnknown_020388B8 _080F78F8: lsls r1, 25 lsrs r1, 24 adds r0, r2, 0 bl StartSpriteAnim _080F7902: pop {r0} bx r0 thumb_func_end sub_80F78CC thumb_func_start sub_80F7908 sub_80F7908: @ 80F7908 ldr r1, _080F791C @ =gUnknown_020388B8 ldr r2, [r1] movs r1, 0x5 ldrsb r1, [r2, r1] lsls r1, 4 ldrb r2, [r2, 0xA] adds r1, r2 strh r1, [r0, 0x22] bx lr .align 2, 0 _080F791C: .4byte gUnknown_020388B8 thumb_func_end sub_80F7908 thumb_func_start sub_80F7920 sub_80F7920: @ 80F7920 push {lr} lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r1, 16 cmp r2, 0 bne _080F7930 ldr r2, _080F793C @ =gUnknown_083E49F4 _080F7930: movs r3, 0x10 bl sub_80F7960 pop {r1} bx r1 .align 2, 0 _080F793C: .4byte gUnknown_083E49F4 thumb_func_end sub_80F7920 thumb_func_start sub_80F7940 sub_80F7940: @ 80F7940 push {lr} lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r1, 16 cmp r2, 0 bne _080F7950 ldr r2, _080F795C @ =gUnknown_083E49F4 _080F7950: movs r3, 0x1 bl sub_80F7960 pop {r1} bx r1 .align 2, 0 _080F795C: .4byte gUnknown_083E49F4 thumb_func_end sub_80F7940 thumb_func_start sub_80F7960 sub_80F7960: @ 80F7960 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x28 lsls r0, 16 lsls r1, 16 lsrs r1, 16 ldr r4, _080F79DC @ =gUnknown_083E4A14 str r4, [sp, 0x18] movs r4, 0x80 add r5, sp, 0x18 lsrs r6, r0, 16 orrs r0, r4 str r0, [r5, 0x4] str r2, [sp, 0x20] ldr r0, _080F79E0 @ =0xffff0000 mov r8, r0 add r4, sp, 0x20 ldr r0, [r4, 0x4] mov r2, r8 ands r0, r2 orrs r0, r1 str r0, [r4, 0x4] mov r0, sp movs r2, 0 strh r6, [r0] strh r1, [r0, 0x2] ldr r0, _080F79E4 @ =gUnknown_083E52B4 str r0, [sp, 0x4] ldr r0, _080F79E8 @ =gSpriteAnimTable_83E533C str r0, [sp, 0x8] str r2, [sp, 0xC] ldr r0, _080F79EC @ =gDummySpriteAffineAnimTable str r0, [sp, 0x10] ldr r0, _080F79F0 @ =nullsub_65 str r0, [sp, 0x14] lsls r3, 23 lsrs r3, 16 ldr r0, [r5, 0x4] mov r1, r8 ands r0, r1 orrs r0, r3 str r0, [r5, 0x4] adds r0, r5, 0 bl LoadSpriteSheet adds r0, r4, 0 bl LoadSpritePalette mov r0, sp movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 bne _080F79F4 movs r0, 0 b _080F79FE .align 2, 0 _080F79DC: .4byte gUnknown_083E4A14 _080F79E0: .4byte 0xffff0000 _080F79E4: .4byte gUnknown_083E52B4 _080F79E8: .4byte gSpriteAnimTable_83E533C _080F79EC: .4byte gDummySpriteAffineAnimTable _080F79F0: .4byte nullsub_65 _080F79F4: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080F7A0C @ =gSprites adds r0, r1 _080F79FE: add sp, 0x28 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080F7A0C: .4byte gSprites thumb_func_end sub_80F7960 thumb_func_start sub_80F7A10 sub_80F7A10: @ 80F7A10 lsls r0, 24 lsrs r0, 17 ldr r2, _080F7A28 @ =gUnknown_083E4A14 adds r0, r2 ldr r2, _080F7A2C @ =0x040000d4 str r0, [r2] str r1, [r2, 0x4] ldr r0, _080F7A30 @ =0x80000040 str r0, [r2, 0x8] ldr r0, [r2, 0x8] bx lr .align 2, 0 _080F7A28: .4byte gUnknown_083E4A14 _080F7A2C: .4byte 0x040000d4 _080F7A30: .4byte 0x80000040 thumb_func_end sub_80F7A10 thumb_func_start sub_80F7A34 sub_80F7A34: @ 80F7A34 push {r4,lr} ldr r0, _080F7A64 @ =gSaveBlock1 + 0x2D94 movs r1, 0 strb r1, [r0] adds r2, r0, 0 adds r2, 0x29 strb r1, [r2] movs r2, 0 adds r4, r0, 0x2 ldr r3, _080F7A68 @ =gUnknown_083E537C _080F7A48: lsls r0, r2, 1 adds r1, r4, r0 adds r0, r3 ldrh r0, [r0] strh r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x5 bls _080F7A48 pop {r4} pop {r0} bx r0 .align 2, 0 _080F7A64: .4byte gSaveBlock1 + 0x2D94 _080F7A68: .4byte gUnknown_083E537C thumb_func_end sub_80F7A34 thumb_func_start sub_80F7A6C sub_80F7A6C: @ 80F7A6C ldr r0, _080F7A78 @ =gSaveBlock1 + 0x2D94 movs r2, 0 movs r1, 0x1 strb r1, [r0] strb r2, [r0, 0x1] bx lr .align 2, 0 _080F7A78: .4byte gSaveBlock1 + 0x2D94 thumb_func_end sub_80F7A6C thumb_func_start sub_80F7A7C sub_80F7A7C: @ 80F7A7C push {lr} bl sub_80F83F8 pop {r0} bx r0 thumb_func_end sub_80F7A7C thumb_func_start sub_80F7A88 sub_80F7A88: @ 80F7A88 ldr r0, _080F7A94 @ =gSaveBlock1 + 0x2D94 movs r2, 0 movs r1, 0x4 strb r1, [r0] strb r2, [r0, 0x1] bx lr .align 2, 0 _080F7A94: .4byte gSaveBlock1 + 0x2D94 thumb_func_end sub_80F7A88 thumb_func_start sub_80F7A98 sub_80F7A98: @ 80F7A98 push {lr} bl sub_81099CC pop {r0} bx r0 thumb_func_end sub_80F7A98 thumb_func_start sub_80F7AA4 sub_80F7AA4: @ 80F7AA4 push {lr} ldr r0, _080F7AC8 @ =gSaveBlock2 ldrb r1, [r0, 0xB] lsls r1, 8 ldrb r0, [r0, 0xA] orrs r0, r1 movs r1, 0xA bl __umodsi3 lsls r0, 16 lsrs r0, 17 cmp r0, 0x4 bhi _080F7B00 lsls r0, 2 ldr r1, _080F7ACC @ =_080F7AD0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F7AC8: .4byte gSaveBlock2 _080F7ACC: .4byte _080F7AD0 .align 2, 0 _080F7AD0: .4byte _080F7AE4 .4byte _080F7AEA .4byte _080F7AF0 .4byte _080F7AF6 .4byte _080F7AFC _080F7AE4: bl sub_80F7A34 b _080F7B00 _080F7AEA: bl sub_80F7A6C b _080F7B00 _080F7AF0: bl sub_80F7A98 b _080F7B00 _080F7AF6: bl sub_80F7A7C b _080F7B00 _080F7AFC: bl sub_80F7A88 _080F7B00: bl sub_80F83D0 pop {r0} bx r0 thumb_func_end sub_80F7AA4 thumb_func_start GetCurrentMauvilleOldMan GetCurrentMauvilleOldMan: @ 80F7B08 ldr r0, _080F7B10 @ =gSaveBlock1 + 0x2D94 ldrb r0, [r0] bx lr .align 2, 0 _080F7B10: .4byte gSaveBlock1 + 0x2D94 thumb_func_end GetCurrentMauvilleOldMan thumb_func_start sub_80F7B14 sub_80F7B14: @ 80F7B14 push {r4,lr} ldr r4, _080F7B28 @ =gScriptResult bl GetCurrentMauvilleOldMan lsls r0, 24 lsrs r0, 24 strh r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080F7B28: .4byte gScriptResult thumb_func_end sub_80F7B14 thumb_func_start sub_80F7B2C sub_80F7B2C: @ 80F7B2C ldr r0, _080F7B38 @ =gScriptResult ldr r1, _080F7B3C @ =gSaveBlock1 + 0x2D94 adds r1, 0x29 ldrb r1, [r1] strh r1, [r0] bx lr .align 2, 0 _080F7B38: .4byte gScriptResult _080F7B3C: .4byte gSaveBlock1 + 0x2D94 thumb_func_end sub_80F7B2C thumb_func_start sub_80F7B40 sub_80F7B40: @ 80F7B40 push {r4,r5,lr} ldr r5, _080F7B98 @ =gSaveBlock1 + 0x2D94 adds r0, r5, 0 adds r0, 0x1A ldr r4, _080F7B9C @ =gSaveBlock2 adds r1, r4, 0 bl StringCopy movs r2, 0 adds r3, r5, 0 adds r3, 0x25 adds r4, 0xA _080F7B58: adds r1, r3, r2 adds r0, r2, r4 ldrb r0, [r0] strb r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x3 bls _080F7B58 movs r2, 0 movs r0, 0x29 adds r0, r5 mov r12, r0 adds r4, r5, 0x2 adds r3, r5, 0 adds r3, 0xE _080F7B78: lsls r0, r2, 1 adds r1, r4, r0 adds r0, r3, r0 ldrh r0, [r0] strh r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x5 bls _080F7B78 movs r0, 0x1 mov r1, r12 strb r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F7B98: .4byte gSaveBlock1 + 0x2D94 _080F7B9C: .4byte gSaveBlock2 thumb_func_end sub_80F7B40 thumb_func_start sub_80F7BA0 sub_80F7BA0: @ 80F7BA0 push {r4-r7,lr} ldr r1, _080F7C48 @ =gSaveBlock1 + 0x2D94 ldr r0, _080F7C4C @ =gUnknown_0202E8CC ldrh r0, [r0] adds r5, r1, 0 adds r5, 0xE cmp r0, 0 bne _080F7BB2 adds r5, r1, 0x2 _080F7BB2: ldr r2, _080F7C50 @ =gStringVar4 adds r4, r2, 0 movs r6, 0 _080F7BB8: ldrh r1, [r5] adds r5, 0x2 adds r0, r2, 0 bl sub_80EB3FC adds r2, r0, 0 adds r7, r6, 0x1 cmp r2, r4 beq _080F7BDA movs r1, 0x37 _080F7BCC: ldrb r0, [r4] cmp r0, 0 bne _080F7BD4 strb r1, [r4] _080F7BD4: adds r4, 0x1 cmp r2, r4 bne _080F7BCC _080F7BDA: adds r4, 0x1 movs r0, 0 strb r0, [r2] adds r2, 0x1 ldrh r1, [r5] adds r5, 0x2 adds r0, r2, 0 bl sub_80EB3FC adds r2, r0, 0 cmp r2, r4 beq _080F7C02 movs r1, 0x37 _080F7BF4: ldrb r0, [r4] cmp r0, 0 bne _080F7BFC strb r1, [r4] _080F7BFC: adds r4, 0x1 cmp r2, r4 bne _080F7BF4 _080F7C02: adds r4, 0x1 movs r0, 0xFE strb r0, [r2] adds r2, 0x1 ldrh r1, [r5] adds r5, 0x2 adds r0, r2, 0 bl sub_80EB3FC adds r2, r0, 0 cmp r2, r4 beq _080F7C2A movs r1, 0x37 _080F7C1C: ldrb r0, [r4] cmp r0, 0 bne _080F7C24 strb r1, [r4] _080F7C24: adds r4, 0x1 cmp r2, r4 bne _080F7C1C _080F7C2A: cmp r6, 0 bne _080F7C3A movs r0, 0xFC strb r0, [r2] adds r2, 0x1 movs r0, 0xF strb r0, [r2] adds r2, 0x1 _080F7C3A: lsls r0, r7, 16 lsrs r6, r0, 16 cmp r6, 0x1 bls _080F7BB8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F7C48: .4byte gSaveBlock1 + 0x2D94 _080F7C4C: .4byte gUnknown_0202E8CC _080F7C50: .4byte gStringVar4 thumb_func_end sub_80F7BA0 thumb_func_start sub_80F7C54 sub_80F7C54: @ 80F7C54 push {lr} ldr r0, _080F7C6C @ =gUnknown_0202E8CC ldrb r0, [r0] bl sub_80F7F80 bl MenuDisplayMessageBox bl ScriptContext1_Stop pop {r0} bx r0 .align 2, 0 _080F7C6C: .4byte gUnknown_0202E8CC thumb_func_end sub_80F7C54 thumb_func_start sub_80F7C70 sub_80F7C70: @ 80F7C70 ldr r0, _080F7C7C @ =gScriptResult ldr r1, _080F7C80 @ =gSaveBlock1 + 0x2D94 ldrb r1, [r1, 0x1] strh r1, [r0] bx lr .align 2, 0 _080F7C7C: .4byte gScriptResult _080F7C80: .4byte gSaveBlock1 + 0x2D94 thumb_func_end sub_80F7C70 thumb_func_start sub_80F7C84 sub_80F7C84: @ 80F7C84 ldr r1, _080F7C8C @ =gSaveBlock1 + 0x2D94 movs r0, 0x1 strb r0, [r1, 0x1] bx lr .align 2, 0 _080F7C8C: .4byte gSaveBlock1 + 0x2D94 thumb_func_end sub_80F7C84 thumb_func_start sub_80F7C90 sub_80F7C90: @ 80F7C90 push {lr} bl sub_80EB8EC lsls r0, 16 lsrs r1, r0, 16 ldr r0, _080F7CA8 @ =0x0000ffff cmp r1, r0 bne _080F7CB0 ldr r1, _080F7CAC @ =gScriptResult movs r0, 0 b _080F7CBA .align 2, 0 _080F7CA8: .4byte 0x0000ffff _080F7CAC: .4byte gScriptResult _080F7CB0: ldr r0, _080F7CC0 @ =gStringVar1 bl sub_80EB3FC ldr r1, _080F7CC4 @ =gScriptResult movs r0, 0x1 _080F7CBA: strh r0, [r1] pop {r0} bx r0 .align 2, 0 _080F7CC0: .4byte gStringVar1 _080F7CC4: .4byte gScriptResult thumb_func_end sub_80F7C90 thumb_func_start sub_80F7CC8 sub_80F7CC8: @ 80F7CC8 push {lr} ldr r2, _080F7CDC @ =gSaveBlock1 + 0x2D94 ldrb r0, [r2, 0x1] cmp r0, 0xA bne _080F7CE4 ldr r1, _080F7CE0 @ =gScriptResult movs r0, 0 strh r0, [r1] strb r0, [r2, 0x1] b _080F7CEA .align 2, 0 _080F7CDC: .4byte gSaveBlock1 + 0x2D94 _080F7CE0: .4byte gScriptResult _080F7CE4: ldr r1, _080F7CF0 @ =gScriptResult movs r0, 0x1 strh r0, [r1] _080F7CEA: pop {r0} bx r0 .align 2, 0 _080F7CF0: .4byte gScriptResult thumb_func_end sub_80F7CC8 thumb_func_start sub_80F7CF4 sub_80F7CF4: @ 80F7CF4 push {r4-r6,lr} ldr r5, _080F7D50 @ =gSaveBlock1 + 0x2D94 ldrb r0, [r5, 0x1] cmp r0, 0 bne _080F7D02 bl sub_80F7DC0 _080F7D02: ldrb r0, [r5, 0x1] lsls r0, 1 adds r6, r5, 0x4 adds r0, r6 ldrh r1, [r0] ldr r0, _080F7D54 @ =0x0000ffff cmp r1, r0 beq _080F7D68 bl Random adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 movs r0, 0x7 ands r4, r0 ldr r0, _080F7D58 @ =gStringVar4 ldrb r1, [r5, 0x1] lsls r1, 1 adds r1, r6 ldrh r1, [r1] bl sub_80EB3FC adds r2, r0, 0 ldr r1, _080F7D5C @ =gOtherText_Is bl StringCopy adds r2, r0, 0 ldr r0, _080F7D60 @ =gUnknown_083E5388 lsls r4, 2 adds r4, r0 ldr r1, [r4] adds r0, r2, 0 bl StringCopy adds r2, r0, 0 ldr r1, _080F7D64 @ =gOtherText_DontYouAgree bl StringCopy b _080F7D88 .align 2, 0 _080F7D50: .4byte gSaveBlock1 + 0x2D94 _080F7D54: .4byte 0x0000ffff _080F7D58: .4byte gStringVar4 _080F7D5C: .4byte gOtherText_Is _080F7D60: .4byte gUnknown_083E5388 _080F7D64: .4byte gOtherText_DontYouAgree _080F7D68: ldr r0, _080F7DA0 @ =gStringVar4 ldr r3, _080F7DA4 @ =gUnknown_083E53A8 ldrb r1, [r5, 0x2] adds r2, r1, 0x1 strb r2, [r5, 0x2] lsls r1, 24 lsrs r1, 24 adds r2, r5, 0 adds r2, 0x18 adds r1, r2 ldrb r1, [r1] lsls r1, 2 adds r1, r3 ldr r1, [r1] bl StringCopy _080F7D88: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 lsls r0, 16 cmp r0, 0 bne _080F7DA8 movs r0, 0xA b _080F7DAC .align 2, 0 _080F7DA0: .4byte gStringVar4 _080F7DA4: .4byte gUnknown_083E53A8 _080F7DA8: ldrb r0, [r5, 0x1] adds r0, 0x1 _080F7DAC: strb r0, [r5, 0x1] ldr r1, _080F7DBC @ =gScriptResult movs r0, 0x1 strh r0, [r1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F7DBC: .4byte gScriptResult thumb_func_end sub_80F7CF4 thumb_func_start sub_80F7DC0 sub_80F7DC0: @ 80F7DC0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 ldr r1, _080F7E84 @ =gUnknown_083E53C8 mov r0, sp movs r2, 0x18 bl memcpy movs r5, 0 movs r0, 0x2 add r0, sp mov r8, r0 ldr r1, _080F7E88 @ =gSaveBlock1 + 0x2D94 adds r1, 0x18 adds r3, r1, 0 _080F7DE4: adds r0, r3, r5 strb r5, [r0] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x7 bls _080F7DE4 movs r5, 0 ldr r2, _080F7E88 @ =gSaveBlock1 + 0x2D94 adds r2, 0x4 mov r9, r2 adds r6, r1, 0 _080F7DFC: bl Random lsls r0, 16 lsrs r0, 16 adds r4, r5, 0x1 adds r1, r4, 0 bl __modsi3 lsls r0, 16 lsrs r1, r0, 16 adds r2, r6, r5 ldrb r7, [r2] adds r1, r6, r1 ldrb r0, [r1] strb r0, [r2] strb r7, [r1] lsls r4, 16 lsrs r5, r4, 16 cmp r5, 0x7 bls _080F7DFC movs r3, 0 mov r10, r3 movs r5, 0 _080F7E2A: lsls r4, r5, 2 mov r1, sp adds r0, r1, r4 ldrb r0, [r0] bl sub_80EAE88 add r4, r8 strh r0, [r4] add r0, r10 lsls r0, 16 lsrs r0, 16 mov r10, r0 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x5 bls _080F7E2A movs r0, 0 ldr r2, _080F7E88 @ =gSaveBlock1 + 0x2D94 strb r0, [r2, 0x2] movs r7, 0 movs r5, 0 _080F7E56: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x2 bhi _080F7E90 cmp r7, 0x7 bhi _080F7E90 lsls r0, r5, 1 add r0, r9 ldr r1, _080F7E8C @ =0x0000ffff strh r1, [r0] adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 adds r4, r5, 0x1 b _080F7EE2 .align 2, 0 _080F7E84: .4byte gUnknown_083E53C8 _080F7E88: .4byte gSaveBlock1 + 0x2D94 _080F7E8C: .4byte 0x0000ffff _080F7E90: bl Random lsls r0, 16 lsrs r0, 16 mov r1, r10 bl __umodsi3 lsls r0, 16 lsrs r2, r0, 16 movs r1, 0 adds r4, r5, 0x1 lsls r6, r5, 1 cmp r5, 0x5 bhi _080F7ECC mov r3, r8 ldrh r0, [r3] b _080F7EC2 _080F7EB2: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r5, 0x5 bhi _080F7ECC lsls r0, r1, 2 adds r0, r3, r0 ldrh r0, [r0] _080F7EC2: subs r0, r2, r0 lsls r0, 16 lsrs r2, r0, 16 cmp r0, 0 bgt _080F7EB2 _080F7ECC: cmp r1, 0x6 bne _080F7ED2 movs r1, 0 _080F7ED2: lsls r0, r1, 2 add r0, sp ldrh r0, [r0] bl sub_80EB784 mov r2, r9 adds r1, r2, r6 strh r0, [r1] _080F7EE2: lsls r0, r4, 16 lsrs r5, r0, 16 cmp r5, 0x9 bls _080F7E56 add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80F7DC0 thumb_func_start sub_80F7EFC sub_80F7EFC: @ 80F7EFC ldr r0, _080F7F08 @ =gSaveBlock1 + 0x2D94 adds r0, 0x29 movs r1, 0 strb r1, [r0] bx lr .align 2, 0 _080F7F08: .4byte gSaveBlock1 + 0x2D94 thumb_func_end sub_80F7EFC thumb_func_start sub_80F7F0C sub_80F7F0C: @ 80F7F0C ldr r1, _080F7F14 @ =gSaveBlock1 + 0x2D94 movs r0, 0 strb r0, [r1, 0x1] bx lr .align 2, 0 _080F7F14: .4byte gSaveBlock1 + 0x2D94 thumb_func_end sub_80F7F0C thumb_func_start sub_80F7F18 sub_80F7F18: @ 80F7F18 push {lr} bl sub_8109A20 pop {r0} bx r0 thumb_func_end sub_80F7F18 thumb_func_start sub_80F7F24 sub_80F7F24: @ 80F7F24 push {lr} bl sub_80F8428 pop {r0} bx r0 thumb_func_end sub_80F7F24 thumb_func_start sub_80F7F30 sub_80F7F30: @ 80F7F30 push {lr} bl GetCurrentMauvilleOldMan lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080F7F76 lsls r0, 2 ldr r1, _080F7F48 @ =_080F7F4C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F7F48: .4byte _080F7F4C .align 2, 0 _080F7F4C: .4byte _080F7F60 .4byte _080F7F66 .4byte _080F7F72 .4byte _080F7F6C .4byte _080F7F76 _080F7F60: bl sub_80F7EFC b _080F7F76 _080F7F66: bl sub_80F7F0C b _080F7F76 _080F7F6C: bl sub_80F7F24 b _080F7F76 _080F7F72: bl sub_80F7F18 _080F7F76: bl sub_80F83D0 pop {r0} bx r0 thumb_func_end sub_80F7F30 thumb_func_start sub_80F7F80 sub_80F7F80: @ 80F7F80 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080F7FA8 @ =sub_80F8184 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080F7FAC @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x12] pop {r4} pop {r0} bx r0 .align 2, 0 _080F7FA8: .4byte sub_80F8184 _080F7FAC: .4byte gTasks thumb_func_end sub_80F7F80 thumb_func_start sub_80F7FB0 sub_80F7FB0: @ 80F7FB0 push {r4-r7,lr} adds r6, r1, 0 movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0x5 bls _080F7FBE b _080F817A _080F7FBE: lsls r0, 2 ldr r1, _080F7FC8 @ =_080F7FCC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F7FC8: .4byte _080F7FCC .align 2, 0 _080F7FCC: .4byte _080F7FE4 .4byte _080F817A .4byte _080F8040 .4byte _080F8074 .4byte _080F8074 .4byte _080F817A _080F7FE4: ldr r2, _080F8034 @ =gSaveBlock1 + 0x2D94 ldr r0, _080F8038 @ =gUnknown_0202E8CC ldrh r0, [r0] adds r1, r2, 0 adds r1, 0xE cmp r0, 0 bne _080F7FF4 adds r1, r2, 0x2 _080F7FF4: adds r2, r1, 0 adds r1, r6, 0 adds r1, 0xC movs r3, 0x5 _080F7FFC: ldrh r0, [r2] strh r0, [r1] adds r2, 0x2 adds r1, 0x2 subs r3, 0x1 cmp r3, 0 bge _080F7FFC ldr r2, _080F803C @ =0x0000ffff adds r4, r2, 0 movs r2, 0 adds r1, r6, 0 adds r1, 0x18 movs r3, 0x5 _080F8016: ldrh r0, [r1] orrs r0, r4 strh r0, [r1] strh r2, [r1, 0x2] strh r2, [r1, 0x4] strh r2, [r1, 0x6] adds r1, 0x8 subs r3, 0x1 cmp r3, 0 bge _080F8016 movs r0, 0 strb r0, [r6] strb r0, [r6, 0x1] strh r0, [r6, 0x4] b _080F817A .align 2, 0 _080F8034: .4byte gSaveBlock1 + 0x2D94 _080F8038: .4byte gUnknown_0202E8CC _080F803C: .4byte 0x0000ffff _080F8040: ldrb r1, [r6] lsls r1, 1 adds r0, r6, 0 adds r0, 0xC adds r0, r1 ldrh r4, [r0] lsrs r0, r4, 9 ldr r1, _080F8070 @ =0x000001ff ands r1, r4 bl sub_814A2D0 adds r1, r0, 0 movs r0, 0 strh r0, [r6, 0x4] movs r2, 0x3 ands r2, r4 lsrs r4, 3 movs r0, 0x1 ands r4, r0 adds r2, r4 adds r0, r6, 0 bl sub_814A2EC b _080F817A .align 2, 0 _080F8070: .4byte 0x000001ff _080F8074: ldrb r1, [r6, 0x1] lsls r0, r1, 3 adds r0, 0x18 adds r7, r6, r0 ldrb r0, [r6, 0x3] cmp r0, 0x1 beq _080F8124 cmp r0, 0x1 bgt _080F808C cmp r0, 0 beq _080F8092 b _080F817A _080F808C: cmp r0, 0xFE beq _080F8170 b _080F817A _080F8092: ldrb r0, [r6, 0x2] cmp r0, 0 bne _080F80D0 cmp r1, 0x6 beq _080F80A2 ldrh r0, [r7] cmp r0, 0xFF bne _080F80A6 _080F80A2: movs r0, 0xFE b _080F8178 _080F80A6: ldrh r0, [r7, 0x2] strb r0, [r6, 0x2] ldrh r0, [r7] cmp r0, 0x32 bhi _080F80CA movs r1, 0x3 bl __udivsi3 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 lsls r0, r1, 1 adds r0, r1 adds r0, 0xF9 lsls r0, 16 lsrs r0, 16 bl m4aSongNumStart _080F80CA: movs r0, 0x1 strb r0, [r6, 0x3] b _080F8114 _080F80D0: ldrh r1, [r6, 0xA] movs r2, 0xA ldrsh r0, [r6, r2] cmp r0, 0xA ble _080F80E0 ldrh r0, [r6, 0x6] subs r0, 0x2 strh r0, [r6, 0x6] _080F80E0: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080F80EE ldrh r0, [r6, 0x8] adds r0, 0x40 b _080F80F2 _080F80EE: ldrh r0, [r6, 0x8] subs r0, 0x40 _080F80F2: strh r0, [r6, 0x8] ldr r4, _080F811C @ =gMPlay_SE2 ldr r5, _080F8120 @ =0x0000ffff ldrh r2, [r6, 0x6] adds r0, r4, 0 adds r1, r5, 0 bl m4aMPlayVolumeControl movs r0, 0x8 ldrsh r2, [r6, r0] adds r0, r4, 0 adds r1, r5, 0 bl m4aMPlayPitchControl ldrh r0, [r6, 0xA] adds r0, 0x1 strh r0, [r6, 0xA] _080F8114: ldrb r0, [r6, 0x2] subs r0, 0x1 strb r0, [r6, 0x2] b _080F817A .align 2, 0 _080F811C: .4byte gMPlay_SE2 _080F8120: .4byte 0x0000ffff _080F8124: adds r0, r1, 0x1 movs r1, 0 strb r0, [r6, 0x1] strb r1, [r6, 0x3] ldrh r0, [r7] cmp r0, 0x32 bhi _080F817A ldrh r0, [r7, 0x6] lsls r0, 4 movs r1, 0x80 lsls r1, 1 adds r0, r1 strh r0, [r6, 0x6] ldr r4, _080F8168 @ =gMPlay_SE2 ldr r5, _080F816C @ =0x0000ffff ldrh r2, [r6, 0x6] adds r0, r4, 0 adds r1, r5, 0 bl m4aMPlayVolumeControl movs r2, 0x80 lsls r2, 2 adds r0, r2, 0 ldrh r7, [r7, 0x4] adds r0, r7 strh r0, [r6, 0x8] movs r0, 0x8 ldrsh r2, [r6, r0] adds r0, r4, 0 adds r1, r5, 0 bl m4aMPlayPitchControl b _080F817A .align 2, 0 _080F8168: .4byte gMPlay_SE2 _080F816C: .4byte 0x0000ffff _080F8170: ldr r0, _080F8180 @ =gMPlay_SE2 bl m4aMPlayStop movs r0, 0xFF _080F8178: strb r0, [r6, 0x3] _080F817A: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F8180: .4byte gMPlay_SE2 thumb_func_end sub_80F7FB0 thumb_func_start sub_80F8184 sub_80F8184: @ 80F8184 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _080F81B4 @ =gTasks adds r5, r0, r1 ldr r1, _080F81B8 @ =gUnknown_03005DA0 adds r0, r5, 0 bl sub_80F7FB0 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0x5 bls _080F81A8 b _080F83C8 _080F81A8: lsls r0, 2 ldr r1, _080F81BC @ =_080F81C0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F81B4: .4byte gTasks _080F81B8: .4byte gUnknown_03005DA0 _080F81BC: .4byte _080F81C0 .align 2, 0 _080F81C0: .4byte _080F81D8 .4byte _080F8218 .4byte _080F8228 .4byte _080F82D8 .4byte _080F83B8 .4byte _080F82C6 _080F81D8: bl sub_80F7BA0 ldr r4, _080F820C @ =gMenuWindowPtr ldr r0, [r4] ldr r1, _080F8210 @ =gWindowConfig_81E6CE4 bl InitWindowFromConfig ldr r0, [r4] ldr r1, _080F8214 @ =gStringVar4 movs r2, 0xF str r2, [sp] movs r2, 0x2 movs r3, 0x4 bl sub_8002EB0 movs r0, 0 strh r0, [r5, 0xA] strh r0, [r5, 0xC] strh r0, [r5, 0xE] strh r0, [r5, 0x10] movs r0, 0x4 bl FadeOutBGMTemporarily movs r0, 0x1 b _080F83C6 .align 2, 0 _080F820C: .4byte gMenuWindowPtr _080F8210: .4byte gWindowConfig_81E6CE4 _080F8214: .4byte gStringVar4 _080F8218: bl IsBGMPausedOrStopped lsls r0, 24 cmp r0, 0 bne _080F8224 b _080F83C8 _080F8224: movs r0, 0x2 b _080F83C6 _080F8228: ldr r4, _080F8240 @ =gSaveBlock1 + 0x2D94 movs r2, 0xE ldrsh r1, [r5, r2] ldr r0, _080F8244 @ =gStringVar4 adds r1, r0 movs r3, 0 ldrb r0, [r1] ldr r7, _080F8248 @ =gUnknown_03005DA0 ldrh r2, [r5, 0x12] ldr r6, _080F824C @ =gUnknown_020388BC b _080F825A .align 2, 0 _080F8240: .4byte gSaveBlock1 + 0x2D94 _080F8244: .4byte gStringVar4 _080F8248: .4byte gUnknown_03005DA0 _080F824C: .4byte gUnknown_020388BC _080F8250: adds r1, 0x1 adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 ldrb r0, [r1] _080F825A: cmp r0, 0 beq _080F826A cmp r0, 0xFE beq _080F826A cmp r0, 0xFC beq _080F826A cmp r0, 0xFF bne _080F8250 _080F826A: cmp r2, 0 bne _080F8278 movs r0, 0x10 ldrsh r1, [r5, r0] lsls r1, 1 adds r0, r4, 0x2 b _080F8282 _080F8278: movs r2, 0x10 ldrsh r1, [r5, r2] lsls r1, 1 adds r0, r4, 0 adds r0, 0xE _080F8282: adds r0, r1 ldrh r0, [r0] movs r1, 0x3 ands r1, r0 lsrs r0, 3 movs r2, 0x1 ands r0, r2 adds r1, r0 strh r1, [r6] movs r1, 0x4 ldrsh r0, [r7, r1] adds r1, r3, 0 bl __divsi3 movs r1, 0 strh r0, [r7, 0x4] lsls r0, 16 cmp r0, 0 bgt _080F82AC movs r0, 0x1 strh r0, [r7, 0x4] _080F82AC: ldrh r0, [r5, 0x10] adds r0, 0x1 strh r0, [r5, 0x10] movs r2, 0xC ldrsh r0, [r5, r2] cmp r0, 0 bne _080F82BE movs r0, 0x3 b _080F82C0 _080F82BE: movs r0, 0x5 _080F82C0: strh r0, [r5, 0x8] strh r1, [r5, 0xA] b _080F83C8 _080F82C6: ldrh r1, [r5, 0xC] movs r2, 0xC ldrsh r0, [r5, r2] cmp r0, 0 bne _080F82D2 b _080F83C4 _080F82D2: subs r0, r1, 0x1 strh r0, [r5, 0xC] b _080F83C8 _080F82D8: ldr r1, _080F8304 @ =gStringVar4 movs r2, 0xE ldrsh r0, [r5, r2] adds r0, r1 ldrb r4, [r0] cmp r4, 0xFF bne _080F830C movs r0, 0xC8 lsls r0, 1 movs r1, 0x6 bl FadeInNewBGM ldr r0, _080F8308 @ =gMPlay_SE2 movs r1, 0x2 bl m4aMPlayFadeOutTemporarily bl EnableBothScriptContexts adds r0, r6, 0 bl DestroyTask b _080F83C8 .align 2, 0 _080F8304: .4byte gStringVar4 _080F8308: .4byte gMPlay_SE2 _080F830C: cmp r4, 0 bne _080F832C ldr r0, _080F8328 @ =gMenuWindowPtr ldr r0, [r0] bl sub_8003418 ldrh r0, [r5, 0xE] adds r0, 0x1 strh r0, [r5, 0xE] movs r0, 0x2 strh r0, [r5, 0x8] strh r4, [r5, 0xC] b _080F83C8 .align 2, 0 _080F8328: .4byte gMenuWindowPtr _080F832C: cmp r4, 0xFE bne _080F8340 ldrh r0, [r5, 0xE] adds r0, 0x1 movs r1, 0 strh r0, [r5, 0xE] movs r0, 0x2 strh r0, [r5, 0x8] strh r1, [r5, 0xC] b _080F83C8 _080F8340: cmp r4, 0xFC bne _080F8354 ldrh r0, [r5, 0xE] adds r0, 0x2 strh r0, [r5, 0xE] movs r0, 0x2 strh r0, [r5, 0x8] movs r0, 0x8 strh r0, [r5, 0xC] b _080F83C8 _080F8354: cmp r4, 0x37 bne _080F8374 movs r4, 0 strb r4, [r0] ldr r0, _080F8370 @ =gMenuWindowPtr ldr r0, [r0] bl sub_8003418 ldrh r0, [r5, 0xE] adds r0, 0x1 strh r0, [r5, 0xE] strh r4, [r5, 0xC] b _080F83C8 .align 2, 0 _080F8370: .4byte gMenuWindowPtr _080F8374: movs r1, 0xA ldrsh r0, [r5, r1] cmp r0, 0x1 beq _080F8394 cmp r0, 0x1 bgt _080F8386 cmp r0, 0 beq _080F838C b _080F83C8 _080F8386: cmp r0, 0x2 beq _080F83A0 b _080F83C8 _080F838C: ldr r0, _080F839C @ =gMenuWindowPtr ldr r0, [r0] bl sub_8003418 _080F8394: ldrh r0, [r5, 0xA] adds r0, 0x1 strh r0, [r5, 0xA] b _080F83C8 .align 2, 0 _080F839C: .4byte gMenuWindowPtr _080F83A0: ldrh r0, [r5, 0xE] adds r0, 0x1 movs r1, 0 strh r0, [r5, 0xE] strh r1, [r5, 0xA] ldr r0, _080F83B4 @ =gUnknown_03005DA0 ldrh r0, [r0, 0x4] strh r0, [r5, 0xC] movs r0, 0x4 b _080F83C6 .align 2, 0 _080F83B4: .4byte gUnknown_03005DA0 _080F83B8: ldrh r0, [r5, 0xC] subs r0, 0x1 strh r0, [r5, 0xC] lsls r0, 16 cmp r0, 0 bne _080F83C8 _080F83C4: movs r0, 0x3 _080F83C6: strh r0, [r5, 0x8] _080F83C8: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80F8184 thumb_func_start sub_80F83D0 sub_80F83D0: @ 80F83D0 push {r4,lr} ldr r4, _080F83F4 @ =0x00004010 bl GetCurrentMauvilleOldMan adds r1, r0, 0 lsls r1, 24 lsrs r1, 8 movs r0, 0x8A lsls r0, 15 adds r1, r0 lsrs r1, 16 adds r0, r4, 0 bl VarSet pop {r4} pop {r0} bx r0 .align 2, 0 _080F83F4: .4byte 0x00004010 thumb_func_end sub_80F83D0 thumb_func_start sub_80F83F8 sub_80F83F8: @ 80F83F8 push {r4,lr} ldr r0, _080F8424 @ =gSaveBlock1 + 0x2D94 movs r2, 0 movs r1, 0x3 strb r1, [r0] strb r2, [r0, 0x1] movs r4, 0 movs r3, 0xFF adds r1, r0, 0x4 movs r2, 0x3 _080F840C: strb r4, [r1] ldrb r0, [r1, 0x4] orrs r0, r3 strb r0, [r1, 0x4] adds r1, 0x1 subs r2, 0x1 cmp r2, 0 bge _080F840C pop {r4} pop {r0} bx r0 .align 2, 0 _080F8424: .4byte gSaveBlock1 + 0x2D94 thumb_func_end sub_80F83F8 thumb_func_start sub_80F8428 sub_80F8428: @ 80F8428 ldr r0, _080F8434 @ =gSaveBlock1 + 0x2D94 movs r2, 0 movs r1, 0x3 strb r1, [r0] strb r2, [r0, 0x1] bx lr .align 2, 0 _080F8434: .4byte gSaveBlock1 + 0x2D94 thumb_func_end sub_80F8428 thumb_func_start sub_80F8438 sub_80F8438: @ 80F8438 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x32 bne _080F8444 movs r0, 0 _080F8444: bl sub_8053108 pop {r1} bx r1 thumb_func_end sub_80F8438 thumb_func_start sub_80F844C sub_80F844C: @ 80F844C push {lr} adds r3, r0, 0 movs r2, 0 ldr r1, _080F8460 @ =gUnknown_083E53E0 _080F8454: ldrb r0, [r1] cmp r0, r3 bne _080F8464 adds r0, r1, 0 b _080F846E .align 2, 0 _080F8460: .4byte gUnknown_083E53E0 _080F8464: adds r1, 0x10 adds r2, 0x1 cmp r2, 0x23 ble _080F8454 ldr r0, _080F8474 @ =gUnknown_083E5610 _080F846E: pop {r1} bx r1 .align 2, 0 _080F8474: .4byte gUnknown_083E5610 thumb_func_end sub_80F844C thumb_func_start sub_80F8478 sub_80F8478: @ 80F8478 push {lr} bl sub_80F844C ldr r0, [r0, 0x4] pop {r1} bx r1 thumb_func_end sub_80F8478 thumb_func_start sub_80F8484 sub_80F8484: @ 80F8484 push {lr} bl sub_80F844C ldr r0, [r0, 0xC] pop {r1} bx r1 thumb_func_end sub_80F8484 thumb_func_start sub_80F8490 sub_80F8490: @ 80F8490 push {lr} bl sub_80F844C ldr r0, [r0, 0x8] pop {r1} bx r1 thumb_func_end sub_80F8490 thumb_func_start sub_80F849C sub_80F849C: @ 80F849C push {lr} movs r1, 0 ldr r2, _080F84C4 @ =gSaveBlock1 + 0x2D94 ldrb r0, [r2, 0x4] cmp r0, 0 beq _080F84BC adds r2, 0x4 _080F84AA: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x3 bhi _080F84BC adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _080F84AA _080F84BC: adds r0, r1, 0 pop {r1} bx r1 .align 2, 0 _080F84C4: .4byte gSaveBlock1 + 0x2D94 thumb_func_end sub_80F849C thumb_func_start sub_80F84C8 sub_80F84C8: @ 80F84C8 lsls r0, 2 ldr r1, _080F84E8 @ =gSaveBlock1 + 0x2DB8 adds r0, r1 ldrb r2, [r0] ldrb r1, [r0, 0x1] lsls r1, 8 orrs r2, r1 ldrb r1, [r0, 0x2] lsls r1, 16 orrs r2, r1 ldrb r0, [r0, 0x3] lsls r0, 24 orrs r2, r0 adds r0, r2, 0 bx lr .align 2, 0 _080F84E8: .4byte gSaveBlock1 + 0x2DB8 thumb_func_end sub_80F84C8 thumb_func_start sub_80F84EC sub_80F84EC: @ 80F84EC lsls r0, 2 ldr r2, _080F8504 @ =gSaveBlock1 + 0x2DB8 adds r0, r2 strb r1, [r0] lsrs r2, r1, 8 strb r2, [r0, 0x1] lsrs r2, r1, 16 strb r2, [r0, 0x2] lsrs r1, 24 strb r1, [r0, 0x3] bx lr .align 2, 0 _080F8504: .4byte gSaveBlock1 + 0x2DB8 thumb_func_end sub_80F84EC thumb_func_start sub_80F8508 sub_80F8508: @ 80F8508 push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080F8528 @ =gSaveBlock1 + 0x2D94 adds r0, 0x4 adds r0, r5, r0 ldrb r0, [r0] bl sub_80F8438 adds r4, r0, 0 adds r0, r5, 0 bl sub_80F84C8 cmp r4, r0 bhi _080F852C movs r0, 0 b _080F852E .align 2, 0 _080F8528: .4byte gSaveBlock1 + 0x2D94 _080F852C: movs r0, 0x1 _080F852E: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80F8508 thumb_func_start sub_80F8534 sub_80F8534: @ 80F8534 push {r4,r5,lr} adds r5, r1, 0 lsls r4, r0, 3 subs r4, r0 ldr r0, _080F855C @ =gSaveBlock1 + 0x2D9C adds r4, r0 adds r0, r5, 0 movs r1, 0xFF movs r2, 0x8 bl memset adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x7 bl memcpy pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F855C: .4byte gSaveBlock1 + 0x2D9C thumb_func_end sub_80F8534 thumb_func_start sub_80F8560 sub_80F8560: @ 80F8560 push {r4-r6,lr} adds r6, r1, 0 lsls r5, r0, 3 subs r5, r0 ldr r0, _080F8594 @ =gSaveBlock1 + 0x2D9C adds r5, r0 adds r0, r6, 0 bl StringLength adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0xFF movs r2, 0x7 bl memset adds r0, r5, 0 adds r1, r6, 0 adds r2, r4, 0 bl StringCopyN pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F8594: .4byte gSaveBlock1 + 0x2D9C thumb_func_end sub_80F8560 thumb_func_start sub_80F8598 sub_80F8598: @ 80F8598 push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 ldr r0, _080F85EC @ =gSaveBlock1 + 0x2D94 adds r0, 0x4 adds r0, r5, r0 strb r6, [r0] ldr r1, _080F85F0 @ =gSaveBlock2 adds r0, r5, 0 bl sub_80F8560 lsls r4, r6, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_80F8438 adds r1, r0, 0 adds r0, r5, 0 bl sub_80F84EC ldr r5, _080F85F4 @ =gStringVar1 adds r0, r4, 0 bl sub_80F8438 adds r1, r0, 0 adds r0, r5, 0 movs r2, 0 movs r3, 0xA bl ConvertIntToDecimalStringN ldr r4, _080F85F8 @ =gStringVar2 adds r0, r6, 0 bl sub_80F8490 adds r1, r0, 0 adds r0, r4, 0 bl StringCopy pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F85EC: .4byte gSaveBlock1 + 0x2D94 _080F85F0: .4byte gSaveBlock2 _080F85F4: .4byte gStringVar1 _080F85F8: .4byte gStringVar2 thumb_func_end sub_80F8598 thumb_func_start sub_80F85FC sub_80F85FC: @ 80F85FC push {r4-r7,lr} adds r7, r0, 0 adds r6, r1, 0 movs r5, 0 cmp r5, r6 bge _080F8612 _080F8608: adds r0, r7, r5 strb r5, [r0] adds r5, 0x1 cmp r5, r6 blt _080F8608 _080F8612: cmp r6, 0 ble _080F8648 adds r5, r6, 0 _080F8618: bl Random lsls r0, 16 lsrs r0, 16 adds r1, r6, 0 bl __modsi3 adds r4, r0, 0 bl Random lsls r0, 16 lsrs r0, 16 adds r1, r6, 0 bl __modsi3 adds r4, r7, r4 ldrb r2, [r4] adds r0, r7, r0 ldrb r1, [r0] strb r1, [r4] strb r2, [r0] subs r5, 0x1 cmp r5, 0 bne _080F8618 _080F8648: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80F85FC thumb_func_start sub_80F8650 sub_80F8650: @ 80F8650 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r7, sp mov r10, sp ldr r0, _080F86D4 @ =gUnknown_083E5620 ldr r0, [r0] lsls r0, 3 lsrs r0, 3 adds r0, 0x3 lsrs r0, 2 lsls r0, 2 mov r1, sp subs r1, r0 mov sp, r1 mov r8, sp mov r0, sp movs r1, 0x24 bl sub_80F85FC movs r5, 0 ldr r0, _080F86D8 @ =gUnknown_083E53E0 mov r9, r0 ldr r3, _080F86DC @ =gSaveBlock1 + 0x2D94 _080F8686: mov r1, r8 adds r0, r1, r5 ldrb r0, [r0] lsls r0, 4 add r0, r9 ldrb r4, [r0] ldrb r6, [r0, 0x1] movs r1, 0 ldrb r0, [r3, 0x4] cmp r0, r4 beq _080F86AC ldr r2, _080F86E0 @ =gSaveBlock1 + 0x2D98 _080F869E: adds r1, 0x1 cmp r1, 0x3 bgt _080F86AC adds r0, r1, r2 ldrb r0, [r0] cmp r0, r4 bne _080F869E _080F86AC: cmp r1, 0x4 bne _080F86E4 adds r0, r4, 0 str r3, [r7] bl sub_80F8438 ldr r3, [r7] cmp r0, r6 bcc _080F86E4 movs r0, 0x1 strb r0, [r3, 0x1] bl sub_80F849C lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 bl sub_80F8598 movs r0, 0x1 b _080F86EC .align 2, 0 _080F86D4: .4byte gUnknown_083E5620 _080F86D8: .4byte gUnknown_083E53E0 _080F86DC: .4byte gSaveBlock1 + 0x2D94 _080F86E0: .4byte gSaveBlock1 + 0x2D98 _080F86E4: adds r5, 0x1 cmp r5, 0x23 ble _080F8686 movs r0, 0 _080F86EC: mov sp, r10 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80F8650 thumb_func_start sub_80F8700 sub_80F8700: @ 80F8700 push {r4-r6,lr} adds r5, r0, 0 ldr r0, _080F8748 @ =gSaveBlock1 + 0x2D94 adds r0, 0x4 adds r0, r5, r0 ldrb r6, [r0] ldr r4, _080F874C @ =gStringVar1 adds r0, r5, 0 bl sub_80F84C8 adds r1, r0, 0 adds r0, r4, 0 movs r2, 0 movs r3, 0xA bl ConvertIntToDecimalStringN ldr r4, _080F8750 @ =gStringVar2 adds r0, r6, 0 bl sub_80F8490 adds r1, r0, 0 adds r0, r4, 0 bl StringCopy ldr r1, _080F8754 @ =gStringVar3 adds r0, r5, 0 bl sub_80F8534 adds r0, r6, 0 bl sub_80F8484 bl ShowFieldMessage pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F8748: .4byte gSaveBlock1 + 0x2D94 _080F874C: .4byte gStringVar1 _080F8750: .4byte gStringVar2 _080F8754: .4byte gStringVar3 thumb_func_end sub_80F8700 thumb_func_start sub_80F8758 sub_80F8758: @ 80F8758 push {r4-r6,lr} bl sub_80F849C adds r3, r0, 0 lsls r3, 25 movs r0, 0x80 lsls r0, 19 adds r3, r0 lsrs r3, 24 movs r0, 0 movs r1, 0 movs r2, 0x19 bl MenuDrawTextWindow movs r4, 0 ldr r1, _080F87BC @ =gSaveBlock1 + 0x2D94 ldrb r0, [r1, 0x4] cmp r0, 0 beq _080F87A4 adds r6, r1, 0x4 movs r5, 0x80 lsls r5, 18 _080F8784: bl sub_80F8478 lsrs r2, r5, 24 movs r1, 0x1 bl MenuPrint movs r1, 0x80 lsls r1, 18 adds r5, r1 adds r4, 0x1 cmp r4, 0x3 bgt _080F87A4 adds r0, r4, r6 ldrb r0, [r0] cmp r0, 0 bne _080F8784 _080F87A4: ldr r0, _080F87C0 @ =gPCText_Cancel lsls r2, r4, 25 movs r1, 0x80 lsls r1, 18 adds r2, r1 lsrs r2, 24 movs r1, 0x1 bl MenuPrint pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F87BC: .4byte gSaveBlock1 + 0x2D94 _080F87C0: .4byte gPCText_Cancel thumb_func_end sub_80F8758 thumb_func_start sub_80F87C4 sub_80F87C4: @ 80F87C4 push {r4-r6,lr} sub sp, 0x8 lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _080F87E4 @ =gTasks adds r4, r0, r1 movs r0, 0x8 ldrsh r5, [r4, r0] cmp r5, 0 beq _080F87E8 cmp r5, 0x1 beq _080F8810 b _080F8862 .align 2, 0 _080F87E4: .4byte gTasks _080F87E8: bl sub_80F8758 bl sub_80F849C adds r3, r0, 0 adds r3, 0x1 lsls r3, 24 lsrs r3, 24 str r5, [sp] movs r0, 0x18 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x2 bl InitMenu ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080F8862 _080F8810: bl ProcessMenuInput lsls r0, 24 asrs r4, r0, 24 movs r0, 0x2 negs r0, r0 cmp r4, r0 beq _080F8862 adds r0, 0x1 cmp r4, r0 beq _080F8832 bl sub_80F849C lsls r0, 24 lsrs r0, 24 cmp r4, r0 bne _080F8840 _080F8832: ldr r1, _080F883C @ =gScriptResult movs r0, 0 strh r0, [r1] b _080F8848 .align 2, 0 _080F883C: .4byte gScriptResult _080F8840: ldr r0, _080F886C @ =gScriptResult strh r5, [r0] ldr r0, _080F8870 @ =gUnknown_03000748 strb r4, [r0] _080F8848: bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0x19 movs r3, 0xC bl MenuZeroFillWindowRect adds r0, r6, 0 bl DestroyTask bl EnableBothScriptContexts _080F8862: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F886C: .4byte gScriptResult _080F8870: .4byte gUnknown_03000748 thumb_func_end sub_80F87C4 thumb_func_start sub_80F8874 sub_80F8874: @ 80F8874 push {lr} ldr r0, _080F8884 @ =sub_80F87C4 movs r1, 0x50 bl CreateTask pop {r0} bx r0 .align 2, 0 _080F8884: .4byte sub_80F87C4 thumb_func_end sub_80F8874 thumb_func_start sub_80F8888 sub_80F8888: @ 80F8888 push {lr} ldr r0, _080F8898 @ =gUnknown_03000748 ldrb r0, [r0] bl sub_80F8700 pop {r0} bx r0 .align 2, 0 _080F8898: .4byte gUnknown_03000748 thumb_func_end sub_80F8888 thumb_func_start sub_80F889C sub_80F889C: @ 80F889C push {lr} bl sub_80F849C lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_80F889C thumb_func_start sub_80F88AC sub_80F88AC: @ 80F88AC push {r4,r5,lr} ldr r1, _080F88C8 @ =gSaveBlock1 + 0x2D94 ldr r5, _080F88CC @ =gUnknown_03000748 ldrb r0, [r5] adds r1, 0x4 adds r1, r0, r1 ldrb r4, [r1] bl sub_80F8508 cmp r0, 0x1 beq _080F88D0 movs r0, 0 b _080F88DA .align 2, 0 _080F88C8: .4byte gSaveBlock1 + 0x2D94 _080F88CC: .4byte gUnknown_03000748 _080F88D0: ldrb r0, [r5] adds r1, r4, 0 bl sub_80F8598 movs r0, 0x1 _080F88DA: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80F88AC thumb_func_start sub_80F88E0 sub_80F88E0: @ 80F88E0 push {lr} ldr r0, _080F88F0 @ =gSaveBlock1 + 0x2D94 ldrb r0, [r0, 0x1] cmp r0, 0 beq _080F88F4 movs r0, 0x1 b _080F88F6 .align 2, 0 _080F88F0: .4byte gSaveBlock1 + 0x2D94 _080F88F4: movs r0, 0 _080F88F6: pop {r1} bx r1 thumb_func_end sub_80F88E0 thumb_func_start sub_80F88FC sub_80F88FC: @ 80F88FC push {lr} bl sub_80F8650 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_80F88FC thumb_func_start sub_80F890C sub_80F890C: @ 80F890C push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 adds r6, r1, 0 lsls r2, 24 lsrs r5, r2, 24 ldr r2, _080F8958 @ =0x02000000 adds r1, r2, 0 adds r1, 0xFF movs r0, 0x2 strb r0, [r1] adds r0, 0xFE adds r1, r2, r0 movs r0, 0x1 strb r0, [r1] movs r0, 0x82 lsls r0, 1 adds r1, r2, r0 ldr r0, _080F895C @ =sub_80EB3FC str r0, [r1] movs r0, 0x84 lsls r0, 1 adds r1, r2, r0 ldr r0, _080F8960 @ =ConvertEasyChatWordsToString str r0, [r1] ldrh r1, [r4, 0x20] adds r0, r1, 0 subs r0, 0x79 lsls r0, 16 lsrs r0, 16 cmp r0, 0xB bhi _080F8964 subs r1, 0x79 adds r0, r2, 0 adds r0, 0xFA strb r1, [r0] b _080F896E .align 2, 0 _080F8958: .4byte 0x02000000 _080F895C: .4byte sub_80EB3FC _080F8960: .4byte ConvertEasyChatWordsToString _080F8964: adds r1, r2, 0 adds r1, 0xFA movs r0, 0 strb r0, [r1] movs r5, 0 _080F896E: ldr r1, _080F8994 @ =0x02000000 movs r2, 0x80 lsls r2, 1 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _080F8980 cmp r0, 0x1 beq _080F899C _080F8980: movs r0, 0x86 lsls r0, 1 adds r2, r1, r0 adds r0, r1, 0 adds r0, 0xFA ldrb r0, [r0] lsls r0, 3 ldr r1, _080F8998 @ =gUnknown_083E5730 b _080F89AC .align 2, 0 _080F8994: .4byte 0x02000000 _080F8998: .4byte gUnknown_083E5730 _080F899C: movs r0, 0x86 lsls r0, 1 adds r2, r1, r0 adds r0, r1, 0 adds r0, 0xFA ldrb r0, [r0] lsls r0, 3 ldr r1, _080F89DC @ =gUnknown_083E57A4 _080F89AC: adds r0, r1 str r0, [r2] ldrh r0, [r4, 0x1E] mov r1, sp bl sub_80A2D64 lsls r0, 16 ldr r1, _080F89E0 @ =0xffff0000 adds r0, r1 movs r1, 0xCD lsls r1, 17 cmp r0, r1 bhi _080F89F8 ldr r0, _080F89E4 @ =0x02000000 adds r1, r0, 0 adds r1, 0xFA ldrb r2, [r1] adds r1, r0, 0 cmp r2, 0x6 beq _080F89E8 cmp r2, 0x9 beq _080F89F0 b _080F89FA .align 2, 0 _080F89DC: .4byte gUnknown_083E57A4 _080F89E0: .4byte 0xffff0000 _080F89E4: .4byte 0x02000000 _080F89E8: adds r2, r1, 0 adds r2, 0xFB movs r0, 0x1 b _080F8A00 _080F89F0: adds r2, r1, 0 adds r2, 0xFB movs r0, 0x2 b _080F8A00 _080F89F8: ldr r1, _080F8A20 @ =0x02000000 _080F89FA: adds r2, r1, 0 adds r2, 0xFB movs r0, 0 _080F8A00: strb r0, [r2] adds r0, r1, 0 adds r0, 0xF4 str r4, [r0] subs r0, 0x8 str r6, [r0] adds r0, 0xC strb r5, [r0] ldr r0, _080F8A24 @ =sub_80F8D50 bl SetMainCallback2 add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F8A20: .4byte 0x02000000 _080F8A24: .4byte sub_80F8D50 thumb_func_end sub_80F890C thumb_func_start sub_80F8A28 sub_80F8A28: @ 80F8A28 push {r4,r5,lr} sub sp, 0x8 ldr r0, _080F8A44 @ =gMain ldr r1, _080F8A48 @ =0x0000043c adds r0, r1 ldrb r0, [r0] cmp r0, 0x12 bls _080F8A3A b _080F8D3C _080F8A3A: lsls r0, 2 ldr r1, _080F8A4C @ =_080F8A50 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F8A44: .4byte gMain _080F8A48: .4byte 0x0000043c _080F8A4C: .4byte _080F8A50 .align 2, 0 _080F8A50: .4byte _080F8A9C .4byte _080F8AB0 .4byte _080F8AC8 .4byte _080F8ACE .4byte _080F8AD4 .4byte _080F8ADA .4byte _080F8B10 .4byte _080F8B1C .4byte _080F8B28 .4byte _080F8B34 .4byte _080F8B3A .4byte _080F8B54 .4byte _080F8B78 .4byte _080F8BA0 .4byte _080F8C14 .4byte _080F8C2C .4byte _080F8C58 .4byte _080F8CBC .4byte _080F8CC6 _080F8A9C: movs r0, 0 bl SetVBlankCallback bl remove_some_task movs r1, 0x80 lsls r1, 19 movs r0, 0 strh r0, [r1] b _080F8D30 _080F8AB0: add r1, sp, 0x4 movs r0, 0 strh r0, [r1] movs r1, 0xE0 lsls r1, 19 ldr r2, _080F8AC4 @ =0x01000200 add r0, sp, 0x4 bl CpuSet b _080F8D30 .align 2, 0 _080F8AC4: .4byte 0x01000200 _080F8AC8: bl ResetPaletteFade b _080F8D30 _080F8ACE: bl ResetTasks b _080F8D30 _080F8AD4: bl ResetSpriteData b _080F8D30 _080F8ADA: bl FreeAllSpritePalettes ldr r0, _080F8B0C @ =REG_BG0HOFS movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x4 strh r1, [r0] subs r0, 0x2 strh r1, [r0] adds r0, 0x4 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x32 strh r1, [r0] adds r0, 0x2 strh r1, [r0] b _080F8D30 .align 2, 0 _080F8B0C: .4byte REG_BG0HOFS _080F8B10: ldr r0, _080F8B18 @ =gWindowConfig_81E6DFC bl SetUpWindowConfig b _080F8D30 .align 2, 0 _080F8B18: .4byte gWindowConfig_81E6DFC _080F8B1C: ldr r0, _080F8B24 @ =gWindowConfig_81E6DFC bl MultistepInitMenuWindowBegin b _080F8D30 .align 2, 0 _080F8B24: .4byte gWindowConfig_81E6DFC _080F8B28: bl MultistepInitMenuWindowContinue cmp r0, 0 beq _080F8B32 b _080F8D30 _080F8B32: b _080F8D3C _080F8B34: bl MenuZeroFillScreen b _080F8D30 _080F8B3A: mov r0, sp adds r0, 0x6 movs r1, 0x1 strh r1, [r0] ldr r1, _080F8B4C @ =0x06004800 ldr r2, _080F8B50 @ =0x01000400 bl CpuSet b _080F8D30 .align 2, 0 _080F8B4C: .4byte 0x06004800 _080F8B50: .4byte 0x01000400 _080F8B54: ldr r2, _080F8B70 @ =gMailGraphicsTable ldr r0, _080F8B74 @ =0x02000000 adds r0, 0xFA ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r0, [r0] movs r1, 0 movs r2, 0x20 bl LoadPalette b _080F8D30 .align 2, 0 _080F8B70: .4byte gMailGraphicsTable _080F8B74: .4byte 0x02000000 _080F8B78: ldr r2, _080F8B94 @ =gMailGraphicsTable ldr r0, _080F8B98 @ =0x02000000 adds r0, 0xFA ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r2, 0x8 adds r0, r2 ldr r0, [r0] ldr r1, _080F8B9C @ =0x06004000 bl LZ77UnCompVram b _080F8D30 .align 2, 0 _080F8B94: .4byte gMailGraphicsTable _080F8B98: .4byte 0x02000000 _080F8B9C: .4byte 0x06004000 _080F8BA0: ldr r5, _080F8C00 @ =gMailGraphicsTable ldr r4, _080F8C04 @ =0x02000000 adds r4, 0xFA ldrb r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r1, r5, 0x4 adds r0, r1 ldr r0, [r0] movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r3, _080F8C08 @ =gPlttBufferUnfaded ldrb r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r5 ldrh r0, [r0, 0x10] movs r2, 0xF1 lsls r2, 1 adds r1, r3, r2 strh r0, [r1] ldrb r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r5 ldrh r1, [r0, 0x12] adds r2, 0xE adds r0, r3, r2 strh r1, [r0] ldr r1, _080F8C0C @ =gUnknown_083E562C ldr r2, _080F8C10 @ =gSaveBlock2 ldrb r0, [r2, 0x8] lsls r0, 2 adds r0, r1 ldrh r0, [r0] strh r0, [r3, 0x14] ldrb r0, [r2, 0x8] lsls r0, 2 adds r1, 0x2 adds r0, r1 ldrh r0, [r0] strh r0, [r3, 0x16] b _080F8D30 .align 2, 0 _080F8C00: .4byte gMailGraphicsTable _080F8C04: .4byte 0x02000000 _080F8C08: .4byte gPlttBufferUnfaded _080F8C0C: .4byte gUnknown_083E562C _080F8C10: .4byte gSaveBlock2 _080F8C14: ldr r0, _080F8C28 @ =0x02000000 adds r0, 0xF8 ldrb r0, [r0] cmp r0, 0 bne _080F8C20 b _080F8D30 _080F8C20: bl sub_80F8DA0 b _080F8D30 .align 2, 0 _080F8C28: .4byte 0x02000000 _080F8C2C: ldr r0, _080F8C4C @ =0x02000000 adds r0, 0xF8 ldrb r0, [r0] cmp r0, 0 beq _080F8C3A bl sub_80F8E80 _080F8C3A: ldr r0, _080F8C50 @ =sub_80F8F18 bl SetVBlankCallback ldr r2, _080F8C54 @ =gPaletteFade ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] b _080F8D30 .align 2, 0 _080F8C4C: .4byte 0x02000000 _080F8C50: .4byte sub_80F8F18 _080F8C54: .4byte gPaletteFade _080F8C58: ldr r5, _080F8C7C @ =0x02000000 adds r0, r5, 0 adds r0, 0xF4 ldr r0, [r0] ldrh r0, [r0, 0x1E] bl sub_809D4A8 lsls r0, 16 lsrs r4, r0, 16 adds r0, r5, 0 adds r0, 0xFB ldrb r0, [r0] cmp r0, 0x1 beq _080F8C80 cmp r0, 0x2 beq _080F8C98 b _080F8D30 .align 2, 0 _080F8C7C: .4byte 0x02000000 _080F8C80: adds r0, r4, 0 bl sub_809D580 ldr r1, _080F8C94 @ =SpriteCallbackDummy movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r2, 0x60 b _080F8CA8 .align 2, 0 _080F8C94: .4byte SpriteCallbackDummy _080F8C98: adds r0, r4, 0 bl sub_809D580 ldr r1, _080F8CB8 @ =SpriteCallbackDummy movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r2, 0x28 _080F8CA8: movs r3, 0x80 bl sub_809D3A4 adds r1, r5, 0 adds r1, 0xFC strb r0, [r1] b _080F8D30 .align 2, 0 _080F8CB8: .4byte SpriteCallbackDummy _080F8CBC: bl sub_8055870 cmp r0, 0x1 bne _080F8D30 b _080F8D3C _080F8CC6: ldr r1, _080F8D14 @ =REG_BG0CNT ldr r2, _080F8D18 @ =0x00009f08 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080F8D1C @ =0x00000801 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080F8D20 @ =0x00000902 adds r0, r2, 0 strh r0, [r1] adds r1, 0x44 movs r0, 0 strh r0, [r1] subs r1, 0x50 movs r2, 0xBA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r2, _080F8D24 @ =gPaletteFade ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] ldr r0, _080F8D28 @ =0x02000000 adds r0, 0xF0 ldr r1, _080F8D2C @ =sub_80F8F58 str r1, [r0] movs r0, 0x1 b _080F8D3E .align 2, 0 _080F8D14: .4byte REG_BG0CNT _080F8D18: .4byte 0x00009f08 _080F8D1C: .4byte 0x00000801 _080F8D20: .4byte 0x00000902 _080F8D24: .4byte gPaletteFade _080F8D28: .4byte 0x02000000 _080F8D2C: .4byte sub_80F8F58 _080F8D30: ldr r1, _080F8D48 @ =gMain ldr r0, _080F8D4C @ =0x0000043c adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080F8D3C: movs r0, 0 _080F8D3E: add sp, 0x8 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080F8D48: .4byte gMain _080F8D4C: .4byte 0x0000043c thumb_func_end sub_80F8A28 thumb_func_start sub_80F8D50 sub_80F8D50: @ 80F8D50 push {lr} _080F8D52: bl sub_80F8A28 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080F8D6C ldr r0, _080F8D68 @ =sub_80F8F2C bl SetMainCallback2 b _080F8D78 .align 2, 0 _080F8D68: .4byte sub_80F8F2C _080F8D6C: bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080F8D52 _080F8D78: pop {r0} bx r0 thumb_func_end sub_80F8D50 thumb_func_start sub_80F8D7C sub_80F8D7C: @ 80F8D7C push {r4,lr} adds r4, r0, 0 bl StringCopy adds r0, r4, 0 bl sub_814A568 adds r0, r4, 0 bl StringLength lsls r0, 16 lsrs r0, 16 adds r4, r0 adds r0, r4, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_80F8D7C thumb_func_start sub_80F8DA0 sub_80F8DA0: @ 80F8DA0 push {r4-r7,lr} mov r7, r8 push {r7} movs r6, 0 movs r5, 0 ldr r2, _080F8E3C @ =0x02000000 movs r0, 0x86 lsls r0, 1 adds r1, r2, r0 ldr r0, [r1] ldrb r0, [r0] cmp r5, r0 bcs _080F8E04 mov r8, r2 adds r7, r1, 0 _080F8DBE: lsls r0, r5, 3 subs r0, r5 lsls r0, 2 subs r0, r5 add r0, r8 mov r1, r8 adds r1, 0xF4 lsls r2, r6, 1 ldr r1, [r1] adds r1, r2 ldr r2, [r7] ldr r2, [r2, 0x4] lsls r4, r5, 2 adds r2, r4, r2 ldr r2, [r2] lsls r2, 28 lsrs r2, 30 movs r3, 0x1 bl ConvertEasyChatWordsToString ldr r1, [r7] ldr r0, [r1, 0x4] adds r4, r0 ldr r0, [r4] lsls r0, 28 lsrs r0, 30 adds r0, r6, r0 lsls r0, 24 lsrs r6, r0, 24 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 ldrb r1, [r1] cmp r5, r1 bcc _080F8DBE _080F8E04: ldr r2, _080F8E40 @ =0x020000d8 adds r4, r2, 0 subs r4, 0xD8 adds r0, r2, 0 adds r0, 0x28 ldrb r0, [r0] cmp r0, 0 bne _080F8E48 ldr r1, [r2, 0x1C] adds r1, 0x12 adds r0, r2, 0 bl sub_80F8D7C adds r2, r0, 0 ldr r1, _080F8E44 @ =gOtherText_From bl StringCopy ldr r0, _080F8E40 @ =0x020000d8 bl StringLength movs r2, 0x86 lsls r2, 1 adds r1, r4, r2 ldr r1, [r1] ldrb r1, [r1, 0x2] subs r1, r0 b _080F8E6A .align 2, 0 _080F8E3C: .4byte 0x02000000 _080F8E40: .4byte 0x020000d8 _080F8E44: .4byte gOtherText_From _080F8E48: ldr r1, _080F8E7C @ =gOtherText_From adds r0, r2, 0 bl StringCopy adds r2, r0, 0 adds r0, r4, 0 adds r0, 0xF4 ldr r1, [r0] adds r1, 0x12 adds r0, r2, 0 bl sub_80F8D7C movs r1, 0x86 lsls r1, 1 adds r0, r4, r1 ldr r0, [r0] ldrb r1, [r0, 0x2] _080F8E6A: adds r0, r4, 0 adds r0, 0xF9 strb r1, [r0] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F8E7C: .4byte gOtherText_From thumb_func_end sub_80F8DA0 thumb_func_start sub_80F8E80 sub_80F8E80: @ 80F8E80 push {r4-r7,lr} mov r7, r8 push {r7} movs r6, 0 movs r4, 0 ldr r1, _080F8F10 @ =0x02000000 movs r0, 0x86 lsls r0, 1 adds r2, r1, r0 ldr r0, [r2] ldrb r0, [r0] cmp r4, r0 bcs _080F8EF6 mov r8, r1 adds r7, r2, 0 _080F8E9E: lsls r0, r4, 3 subs r0, r4 lsls r0, 2 subs r0, r4 mov r1, r8 adds r5, r0, r1 ldrb r0, [r5] cmp r0, 0xFF beq _080F8EE8 cmp r0, 0 beq _080F8EE8 ldr r2, [r7] ldr r1, [r2, 0x4] lsls r0, r4, 2 adds r0, r1 ldr r0, [r0] lsls r3, r0, 24 lsrs r3, 28 lsls r0, 30 lsrs r0, 30 adds r0, r6, r0 lsls r0, 24 lsrs r6, r0, 24 ldrb r2, [r2, 0x3] lsrs r1, r2, 4 adds r1, r3 lsls r2, 28 lsrs r2, 28 adds r2, r6, r2 lsls r2, 24 lsrs r2, 24 adds r0, r5, 0 bl MenuPrint adds r0, r6, 0x2 lsls r0, 24 lsrs r6, r0, 24 _080F8EE8: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 ldr r0, [r7] ldrb r0, [r0] cmp r4, r0 bcc _080F8E9E _080F8EF6: ldr r0, _080F8F14 @ =0x020000d8 adds r1, r0, 0 adds r1, 0x21 ldrb r1, [r1] ldr r2, [r0, 0x34] ldrb r2, [r2, 0x1] bl MenuPrint pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F8F10: .4byte 0x02000000 _080F8F14: .4byte 0x020000d8 thumb_func_end sub_80F8E80 thumb_func_start sub_80F8F18 sub_80F8F18: @ 80F8F18 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_80F8F18 thumb_func_start sub_80F8F2C sub_80F8F2C: @ 80F8F2C push {r4,lr} ldr r4, _080F8F54 @ =0x02000000 adds r0, r4, 0 adds r0, 0xFB ldrb r0, [r0] cmp r0, 0 beq _080F8F42 bl AnimateSprites bl BuildOamBuffer _080F8F42: adds r0, r4, 0 adds r0, 0xF0 ldr r0, [r0] bl _call_via_r0 pop {r4} pop {r0} bx r0 .align 2, 0 _080F8F54: .4byte 0x02000000 thumb_func_end sub_80F8F2C thumb_func_start sub_80F8F58 sub_80F8F58: @ 80F8F58 push {lr} bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _080F8F6C ldr r0, _080F8F70 @ =0x02000000 adds r0, 0xF0 ldr r1, _080F8F74 @ =sub_80F8F78 str r1, [r0] _080F8F6C: pop {r0} bx r0 .align 2, 0 _080F8F70: .4byte 0x02000000 _080F8F74: .4byte sub_80F8F78 thumb_func_end sub_80F8F58 thumb_func_start sub_80F8F78 sub_80F8F78: @ 80F8F78 push {lr} sub sp, 0x4 ldr r0, _080F8FA8 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _080F8FA0 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _080F8FAC @ =0x02000000 adds r0, 0xF0 ldr r1, _080F8FB0 @ =sub_80F8FB4 str r1, [r0] _080F8FA0: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080F8FA8: .4byte gMain _080F8FAC: .4byte 0x02000000 _080F8FB0: .4byte sub_80F8FB4 thumb_func_end sub_80F8F78 thumb_func_start sub_80F8FB4 sub_80F8FB4: @ 80F8FB4 push {r4,lr} bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _080F9012 ldr r4, _080F9018 @ =0x02000000 adds r0, r4, 0 adds r0, 0xEC ldr r0, [r0] bl SetMainCallback2 adds r0, r4, 0 adds r0, 0xFB ldrb r0, [r0] cmp r0, 0x2 bgt _080F9002 cmp r0, 0x1 blt _080F9002 adds r0, r4, 0 adds r0, 0xF4 ldr r0, [r0] ldrh r0, [r0, 0x1E] bl sub_809D4A8 lsls r0, 16 lsrs r0, 16 bl sub_809D608 adds r0, r4, 0 adds r0, 0xFC ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080F901C @ =gSprites adds r0, r1 bl sub_809D510 _080F9002: ldr r0, _080F9018 @ =0x02000000 movs r2, 0x88 lsls r2, 1 movs r1, 0 bl memset bl ResetPaletteFade _080F9012: pop {r4} pop {r0} bx r0 .align 2, 0 _080F9018: .4byte 0x02000000 _080F901C: .4byte gSprites thumb_func_end sub_80F8FB4 thumb_func_start sub_80F9020 sub_80F9020: @ 80F9020 push {r4,r5,lr} ldr r4, _080F9054 @ =gBG1TilemapBuffer movs r5, 0x80 lsls r5, 4 adds r0, r4, 0 movs r1, 0 adds r2, r5, 0 bl memset adds r0, r4, r5 movs r1, 0 adds r2, r5, 0 bl memset movs r0, 0x80 lsls r0, 5 adds r4, r0 adds r0, r4, 0 movs r1, 0 adds r2, r5, 0 bl memset pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F9054: .4byte gBG1TilemapBuffer thumb_func_end sub_80F9020 thumb_func_start sav2_get_text_speed sav2_get_text_speed: @ 80F9058 push {r4,r5,lr} sub sp, 0x8 adds r5, r0, 0 lsls r1, 16 lsrs r4, r1, 16 bl MenuDisplayMessageBox cmp r4, 0 beq _080F907C ldr r0, _080F908C @ =gBG1TilemapBuffer movs r1, 0x4 str r1, [sp] str r4, [sp, 0x4] movs r1, 0x2 movs r2, 0xF movs r3, 0x1A bl sub_80A3FA0 _080F907C: adds r0, r5, 0 bl sub_8072044 add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F908C: .4byte gBG1TilemapBuffer thumb_func_end sav2_get_text_speed thumb_func_start sub_80F9090 sub_80F9090: @ 80F9090 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl MenuUpdateWindowText lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080F90AC ldr r0, _080F90B4 @ =gUnknown_0300074C ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 _080F90AC: pop {r4} pop {r0} bx r0 .align 2, 0 _080F90B4: .4byte gUnknown_0300074C thumb_func_end sub_80F9090 thumb_func_start DisplayItemMessageOnField DisplayItemMessageOnField: @ 80F90B8 push {r4,r5,lr} adds r4, r0, 0 adds r0, r1, 0 adds r5, r2, 0 adds r1, r3, 0 lsls r4, 24 lsrs r4, 24 lsls r1, 16 lsrs r1, 16 bl sav2_get_text_speed ldr r0, _080F90E8 @ =gUnknown_0300074C str r5, [r0] ldr r1, _080F90EC @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080F90F0 @ =sub_80F9090 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F90E8: .4byte gUnknown_0300074C _080F90EC: .4byte gTasks _080F90F0: .4byte sub_80F9090 thumb_func_end DisplayItemMessageOnField thumb_func_start Task_CallYesOrNoCallback Task_CallYesOrNoCallback: @ 80F90F4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _080F911A cmp r1, 0 bgt _080F9114 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080F9130 b _080F9140 _080F9114: cmp r1, 0x1 beq _080F9130 b _080F9140 _080F911A: movs r0, 0x5 bl PlaySE ldr r0, _080F912C @ =gUnknown_020388C4 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 b _080F9140 .align 2, 0 _080F912C: .4byte gUnknown_020388C4 _080F9130: movs r0, 0x5 bl PlaySE ldr r0, _080F9148 @ =gUnknown_020388C4 ldr r1, [r0, 0x4] adds r0, r4, 0 bl _call_via_r1 _080F9140: pop {r4} pop {r0} bx r0 .align 2, 0 _080F9148: .4byte gUnknown_020388C4 thumb_func_end Task_CallYesOrNoCallback thumb_func_start sub_80F914C sub_80F914C: @ 80F914C lsls r0, 24 lsrs r0, 24 ldr r3, _080F916C @ =gUnknown_020388C4 ldr r2, [r1, 0x4] ldr r1, [r1] str r1, [r3] str r2, [r3, 0x4] ldr r2, _080F9170 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _080F9174 @ =Task_CallYesOrNoCallback str r0, [r1] bx lr .align 2, 0 _080F916C: .4byte gUnknown_020388C4 _080F9170: .4byte gTasks _080F9174: .4byte Task_CallYesOrNoCallback thumb_func_end sub_80F914C thumb_func_start brm_trade_1 brm_trade_1: @ 80F9178 push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 lsls r1, 24 lsrs r4, r1, 24 lsls r2, 24 lsrs r7, r2, 24 lsls r3, 24 lsrs r6, r3, 24 ldr r1, _080F91C0 @ =gUnknown_083E5A18 mov r0, sp movs r2, 0x4 bl memcpy cmp r4, 0xFF beq _080F91CC mov r0, sp strb r4, [r0, 0x2] ldr r4, _080F91C4 @ =gStringVar4 adds r0, r4, 0 mov r1, sp bl StringCopy adds r0, r4, 0 adds r1, r5, 0 bl StringAppend mov r1, sp ldr r0, _080F91C8 @ =gMenuWindowPtr ldr r0, [r0] ldrb r0, [r0, 0x6] strb r0, [r1, 0x2] adds r0, r4, 0 bl StringAppend b _080F91D4 .align 2, 0 _080F91C0: .4byte gUnknown_083E5A18 _080F91C4: .4byte gStringVar4 _080F91C8: .4byte gMenuWindowPtr _080F91CC: ldr r0, _080F91E8 @ =gStringVar4 adds r1, r5, 0 bl StringCopy _080F91D4: ldr r0, _080F91E8 @ =gStringVar4 adds r1, r7, 0 adds r2, r6, 0 bl MenuPrint add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F91E8: .4byte gStringVar4 thumb_func_end brm_trade_1 thumb_func_start unref_sub_80F91EC unref_sub_80F91EC: @ 80F91EC push {r4-r7,lr} mov r7, r8 push {r7} mov r12, r0 adds r4, r2, 0 adds r2, r3, 0 ldr r0, [sp, 0x18] ldr r3, [sp, 0x1C] lsls r1, 24 lsrs r1, 24 mov r8, r1 lsls r4, 24 lsrs r4, 24 lsls r2, 24 lsrs r2, 24 lsls r0, 24 lsrs r7, r0, 24 lsls r3, 24 lsrs r5, r3, 24 ldr r6, _080F9234 @ =gStringVar1 adds r0, r6, 0 mov r1, r12 adds r3, r4, 0 bl ConvertIntToDecimalStringN mov r0, r8 cmp r0, 0xFF beq _080F9238 adds r0, r6, 0 mov r1, r8 adds r2, r7, 0 adds r3, r5, 0 bl brm_trade_1 b _080F9242 .align 2, 0 _080F9234: .4byte gStringVar1 _080F9238: adds r0, r6, 0 adds r1, r7, 0 adds r2, r5, 0 bl MenuPrint _080F9242: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end unref_sub_80F91EC thumb_func_start unref_sub_80F924C unref_sub_80F924C: @ 80F924C push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 adds r4, r2, 0 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 lsls r4, 24 lsrs r4, 24 ldr r1, _080F9280 @ =gUnknown_083E5A1C mov r0, sp movs r2, 0x2 bl memcpy mov r0, sp adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl brm_trade_1 add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F9280: .4byte gUnknown_083E5A1C thumb_func_end unref_sub_80F924C thumb_func_start sub_80F9284 sub_80F9284: @ 80F9284 push {lr} ldr r0, _080F92A0 @ =gSaveBlock2 ldrb r0, [r0, 0x13] cmp r0, 0x1 bne _080F92B6 ldr r0, _080F92A4 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _080F92A8 movs r0, 0x1 b _080F92B8 .align 2, 0 _080F92A0: .4byte gSaveBlock2 _080F92A4: .4byte gMain _080F92A8: movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _080F92B6 movs r0, 0x2 b _080F92B8 _080F92B6: movs r0, 0 _080F92B8: pop {r1} bx r1 thumb_func_end sub_80F9284 thumb_func_start sub_80F92BC sub_80F92BC: @ 80F92BC push {lr} ldr r0, _080F92D8 @ =gSaveBlock2 ldrb r0, [r0, 0x13] cmp r0, 0x1 bne _080F92EE ldr r0, _080F92DC @ =gMain ldrh r1, [r0, 0x30] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _080F92E0 movs r0, 0x1 b _080F92F0 .align 2, 0 _080F92D8: .4byte gSaveBlock2 _080F92DC: .4byte gMain _080F92E0: movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _080F92EE movs r0, 0x2 b _080F92F0 _080F92EE: movs r0, 0 _080F92F0: pop {r1} bx r1 thumb_func_end sub_80F92BC thumb_func_start sub_80F92F4 sub_80F92F4: @ 80F92F4 push {lr} lsls r0, 16 lsrs r0, 16 cmp r0, 0xAF bne _080F9314 ldr r0, _080F930C @ =gSaveBlock1 ldrh r1, [r0, 0x4] ldr r0, _080F9310 @ =0x00001919 cmp r1, r0 bne _080F9314 movs r0, 0 b _080F9316 .align 2, 0 _080F930C: .4byte gSaveBlock1 _080F9310: .4byte 0x00001919 _080F9314: movs r0, 0x1 _080F9316: pop {r1} bx r1 thumb_func_end sub_80F92F4 thumb_func_start sub_80F931C sub_80F931C: @ 80F931C push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 bl is_c1_link_related_active cmp r0, 0x1 bne _080F933C adds r0, r4, 0 bl itemid_is_mail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080F933C movs r0, 0 b _080F933E _080F933C: movs r0, 0x1 _080F933E: pop {r4} pop {r1} bx r1 thumb_func_end sub_80F931C thumb_func_start sub_80F9344 sub_80F9344: @ 80F9344 push {lr} bl is_c1_link_related_active cmp r0, 0x1 beq _080F9356 ldr r0, _080F935C @ =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0x1 bne _080F9360 _080F9356: movs r0, 0x1 b _080F9362 .align 2, 0 _080F935C: .4byte gReceivedRemoteLinkPlayers _080F9360: movs r0, 0 _080F9362: pop {r1} bx r1 thumb_func_end sub_80F9344 thumb_func_start sub_80F9368 sub_80F9368: @ 80F9368 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 movs r0, 0x80 lsls r0, 19 movs r1, 0 strh r1, [r0] adds r0, 0xE strh r1, [r0] subs r0, 0x2 strh r1, [r0] subs r0, 0x2 strh r1, [r0] subs r0, 0x2 strh r1, [r0] adds r0, 0x14 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] movs r3, 0xC0 lsls r3, 19 movs r4, 0xC0 lsls r4, 9 add r0, sp, 0x4 mov r8, r0 mov r2, sp movs r6, 0 ldr r1, _080F9430 @ =0x040000d4 movs r5, 0x80 lsls r5, 5 ldr r7, _080F9434 @ =0x81000800 movs r0, 0x81 lsls r0, 24 mov r12, r0 _080F93C6: strh r6, [r2] mov r0, sp str r0, [r1] str r3, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r3, r5 subs r4, r5 cmp r4, r5 bhi _080F93C6 strh r6, [r2] mov r2, sp str r2, [r1] str r3, [r1, 0x4] lsrs r0, r4, 1 mov r2, r12 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0xE0 lsls r0, 19 movs r3, 0x80 lsls r3, 3 movs r4, 0 str r4, [sp, 0x4] ldr r2, _080F9430 @ =0x040000d4 mov r1, r8 str r1, [r2] str r0, [r2, 0x4] lsrs r0, r3, 2 movs r1, 0x85 lsls r1, 24 orrs r0, r1 str r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r1, 0xA0 lsls r1, 19 mov r0, sp strh r4, [r0] str r0, [r2] str r1, [r2, 0x4] lsrs r3, 1 movs r0, 0x81 lsls r0, 24 orrs r3, r0 str r3, [r2, 0x8] ldr r0, [r2, 0x8] add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F9430: .4byte 0x040000d4 _080F9434: .4byte 0x81000800 thumb_func_end sub_80F9368 thumb_func_start sub_80F9438 sub_80F9438: @ 80F9438 push {lr} movs r0, 0 bl SetVBlankCallback movs r0, 0 bl SetHBlankCallback pop {r0} bx r0 thumb_func_end sub_80F9438 thumb_func_start sub_80F944C sub_80F944C: @ 80F944C push {r4,lr} movs r2, 0 ldr r4, _080F9478 @ =gUnknown_020388C0 movs r3, 0xFF _080F9454: adds r0, r2, r4 ldrb r1, [r0] orrs r1, r3 strb r1, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _080F9454 movs r0, 0x6 bl FreeSpritePaletteByTag ldr r0, _080F947C @ =gUnknown_083E5968 bl LoadSpritePalette pop {r4} pop {r0} bx r0 .align 2, 0 _080F9478: .4byte gUnknown_020388C0 _080F947C: .4byte gUnknown_083E5968 thumb_func_end sub_80F944C thumb_func_start sub_80F9480 sub_80F9480: @ 80F9480 push {r4,lr} adds r3, r0, 0 lsls r1, 24 lsrs r1, 24 movs r2, 0 cmp r2, r1 bcs _080F949E movs r4, 0xFF _080F9490: adds r0, r3, r2 strb r4, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, r1 bcc _080F9490 _080F949E: pop {r4} pop {r0} bx r0 thumb_func_end sub_80F9480 thumb_func_start sub_80F94A4 sub_80F94A4: @ 80F94A4 push {r4,r5,lr} adds r5, r1, 0 lsls r0, 24 lsrs r4, r0, 24 lsls r2, 16 lsrs r1, r2, 16 lsls r3, 16 lsrs r2, r3, 16 cmp r4, 0x5 bhi _080F94E8 ldrb r0, [r5] cmp r0, 0xFF bne _080F94D0 ldr r0, _080F94F0 @ =gSpriteTemplate_83E5A00 lsls r1, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 movs r3, 0 bl CreateSprite strb r0, [r5] _080F94D0: subs r0, r4, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080F94F4 @ =gSprites adds r0, r1 adds r1, r4, 0 bl StartSpriteAnim _080F94E8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F94F0: .4byte gSpriteTemplate_83E5A00 _080F94F4: .4byte gSprites thumb_func_end sub_80F94A4 thumb_func_start sub_80F94F8 sub_80F94F8: @ 80F94F8 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0xFF beq _080F9516 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080F951C @ =gSprites adds r0, r1 bl DestroySprite movs r0, 0xFF strb r0, [r4] _080F9516: pop {r4} pop {r0} bx r0 .align 2, 0 _080F951C: .4byte gSprites thumb_func_end sub_80F94F8 thumb_func_start sub_80F9520 sub_80F9520: @ 80F9520 push {r4,r5,lr} adds r5, r0, 0 movs r4, 0 _080F9526: adds r0, r5, r4 bl sub_80F94F8 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x7 bls _080F9526 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80F9520 thumb_func_start sub_80F953C sub_80F953C: @ 80F953C push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 16 lsrs r3, r1, 16 lsls r2, 16 lsrs r2, 16 cmp r4, 0x3 bls _080F9550 b _080F9790 _080F9550: cmp r4, 0x1 beq _080F95F6 cmp r4, 0x1 bgt _080F9564 cmp r4, 0 beq _080F9578 ldr r5, _080F9560 @ =gUnknown_020388C0 b _080F977A .align 2, 0 _080F9560: .4byte gUnknown_020388C0 _080F9564: cmp r4, 0x2 bne _080F956A b _080F967C _080F956A: cmp r4, 0x3 bne _080F9570 b _080F96F8 _080F9570: ldr r5, _080F9574 @ =gUnknown_020388C0 b _080F977A .align 2, 0 _080F9574: .4byte gUnknown_020388C0 _080F9578: ldr r0, _080F95D8 @ =gUnknown_020388C0 ldrb r1, [r0] adds r5, r0, 0 cmp r1, 0xFF beq _080F9584 b _080F977A _080F9584: ldr r0, _080F95DC @ =gSpriteTemplate_83E59D0 lsls r1, r3, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 movs r3, 0 bl CreateSprite strb r0, [r5] ldr r3, _080F95E0 @ =gSprites ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldr r1, _080F95E4 @ =0x0000ffff strh r1, [r0, 0x32] ldrb r0, [r5, 0x1] cmp r0, 0xFF beq _080F95E8 ldrb r0, [r5] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r2, [r5, 0x1] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r3 movs r2, 0x26 ldrsh r0, [r0, r2] negs r0, r0 strh r0, [r1, 0x26] ldrb r0, [r5] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r2, [r5, 0x1] b _080F9650 .align 2, 0 _080F95D8: .4byte gUnknown_020388C0 _080F95DC: .4byte gSpriteTemplate_83E59D0 _080F95E0: .4byte gSprites _080F95E4: .4byte 0x0000ffff _080F95E8: ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r4, [r0, 0x34] b _080F977A _080F95F6: ldr r0, _080F9660 @ =gUnknown_020388C0 ldrb r1, [r0, 0x1] adds r5, r0, 0 cmp r1, 0xFF beq _080F9602 b _080F977A _080F9602: ldr r0, _080F9664 @ =gSpriteTemplate_83E59D0 lsls r1, r3, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 movs r3, 0 bl CreateSprite strb r0, [r5, 0x1] ldr r3, _080F9668 @ =gSprites ldrb r1, [r5, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r4, [r0, 0x32] ldrb r0, [r5] cmp r0, 0xFF beq _080F966C ldrb r0, [r5, 0x1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r2, [r5] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r3 movs r2, 0x26 ldrsh r0, [r0, r2] negs r0, r0 strh r0, [r1, 0x26] ldrb r0, [r5, 0x1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r2, [r5] _080F9650: lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x34] strh r0, [r1, 0x34] b _080F977A .align 2, 0 _080F9660: .4byte gUnknown_020388C0 _080F9664: .4byte gSpriteTemplate_83E59D0 _080F9668: .4byte gSprites _080F966C: ldrb r0, [r5, 0x1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 movs r0, 0 strh r0, [r1, 0x34] b _080F977A _080F967C: ldr r0, _080F96E4 @ =gUnknown_020388C0 ldrb r1, [r0, 0x2] adds r5, r0, 0 cmp r1, 0xFF bne _080F977A ldr r0, _080F96E8 @ =gSpriteTemplate_83E59E8 lsls r1, r3, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 movs r3, 0 bl CreateSprite strb r0, [r5, 0x2] ldr r3, _080F96EC @ =gSprites ldrb r1, [r5, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldr r1, _080F96F0 @ =0x0000ffff strh r1, [r0, 0x2E] ldrb r0, [r5, 0x3] cmp r0, 0xFF beq _080F96F4 ldrb r0, [r5, 0x2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r2, [r5, 0x3] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r3 movs r2, 0x24 ldrsh r0, [r0, r2] negs r0, r0 strh r0, [r1, 0x24] ldrb r0, [r5, 0x2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r2, [r5, 0x3] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x30] b _080F9778 .align 2, 0 _080F96E4: .4byte gUnknown_020388C0 _080F96E8: .4byte gSpriteTemplate_83E59E8 _080F96EC: .4byte gSprites _080F96F0: .4byte 0x0000ffff _080F96F4: ldrb r0, [r5, 0x2] b _080F976E _080F96F8: ldr r0, _080F9760 @ =gUnknown_020388C0 ldrb r1, [r0, 0x3] adds r5, r0, 0 cmp r1, 0xFF bne _080F977A ldr r0, _080F9764 @ =gSpriteTemplate_83E59E8 lsls r1, r3, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 movs r3, 0 bl CreateSprite strb r0, [r5, 0x3] ldr r3, _080F9768 @ =gSprites ldrb r1, [r5, 0x3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0x1 strh r1, [r0, 0x2E] ldrb r0, [r5, 0x2] cmp r0, 0xFF beq _080F976C ldrb r0, [r5, 0x3] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r2, [r5, 0x2] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r3 movs r2, 0x24 ldrsh r0, [r0, r2] negs r0, r0 strh r0, [r1, 0x24] ldrb r0, [r5, 0x3] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r2, [r5, 0x2] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x30] b _080F9778 .align 2, 0 _080F9760: .4byte gUnknown_020388C0 _080F9764: .4byte gSpriteTemplate_83E59E8 _080F9768: .4byte gSprites _080F976C: ldrb r0, [r5, 0x3] _080F976E: lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 movs r0, 0 _080F9778: strh r0, [r1, 0x30] _080F977A: adds r0, r4, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080F9798 @ =gSprites adds r0, r1 movs r1, 0x1 ands r1, r4 bl StartSpriteAnim _080F9790: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F9798: .4byte gSprites thumb_func_end sub_80F953C thumb_func_start sub_80F979C sub_80F979C: @ 80F979C push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 24 lsrs r3, r1, 24 cmp r2, 0x3 bhi _080F97D4 ldr r0, _080F97D8 @ =gUnknown_020388C0 adds r1, r2, r0 ldrb r0, [r1] cmp r0, 0xFF beq _080F97D4 ldr r2, _080F97DC @ =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x3E movs r0, 0x1 adds r2, r3, 0 ands r2, r0 lsls r2, 2 ldrb r3, [r1] movs r0, 0x5 negs r0, r0 ands r0, r3 orrs r0, r2 strb r0, [r1] _080F97D4: pop {r0} bx r0 .align 2, 0 _080F97D8: .4byte gUnknown_020388C0 _080F97DC: .4byte gSprites thumb_func_end sub_80F979C thumb_func_start SetBgTilemapBuffer SetBgTilemapBuffer: @ 80F97E0 push {r4,lr} lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x3 bhi _080F9808 ldr r0, _080F9810 @ =gUnknown_020388C0 adds r4, r1, r0 ldrb r0, [r4] cmp r0, 0xFF beq _080F9808 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080F9814 @ =gSprites adds r0, r1 bl DestroySprite movs r0, 0xFF strb r0, [r4] _080F9808: pop {r4} pop {r0} bx r0 .align 2, 0 _080F9810: .4byte gUnknown_020388C0 _080F9814: .4byte gSprites thumb_func_end SetBgTilemapBuffer thumb_func_start InitMenuInUpperLeftCornerPlaySoundWhenAPressed InitMenuInUpperLeftCornerPlaySoundWhenAPressed: @ 80F9818 push {lr} ldr r0, _080F9824 @ =gUnknown_083E5968 bl LoadSpritePalette pop {r0} bx r0 .align 2, 0 _080F9824: .4byte gUnknown_083E5968 thumb_func_end InitMenuInUpperLeftCornerPlaySoundWhenAPressed thumb_func_start BuyMenuFreeMemory BuyMenuFreeMemory: @ 80F9828 push {lr} movs r0, 0x6 bl FreeSpritePaletteByTag pop {r0} bx r0 thumb_func_end BuyMenuFreeMemory thumb_func_start sub_80F9834 sub_80F9834: @ 80F9834 push {lr} adds r2, r0, 0 movs r1, 0x30 ldrsh r0, [r2, r1] cmp r0, 0 bne _080F9848 ldrh r0, [r2, 0x2E] ldrh r1, [r2, 0x24] adds r0, r1 strh r0, [r2, 0x24] _080F9848: movs r1, 0x34 ldrsh r0, [r2, r1] cmp r0, 0 bne _080F9858 ldrh r0, [r2, 0x32] ldrh r1, [r2, 0x26] adds r0, r1 strh r0, [r2, 0x26] _080F9858: ldrh r1, [r2, 0x30] adds r1, 0x1 movs r3, 0 strh r1, [r2, 0x30] ldrh r0, [r2, 0x34] adds r0, 0x1 strh r0, [r2, 0x34] lsls r1, 16 asrs r1, 16 cmp r1, 0x2 ble _080F9870 strh r3, [r2, 0x30] _080F9870: movs r1, 0x34 ldrsh r0, [r2, r1] cmp r0, 0x2 ble _080F987A strh r3, [r2, 0x34] _080F987A: movs r0, 0x24 ldrsh r1, [r2, r0] cmp r1, 0x8 beq _080F988A movs r0, 0x8 negs r0, r0 cmp r1, r0 bne _080F988C _080F988A: strh r3, [r2, 0x24] _080F988C: movs r0, 0x26 ldrsh r1, [r2, r0] cmp r1, 0x8 beq _080F989C movs r0, 0x8 negs r0, r0 cmp r1, r0 bne _080F98A0 _080F989C: movs r0, 0 strh r0, [r2, 0x26] _080F98A0: pop {r0} bx r0 thumb_func_end sub_80F9834 thumb_func_start sub_80F98A4 sub_80F98A4: @ 80F98A4 push {lr} lsls r0, 24 lsrs r1, r0, 24 ldr r0, _080F98D0 @ =gUnknown_020388C0 adds r3, r1, r0 ldrb r0, [r3] cmp r0, 0xFF beq _080F98CA cmp r1, 0x3 bhi _080F98CA ldr r2, _080F98D4 @ =gSprites adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _080F98D8 @ =SpriteCallbackDummy str r1, [r0] _080F98CA: pop {r0} bx r0 .align 2, 0 _080F98D0: .4byte gUnknown_020388C0 _080F98D4: .4byte gSprites _080F98D8: .4byte SpriteCallbackDummy thumb_func_end sub_80F98A4 thumb_func_start sub_80F98DC sub_80F98DC: @ 80F98DC push {lr} lsls r0, 24 lsrs r1, r0, 24 ldr r0, _080F9908 @ =gUnknown_020388C0 adds r3, r1, r0 ldrb r0, [r3] cmp r0, 0xFF beq _080F9902 cmp r1, 0x3 bhi _080F9902 ldr r2, _080F990C @ =gSprites adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _080F9910 @ =sub_80F9834 str r1, [r0] _080F9902: pop {r0} bx r0 .align 2, 0 _080F9908: .4byte gUnknown_020388C0 _080F990C: .4byte gSprites _080F9910: .4byte sub_80F9834 thumb_func_end sub_80F98DC thumb_func_start sub_80F9914 sub_80F9914: @ 80F9914 push {r4,lr} lsls r0, 24 lsrs r1, r0, 24 ldr r0, _080F9964 @ =gUnknown_020388C0 adds r4, r1, r0 ldrb r0, [r4] cmp r0, 0xFF beq _080F995C cmp r1, 0x3 bhi _080F995C ldr r3, _080F9968 @ =gSprites adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r2, 0 strh r2, [r0, 0x24] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r2, [r0, 0x26] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r2, [r0, 0x30] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r2, [r0, 0x34] _080F995C: pop {r4} pop {r0} bx r0 .align 2, 0 _080F9964: .4byte gUnknown_020388C0 _080F9968: .4byte gSprites thumb_func_end sub_80F9914 thumb_func_start sub_80F996C sub_80F996C: @ 80F996C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_80F98A4 adds r0, r4, 0 bl sub_80F9914 pop {r4} pop {r0} bx r0 thumb_func_end sub_80F996C thumb_func_start sub_80F9988 sub_80F9988: @ 80F9988 push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 24 lsrs r3, r1, 24 ldr r0, _080F99C4 @ =gUnknown_020388C0 adds r1, r2, r0 ldrb r0, [r1] cmp r0, 0xFF beq _080F99BE cmp r2, 0x3 bhi _080F99BE ldr r2, _080F99C8 @ =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 movs r0, 0x3 adds r2, r3, 0 ands r2, r0 lsls r2, 2 ldrb r3, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r2 strb r0, [r1, 0x5] _080F99BE: pop {r0} bx r0 .align 2, 0 _080F99C4: .4byte gUnknown_020388C0 _080F99C8: .4byte gSprites thumb_func_end sub_80F9988 thumb_func_start sub_80F99CC sub_80F99CC: @ 80F99CC push {lr} sub sp, 0x4 bl ScriptContext2_Enable ldr r0, _080F9A04 @ =sub_80F9A8C movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080F9A08 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0 movs r0, 0x2 strh r0, [r1, 0x8] subs r0, 0x3 str r2, [sp] movs r1, 0 movs r3, 0x10 bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080F9A04: .4byte sub_80F9A8C _080F9A08: .4byte gTasks thumb_func_end sub_80F99CC thumb_func_start sub_80F9A0C sub_80F9A0C: @ 80F9A0C push {lr} sub sp, 0x4 bl ScriptContext2_Enable ldr r0, _080F9A44 @ =sub_80F9A8C movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080F9A48 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0 movs r0, 0x3 strh r0, [r1, 0x8] subs r0, 0x4 str r2, [sp] movs r1, 0 movs r3, 0x10 bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080F9A44: .4byte sub_80F9A8C _080F9A48: .4byte gTasks thumb_func_end sub_80F9A0C thumb_func_start sub_80F9A4C sub_80F9A4C: @ 80F9A4C push {lr} sub sp, 0x4 bl ScriptContext2_Enable ldr r0, _080F9A84 @ =sub_80F9A8C movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080F9A88 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0 movs r0, 0x7 strh r0, [r1, 0x8] subs r0, 0x8 str r2, [sp] movs r1, 0 movs r3, 0x10 bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080F9A84: .4byte sub_80F9A8C _080F9A88: .4byte gTasks thumb_func_end sub_80F9A4C thumb_func_start sub_80F9A8C sub_80F9A8C: @ 80F9A8C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r2, _080F9AC4 @ =gPaletteFade ldrb r1, [r2, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080F9ABE ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] ldr r1, _080F9AC8 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldrb r0, [r0, 0x8] movs r1, 0 bl OpenPartyMenu adds r0, r4, 0 bl DestroyTask _080F9ABE: pop {r4} pop {r0} bx r0 .align 2, 0 _080F9AC4: .4byte gPaletteFade _080F9AC8: .4byte gTasks thumb_func_end sub_80F9A8C thumb_func_start sub_80F9ACC sub_80F9ACC: @ 80F9ACC push {r4,r5,lr} ldr r1, _080F9AEC @ =0x0201b000 movs r2, 0x99 lsls r2, 2 adds r0, r1, r2 movs r2, 0 ldrsh r0, [r0, r2] adds r4, r1, 0 cmp r0, 0x7 bls _080F9AE2 b _080F9BF6 _080F9AE2: lsls r0, 2 ldr r1, _080F9AF0 @ =_080F9AF4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F9AEC: .4byte 0x0201b000 _080F9AF0: .4byte _080F9AF4 .align 2, 0 _080F9AF4: .4byte _080F9B14 .4byte _080F9B54 .4byte _080F9B5A .4byte _080F9B6E .4byte _080F9B98 .4byte _080F9B9E .4byte _080F9BB0 .4byte _080F9BC8 _080F9B14: ldr r0, _080F9B3C @ =0x00000266 adds r5, r4, r0 movs r1, 0 ldrsh r3, [r5, r1] ldr r0, _080F9B40 @ =gPlayerPartyCount ldrb r0, [r0] cmp r3, r0 bge _080F9B48 movs r2, 0x98 lsls r2, 2 adds r0, r4, r2 ldrb r0, [r0] ldrb r1, [r5] movs r2, 0x64 muls r2, r3 ldr r3, _080F9B44 @ =gPlayerParty adds r2, r3 bl sub_806D90C b _080F9BF0 .align 2, 0 _080F9B3C: .4byte 0x00000266 _080F9B40: .4byte gPlayerPartyCount _080F9B44: .4byte gPlayerParty _080F9B48: movs r0, 0 strh r0, [r5] movs r0, 0x99 lsls r0, 2 adds r1, r4, r0 b _080F9BBC _080F9B54: bl sub_806DA98 b _080F9BB4 _080F9B5A: movs r1, 0x98 lsls r1, 2 adds r0, r4, r1 ldrb r0, [r0] bl sub_806DC34 movs r2, 0x99 lsls r2, 2 adds r1, r4, r2 b _080F9BBC _080F9B6E: movs r1, 0x98 lsls r1, 2 adds r0, r4, r1 ldrb r0, [r0] ldr r2, _080F9B94 @ =0x00000266 adds r5, r4, r2 ldrb r1, [r5] bl sub_806BD58 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080F9BF0 movs r0, 0 strh r0, [r5] movs r0, 0x99 lsls r0, 2 adds r1, r4, r0 b _080F9BBC .align 2, 0 _080F9B94: .4byte 0x00000266 _080F9B98: bl sub_806E334 b _080F9BB4 _080F9B9E: bl sub_806E0C4 ldr r1, _080F9BAC @ =0x0201b000 movs r0, 0x99 lsls r0, 2 adds r1, r0 b _080F9BBC .align 2, 0 _080F9BAC: .4byte 0x0201b000 _080F9BB0: bl sub_80F9C00 _080F9BB4: ldr r1, _080F9BC4 @ =0x0201b000 movs r2, 0x99 lsls r2, 2 adds r1, r2 _080F9BBC: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080F9BF6 .align 2, 0 _080F9BC4: .4byte 0x0201b000 _080F9BC8: ldr r0, _080F9BEC @ =0x00000266 adds r5, r4, r0 ldrb r0, [r5] bl sub_806B58C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080F9BF0 movs r1, 0 strh r1, [r5] movs r2, 0x99 lsls r2, 2 adds r0, r4, r2 strh r1, [r0] movs r0, 0x1 b _080F9BF8 .align 2, 0 _080F9BEC: .4byte 0x00000266 _080F9BF0: ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] _080F9BF6: movs r0, 0 _080F9BF8: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80F9ACC thumb_func_start sub_80F9C00 sub_80F9C00: @ 80F9C00 push {r4,lr} movs r4, 0 b _080F9C58 _080F9C06: movs r0, 0x64 muls r0, r4 ldr r1, _080F9C24 @ =gPlayerParty adds r0, r1 bl sub_80AE47C lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080F9C52 lsls r0, 2 ldr r1, _080F9C28 @ =_080F9C2C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F9C24: .4byte gPlayerParty _080F9C28: .4byte _080F9C2C .align 2, 0 _080F9C2C: .4byte _080F9C40 .4byte _080F9C4A .4byte _080F9C4A .4byte _080F9C40 .4byte _080F9C40 _080F9C40: adds r0, r4, 0 movs r1, 0x7E bl sub_806BC3C b _080F9C52 _080F9C4A: adds r0, r4, 0 movs r1, 0x70 bl sub_806BC3C _080F9C52: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _080F9C58: ldr r0, _080F9C68 @ =gPlayerPartyCount ldrb r0, [r0] cmp r4, r0 bcc _080F9C06 pop {r4} pop {r0} bx r0 .align 2, 0 _080F9C68: .4byte gPlayerPartyCount thumb_func_end sub_80F9C00 thumb_func_start sub_80F9C6C sub_80F9C6C: @ 80F9C6C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080F9C94 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080F9CD8 adds r0, r4, 0 bl sub_806BD80 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 beq _080F9C98 cmp r0, 0x2 beq _080F9CC0 b _080F9CD8 .align 2, 0 _080F9C94: .4byte gPaletteFade _080F9C98: movs r0, 0x5 bl PlaySE adds r0, r4, 0 bl sub_806CA38 ldr r1, _080F9CB8 @ =gUnknown_02038694 strb r0, [r1] ldr r2, _080F9CBC @ =gUnknown_0202E8CC ldrb r0, [r1] strh r0, [r2] adds r0, r4, 0 bl sub_8123138 b _080F9CD8 .align 2, 0 _080F9CB8: .4byte gUnknown_02038694 _080F9CBC: .4byte gUnknown_0202E8CC _080F9CC0: movs r0, 0x5 bl PlaySE ldr r1, _080F9CE0 @ =gUnknown_02038694 movs r0, 0xFF strb r0, [r1] ldr r1, _080F9CE4 @ =gUnknown_0202E8CC movs r0, 0xFF strh r0, [r1] adds r0, r4, 0 bl sub_8123138 _080F9CD8: pop {r4} pop {r0} bx r0 .align 2, 0 _080F9CE0: .4byte gUnknown_02038694 _080F9CE4: .4byte gUnknown_0202E8CC thumb_func_end sub_80F9C6C thumb_func_start sub_80F9CE8 sub_80F9CE8: @ 80F9CE8 push {r4,r5,lr} ldr r1, _080F9D08 @ =0x0201b000 movs r2, 0x99 lsls r2, 2 adds r0, r1, r2 movs r2, 0 ldrsh r0, [r0, r2] adds r4, r1, 0 cmp r0, 0x7 bls _080F9CFE b _080F9E12 _080F9CFE: lsls r0, 2 ldr r1, _080F9D0C @ =_080F9D10 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F9D08: .4byte 0x0201b000 _080F9D0C: .4byte _080F9D10 .align 2, 0 _080F9D10: .4byte _080F9D30 .4byte _080F9D70 .4byte _080F9D76 .4byte _080F9D8A .4byte _080F9DB4 .4byte _080F9DBA .4byte _080F9DCC .4byte _080F9DE4 _080F9D30: ldr r0, _080F9D58 @ =0x00000266 adds r5, r4, r0 movs r1, 0 ldrsh r3, [r5, r1] ldr r0, _080F9D5C @ =gPlayerPartyCount ldrb r0, [r0] cmp r3, r0 bge _080F9D64 movs r2, 0x98 lsls r2, 2 adds r0, r4, r2 ldrb r0, [r0] ldrb r1, [r5] movs r2, 0x64 muls r2, r3 ldr r3, _080F9D60 @ =gPlayerParty adds r2, r3 bl sub_806D90C b _080F9E0C .align 2, 0 _080F9D58: .4byte 0x00000266 _080F9D5C: .4byte gPlayerPartyCount _080F9D60: .4byte gPlayerParty _080F9D64: movs r0, 0 strh r0, [r5] movs r0, 0x99 lsls r0, 2 adds r1, r4, r0 b _080F9DD8 _080F9D70: bl sub_806DA98 b _080F9DD0 _080F9D76: movs r1, 0x98 lsls r1, 2 adds r0, r4, r1 ldrb r0, [r0] bl sub_806DC34 movs r2, 0x99 lsls r2, 2 adds r1, r4, r2 b _080F9DD8 _080F9D8A: movs r1, 0x98 lsls r1, 2 adds r0, r4, r1 ldrb r0, [r0] ldr r2, _080F9DB0 @ =0x00000266 adds r5, r4, r2 ldrb r1, [r5] bl sub_806BD58 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080F9E0C movs r0, 0 strh r0, [r5] movs r0, 0x99 lsls r0, 2 adds r1, r4, r0 b _080F9DD8 .align 2, 0 _080F9DB0: .4byte 0x00000266 _080F9DB4: bl sub_806E334 b _080F9DD0 _080F9DBA: bl sub_806E0C4 ldr r1, _080F9DC8 @ =0x0201b000 movs r0, 0x99 lsls r0, 2 adds r1, r0 b _080F9DD8 .align 2, 0 _080F9DC8: .4byte 0x0201b000 _080F9DCC: bl sub_80F9E1C _080F9DD0: ldr r1, _080F9DE0 @ =0x0201b000 movs r2, 0x99 lsls r2, 2 adds r1, r2 _080F9DD8: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080F9E12 .align 2, 0 _080F9DE0: .4byte 0x0201b000 _080F9DE4: ldr r0, _080F9E08 @ =0x00000266 adds r5, r4, r0 ldrb r0, [r5] bl sub_806B58C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080F9E0C movs r1, 0 strh r1, [r5] movs r2, 0x99 lsls r2, 2 adds r0, r4, r2 strh r1, [r0] movs r0, 0x1 b _080F9E14 .align 2, 0 _080F9E08: .4byte 0x00000266 _080F9E0C: ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] _080F9E12: movs r0, 0 _080F9E14: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80F9CE8 thumb_func_start sub_80F9E1C sub_80F9E1C: @ 80F9E1C push {r4,lr} movs r4, 0 b _080F9E52 _080F9E22: movs r0, 0x64 muls r0, r4 ldr r1, _080F9E40 @ =gPlayerParty adds r0, r1 bl sub_8040574 lsls r0, 24 cmp r0, 0 bne _080F9E44 adds r0, r4, 0 movs r1, 0x9A bl sub_806BC3C b _080F9E4C .align 2, 0 _080F9E40: .4byte gPlayerParty _080F9E44: adds r0, r4, 0 movs r1, 0x8C bl sub_806BC3C _080F9E4C: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _080F9E52: ldr r0, _080F9E60 @ =gPlayerPartyCount ldrb r0, [r0] cmp r4, r0 bcc _080F9E22 pop {r4} pop {r0} bx r0 .align 2, 0 _080F9E60: .4byte gPlayerPartyCount thumb_func_end sub_80F9E1C thumb_func_start sub_80F9E64 sub_80F9E64: @ 80F9E64 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r0, _080F9E8C @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080F9EE2 adds r0, r6, 0 bl sub_806BD80 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 beq _080F9E90 cmp r0, 0x2 beq _080F9ED0 b _080F9EE2 .align 2, 0 _080F9E8C: .4byte gPaletteFade _080F9E90: movs r0, 0x5 bl PlaySE ldr r4, _080F9EC4 @ =gUnknown_0202E8CC adds r0, r6, 0 bl sub_806CA38 lsls r0, 24 lsrs r0, 24 strh r0, [r4] ldr r5, _080F9EC8 @ =gUnknown_0202E8CE ldrh r1, [r4] movs r0, 0x64 muls r0, r1 ldr r1, _080F9ECC @ =gPlayerParty adds r0, r1 bl sub_8040574 lsls r0, 24 lsrs r0, 24 strh r0, [r5] adds r0, r6, 0 bl sub_8123138 b _080F9EE2 .align 2, 0 _080F9EC4: .4byte gUnknown_0202E8CC _080F9EC8: .4byte gUnknown_0202E8CE _080F9ECC: .4byte gPlayerParty _080F9ED0: movs r0, 0x5 bl PlaySE ldr r1, _080F9EE8 @ =gUnknown_0202E8CC movs r0, 0xFF strh r0, [r1] adds r0, r6, 0 bl sub_8123138 _080F9EE2: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F9EE8: .4byte gUnknown_0202E8CC thumb_func_end sub_80F9E64 thumb_func_start sub_80F9EEC sub_80F9EEC: @ 80F9EEC push {r4,lr} sub sp, 0x4 ldr r0, _080F9F20 @ =gPlayerParty ldr r1, _080F9F24 @ =gUnknown_0202E8CC ldrb r1, [r1] ldr r2, _080F9F28 @ =gPlayerPartyCount ldrb r2, [r2] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldr r3, _080F9F2C @ =c2_exit_to_overworld_2_switch movs r4, 0 str r4, [sp] bl sub_809D9F0 ldr r1, _080F9F30 @ =0x02018000 movs r0, 0x3 strb r0, [r1, 0x8] ldr r1, _080F9F34 @ =gUnknown_0300485C ldr r0, _080F9F38 @ =sub_8080990 str r0, [r1] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080F9F20: .4byte gPlayerParty _080F9F24: .4byte gUnknown_0202E8CC _080F9F28: .4byte gPlayerPartyCount _080F9F2C: .4byte c2_exit_to_overworld_2_switch _080F9F30: .4byte 0x02018000 _080F9F34: .4byte gUnknown_0300485C _080F9F38: .4byte sub_8080990 thumb_func_end sub_80F9EEC thumb_func_start sub_80F9F3C sub_80F9F3C: @ 80F9F3C push {r4,r5,lr} ldr r1, _080F9F78 @ =gScriptResult movs r0, 0 strh r0, [r1] movs r4, 0 adds r5, r1, 0 _080F9F48: ldr r0, _080F9F7C @ =gUnknown_0202E8CC ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080F9F80 @ =gPlayerParty adds r0, r1 adds r1, r4, 0 adds r1, 0xD bl GetMonData cmp r0, 0 beq _080F9F66 ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] _080F9F66: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _080F9F48 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F9F78: .4byte gScriptResult _080F9F7C: .4byte gUnknown_0202E8CC _080F9F80: .4byte gPlayerParty thumb_func_end sub_80F9F3C thumb_func_start sub_80F9F84 sub_80F9F84: @ 80F9F84 push {r4,r5,lr} ldr r0, _080F9FC4 @ =gUnknown_0202E8CC ldrh r1, [r0] movs r0, 0x64 adds r5, r1, 0 muls r5, r0 ldr r0, _080F9FC8 @ =gPlayerParty adds r5, r0 ldr r0, _080F9FCC @ =gUnknown_0202E8CE ldrh r1, [r0] adds r1, 0xD adds r0, r5, 0 bl GetMonData adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r1, _080F9FD0 @ =gStringVar1 adds r0, r5, 0 bl GetMonNickname ldr r0, _080F9FD4 @ =gStringVar2 movs r1, 0xD muls r1, r4 ldr r2, _080F9FD8 @ =gMoveNames adds r1, r2 bl StringCopy pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F9FC4: .4byte gUnknown_0202E8CC _080F9FC8: .4byte gPlayerParty _080F9FCC: .4byte gUnknown_0202E8CE _080F9FD0: .4byte gStringVar1 _080F9FD4: .4byte gStringVar2 _080F9FD8: .4byte gMoveNames thumb_func_end sub_80F9F84 thumb_func_start sub_80F9FDC sub_80F9FDC: @ 80F9FDC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 mov r8, r0 adds r5, r1, 0 adds r4, r2, 0 lsls r5, 24 lsrs r5, 24 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 adds r0, 0xD str r0, [sp, 0x8] mov r0, r8 ldr r1, [sp, 0x8] bl GetMonData mov r1, sp adds r1, 0x2 str r1, [sp, 0x14] strh r0, [r1] adds r3, r4, 0 adds r3, 0xD str r3, [sp, 0xC] mov r0, r8 adds r1, r3, 0 bl GetMonData mov r1, sp strh r0, [r1] adds r7, r5, 0 adds r7, 0x11 str r7, [sp, 0x10] mov r0, r8 adds r1, r7, 0 bl GetMonData mov r1, sp adds r1, 0x5 str r1, [sp, 0x18] strb r0, [r1] adds r3, r4, 0 adds r3, 0x11 str r3, [sp, 0x1C] mov r0, r8 adds r1, r3, 0 bl GetMonData add r7, sp, 0x4 mov r10, r7 strb r0, [r7] mov r0, r8 movs r1, 0x15 bl GetMonData mov r6, sp adds r6, 0x6 strb r0, [r6] ldr r1, _080FA0D8 @ =gUnknown_08208238 adds r0, r5, r1 ldrb r0, [r0] mov r9, r0 ldrb r0, [r6] adds r2, r0, 0 mov r3, r9 ands r2, r3 lsls r5, 1 asrs r2, r5 lsls r2, 24 lsrs r2, 24 adds r1, r4, r1 ldrb r3, [r1] adds r1, r0, 0 ands r1, r3 lsls r4, 1 asrs r1, r4 lsls r1, 24 lsrs r1, 24 mov r7, r9 bics r0, r7 strb r0, [r6] ldrb r0, [r6] bics r0, r3 strb r0, [r6] lsls r2, r4 lsls r1, r5 adds r2, r1 ldrb r0, [r6] orrs r0, r2 strb r0, [r6] mov r0, r8 ldr r1, [sp, 0x8] mov r2, sp bl SetMonData mov r0, r8 ldr r1, [sp, 0xC] ldr r2, [sp, 0x14] bl SetMonData mov r0, r8 ldr r1, [sp, 0x10] mov r2, r10 bl SetMonData mov r0, r8 ldr r1, [sp, 0x1C] ldr r2, [sp, 0x18] bl SetMonData mov r0, r8 movs r1, 0x15 adds r2, r6, 0 bl SetMonData add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FA0D8: .4byte gUnknown_08208238 thumb_func_end sub_80F9FDC thumb_func_start sub_80FA0DC sub_80FA0DC: @ 80FA0DC push {r4-r6,lr} mov r6, r8 push {r6} ldr r0, _080FA13C @ =gUnknown_0202E8CC mov r8, r0 ldrh r0, [r0] movs r6, 0x64 muls r0, r6 ldr r5, _080FA140 @ =gPlayerParty adds r0, r5 ldr r4, _080FA144 @ =gUnknown_0202E8CE ldrb r2, [r4] movs r1, 0 bl SetMonMoveSlot mov r1, r8 ldrh r0, [r1] muls r0, r6 adds r0, r5 ldrb r1, [r4] bl RemoveMonPPBonus ldrh r4, [r4] cmp r4, 0x2 bhi _080FA130 _080FA10E: ldr r0, _080FA13C @ =gUnknown_0202E8CC ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080FA140 @ =gPlayerParty adds r0, r1 lsls r1, r4, 24 lsrs r1, 24 adds r4, 0x1 lsls r2, r4, 24 lsrs r2, 24 bl sub_80F9FDC lsls r4, 16 lsrs r4, 16 cmp r4, 0x2 bls _080FA10E _080FA130: pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080FA13C: .4byte gUnknown_0202E8CC _080FA140: .4byte gPlayerParty _080FA144: .4byte gUnknown_0202E8CE thumb_func_end sub_80FA0DC thumb_func_start sub_80FA148 sub_80FA148: @ 80FA148 push {r4,lr} ldr r0, _080FA170 @ =gUnknown_0202E8CC ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080FA174 @ =gPlayerParty adds r0, r1 ldr r4, _080FA178 @ =gScriptResult movs r1, 0 strh r1, [r4] movs r1, 0x2D bl GetMonData cmp r0, 0 beq _080FA16A movs r0, 0x1 strh r0, [r4] _080FA16A: pop {r4} pop {r0} bx r0 .align 2, 0 _080FA170: .4byte gUnknown_0202E8CC _080FA174: .4byte gPlayerParty _080FA178: .4byte gScriptResult thumb_func_end sub_80FA148 thumb_func_start sub_80FA17C sub_80FA17C: @ 80FA17C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r6, 0 ldr r7, _080FA1B4 @ =gSaveBlock1 ldr r0, _080FA1B8 @ =0x00002dd4 adds r0, r7 mov r9, r0 movs r1, 0x1 mov r8, r1 _080FA192: movs r0, 0xA bl sub_80EB72C lsls r4, r6, 3 adds r5, r4, r7 ldr r2, _080FA1BC @ =0x00002dd8 adds r1, r5, r2 strh r0, [r1] bl Random mov r1, r8 ands r1, r0 cmp r1, 0 beq _080FA1C0 movs r0, 0xC b _080FA1C2 .align 2, 0 _080FA1B4: .4byte gSaveBlock1 _080FA1B8: .4byte 0x00002dd4 _080FA1BC: .4byte 0x00002dd8 _080FA1C0: movs r0, 0xD _080FA1C2: bl sub_80EB72C ldr r2, _080FA214 @ =0x00002dda adds r1, r5, r2 strh r0, [r1] bl Random adds r3, r4, r7 mov r2, r8 ands r2, r0 ldr r5, _080FA218 @ =0x00002dd5 adds r3, r5 lsls r2, 6 ldrb r0, [r3] movs r5, 0x41 negs r5, r5 adds r1, r5, 0 ands r0, r1 orrs r0, r2 strb r0, [r3] mov r1, r9 adds r0, r4, r1 bl sub_80FA740 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x4 bls _080FA192 ldr r0, _080FA21C @ =gSaveBlock1 + 0x2DD4 movs r1, 0x5 movs r2, 0 bl sub_80FA46C pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FA214: .4byte 0x00002dda _080FA218: .4byte 0x00002dd5 _080FA21C: .4byte gSaveBlock1 + 0x2DD4 thumb_func_end sub_80FA17C thumb_func_start sub_80FA220 sub_80FA220: @ 80FA220 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _080FA236 b _080FA34E _080FA236: lsls r0, r1, 2 adds r0, r1 str r0, [sp] movs r0, 0 mov r10, r0 movs r1, 0x7F mov r9, r1 movs r2, 0x80 negs r2, r2 mov r8, r2 _080FA24A: ldr r2, [sp] mov r4, r10 lsls r0, r4, 3 ldr r1, _080FA28C @ =gSaveBlock1 + 0x2DD4 adds r5, r0, r1 ldrb r6, [r5, 0x1] movs r0, 0x40 ands r0, r6 cmp r0, 0 bne _080FA2A0 ldrb r4, [r5] lsls r3, r4, 25 lsrs r1, r3, 25 lsls r0, r2, 16 lsrs r0, 16 cmp r1, r0 bcc _080FA290 adds r0, r1, 0 subs r0, r2 mov r2, r9 ands r0, r2 mov r1, r8 ands r1, r4 orrs r1, r0 strb r1, [r5] movs r0, 0x7F ands r1, r0 cmp r1, 0 bne _080FA336 movs r0, 0x40 orrs r0, r6 b _080FA334 .align 2, 0 _080FA28C: .4byte gSaveBlock1 + 0x2DD4 _080FA290: lsrs r0, r3, 25 subs r2, r0 mov r0, r8 ands r0, r4 strb r0, [r5] movs r0, 0x40 orrs r0, r6 strb r0, [r5, 0x1] _080FA2A0: ldrb r7, [r5] lsls r0, r7, 25 lsrs r0, 25 adds r4, r0, r2 ldrh r0, [r5] lsls r6, r0, 18 lsls r0, r4, 16 lsrs r0, 16 lsrs r1, r6, 25 cmp r0, r1 bls _080FA310 adds r0, r4, 0 bl __umodsi3 adds r3, r0, 0 lsrs r1, r6, 25 adds r0, r4, 0 str r3, [sp, 0x4] bl __udivsi3 adds r4, r0, 0 movs r0, 0x1 eors r4, r0 ands r4, r0 lsls r2, r4, 6 ldrb r0, [r5, 0x1] movs r4, 0x41 negs r4, r4 adds r1, r4, 0 ands r0, r1 orrs r0, r2 strb r0, [r5, 0x1] movs r1, 0x40 ands r0, r1 ldr r3, [sp, 0x4] cmp r0, 0 beq _080FA2FA adds r1, r3, 0 mov r0, r9 ands r1, r0 mov r0, r8 ands r0, r7 orrs r0, r1 strb r0, [r5] b _080FA336 _080FA2FA: ldrh r0, [r5] lsls r0, 18 lsrs r0, 25 subs r0, r3 mov r1, r9 ands r0, r1 mov r1, r8 ands r1, r7 orrs r1, r0 strb r1, [r5] b _080FA336 _080FA310: mov r2, r9 ands r4, r2 mov r0, r8 ands r0, r7 orrs r0, r4 strb r0, [r5] lsls r0, 25 ldrh r1, [r5] lsls r1, 18 lsrs r0, 25 lsrs r1, 25 cmp r0, r1 bne _080FA336 ldrb r0, [r5, 0x1] movs r4, 0x41 negs r4, r4 adds r1, r4, 0 ands r0, r1 _080FA334: strb r0, [r5, 0x1] _080FA336: mov r0, r10 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r10, r0 cmp r0, 0x4 bls _080FA24A ldr r0, _080FA360 @ =gSaveBlock1 + 0x2DD4 movs r1, 0x5 movs r2, 0 bl sub_80FA46C _080FA34E: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FA360: .4byte gSaveBlock1 + 0x2DD4 thumb_func_end sub_80FA220 thumb_func_start sub_80FA364 sub_80FA364: @ 80FA364 push {r4-r7,lr} sub sp, 0x8 adds r4, r0, 0 movs r0, 0 movs r1, 0 str r0, [sp] str r1, [sp, 0x4] adds r0, r4, 0 bl sub_80FA7C8 lsls r0, 24 cmp r0, 0 bne _080FA462 ldr r5, _080FA3B4 @ =0x00000833 adds r0, r5, 0 bl FlagGet lsls r0, 24 cmp r0, 0 bne _080FA3C8 adds r0, r5, 0 bl FlagSet ldr r0, _080FA3B8 @ =0x00000834 bl FlagGet lsls r0, 24 cmp r0, 0 bne _080FA3C8 ldr r1, _080FA3BC @ =gSaveBlock1 ldrh r2, [r4] ldr r3, _080FA3C0 @ =0x00002dd8 adds r0, r1, r3 strh r2, [r0] ldrh r0, [r4, 0x2] ldr r2, _080FA3C4 @ =0x00002dda adds r1, r2 strh r0, [r1] movs r0, 0x1 b _080FA464 .align 2, 0 _080FA3B4: .4byte 0x00000833 _080FA3B8: .4byte 0x00000834 _080FA3BC: .4byte gSaveBlock1 _080FA3C0: .4byte 0x00002dd8 _080FA3C4: .4byte 0x00002dda _080FA3C8: ldrh r1, [r4, 0x2] lsls r1, 16 ldrh r0, [r4] orrs r0, r1 str r0, [sp, 0x4] movs r1, 0x80 lsls r1, 7 ldr r0, [sp] orrs r0, r1 str r0, [sp] mov r0, sp bl sub_80FA740 movs r6, 0 _080FA3E4: lsls r4, r6, 3 ldr r5, _080FA444 @ =gSaveBlock1 + 0x2DD4 adds r1, r4, r5 mov r0, sp movs r2, 0 bl atk90_changetypestoenemyattacktype lsls r0, 24 adds r7, r4, 0 cmp r0, 0 beq _080FA450 movs r3, 0x4 ldr r0, _080FA448 @ =0xffffd22c adds r0, r5 mov r12, r0 cmp r3, r6 bls _080FA428 mov r5, r12 ldr r4, _080FA44C @ =0x00002dd4 _080FA40A: lsls r2, r3, 3 adds r2, r5 adds r2, r4 subs r3, 0x1 lsls r0, r3, 3 adds r0, r5 adds r0, r4 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [r2] str r1, [r2, 0x4] lsls r3, 16 lsrs r3, 16 cmp r3, r6 bhi _080FA40A _080FA428: mov r3, r12 adds r2, r7, r3 ldr r0, _080FA44C @ =0x00002dd4 adds r2, r0 ldr r0, [sp] ldr r1, [sp, 0x4] str r0, [r2] str r1, [r2, 0x4] movs r0, 0 cmp r6, 0 bne _080FA464 movs r0, 0x1 b _080FA464 .align 2, 0 _080FA444: .4byte gSaveBlock1 + 0x2DD4 _080FA448: .4byte 0xffffd22c _080FA44C: .4byte 0x00002dd4 _080FA450: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x4 bls _080FA3E4 ldr r0, [sp] ldr r1, [sp, 0x4] str r0, [r5, 0x20] str r1, [r5, 0x24] _080FA462: movs r0, 0 _080FA464: add sp, 0x8 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80FA364 thumb_func_start sub_80FA46C sub_80FA46C: @ 80FA46C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r9, r0 lsls r1, 16 lsrs r7, r1, 16 lsls r2, 24 lsrs r2, 24 mov r10, r2 movs r2, 0 cmp r2, r7 bcs _080FA4D4 _080FA488: adds r1, r2, 0x1 lsls r0, r1, 16 lsrs r5, r0, 16 mov r8, r1 cmp r5, r7 bcs _080FA4CA lsls r0, r2, 3 mov r1, r9 adds r6, r1, r0 _080FA49A: lsls r0, r5, 3 mov r1, r9 adds r4, r1, r0 adds r0, r4, 0 adds r1, r6, 0 mov r2, r10 bl atk90_changetypestoenemyattacktype lsls r0, 24 cmp r0, 0 beq _080FA4C0 ldr r2, [r4] ldr r3, [r4, 0x4] ldr r0, [r6] ldr r1, [r6, 0x4] str r0, [r4] str r1, [r4, 0x4] str r2, [r6] str r3, [r6, 0x4] _080FA4C0: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r7 bcc _080FA49A _080FA4CA: mov r1, r8 lsls r0, r1, 16 lsrs r2, r0, 16 cmp r2, r7 bcc _080FA488 _080FA4D4: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80FA46C thumb_func_start sub_80FA4E4 sub_80FA4E4: @ 80FA4E4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r6, r0, 0 adds r5, r1, 0 bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r4, 0 cmp r4, r8 bcs _080FA520 _080FA500: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080FA554 @ =0x02007800 adds r0, r1 adds r1, r4, 0 muls r1, r5 adds r1, r6, r1 movs r2, 0x28 bl memcpy adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r8 bcc _080FA500 _080FA520: ldr r5, _080FA554 @ =0x02007800 movs r0, 0x80 lsls r0, 1 adds r3, r5, r0 movs r7, 0 movs r4, 0 cmp r4, r8 bcs _080FA588 _080FA530: movs r6, 0 _080FA532: adds r0, r5, 0 adds r1, r7, 0 str r3, [sp] bl sub_80FA828 lsls r0, 16 asrs r0, 16 ldr r3, [sp] cmp r0, 0 bge _080FA558 ldr r0, [r5] ldr r1, [r5, 0x4] stm r3!, {r0,r1} adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 b _080FA572 .align 2, 0 _080FA554: .4byte 0x02007800 _080FA558: lsls r1, r0, 3 ldr r0, _080FA5B4 @ =0x02007900 adds r2, r1, r0 ldrb r1, [r2] lsls r1, 25 ldrb r0, [r5] lsls r0, 25 cmp r1, r0 bcs _080FA572 ldr r0, [r5] ldr r1, [r5, 0x4] str r0, [r2] str r1, [r2, 0x4] _080FA572: adds r5, 0x8 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x4 bls _080FA532 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r8 bcc _080FA530 _080FA588: ldr r4, _080FA5B4 @ =0x02007900 adds r0, r4, 0 adds r1, r7, 0 movs r2, 0x2 bl sub_80FA46C adds r5, r4, 0 ldr r3, _080FA5B8 @ =gSaveBlock1 + 0x2DD4 movs r4, 0 _080FA59A: ldm r5!, {r0,r1} stm r3!, {r0,r1} adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x4 bls _080FA59A add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FA5B4: .4byte 0x02007900 _080FA5B8: .4byte gSaveBlock1 + 0x2DD4 thumb_func_end sub_80FA4E4 thumb_func_start sub_80FA5BC sub_80FA5BC: @ 80FA5BC push {lr} ldr r0, _080FA5D8 @ =gUnknown_0202E8CC ldrh r1, [r0] lsls r1, 3 ldr r0, _080FA5DC @ =gSaveBlock1 + 0x2DD4 adds r1, r0 ldr r0, _080FA5E0 @ =gStringVar1 adds r1, 0x4 movs r2, 0x2 movs r3, 0x1 bl ConvertEasyChatWordsToString pop {r0} bx r0 .align 2, 0 _080FA5D8: .4byte gUnknown_0202E8CC _080FA5DC: .4byte gSaveBlock1 + 0x2DD4 _080FA5E0: .4byte gStringVar1 thumb_func_end sub_80FA5BC thumb_func_start sub_80FA5E4 sub_80FA5E4: @ 80FA5E4 push {r4,lr} movs r4, 0 ldr r3, _080FA630 @ =gSaveBlock1 ldr r1, _080FA634 @ =0x00002dd4 adds r0, r3, r1 ldrb r1, [r0] lsls r1, 25 lsrs r1, 25 ldr r2, _080FA638 @ =0x00002ddc adds r0, r3, r2 ldrb r0, [r0] lsls r0, 25 lsrs r0, 25 subs r1, r0 cmp r1, 0x1 bgt _080FA626 ldr r1, _080FA63C @ =0x00002dd5 adds r0, r3, r1 ldrb r1, [r0] movs r2, 0x40 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _080FA626 ldr r1, _080FA640 @ =0x00002ddd adds r0, r3, r1 ldrb r1, [r0] adds r0, r2, 0 ands r0, r1 lsls r0, 24 lsrs r0, 24 negs r0, r0 lsrs r4, r0, 31 _080FA626: ldr r0, _080FA644 @ =gScriptResult strh r4, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080FA630: .4byte gSaveBlock1 _080FA634: .4byte 0x00002dd4 _080FA638: .4byte 0x00002ddc _080FA63C: .4byte 0x00002dd5 _080FA640: .4byte 0x00002ddd _080FA644: .4byte gScriptResult thumb_func_end sub_80FA5E4 thumb_func_start sub_80FA648 sub_80FA648: @ 80FA648 ldr r2, _080FA664 @ =gScriptResult ldr r0, _080FA668 @ =gSaveBlock1 ldr r3, _080FA66C @ =0x00002dd8 adds r1, r0, r3 adds r3, 0x2 adds r0, r3 ldrh r0, [r0] ldrh r1, [r1] adds r0, r1 movs r1, 0x7 ands r0, r1 strh r0, [r2] bx lr .align 2, 0 _080FA664: .4byte gScriptResult _080FA668: .4byte gSaveBlock1 _080FA66C: .4byte 0x00002dd8 thumb_func_end sub_80FA648 thumb_func_start atk90_changetypestoenemyattacktype atk90_changetypestoenemyattacktype: @ 80FA670 push {r4,r5,lr} adds r3, r0, 0 adds r5, r1, 0 lsls r2, 24 lsrs r2, 24 adds r0, r2, 0 cmp r2, 0x1 beq _080FA6B6 cmp r2, 0x1 bgt _080FA68A cmp r2, 0 beq _080FA690 b _080FA732 _080FA68A: cmp r0, 0x2 beq _080FA6E2 b _080FA732 _080FA690: ldrb r0, [r3] lsls r1, r0, 25 ldrb r0, [r5] lsls r0, 25 cmp r1, r0 bhi _080FA72E cmp r1, r0 bcc _080FA6DE ldrh r0, [r3] lsls r3, r0, 18 ldrh r0, [r5] lsls r2, r0, 18 lsrs r1, r3, 25 lsrs r0, r2, 25 cmp r1, r0 bhi _080FA72E lsrs r1, r3, 25 lsrs r0, r2, 25 b _080FA6DA _080FA6B6: ldrh r0, [r3] lsls r4, r0, 18 ldrh r0, [r5] lsls r2, r0, 18 lsrs r1, r4, 25 lsrs r0, r2, 25 cmp r1, r0 bhi _080FA72E lsrs r1, r4, 25 lsrs r0, r2, 25 cmp r1, r0 bcc _080FA6DE ldrb r0, [r3] lsls r1, r0, 25 ldrb r0, [r5] lsls r0, 25 cmp r1, r0 bhi _080FA72E _080FA6DA: cmp r1, r0 bcs _080FA732 _080FA6DE: movs r0, 0 b _080FA73A _080FA6E2: ldrb r0, [r3] lsls r1, r0, 25 ldrb r0, [r5] lsls r0, 25 cmp r1, r0 bhi _080FA72E cmp r1, r0 bcc _080FA6DE ldrh r0, [r3] lsls r4, r0, 18 ldrh r0, [r5] lsls r2, r0, 18 lsrs r1, r4, 25 lsrs r0, r2, 25 cmp r1, r0 bhi _080FA72E lsrs r1, r4, 25 lsrs r0, r2, 25 cmp r1, r0 bcc _080FA6DE ldrh r1, [r3, 0x2] ldrh r0, [r5, 0x2] cmp r1, r0 bhi _080FA72E cmp r1, r0 bcc _080FA6DE ldrh r1, [r3, 0x4] ldrh r0, [r5, 0x4] cmp r1, r0 bhi _080FA72E cmp r1, r0 bcc _080FA6DE ldrh r1, [r3, 0x6] ldrh r0, [r5, 0x6] cmp r1, r0 bhi _080FA72E cmp r1, r0 bcc _080FA6DE _080FA72E: movs r0, 0x1 b _080FA73A _080FA732: bl Random movs r1, 0x1 ands r0, r1 _080FA73A: pop {r4,r5} pop {r1} bx r1 thumb_func_end atk90_changetypestoenemyattacktype thumb_func_start sub_80FA740 sub_80FA740: @ 80FA740 push {r4,r5,lr} adds r5, r0, 0 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x62 bl __umodsi3 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x32 bls _080FA782 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x62 bl __umodsi3 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x50 bls _080FA782 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x62 bl __umodsi3 lsls r0, 16 lsrs r4, r0, 16 _080FA782: adds r1, r4, 0 adds r1, 0x1E movs r0, 0x7F ands r1, r0 lsls r1, 7 ldrh r2, [r5] ldr r0, _080FA7C4 @ =0xffffc07f ands r0, r2 orrs r0, r1 strh r0, [r5] bl Random lsls r0, 16 lsrs r0, 16 adds r1, r4, 0x1 bl __modsi3 adds r0, 0x1E movs r1, 0x7F ands r0, r1 ldrb r2, [r5] movs r1, 0x80 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r5] bl Random strh r0, [r5, 0x2] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FA7C4: .4byte 0xffffc07f thumb_func_end sub_80FA740 thumb_func_start sub_80FA7C8 sub_80FA7C8: @ 80FA7C8 push {r4,r5,lr} adds r5, r0, 0 movs r4, 0 _080FA7CE: lsls r1, r4, 3 ldr r0, _080FA7E4 @ =gSaveBlock1 + 0x2DD8 adds r1, r0 adds r0, r5, 0 bl sub_80FA7FC lsls r0, 24 cmp r0, 0 beq _080FA7E8 movs r0, 0x1 b _080FA7F4 .align 2, 0 _080FA7E4: .4byte gSaveBlock1 + 0x2DD8 _080FA7E8: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x4 bls _080FA7CE movs r0, 0 _080FA7F4: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80FA7C8 thumb_func_start sub_80FA7FC sub_80FA7FC: @ 80FA7FC push {r4,lr} adds r3, r0, 0 adds r2, r1, 0 movs r4, 0 _080FA804: ldrh r1, [r3] ldrh r0, [r2] adds r2, 0x2 adds r3, 0x2 cmp r1, r0 beq _080FA814 movs r0, 0 b _080FA820 _080FA814: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1 bls _080FA804 movs r0, 0x1 _080FA820: pop {r4} pop {r1} bx r1 thumb_func_end sub_80FA7FC thumb_func_start sub_80FA828 sub_80FA828: @ 80FA828 push {r4-r7,lr} adds r7, r0, 0 lsls r1, 16 lsrs r5, r1, 16 ldr r6, _080FA84C @ =0x02007900 movs r4, 0 cmp r4, r5 bge _080FA862 _080FA838: adds r1, r6, 0x4 adds r0, r7, 0x4 bl sub_80FA7FC lsls r0, 24 cmp r0, 0 beq _080FA850 lsls r0, r4, 16 asrs r0, 16 b _080FA866 .align 2, 0 _080FA84C: .4byte 0x02007900 _080FA850: adds r6, 0x8 lsls r0, r4, 16 movs r1, 0x80 lsls r1, 9 adds r0, r1 lsrs r4, r0, 16 asrs r0, 16 cmp r0, r5 blt _080FA838 _080FA862: movs r0, 0x1 negs r0, r0 _080FA866: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80FA828 thumb_func_start sub_80FA86C sub_80FA86C: @ 80FA86C push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 lsls r1, 16 lsrs r1, 16 movs r3, 0 ldr r2, _080FA890 @ =gUnknown_083E5A20 _080FA87A: movs r0, 0 ldrsb r0, [r2, r0] cmp r0, r4 bne _080FA894 movs r0, 0x1 ldrsb r0, [r2, r0] cmp r0, r1 bne _080FA894 adds r0, r3, 0x1 b _080FA89E .align 2, 0 _080FA890: .4byte gUnknown_083E5A20 _080FA894: adds r2, 0x8 adds r3, 0x1 cmp r3, 0x15 bls _080FA87A movs r0, 0 _080FA89E: pop {r4} pop {r1} bx r1 thumb_func_end sub_80FA86C thumb_func_start unref_sub_80FA8A4 unref_sub_80FA8A4: @ 80FA8A4 push {lr} lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r1, 16 bl sub_80FA86C cmp r0, 0 beq _080FA8C4 lsls r0, 3 ldr r1, _080FA8C0 @ =gUnknown_083E5A18 adds r0, r1 b _080FA8C6 .align 2, 0 _080FA8C0: .4byte gUnknown_083E5A18 _080FA8C4: movs r0, 0 _080FA8C6: pop {r1} bx r1 thumb_func_end unref_sub_80FA8A4 thumb_func_start sub_80FA8CC sub_80FA8CC: @ 80FA8CC push {lr} cmp r0, 0 beq _080FA8E4 cmp r0, 0x16 bhi _080FA8E4 lsls r0, 3 ldr r1, _080FA8E0 @ =gUnknown_083E5A18 adds r0, r1 b _080FA8E6 .align 2, 0 _080FA8E0: .4byte gUnknown_083E5A18 _080FA8E4: movs r0, 0 _080FA8E6: pop {r1} bx r1 thumb_func_end sub_80FA8CC thumb_func_start sub_80FA8EC sub_80FA8EC: @ 80FA8EC push {lr} lsls r1, 24 lsrs r1, 24 bl sub_80FA904 _080FA8F6: bl sub_80FA940 lsls r0, 24 cmp r0, 0 bne _080FA8F6 pop {r0} bx r0 thumb_func_end sub_80FA8EC thumb_func_start sub_80FA904 sub_80FA904: @ 80FA904 push {r4,lr} lsls r1, 24 lsrs r1, 24 ldr r3, _080FA928 @ =gUnknown_020388CC str r0, [r3] movs r2, 0x79 adds r2, r0 mov r12, r2 movs r2, 0 mov r4, r12 strb r2, [r4] adds r0, 0x78 strb r1, [r0] ldr r3, [r3] cmp r1, 0 bne _080FA930 ldr r0, _080FA92C @ =sub_80FAB78 b _080FA932 .align 2, 0 _080FA928: .4byte gUnknown_020388CC _080FA92C: .4byte sub_80FAB78 _080FA930: ldr r0, _080FA93C @ =sub_80FAD04 _080FA932: str r0, [r3, 0x18] pop {r4} pop {r0} bx r0 .align 2, 0 _080FA93C: .4byte sub_80FAD04 thumb_func_end sub_80FA904 thumb_func_start sub_80FA940 sub_80FA940: @ 80FA940 push {r4,r5,lr} sub sp, 0xC ldr r0, _080FA95C @ =gUnknown_020388CC ldr r0, [r0] adds r0, 0x79 ldrb r0, [r0] cmp r0, 0x7 bls _080FA952 b _080FAAE2 _080FA952: lsls r0, 2 ldr r1, _080FA960 @ =_080FA964 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080FA95C: .4byte gUnknown_020388CC _080FA960: .4byte _080FA964 .align 2, 0 _080FA964: .4byte _080FA984 .4byte _080FA998 .4byte _080FA9AC .4byte _080FA9BC .4byte _080FA9D8 .4byte _080FA9F4 .4byte _080FAA38 .4byte _080FAAB4 _080FA984: ldr r0, _080FA990 @ =gUnknown_083E5DA0 ldr r1, _080FA994 @ =0x06008000 bl LZ77UnCompVram b _080FAAF4 .align 2, 0 _080FA990: .4byte gUnknown_083E5DA0 _080FA994: .4byte 0x06008000 _080FA998: ldr r0, _080FA9A4 @ =gUnknown_083E6B04 ldr r1, _080FA9A8 @ =0x0600e000 bl LZ77UnCompVram b _080FAAF4 .align 2, 0 _080FA9A4: .4byte gUnknown_083E6B04 _080FA9A8: .4byte 0x0600e000 _080FA9AC: ldr r0, _080FA9B8 @ =gUnknown_083E5D60 movs r1, 0x70 movs r2, 0x60 bl LoadPalette b _080FAAF4 .align 2, 0 _080FA9B8: .4byte gUnknown_083E5D60 _080FA9BC: ldr r0, _080FA9D0 @ =gUnknown_083E5AF0 ldr r1, _080FA9D4 @ =gUnknown_020388CC ldr r1, [r1] movs r2, 0xC0 lsls r2, 1 adds r1, r2 bl LZ77UnCompWram b _080FAAF4 .align 2, 0 _080FA9D0: .4byte gUnknown_083E5AF0 _080FA9D4: .4byte gUnknown_020388CC _080FA9D8: ldr r0, _080FA9EC @ =gUnknown_083E5B34 ldr r1, _080FA9F0 @ =gUnknown_020388CC ldr r1, [r1] movs r3, 0xA0 lsls r3, 2 adds r1, r3 bl LZ77UnCompWram b _080FAAF4 .align 2, 0 _080FA9EC: .4byte gUnknown_083E5B34 _080FA9F0: .4byte gUnknown_020388CC _080FA9F4: bl sub_80FB32C ldr r4, _080FAA34 @ =gUnknown_020388CC ldr r2, [r4] adds r0, r2, 0 adds r0, 0x54 ldrh r1, [r0] adds r0, 0x20 strh r1, [r0] subs r0, 0x1E ldrh r0, [r0] adds r1, r2, 0 adds r1, 0x76 strh r0, [r1] ldrh r0, [r2, 0x14] bl sub_80FB758 ldr r1, [r4] strb r0, [r1, 0x16] ldr r0, [r4] ldrh r0, [r0, 0x14] bl sub_80FB9C0 adds r1, r0, 0 ldr r0, [r4] strh r1, [r0, 0x14] ldrh r1, [r0, 0x14] movs r2, 0x10 bl sub_80FBFB4 b _080FAAF4 .align 2, 0 _080FAA34: .4byte gUnknown_020388CC _080FAA38: ldr r0, _080FAA60 @ =gUnknown_020388CC ldr r4, [r0] adds r0, r4, 0 adds r0, 0x78 ldrb r1, [r0] cmp r1, 0 bne _080FAA64 movs r0, 0x80 lsls r0, 1 str r0, [sp] str r0, [sp, 0x4] str r1, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80FB170 b _080FAAF4 .align 2, 0 _080FAA60: .4byte gUnknown_020388CC _080FAA64: adds r1, r4, 0 adds r1, 0x54 ldrh r0, [r1] lsls r0, 3 subs r0, 0x34 adds r2, r4, 0 adds r2, 0x5C movs r3, 0 strh r0, [r2] movs r5, 0x56 adds r5, r4 mov r12, r5 ldrh r0, [r5] lsls r0, 3 subs r0, 0x44 adds r5, r4, 0 adds r5, 0x5E strh r0, [r5] ldrh r1, [r1] adds r0, r4, 0 adds r0, 0x64 strh r1, [r0] mov r0, r12 ldrh r1, [r0] adds r0, r4, 0 adds r0, 0x66 strh r1, [r0] movs r1, 0 ldrsh r0, [r2, r1] movs r2, 0 ldrsh r1, [r5, r2] movs r2, 0x80 str r2, [sp] str r2, [sp, 0x4] str r3, [sp, 0x8] movs r2, 0x38 movs r3, 0x48 bl sub_80FB170 b _080FAAF4 _080FAAB4: bl sub_80FBA18 bl sub_80FB260 ldr r2, _080FAAE8 @ =gUnknown_020388CC ldr r0, [r2] movs r1, 0 str r1, [r0, 0x1C] str r1, [r0, 0x20] adds r0, 0x7A strb r1, [r0] ldr r0, [r2] adds r0, 0x7E strb r1, [r0] ldr r1, _080FAAEC @ =REG_BG2CNT ldr r3, _080FAAF0 @ =0x0000bc8a adds r0, r3, 0 strh r0, [r1] ldr r1, [r2] adds r1, 0x79 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080FAAE2: movs r0, 0 b _080FAB02 .align 2, 0 _080FAAE8: .4byte gUnknown_020388CC _080FAAEC: .4byte REG_BG2CNT _080FAAF0: .4byte 0x0000bc8a _080FAAF4: ldr r0, _080FAB0C @ =gUnknown_020388CC ldr r1, [r0] adds r1, 0x79 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r0, 0x1 _080FAB02: add sp, 0xC pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080FAB0C: .4byte gUnknown_020388CC thumb_func_end sub_80FA940 thumb_func_start sub_80FAB10 sub_80FAB10: @ 80FAB10 push {r4,lr} ldr r4, _080FAB5C @ =gUnknown_020388CC ldr r0, [r4] ldr r0, [r0, 0x1C] cmp r0, 0 beq _080FAB34 bl DestroySprite ldr r0, [r4] adds r0, 0x58 ldrh r0, [r0] bl FreeSpriteTilesByTag ldr r0, [r4] adds r0, 0x5A ldrh r0, [r0] bl FreeSpritePaletteByTag _080FAB34: ldr r0, [r4] ldr r0, [r0, 0x20] cmp r0, 0 beq _080FAB54 bl DestroySprite ldr r0, [r4] adds r0, 0x70 ldrh r0, [r0] bl FreeSpriteTilesByTag ldr r0, [r4] adds r0, 0x72 ldrh r0, [r0] bl FreeSpritePaletteByTag _080FAB54: pop {r4} pop {r0} bx r0 .align 2, 0 _080FAB5C: .4byte gUnknown_020388CC thumb_func_end sub_80FAB10 thumb_func_start sub_80FAB60 sub_80FAB60: @ 80FAB60 push {lr} ldr r0, _080FAB74 @ =gUnknown_020388CC ldr r0, [r0] ldr r0, [r0, 0x18] bl _call_via_r0 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _080FAB74: .4byte gUnknown_020388CC thumb_func_end sub_80FAB60 thumb_func_start sub_80FAB78 sub_80FAB78: @ 80FAB78 push {r4,lr} movs r4, 0 ldr r2, _080FAC14 @ =gUnknown_020388CC ldr r0, [r2] adds r0, 0x7B strb r4, [r0] ldr r0, [r2] adds r0, 0x7C strb r4, [r0] ldr r3, _080FAC18 @ =gMain ldrh r1, [r3, 0x2C] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080FABAA ldr r1, [r2] adds r0, r1, 0 adds r0, 0x56 ldrh r0, [r0] cmp r0, 0x2 bls _080FABAA adds r1, 0x7C movs r0, 0xFF strb r0, [r1] movs r4, 0x1 _080FABAA: ldrh r1, [r3, 0x2C] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080FABC8 ldr r1, [r2] adds r0, r1, 0 adds r0, 0x56 ldrh r0, [r0] cmp r0, 0xF bhi _080FABC8 adds r1, 0x7C movs r0, 0x1 strb r0, [r1] movs r4, 0x1 _080FABC8: ldrh r1, [r3, 0x2C] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080FABE6 ldr r1, [r2] adds r0, r1, 0 adds r0, 0x54 ldrh r0, [r0] cmp r0, 0x1 bls _080FABE6 adds r1, 0x7B movs r0, 0xFF strb r0, [r1] movs r4, 0x1 _080FABE6: ldrh r1, [r3, 0x2C] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080FAC04 ldr r1, [r2] adds r0, r1, 0 adds r0, 0x54 ldrh r0, [r0] cmp r0, 0x1B bhi _080FAC04 adds r1, 0x7B movs r0, 0x1 strb r0, [r1] movs r4, 0x1 _080FAC04: ldrh r3, [r3, 0x2E] movs r0, 0x1 ands r0, r3 cmp r0, 0 beq _080FAC1C movs r4, 0x4 b _080FAC26 .align 2, 0 _080FAC14: .4byte gUnknown_020388CC _080FAC18: .4byte gMain _080FAC1C: movs r0, 0x2 ands r0, r3 cmp r0, 0 beq _080FAC26 movs r4, 0x5 _080FAC26: cmp r4, 0x1 bne _080FAC38 ldr r0, [r2] adds r0, 0x7A movs r1, 0x4 strb r1, [r0] ldr r1, [r2] ldr r0, _080FAC40 @ =_swiopen str r0, [r1, 0x18] _080FAC38: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080FAC40: .4byte _swiopen thumb_func_end sub_80FAB78 thumb_func_start _swiopen _swiopen: @ 80FAC44 push {r4,r5,lr} ldr r5, _080FAC5C @ =gUnknown_020388CC ldr r1, [r5] adds r0, r1, 0 adds r0, 0x7A ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 beq _080FAC60 movs r0, 0x2 b _080FACFA .align 2, 0 _080FAC5C: .4byte gUnknown_020388CC _080FAC60: adds r0, r1, 0 adds r0, 0x7B ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 ble _080FAC76 adds r1, 0x54 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080FAC76: ldr r1, [r5] adds r0, r1, 0 adds r0, 0x7B ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 bge _080FAC8E adds r1, 0x54 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] _080FAC8E: ldr r1, [r5] adds r0, r1, 0 adds r0, 0x7C ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 ble _080FACA6 adds r1, 0x56 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080FACA6: ldr r1, [r5] adds r0, r1, 0 adds r0, 0x7C ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 bge _080FACBE adds r1, 0x56 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] _080FACBE: ldr r1, [r5] adds r0, r1, 0 adds r0, 0x54 ldrh r0, [r0] adds r1, 0x56 ldrh r1, [r1] bl sub_80FB2EC lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 bl sub_80FB758 ldr r1, [r5] strb r0, [r1, 0x16] ldr r0, [r5] ldrh r1, [r0, 0x14] cmp r4, r1 beq _080FACEE strh r4, [r0, 0x14] ldrh r1, [r0, 0x14] movs r2, 0x10 bl sub_80FBFB4 _080FACEE: bl sub_80FBA18 ldr r1, [r5] ldr r0, _080FAD00 @ =sub_80FAB78 str r0, [r1, 0x18] movs r0, 0x3 _080FACFA: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080FAD00: .4byte sub_80FAB78 thumb_func_end _swiopen thumb_func_start sub_80FAD04 sub_80FAD04: @ 80FAD04 push {r4-r6,lr} movs r4, 0 ldr r3, _080FADD4 @ =gUnknown_020388CC ldr r0, [r3] mov r12, r0 adds r0, 0x6A strh r4, [r0] mov r5, r12 adds r5, 0x68 strh r4, [r5] ldr r2, _080FADD8 @ =gMain ldrh r1, [r2, 0x2C] movs r0, 0x40 ands r0, r1 adds r6, r3, 0 adds r3, r2, 0 cmp r0, 0 beq _080FAD3E mov r0, r12 adds r0, 0x5E movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0x34 negs r0, r0 cmp r1, r0 ble _080FAD3E ldr r0, _080FADDC @ =0x0000ffff strh r0, [r5] movs r4, 0x1 _080FAD3E: ldrh r1, [r3, 0x2C] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080FAD5E ldr r1, [r6] adds r0, r1, 0 adds r0, 0x5E movs r5, 0 ldrsh r0, [r0, r5] cmp r0, 0x3B bgt _080FAD5E adds r1, 0x68 movs r0, 0x1 strh r0, [r1] movs r4, 0x1 _080FAD5E: ldrh r1, [r3, 0x2C] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080FAD84 ldr r2, [r6] adds r0, r2, 0 adds r0, 0x5C movs r5, 0 ldrsh r1, [r0, r5] movs r0, 0x2C negs r0, r0 cmp r1, r0 ble _080FAD84 adds r1, r2, 0 adds r1, 0x6A ldr r0, _080FADDC @ =0x0000ffff strh r0, [r1] movs r4, 0x1 _080FAD84: ldrh r1, [r3, 0x2C] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080FADA4 ldr r1, [r6] adds r0, r1, 0 adds r0, 0x5C movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0xAB bgt _080FADA4 adds r1, 0x6A movs r0, 0x1 strh r0, [r1] movs r4, 0x1 _080FADA4: ldrh r2, [r3, 0x2E] movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _080FADB0 movs r4, 0x4 _080FADB0: movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _080FADBA movs r4, 0x5 _080FADBA: cmp r4, 0x1 bne _080FADCA ldr r0, [r6] ldr r1, _080FADE0 @ =sub_80FADE4 str r1, [r0, 0x18] adds r0, 0x6C movs r1, 0 strh r1, [r0] _080FADCA: adds r0, r4, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080FADD4: .4byte gUnknown_020388CC _080FADD8: .4byte gMain _080FADDC: .4byte 0x0000ffff _080FADE0: .4byte sub_80FADE4 thumb_func_end sub_80FAD04 thumb_func_start sub_80FADE4 sub_80FADE4: @ 80FADE4 push {r4,r5,lr} ldr r5, _080FAEB4 @ =gUnknown_020388CC ldr r2, [r5] adds r3, r2, 0 adds r3, 0x5E adds r0, r2, 0 adds r0, 0x68 ldrh r0, [r0] ldrh r1, [r3] adds r0, r1 strh r0, [r3] adds r1, r2, 0 adds r1, 0x5C adds r0, r2, 0 adds r0, 0x6A ldrh r0, [r0] ldrh r2, [r1] adds r0, r2 strh r0, [r1] movs r4, 0 ldrsh r0, [r1, r4] movs r2, 0 ldrsh r1, [r3, r2] bl sub_80FB238 ldr r2, [r5] adds r1, r2, 0 adds r1, 0x6C ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 lsrs r0, 16 cmp r0, 0x8 bne _080FAEBC adds r0, r2, 0 adds r0, 0x5C movs r3, 0 ldrsh r1, [r0, r3] adds r0, r1, 0 adds r0, 0x2C cmp r0, 0 bge _080FAE3C adds r0, 0x7 _080FAE3C: asrs r0, 3 adds r0, 0x1 lsls r0, 16 lsrs r3, r0, 16 adds r0, r2, 0 adds r0, 0x5E movs r4, 0 ldrsh r1, [r0, r4] adds r0, r1, 0 adds r0, 0x34 cmp r0, 0 bge _080FAE56 adds r0, 0x7 _080FAE56: asrs r0, 3 adds r0, 0x2 lsls r0, 16 lsrs r1, r0, 16 adds r4, r2, 0 adds r4, 0x64 adds r0, r2, 0 adds r0, 0x66 ldrh r2, [r4] cmp r3, r2 bne _080FAE72 ldrh r2, [r0] cmp r1, r2 beq _080FAEA0 _080FAE72: strh r3, [r4] strh r1, [r0] adds r0, r3, 0 bl sub_80FB2EC lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 bl sub_80FB758 ldr r1, [r5] strb r0, [r1, 0x16] ldr r0, [r5] ldrh r3, [r0, 0x14] cmp r4, r3 beq _080FAE9C strh r4, [r0, 0x14] ldrh r1, [r0, 0x14] movs r2, 0x10 bl sub_80FBFB4 _080FAE9C: bl sub_80FBA18 _080FAEA0: ldr r0, _080FAEB4 @ =gUnknown_020388CC ldr r2, [r0] adds r1, r2, 0 adds r1, 0x6C movs r0, 0 strh r0, [r1] ldr r0, _080FAEB8 @ =sub_80FAD04 str r0, [r2, 0x18] movs r0, 0x3 b _080FAEBE .align 2, 0 _080FAEB4: .4byte gUnknown_020388CC _080FAEB8: .4byte sub_80FAD04 _080FAEBC: movs r0, 0x2 _080FAEBE: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80FADE4 thumb_func_start sub_80FAEC4 sub_80FAEC4: @ 80FAEC4 push {r4-r6,lr} ldr r1, _080FAF40 @ =gUnknown_020388CC ldr r2, [r1] adds r0, r2, 0 adds r0, 0x78 ldrb r3, [r0] adds r5, r1, 0 cmp r3, 0 bne _080FAF48 subs r0, 0x1A strh r3, [r0] subs r0, 0x2 strh r3, [r0] str r3, [r2, 0x40] str r3, [r2, 0x3C] adds r4, r2, 0 adds r4, 0x54 ldrh r0, [r4] lsls r0, 3 subs r0, 0x34 adds r1, r2, 0 adds r1, 0x60 strh r0, [r1] movs r0, 0x56 adds r0, r2 mov r12, r0 ldrh r0, [r0] lsls r0, 3 subs r0, 0x44 adds r3, r2, 0 adds r3, 0x62 strh r0, [r3] movs r6, 0 ldrsh r0, [r1, r6] lsls r0, 8 cmp r0, 0 bge _080FAF10 adds r0, 0xF _080FAF10: asrs r0, 4 str r0, [r2, 0x44] movs r1, 0 ldrsh r0, [r3, r1] lsls r0, 8 cmp r0, 0 bge _080FAF20 adds r0, 0xF _080FAF20: asrs r0, 4 str r0, [r2, 0x48] ldrh r1, [r4] adds r0, r2, 0 adds r0, 0x64 strh r1, [r0] mov r3, r12 ldrh r0, [r3] adds r1, r2, 0 adds r1, 0x66 strh r0, [r1] movs r0, 0x80 lsls r0, 9 str r0, [r2, 0x4C] ldr r0, _080FAF44 @ =0xfffff800 b _080FAFA6 .align 2, 0 _080FAF40: .4byte gUnknown_020388CC _080FAF44: .4byte 0xfffff800 _080FAF48: adds r0, r2, 0 adds r0, 0x5C movs r6, 0 ldrsh r0, [r0, r6] lsls r0, 8 str r0, [r2, 0x3C] adds r0, r2, 0 adds r0, 0x5E movs r1, 0 ldrsh r0, [r0, r1] lsls r0, 8 str r0, [r2, 0x40] adds r0, r2, 0 adds r0, 0x60 movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r0, [r2, 0x3C] cmp r0, 0 bge _080FAF74 adds r0, 0xF _080FAF74: asrs r0, 4 negs r0, r0 str r0, [r2, 0x44] ldr r0, [r2, 0x40] cmp r0, 0 bge _080FAF82 adds r0, 0xF _080FAF82: asrs r0, 4 negs r0, r0 str r0, [r2, 0x48] adds r0, r2, 0 adds r0, 0x64 ldrh r1, [r0] subs r0, 0x10 strh r1, [r0] adds r0, 0x12 ldrh r0, [r0] adds r1, r2, 0 adds r1, 0x56 strh r0, [r1] movs r0, 0x80 lsls r0, 8 str r0, [r2, 0x4C] movs r0, 0x80 lsls r0, 4 _080FAFA6: str r0, [r2, 0x50] ldr r0, [r5] adds r0, 0x6E movs r1, 0 strh r1, [r0] bl sub_80FBCA0 bl sub_80FBDF8 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80FAEC4 thumb_func_start sub_80FAFC0 sub_80FAFC0: @ 80FAFC0 push {r4-r6,lr} sub sp, 0xC ldr r0, _080FAFD8 @ =gUnknown_020388CC ldr r3, [r0] adds r2, r3, 0 adds r2, 0x6E ldrh r1, [r2] adds r5, r0, 0 cmp r1, 0xF bls _080FAFDC movs r0, 0 b _080FB164 .align 2, 0 _080FAFD8: .4byte gUnknown_020388CC _080FAFDC: adds r0, r1, 0x1 movs r1, 0 strh r0, [r2] lsls r0, 16 lsrs r0, 16 cmp r0, 0x10 bne _080FB050 str r1, [r3, 0x44] str r1, [r3, 0x48] adds r0, r3, 0 adds r0, 0x60 ldrh r1, [r0] subs r0, 0x4 strh r1, [r0] adds r0, 0x6 ldrh r0, [r0] adds r1, r3, 0 adds r1, 0x5E strh r0, [r1] adds r1, 0x1A ldrb r0, [r1] movs r2, 0x80 lsls r2, 9 cmp r0, 0 bne _080FB012 movs r2, 0x80 lsls r2, 8 _080FB012: str r2, [r3, 0x4C] movs r2, 0 ldrb r0, [r1] cmp r0, 0 bne _080FB01E movs r2, 0x1 _080FB01E: strb r2, [r1] ldr r1, [r5] adds r0, r1, 0 adds r0, 0x78 ldrb r0, [r0] ldr r2, _080FB048 @ =sub_80FAD04 cmp r0, 0 bne _080FB030 ldr r2, _080FB04C @ =sub_80FAB78 _080FB030: str r2, [r1, 0x18] adds r0, r1, 0 adds r0, 0x58 ldrh r0, [r0] adds r1, 0x5A ldrh r1, [r1] bl sub_80FBB3C bl sub_80FBE24 movs r4, 0 b _080FB132 .align 2, 0 _080FB048: .4byte sub_80FAD04 _080FB04C: .4byte sub_80FAB78 _080FB050: ldr r2, [r3, 0x3C] ldr r0, [r3, 0x44] adds r2, r0 str r2, [r3, 0x3C] ldr r0, [r3, 0x40] ldr r1, [r3, 0x48] adds r0, r1 str r0, [r3, 0x40] asrs r2, 8 adds r4, r3, 0 adds r4, 0x5C strh r2, [r4] ldr r0, [r3, 0x40] asrs r0, 8 adds r1, r3, 0 adds r1, 0x5E strh r0, [r1] ldr r0, [r3, 0x4C] ldr r1, [r3, 0x50] adds r0, r1 str r0, [r3, 0x4C] ldr r2, [r3, 0x44] cmp r2, 0 bge _080FB090 adds r0, r3, 0 adds r0, 0x60 movs r6, 0 ldrsh r1, [r4, r6] movs r6, 0 ldrsh r0, [r0, r6] cmp r1, r0 blt _080FB0A4 _080FB090: cmp r2, 0 ble _080FB0B4 adds r0, r3, 0 adds r0, 0x60 movs r2, 0 ldrsh r1, [r4, r2] movs r6, 0 ldrsh r0, [r0, r6] cmp r1, r0 ble _080FB0B4 _080FB0A4: ldr r3, [r5] adds r0, r3, 0 adds r0, 0x60 ldrh r2, [r0] subs r0, 0x4 movs r1, 0 strh r2, [r0] str r1, [r3, 0x44] _080FB0B4: ldr r2, [r5] ldr r4, [r2, 0x48] cmp r4, 0 bge _080FB0D0 adds r0, r2, 0 adds r0, 0x5E adds r3, r2, 0 adds r3, 0x62 movs r6, 0 ldrsh r1, [r0, r6] movs r6, 0 ldrsh r0, [r3, r6] cmp r1, r0 blt _080FB0E8 _080FB0D0: cmp r4, 0 ble _080FB0FA adds r1, r2, 0 adds r1, 0x5E adds r0, r2, 0 adds r0, 0x62 movs r2, 0 ldrsh r1, [r1, r2] movs r6, 0 ldrsh r0, [r0, r6] cmp r1, r0 ble _080FB0FA _080FB0E8: ldr r2, [r5] adds r0, r2, 0 adds r0, 0x62 ldrh r1, [r0] adds r3, r2, 0 adds r3, 0x5E movs r0, 0 strh r1, [r3] str r0, [r2, 0x48] _080FB0FA: ldr r0, _080FB118 @ =gUnknown_020388CC ldr r2, [r0] adds r0, r2, 0 adds r0, 0x78 ldrb r3, [r0] cmp r3, 0 bne _080FB120 ldr r1, [r2, 0x4C] ldr r0, _080FB11C @ =0x00007fff cmp r1, r0 bgt _080FB130 adds r0, 0x1 str r0, [r2, 0x4C] str r3, [r2, 0x50] b _080FB130 .align 2, 0 _080FB118: .4byte gUnknown_020388CC _080FB11C: .4byte 0x00007fff _080FB120: ldr r0, [r2, 0x4C] movs r1, 0x80 lsls r1, 9 cmp r0, r1 ble _080FB130 str r1, [r2, 0x4C] movs r0, 0 str r0, [r2, 0x50] _080FB130: movs r4, 0x1 _080FB132: ldr r0, _080FB16C @ =gUnknown_020388CC ldr r3, [r0] adds r0, r3, 0 adds r0, 0x5C movs r1, 0 ldrsh r0, [r0, r1] adds r1, r3, 0 adds r1, 0x5E movs r2, 0 ldrsh r1, [r1, r2] ldr r2, [r3, 0x4C] lsls r2, 8 lsrs r2, 16 str r2, [sp] ldr r2, [r3, 0x4C] lsls r2, 8 lsrs r2, 16 str r2, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] movs r2, 0x38 movs r3, 0x48 bl sub_80FB170 adds r0, r4, 0 _080FB164: add sp, 0xC pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080FB16C: .4byte gUnknown_020388CC thumb_func_end sub_80FAFC0 thumb_func_start sub_80FB170 sub_80FB170: @ 80FB170 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r4, [sp, 0x24] ldr r7, [sp, 0x28] ldr r5, [sp, 0x2C] lsls r4, 16 lsrs r4, 16 mov r8, r4 lsls r7, 16 adds r4, r7, 0 lsrs r4, 16 mov r9, r4 lsls r5, 24 lsrs r5, 24 ldr r4, _080FB230 @ =gUnknown_020388CC ldr r6, [r4] ldr r7, _080FB234 @ =gSineTable mov r12, r7 adds r4, r5, 0 adds r4, 0x40 lsls r4, 1 add r4, r12 movs r7, 0 ldrsh r4, [r4, r7] str r4, [sp] mov r7, r8 muls r7, r4 adds r4, r7, 0 asrs r4, 8 mov r10, r4 str r4, [r6, 0x2C] lsls r5, 1 add r5, r12 movs r7, 0 ldrsh r5, [r5, r7] negs r4, r5 mov r7, r8 muls r7, r4 adds r4, r7, 0 asrs r4, 8 mov r12, r4 str r4, [r6, 0x30] mov r7, r9 muls r7, r5 adds r5, r7, 0 asrs r5, 8 str r5, [r6, 0x34] ldr r7, [sp] mov r4, r9 muls r4, r7 asrs r4, 8 mov r8, r4 str r4, [r6, 0x38] lsls r0, 16 asrs r0, 8 lsls r2, 16 asrs r2, 16 lsls r4, r2, 8 adds r0, r4 lsls r3, 16 asrs r3, 16 adds r4, r3, 0 muls r4, r5 mov r5, r10 muls r5, r2 adds r4, r5 subs r0, r4 str r0, [r6, 0x24] lsls r1, 16 asrs r1, 8 lsls r0, r3, 8 adds r1, r0 mov r0, r8 muls r0, r3 mov r3, r12 muls r3, r2 adds r2, r3, 0 adds r0, r2 subs r1, r0 str r1, [r6, 0x28] adds r6, 0x7D movs r0, 0x1 strb r0, [r6] add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FB230: .4byte gUnknown_020388CC _080FB234: .4byte gSineTable thumb_func_end sub_80FB170 thumb_func_start sub_80FB238 sub_80FB238: @ 80FB238 ldr r2, _080FB25C @ =gUnknown_020388CC ldr r2, [r2] lsls r0, 16 asrs r0, 8 movs r3, 0xE0 lsls r3, 5 adds r0, r3 str r0, [r2, 0x24] lsls r1, 16 asrs r1, 8 movs r0, 0x90 lsls r0, 6 adds r1, r0 str r1, [r2, 0x28] adds r2, 0x7D movs r0, 0x1 strb r0, [r2] bx lr .align 2, 0 _080FB25C: .4byte gUnknown_020388CC thumb_func_end sub_80FB238 thumb_func_start sub_80FB260 sub_80FB260: @ 80FB260 push {lr} ldr r0, _080FB29C @ =gUnknown_020388CC ldr r2, [r0] adds r3, r2, 0 adds r3, 0x7D ldrb r0, [r3] cmp r0, 0 beq _080FB298 ldr r1, _080FB2A0 @ =REG_BG2PA ldr r0, [r2, 0x2C] strh r0, [r1] adds r1, 0x2 ldr r0, [r2, 0x34] strh r0, [r1] adds r1, 0x2 ldr r0, [r2, 0x30] strh r0, [r1] adds r1, 0x2 ldr r0, [r2, 0x38] strh r0, [r1] adds r1, 0x2 ldr r0, [r2, 0x24] str r0, [r1] adds r1, 0x4 ldr r0, [r2, 0x28] str r0, [r1] movs r0, 0 strb r0, [r3] _080FB298: pop {r0} bx r0 .align 2, 0 _080FB29C: .4byte gUnknown_020388CC _080FB2A0: .4byte REG_BG2PA thumb_func_end sub_80FB260 thumb_func_start sub_80FB2A4 sub_80FB2A4: @ 80FB2A4 push {r4,r5,lr} sub sp, 0xC lsls r0, 16 asrs r4, r0, 16 lsls r1, 16 asrs r5, r1, 16 movs r0, 0x80 lsls r0, 1 str r0, [sp] str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x38 movs r3, 0x48 bl sub_80FB170 bl sub_80FB260 ldr r0, _080FB2E8 @ =gUnknown_020388CC ldr r2, [r0] ldr r1, [r2, 0x20] cmp r1, 0 beq _080FB2E0 negs r0, r4 strh r0, [r1, 0x24] ldr r1, [r2, 0x20] negs r0, r5 strh r0, [r1, 0x26] _080FB2E0: add sp, 0xC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FB2E8: .4byte gUnknown_020388CC thumb_func_end sub_80FB2A4 thumb_func_start sub_80FB2EC sub_80FB2EC: @ 80FB2EC push {lr} lsls r0, 16 lsrs r3, r0, 16 lsls r1, 16 ldr r0, _080FB30C @ =0xfffe0000 adds r1, r0 lsrs r2, r1, 16 cmp r2, 0xE bhi _080FB306 cmp r3, 0 beq _080FB306 cmp r3, 0x1C bls _080FB310 _080FB306: movs r0, 0x58 b _080FB324 .align 2, 0 _080FB30C: .4byte 0xfffe0000 _080FB310: subs r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 ldr r1, _080FB328 @ =gRegionMapSections lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r3, r0 adds r0, r1 ldrb r0, [r0] _080FB324: pop {r1} bx r1 .align 2, 0 _080FB328: .4byte gRegionMapSections thumb_func_end sub_80FB2EC thumb_func_start sub_80FB32C sub_80FB32C: @ 80FB32C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r0, _080FB358 @ =gSaveBlock1 movs r1, 0x4 ldrsb r1, [r0, r1] adds r2, r0, 0 cmp r1, 0x19 bne _080FB35C ldrb r0, [r2, 0x5] subs r0, 0x29 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bhi _080FB35C bl sub_80FB600 b _080FB5E8 .align 2, 0 _080FB358: .4byte gSaveBlock1 _080FB35C: movs r0, 0x4 ldrsb r0, [r2, r0] movs r1, 0x5 ldrsb r1, [r2, r1] bl get_map_light_level_by_bank_and_number lsls r0, 24 lsrs r0, 24 subs r0, 0x1 cmp r0, 0x8 bhi _080FB3A4 lsls r0, 2 ldr r1, _080FB37C @ =_080FB380 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080FB37C: .4byte _080FB380 .align 2, 0 _080FB380: .4byte _080FB3A4 .4byte _080FB3A4 .4byte _080FB3A4 .4byte _080FB3E0 .4byte _080FB3A4 .4byte _080FB3A4 .4byte _080FB3E0 .4byte _080FB464 .4byte _080FB428 _080FB3A4: ldr r4, _080FB3D4 @ =gUnknown_020388CC ldr r0, [r4] ldr r3, _080FB3D8 @ =gMapHeader ldrb r1, [r3, 0x14] movs r2, 0 strh r1, [r0, 0x14] adds r0, 0x7F strb r2, [r0] ldr r0, [r3] ldrh r2, [r0] ldrh r0, [r0, 0x4] mov r8, r0 ldr r0, _080FB3DC @ =gSaveBlock1 ldrh r6, [r0] ldrh r3, [r0, 0x2] ldr r1, [r4] ldrh r0, [r1, 0x14] cmp r0, 0x45 beq _080FB3CC b _080FB4CC _080FB3CC: adds r1, 0x7F movs r0, 0x1 strb r0, [r1] b _080FB4CC .align 2, 0 _080FB3D4: .4byte gUnknown_020388CC _080FB3D8: .4byte gMapHeader _080FB3DC: .4byte gSaveBlock1 _080FB3E0: ldr r4, _080FB420 @ =gSaveBlock1 adds r0, r4, 0 adds r0, 0x24 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 16 lsrs r0, 16 adds r1, r4, 0 adds r1, 0x25 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 lsls r1, 16 lsrs r1, 16 bl get_mapheader_by_bank_and_number adds r2, r0, 0 ldr r0, _080FB424 @ =gUnknown_020388CC ldr r0, [r0] ldrb r1, [r2, 0x14] strh r1, [r0, 0x14] adds r0, 0x7F movs r1, 0x1 strb r1, [r0] ldr r0, [r2] ldrh r2, [r0] ldrh r0, [r0, 0x4] mov r8, r0 ldrh r6, [r4, 0x28] ldrh r3, [r4, 0x2A] b _080FB4CC .align 2, 0 _080FB420: .4byte gSaveBlock1 _080FB424: .4byte gUnknown_020388CC _080FB428: ldr r4, _080FB45C @ =gSaveBlock1 movs r0, 0x14 ldrsb r0, [r4, r0] lsls r0, 16 lsrs r0, 16 movs r1, 0x15 ldrsb r1, [r4, r1] lsls r1, 16 lsrs r1, 16 bl get_mapheader_by_bank_and_number adds r2, r0, 0 ldr r0, _080FB460 @ =gUnknown_020388CC ldr r0, [r0] ldrb r1, [r2, 0x14] strh r1, [r0, 0x14] adds r0, 0x7F movs r1, 0x1 strb r1, [r0] ldr r0, [r2] ldrh r2, [r0] ldrh r0, [r0, 0x4] mov r8, r0 ldrh r6, [r4, 0x18] ldrh r3, [r4, 0x1A] b _080FB4CC .align 2, 0 _080FB45C: .4byte gSaveBlock1 _080FB460: .4byte gUnknown_020388CC _080FB464: ldr r5, _080FB48C @ =gUnknown_020388CC ldr r0, [r5] ldr r1, _080FB490 @ =gMapHeader ldrb r1, [r1, 0x14] strh r1, [r0, 0x14] cmp r1, 0x57 beq _080FB498 ldr r4, _080FB494 @ =gSaveBlock1 + 0x24 movs r0, 0 ldrsb r0, [r4, r0] lsls r0, 16 lsrs r0, 16 movs r1, 0x1 ldrsb r1, [r4, r1] lsls r1, 16 lsrs r1, 16 bl get_mapheader_by_bank_and_number adds r2, r0, 0 b _080FB4B6 .align 2, 0 _080FB48C: .4byte gUnknown_020388CC _080FB490: .4byte gMapHeader _080FB494: .4byte gSaveBlock1 + 0x24 _080FB498: ldr r4, _080FB548 @ =gSaveBlock1 + 0x14 movs r0, 0 ldrsb r0, [r4, r0] lsls r0, 16 lsrs r0, 16 movs r1, 0x1 ldrsb r1, [r4, r1] lsls r1, 16 lsrs r1, 16 bl get_mapheader_by_bank_and_number adds r2, r0, 0 ldr r1, [r5] ldrb r0, [r2, 0x14] strh r0, [r1, 0x14] _080FB4B6: ldr r0, _080FB54C @ =gUnknown_020388CC ldr r0, [r0] adds r0, 0x7F movs r1, 0 strb r1, [r0] ldr r0, [r2] ldrh r2, [r0] ldrh r0, [r0, 0x4] mov r8, r0 ldrh r6, [r4, 0x4] ldrh r3, [r4, 0x6] _080FB4CC: mov r9, r6 ldr r4, _080FB54C @ =gUnknown_020388CC ldr r0, [r4] ldrh r5, [r0, 0x14] lsls r0, r5, 3 ldr r1, _080FB550 @ =gRegionMapLocations adds r0, r1 mov r10, r0 ldrb r7, [r0, 0x2] adds r0, r2, 0 adds r1, r7, 0 str r3, [sp] bl __divsi3 lsls r0, 16 lsrs r1, r0, 16 ldr r3, [sp] cmp r1, 0 bne _080FB4F4 movs r1, 0x1 _080FB4F4: adds r0, r6, 0 str r3, [sp] bl __udivsi3 lsls r0, 16 lsrs r6, r0, 16 ldr r3, [sp] cmp r6, r7 bcc _080FB50C subs r0, r7, 0x1 lsls r0, 16 lsrs r6, r0, 16 _080FB50C: mov r2, r10 ldrb r4, [r2, 0x3] mov r0, r8 adds r1, r4, 0 str r3, [sp] bl __divsi3 lsls r0, 16 lsrs r1, r0, 16 ldr r3, [sp] cmp r1, 0 bne _080FB526 movs r1, 0x1 _080FB526: adds r0, r3, 0 bl __udivsi3 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r4 bcc _080FB53A subs r0, r4, 0x1 lsls r0, 16 lsrs r3, r0, 16 _080FB53A: cmp r5, 0x24 beq _080FB59C cmp r5, 0x24 bgt _080FB554 cmp r5, 0x1D beq _080FB55E b _080FB5BE .align 2, 0 _080FB548: .4byte gSaveBlock1 + 0x14 _080FB54C: .4byte gUnknown_020388CC _080FB550: .4byte gRegionMapLocations _080FB554: cmp r5, 0x29 beq _080FB566 cmp r5, 0x33 beq _080FB566 b _080FB5BE _080FB55E: cmp r3, 0 beq _080FB5BE movs r6, 0 b _080FB5BE _080FB566: movs r6, 0 ldr r1, _080FB598 @ =gSaveBlock1 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0x20 ble _080FB574 movs r6, 0x1 _080FB574: cmp r0, 0x33 ble _080FB57E adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 _080FB57E: movs r3, 0 movs r2, 0x2 ldrsh r0, [r1, r2] cmp r0, 0x25 ble _080FB58A movs r3, 0x1 _080FB58A: cmp r0, 0x38 ble _080FB5BE adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 b _080FB5BE .align 2, 0 _080FB598: .4byte gSaveBlock1 _080FB59C: movs r6, 0 mov r0, r9 cmp r0, 0xE bls _080FB5A6 movs r6, 0x1 _080FB5A6: mov r1, r9 cmp r1, 0x1C bls _080FB5B2 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 _080FB5B2: mov r2, r9 cmp r2, 0x36 bls _080FB5BE adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 _080FB5BE: ldr r0, _080FB5F8 @ =gUnknown_020388CC ldr r2, [r0] ldrh r0, [r2, 0x14] lsls r0, 3 ldr r1, _080FB5FC @ =gRegionMapLocations adds r0, r1 ldrb r0, [r0] adds r0, r6, r0 adds r0, 0x1 adds r1, r2, 0 adds r1, 0x54 strh r0, [r1] ldrh r0, [r2, 0x14] lsls r0, 3 ldr r1, _080FB5FC @ =gRegionMapLocations adds r0, r1 ldrb r0, [r0, 0x1] adds r0, r3, r0 adds r0, 0x2 adds r2, 0x56 strh r0, [r2] _080FB5E8: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FB5F8: .4byte gUnknown_020388CC _080FB5FC: .4byte gRegionMapLocations thumb_func_end sub_80FB32C thumb_func_start sub_80FB600 sub_80FB600: @ 80FB600 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r7, 0 movs r0, 0 mov r8, r0 mov r4, sp adds r4, 0x1 mov r5, sp adds r5, 0x2 add r6, sp, 0x4 mov r0, sp adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl sub_810D9EC lsls r0, 24 lsrs r0, 24 mov r10, r5 cmp r0, 0x4 bhi _080FB694 lsls r0, 2 ldr r1, _080FB63C @ =_080FB640 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080FB63C: .4byte _080FB640 .align 2, 0 _080FB640: .4byte _080FB694 .4byte _080FB654 .4byte _080FB664 .4byte _080FB674 .4byte _080FB684 _080FB654: ldr r2, _080FB660 @ =gUnknown_020388CC ldr r1, [r2] movs r0, 0x8 strh r0, [r1, 0x14] b _080FB710 .align 2, 0 _080FB660: .4byte gUnknown_020388CC _080FB664: ldr r2, _080FB670 @ =gUnknown_020388CC ldr r1, [r2] movs r0, 0xC strh r0, [r1, 0x14] b _080FB710 .align 2, 0 _080FB670: .4byte gUnknown_020388CC _080FB674: ldr r2, _080FB680 @ =gUnknown_020388CC ldr r1, [r2] movs r0, 0x27 strh r0, [r1, 0x14] b _080FB710 .align 2, 0 _080FB680: .4byte gUnknown_020388CC _080FB684: ldr r2, _080FB690 @ =gUnknown_020388CC ldr r1, [r2] movs r0, 0x2E strh r0, [r1, 0x14] b _080FB710 .align 2, 0 _080FB690: .4byte gUnknown_020388CC _080FB694: mov r0, sp ldrb r0, [r0] ldrb r1, [r4] bl get_mapheader_by_bank_and_number ldr r1, _080FB750 @ =gUnknown_020388CC mov r9, r1 ldr r2, [r1] ldrb r1, [r0, 0x14] strh r1, [r2, 0x14] ldr r6, [r0] ldr r1, _080FB754 @ =gRegionMapLocations ldrh r0, [r2, 0x14] lsls r0, 3 adds r5, r0, r1 ldrb r4, [r5, 0x2] ldr r0, [r6] adds r1, r4, 0 bl __divsi3 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _080FB6C6 movs r1, 0x1 _080FB6C6: mov r2, r10 movs r3, 0 ldrsh r0, [r2, r3] bl __divsi3 lsls r0, 16 lsrs r0, 16 mov r8, r0 cmp r8, r4 bcc _080FB6E2 subs r0, r4, 0x1 lsls r0, 16 lsrs r0, 16 mov r8, r0 _080FB6E2: ldrb r4, [r5, 0x3] ldr r0, [r6, 0x4] adds r1, r4, 0 bl __divsi3 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _080FB6F6 movs r1, 0x1 _080FB6F6: mov r2, sp movs r3, 0x4 ldrsh r0, [r2, r3] bl __divsi3 lsls r0, 16 lsrs r7, r0, 16 mov r2, r9 cmp r7, r4 bcc _080FB710 subs r0, r4, 0x1 lsls r0, 16 lsrs r7, r0, 16 _080FB710: ldr r0, [r2] adds r0, 0x7F movs r1, 0 strb r1, [r0] ldr r2, [r2] ldr r3, _080FB754 @ =gRegionMapLocations ldrh r0, [r2, 0x14] lsls r0, 3 adds r0, r3 ldrb r0, [r0] add r0, r8 adds r0, 0x1 adds r1, r2, 0 adds r1, 0x54 strh r0, [r1] ldrh r0, [r2, 0x14] lsls r0, 3 adds r0, r3 ldrb r0, [r0, 0x1] adds r0, r7, r0 adds r0, 0x2 adds r2, 0x56 strh r0, [r2] add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FB750: .4byte gUnknown_020388CC _080FB754: .4byte gRegionMapLocations thumb_func_end sub_80FB600 thumb_func_start sub_80FB758 sub_80FB758: @ 80FB758 push {lr} lsls r0, 16 lsrs r0, 16 cmp r0, 0x58 bls _080FB764 b _080FB9A0 _080FB764: lsls r0, 2 ldr r1, _080FB770 @ =_080FB774 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080FB770: .4byte _080FB774 .align 2, 0 _080FB774: .4byte _080FB8DC .4byte _080FB8E4 .4byte _080FB8EA .4byte _080FB8F4 .4byte _080FB8FC .4byte _080FB904 .4byte _080FB90C .4byte _080FB914 .4byte _080FB91C .4byte _080FB924 .4byte _080FB92C .4byte _080FB934 .4byte _080FB93C .4byte _080FB944 .4byte _080FB94C .4byte _080FB954 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB96C .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB988 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB8D8 _080FB8D8: movs r0, 0 b _080FB9A2 _080FB8DC: ldr r0, _080FB8E0 @ =0x0000080f b _080FB956 .align 2, 0 _080FB8E0: .4byte 0x0000080f _080FB8E4: movs r0, 0x81 lsls r0, 4 b _080FB956 _080FB8EA: ldr r0, _080FB8F0 @ =0x00000811 b _080FB956 .align 2, 0 _080FB8F0: .4byte 0x00000811 _080FB8F4: ldr r0, _080FB8F8 @ =0x00000812 b _080FB956 .align 2, 0 _080FB8F8: .4byte 0x00000812 _080FB8FC: ldr r0, _080FB900 @ =0x00000813 b _080FB956 .align 2, 0 _080FB900: .4byte 0x00000813 _080FB904: ldr r0, _080FB908 @ =0x00000814 b _080FB956 .align 2, 0 _080FB908: .4byte 0x00000814 _080FB90C: ldr r0, _080FB910 @ =0x00000815 b _080FB956 .align 2, 0 _080FB910: .4byte 0x00000815 _080FB914: ldr r0, _080FB918 @ =0x00000816 b _080FB956 .align 2, 0 _080FB918: .4byte 0x00000816 _080FB91C: ldr r0, _080FB920 @ =0x00000817 b _080FB956 .align 2, 0 _080FB920: .4byte 0x00000817 _080FB924: ldr r0, _080FB928 @ =0x00000818 b _080FB956 .align 2, 0 _080FB928: .4byte 0x00000818 _080FB92C: ldr r0, _080FB930 @ =0x00000819 b _080FB956 .align 2, 0 _080FB930: .4byte 0x00000819 _080FB934: ldr r0, _080FB938 @ =0x0000081a b _080FB956 .align 2, 0 _080FB938: .4byte 0x0000081a _080FB93C: ldr r0, _080FB940 @ =0x0000081b b _080FB956 .align 2, 0 _080FB940: .4byte 0x0000081b _080FB944: ldr r0, _080FB948 @ =0x0000081c b _080FB956 .align 2, 0 _080FB948: .4byte 0x0000081c _080FB94C: ldr r0, _080FB950 @ =0x0000081d b _080FB956 .align 2, 0 _080FB950: .4byte 0x0000081d _080FB954: ldr r0, _080FB968 @ =0x0000081e _080FB956: bl FlagGet lsls r0, 24 movs r1, 0x3 cmp r0, 0 beq _080FB964 movs r1, 0x2 _080FB964: adds r0, r1, 0 b _080FB9A2 .align 2, 0 _080FB968: .4byte 0x0000081e _080FB96C: ldr r0, _080FB984 @ =0x00000848 bl FlagGet adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 negs r0, r1 orrs r0, r1 asrs r0, 31 movs r1, 0x4 ands r0, r1 b _080FB9A2 .align 2, 0 _080FB984: .4byte 0x00000848 _080FB988: ldr r0, _080FB99C @ =0x00000849 bl FlagGet adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 negs r0, r1 orrs r0, r1 lsrs r0, 31 b _080FB9A2 .align 2, 0 _080FB99C: .4byte 0x00000849 _080FB9A0: movs r0, 0x1 _080FB9A2: pop {r1} bx r1 thumb_func_end sub_80FB758 thumb_func_start sub_80FB9A8 sub_80FB9A8: @ 80FB9A8 push {lr} lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r1, 16 bl sub_80FB2EC lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end sub_80FB9A8 thumb_func_start sub_80FB9C0 sub_80FB9C0: @ 80FB9C0 push {r4-r6,lr} lsls r0, 16 lsrs r3, r0, 16 movs r2, 0 ldr r0, _080FB9E8 @ =gUnknown_083E7684 ldrh r1, [r0] adds r4, r0, 0 cmp r1, 0x58 beq _080FB9FC adds r5, r4, 0 adds r6, r4, 0x2 _080FB9D6: lsls r1, r2, 2 adds r0, r1, r5 ldrh r0, [r0] cmp r0, r3 bne _080FB9EC adds r0, r1, r6 ldrh r0, [r0] b _080FB9FE .align 2, 0 _080FB9E8: .4byte gUnknown_083E7684 _080FB9EC: adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 lsls r0, r2, 2 adds r0, r4 ldrh r0, [r0] cmp r0, 0x58 bne _080FB9D6 _080FB9FC: adds r0, r3, 0 _080FB9FE: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80FB9C0 thumb_func_start sub_80FBA04 sub_80FBA04: @ 80FBA04 push {lr} lsls r0, 16 lsrs r0, 16 bl sub_80FB9C0 lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end sub_80FBA04 thumb_func_start sub_80FBA18 sub_80FBA18: @ 80FBA18 push {r4-r6,lr} ldr r0, _080FBA2C @ =gUnknown_020388CC ldr r1, [r0] ldrh r0, [r1, 0x14] cmp r0, 0x58 bne _080FBA30 movs r0, 0 strb r0, [r1, 0x17] b _080FBA96 .align 2, 0 _080FBA2C: .4byte gUnknown_020388CC _080FBA30: adds r0, r1, 0 adds r0, 0x78 ldrb r0, [r0] cmp r0, 0 bne _080FBA40 adds r0, r1, 0 adds r0, 0x54 b _080FBA44 _080FBA40: adds r0, r1, 0 adds r0, 0x64 _080FBA44: ldrh r4, [r0] adds r0, 0x2 ldrh r5, [r0] movs r6, 0 b _080FBA70 _080FBA4E: subs r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 adds r1, r5, 0 bl sub_80FB2EC ldr r1, _080FBA8C @ =gUnknown_020388CC ldr r1, [r1] lsls r0, 16 lsrs r0, 16 ldrh r1, [r1, 0x14] cmp r0, r1 bne _080FBA70 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 _080FBA70: cmp r4, 0x1 bhi _080FBA4E adds r0, r5, 0 bl sub_80FBAA0 lsls r0, 24 cmp r0, 0 beq _080FBA90 subs r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 movs r4, 0x1D b _080FBA70 .align 2, 0 _080FBA8C: .4byte gUnknown_020388CC _080FBA90: ldr r0, _080FBA9C @ =gUnknown_020388CC ldr r0, [r0] strb r6, [r0, 0x17] _080FBA96: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080FBA9C: .4byte gUnknown_020388CC thumb_func_end sub_80FBA18 thumb_func_start sub_80FBAA0 sub_80FBAA0: @ 80FBAA0 push {r4,r5,lr} lsls r0, 16 ldr r1, _080FBAB4 @ =0xffff0000 adds r0, r1 lsrs r5, r0, 16 ldr r0, _080FBAB8 @ =0x0000ffff cmp r5, r0 bne _080FBAC0 b _080FBAE2 .align 2, 0 _080FBAB4: .4byte 0xffff0000 _080FBAB8: .4byte 0x0000ffff _080FBABC: movs r0, 0x1 b _080FBAE4 _080FBAC0: movs r4, 0x1 _080FBAC2: adds r0, r4, 0 adds r1, r5, 0 bl sub_80FB2EC ldr r1, _080FBAEC @ =gUnknown_020388CC ldr r1, [r1] lsls r0, 16 lsrs r0, 16 ldrh r1, [r1, 0x14] cmp r0, r1 beq _080FBABC adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1C bls _080FBAC2 _080FBAE2: movs r0, 0 _080FBAE4: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080FBAEC: .4byte gUnknown_020388CC thumb_func_end sub_80FBAA0 thumb_func_start sub_80FBAF0 sub_80FBAF0: @ 80FBAF0 push {r4,lr} adds r2, r0, 0 ldr r0, _080FBB34 @ =gUnknown_020388CC ldr r1, [r0] adds r3, r1, 0 adds r3, 0x7A movs r0, 0 ldrsb r0, [r3, r0] cmp r0, 0 beq _080FBB2E adds r0, r1, 0 adds r0, 0x7B ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 1 ldrh r4, [r2, 0x20] adds r0, r4 strh r0, [r2, 0x20] adds r0, r1, 0 adds r0, 0x7C ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 1 ldrh r1, [r2, 0x22] adds r0, r1 strh r0, [r2, 0x22] ldrb r0, [r3] subs r0, 0x1 strb r0, [r3] _080FBB2E: pop {r4} pop {r0} bx r0 .align 2, 0 _080FBB34: .4byte gUnknown_020388CC thumb_func_end sub_80FBAF0 thumb_func_start nullsub_66 nullsub_66: @ 80FBB38 bx lr thumb_func_end nullsub_66 thumb_func_start sub_80FBB3C sub_80FBB3C: @ 80FBB3C push {r4-r7,lr} sub sp, 0x28 lsls r0, 16 lsls r1, 16 lsrs r6, r1, 16 ldr r1, _080FBBAC @ =gUnknown_083E76E8 ldr r2, [r1, 0x4] ldr r1, [r1] str r1, [sp, 0x20] str r2, [sp, 0x24] mov r2, sp ldr r1, _080FBBB0 @ =gSpriteTemplate_83E76F0 ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} lsrs r3, r0, 16 add r2, sp, 0x18 ldrh r1, [r2, 0x4] orrs r1, r0 str r1, [r2, 0x4] mov r0, sp strh r3, [r0] ldr r0, _080FBBB4 @ =gUnknown_020388CC ldr r4, [r0] adds r0, r4, 0 adds r0, 0x58 strh r3, [r0] ldr r5, _080FBBB8 @ =0xffff0000 add r1, sp, 0x20 ldr r0, [r1, 0x4] ands r0, r5 orrs r0, r6 str r0, [r1, 0x4] mov r0, sp strh r6, [r0, 0x2] adds r3, r4, 0 adds r0, r3, 0 adds r0, 0x5A strh r6, [r0] adds r0, 0x1E ldrb r0, [r0] adds r7, r1, 0 cmp r0, 0 bne _080FBBC0 movs r1, 0xC0 lsls r1, 1 adds r0, r3, r1 str r0, [sp, 0x18] ldr r0, [r2, 0x4] ands r0, r5 subs r1, 0x80 orrs r0, r1 str r0, [r2, 0x4] ldr r0, _080FBBBC @ =sub_80FBAF0 b _080FBBD6 .align 2, 0 _080FBBAC: .4byte gUnknown_083E76E8 _080FBBB0: .4byte gSpriteTemplate_83E76F0 _080FBBB4: .4byte gUnknown_020388CC _080FBBB8: .4byte 0xffff0000 _080FBBBC: .4byte sub_80FBAF0 _080FBBC0: movs r3, 0xA0 lsls r3, 2 adds r0, r4, r3 str r0, [sp, 0x18] ldr r0, [r2, 0x4] ands r0, r5 movs r1, 0xC0 lsls r1, 3 orrs r0, r1 str r0, [r2, 0x4] ldr r0, _080FBC38 @ =nullsub_66 _080FBBD6: str r0, [sp, 0x14] adds r0, r2, 0 bl LoadSpriteSheet adds r0, r7, 0 bl LoadSpritePalette mov r0, sp movs r1, 0x38 movs r2, 0x48 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _080FBC90 ldr r4, _080FBC3C @ =gUnknown_020388CC ldr r2, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080FBC40 @ =gSprites adds r3, r0, r1 str r3, [r2, 0x1C] adds r2, 0x78 ldrb r0, [r2] cmp r0, 0x1 bne _080FBC44 ldrb r1, [r3, 0x3] movs r0, 0x3F ands r0, r1 movs r1, 0x80 orrs r0, r1 strb r0, [r3, 0x3] ldr r2, [r4] ldr r1, [r2, 0x1C] ldrh r0, [r1, 0x20] subs r0, 0x8 strh r0, [r1, 0x20] ldr r1, [r2, 0x1C] ldrh r0, [r1, 0x22] subs r0, 0x8 strh r0, [r1, 0x22] ldr r0, [r2, 0x1C] movs r1, 0x1 bl StartSpriteAnim b _080FBC6C .align 2, 0 _080FBC38: .4byte nullsub_66 _080FBC3C: .4byte gUnknown_020388CC _080FBC40: .4byte gSprites _080FBC44: ldrb r1, [r3, 0x3] movs r0, 0x3F ands r0, r1 movs r1, 0x40 orrs r0, r1 strb r0, [r3, 0x3] ldr r1, [r4] ldr r2, [r1, 0x1C] adds r0, r1, 0 adds r0, 0x54 ldrh r0, [r0] lsls r0, 3 adds r0, 0x4 strh r0, [r2, 0x20] ldr r2, [r1, 0x1C] adds r1, 0x56 ldrh r0, [r1] lsls r0, 3 adds r0, 0x4 strh r0, [r2, 0x22] _080FBC6C: ldr r4, _080FBC98 @ =gUnknown_020388CC ldr r0, [r4] ldr r1, [r0, 0x1C] movs r0, 0x2 strh r0, [r1, 0x30] adds r0, r6, 0 bl IndexOfSpritePaletteTag ldr r1, [r4] ldr r2, [r1, 0x1C] lsls r0, 24 lsrs r0, 20 ldr r4, _080FBC9C @ =0x00000101 adds r0, r4 strh r0, [r2, 0x32] ldr r1, [r1, 0x1C] movs r0, 0x1 strh r0, [r1, 0x34] _080FBC90: add sp, 0x28 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FBC98: .4byte gUnknown_020388CC _080FBC9C: .4byte 0x00000101 thumb_func_end sub_80FBB3C thumb_func_start sub_80FBCA0 sub_80FBCA0: @ 80FBCA0 push {r4,lr} ldr r4, _080FBCCC @ =gUnknown_020388CC ldr r0, [r4] ldr r0, [r0, 0x1C] cmp r0, 0 beq _080FBCC4 bl DestroySprite ldr r0, [r4] adds r0, 0x58 ldrh r0, [r0] bl FreeSpriteTilesByTag ldr r0, [r4] adds r0, 0x5A ldrh r0, [r0] bl FreeSpritePaletteByTag _080FBCC4: pop {r4} pop {r0} bx r0 .align 2, 0 _080FBCCC: .4byte gUnknown_020388CC thumb_func_end sub_80FBCA0 thumb_func_start unref_sub_80FBCD0 unref_sub_80FBCD0: @ 80FBCD0 ldr r0, _080FBCDC @ =gUnknown_020388CC ldr r0, [r0] ldr r1, [r0, 0x1C] movs r0, 0x1 strh r0, [r1, 0x34] bx lr .align 2, 0 _080FBCDC: .4byte gUnknown_020388CC thumb_func_end unref_sub_80FBCD0 thumb_func_start unref_sub_80FBCE0 unref_sub_80FBCE0: @ 80FBCE0 ldr r0, _080FBCEC @ =gUnknown_020388CC ldr r0, [r0] ldr r1, [r0, 0x1C] movs r0, 0 strh r0, [r1, 0x34] bx lr .align 2, 0 _080FBCEC: .4byte gUnknown_020388CC thumb_func_end unref_sub_80FBCE0 thumb_func_start sub_80FBCF0 sub_80FBCF0: @ 80FBCF0 push {r4,r5,lr} sub sp, 0x28 lsls r0, 16 lsls r1, 16 lsrs r1, 16 ldr r2, _080FBD98 @ =gUnknown_083E5C40 str r2, [sp, 0x18] movs r2, 0x80 add r5, sp, 0x18 lsrs r3, r0, 16 orrs r0, r2 str r0, [r5, 0x4] ldr r0, _080FBD9C @ =gUnknown_083E5C20 str r0, [sp, 0x20] ldr r2, _080FBDA0 @ =0xffff0000 add r4, sp, 0x20 ldr r0, [r4, 0x4] ands r0, r2 orrs r0, r1 str r0, [r4, 0x4] mov r0, sp movs r2, 0 strh r3, [r0] strh r1, [r0, 0x2] ldr r0, _080FBDA4 @ =gUnknown_083E7708 str r0, [sp, 0x4] ldr r0, _080FBDA8 @ =gUnknown_083E7718 str r0, [sp, 0x8] str r2, [sp, 0xC] ldr r0, _080FBDAC @ =gDummySpriteAffineAnimTable str r0, [sp, 0x10] ldr r0, _080FBDB0 @ =SpriteCallbackDummy str r0, [sp, 0x14] ldr r0, _080FBDB4 @ =gSaveBlock2 ldrb r0, [r0, 0x8] cmp r0, 0x1 bne _080FBD42 ldr r0, _080FBDB8 @ =gUnknown_083E5CE0 str r0, [sp, 0x18] ldr r0, _080FBDBC @ =gUnknown_083E5CC0 str r0, [sp, 0x20] _080FBD42: adds r0, r5, 0 bl LoadSpriteSheet adds r0, r4, 0 bl LoadSpritePalette mov r0, sp movs r1, 0 movs r2, 0 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, _080FBDC0 @ =gUnknown_020388CC ldr r2, [r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _080FBDC4 @ =gSprites adds r1, r0 str r1, [r2, 0x20] adds r0, r2, 0 adds r0, 0x78 ldrb r0, [r0] cmp r0, 0 bne _080FBDCC adds r0, r2, 0 adds r0, 0x74 ldrh r0, [r0] lsls r0, 3 adds r0, 0x4 strh r0, [r1, 0x20] ldr r1, [r2, 0x20] adds r0, r2, 0 adds r0, 0x76 ldrh r0, [r0] lsls r0, 3 adds r0, 0x4 strh r0, [r1, 0x22] ldr r1, [r2, 0x20] ldr r0, _080FBDC8 @ =sub_80FBF34 b _080FBDEA .align 2, 0 _080FBD98: .4byte gUnknown_083E5C40 _080FBD9C: .4byte gUnknown_083E5C20 _080FBDA0: .4byte 0xffff0000 _080FBDA4: .4byte gUnknown_083E7708 _080FBDA8: .4byte gUnknown_083E7718 _080FBDAC: .4byte gDummySpriteAffineAnimTable _080FBDB0: .4byte SpriteCallbackDummy _080FBDB4: .4byte gSaveBlock2 _080FBDB8: .4byte gUnknown_083E5CE0 _080FBDBC: .4byte gUnknown_083E5CC0 _080FBDC0: .4byte gUnknown_020388CC _080FBDC4: .4byte gSprites _080FBDC8: .4byte sub_80FBF34 _080FBDCC: adds r0, r2, 0 adds r0, 0x74 ldrh r0, [r0] lsls r0, 4 subs r0, 0x30 strh r0, [r1, 0x20] ldr r1, [r2, 0x20] adds r0, r2, 0 adds r0, 0x76 ldrh r0, [r0] lsls r0, 4 subs r0, 0x42 strh r0, [r1, 0x22] ldr r1, [r2, 0x20] ldr r0, _080FBDF4 @ =sub_80FBEA4 _080FBDEA: str r0, [r1, 0x1C] add sp, 0x28 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FBDF4: .4byte sub_80FBEA4 thumb_func_end sub_80FBCF0 thumb_func_start sub_80FBDF8 sub_80FBDF8: @ 80FBDF8 push {lr} ldr r3, _080FBE1C @ =gUnknown_020388CC ldr r0, [r3] ldr r2, [r0, 0x20] cmp r2, 0 beq _080FBE16 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, [r3] ldr r1, [r0, 0x20] ldr r0, _080FBE20 @ =SpriteCallbackDummy str r0, [r1, 0x1C] _080FBE16: pop {r0} bx r0 .align 2, 0 _080FBE1C: .4byte gUnknown_020388CC _080FBE20: .4byte SpriteCallbackDummy thumb_func_end sub_80FBDF8 thumb_func_start sub_80FBE24 sub_80FBE24: @ 80FBE24 push {lr} ldr r0, _080FBE5C @ =gUnknown_020388CC ldr r3, [r0] ldr r1, [r3, 0x20] cmp r1, 0 beq _080FBE9A adds r0, r3, 0 adds r0, 0x78 ldrb r0, [r0] cmp r0, 0x1 bne _080FBE64 adds r0, r3, 0 adds r0, 0x74 ldrh r0, [r0] lsls r0, 4 subs r0, 0x30 strh r0, [r1, 0x20] ldr r1, [r3, 0x20] adds r0, r3, 0 adds r0, 0x76 ldrh r0, [r0] lsls r0, 4 subs r0, 0x42 strh r0, [r1, 0x22] ldr r1, [r3, 0x20] ldr r0, _080FBE60 @ =sub_80FBEA4 b _080FBE8C .align 2, 0 _080FBE5C: .4byte gUnknown_020388CC _080FBE60: .4byte sub_80FBEA4 _080FBE64: adds r0, r3, 0 adds r0, 0x74 ldrh r0, [r0] lsls r0, 3 adds r0, 0x4 movs r2, 0 strh r0, [r1, 0x20] ldr r1, [r3, 0x20] adds r0, r3, 0 adds r0, 0x76 ldrh r0, [r0] lsls r0, 3 adds r0, 0x4 strh r0, [r1, 0x22] ldr r0, [r3, 0x20] strh r2, [r0, 0x24] ldr r0, [r3, 0x20] strh r2, [r0, 0x26] ldr r1, [r3, 0x20] ldr r0, _080FBEA0 @ =sub_80FBF34 _080FBE8C: str r0, [r1, 0x1C] adds r1, 0x3E ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1] _080FBE9A: pop {r0} bx r0 .align 2, 0 _080FBEA0: .4byte sub_80FBF34 thumb_func_end sub_80FBE24 thumb_func_start sub_80FBEA4 sub_80FBEA4: @ 80FBEA4 push {r4,lr} adds r3, r0, 0 ldr r0, _080FBF08 @ =gUnknown_020388CC ldr r1, [r0] adds r0, r1, 0 adds r0, 0x5C movs r4, 0 ldrsh r2, [r0, r4] lsls r2, 1 negs r2, r2 strh r2, [r3, 0x24] adds r1, 0x5E movs r4, 0 ldrsh r0, [r1, r4] lsls r0, 1 negs r0, r0 strh r0, [r3, 0x26] ldrh r1, [r3, 0x22] adds r1, r0 adds r0, r3, 0 adds r0, 0x29 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r0, r1 strh r0, [r3, 0x2E] ldrh r1, [r3, 0x20] adds r1, r2 adds r2, r3, 0 adds r2, 0x28 ldrb r2, [r2] lsls r2, 24 asrs r2, 24 adds r2, r1 strh r2, [r3, 0x30] adds r0, 0x8 lsls r0, 16 lsrs r0, 16 cmp r0, 0xB0 bhi _080FBF04 lsls r0, r2, 16 asrs r2, r0, 16 movs r0, 0x8 negs r0, r0 cmp r2, r0 blt _080FBF04 cmp r2, 0xF8 ble _080FBF0C _080FBF04: movs r0, 0 b _080FBF0E .align 2, 0 _080FBF08: .4byte gUnknown_020388CC _080FBF0C: movs r0, 0x1 _080FBF0E: strh r0, [r3, 0x32] movs r1, 0x32 ldrsh r0, [r3, r1] cmp r0, 0x1 bne _080FBF20 adds r0, r3, 0 bl sub_80FBF40 b _080FBF2C _080FBF20: adds r0, r3, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _080FBF2C: pop {r4} pop {r0} bx r0 thumb_func_end sub_80FBEA4 thumb_func_start sub_80FBF34 sub_80FBF34: @ 80FBF34 push {lr} bl sub_80FBF40 pop {r0} bx r0 thumb_func_end sub_80FBF34 thumb_func_start sub_80FBF40 sub_80FBF40: @ 80FBF40 push {lr} adds r2, r0, 0 ldr r0, _080FBF80 @ =gUnknown_020388CC ldr r0, [r0] adds r0, 0x7E ldrb r0, [r0] cmp r0, 0 beq _080FBF84 ldrh r0, [r2, 0x3C] adds r0, 0x1 strh r0, [r2, 0x3C] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 ble _080FBF90 movs r0, 0 strh r0, [r2, 0x3C] adds r3, r2, 0 adds r3, 0x3E ldrb r2, [r3] lsrs r1, r2, 2 movs r0, 0x1 eors r1, r0 ands r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] b _080FBF90 .align 2, 0 _080FBF80: .4byte gUnknown_020388CC _080FBF84: adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] _080FBF90: pop {r0} bx r0 thumb_func_end sub_80FBF40 thumb_func_start sub_80FBF94 sub_80FBF94: @ 80FBF94 push {lr} ldr r0, _080FBFB0 @ =gUnknown_020388CC ldr r1, [r0] adds r0, r1, 0 adds r0, 0x7F ldrb r0, [r0] cmp r0, 0 beq _080FBFAA adds r1, 0x7E movs r0, 0x1 strb r0, [r1] _080FBFAA: pop {r0} bx r0 .align 2, 0 _080FBFB0: .4byte gUnknown_020388CC thumb_func_end sub_80FBF94 thumb_func_start sub_80FBFB4 sub_80FBFB4: @ 80FBFB4 push {lr} adds r3, r0, 0 lsls r1, 16 lsrs r1, 16 lsls r2, 16 lsrs r2, 16 cmp r1, 0x56 bne _080FBFCA bl GetSecretBaseMapName b _080FBFF2 _080FBFCA: cmp r1, 0x57 bhi _080FBFE4 ldr r0, _080FBFE0 @ =gRegionMapLocations lsls r1, 3 adds r0, 0x4 adds r1, r0 ldr r1, [r1] adds r0, r3, 0 bl StringCopy b _080FBFF2 .align 2, 0 _080FBFE0: .4byte gRegionMapLocations _080FBFE4: cmp r2, 0 bne _080FBFEA movs r2, 0x12 _080FBFEA: adds r0, r3, 0 movs r1, 0 bl StringFill _080FBFF2: pop {r1} bx r1 thumb_func_end sub_80FBFB4 thumb_func_start sub_80FBFF8 sub_80FBFF8: @ 80FBFF8 push {lr} lsls r1, 16 lsrs r1, 16 cmp r1, 0x56 beq _080FC014 cmp r1, 0x57 bne _080FC020 ldr r1, _080FC010 @ =gOtherText_Ferry bl StringCopy b _080FC026 .align 2, 0 _080FC010: .4byte gOtherText_Ferry _080FC014: ldr r1, _080FC01C @ =gOtherText_SecretBase bl StringCopy b _080FC026 .align 2, 0 _080FC01C: .4byte gOtherText_SecretBase _080FC020: movs r2, 0 bl sub_80FBFB4 _080FC026: pop {r1} bx r1 thumb_func_end sub_80FBFF8 thumb_func_start sub_80FC02C sub_80FC02C: @ 80FC02C push {lr} lsls r1, 16 lsrs r1, 16 cmp r1, 0x42 beq _080FC03C bl sub_80FBFF8 b _080FC042 _080FC03C: ldr r1, _080FC048 @ =gOtherText_Hideout bl StringCopy _080FC042: pop {r1} bx r1 .align 2, 0 _080FC048: .4byte gOtherText_Hideout thumb_func_end sub_80FC02C thumb_func_start sub_80FC04C sub_80FC04C: @ 80FC04C push {r4,r5,lr} ldr r5, [sp, 0xC] lsls r0, 16 ldr r4, _080FC070 @ =gRegionMapLocations lsrs r0, 13 adds r0, r4 ldrb r4, [r0] strh r4, [r1] ldrb r1, [r0, 0x1] strh r1, [r2] ldrb r1, [r0, 0x2] strh r1, [r3] ldrb r0, [r0, 0x3] strh r0, [r5] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FC070: .4byte gRegionMapLocations thumb_func_end sub_80FC04C thumb_func_start sub_80FC074 sub_80FC074: @ 80FC074 push {r4,lr} ldr r0, _080FC090 @ =gMain ldr r1, _080FC094 @ =0x0000043c adds r0, r1 ldrb r0, [r0] cmp r0, 0x9 bls _080FC084 b _080FC1F2 _080FC084: lsls r0, 2 ldr r1, _080FC098 @ =_080FC09C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080FC090: .4byte gMain _080FC094: .4byte 0x0000043c _080FC098: .4byte _080FC09C .align 2, 0 _080FC09C: .4byte _080FC0C4 .4byte _080FC104 .4byte _080FC110 .4byte _080FC120 .4byte _080FC15C .4byte _080FC170 .4byte _080FC184 .4byte _080FC1A4 .4byte _080FC1AA .4byte _080FC1C4 _080FC0C4: movs r0, 0 bl SetVBlankCallback movs r0, 0x80 lsls r0, 19 movs r1, 0 strh r1, [r0] adds r0, 0x10 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x4 strh r1, [r0] subs r0, 0x2 strh r1, [r0] adds r0, 0x4 strh r1, [r0] adds r0, 0x2 strh r1, [r0] bl ResetPaletteFade bl ResetSpriteData bl FreeSpriteTileRanges bl FreeAllSpritePalettes b _080FC1E6 _080FC104: ldr r0, _080FC10C @ =gWindowConfig_81E7224 bl SetUpWindowConfig b _080FC1E6 .align 2, 0 _080FC10C: .4byte gWindowConfig_81E7224 _080FC110: ldr r0, _080FC11C @ =gWindowConfig_81E7224 bl InitMenuWindow bl MenuZeroFillScreen b _080FC1E6 .align 2, 0 _080FC11C: .4byte gWindowConfig_81E7224 _080FC120: ldr r4, _080FC158 @ =0x02000008 adds r0, r4, 0 movs r1, 0 bl sub_80FA8EC movs r0, 0 movs r1, 0 bl sub_80FBB3C movs r0, 0x1 movs r1, 0x1 bl sub_80FBCF0 adds r1, r4, 0 subs r1, 0x8 ldrh r0, [r1, 0x1C] strh r0, [r1, 0x6] movs r2, 0xA4 lsls r2, 4 adds r4, r2 adds r0, r4, 0 movs r1, 0 movs r2, 0xC bl StringFill bl sub_80FC254 b _080FC1E6 .align 2, 0 _080FC158: .4byte 0x02000008 _080FC15C: ldr r0, _080FC168 @ =gUnknown_083E773C ldr r1, _080FC16C @ =0x0600c000 bl LZ77UnCompVram b _080FC1E6 .align 2, 0 _080FC168: .4byte gUnknown_083E773C _080FC16C: .4byte 0x0600c000 _080FC170: ldr r0, _080FC17C @ =gUnknown_083E7774 ldr r1, _080FC180 @ =0x0600f000 bl LZ77UnCompVram b _080FC1E6 .align 2, 0 _080FC17C: .4byte gUnknown_083E7774 _080FC180: .4byte 0x0600f000 _080FC184: ldr r0, _080FC19C @ =gUnknown_083E771C movs r1, 0x10 movs r2, 0x20 bl LoadPalette ldr r0, _080FC1A0 @ =gOtherText_FlyToWhere movs r1, 0x1 movs r2, 0x90 movs r3, 0x1 bl MenuPrint_PixelCoords b _080FC1E6 .align 2, 0 _080FC19C: .4byte gUnknown_083E771C _080FC1A0: .4byte gOtherText_FlyToWhere _080FC1A4: bl sub_80FC31C b _080FC1E6 _080FC1AA: movs r0, 0x1 negs r0, r0 movs r1, 0x10 movs r2, 0 bl BlendPalettes ldr r0, _080FC1C0 @ =sub_80FC214 bl SetVBlankCallback b _080FC1E6 .align 2, 0 _080FC1C0: .4byte sub_80FC214 _080FC1C4: ldr r1, _080FC1F8 @ =REG_BLDCNT movs r0, 0 strh r0, [r1] subs r1, 0x46 ldr r2, _080FC1FC @ =0x00001e0d adds r0, r2, 0 strh r0, [r1] subs r1, 0xA ldr r2, _080FC200 @ =0x00001741 adds r0, r2, 0 strh r0, [r1] ldr r0, _080FC204 @ =sub_80FC5B4 bl sub_80FC244 ldr r0, _080FC208 @ =sub_80FC228 bl SetMainCallback2 _080FC1E6: ldr r1, _080FC20C @ =gMain ldr r0, _080FC210 @ =0x0000043c adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080FC1F2: pop {r4} pop {r0} bx r0 .align 2, 0 _080FC1F8: .4byte REG_BLDCNT _080FC1FC: .4byte 0x00001e0d _080FC200: .4byte 0x00001741 _080FC204: .4byte sub_80FC5B4 _080FC208: .4byte sub_80FC228 _080FC20C: .4byte gMain _080FC210: .4byte 0x0000043c thumb_func_end sub_80FC074 thumb_func_start sub_80FC214 sub_80FC214: @ 80FC214 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_80FC214 thumb_func_start sub_80FC228 sub_80FC228: @ 80FC228 push {lr} ldr r0, _080FC240 @ =0x02000000 ldr r0, [r0] bl _call_via_r0 bl AnimateSprites bl BuildOamBuffer pop {r0} bx r0 .align 2, 0 _080FC240: .4byte 0x02000000 thumb_func_end sub_80FC228 thumb_func_start sub_80FC244 sub_80FC244: @ 80FC244 ldr r1, _080FC250 @ =0x02000000 str r0, [r1] movs r0, 0 strh r0, [r1, 0x4] bx lr .align 2, 0 _080FC250: .4byte 0x02000000 thumb_func_end sub_80FC244 thumb_func_start sub_80FC254 sub_80FC254: @ 80FC254 push {r4,r5,lr} ldr r4, _080FC2AC @ =0x02000000 ldrb r0, [r4, 0x1E] cmp r0, 0x2 beq _080FC262 cmp r0, 0x4 bne _080FC2EC _080FC262: movs r1, 0 ldr r2, _080FC2B0 @ =gUnknown_083E79C0 adds r5, r4, 0 _080FC268: lsls r0, r1, 3 adds r4, r0, r2 ldrh r0, [r5, 0x1C] ldrh r3, [r4, 0x4] cmp r0, r3 bne _080FC2B4 ldrh r0, [r4, 0x6] bl FlagGet lsls r0, 24 cmp r0, 0 beq _080FC2BE movs r0, 0x10 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow adds r0, r5, 0 adds r0, 0x8 movs r1, 0x11 movs r2, 0xF bl MenuPrint ldrb r0, [r5, 0x1F] ldr r1, [r4] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x1D movs r2, 0x11 bl sub_8072B4C b _080FC310 .align 2, 0 _080FC2AC: .4byte 0x02000000 _080FC2B0: .4byte gUnknown_083E79C0 _080FC2B4: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _080FC268 _080FC2BE: movs r0, 0 cmp r0, 0 bne _080FC310 movs r0, 0x10 movs r1, 0x10 movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow ldr r0, _080FC2E8 @ =0x02000008 movs r1, 0x11 movs r2, 0x11 bl MenuPrint movs r0, 0x10 movs r1, 0xE movs r2, 0x1D movs r3, 0xF bl MenuZeroFillWindowRect b _080FC310 .align 2, 0 _080FC2E8: .4byte 0x02000008 _080FC2EC: movs r0, 0x10 movs r1, 0x10 movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow ldr r1, _080FC318 @ =0x00000a48 adds r0, r4, r1 movs r1, 0x11 movs r2, 0x11 bl MenuPrint movs r0, 0x10 movs r1, 0xE movs r2, 0x1D movs r3, 0xF bl MenuZeroFillWindowRect _080FC310: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FC318: .4byte 0x00000a48 thumb_func_end sub_80FC254 thumb_func_start sub_80FC31C sub_80FC31C: @ 80FC31C push {r4,lr} sub sp, 0x8 ldr r0, _080FC360 @ =gUnknown_083E784C ldr r4, _080FC364 @ =0x02000888 adds r1, r4, 0 bl LZ77UnCompWram str r4, [sp] ldr r1, _080FC368 @ =0xffff0000 ldr r0, [sp, 0x4] ands r0, r1 movs r1, 0xE0 lsls r1, 1 orrs r0, r1 ldr r1, _080FC36C @ =0x0000ffff ands r0, r1 movs r1, 0x80 lsls r1, 10 orrs r0, r1 str r0, [sp, 0x4] mov r0, sp bl LoadSpriteSheet ldr r0, _080FC370 @ =gUnknown_083E79CC bl LoadSpritePalette bl sub_80FC374 bl sub_80FC484 add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _080FC360: .4byte gUnknown_083E784C _080FC364: .4byte 0x02000888 _080FC368: .4byte 0xffff0000 _080FC36C: .4byte 0x0000ffff _080FC370: .4byte gUnknown_083E79CC thumb_func_end sub_80FC31C thumb_func_start sub_80FC374 sub_80FC374: @ 80FC374 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C ldr r0, _080FC3D4 @ =0x0000080f str r0, [sp, 0xC] movs r1, 0 mov r9, r1 mov r2, sp adds r2, 0x6 str r2, [sp, 0x14] mov r3, sp adds r3, 0xA str r3, [sp, 0x18] mov r0, sp adds r0, 0x8 str r0, [sp, 0x10] add r1, sp, 0x4 mov r10, r1 _080FC39E: ldr r2, [sp, 0x18] str r2, [sp] mov r0, r9 add r1, sp, 0x4 mov r2, sp adds r2, 0x6 ldr r3, [sp, 0x10] bl sub_80FC04C mov r3, r10 ldrh r0, [r3] adds r0, 0x1 lsls r0, 3 adds r0, 0x4 strh r0, [r3] mov r1, sp ldrh r0, [r1, 0x6] adds r0, 0x2 lsls r0, 3 adds r0, 0x4 strh r0, [r1, 0x6] ldr r2, [sp, 0x10] ldrh r0, [r2] cmp r0, 0x2 bne _080FC3D8 movs r7, 0x1 b _080FC3E4 .align 2, 0 _080FC3D4: .4byte 0x0000080f _080FC3D8: ldr r3, [sp, 0x18] ldrh r0, [r3] movs r7, 0 cmp r0, 0x2 bne _080FC3E4 movs r7, 0x2 _080FC3E4: mov r0, r10 movs r2, 0 ldrsh r1, [r0, r2] ldr r3, [sp, 0x14] movs r0, 0 ldrsh r2, [r3, r0] ldr r0, _080FC430 @ =gSpriteTemplate_83E7A38 movs r3, 0xA bl CreateSprite lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x40 beq _080FC458 ldr r1, _080FC434 @ =gSprites mov r8, r1 lsls r4, r5, 4 adds r0, r4, r5 lsls r6, r0, 2 adds r2, r6, r1 lsls r3, r7, 6 ldrb r1, [r2, 0x1] movs r0, 0x3F ands r0, r1 orrs r0, r3 strb r0, [r2, 0x1] ldr r0, [sp, 0xC] bl FlagGet lsls r0, 24 cmp r0, 0 beq _080FC43C mov r0, r8 adds r0, 0x1C adds r0, r6, r0 ldr r1, _080FC438 @ =sub_80FC55C str r1, [r0] b _080FC442 .align 2, 0 _080FC430: .4byte gSpriteTemplate_83E7A38 _080FC434: .4byte gSprites _080FC438: .4byte sub_80FC55C _080FC43C: adds r0, r7, 0x3 lsls r0, 16 lsrs r7, r0, 16 _080FC442: adds r4, r5 lsls r4, 2 ldr r0, _080FC480 @ =gSprites adds r4, r0 lsls r1, r7, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim mov r2, r9 strh r2, [r4, 0x2E] _080FC458: ldr r0, [sp, 0xC] adds r0, 0x1 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0xC] mov r0, r9 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r9, r0 cmp r0, 0xF bls _080FC39E add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FC480: .4byte gSprites thumb_func_end sub_80FC374 thumb_func_start sub_80FC484 sub_80FC484: @ 80FC484 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC movs r0, 0 mov r8, r0 ldr r6, _080FC54C @ =gUnknown_083E79D4 ldrh r0, [r6, 0x2] cmp r0, 0x58 beq _080FC53C mov r5, sp adds r5, 0x6 add r7, sp, 0x4 ldr r1, _080FC550 @ =gSprites mov r9, r1 movs r0, 0x1C add r0, r9 mov r10, r0 _080FC4AC: mov r1, r8 lsls r4, r1, 2 adds r0, r4, r6 ldrh r0, [r0] bl FlagGet lsls r0, 24 cmp r0, 0 beq _080FC524 adds r0, r6, 0x2 adds r0, r4, r0 ldrh r6, [r0] mov r0, sp adds r0, 0xA str r0, [sp] adds r0, r6, 0 add r1, sp, 0x4 adds r2, r5, 0 add r3, sp, 0x8 bl sub_80FC04C ldrh r0, [r7] adds r0, 0x1 lsls r0, 3 strh r0, [r7] ldrh r0, [r5] adds r0, 0x2 lsls r0, 3 strh r0, [r5] movs r0, 0 ldrsh r1, [r7, r0] movs r0, 0 ldrsh r2, [r5, r0] ldr r0, _080FC554 @ =gSpriteTemplate_83E7A38 movs r3, 0xA bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _080FC524 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 mov r1, r9 adds r4, r2, r1 ldrb r1, [r4, 0x3] movs r0, 0x3F ands r0, r1 movs r1, 0x40 orrs r0, r1 strb r0, [r4, 0x3] add r2, r10 ldr r0, _080FC558 @ =sub_80FC55C str r0, [r2] adds r0, r4, 0 movs r1, 0x6 bl StartSpriteAnim strh r6, [r4, 0x2E] _080FC524: mov r0, r8 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r6, _080FC54C @ =gUnknown_083E79D4 lsls r0, 2 adds r1, r6, 0x2 adds r0, r1 ldrh r0, [r0] cmp r0, 0x58 bne _080FC4AC _080FC53C: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FC54C: .4byte gUnknown_083E79D4 _080FC550: .4byte gSprites _080FC554: .4byte gSpriteTemplate_83E7A38 _080FC558: .4byte sub_80FC55C thumb_func_end sub_80FC484 thumb_func_start sub_80FC55C sub_80FC55C: @ 80FC55C push {lr} adds r2, r0, 0 ldr r0, _080FC59C @ =0x02000000 ldrh r1, [r0, 0x1C] movs r3, 0x2E ldrsh r0, [r2, r3] cmp r1, r0 bne _080FC5A0 ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 ble _080FC5AE movs r0, 0 strh r0, [r2, 0x30] adds r3, r2, 0 adds r3, 0x3E ldrb r2, [r3] lsrs r1, r2, 2 movs r0, 0x1 eors r1, r0 ands r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] b _080FC5AE .align 2, 0 _080FC59C: .4byte 0x02000000 _080FC5A0: movs r0, 0x10 strh r0, [r2, 0x30] adds r2, 0x3E ldrb r1, [r2] subs r0, 0x15 ands r0, r1 strb r0, [r2] _080FC5AE: pop {r0} bx r0 thumb_func_end sub_80FC55C thumb_func_start sub_80FC5B4 sub_80FC5B4: @ 80FC5B4 push {r4,lr} sub sp, 0x4 ldr r4, _080FC5C8 @ =0x02000000 ldrh r1, [r4, 0x4] cmp r1, 0 beq _080FC5CC cmp r1, 0x1 beq _080FC5E4 b _080FC5F4 .align 2, 0 _080FC5C8: .4byte 0x02000000 _080FC5CC: movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldrh r0, [r4, 0x4] adds r0, 0x1 strh r0, [r4, 0x4] b _080FC5F4 _080FC5E4: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _080FC5F4 ldr r0, _080FC5FC @ =sub_80FC600 bl sub_80FC244 _080FC5F4: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080FC5FC: .4byte sub_80FC600 thumb_func_end sub_80FC5B4 thumb_func_start sub_80FC600 sub_80FC600: @ 80FC600 push {r4,lr} ldr r0, _080FC620 @ =0x02000000 ldrh r0, [r0, 0x4] cmp r0, 0 bne _080FC68A bl sub_80FAB60 lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bhi _080FC68A lsls r0, 2 ldr r1, _080FC624 @ =_080FC628 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080FC620: .4byte 0x02000000 _080FC624: .4byte _080FC628 .align 2, 0 _080FC628: .4byte _080FC68A .4byte _080FC68A .4byte _080FC68A .4byte _080FC640 .4byte _080FC646 .4byte _080FC674 _080FC640: bl sub_80FC254 b _080FC68A _080FC646: ldr r4, _080FC668 @ =0x02000000 ldrb r0, [r4, 0x1E] cmp r0, 0x2 beq _080FC652 cmp r0, 0x4 bne _080FC68A _080FC652: movs r0, 0x5 bl m4aSongNumStart ldr r1, _080FC66C @ =0x00000a6e adds r0, r4, r1 movs r1, 0x1 strb r1, [r0] ldr r0, _080FC670 @ =sub_80FC69C bl sub_80FC244 b _080FC68A .align 2, 0 _080FC668: .4byte 0x02000000 _080FC66C: .4byte 0x00000a6e _080FC670: .4byte sub_80FC69C _080FC674: movs r0, 0x5 bl m4aSongNumStart ldr r0, _080FC690 @ =0x02000000 ldr r1, _080FC694 @ =0x00000a6e adds r0, r1 movs r1, 0 strb r1, [r0] ldr r0, _080FC698 @ =sub_80FC69C bl sub_80FC244 _080FC68A: pop {r4} pop {r0} bx r0 .align 2, 0 _080FC690: .4byte 0x02000000 _080FC694: .4byte 0x00000a6e _080FC698: .4byte sub_80FC69C thumb_func_end sub_80FC600 thumb_func_start sub_80FC69C sub_80FC69C: @ 80FC69C push {r4,lr} sub sp, 0x4 ldr r4, _080FC6B0 @ =0x02000000 ldrh r1, [r4, 0x4] cmp r1, 0 beq _080FC6B4 cmp r1, 0x1 beq _080FC6CC b _080FC792 .align 2, 0 _080FC6B0: .4byte 0x02000000 _080FC6B4: movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldrh r0, [r4, 0x4] adds r0, 0x1 strh r0, [r4, 0x4] b _080FC792 _080FC6CC: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _080FC792 bl sub_80FAB10 ldr r1, _080FC6F4 @ =0x00000a6e adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 beq _080FC78C ldrh r0, [r4, 0x1C] cmp r0, 0xF beq _080FC724 cmp r0, 0xF bgt _080FC6F8 cmp r0, 0 beq _080FC710 b _080FC748 .align 2, 0 _080FC6F4: .4byte 0x00000a6e _080FC6F8: cmp r0, 0x3A beq _080FC708 cmp r0, 0x49 bne _080FC748 movs r0, 0x16 bl sub_8053538 b _080FC786 _080FC708: movs r0, 0x15 bl sub_8053538 b _080FC786 _080FC710: ldr r0, _080FC720 @ =gSaveBlock2 ldrb r0, [r0, 0x8] movs r1, 0xD cmp r0, 0 bne _080FC73A movs r1, 0xC b _080FC73A .align 2, 0 _080FC720: .4byte gSaveBlock2 _080FC724: ldr r0, _080FC744 @ =0x00000854 bl FlagGet lsls r0, 24 movs r1, 0xB cmp r0, 0 beq _080FC73A ldrb r0, [r4, 0x1F] cmp r0, 0 bne _080FC73A movs r1, 0x14 _080FC73A: adds r0, r1, 0 bl sub_8053538 b _080FC786 .align 2, 0 _080FC744: .4byte 0x00000854 _080FC748: ldr r3, _080FC764 @ =gUnknown_083E7920 ldr r0, _080FC768 @ =0x02000000 ldrh r1, [r0, 0x1C] lsls r0, r1, 1 adds r2, r0, r1 adds r0, r3, 0x2 adds r1, r2, r0 ldrb r0, [r1] cmp r0, 0 beq _080FC76C bl sub_8053538 b _080FC786 .align 2, 0 _080FC764: .4byte gUnknown_083E7920 _080FC768: .4byte 0x02000000 _080FC76C: adds r0, r2, r3 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r1, r3, 0x1 adds r1, r2, r1 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 movs r2, 0x1 negs r2, r2 bl warp1_set_2 _080FC786: bl sub_80865BC b _080FC792 _080FC78C: ldr r0, _080FC79C @ =sub_808AD58 bl SetMainCallback2 _080FC792: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080FC79C: .4byte sub_808AD58 thumb_func_end sub_80FC69C thumb_func_start sub_80FC7A0 sub_80FC7A0: @ 80FC7A0 push {lr} ldr r2, _080FC7E8 @ =gUnknown_03005DEC ldr r1, [r0, 0x4] str r1, [r2] ldr r2, _080FC7EC @ =gUnknown_03005E00 ldrb r1, [r0, 0x1F] strb r1, [r2] ldr r2, _080FC7F0 @ =gUnknown_03005DE8 ldrb r1, [r0, 0x19] strb r1, [r2] ldr r2, _080FC7F4 @ =gUnknown_03005DFC ldrb r1, [r0, 0x1A] strb r1, [r2] ldr r2, _080FC7F8 @ =gUnknown_03005DF8 ldrb r1, [r0, 0x1B] strb r1, [r2] ldr r2, _080FC7FC @ =gUnknown_03005DF0 ldrb r1, [r0, 0x1C] strb r1, [r2] ldr r2, _080FC800 @ =gUnknown_03005E04 ldrb r1, [r0, 0x1D] strb r1, [r2] ldr r2, _080FC804 @ =gUnknown_03005DF4 ldrb r1, [r0, 0x1E] strb r1, [r2] ldrb r0, [r0] subs r0, 0x2 cmp r0, 0x22 bls _080FC7DC b _080FC928 _080FC7DC: lsls r0, 2 ldr r1, _080FC808 @ =_080FC80C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080FC7E8: .4byte gUnknown_03005DEC _080FC7EC: .4byte gUnknown_03005E00 _080FC7F0: .4byte gUnknown_03005DE8 _080FC7F4: .4byte gUnknown_03005DFC _080FC7F8: .4byte gUnknown_03005DF8 _080FC7FC: .4byte gUnknown_03005DF0 _080FC800: .4byte gUnknown_03005E04 _080FC804: .4byte gUnknown_03005DF4 _080FC808: .4byte _080FC80C .align 2, 0 _080FC80C: .4byte _080FC898 .4byte _080FC928 .4byte _080FC928 .4byte _080FC928 .4byte _080FC8F8 .4byte _080FC928 .4byte _080FC89E .4byte _080FC8A4 .4byte _080FC8B8 .4byte _080FC8CA .4byte _080FC928 .4byte _080FC8E0 .4byte _080FC928 .4byte _080FC928 .4byte _080FC928 .4byte _080FC928 .4byte _080FC928 .4byte _080FC928 .4byte _080FC928 .4byte _080FC928 .4byte _080FC928 .4byte _080FC928 .4byte _080FC928 .4byte _080FC928 .4byte _080FC928 .4byte _080FC928 .4byte _080FC928 .4byte _080FC928 .4byte _080FC8E6 .4byte _080FC8C4 .4byte _080FC8EC .4byte _080FC8F2 .4byte _080FC928 .4byte _080FC928 .4byte _080FC904 _080FC898: bl sub_80FCAA4 b _080FC928 _080FC89E: bl sub_80FCB5C b _080FC928 _080FC8A4: bl sub_80FCD54 ldr r0, _080FC8B4 @ =gUnknown_03005E00 ldrb r0, [r0] bl sub_80FCC18 b _080FC928 .align 2, 0 _080FC8B4: .4byte gUnknown_03005E00 _080FC8B8: bl sub_80FCD54 bl sub_80FCEA4 bl sub_80FCCBC _080FC8C4: bl sub_80FCEA4 b _080FC928 _080FC8CA: bl sub_80FCD54 bl sub_80FD06C bl sub_80FD06C bl sub_80FD114 bl sub_80FCCBC b _080FC928 _080FC8E0: bl sub_80FCF3C b _080FC928 _080FC8E6: bl sub_80FCD54 b _080FC928 _080FC8EC: bl sub_80FD06C b _080FC928 _080FC8F2: bl sub_80FD114 b _080FC928 _080FC8F8: bl sub_80FCAC4 movs r0, 0x3 bl sub_80FC92C b _080FC928 _080FC904: bl sub_80FCD54 bl sub_80FD06C bl sub_80FD114 bl sub_80FCCBC bl sub_80FCB5C bl sub_80FCB5C movs r0, 0x2 bl sub_80FC92C movs r0, 0x4 bl sub_80FC9E4 _080FC928: pop {r0} bx r0 thumb_func_end sub_80FC7A0 thumb_func_start sub_80FC92C sub_80FC92C: @ 80FC92C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r7, r0, 24 movs r2, 0 ldr r0, _080FC9CC @ =gUnknown_03005DF0 mov r8, r0 ldrb r0, [r0] cmp r2, r0 bcs _080FC9BE ldr r1, _080FC9D0 @ =gUnknown_03005DF8 mov r12, r1 ldr r3, _080FC9D4 @ =gUnknown_03005E04 mov r10, r3 ldr r0, _080FC9D8 @ =gUnknown_03005DE8 mov r9, r0 _080FC952: ldr r1, _080FC9DC @ =gUnknown_03005DFC ldrb r0, [r1] adds r0, r2 mov r3, r10 ldrb r1, [r3] muls r0, r1 lsls r0, 1 ldr r3, _080FC9E0 @ =gUnknown_03005DEC ldr r1, [r3] adds r1, r0 mov r3, r9 ldrb r0, [r3] lsls r0, 1 adds r3, r1, r0 movs r4, 0 adds r5, r2, 0x1 mov r0, r12 ldrb r0, [r0] cmp r4, r0 bcs _080FC9B2 movs r6, 0x80 lsls r6, 8 _080FC97E: ldrh r1, [r3] adds r0, r6, 0 ands r0, r1 cmp r0, 0 bne _080FC9A2 movs r0, 0x1F ands r0, r1 adds r0, r7 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x1F bls _080FC998 movs r2, 0x1F _080FC998: lsls r0, r2, 10 lsls r1, r2, 5 orrs r0, r1 orrs r0, r2 strh r0, [r3] _080FC9A2: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r3, 0x2 mov r1, r12 ldrb r1, [r1] cmp r4, r1 bcc _080FC97E _080FC9B2: lsls r0, r5, 24 lsrs r2, r0, 24 mov r3, r8 ldrb r3, [r3] cmp r2, r3 bcc _080FC952 _080FC9BE: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FC9CC: .4byte gUnknown_03005DF0 _080FC9D0: .4byte gUnknown_03005DF8 _080FC9D4: .4byte gUnknown_03005E04 _080FC9D8: .4byte gUnknown_03005DE8 _080FC9DC: .4byte gUnknown_03005DFC _080FC9E0: .4byte gUnknown_03005DEC thumb_func_end sub_80FC92C thumb_func_start sub_80FC9E4 sub_80FC9E4: @ 80FC9E4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r2, 0 ldr r0, _080FCA8C @ =gUnknown_03005DF0 ldrb r0, [r0] cmp r2, r0 bcs _080FCA7C ldr r1, _080FCA90 @ =gUnknown_03005DF8 mov r10, r1 _080FCA02: ldr r3, _080FCA94 @ =gUnknown_03005DFC ldrb r0, [r3] adds r0, r2 ldr r3, _080FCA98 @ =gUnknown_03005E04 ldrb r1, [r3] muls r0, r1 lsls r0, 1 ldr r3, _080FCA9C @ =gUnknown_03005DEC ldr r1, [r3] adds r1, r0 ldr r3, _080FCAA0 @ =gUnknown_03005DE8 ldrb r0, [r3] lsls r0, 1 adds r3, r1, r0 movs r5, 0 adds r7, r2, 0x1 mov r0, r10 ldrb r0, [r0] cmp r5, r0 bcs _080FCA70 movs r1, 0x80 lsls r1, 8 mov r9, r1 movs r0, 0x1F mov r12, r0 mov r1, r8 subs r6, r0, r1 _080FCA38: ldrh r1, [r3] mov r0, r9 ands r0, r1 cmp r0, 0 bne _080FCA60 movs r4, 0x1F mov r2, r12 ands r2, r1 cmp r2, r6 ble _080FCA56 mov r1, r8 lsrs r0, r1, 1 subs r0, r4, r0 lsls r0, 24 lsrs r2, r0, 24 _080FCA56: lsls r0, r2, 10 lsls r1, r2, 5 orrs r0, r1 orrs r0, r2 strh r0, [r3] _080FCA60: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r3, 0x2 mov r0, r10 ldrb r0, [r0] cmp r5, r0 bcc _080FCA38 _080FCA70: lsls r0, r7, 24 lsrs r2, r0, 24 ldr r1, _080FCA8C @ =gUnknown_03005DF0 ldrb r1, [r1] cmp r2, r1 bcc _080FCA02 _080FCA7C: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FCA8C: .4byte gUnknown_03005DF0 _080FCA90: .4byte gUnknown_03005DF8 _080FCA94: .4byte gUnknown_03005DFC _080FCA98: .4byte gUnknown_03005E04 _080FCA9C: .4byte gUnknown_03005DEC _080FCAA0: .4byte gUnknown_03005DE8 thumb_func_end sub_80FC9E4 thumb_func_start sub_80FCAA4 sub_80FCAA4: @ 80FCAA4 push {r4,r5,lr} movs r4, 0 ldr r5, _080FCAC0 @ =0x00000c7f _080FCAAA: lsls r0, r4, 16 lsrs r0, 16 bl sub_80FD1C8 adds r4, 0x1 cmp r4, r5 bls _080FCAAA pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FCAC0: .4byte 0x00000c7f thumb_func_end sub_80FCAA4 thumb_func_start sub_80FCAC4 sub_80FCAC4: @ 80FCAC4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 movs r2, 0 ldr r0, _080FCB44 @ =gUnknown_03005DF0 ldrb r0, [r0] cmp r2, r0 bcs _080FCB36 ldr r0, _080FCB48 @ =gUnknown_03005DEC mov r8, r0 ldr r3, _080FCB4C @ =gUnknown_03005DF8 _080FCADC: ldr r0, _080FCB50 @ =gUnknown_03005DFC ldrb r1, [r0] adds r1, r2 ldr r0, _080FCB54 @ =gUnknown_03005E04 ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r4, r8 ldr r1, [r4] adds r1, r0 ldr r0, _080FCB58 @ =gUnknown_03005DE8 ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r5, 0 adds r6, r2, 0x1 ldrb r0, [r3] cmp r5, r0 bcs _080FCB2A movs r0, 0x80 lsls r0, 8 adds r7, r0, 0 _080FCB08: ldrh r0, [r4] ands r0, r7 cmp r0, 0 bne _080FCB1C adds r0, r4, 0 str r3, [sp] bl sub_80FD39C strh r0, [r4] ldr r3, [sp] _080FCB1C: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r4, 0x2 ldrb r0, [r3] cmp r5, r0 bcc _080FCB08 _080FCB2A: lsls r0, r6, 24 lsrs r2, r0, 24 ldr r0, _080FCB44 @ =gUnknown_03005DF0 ldrb r0, [r0] cmp r2, r0 bcc _080FCADC _080FCB36: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FCB44: .4byte gUnknown_03005DF0 _080FCB48: .4byte gUnknown_03005DEC _080FCB4C: .4byte gUnknown_03005DF8 _080FCB50: .4byte gUnknown_03005DFC _080FCB54: .4byte gUnknown_03005E04 _080FCB58: .4byte gUnknown_03005DE8 thumb_func_end sub_80FCAC4 thumb_func_start sub_80FCB5C sub_80FCB5C: @ 80FCB5C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 movs r2, 0 ldr r0, _080FCC00 @ =gUnknown_03005DF8 ldrb r0, [r0] cmp r2, r0 bcs _080FCBF2 ldr r0, _080FCC04 @ =gUnknown_03005DEC mov r8, r0 ldr r3, _080FCC08 @ =gUnknown_03005E04 _080FCB74: ldr r0, _080FCC0C @ =gUnknown_03005DFC ldrb r1, [r0] ldrb r0, [r3] muls r0, r1 lsls r0, 1 mov r4, r8 ldr r1, [r4] adds r1, r0 ldr r0, _080FCC10 @ =gUnknown_03005DE8 ldrb r0, [r0] adds r0, r2 lsls r0, 1 adds r4, r1, r0 ldrh r1, [r4] mov r0, sp strh r1, [r0] movs r5, 0x1 ldrb r0, [r3] lsls r0, 1 adds r4, r0 ldr r0, _080FCC14 @ =gUnknown_03005DF0 ldrb r0, [r0] subs r0, 0x1 adds r7, r2, 0x1 cmp r5, r0 bge _080FCBE6 ldr r6, _080FCC08 @ =gUnknown_03005E04 _080FCBAA: ldrh r0, [r4] movs r2, 0x80 lsls r2, 8 adds r1, r2, 0 ands r0, r1 cmp r0, 0 bne _080FCBD0 ldrb r2, [r6] lsls r2, 1 adds r2, r4, r2 mov r0, sp adds r1, r4, 0 str r3, [sp, 0x4] bl sub_80FD68C strh r0, [r4] mov r1, sp strh r0, [r1] ldr r3, [sp, 0x4] _080FCBD0: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 ldrb r0, [r6] lsls r0, 1 adds r4, r0 ldr r0, _080FCC14 @ =gUnknown_03005DF0 ldrb r0, [r0] subs r0, 0x1 cmp r5, r0 blt _080FCBAA _080FCBE6: lsls r0, r7, 24 lsrs r2, r0, 24 ldr r0, _080FCC00 @ =gUnknown_03005DF8 ldrb r0, [r0] cmp r2, r0 bcc _080FCB74 _080FCBF2: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FCC00: .4byte gUnknown_03005DF8 _080FCC04: .4byte gUnknown_03005DEC _080FCC08: .4byte gUnknown_03005E04 _080FCC0C: .4byte gUnknown_03005DFC _080FCC10: .4byte gUnknown_03005DE8 _080FCC14: .4byte gUnknown_03005DF0 thumb_func_end sub_80FCB5C thumb_func_start sub_80FCC18 sub_80FCC18: @ 80FCC18 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r2, 0 ldr r0, _080FCCA4 @ =gUnknown_03005DF0 ldrb r0, [r0] cmp r2, r0 bcs _080FCC94 ldr r0, _080FCCA8 @ =gUnknown_03005DEC mov r9, r0 ldr r3, _080FCCAC @ =gUnknown_03005DF8 _080FCC38: ldr r0, _080FCCB0 @ =gUnknown_03005DFC ldrb r1, [r0] adds r1, r2 ldr r0, _080FCCB4 @ =gUnknown_03005E04 ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r4, r9 ldr r1, [r4] adds r1, r0 ldr r0, _080FCCB8 @ =gUnknown_03005DE8 ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r5, 0 adds r6, r2, 0x1 ldrb r0, [r3] cmp r5, r0 bcs _080FCC88 movs r0, 0x80 lsls r0, 8 adds r7, r0, 0 _080FCC64: ldrh r0, [r4] ands r0, r7 cmp r0, 0 bne _080FCC7A adds r0, r4, 0 mov r1, r8 str r3, [sp] bl sub_80FD3D0 strh r0, [r4] ldr r3, [sp] _080FCC7A: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r4, 0x2 ldrb r0, [r3] cmp r5, r0 bcc _080FCC64 _080FCC88: lsls r0, r6, 24 lsrs r2, r0, 24 ldr r0, _080FCCA4 @ =gUnknown_03005DF0 ldrb r0, [r0] cmp r2, r0 bcc _080FCC38 _080FCC94: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FCCA4: .4byte gUnknown_03005DF0 _080FCCA8: .4byte gUnknown_03005DEC _080FCCAC: .4byte gUnknown_03005DF8 _080FCCB0: .4byte gUnknown_03005DFC _080FCCB4: .4byte gUnknown_03005E04 _080FCCB8: .4byte gUnknown_03005DE8 thumb_func_end sub_80FCC18 thumb_func_start sub_80FCCBC sub_80FCCBC: @ 80FCCBC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 movs r2, 0 ldr r0, _080FCD3C @ =gUnknown_03005DF0 ldrb r0, [r0] cmp r2, r0 bcs _080FCD2E ldr r0, _080FCD40 @ =gUnknown_03005DEC mov r8, r0 ldr r3, _080FCD44 @ =gUnknown_03005DF8 _080FCCD4: ldr r0, _080FCD48 @ =gUnknown_03005DFC ldrb r1, [r0] adds r1, r2 ldr r0, _080FCD4C @ =gUnknown_03005E04 ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r4, r8 ldr r1, [r4] adds r1, r0 ldr r0, _080FCD50 @ =gUnknown_03005DE8 ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r5, 0 adds r6, r2, 0x1 ldrb r0, [r3] cmp r5, r0 bcs _080FCD22 movs r0, 0x80 lsls r0, 8 adds r7, r0, 0 _080FCD00: ldrh r0, [r4] ands r0, r7 cmp r0, 0 bne _080FCD14 adds r0, r4, 0 str r3, [sp] bl sub_80FD4DC strh r0, [r4] ldr r3, [sp] _080FCD14: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r4, 0x2 ldrb r0, [r3] cmp r5, r0 bcc _080FCD00 _080FCD22: lsls r0, r6, 24 lsrs r2, r0, 24 ldr r0, _080FCD3C @ =gUnknown_03005DF0 ldrb r0, [r0] cmp r2, r0 bcc _080FCCD4 _080FCD2E: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FCD3C: .4byte gUnknown_03005DF0 _080FCD40: .4byte gUnknown_03005DEC _080FCD44: .4byte gUnknown_03005DF8 _080FCD48: .4byte gUnknown_03005DFC _080FCD4C: .4byte gUnknown_03005E04 _080FCD50: .4byte gUnknown_03005DE8 thumb_func_end sub_80FCCBC thumb_func_start sub_80FCD54 sub_80FCD54: @ 80FCD54 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r7, 0 ldr r0, _080FCE8C @ =gUnknown_03005DF0 ldrb r0, [r0] cmp r7, r0 bcs _080FCDE0 ldr r0, _080FCE90 @ =gUnknown_03005DEC mov r8, r0 _080FCD6A: ldr r0, _080FCE94 @ =gUnknown_03005DFC ldrb r1, [r0] adds r1, r7 ldr r0, _080FCE98 @ =gUnknown_03005E04 ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r2, r8 ldr r1, [r2] adds r1, r0 ldr r0, _080FCE9C @ =gUnknown_03005DE8 ldrb r0, [r0] lsls r0, 1 adds r5, r1, r0 adds r4, r5, 0x2 adds r0, r5, 0 adds r1, r4, 0 bl sub_80FD50C strh r0, [r5] movs r6, 0x1 adds r5, r4, 0 ldr r0, _080FCEA0 @ =gUnknown_03005DF8 ldrb r0, [r0] subs r0, 0x1 adds r7, 0x1 cmp r6, r0 bge _080FCDCA _080FCDA2: adds r4, r5, 0x2 adds r0, r5, 0 adds r1, r4, 0 bl sub_80FD50C strh r0, [r5] subs r1, r5, 0x2 adds r0, r5, 0 bl sub_80FD50C strh r0, [r5] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r5, r4, 0 ldr r0, _080FCEA0 @ =gUnknown_03005DF8 ldrb r0, [r0] subs r0, 0x1 cmp r6, r0 blt _080FCDA2 _080FCDCA: subs r1, r5, 0x2 adds r0, r5, 0 bl sub_80FD50C strh r0, [r5] lsls r0, r7, 24 lsrs r7, r0, 24 ldr r0, _080FCE8C @ =gUnknown_03005DF0 ldrb r0, [r0] cmp r7, r0 bcc _080FCD6A _080FCDE0: movs r6, 0 ldr r0, _080FCEA0 @ =gUnknown_03005DF8 ldrb r0, [r0] cmp r6, r0 bcs _080FCE80 ldr r3, _080FCE90 @ =gUnknown_03005DEC mov r9, r3 ldr r0, _080FCE98 @ =gUnknown_03005E04 mov r8, r0 _080FCDF2: ldr r0, _080FCE94 @ =gUnknown_03005DFC ldrb r0, [r0] mov r2, r8 ldrb r1, [r2] muls r0, r1 lsls r0, 1 mov r3, r9 ldr r2, [r3] adds r2, r0 ldr r0, _080FCE9C @ =gUnknown_03005DE8 ldrb r0, [r0] adds r0, r6 lsls r0, 1 adds r5, r2, r0 lsls r1, 1 adds r1, r5, r1 adds r0, r5, 0 bl sub_80FD50C strh r0, [r5] movs r7, 0x1 mov r1, r8 ldrb r0, [r1] lsls r0, 1 adds r5, r0 ldr r0, _080FCE8C @ =gUnknown_03005DF0 ldrb r0, [r0] subs r0, 0x1 adds r6, 0x1 cmp r7, r0 bge _080FCE64 ldr r4, _080FCE98 @ =gUnknown_03005E04 _080FCE32: ldrb r1, [r4] lsls r1, 1 adds r1, r5, r1 adds r0, r5, 0 bl sub_80FD50C strh r0, [r5] ldrb r1, [r4] lsls r1, 1 subs r1, r5, r1 adds r0, r5, 0 bl sub_80FD50C strh r0, [r5] adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r4] lsls r0, 1 adds r5, r0 ldr r0, _080FCE8C @ =gUnknown_03005DF0 ldrb r0, [r0] subs r0, 0x1 cmp r7, r0 blt _080FCE32 _080FCE64: mov r2, r8 ldrb r1, [r2] lsls r1, 1 subs r1, r5, r1 adds r0, r5, 0 bl sub_80FD50C strh r0, [r5] lsls r0, r6, 24 lsrs r6, r0, 24 ldr r0, _080FCEA0 @ =gUnknown_03005DF8 ldrb r0, [r0] cmp r6, r0 bcc _080FCDF2 _080FCE80: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FCE8C: .4byte gUnknown_03005DF0 _080FCE90: .4byte gUnknown_03005DEC _080FCE94: .4byte gUnknown_03005DFC _080FCE98: .4byte gUnknown_03005E04 _080FCE9C: .4byte gUnknown_03005DE8 _080FCEA0: .4byte gUnknown_03005DF8 thumb_func_end sub_80FCD54 thumb_func_start sub_80FCEA4 sub_80FCEA4: @ 80FCEA4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 movs r2, 0 ldr r0, _080FCF24 @ =gUnknown_03005DF0 ldrb r0, [r0] cmp r2, r0 bcs _080FCF16 ldr r0, _080FCF28 @ =gUnknown_03005DEC mov r8, r0 ldr r3, _080FCF2C @ =gUnknown_03005DF8 _080FCEBC: ldr r0, _080FCF30 @ =gUnknown_03005DFC ldrb r1, [r0] adds r1, r2 ldr r0, _080FCF34 @ =gUnknown_03005E04 ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r4, r8 ldr r1, [r4] adds r1, r0 ldr r0, _080FCF38 @ =gUnknown_03005DE8 ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r5, 0 adds r6, r2, 0x1 ldrb r0, [r3] cmp r5, r0 bcs _080FCF0A movs r0, 0x80 lsls r0, 8 adds r7, r0, 0 _080FCEE8: ldrh r0, [r4] ands r0, r7 cmp r0, 0 bne _080FCEFC adds r0, r4, 0 str r3, [sp] bl sub_80FD53C strh r0, [r4] ldr r3, [sp] _080FCEFC: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r4, 0x2 ldrb r0, [r3] cmp r5, r0 bcc _080FCEE8 _080FCF0A: lsls r0, r6, 24 lsrs r2, r0, 24 ldr r0, _080FCF24 @ =gUnknown_03005DF0 ldrb r0, [r0] cmp r2, r0 bcc _080FCEBC _080FCF16: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FCF24: .4byte gUnknown_03005DF0 _080FCF28: .4byte gUnknown_03005DEC _080FCF2C: .4byte gUnknown_03005DF8 _080FCF30: .4byte gUnknown_03005DFC _080FCF34: .4byte gUnknown_03005E04 _080FCF38: .4byte gUnknown_03005DE8 thumb_func_end sub_80FCEA4 thumb_func_start sub_80FCF3C sub_80FCF3C: @ 80FCF3C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 ldr r0, _080FD068 @ =gUnknown_03005DEC ldr r4, [r0] movs r6, 0 movs r0, 0x80 lsls r0, 8 adds r5, r0, 0 _080FCF54: movs r7, 0 _080FCF56: ldrh r0, [r4] ands r0, r5 cmp r0, 0 bne _080FCF66 adds r0, r4, 0 bl sub_80FD53C strh r0, [r4] _080FCF66: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 adds r4, 0x2 cmp r7, 0x3F bls _080FCF56 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x3F bls _080FCF54 movs r7, 0 ldr r1, _080FD068 @ =gUnknown_03005DEC mov r10, r1 mov r3, sp movs r2, 0x80 lsls r2, 8 mov r9, r2 _080FCF8A: lsls r0, r7, 1 mov r2, r10 ldr r1, [r2] adds r4, r1, r0 ldrh r1, [r4] strh r1, [r3] mov r1, r9 strh r1, [r4] movs r6, 0x1 adds r4, 0x80 adds r5, r0, 0 _080FCFA0: ldrh r0, [r4] movs r2, 0x80 lsls r2, 8 ands r0, r2 cmp r0, 0 bne _080FCFC0 adds r2, r4, 0 adds r2, 0x80 mov r0, sp adds r1, r4, 0 str r3, [sp, 0x4] bl sub_80FD7AC strh r0, [r4] ldr r3, [sp, 0x4] strh r0, [r3] _080FCFC0: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r4, 0x80 cmp r6, 0x3E bls _080FCFA0 mov r0, r9 strh r0, [r4] mov r1, r10 ldr r0, [r1] adds r4, r0, r5 ldrh r0, [r4] strh r0, [r3] mov r2, r9 strh r2, [r4] movs r6, 0x1 adds r4, 0x80 movs r0, 0x80 lsls r0, 8 mov r8, r0 _080FCFE8: ldrh r0, [r4] mov r1, r8 ands r0, r1 adds r5, r4, 0 adds r5, 0x80 cmp r0, 0 bne _080FD008 mov r0, sp adds r1, r4, 0 adds r2, r5, 0 str r3, [sp, 0x4] bl sub_80FD7AC strh r0, [r4] ldr r3, [sp, 0x4] strh r0, [r3] _080FD008: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r4, r5, 0 cmp r6, 0x3E bls _080FCFE8 mov r2, r9 strh r2, [r4] adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x3F bls _080FCF8A ldr r0, _080FD068 @ =gUnknown_03005DEC ldr r4, [r0] movs r6, 0 movs r0, 0x80 lsls r0, 8 mov r8, r0 _080FD02E: movs r7, 0 adds r5, r6, 0x1 _080FD032: ldrh r0, [r4] mov r1, r8 ands r0, r1 cmp r0, 0 bne _080FD044 adds r0, r4, 0 bl sub_80FD53C strh r0, [r4] _080FD044: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 adds r4, 0x2 cmp r7, 0x3F bls _080FD032 lsls r0, r5, 24 lsrs r6, r0, 24 cmp r6, 0x3F bls _080FD02E add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FD068: .4byte gUnknown_03005DEC thumb_func_end sub_80FCF3C thumb_func_start sub_80FD06C sub_80FD06C: @ 80FD06C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 movs r2, 0 ldr r0, _080FD0FC @ =gUnknown_03005DF0 ldrb r0, [r0] cmp r2, r0 bcs _080FD0EE ldr r0, _080FD100 @ =gUnknown_03005DEC mov r8, r0 _080FD082: ldr r0, _080FD104 @ =gUnknown_03005DFC ldrb r1, [r0] adds r1, r2 ldr r0, _080FD108 @ =gUnknown_03005E04 ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r3, r8 ldr r1, [r3] adds r1, r0 ldr r0, _080FD10C @ =gUnknown_03005DE8 ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 ldrh r1, [r4] mov r0, sp strh r1, [r0] movs r5, 0x1 adds r4, 0x2 ldr r0, _080FD110 @ =gUnknown_03005DF8 ldrb r0, [r0] subs r0, 0x1 adds r6, r2, 0x1 cmp r5, r0 bge _080FD0E2 movs r0, 0x80 lsls r0, 8 adds r7, r0, 0 _080FD0BA: ldrh r0, [r4] ands r0, r7 cmp r0, 0 bne _080FD0D0 mov r0, sp adds r1, r4, 0 bl sub_80FD568 strh r0, [r4] mov r1, sp strh r0, [r1] _080FD0D0: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r4, 0x2 ldr r0, _080FD110 @ =gUnknown_03005DF8 ldrb r0, [r0] subs r0, 0x1 cmp r5, r0 blt _080FD0BA _080FD0E2: lsls r0, r6, 24 lsrs r2, r0, 24 ldr r0, _080FD0FC @ =gUnknown_03005DF0 ldrb r0, [r0] cmp r2, r0 bcc _080FD082 _080FD0EE: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FD0FC: .4byte gUnknown_03005DF0 _080FD100: .4byte gUnknown_03005DEC _080FD104: .4byte gUnknown_03005DFC _080FD108: .4byte gUnknown_03005E04 _080FD10C: .4byte gUnknown_03005DE8 _080FD110: .4byte gUnknown_03005DF8 thumb_func_end sub_80FD06C thumb_func_start sub_80FD114 sub_80FD114: @ 80FD114 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 movs r2, 0 ldr r0, _080FD1B0 @ =gUnknown_03005DF8 ldrb r0, [r0] cmp r2, r0 bcs _080FD1A2 ldr r0, _080FD1B4 @ =gUnknown_03005DEC mov r8, r0 ldr r7, _080FD1B8 @ =gUnknown_03005E04 _080FD12C: ldr r0, _080FD1BC @ =gUnknown_03005DFC ldrb r1, [r0] ldrb r0, [r7] muls r0, r1 lsls r0, 1 mov r3, r8 ldr r1, [r3] adds r1, r0 ldr r0, _080FD1C0 @ =gUnknown_03005DE8 ldrb r0, [r0] adds r0, r2 lsls r0, 1 adds r4, r1, r0 ldrh r1, [r4] mov r0, sp strh r1, [r0] movs r5, 0x1 ldrb r0, [r7] lsls r0, 1 adds r4, r0 ldr r0, _080FD1C4 @ =gUnknown_03005DF0 ldrb r0, [r0] subs r0, 0x1 adds r6, r2, 0x1 cmp r5, r0 bge _080FD196 movs r0, 0x80 lsls r0, 8 adds r2, r0, 0 _080FD166: ldrh r0, [r4] ands r0, r2 cmp r0, 0 bne _080FD180 mov r0, sp adds r1, r4, 0 str r2, [sp, 0x4] bl sub_80FD568 strh r0, [r4] mov r1, sp strh r0, [r1] ldr r2, [sp, 0x4] _080FD180: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 ldrb r0, [r7] lsls r0, 1 adds r4, r0 ldr r0, _080FD1C4 @ =gUnknown_03005DF0 ldrb r0, [r0] subs r0, 0x1 cmp r5, r0 blt _080FD166 _080FD196: lsls r0, r6, 24 lsrs r2, r0, 24 ldr r0, _080FD1B0 @ =gUnknown_03005DF8 ldrb r0, [r0] cmp r2, r0 bcc _080FD12C _080FD1A2: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FD1B0: .4byte gUnknown_03005DF8 _080FD1B4: .4byte gUnknown_03005DEC _080FD1B8: .4byte gUnknown_03005E04 _080FD1BC: .4byte gUnknown_03005DFC _080FD1C0: .4byte gUnknown_03005DE8 _080FD1C4: .4byte gUnknown_03005DF0 thumb_func_end sub_80FD114 thumb_func_start sub_80FD1C8 sub_80FD1C8: @ 80FD1C8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 lsls r0, 16 lsrs r0, 16 mov r10, r0 mov r2, sp ldr r3, _080FD234 @ =gUnknown_083E7A50 lsls r1, r0, 1 add r1, r10 adds r0, r1, r3 ldrb r0, [r0] strb r0, [r2] adds r0, r3, 0x1 adds r0, r1, r0 ldrb r0, [r0] strb r0, [r2, 0x1] mov r5, sp adds r0, r3, 0x2 adds r1, r0 ldrb r4, [r1] lsls r2, r4, 24 lsrs r1, r2, 27 movs r0, 0x7 ands r1, r0 strh r1, [r5, 0x2] lsrs r2, 25 mov r9, r2 movs r0, 0x3 ands r2, r0 mov r9, r2 movs r5, 0x1 ands r5, r4 movs r4, 0x1 mov r8, r4 cmp r8, r1 bcs _080FD27A mov r3, sp _080FD21A: cmp r5, 0 bne _080FD238 mov r0, r8 lsls r2, r0, 2 mov r4, sp adds r1, r4, r2 ldrb r0, [r3] mov r4, r8 subs r0, r4 strb r0, [r1] ldrb r0, [r3, 0x1] add r0, r8 b _080FD24A .align 2, 0 _080FD234: .4byte gUnknown_083E7A50 _080FD238: mov r0, r8 lsls r2, r0, 2 mov r4, sp adds r1, r4, r2 ldrb r0, [r3] adds r0, 0x1 strb r0, [r1] ldrb r0, [r3, 0x1] subs r0, 0x1 _080FD24A: strb r0, [r1, 0x1] add r2, sp ldrb r0, [r2] cmp r0, 0x3F bhi _080FD25A ldrb r0, [r2, 0x1] cmp r0, 0x3F bls _080FD262 _080FD25A: mov r0, r8 subs r0, 0x1 strh r0, [r3, 0x2] b _080FD27A _080FD262: ldrh r0, [r3, 0x2] mov r1, r8 subs r0, r1 strh r0, [r2, 0x2] mov r0, r8 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldrh r0, [r3, 0x2] cmp r8, r0 bcc _080FD21A _080FD27A: movs r2, 0 mov r8, r2 mov r0, sp ldrh r0, [r0, 0x2] cmp r8, r0 bcc _080FD288 b _080FD38A _080FD288: movs r3, 0x1F _080FD28A: ldr r1, _080FD2E8 @ =gUnknown_03005DEC mov r4, r8 lsls r0, r4, 2 mov r2, sp adds r6, r2, r0 ldrb r0, [r6, 0x1] lsls r0, 7 ldr r1, [r1] adds r1, r0 ldrb r0, [r6] lsls r0, 1 adds r2, r1, r0 ldrh r1, [r2] movs r4, 0x80 lsls r4, 8 adds r0, r4, 0 ands r0, r1 cmp r0, 0 bne _080FD376 movs r7, 0x1F ands r7, r1 lsls r0, r1, 16 lsrs r5, r0, 21 ands r5, r3 lsrs r4, r0, 26 ands r4, r3 mov r0, r9 cmp r0, 0 blt _080FD36C cmp r0, 0x1 ble _080FD2EC cmp r0, 0x3 bgt _080FD36C ldrh r0, [r6, 0x2] adds r1, r7, r0 lsls r1, 16 lsrs r7, r1, 16 adds r1, r5, r0 lsls r1, 16 lsrs r5, r1, 16 adds r0, r4, r0 lsls r0, 16 lsrs r4, r0, 16 cmp r7, 0x1F bls _080FD360 movs r7, 0x1F b _080FD360 .align 2, 0 _080FD2E8: .4byte gUnknown_03005DEC _080FD2EC: mov r1, r10 lsls r0, r1, 1 add r0, r10 ldr r1, _080FD320 @ =gUnknown_083E7A50 adds r1, 0x2 adds r0, r1 ldrb r0, [r0] lsrs r0, 3 movs r1, 0x7 ands r0, r1 movs r1, 0x3 str r2, [sp, 0x18] str r3, [sp, 0x1C] bl __umodsi3 lsls r0, 24 lsrs r0, 24 ldr r2, [sp, 0x18] ldr r3, [sp, 0x1C] cmp r0, 0x1 beq _080FD33C cmp r0, 0x1 bgt _080FD324 cmp r0, 0 beq _080FD32A b _080FD36C .align 2, 0 _080FD320: .4byte gUnknown_083E7A50 _080FD324: cmp r0, 0x2 beq _080FD34E b _080FD36C _080FD32A: ldrh r0, [r6, 0x2] cmp r7, r0 bcc _080FD338 subs r0, r7, r0 lsls r0, 16 lsrs r7, r0, 16 b _080FD36C _080FD338: movs r7, 0 b _080FD36C _080FD33C: ldrh r0, [r6, 0x2] cmp r5, r0 bcc _080FD34A subs r0, r5, r0 lsls r0, 16 lsrs r5, r0, 16 b _080FD36C _080FD34A: movs r5, 0 b _080FD36C _080FD34E: ldrh r0, [r6, 0x2] cmp r4, r0 bcc _080FD35C subs r0, r4, r0 lsls r0, 16 lsrs r4, r0, 16 b _080FD36C _080FD35C: movs r4, 0 b _080FD36C _080FD360: cmp r5, 0x1F bls _080FD366 movs r5, 0x1F _080FD366: cmp r4, 0x1F bls _080FD36C movs r4, 0x1F _080FD36C: lsls r0, r4, 10 lsls r1, r5, 5 orrs r0, r1 orrs r7, r0 strh r7, [r2] _080FD376: mov r0, r8 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 mov r0, sp ldrh r0, [r0, 0x2] cmp r8, r0 bcs _080FD38A b _080FD28A _080FD38A: add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80FD1C8 thumb_func_start sub_80FD39C sub_80FD39C: @ 80FD39C push {lr} ldrh r1, [r0] movs r3, 0x1F movs r0, 0x1F ands r0, r1 lsls r1, 16 lsrs r2, r1, 21 ands r2, r3 lsrs r1, 26 ands r1, r3 adds r0, r2 adds r0, r1 movs r1, 0x3 bl __divsi3 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 lsls r0, r1, 10 lsls r2, r1, 5 orrs r0, r2 orrs r0, r1 lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end sub_80FD39C thumb_func_start sub_80FD3D0 sub_80FD3D0: @ 80FD3D0 push {r4,lr} lsls r1, 24 lsrs r4, r1, 24 ldrh r0, [r0] movs r2, 0x1F movs r1, 0x1F ands r1, r0 lsls r0, 16 lsrs r3, r0, 21 ands r3, r2 lsrs r0, 26 ands r0, r2 cmp r1, 0x10 bhi _080FD400 cmp r3, 0x10 bhi _080FD400 cmp r0, 0x10 bhi _080FD400 adds r0, r4, 0 bl sub_80FD40C lsls r0, 16 lsrs r0, 16 b _080FD402 _080FD400: ldr r0, _080FD408 @ =0x00007fff _080FD402: pop {r4} pop {r1} bx r1 .align 2, 0 _080FD408: .4byte 0x00007fff thumb_func_end sub_80FD3D0 thumb_func_start sub_80FD40C sub_80FD40C: @ 80FD40C push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 mov r8, r0 movs r6, 0 movs r7, 0 adds r0, r4, 0 movs r1, 0x6 bl __udivsi3 lsls r0, 24 lsrs r0, 24 movs r1, 0x3 bl __umodsi3 lsls r0, 24 lsrs r5, r0, 24 adds r0, r4, 0 movs r1, 0x6 bl __umodsi3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bhi _080FD4C4 lsls r0, 2 ldr r1, _080FD450 @ =_080FD454 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080FD450: .4byte _080FD454 .align 2, 0 _080FD454: .4byte _080FD46C .4byte _080FD47C .4byte _080FD48C .4byte _080FD49A .4byte _080FD4A8 .4byte _080FD4B6 _080FD46C: movs r0, 0x15 subs r0, r5 lsls r0, 16 lsrs r6, r0, 16 adds r7, r6, 0 movs r1, 0 mov r8, r1 b _080FD4C4 _080FD47C: movs r7, 0 movs r0, 0x15 subs r0, r5 lsls r0, 16 lsrs r0, 16 mov r8, r0 mov r6, r8 b _080FD4C4 _080FD48C: movs r0, 0x15 subs r0, r5 lsls r0, 16 lsrs r7, r0, 16 movs r6, 0 mov r8, r7 b _080FD4C4 _080FD49A: movs r7, 0 movs r6, 0 movs r0, 0x17 subs r0, r5 lsls r0, 16 lsrs r0, 16 b _080FD4C2 _080FD4A8: movs r0, 0x17 subs r0, r5 lsls r0, 16 lsrs r7, r0, 16 movs r6, 0 mov r8, r6 b _080FD4C4 _080FD4B6: movs r7, 0 movs r0, 0x17 subs r0, r5 lsls r0, 16 lsrs r6, r0, 16 movs r0, 0 _080FD4C2: mov r8, r0 _080FD4C4: lsls r0, r7, 10 lsls r1, r6, 5 orrs r0, r1 mov r1, r8 orrs r1, r0 lsls r0, r1, 16 lsrs r0, 16 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80FD40C thumb_func_start sub_80FD4DC sub_80FD4DC: @ 80FD4DC push {lr} ldrh r0, [r0] movs r2, 0x1F movs r1, 0x1F ands r1, r0 lsls r0, 16 lsrs r3, r0, 21 ands r3, r2 lsrs r0, 26 ands r0, r2 cmp r1, 0x10 bhi _080FD500 cmp r3, 0x10 bhi _080FD500 cmp r0, 0x10 bhi _080FD500 movs r0, 0 b _080FD502 _080FD500: ldr r0, _080FD508 @ =0x00007fff _080FD502: pop {r1} bx r1 .align 2, 0 _080FD508: .4byte 0x00007fff thumb_func_end sub_80FD4DC thumb_func_start sub_80FD50C sub_80FD50C: @ 80FD50C push {r4,lr} adds r4, r0, 0 ldrh r3, [r4] cmp r3, 0 beq _080FD534 movs r2, 0x80 lsls r2, 8 adds r0, r2, 0 ands r0, r3 cmp r0, 0 beq _080FD526 adds r0, r2, 0 b _080FD536 _080FD526: ldrh r1, [r1] adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _080FD534 ldrh r0, [r4] b _080FD536 _080FD534: movs r0, 0 _080FD536: pop {r4} pop {r1} bx r1 thumb_func_end sub_80FD50C thumb_func_start sub_80FD53C sub_80FD53C: @ 80FD53C push {r4,lr} ldrh r1, [r0] movs r0, 0x1F movs r3, 0x1F ands r3, r1 lsls r1, 16 lsrs r2, r1, 21 lsrs r1, 26 subs r3, r0, r3 adds r4, r0, 0 bics r4, r2 adds r2, r4, 0 bics r0, r1 lsls r0, 10 lsls r2, 5 orrs r0, r2 orrs r0, r3 lsls r0, 16 lsrs r0, 16 pop {r4} pop {r1} bx r1 thumb_func_end sub_80FD53C thumb_func_start sub_80FD568 sub_80FD568: @ 80FD568 push {r4-r7,lr} sub sp, 0x14 adds r7, r1, 0 ldrh r4, [r0] ldrh r5, [r7] lsls r6, r4, 16 lsls r0, r5, 16 mov r12, r0 cmp r4, r5 beq _080FD5DA mov r2, sp movs r3, 0x1F movs r1, 0x1F adds r0, r1, 0 ands r0, r4 strh r0, [r2] lsrs r0, r6, 21 ands r0, r3 strh r0, [r2, 0x2] lsrs r0, r6, 26 ands r0, r3 strh r0, [r2, 0x4] mov r0, sp ands r1, r5 strh r1, [r0, 0x6] mov r1, sp mov r2, r12 lsrs r0, r2, 21 ands r0, r3 strh r0, [r1, 0x8] lsrs r0, r2, 26 ands r0, r3 strh r0, [r1, 0xA] mov r0, sp ldrh r0, [r0] cmp r0, 0x19 bls _080FD5C2 mov r0, sp ldrh r0, [r0, 0x2] cmp r0, 0x19 bls _080FD5C2 mov r0, sp ldrh r0, [r0, 0x4] cmp r0, 0x19 bhi _080FD5DA _080FD5C2: mov r0, sp ldrh r0, [r0, 0x6] cmp r0, 0x19 bls _080FD5DE mov r0, sp ldrh r0, [r0, 0x8] cmp r0, 0x19 bls _080FD5DE mov r0, sp ldrh r0, [r0, 0xA] cmp r0, 0x19 bls _080FD5DE _080FD5DA: ldrh r0, [r7] b _080FD684 _080FD5DE: movs r4, 0 add r6, sp, 0xC mov r7, sp adds r7, 0x6 adds r5, r6, 0 _080FD5E8: lsls r2, r4, 1 mov r1, sp adds r0, r1, r2 adds r1, r7, r2 ldrh r3, [r0] ldrh r0, [r1] cmp r3, r0 bls _080FD5FE adds r1, r5, r2 subs r0, r3, r0 b _080FD602 _080FD5FE: adds r1, r5, r2 subs r0, r3 _080FD602: strh r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _080FD5E8 adds r1, r6, 0 ldrh r0, [r1, 0x2] ldrh r3, [r1] cmp r3, r0 bcc _080FD628 ldrh r2, [r1, 0x4] cmp r3, r2 bcc _080FD622 adds r2, r3, 0 b _080FD63C _080FD622: cmp r0, r2 bcs _080FD62E b _080FD636 _080FD628: ldrh r2, [r1, 0x4] cmp r0, r2 bcc _080FD632 _080FD62E: ldrh r2, [r1, 0x2] b _080FD63C _080FD632: cmp r2, r3 bcc _080FD63A _080FD636: ldrh r2, [r1, 0x4] b _080FD63C _080FD63A: ldrh r2, [r6] _080FD63C: mov r0, sp ldrh r1, [r0, 0x6] lsrs r0, r2, 1 movs r6, 0x1F subs r6, r0 adds r0, r1, 0 muls r0, r6 movs r1, 0x1F bl __divsi3 adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 mov r0, sp ldrh r0, [r0, 0x8] muls r0, r6 movs r1, 0x1F bl __divsi3 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 mov r0, sp ldrh r0, [r0, 0xA] muls r0, r6 movs r1, 0x1F bl __divsi3 lsls r0, 16 lsrs r0, 6 lsls r4, 5 orrs r0, r4 orrs r5, r0 lsls r5, 16 lsrs r5, 16 adds r0, r5, 0 _080FD684: add sp, 0x14 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80FD568 thumb_func_start sub_80FD68C sub_80FD68C: @ 80FD68C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r3, r0, 0 mov r10, r1 str r2, [sp] ldrh r1, [r3] mov r0, r10 ldrh r0, [r0] cmp r1, r0 bne _080FD6B4 ldrh r0, [r2] cmp r0, r1 bne _080FD6B4 mov r1, r10 ldrh r0, [r1] b _080FD79C _080FD6B4: mov r2, r10 ldrh r0, [r2] movs r1, 0x1F mov r9, r1 movs r4, 0x1F adds r5, r4, 0 ands r5, r0 lsls r0, 16 lsrs r2, r0, 21 mov r1, r9 ands r1, r2 mov r8, r1 lsrs r0, 26 mov r2, r9 ands r2, r0 str r2, [sp, 0x4] ldrh r2, [r3] adds r0, r4, 0 ands r0, r2 lsls r2, 16 lsrs r1, r2, 21 mov r3, r9 ands r1, r3 adds r0, r1 lsrs r2, 26 ands r2, r3 adds r0, r2 movs r1, 0x3 bl __divsi3 lsls r0, 16 lsrs r7, r0, 16 mov r1, r8 adds r0, r5, r1 ldr r2, [sp, 0x4] adds r0, r2 movs r1, 0x3 bl __divsi3 lsls r0, 16 lsrs r6, r0, 16 ldr r3, [sp] ldrh r1, [r3] ands r4, r1 lsls r1, 16 lsrs r0, r1, 21 mov r2, r9 ands r0, r2 adds r4, r0 lsrs r1, 26 ands r1, r2 adds r4, r1 adds r0, r4, 0 movs r1, 0x3 bl __divsi3 lsls r0, 16 lsrs r1, r0, 16 cmp r7, r6 bne _080FD736 cmp r1, r6 bne _080FD736 mov r3, r10 ldrh r0, [r3] b _080FD79C _080FD736: cmp r7, r6 bls _080FD73E subs r0, r7, r6 b _080FD740 _080FD73E: subs r0, r6, r7 _080FD740: lsls r0, 16 lsrs r2, r0, 16 cmp r1, r6 bls _080FD74C subs r0, r1, r6 b _080FD74E _080FD74C: subs r0, r6, r1 _080FD74E: lsls r0, 16 lsrs r0, 16 cmp r2, r0 bcc _080FD758 adds r0, r2, 0 _080FD758: lsrs r0, 1 movs r4, 0x1F subs r4, r0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 muls r0, r4 movs r1, 0x1F bl __divsi3 lsls r0, 16 lsrs r5, r0, 16 mov r0, r8 muls r0, r4 movs r1, 0x1F bl __divsi3 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r1, [sp, 0x4] adds r0, r1, 0 muls r0, r4 movs r1, 0x1F bl __divsi3 lsls r0, 16 lsrs r0, 6 mov r2, r8 lsls r1, r2, 5 orrs r0, r1 orrs r5, r0 lsls r0, r5, 16 lsrs r0, 16 _080FD79C: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80FD68C thumb_func_start sub_80FD7AC sub_80FD7AC: @ 80FD7AC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r3, r0, 0 mov r10, r1 str r2, [sp] ldrh r1, [r3] mov r0, r10 ldrh r0, [r0] cmp r1, r0 bne _080FD7D4 ldrh r0, [r2] cmp r0, r1 bne _080FD7D4 mov r1, r10 ldrh r0, [r1] b _080FD8BA _080FD7D4: mov r2, r10 ldrh r0, [r2] movs r1, 0x1F mov r9, r1 movs r4, 0x1F adds r5, r4, 0 ands r5, r0 lsls r0, 16 lsrs r2, r0, 21 mov r1, r9 ands r1, r2 mov r8, r1 lsrs r0, 26 mov r2, r9 ands r2, r0 str r2, [sp, 0x4] ldrh r2, [r3] adds r0, r4, 0 ands r0, r2 lsls r2, 16 lsrs r1, r2, 21 mov r3, r9 ands r1, r3 adds r0, r1 lsrs r2, 26 ands r2, r3 adds r0, r2 movs r1, 0x3 bl __divsi3 lsls r0, 16 lsrs r7, r0, 16 mov r1, r8 adds r0, r5, r1 ldr r2, [sp, 0x4] adds r0, r2 movs r1, 0x3 bl __divsi3 lsls r0, 16 lsrs r6, r0, 16 ldr r3, [sp] ldrh r1, [r3] ands r4, r1 lsls r1, 16 lsrs r0, r1, 21 mov r2, r9 ands r0, r2 adds r4, r0 lsrs r1, 26 ands r1, r2 adds r4, r1 adds r0, r4, 0 movs r1, 0x3 bl __divsi3 lsls r0, 16 lsrs r1, r0, 16 cmp r7, r6 bne _080FD856 cmp r1, r6 bne _080FD856 mov r3, r10 ldrh r0, [r3] b _080FD8BA _080FD856: cmp r7, r6 bls _080FD85E subs r0, r7, r6 b _080FD860 _080FD85E: subs r0, r6, r7 _080FD860: lsls r0, 16 lsrs r2, r0, 16 cmp r1, r6 bls _080FD86C subs r0, r1, r6 b _080FD86E _080FD86C: subs r0, r6, r1 _080FD86E: lsls r0, 16 lsrs r0, 16 cmp r2, r0 bcc _080FD878 adds r0, r2, 0 _080FD878: movs r4, 0x1F subs r4, r0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 muls r0, r4 movs r1, 0x1F bl __divsi3 lsls r0, 16 lsrs r5, r0, 16 mov r0, r8 muls r0, r4 movs r1, 0x1F bl __divsi3 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r1, [sp, 0x4] adds r0, r1, 0 muls r0, r4 movs r1, 0x1F bl __divsi3 lsls r0, 16 lsrs r0, 6 mov r2, r8 lsls r1, r2, 5 orrs r0, r1 orrs r5, r0 lsls r0, r5, 16 lsrs r0, 16 _080FD8BA: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80FD7AC thumb_func_start sub_80FD8CC sub_80FD8CC: @ 80FD8CC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC ldrb r1, [r0, 0x1D] lsrs r5, r1, 3 ldrb r1, [r0, 0x1E] lsrs r1, 3 str r1, [sp, 0x8] ldr r1, [r0, 0x4] str r1, [sp] ldr r2, [r0, 0x10] str r2, [sp, 0x4] ldrh r0, [r0, 0x16] cmp r0, 0x2 bne _080FD97C movs r1, 0 ldr r0, [sp, 0x8] cmp r1, r0 bcc _080FD8FA b _080FDA08 _080FD8FA: movs r0, 0 adds r2, r1, 0x1 mov r10, r2 cmp r0, r5 bcs _080FD96E adds r2, r1, 0 muls r2, r5 mov r9, r2 lsls r1, 3 mov r8, r1 _080FD90E: movs r4, 0 lsls r6, r0, 4 adds r7, r0, 0x1 add r0, r9 lsls r0, 6 ldr r1, [sp, 0x4] adds r1, r0 mov r12, r1 _080FD91E: lsls r0, r4, 3 mov r2, r12 adds r3, r2, r0 mov r1, r8 adds r0, r1, r4 lsls r0, 3 muls r0, r5 lsls r0, 1 ldr r2, [sp] adds r0, r2, r0 adds r2, r0, r6 ldrh r0, [r2, 0x2] lsls r0, 8 ldrh r1, [r2] orrs r0, r1 strh r0, [r3] ldrh r0, [r2, 0x6] lsls r0, 8 ldrh r1, [r2, 0x4] orrs r0, r1 strh r0, [r3, 0x2] ldrh r0, [r2, 0xA] lsls r0, 8 ldrh r1, [r2, 0x8] orrs r0, r1 strh r0, [r3, 0x4] ldrh r0, [r2, 0xE] lsls r0, 8 ldrh r1, [r2, 0xC] orrs r0, r1 strh r0, [r3, 0x6] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x7 bls _080FD91E lsls r0, r7, 16 lsrs r0, 16 cmp r0, r5 bcc _080FD90E _080FD96E: mov r1, r10 lsls r0, r1, 16 lsrs r1, r0, 16 ldr r2, [sp, 0x8] cmp r1, r2 bcc _080FD8FA b _080FDA08 _080FD97C: movs r1, 0 ldr r0, [sp, 0x8] cmp r1, r0 bcs _080FDA08 _080FD984: movs r0, 0 adds r2, r1, 0x1 mov r10, r2 cmp r0, r5 bcs _080FD9FC adds r2, r1, 0 muls r2, r5 mov r9, r2 lsls r1, 3 mov r8, r1 _080FD998: movs r4, 0 lsls r6, r0, 4 adds r7, r0, 0x1 add r0, r9 lsls r0, 5 ldr r1, [sp, 0x4] adds r1, r0 mov r12, r1 _080FD9A8: lsls r0, r4, 2 mov r2, r12 adds r3, r2, r0 mov r1, r8 adds r0, r1, r4 lsls r0, 3 muls r0, r5 lsls r0, 1 ldr r2, [sp] adds r0, r2, r0 adds r2, r0, r6 ldrh r1, [r2, 0x2] lsls r1, 4 ldrh r0, [r2] orrs r1, r0 ldrh r0, [r2, 0x4] lsls r0, 8 orrs r1, r0 ldrh r0, [r2, 0x6] lsls r0, 12 orrs r1, r0 strh r1, [r3] ldrh r1, [r2, 0xA] lsls r1, 4 ldrh r0, [r2, 0x8] orrs r1, r0 ldrh r0, [r2, 0xC] lsls r0, 8 orrs r1, r0 ldrh r0, [r2, 0xE] lsls r0, 12 orrs r1, r0 strh r1, [r3, 0x2] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x7 bls _080FD9A8 lsls r0, r7, 16 lsrs r0, 16 cmp r0, r5 bcc _080FD998 _080FD9FC: mov r1, r10 lsls r0, r1, 16 lsrs r1, r0, 16 ldr r2, [sp, 0x8] cmp r1, r2 bcc _080FD984 _080FDA08: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80FD8CC thumb_func_start sub_80FDA18 sub_80FDA18: @ 80FDA18 push {lr} ldr r2, _080FDA68 @ =gUnknown_03005E0C ldrb r1, [r0, 0x18] lsls r1, 4 strh r1, [r2] ldr r3, _080FDA6C @ =gUnknown_03005E08 ldrh r2, [r2] lsls r2, 1 ldr r1, [r0, 0x8] adds r1, r2 str r1, [r3] ldr r2, _080FDA70 @ =gUnknown_03005DEC ldr r1, [r0, 0x4] str r1, [r2] ldr r2, _080FDA74 @ =gUnknown_03005DE8 ldrb r1, [r0, 0x19] strb r1, [r2] ldr r2, _080FDA78 @ =gUnknown_03005DFC ldrb r1, [r0, 0x1A] strb r1, [r2] ldr r2, _080FDA7C @ =gUnknown_03005DF8 ldrb r1, [r0, 0x1B] strb r1, [r2] ldr r2, _080FDA80 @ =gUnknown_03005DF0 ldrb r1, [r0, 0x1C] strb r1, [r2] ldr r2, _080FDA84 @ =gUnknown_03005E04 ldrb r1, [r0, 0x1D] strb r1, [r2] ldr r2, _080FDA88 @ =gUnknown_03005DF4 ldrb r1, [r0, 0x1E] strb r1, [r2] ldrh r0, [r0, 0x14] cmp r0, 0x5 bhi _080FDADE lsls r0, 2 ldr r1, _080FDA8C @ =_080FDA90 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080FDA68: .4byte gUnknown_03005E0C _080FDA6C: .4byte gUnknown_03005E08 _080FDA70: .4byte gUnknown_03005DEC _080FDA74: .4byte gUnknown_03005DE8 _080FDA78: .4byte gUnknown_03005DFC _080FDA7C: .4byte gUnknown_03005DF8 _080FDA80: .4byte gUnknown_03005DF0 _080FDA84: .4byte gUnknown_03005E04 _080FDA88: .4byte gUnknown_03005DF4 _080FDA8C: .4byte _080FDA90 .align 2, 0 _080FDA90: .4byte _080FDAA8 .4byte _080FDAB0 .4byte _080FDAB8 .4byte _080FDAC2 .4byte _080FDACC .4byte _080FDAD6 _080FDAA8: movs r0, 0 bl sub_80FDC18 b _080FDADE _080FDAB0: movs r0, 0x1 bl sub_80FDC18 b _080FDADE _080FDAB8: bl sub_80FDAE4 bl sub_80FDF88 b _080FDADE _080FDAC2: bl sub_80FDBE4 bl sub_80FDED8 b _080FDADE _080FDACC: bl sub_80FDBA8 bl sub_80FDE28 b _080FDADE _080FDAD6: bl sub_80FDB8C bl sub_80FDD70 _080FDADE: pop {r0} bx r0 thumb_func_end sub_80FDA18 thumb_func_start sub_80FDAE4 sub_80FDAE4: @ 80FDAE4 ldr r2, _080FDB4C @ =gUnknown_03005E08 ldr r1, [r2] movs r0, 0 strh r0, [r1] ldr r0, [r2] ldr r2, _080FDB50 @ =0x000018c6 adds r1, r2, 0 strh r1, [r0, 0x2] ldr r2, _080FDB54 @ =0x000077bd adds r1, r2, 0 strh r1, [r0, 0x4] ldr r2, _080FDB58 @ =0x00002d6b adds r1, r2, 0 strh r1, [r0, 0x6] ldr r2, _080FDB5C @ =0x000018dd adds r1, r2, 0 strh r1, [r0, 0x8] ldr r2, _080FDB60 @ =0x00001ba6 adds r1, r2, 0 strh r1, [r0, 0xA] ldr r2, _080FDB64 @ =0x000074c6 adds r1, r2, 0 strh r1, [r0, 0xC] ldr r2, _080FDB68 @ =0x00001bbd adds r1, r2, 0 strh r1, [r0, 0xE] ldr r2, _080FDB6C @ =0x000074dd adds r1, r2, 0 strh r1, [r0, 0x10] ldr r2, _080FDB70 @ =0x000077a6 adds r1, r2, 0 strh r1, [r0, 0x12] ldr r2, _080FDB74 @ =0x0000197d adds r1, r2, 0 strh r1, [r0, 0x14] ldr r2, _080FDB78 @ =0x00001bab adds r1, r2, 0 strh r1, [r0, 0x16] ldr r2, _080FDB7C @ =0x00007566 adds r1, r2, 0 strh r1, [r0, 0x18] ldr r2, _080FDB80 @ =0x00002cdd adds r1, r2, 0 strh r1, [r0, 0x1A] ldr r2, _080FDB84 @ =0x00002fa6 adds r1, r2, 0 strh r1, [r0, 0x1C] ldr r2, _080FDB88 @ =0x000074cb adds r1, r2, 0 strh r1, [r0, 0x1E] bx lr .align 2, 0 _080FDB4C: .4byte gUnknown_03005E08 _080FDB50: .4byte 0x000018c6 _080FDB54: .4byte 0x000077bd _080FDB58: .4byte 0x00002d6b _080FDB5C: .4byte 0x000018dd _080FDB60: .4byte 0x00001ba6 _080FDB64: .4byte 0x000074c6 _080FDB68: .4byte 0x00001bbd _080FDB6C: .4byte 0x000074dd _080FDB70: .4byte 0x000077a6 _080FDB74: .4byte 0x0000197d _080FDB78: .4byte 0x00001bab _080FDB7C: .4byte 0x00007566 _080FDB80: .4byte 0x00002cdd _080FDB84: .4byte 0x00002fa6 _080FDB88: .4byte 0x000074cb thumb_func_end sub_80FDAE4 thumb_func_start sub_80FDB8C sub_80FDB8C: @ 80FDB8C ldr r2, _080FDBA0 @ =gUnknown_03005E08 ldr r0, [r2] movs r1, 0 strh r1, [r0] ldr r2, [r2] strh r1, [r2, 0x2] ldr r1, _080FDBA4 @ =0x00007fff adds r0, r1, 0 strh r0, [r2, 0x4] bx lr .align 2, 0 _080FDBA0: .4byte gUnknown_03005E08 _080FDBA4: .4byte 0x00007fff thumb_func_end sub_80FDB8C thumb_func_start sub_80FDBA8 sub_80FDBA8: @ 80FDBA8 push {r4,r5,lr} ldr r1, _080FDBE0 @ =gUnknown_03005E08 ldr r0, [r1] movs r2, 0 strh r2, [r0] ldr r0, [r1] strh r2, [r0, 0x2] movs r4, 0 adds r5, r1, 0 _080FDBBA: ldr r0, [r5] lsls r2, r4, 1 adds r2, r0 adds r0, r4, 0x2 lsls r3, r0, 1 lsls r1, r0, 11 lsls r0, 6 orrs r1, r0 orrs r1, r3 strh r1, [r2, 0x4] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xD bls _080FDBBA pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FDBE0: .4byte gUnknown_03005E08 thumb_func_end sub_80FDBA8 thumb_func_start sub_80FDBE4 sub_80FDBE4: @ 80FDBE4 push {r4,lr} ldr r2, _080FDC14 @ =gUnknown_03005E08 ldr r1, [r2] movs r0, 0 strh r0, [r1] movs r3, 0 adds r4, r2, 0 _080FDBF2: ldr r0, [r4] lsls r2, r3, 1 adds r2, r0 lsls r0, r3, 10 lsls r1, r3, 5 orrs r0, r1 orrs r0, r3 strh r0, [r2, 0x2] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x1F bls _080FDBF2 pop {r4} pop {r0} bx r0 .align 2, 0 _080FDC14: .4byte gUnknown_03005E08 thumb_func_end sub_80FDBE4 thumb_func_start sub_80FDC18 sub_80FDC18: @ 80FDC18 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 movs r1, 0xDF mov r9, r1 cmp r0, 0 bne _080FDC30 movs r2, 0xFF mov r9, r2 _080FDC30: movs r6, 0 ldr r3, _080FDCB4 @ =gUnknown_03005E08 mov r12, r3 mov r0, r9 lsls r4, r0, 1 ldr r5, _080FDCB8 @ =gUnknown_03005DF0 cmp r6, r9 bcs _080FDC54 movs r2, 0 _080FDC42: ldr r0, [r3] lsls r1, r6, 1 adds r1, r0 strh r2, [r1] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, r9 bcc _080FDC42 _080FDC54: mov r1, r12 ldr r0, [r1] adds r0, r4, r0 ldr r2, _080FDCBC @ =0x00003def adds r1, r2, 0 strh r1, [r0] movs r3, 0 ldrb r5, [r5] cmp r3, r5 bcs _080FDD58 _080FDC68: ldr r2, _080FDCC0 @ =gUnknown_03005DEC ldr r0, _080FDCC4 @ =gUnknown_03005DFC ldrb r1, [r0] adds r1, r3 ldr r0, _080FDCC8 @ =gUnknown_03005E04 ldrb r0, [r0] muls r0, r1 lsls r0, 1 ldr r1, [r2] adds r1, r0 ldr r0, _080FDCCC @ =gUnknown_03005DE8 ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r6, 0 ldr r0, _080FDCD0 @ =gUnknown_03005DF8 adds r2, r0, 0 adds r3, 0x1 mov r10, r3 ldrb r3, [r2] cmp r6, r3 bcs _080FDD4A ldr r0, _080FDCD4 @ =gUnknown_03005E0C mov r8, r0 _080FDC98: ldrh r0, [r4] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 ands r0, r1 cmp r0, 0 beq _080FDCD8 mov r1, r8 ldrh r0, [r1] strh r0, [r4] adds r6, 0x1 adds r7, r4, 0x2 b _080FDD3E .align 2, 0 _080FDCB4: .4byte gUnknown_03005E08 _080FDCB8: .4byte gUnknown_03005DF0 _080FDCBC: .4byte 0x00003def _080FDCC0: .4byte gUnknown_03005DEC _080FDCC4: .4byte gUnknown_03005DFC _080FDCC8: .4byte gUnknown_03005E04 _080FDCCC: .4byte gUnknown_03005DE8 _080FDCD0: .4byte gUnknown_03005DF8 _080FDCD4: .4byte gUnknown_03005E0C _080FDCD8: adds r0, r4, 0 bl sub_80FE038 lsls r0, 16 lsrs r5, r0, 16 movs r3, 0x1 adds r6, 0x1 adds r7, r4, 0x2 cmp r3, r9 bcs _080FDD34 ldr r0, _080FDD04 @ =gUnknown_03005E08 ldr r2, [r0] ldrh r1, [r2, 0x2] mov r12, r0 cmp r1, 0 bne _080FDD08 strh r5, [r2, 0x2] mov r2, r8 ldrh r0, [r2] adds r0, 0x1 b _080FDD32 .align 2, 0 _080FDD04: .4byte gUnknown_03005E08 _080FDD08: mov r2, r12 ldr r1, [r2] lsls r0, r3, 1 adds r0, r1 ldrh r0, [r0] cmp r0, r5 beq _080FDD2C adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, r9 bcs _080FDD34 lsls r0, r3, 1 adds r1, r0, r1 ldrh r0, [r1] cmp r0, 0 bne _080FDD08 strh r5, [r1] _080FDD2C: mov r1, r8 ldrh r0, [r1] adds r0, r3 _080FDD32: strh r0, [r4] _080FDD34: ldr r2, _080FDD68 @ =gUnknown_03005DF8 cmp r3, r9 bne _080FDD3E mov r3, r9 strh r3, [r4] _080FDD3E: lsls r0, r6, 24 lsrs r6, r0, 24 adds r4, r7, 0 ldrb r0, [r2] cmp r6, r0 bcc _080FDC98 _080FDD4A: mov r1, r10 lsls r0, r1, 24 lsrs r3, r0, 24 ldr r0, _080FDD6C @ =gUnknown_03005DF0 ldrb r0, [r0] cmp r3, r0 bcc _080FDC68 _080FDD58: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FDD68: .4byte gUnknown_03005DF8 _080FDD6C: .4byte gUnknown_03005DF0 thumb_func_end sub_80FDC18 thumb_func_start sub_80FDD70 sub_80FDD70: @ 80FDD70 push {r4-r7,lr} mov r7, r8 push {r7} movs r2, 0 ldr r0, _080FDDC4 @ =gUnknown_03005DF0 ldrb r0, [r0] cmp r2, r0 bcs _080FDE14 ldr r0, _080FDDC8 @ =gUnknown_03005DEC mov r8, r0 _080FDD84: ldr r0, _080FDDCC @ =gUnknown_03005DFC ldrb r1, [r0] adds r1, r2 ldr r0, _080FDDD0 @ =gUnknown_03005E04 ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r3, r8 ldr r1, [r3] adds r1, r0 ldr r0, _080FDDD4 @ =gUnknown_03005DE8 ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r6, 0 ldr r0, _080FDDD8 @ =gUnknown_03005DF8 adds r3, r0, 0 adds r7, r2, 0x1 ldrb r0, [r3] cmp r6, r0 bcs _080FDE08 ldr r5, _080FDDDC @ =gUnknown_03005E0C _080FDDB0: ldrh r0, [r4] movs r2, 0x80 lsls r2, 8 adds r1, r2, 0 ands r0, r1 cmp r0, 0 beq _080FDDE0 ldrh r0, [r5] strh r0, [r4] b _080FDDFA .align 2, 0 _080FDDC4: .4byte gUnknown_03005DF0 _080FDDC8: .4byte gUnknown_03005DEC _080FDDCC: .4byte gUnknown_03005DFC _080FDDD0: .4byte gUnknown_03005E04 _080FDDD4: .4byte gUnknown_03005DE8 _080FDDD8: .4byte gUnknown_03005DF8 _080FDDDC: .4byte gUnknown_03005E0C _080FDDE0: adds r0, r4, 0 bl sub_80FD4DC lsls r0, 16 cmp r0, 0 bne _080FDDF2 ldrh r0, [r5] adds r0, 0x1 b _080FDDF6 _080FDDF2: ldrh r0, [r5] adds r0, 0x2 _080FDDF6: strh r0, [r4] ldr r3, _080FDE20 @ =gUnknown_03005DF8 _080FDDFA: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r4, 0x2 ldrb r0, [r3] cmp r6, r0 bcc _080FDDB0 _080FDE08: lsls r0, r7, 24 lsrs r2, r0, 24 ldr r0, _080FDE24 @ =gUnknown_03005DF0 ldrb r0, [r0] cmp r2, r0 bcc _080FDD84 _080FDE14: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FDE20: .4byte gUnknown_03005DF8 _080FDE24: .4byte gUnknown_03005DF0 thumb_func_end sub_80FDD70 thumb_func_start sub_80FDE28 sub_80FDE28: @ 80FDE28 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 movs r2, 0 ldr r0, _080FDE7C @ =gUnknown_03005DF0 ldrb r0, [r0] cmp r2, r0 bcs _080FDEC4 ldr r0, _080FDE80 @ =gUnknown_03005DEC mov r8, r0 _080FDE3E: ldr r0, _080FDE84 @ =gUnknown_03005DFC ldrb r1, [r0] adds r1, r2 ldr r0, _080FDE88 @ =gUnknown_03005E04 ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r3, r8 ldr r1, [r3] adds r1, r0 ldr r0, _080FDE8C @ =gUnknown_03005DE8 ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r5, 0 ldr r0, _080FDE90 @ =gUnknown_03005DF8 adds r7, r2, 0x1 ldrb r0, [r0] cmp r5, r0 bcs _080FDEB8 ldr r6, _080FDE94 @ =gUnknown_03005E0C movs r0, 0x80 lsls r0, 8 adds r2, r0, 0 _080FDE6E: ldrh r0, [r4] ands r0, r2 cmp r0, 0 beq _080FDE98 ldrh r0, [r6] strh r0, [r4] b _080FDEA8 .align 2, 0 _080FDE7C: .4byte gUnknown_03005DF0 _080FDE80: .4byte gUnknown_03005DEC _080FDE84: .4byte gUnknown_03005DFC _080FDE88: .4byte gUnknown_03005E04 _080FDE8C: .4byte gUnknown_03005DE8 _080FDE90: .4byte gUnknown_03005DF8 _080FDE94: .4byte gUnknown_03005E0C _080FDE98: adds r0, r4, 0 str r2, [sp] bl sub_80FE17C ldrh r1, [r6] adds r0, r1 strh r0, [r4] ldr r2, [sp] _080FDEA8: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r4, 0x2 ldr r0, _080FDED0 @ =gUnknown_03005DF8 ldrb r0, [r0] cmp r5, r0 bcc _080FDE6E _080FDEB8: lsls r0, r7, 24 lsrs r2, r0, 24 ldr r0, _080FDED4 @ =gUnknown_03005DF0 ldrb r0, [r0] cmp r2, r0 bcc _080FDE3E _080FDEC4: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FDED0: .4byte gUnknown_03005DF8 _080FDED4: .4byte gUnknown_03005DF0 thumb_func_end sub_80FDE28 thumb_func_start sub_80FDED8 sub_80FDED8: @ 80FDED8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 movs r2, 0 ldr r0, _080FDF2C @ =gUnknown_03005DF0 ldrb r0, [r0] cmp r2, r0 bcs _080FDF74 ldr r0, _080FDF30 @ =gUnknown_03005DEC mov r8, r0 _080FDEEE: ldr r0, _080FDF34 @ =gUnknown_03005DFC ldrb r1, [r0] adds r1, r2 ldr r0, _080FDF38 @ =gUnknown_03005E04 ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r3, r8 ldr r1, [r3] adds r1, r0 ldr r0, _080FDF3C @ =gUnknown_03005DE8 ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r5, 0 ldr r0, _080FDF40 @ =gUnknown_03005DF8 adds r7, r2, 0x1 ldrb r0, [r0] cmp r5, r0 bcs _080FDF68 ldr r6, _080FDF44 @ =gUnknown_03005E0C movs r0, 0x80 lsls r0, 8 adds r2, r0, 0 _080FDF1E: ldrh r0, [r4] ands r0, r2 cmp r0, 0 beq _080FDF48 ldrh r0, [r6] strh r0, [r4] b _080FDF58 .align 2, 0 _080FDF2C: .4byte gUnknown_03005DF0 _080FDF30: .4byte gUnknown_03005DEC _080FDF34: .4byte gUnknown_03005DFC _080FDF38: .4byte gUnknown_03005E04 _080FDF3C: .4byte gUnknown_03005DE8 _080FDF40: .4byte gUnknown_03005DF8 _080FDF44: .4byte gUnknown_03005E0C _080FDF48: adds r0, r4, 0 str r2, [sp] bl sub_80FE1B0 ldrh r1, [r6] adds r0, r1 strh r0, [r4] ldr r2, [sp] _080FDF58: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r4, 0x2 ldr r0, _080FDF80 @ =gUnknown_03005DF8 ldrb r0, [r0] cmp r5, r0 bcc _080FDF1E _080FDF68: lsls r0, r7, 24 lsrs r2, r0, 24 ldr r0, _080FDF84 @ =gUnknown_03005DF0 ldrb r0, [r0] cmp r2, r0 bcc _080FDEEE _080FDF74: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FDF80: .4byte gUnknown_03005DF8 _080FDF84: .4byte gUnknown_03005DF0 thumb_func_end sub_80FDED8 thumb_func_start sub_80FDF88 sub_80FDF88: @ 80FDF88 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 movs r2, 0 ldr r0, _080FDFDC @ =gUnknown_03005DF0 ldrb r0, [r0] cmp r2, r0 bcs _080FE024 ldr r0, _080FDFE0 @ =gUnknown_03005DEC mov r8, r0 _080FDF9E: ldr r0, _080FDFE4 @ =gUnknown_03005DFC ldrb r1, [r0] adds r1, r2 ldr r0, _080FDFE8 @ =gUnknown_03005E04 ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r3, r8 ldr r1, [r3] adds r1, r0 ldr r0, _080FDFEC @ =gUnknown_03005DE8 ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r5, 0 ldr r0, _080FDFF0 @ =gUnknown_03005DF8 adds r7, r2, 0x1 ldrb r0, [r0] cmp r5, r0 bcs _080FE018 ldr r6, _080FDFF4 @ =gUnknown_03005E0C movs r0, 0x80 lsls r0, 8 adds r2, r0, 0 _080FDFCE: ldrh r0, [r4] ands r0, r2 cmp r0, 0 beq _080FDFF8 ldrh r0, [r6] strh r0, [r4] b _080FE008 .align 2, 0 _080FDFDC: .4byte gUnknown_03005DF0 _080FDFE0: .4byte gUnknown_03005DEC _080FDFE4: .4byte gUnknown_03005DFC _080FDFE8: .4byte gUnknown_03005E04 _080FDFEC: .4byte gUnknown_03005DE8 _080FDFF0: .4byte gUnknown_03005DF8 _080FDFF4: .4byte gUnknown_03005E0C _080FDFF8: adds r0, r4, 0 str r2, [sp] bl sub_80FE0AC ldrh r1, [r6] adds r0, r1 strh r0, [r4] ldr r2, [sp] _080FE008: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r4, 0x2 ldr r0, _080FE030 @ =gUnknown_03005DF8 ldrb r0, [r0] cmp r5, r0 bcc _080FDFCE _080FE018: lsls r0, r7, 24 lsrs r2, r0, 24 ldr r0, _080FE034 @ =gUnknown_03005DF0 ldrb r0, [r0] cmp r2, r0 bcc _080FDF9E _080FE024: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FE030: .4byte gUnknown_03005DF8 _080FE034: .4byte gUnknown_03005DF0 thumb_func_end sub_80FDF88 thumb_func_start sub_80FE038 sub_80FE038: @ 80FE038 push {r4,lr} ldrh r0, [r0] movs r1, 0x1F movs r4, 0x1F ands r4, r0 lsls r0, 16 lsrs r3, r0, 21 ands r3, r1 lsrs r2, r0, 26 ands r2, r1 movs r1, 0x3 adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _080FE05C movs r0, 0x1C ands r0, r4 adds r4, r0, 0x4 _080FE05C: adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _080FE06A movs r0, 0x1C ands r0, r3 adds r3, r0, 0x4 _080FE06A: adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _080FE078 movs r0, 0x1C ands r0, r2 adds r2, r0, 0x4 _080FE078: cmp r4, 0x5 bhi _080FE07E movs r4, 0x6 _080FE07E: cmp r4, 0x1E bls _080FE084 movs r4, 0x1E _080FE084: cmp r3, 0x5 bhi _080FE08A movs r3, 0x6 _080FE08A: cmp r3, 0x1E bls _080FE090 movs r3, 0x1E _080FE090: cmp r2, 0x5 bhi _080FE096 movs r2, 0x6 _080FE096: cmp r2, 0x1E bls _080FE09C movs r2, 0x1E _080FE09C: lsls r0, r2, 10 lsls r1, r3, 5 orrs r0, r1 orrs r4, r0 adds r0, r4, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_80FE038 thumb_func_start sub_80FE0AC sub_80FE0AC: @ 80FE0AC push {lr} ldrh r0, [r0] movs r1, 0x1F movs r3, 0x1F ands r3, r0 lsls r0, 16 lsrs r2, r0, 21 ands r2, r1 lsrs r0, 26 ands r0, r1 cmp r3, 0xB bhi _080FE0D0 cmp r2, 0xA bhi _080FE0D0 cmp r0, 0xA bhi _080FE0D0 movs r0, 0x1 b _080FE176 _080FE0D0: cmp r3, 0x13 bls _080FE0F4 cmp r2, 0x13 bls _080FE0DC cmp r0, 0x13 bhi _080FE100 _080FE0DC: cmp r3, 0x13 bls _080FE0F4 cmp r2, 0x13 bls _080FE0EA cmp r0, 0xE bhi _080FE100 b _080FE138 _080FE0EA: cmp r0, 0x13 bls _080FE0F4 cmp r2, 0xE bhi _080FE100 b _080FE114 _080FE0F4: cmp r2, 0x13 bls _080FE104 cmp r0, 0x13 bls _080FE104 cmp r3, 0xE bls _080FE15C _080FE100: movs r0, 0x2 b _080FE176 _080FE104: cmp r3, 0x13 bls _080FE128 cmp r2, 0xB bls _080FE11C cmp r0, 0xB bls _080FE118 cmp r2, r0 bcs _080FE138 _080FE114: movs r0, 0x8 b _080FE176 _080FE118: movs r0, 0xA b _080FE176 _080FE11C: cmp r0, 0xB bls _080FE124 movs r0, 0xD b _080FE176 _080FE124: movs r0, 0x4 b _080FE176 _080FE128: cmp r2, 0x13 bls _080FE14C cmp r3, 0xB bls _080FE140 cmp r0, 0xB bls _080FE13C cmp r3, r0 bcc _080FE15C _080FE138: movs r0, 0x7 b _080FE176 _080FE13C: movs r0, 0xB b _080FE176 _080FE140: cmp r0, 0xB bls _080FE148 movs r0, 0xE b _080FE176 _080FE148: movs r0, 0x5 b _080FE176 _080FE14C: cmp r0, 0x13 bls _080FE174 cmp r3, 0xB bls _080FE160 cmp r2, 0xB bls _080FE168 cmp r3, r2 bcs _080FE114 _080FE15C: movs r0, 0x9 b _080FE176 _080FE160: cmp r2, 0xB bls _080FE168 movs r0, 0xC b _080FE176 _080FE168: cmp r0, 0xB bls _080FE170 movs r0, 0xF b _080FE176 _080FE170: movs r0, 0x6 b _080FE176 _080FE174: movs r0, 0x3 _080FE176: pop {r1} bx r1 thumb_func_end sub_80FE0AC thumb_func_start sub_80FE17C sub_80FE17C: @ 80FE17C push {lr} ldrh r1, [r0] movs r3, 0x1F movs r0, 0x1F ands r0, r1 lsls r1, 16 lsrs r2, r1, 21 ands r2, r3 lsrs r1, 26 ands r1, r3 adds r0, r2 adds r0, r1 movs r1, 0x3 bl __divsi3 movs r1, 0x1E ands r0, r1 lsls r0, 16 cmp r0, 0 beq _080FE1A8 lsrs r0, 17 b _080FE1AA _080FE1A8: movs r0, 0x1 _080FE1AA: pop {r1} bx r1 thumb_func_end sub_80FE17C thumb_func_start sub_80FE1B0 sub_80FE1B0: @ 80FE1B0 push {lr} ldrh r1, [r0] movs r3, 0x1F movs r0, 0x1F ands r0, r1 lsls r1, 16 lsrs r2, r1, 21 ands r2, r3 lsrs r1, 26 ands r1, r3 adds r0, r2 adds r0, r1 movs r1, 0x3 bl __divsi3 lsls r0, 16 movs r1, 0x80 lsls r1, 9 adds r0, r1 lsrs r0, 16 pop {r1} bx r1 thumb_func_end sub_80FE1B0 thumb_func_start sub_80FE1DC sub_80FE1DC: @ 80FE1DC push {lr} sub sp, 0x8 bl sub_80FE2B4 movs r0, 0 movs r1, 0 movs r2, 0xA movs r3, 0x9 bl MenuDrawTextWindow ldr r3, _080FE218 @ =gUnknown_083EC604 movs r0, 0x1 movs r1, 0x1 movs r2, 0x4 bl PrintMenuItems ldr r0, _080FE21C @ =gUnknown_020388D4 ldrb r0, [r0] str r0, [sp] movs r0, 0x9 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x1 movs r3, 0x4 bl InitMenu add sp, 0x8 pop {r0} bx r0 .align 2, 0 _080FE218: .4byte gUnknown_083EC604 _080FE21C: .4byte gUnknown_020388D4 thumb_func_end sub_80FE1DC thumb_func_start sub_80FE220 sub_80FE220: @ 80FE220 push {lr} ldr r1, _080FE238 @ =gUnknown_020388D4 movs r0, 0 strb r0, [r1] bl ScriptContext2_Enable bl sub_80FE1DC bl sub_80FE394 pop {r0} bx r0 .align 2, 0 _080FE238: .4byte gUnknown_020388D4 thumb_func_end sub_80FE220 thumb_func_start sub_80FE23C sub_80FE23C: @ 80FE23C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_80FE220 ldr r1, _080FE25C @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080FE260 @ =sub_80FE2EC str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080FE25C: .4byte gTasks _080FE260: .4byte sub_80FE2EC thumb_func_end sub_80FE23C thumb_func_start sub_80FE264 sub_80FE264: @ 80FE264 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_80FE23C ldr r1, _080FE284 @ =0x0201f000 ldr r0, _080FE288 @ =gSaveBlock1 + 0x1A1A str r0, [r1] adds r0, 0x10 str r0, [r1, 0x4] movs r2, 0 movs r0, 0x10 strb r0, [r1, 0x8] strb r2, [r1, 0x9] pop {r0} bx r0 .align 2, 0 _080FE284: .4byte 0x0201f000 _080FE288: .4byte gSaveBlock1 + 0x1A1A thumb_func_end sub_80FE264 thumb_func_start sub_80FE28C sub_80FE28C: @ 80FE28C push {lr} lsls r0, 24 lsrs r0, 24 bl sub_80FE23C ldr r1, _080FE2AC @ =0x0201f000 ldr r0, _080FE2B0 @ =gSaveBlock1 + 0x2688 str r0, [r1] adds r0, 0xC str r0, [r1, 0x4] movs r0, 0xC strb r0, [r1, 0x8] movs r0, 0x1 strb r0, [r1, 0x9] pop {r0} bx r0 .align 2, 0 _080FE2AC: .4byte 0x0201f000 _080FE2B0: .4byte gSaveBlock1 + 0x2688 thumb_func_end sub_80FE28C thumb_func_start sub_80FE2B4 sub_80FE2B4: @ 80FE2B4 push {lr} sub sp, 0x8 ldr r1, _080FE2E8 @ =gUnknown_083EC654 mov r0, sp movs r2, 0x6 bl memcpy add r0, sp, 0x4 movs r1, 0xDF movs r2, 0x2 bl LoadPalette mov r0, sp adds r0, 0x2 movs r1, 0xD1 movs r2, 0x2 bl LoadPalette mov r0, sp movs r1, 0xD8 movs r2, 0x2 bl LoadPalette add sp, 0x8 pop {r0} bx r0 .align 2, 0 _080FE2E8: .4byte gUnknown_083EC654 thumb_func_end sub_80FE2B4 thumb_func_start sub_80FE2EC sub_80FE2EC: @ 80FE2EC push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 adds r7, r6, 0 ldr r0, _080FE368 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r5, 0x80 adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _080FE38C ldr r4, _080FE36C @ =gMain ldrh r1, [r4, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080FE324 movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 bl MoveMenuCursor ldr r1, _080FE370 @ =gUnknown_020388D4 strb r0, [r1] bl sub_80FE394 _080FE324: ldrh r1, [r4, 0x2E] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _080FE342 movs r0, 0x5 bl PlaySE movs r0, 0x1 bl MoveMenuCursor ldr r1, _080FE370 @ =gUnknown_020388D4 strb r0, [r1] bl sub_80FE394 _080FE342: ldrh r1, [r4, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080FE378 movs r0, 0x5 bl PlaySE ldr r1, _080FE374 @ =gUnknown_083EC604 ldr r0, _080FE370 @ =gUnknown_020388D4 ldrb r0, [r0] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r1, [r0] adds r0, r6, 0 bl _call_via_r1 b _080FE38C .align 2, 0 _080FE368: .4byte gPaletteFade _080FE36C: .4byte gMain _080FE370: .4byte gUnknown_020388D4 _080FE374: .4byte gUnknown_083EC604 _080FE378: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080FE38C movs r0, 0x5 bl PlaySE adds r0, r7, 0 bl gpu_pal_decompress_alloc_tag_and_upload _080FE38C: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80FE2EC thumb_func_start sub_80FE394 sub_80FE394: @ 80FE394 push {lr} movs r0, 0x2 movs r1, 0xF movs r2, 0x1B movs r3, 0x12 bl MenuFillWindowRectWithBlankTile ldr r1, _080FE3BC @ =gUnknown_083EC624 ldr r0, _080FE3C0 @ =gUnknown_020388D4 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x2 movs r2, 0xF bl MenuPrint pop {r0} bx r0 .align 2, 0 _080FE3BC: .4byte gUnknown_083EC624 _080FE3C0: .4byte gUnknown_020388D4 thumb_func_end sub_80FE394 thumb_func_start gpu_pal_decompress_alloc_tag_and_upload gpu_pal_decompress_alloc_tag_and_upload: @ 80FE3C4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0xA movs r3, 0x9 bl MenuZeroFillWindowRect movs r0, 0x2 movs r1, 0xF movs r2, 0x1B movs r3, 0x12 bl MenuFillWindowRectWithBlankTile movs r0, 0x6 bl FreeSpritePaletteByTag ldr r0, _080FE404 @ =0x0201f000 ldrb r0, [r0, 0x9] cmp r0, 0 bne _080FE40C ldr r0, _080FE408 @ =gUnknown_0815F399 bl ScriptContext1_SetupScript adds r0, r4, 0 bl DestroyTask b _080FE412 .align 2, 0 _080FE404: .4byte 0x0201f000 _080FE408: .4byte gUnknown_0815F399 _080FE40C: adds r0, r4, 0 bl sub_8139E24 _080FE412: pop {r4} pop {r0} bx r0 thumb_func_end gpu_pal_decompress_alloc_tag_and_upload thumb_func_start sub_80FE418 sub_80FE418: @ 80FE418 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_80FE5AC pop {r0} bx r0 thumb_func_end sub_80FE418 thumb_func_start sub_80FE428 sub_80FE428: @ 80FE428 push {r4,lr} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080FE464 @ =gUnknown_020388D4 ldrb r0, [r0] str r0, [sp] movs r0, 0x9 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x1 movs r3, 0x4 bl InitMenu bl sub_80FE394 ldr r1, _080FE468 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080FE46C @ =sub_80FE2EC str r1, [r0] add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _080FE464: .4byte gUnknown_020388D4 _080FE468: .4byte gTasks _080FE46C: .4byte sub_80FE2EC thumb_func_end sub_80FE428 thumb_func_start sub_80FE470 sub_80FE470: @ 80FE470 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r4, r0, 0 mov r8, r1 mov r9, r2 adds r5, r3, 0 lsls r4, 24 lsrs r4, 24 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 mov r0, r9 lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r5, 24 lsrs r5, 24 bl sub_8072CBC adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 ldr r7, _080FE51C @ =gStringVar4 movs r0, 0xFC strb r0, [r7] movs r0, 0x5 mov r10, r0 strb r0, [r7, 0x1] strb r5, [r7, 0x2] adds r7, 0x3 ldr r1, _080FE520 @ =gUnknown_083EC5E4 lsls r0, r4, 2 adds r0, r1 ldr r1, [r0] adds r0, r7, 0 bl StringCopy adds r7, r0, 0 adds r0, r4, 0 bl sub_8134194 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r7, 0 movs r2, 0x56 movs r3, 0x1 bl sub_8072C14 adds r7, r0, 0 movs r0, 0xBA strb r0, [r7] adds r7, 0x1 ldr r0, _080FE524 @ =gDecorationInventories lsls r4, 3 adds r4, r0 ldrb r1, [r4, 0x4] adds r0, r7, 0 movs r2, 0x68 movs r3, 0x1 bl sub_8072C14 adds r7, r0, 0 movs r0, 0xFC strb r0, [r7] mov r0, r10 strb r0, [r7, 0x1] strb r6, [r7, 0x2] movs r0, 0xFF strb r0, [r7, 0x3] ldr r0, _080FE51C @ =gStringVar4 mov r1, r8 mov r2, r9 bl MenuPrint pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FE51C: .4byte gStringVar4 _080FE520: .4byte gUnknown_083EC5E4 _080FE524: .4byte gDecorationInventories thumb_func_end sub_80FE470 thumb_func_start sub_80FE528 sub_80FE528: @ 80FE528 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0 movs r2, 0xE movs r3, 0x13 bl MenuDrawTextWindow movs r5, 0 ldr r1, _080FE574 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r4, r0, r1 _080FE548: ldr r0, _080FE578 @ =0x0201f000 ldrb r0, [r0, 0x9] cmp r0, 0x1 bne _080FE57C movs r1, 0x1E ldrsh r0, [r4, r1] cmp r0, 0 bne _080FE57C cmp r5, 0x6 beq _080FE57C cmp r5, 0x7 beq _080FE57C lsls r2, r5, 1 adds r2, 0x1 lsls r2, 24 lsrs r2, 24 adds r0, r5, 0 movs r1, 0x1 movs r3, 0xD bl sub_80FE470 b _080FE58E .align 2, 0 _080FE574: .4byte gTasks _080FE578: .4byte 0x0201f000 _080FE57C: lsls r2, r5, 1 adds r2, 0x1 lsls r2, 24 lsrs r2, 24 adds r0, r5, 0 movs r1, 0x1 movs r3, 0xFF bl sub_80FE470 _080FE58E: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x7 bls _080FE548 ldr r0, _080FE5A8 @ =gUnknownText_Exit movs r1, 0x1 movs r2, 0x11 bl MenuPrint pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FE5A8: .4byte gUnknownText_Exit thumb_func_end sub_80FE528 thumb_func_start sub_80FE5AC sub_80FE5AC: @ 80FE5AC push {r4,lr} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect adds r0, r4, 0 bl sub_80FE528 ldr r0, _080FE5F8 @ =gUnknown_020388F6 ldrb r0, [r0] str r0, [sp] movs r0, 0xD str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x1 movs r3, 0x9 bl InitMenu ldr r1, _080FE5FC @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080FE600 @ =sub_80FE604 str r1, [r0] add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _080FE5F8: .4byte gUnknown_020388F6 _080FE5FC: .4byte gTasks _080FE600: .4byte sub_80FE604 thumb_func_end sub_80FE5AC thumb_func_start sub_80FE604 sub_80FE604: @ 80FE604 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 adds r4, r5, 0 ldr r0, _080FE638 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r3, 0x80 adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _080FE61C b _080FE720 _080FE61C: ldr r2, _080FE63C @ =gMain ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080FE640 movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 bl MoveMenuCursor b _080FE720 .align 2, 0 _080FE638: .4byte gPaletteFade _080FE63C: .4byte gMain _080FE640: adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _080FE656 movs r0, 0x5 bl PlaySE movs r0, 0x1 bl MoveMenuCursor b _080FE720 _080FE656: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080FE70C movs r0, 0x5 bl PlaySE bl GetMenuCursorPos ldr r4, _080FE6C0 @ =gUnknown_020388F6 strb r0, [r4] lsls r0, 24 lsrs r0, 24 cmp r0, 0x8 beq _080FE704 ldrb r0, [r4] bl sub_8134194 ldr r1, _080FE6C4 @ =gUnknown_020388D5 strb r0, [r1] lsls r0, 24 cmp r0, 0 beq _080FE6DC ldrb r0, [r4] bl sub_8134104 ldr r2, _080FE6C8 @ =gUnknown_020388D0 ldr r1, _080FE6CC @ =gDecorationInventories ldrb r0, [r4] lsls r0, 3 adds r0, r1 ldr r0, [r0] str r0, [r2] adds r0, r5, 0 bl sub_80FEF50 bl sub_80F944C ldr r0, _080FE6D0 @ =gUnknown_020388F7 movs r1, 0x8 bl sub_80F9480 bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed ldr r1, _080FE6D4 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _080FE6D8 @ =sub_80FE868 str r1, [r0] b _080FE720 .align 2, 0 _080FE6C0: .4byte gUnknown_020388F6 _080FE6C4: .4byte gUnknown_020388D5 _080FE6C8: .4byte gUnknown_020388D0 _080FE6CC: .4byte gDecorationInventories _080FE6D0: .4byte gUnknown_020388F7 _080FE6D4: .4byte gTasks _080FE6D8: .4byte sub_80FE868 _080FE6DC: bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0xE movs r3, 0x13 bl MenuZeroFillWindowRect ldr r1, _080FE6FC @ =gSecretBaseText_NoDecors ldr r2, _080FE700 @ =sub_80FE418 adds r0, r5, 0 movs r3, 0 bl DisplayItemMessageOnField b _080FE720 .align 2, 0 _080FE6FC: .4byte gSecretBaseText_NoDecors _080FE700: .4byte sub_80FE418 _080FE704: adds r0, r5, 0 bl sub_80FE728 b _080FE720 _080FE70C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080FE720 movs r0, 0x5 bl PlaySE adds r0, r4, 0 bl sub_80FE728 _080FE720: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80FE604 thumb_func_start sub_80FE728 sub_80FE728: @ 80FE728 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080FE748 @ =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 movs r1, 0x1E ldrsh r0, [r0, r1] cmp r0, 0x3 beq _080FE74C adds r0, r2, 0 bl sub_80FE758 b _080FE752 .align 2, 0 _080FE748: .4byte gTasks _080FE74C: adds r0, r2, 0 bl sub_8109DAC _080FE752: pop {r0} bx r0 thumb_func_end sub_80FE728 thumb_func_start sub_80FE758 sub_80FE758: @ 80FE758 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0xE movs r3, 0x13 bl MenuZeroFillWindowRect ldr r1, _080FE794 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r5, r0, r1 movs r1, 0x1E ldrsh r0, [r5, r1] cmp r0, 0x2 beq _080FE79C bl sub_80FE1DC bl MenuDisplayMessageBox bl sub_80FE394 ldr r0, _080FE798 @ =sub_80FE2EC str r0, [r5] b _080FE7A2 .align 2, 0 _080FE794: .4byte gTasks _080FE798: .4byte sub_80FE2EC _080FE79C: adds r0, r4, 0 bl sub_80B3068 _080FE7A2: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80FE758 thumb_func_start sub_80FE7A8 sub_80FE7A8: @ 80FE7A8 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080FE7CC @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r3, 0 movs r2, 0x3 strh r2, [r1, 0x1E] ldr r1, _080FE7D0 @ =gUnknown_020388F6 strb r3, [r1] bl sub_80FE5AC pop {r0} bx r0 .align 2, 0 _080FE7CC: .4byte gTasks _080FE7D0: .4byte gUnknown_020388F6 thumb_func_end sub_80FE7A8 thumb_func_start sub_80FE7D4 sub_80FE7D4: @ 80FE7D4 push {lr} lsls r1, 24 ldr r2, _080FE7E8 @ =gUnknown_083EC5E4 lsrs r1, 22 adds r1, r2 ldr r1, [r1] bl StringCopy pop {r0} bx r0 .align 2, 0 _080FE7E8: .4byte gUnknown_083EC5E4 thumb_func_end sub_80FE7D4 thumb_func_start sub_80FE7EC sub_80FE7EC: @ 80FE7EC push {r4,lr} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect adds r0, r4, 0 bl sub_80FEC94 ldr r0, _080FE858 @ =gUnknown_020388F6 ldrb r0, [r0] bl sub_80FECB8 movs r0, 0xF movs r1, 0xC movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow ldr r4, _080FE85C @ =gUnknown_020388F2 ldr r0, _080FE860 @ =gUnknown_020388F4 ldrb r0, [r0] ldrb r1, [r4] adds r0, r1 lsls r0, 24 lsrs r0, 24 bl sub_80FECE0 ldr r0, _080FE864 @ =gUnknown_020388F3 ldrb r3, [r0] adds r3, 0x1 lsls r3, 24 lsrs r3, 24 ldrb r0, [r4] str r0, [sp] movs r0, 0xD str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x2 bl InitMenu add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _080FE858: .4byte gUnknown_020388F6 _080FE85C: .4byte gUnknown_020388F2 _080FE860: .4byte gUnknown_020388F4 _080FE864: .4byte gUnknown_020388F3 thumb_func_end sub_80FE7EC thumb_func_start sub_80FE868 sub_80FE868: @ 80FE868 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_80FE7EC ldr r1, _080FE88C @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080FE890 @ =sub_80FE948 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080FE88C: .4byte gTasks _080FE890: .4byte sub_80FE948 thumb_func_end sub_80FE868 thumb_func_start sub_80FE894 sub_80FE894: @ 80FE894 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r7, r2, 24 movs r0, 0 mov r10, r0 ldr r6, _080FE920 @ =gUnknown_020388F2 ldrb r1, [r6] ldr r4, _080FE924 @ =gUnknown_020388F4 ldrb r0, [r4] adds r1, r0 ldr r2, _080FE928 @ =gUnknown_020388D5 mov r9, r2 ldrb r0, [r2] cmp r1, r0 bne _080FE8C8 movs r1, 0x1 mov r10, r1 _080FE8C8: movs r0, 0x5 bl PlaySE lsls r0, r5, 24 asrs r0, 24 cmp r0, 0 beq _080FE8DC bl MoveMenuCursor strb r0, [r6] _080FE8DC: cmp r7, 0 beq _080FE8EE ldrb r0, [r4] adds r0, r7 strb r0, [r4] mov r0, r8 movs r1, 0x1 bl sub_80FEABC _080FE8EE: ldrb r0, [r6] ldrb r1, [r4] adds r0, r1 mov r2, r9 ldrb r2, [r2] cmp r0, r2 beq _080FE92C mov r0, r10 cmp r0, 0 beq _080FE90E movs r0, 0xF movs r1, 0xC movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow _080FE90E: ldrb r0, [r4] ldrb r6, [r6] adds r0, r6 lsls r0, 24 lsrs r0, 24 bl sub_80FECE0 b _080FE938 .align 2, 0 _080FE920: .4byte gUnknown_020388F2 _080FE924: .4byte gUnknown_020388F4 _080FE928: .4byte gUnknown_020388D5 _080FE92C: movs r0, 0xF movs r1, 0xC movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect _080FE938: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80FE894 thumb_func_start sub_80FE948 sub_80FE948: @ 80FE948 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080FE980 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080FE95C b _080FEAAC _080FE95C: ldr r0, _080FE984 @ =gMain ldrh r1, [r0, 0x30] movs r0, 0xF0 ands r0, r1 cmp r0, 0x40 bne _080FE9A0 ldr r0, _080FE988 @ =gUnknown_020388F2 ldrb r0, [r0] cmp r0, 0 beq _080FE98C movs r1, 0x1 negs r1, r1 adds r0, r4, 0 movs r2, 0 bl sub_80FE894 b _080FE9A0 .align 2, 0 _080FE980: .4byte gPaletteFade _080FE984: .4byte gMain _080FE988: .4byte gUnknown_020388F2 _080FE98C: ldr r0, _080FE9C4 @ =gUnknown_020388F4 ldrb r0, [r0] cmp r0, 0 beq _080FE9A0 movs r2, 0x1 negs r2, r2 adds r0, r4, 0 movs r1, 0 bl sub_80FE894 _080FE9A0: ldr r0, _080FE9C8 @ =gMain ldrh r1, [r0, 0x30] movs r0, 0xF0 ands r0, r1 cmp r0, 0x80 bne _080FE9EE ldr r2, _080FE9CC @ =gUnknown_020388F2 ldr r1, _080FE9D0 @ =gUnknown_020388F3 ldrb r0, [r2] ldrb r1, [r1] cmp r0, r1 beq _080FE9D4 adds r0, r4, 0 movs r1, 0x1 movs r2, 0 bl sub_80FE894 b _080FE9EE .align 2, 0 _080FE9C4: .4byte gUnknown_020388F4 _080FE9C8: .4byte gMain _080FE9CC: .4byte gUnknown_020388F2 _080FE9D0: .4byte gUnknown_020388F3 _080FE9D4: ldr r0, _080FEA38 @ =gUnknown_020388F4 ldrb r0, [r0] ldrb r1, [r2] adds r0, r1 ldr r1, _080FEA3C @ =gUnknown_020388D5 ldrb r1, [r1] cmp r0, r1 beq _080FE9EE adds r0, r4, 0 movs r1, 0 movs r2, 0x1 bl sub_80FE894 _080FE9EE: ldr r0, _080FEA40 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080FEA7C bl sub_8072DEC movs r0, 0x5 bl PlaySE ldr r2, _080FEA44 @ =gUnknown_020388F5 ldr r1, _080FEA48 @ =gUnknown_020388F2 ldr r0, _080FEA38 @ =gUnknown_020388F4 ldrb r0, [r0] ldrb r1, [r1] adds r0, r1 strb r0, [r2] ldr r1, _080FEA3C @ =gUnknown_020388D5 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bne _080FEA54 ldr r1, _080FEA4C @ =gUnknown_083EC634 ldr r2, _080FEA50 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r2 movs r2, 0x1E ldrsh r0, [r0, r2] lsls r0, 3 adds r1, 0x4 adds r0, r1 b _080FEA68 .align 2, 0 _080FEA38: .4byte gUnknown_020388F4 _080FEA3C: .4byte gUnknown_020388D5 _080FEA40: .4byte gMain _080FEA44: .4byte gUnknown_020388F5 _080FEA48: .4byte gUnknown_020388F2 _080FEA4C: .4byte gUnknown_083EC634 _080FEA50: .4byte gTasks _080FEA54: ldr r2, _080FEA74 @ =gUnknown_083EC634 ldr r1, _080FEA78 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0x1E ldrsh r0, [r0, r1] lsls r0, 3 adds r0, r2 _080FEA68: ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 b _080FEAAC .align 2, 0 _080FEA74: .4byte gUnknown_083EC634 _080FEA78: .4byte gTasks _080FEA7C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080FEAAC bl sub_8072DEC movs r0, 0x5 bl PlaySE ldr r1, _080FEAB4 @ =gUnknown_083EC634 ldr r2, _080FEAB8 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r2 movs r2, 0x1E ldrsh r0, [r0, r2] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 _080FEAAC: pop {r4} pop {r0} bx r0 .align 2, 0 _080FEAB4: .4byte gUnknown_083EC634 _080FEAB8: .4byte gTasks thumb_func_end sub_80FE948 thumb_func_start sub_80FEABC sub_80FEABC: @ 80FEABC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r4, _080FEB58 @ =gUnknown_020388F4 ldrb r0, [r4] cmp r0, 0 bne _080FEADE movs r0, 0 bl SetBgTilemapBuffer ldrb r0, [r4] cmp r0, 0 beq _080FEAE8 _080FEADE: movs r0, 0 movs r1, 0x3C movs r2, 0x8 bl sub_80F953C _080FEAE8: ldr r5, _080FEB58 @ =gUnknown_020388F4 ldrb r0, [r5] adds r0, 0x7 ldr r4, _080FEB5C @ =gUnknown_020388D5 ldrb r1, [r4] cmp r0, r1 bne _080FEAFC movs r0, 0x1 bl SetBgTilemapBuffer _080FEAFC: ldrb r0, [r5] adds r0, 0x7 ldrb r4, [r4] cmp r0, r4 bge _080FEB10 movs r0, 0x1 movs r1, 0x3C movs r2, 0x98 bl sub_80F953C _080FEB10: ldrb r4, [r5] adds r0, r4, 0 adds r0, 0x8 cmp r4, r0 blt _080FEB1C b _080FEC7E _080FEB1C: adds r7, r5, 0 _080FEB1E: ldrb r1, [r7] subs r1, r4, r1 lsls r0, r1, 25 movs r2, 0x80 lsls r2, 18 adds r0, r2 lsrs r6, r0, 24 ldr r0, _080FEB60 @ =gUnknown_020388F7 adds r1, r0 ldrb r0, [r1] cmp r0, 0 beq _080FEB3C adds r0, r1, 0 bl sub_80F94F8 _080FEB3C: ldr r0, _080FEB5C @ =gUnknown_020388D5 ldrb r0, [r0] cmp r4, r0 bne _080FEB68 lsls r2, r6, 3 movs r0, 0x1 str r0, [sp] ldr r0, _080FEB64 @ =gUnknownText_Exit movs r1, 0x8 movs r3, 0x68 bl sub_8072A18 b _080FEC7E .align 2, 0 _080FEB58: .4byte gUnknown_020388F4 _080FEB5C: .4byte gUnknown_020388D5 _080FEB60: .4byte gUnknown_020388F7 _080FEB64: .4byte gUnknownText_Exit _080FEB68: ldr r0, _080FEBC0 @ =gUnknown_020388D0 ldr r1, [r0] adds r2, r1, r4 ldrb r1, [r2] mov r12, r0 adds r5, r4, 0x1 cmp r1, 0 bne _080FEB7A b _080FEC70 _080FEB7A: ldr r0, _080FEBC4 @ =0x0201f000 ldrb r5, [r0, 0x9] cmp r5, 0x1 bne _080FEBDC ldr r0, _080FEBC8 @ =gUnknown_020388F6 ldrb r0, [r0] cmp r0, 0x6 beq _080FEBDC cmp r0, 0x7 beq _080FEBDC ldr r0, _080FEBCC @ =gTasks mov r3, r8 lsls r1, r3, 2 add r1, r8 lsls r1, 3 adds r1, r0 movs r3, 0x1E ldrsh r0, [r1, r3] cmp r0, 0 bne _080FEBDC ldrb r1, [r2] lsls r1, 5 ldr r0, _080FEBD0 @ =gDecorations + 0x1 adds r1, r0 ldr r0, _080FEBD4 @ =gStringVar1 bl StringCopy lsls r2, r6, 3 str r5, [sp] ldr r0, _080FEBD8 @ =gUnknown_083EC65A movs r1, 0x8 movs r3, 0x68 bl sub_8072A18 b _080FEBF8 .align 2, 0 _080FEBC0: .4byte gUnknown_020388D0 _080FEBC4: .4byte 0x0201f000 _080FEBC8: .4byte gUnknown_020388F6 _080FEBCC: .4byte gTasks _080FEBD0: .4byte gDecorations + 0x1 _080FEBD4: .4byte gStringVar1 _080FEBD8: .4byte gUnknown_083EC65A _080FEBDC: mov r1, r12 ldr r0, [r1] adds r0, r4 ldrb r0, [r0] lsls r0, 5 ldr r1, _080FEC00 @ =gDecorations + 0x1 adds r0, r1 lsls r2, r6, 3 movs r1, 0x1 str r1, [sp] movs r1, 0x8 movs r3, 0x68 bl sub_8072A18 _080FEBF8: movs r1, 0 adds r5, r4, 0x1 b _080FEC0A .align 2, 0 _080FEC00: .4byte gDecorations + 0x1 _080FEC04: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 _080FEC0A: cmp r1, 0xF bhi _080FEC34 ldr r0, _080FEC38 @ =gUnknown_020388D6 adds r0, r1, r0 ldrb r0, [r0] subs r0, 0x1 cmp r0, r4 bne _080FEC04 ldrb r3, [r7] subs r3, r4, r3 ldr r1, _080FEC3C @ =gUnknown_020388F7 adds r1, r3, r1 lsls r3, 20 movs r2, 0xC0 lsls r2, 13 adds r3, r2 asrs r3, 16 movs r0, 0x4 movs r2, 0x6C bl sub_80F94A4 _080FEC34: movs r1, 0 b _080FEC46 .align 2, 0 _080FEC38: .4byte gUnknown_020388D6 _080FEC3C: .4byte gUnknown_020388F7 _080FEC40: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 _080FEC46: cmp r1, 0xB bhi _080FEC70 ldr r0, _080FEC8C @ =gUnknown_020388E6 adds r0, r1, r0 ldrb r0, [r0] subs r0, 0x1 cmp r0, r4 bne _080FEC40 ldrb r3, [r7] subs r3, r4, r3 ldr r1, _080FEC90 @ =gUnknown_020388F7 adds r1, r3, r1 lsls r3, 20 movs r0, 0xC0 lsls r0, 13 adds r3, r0 asrs r3, 16 movs r0, 0x5 movs r2, 0x6C bl sub_80F94A4 _080FEC70: lsls r0, r5, 16 lsrs r4, r0, 16 ldrb r0, [r7] adds r0, 0x8 cmp r4, r0 bge _080FEC7E b _080FEB1E _080FEC7E: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FEC8C: .4byte gUnknown_020388E6 _080FEC90: .4byte gUnknown_020388F7 thumb_func_end sub_80FEABC thumb_func_start sub_80FEC94 sub_80FEC94: @ 80FEC94 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0 movs r2, 0xE movs r3, 0x13 bl MenuDrawTextWindow adds r0, r4, 0 movs r1, 0 bl sub_80FEABC pop {r4} pop {r0} bx r0 thumb_func_end sub_80FEC94 thumb_func_start sub_80FECB8 sub_80FECB8: @ 80FECB8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0xF movs r1, 0 movs r2, 0x1D movs r3, 0x3 bl MenuDrawTextWindow adds r0, r4, 0 movs r1, 0x10 movs r2, 0x1 movs r3, 0xFF bl sub_80FE470 pop {r4} pop {r0} bx r0 thumb_func_end sub_80FECB8 thumb_func_start sub_80FECE0 sub_80FECE0: @ 80FECE0 push {lr} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 ldr r2, _080FED14 @ =gDecorations ldr r1, _080FED18 @ =gUnknown_020388D0 ldr r1, [r1] adds r1, r0 ldrb r0, [r1] lsls r0, 5 adds r2, 0x18 adds r0, r2 ldr r0, [r0] movs r1, 0x30 str r1, [sp] movs r1, 0x1 str r1, [sp, 0x4] movs r1, 0x80 movs r2, 0x68 movs r3, 0x68 bl sub_8072AB0 add sp, 0x8 pop {r0} bx r0 .align 2, 0 _080FED14: .4byte gDecorations _080FED18: .4byte gUnknown_020388D0 thumb_func_end sub_80FECE0 thumb_func_start sub_80FED1C sub_80FED1C: @ 80FED1C push {lr} movs r0, 0xF movs r1, 0 movs r2, 0x1D movs r3, 0x3 bl MenuZeroFillWindowRect movs r0, 0xF movs r1, 0xC movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect pop {r0} bx r0 thumb_func_end sub_80FED1C thumb_func_start sub_80FED3C sub_80FED3C: @ 80FED3C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed ldr r1, _080FED5C @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080FED60 @ =sub_80FE868 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080FED5C: .4byte gTasks _080FED60: .4byte sub_80FE868 thumb_func_end sub_80FED3C thumb_func_start sub_80FED64 sub_80FED64: @ 80FED64 push {lr} lsls r0, 24 lsrs r2, r0, 24 movs r1, 0 ldr r3, _080FED7C @ =gUnknown_020388D6 _080FED6E: adds r0, r1, r3 ldrb r0, [r0] cmp r0, r2 bne _080FED80 movs r0, 0x1 b _080FED8C .align 2, 0 _080FED7C: .4byte gUnknown_020388D6 _080FED80: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xF bls _080FED6E movs r0, 0 _080FED8C: pop {r1} bx r1 thumb_func_end sub_80FED64 thumb_func_start sub_80FED90 sub_80FED90: @ 80FED90 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r6, 0 movs r3, 0 ldr r4, _080FEE30 @ =gUnknown_020388D6 movs r1, 0 ldr r2, _080FEE34 @ =gUnknown_020388E6 _080FEDA4: adds r0, r3, r4 strb r1, [r0] cmp r3, 0xB bhi _080FEDB0 adds r0, r3, r2 strb r1, [r0] _080FEDB0: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0xF bls _080FEDA4 movs r3, 0 ldr r0, _080FEE38 @ =gSaveBlock1 + 0x1A1A mov r10, r0 ldr r1, _080FEE3C @ =gDecorationInventories mov r9, r1 ldr r2, _080FEE40 @ =gUnknown_020388F6 mov r8, r2 _080FEDC8: mov r1, r10 adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 beq _080FEE5A movs r1, 0 mov r2, r8 ldrb r0, [r2] lsls r0, 3 add r0, r9 ldrb r0, [r0, 0x4] cmp r1, r0 bcs _080FEE5A ldr r0, _080FEE38 @ =gSaveBlock1 + 0x1A1A adds r0, r3 mov r12, r0 ldr r7, _080FEE30 @ =gUnknown_020388D6 _080FEDEA: ldr r0, _080FEE44 @ =gUnknown_020388D0 ldr r0, [r0] adds r0, r1 ldrb r0, [r0] adds r4, r1, 0x1 mov r1, r12 ldrb r1, [r1] cmp r0, r1 bne _080FEE48 movs r1, 0 cmp r1, r6 bcs _080FEE1E ldrb r0, [r7] cmp r0, r4 beq _080FEE1E ldr r5, _080FEE30 @ =gUnknown_020388D6 adds r2, r4, 0 _080FEE0C: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r6 bcs _080FEE1E adds r0, r1, r5 ldrb r0, [r0] cmp r0, r2 bne _080FEE0C _080FEE1E: cmp r1, r6 bne _080FEE48 adds r0, r6, r7 strb r4, [r0] adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 b _080FEE5A .align 2, 0 _080FEE30: .4byte gUnknown_020388D6 _080FEE34: .4byte gUnknown_020388E6 _080FEE38: .4byte gSaveBlock1 + 0x1A1A _080FEE3C: .4byte gDecorationInventories _080FEE40: .4byte gUnknown_020388F6 _080FEE44: .4byte gUnknown_020388D0 _080FEE48: lsls r0, r4, 16 lsrs r1, r0, 16 mov r2, r8 ldrb r0, [r2] lsls r0, 3 add r0, r9 ldrb r0, [r0, 0x4] cmp r1, r0 bcc _080FEDEA _080FEE5A: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0xF bls _080FEDC8 movs r6, 0 movs r3, 0 ldr r0, _080FEEE4 @ =gDecorationInventories mov r8, r0 _080FEE6C: ldr r0, _080FEEE8 @ =gSaveBlock1 ldr r1, _080FEEEC @ =0x00002688 adds r0, r1 adds r2, r3, r0 ldrb r0, [r2] adds r7, r3, 0x1 cmp r0, 0 beq _080FEF0E movs r1, 0 ldr r0, _080FEEF0 @ =gUnknown_020388F6 ldrb r0, [r0] lsls r0, 3 add r0, r8 ldrb r0, [r0, 0x4] cmp r1, r0 bcs _080FEF0E adds r5, r2, 0 _080FEE8E: ldr r0, _080FEEF4 @ =gUnknown_020388D0 ldr r0, [r0] adds r0, r1 ldrb r0, [r0] adds r4, r1, 0x1 ldrb r2, [r5] cmp r0, r2 bne _080FEEFC lsls r0, r4, 24 lsrs r0, 24 bl sub_80FED64 lsls r0, 24 cmp r0, 0 bne _080FEEFC movs r1, 0 cmp r1, r6 bcs _080FEED0 ldr r2, _080FEEF8 @ =gUnknown_020388E6 ldrb r0, [r2] cmp r0, r4 beq _080FEED0 adds r3, r2, 0 adds r2, r4, 0 _080FEEBE: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r6 bcs _080FEED0 adds r0, r1, r3 ldrb r0, [r0] cmp r0, r2 bne _080FEEBE _080FEED0: cmp r1, r6 bne _080FEEFC ldr r0, _080FEEF8 @ =gUnknown_020388E6 adds r0, r6, r0 strb r4, [r0] adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 b _080FEF0E .align 2, 0 _080FEEE4: .4byte gDecorationInventories _080FEEE8: .4byte gSaveBlock1 _080FEEEC: .4byte 0x00002688 _080FEEF0: .4byte gUnknown_020388F6 _080FEEF4: .4byte gUnknown_020388D0 _080FEEF8: .4byte gUnknown_020388E6 _080FEEFC: lsls r0, r4, 16 lsrs r1, r0, 16 ldr r0, _080FEF24 @ =gUnknown_020388F6 ldrb r0, [r0] lsls r0, 3 add r0, r8 ldrb r0, [r0, 0x4] cmp r1, r0 bcc _080FEE8E _080FEF0E: lsls r0, r7, 16 lsrs r3, r0, 16 cmp r3, 0xB bls _080FEE6C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FEF24: .4byte gUnknown_020388F6 thumb_func_end sub_80FED90 thumb_func_start sub_80FEF28 sub_80FEF28: @ 80FEF28 push {lr} ldr r0, _080FEF38 @ =gUnknown_020388D5 ldrb r1, [r0] cmp r1, 0x7 bhi _080FEF40 ldr r0, _080FEF3C @ =gUnknown_020388F3 strb r1, [r0] b _080FEF46 .align 2, 0 _080FEF38: .4byte gUnknown_020388D5 _080FEF3C: .4byte gUnknown_020388F3 _080FEF40: ldr r1, _080FEF4C @ =gUnknown_020388F3 movs r0, 0x7 strb r0, [r1] _080FEF46: pop {r0} bx r0 .align 2, 0 _080FEF4C: .4byte gUnknown_020388F3 thumb_func_end sub_80FEF28 thumb_func_start sub_80FEF50 sub_80FEF50: @ 80FEF50 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_80FED90 bl sub_80FEF28 ldr r0, _080FEF6C @ =gUnknown_020388F2 movs r1, 0 strb r1, [r0] ldr r0, _080FEF70 @ =gUnknown_020388F4 strb r1, [r0] pop {r0} bx r0 .align 2, 0 _080FEF6C: .4byte gUnknown_020388F2 _080FEF70: .4byte gUnknown_020388F4 thumb_func_end sub_80FEF50 thumb_func_start sub_80FEF74 sub_80FEF74: @ 80FEF74 push {lr} ldr r0, _080FEFA0 @ =gUnknown_020388F7 movs r1, 0x8 bl sub_80F9520 movs r0, 0 bl SetBgTilemapBuffer movs r0, 0x1 bl SetBgTilemapBuffer bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0xE movs r3, 0x13 bl MenuZeroFillWindowRect pop {r0} bx r0 .align 2, 0 _080FEFA0: .4byte gUnknown_020388F7 thumb_func_end sub_80FEF74 thumb_func_start sub_80FEFA4 sub_80FEFA4: @ 80FEFA4 push {r4,lr} movs r2, 0 ldr r0, _080FEFD0 @ =gUnknown_020388F4 ldrb r0, [r0] ldr r1, _080FEFD4 @ =gUnknown_020388F2 ldrb r1, [r1] adds r0, r1 adds r1, r0, 0x1 ldr r4, _080FEFD8 @ =gUnknown_020388D6 ldr r3, _080FEFDC @ =gUnknown_020388E6 _080FEFB8: adds r0, r2, r4 ldrb r0, [r0] cmp r0, r1 beq _080FEFCC cmp r2, 0xB bhi _080FEFE0 adds r0, r2, r3 ldrb r0, [r0] cmp r0, r1 bne _080FEFE0 _080FEFCC: movs r0, 0 b _080FEFEC .align 2, 0 _080FEFD0: .4byte gUnknown_020388F4 _080FEFD4: .4byte gUnknown_020388F2 _080FEFD8: .4byte gUnknown_020388D6 _080FEFDC: .4byte gUnknown_020388E6 _080FEFE0: adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0xF bls _080FEFB8 movs r0, 0x1 _080FEFEC: pop {r4} pop {r1} bx r1 thumb_func_end sub_80FEFA4 thumb_func_start sub_80FEFF4 sub_80FEFF4: @ 80FEFF4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080FF028 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080FF00E movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080FF020 _080FF00E: bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed ldr r0, _080FF02C @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080FF030 @ =sub_80FE868 str r0, [r1] _080FF020: pop {r4} pop {r0} bx r0 .align 2, 0 _080FF028: .4byte gMain _080FF02C: .4byte gTasks _080FF030: .4byte sub_80FE868 thumb_func_end sub_80FEFF4 thumb_func_start sub_80FF034 sub_80FF034: @ 80FF034 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0xE movs r3, 0x13 bl MenuZeroFillWindowRect adds r0, r4, 0 bl sub_80FE5AC pop {r4} pop {r0} bx r0 thumb_func_end sub_80FF034 thumb_func_start sub_80FF058 sub_80FF058: @ 80FF058 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080FF08C @ =gUnknown_020388F7 movs r1, 0x8 bl sub_80F9520 movs r0, 0 bl SetBgTilemapBuffer movs r0, 0x1 bl SetBgTilemapBuffer bl BuyMenuFreeMemory ldr r1, _080FF090 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080FF094 @ =sub_80FF034 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080FF08C: .4byte gUnknown_020388F7 _080FF090: .4byte gTasks _080FF094: .4byte sub_80FF034 thumb_func_end sub_80FF058 thumb_func_start sub_80FF098 sub_80FF098: @ 80FF098 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080FF0D4 @ =gUnknown_020388D5 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] ldr r3, _080FF0D8 @ =gUnknown_020388F4 ldrb r2, [r3] adds r0, r2, 0x7 ldrb r1, [r1] cmp r0, r1 ble _080FF0BA cmp r2, 0 beq _080FF0BA subs r0, r2, 0x1 strb r0, [r3] _080FF0BA: ldr r0, _080FF0DC @ =gUnknown_020388F6 ldrb r0, [r0] bl sub_8134104 adds r0, r4, 0 bl sub_80FED90 bl sub_80FEF28 pop {r4} pop {r0} bx r0 .align 2, 0 _080FF0D4: .4byte gUnknown_020388D5 _080FF0D8: .4byte gUnknown_020388F4 _080FF0DC: .4byte gUnknown_020388F6 thumb_func_end sub_80FF098 thumb_func_start sub_80FF0E0 sub_80FF0E0: @ 80FF0E0 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r3, _080FF10C @ =gTasks lsls r2, r0, 2 adds r2, r0 lsls r2, 3 adds r4, r2, r3 ldr r1, _080FF110 @ =gSaveBlock1 ldrh r0, [r1] strh r0, [r4, 0xE] ldrh r0, [r1, 0x2] strh r0, [r4, 0x10] adds r3, 0x8 adds r2, r3 adds r1, r2, 0x2 adds r0, r2, 0 bl PlayerGetDestCoords pop {r4} pop {r0} bx r0 .align 2, 0 _080FF10C: .4byte gTasks _080FF110: .4byte gSaveBlock1 thumb_func_end sub_80FF0E0 thumb_func_start sub_80FF114 sub_80FF114: @ 80FF114 push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 bl DrawWholeMapView ldr r1, _080FF158 @ =gSaveBlock1 movs r0, 0x4 ldrsb r0, [r1, r0] ldrb r1, [r1, 0x5] lsls r1, 24 asrs r1, 24 movs r2, 0x1 negs r2, r2 ldr r3, _080FF15C @ =gTasks lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r3 movs r3, 0xE ldrsb r3, [r4, r3] ldrb r4, [r4, 0x10] lsls r4, 24 asrs r4, 24 str r4, [sp] bl warp1_set bl warp_in add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FF158: .4byte gSaveBlock1 _080FF15C: .4byte gTasks thumb_func_end sub_80FF114 thumb_func_start sub_80FF160 sub_80FF160: @ 80FF160 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81341D4 lsls r0, 24 cmp r0, 0 bne _080FF188 ldr r1, _080FF180 @ =gSecretBaseText_NoDecors ldr r2, _080FF184 @ =sub_80FE428 adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField b _080FF1A2 .align 2, 0 _080FF180: .4byte gSecretBaseText_NoDecors _080FF184: .4byte sub_80FE428 _080FF188: ldr r1, _080FF1A8 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r2, 0 movs r1, 0 strh r1, [r0, 0x1E] ldr r0, _080FF1AC @ =gUnknown_020388F6 strb r2, [r0] adds r0, r4, 0 bl sub_80FE5AC _080FF1A2: pop {r4} pop {r0} bx r0 .align 2, 0 _080FF1A8: .4byte gTasks _080FF1AC: .4byte gUnknown_020388F6 thumb_func_end sub_80FF160 thumb_func_start sub_80FF1B0 sub_80FF1B0: @ 80FF1B0 push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 24 lsrs r1, 24 ldr r0, _080FF1D0 @ =0x0000ffff cmp r2, 0x22 beq _080FF1D8 cmp r2, 0x26 bne _080FF1E2 ldr r0, _080FF1D4 @ =gUnknown_083EC97C adds r0, r1, r0 ldrb r0, [r0] lsls r0, 28 lsrs r0, 16 b _080FF1E2 .align 2, 0 _080FF1D0: .4byte 0x0000ffff _080FF1D4: .4byte gUnknown_083EC97C _080FF1D8: ldr r0, _080FF1E8 @ =gUnknown_083EC984 adds r0, r1, r0 ldrb r0, [r0] lsls r0, 28 lsrs r0, 16 _080FF1E2: pop {r1} bx r1 .align 2, 0 _080FF1E8: .4byte gUnknown_083EC984 thumb_func_end sub_80FF1B0 thumb_func_start sub_80FF1EC sub_80FF1EC: @ 80FF1EC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x34 ldr r4, [sp, 0x54] lsls r0, 16 lsrs r0, 16 str r0, [sp] lsls r1, 16 lsrs r1, 16 str r1, [sp, 0x4] lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x8] lsls r3, 24 lsrs r3, 24 str r3, [sp, 0xC] lsls r4, 16 lsrs r4, 16 str r4, [sp, 0x10] movs r2, 0 lsls r0, r3, 16 cmp r2, r3 bcc _080FF222 b _080FF384 _080FF222: ldr r1, [sp, 0x8] str r1, [sp, 0x28] str r0, [sp, 0x2C] _080FF228: ldr r3, [sp, 0x4] ldr r4, [sp, 0xC] subs r1, r3, r4 lsls r0, r2, 16 asrs r0, 16 adds r0, 0x1 adds r1, r0 lsls r1, 16 lsrs r1, 16 str r1, [sp, 0x14] movs r0, 0 mov r10, r0 adds r1, r2, 0x1 str r1, [sp, 0x30] ldr r3, [sp, 0x28] cmp r10, r3 bcc _080FF24C b _080FF374 _080FF24C: ldr r4, [sp, 0x10] lsls r4, 5 str r4, [sp, 0x18] ldr r0, _080FF2B4 @ =gDecorations + 0x1C adds r0, r4, r0 str r0, [sp, 0x1C] ldr r0, _080FF2B8 @ =gDecorations adds r0, r4, r0 str r0, [sp, 0x24] ldr r3, [sp, 0x8] adds r1, r2, 0 muls r1, r3 str r1, [sp, 0x20] _080FF266: ldr r0, [sp] add r0, r10 lsls r0, 16 lsrs r5, r0, 16 ldr r1, [sp, 0x20] add r1, r10 ldr r4, [sp, 0x1C] ldr r0, [r4] lsls r1, 1 adds r1, r0 movs r2, 0x80 lsls r2, 2 adds r0, r2, 0 ldrh r1, [r1] adds r0, r1 lsls r0, 16 lsrs r0, 16 bl GetBehaviorByMetatileId lsls r4, r0, 16 lsls r0, r4, 8 lsrs r0, 24 bl sub_8057288 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080FF2AC ldr r3, [sp, 0x24] ldrb r0, [r3, 0x11] cmp r0, 0x1 beq _080FF2BC lsrs r0, r4, 28 cmp r0, 0 beq _080FF2BC _080FF2AC: movs r4, 0xC0 lsls r4, 4 mov r8, r4 b _080FF2C0 .align 2, 0 _080FF2B4: .4byte gDecorations + 0x1C _080FF2B8: .4byte gDecorations _080FF2BC: movs r0, 0 mov r8, r0 _080FF2C0: ldr r1, [sp, 0x24] ldrb r0, [r1, 0x11] lsls r7, r5, 16 ldr r2, [sp, 0x14] lsls r2, 16 mov r9, r2 cmp r0, 0x3 beq _080FF2EA asrs r0, r7, 16 asrs r1, r2, 16 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl sub_80572B0 lsls r0, 24 lsrs r0, 24 movs r6, 0x1 cmp r0, 0x1 beq _080FF2EC _080FF2EA: movs r6, 0 _080FF2EC: ldr r3, [sp, 0x18] ldr r4, _080FF334 @ =gDecorations adds r0, r3, r4 ldrb r0, [r0] ldr r4, [sp, 0x20] add r4, r10 lsls r1, r4, 24 lsrs r1, 24 bl sub_80FF1B0 lsls r0, 16 lsrs r5, r0, 16 ldr r0, _080FF338 @ =0x0000ffff cmp r5, r0 beq _080FF33C asrs r0, r7, 16 mov r2, r9 asrs r1, r2, 16 ldr r3, [sp, 0x1C] ldr r2, [r3] lsls r3, r4, 1 adds r3, r2 movs r4, 0x80 lsls r4, 2 adds r2, r4, 0 orrs r6, r2 ldrh r3, [r3] adds r2, r6, r3 mov r3, r8 orrs r3, r2 orrs r3, r5 lsls r2, r3, 16 lsrs r2, 16 bl MapGridSetMetatileEntryAt b _080FF362 .align 2, 0 _080FF334: .4byte gDecorations _080FF338: .4byte 0x0000ffff _080FF33C: asrs r0, r7, 16 mov r2, r9 asrs r1, r2, 16 ldr r3, [sp, 0x1C] ldr r2, [r3] lsls r3, r4, 1 adds r3, r2 movs r4, 0x80 lsls r4, 2 adds r2, r4, 0 orrs r6, r2 ldrh r3, [r3] adds r2, r6, r3 mov r3, r8 orrs r3, r2 lsls r2, r3, 16 lsrs r2, 16 bl MapGridSetMetatileIdAt _080FF362: mov r0, r10 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r10, r0 ldr r4, [sp, 0x28] cmp r10, r4 bcs _080FF374 b _080FF266 _080FF374: ldr r1, [sp, 0x30] lsls r0, r1, 16 lsrs r2, r0, 16 ldr r3, [sp, 0x2C] lsrs r0, r3, 16 cmp r2, r0 bcs _080FF384 b _080FF228 _080FF384: add sp, 0x34 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80FF1EC thumb_func_start sub_80FF394 sub_80FF394: @ 80FF394 push {r4,lr} sub sp, 0x4 lsls r0, 16 lsrs r3, r0, 16 lsls r1, 16 lsrs r4, r1, 16 lsls r2, 16 lsrs r2, 16 ldr r1, _080FF3BC @ =gDecorations lsls r0, r2, 5 adds r0, r1 ldrb r0, [r0, 0x12] cmp r0, 0x9 bhi _080FF46C lsls r0, 2 ldr r1, _080FF3C0 @ =_080FF3C4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080FF3BC: .4byte gDecorations _080FF3C0: .4byte _080FF3C4 .align 2, 0 _080FF3C4: .4byte _080FF3EC .4byte _080FF3F6 .4byte _080FF400 .4byte _080FF410 .4byte _080FF41A .4byte _080FF424 .4byte _080FF434 .4byte _080FF43E .4byte _080FF44E .4byte _080FF45E _080FF3EC: str r2, [sp] adds r0, r3, 0 adds r1, r4, 0 movs r2, 0x1 b _080FF408 _080FF3F6: str r2, [sp] adds r0, r3, 0 adds r1, r4, 0 movs r2, 0x2 b _080FF408 _080FF400: str r2, [sp] adds r0, r3, 0 adds r1, r4, 0 movs r2, 0x3 _080FF408: movs r3, 0x1 bl sub_80FF1EC b _080FF46C _080FF410: str r2, [sp] adds r0, r3, 0 adds r1, r4, 0 movs r2, 0x4 b _080FF42C _080FF41A: str r2, [sp] adds r0, r3, 0 adds r1, r4, 0 movs r2, 0x2 b _080FF42C _080FF424: str r2, [sp] adds r0, r3, 0 adds r1, r4, 0 movs r2, 0x1 _080FF42C: movs r3, 0x2 bl sub_80FF1EC b _080FF46C _080FF434: str r2, [sp] adds r0, r3, 0 adds r1, r4, 0 movs r2, 0x1 b _080FF456 _080FF43E: str r2, [sp] adds r0, r3, 0 adds r1, r4, 0 movs r2, 0x2 movs r3, 0x4 bl sub_80FF1EC b _080FF46C _080FF44E: str r2, [sp] adds r0, r3, 0 adds r1, r4, 0 movs r2, 0x3 _080FF456: movs r3, 0x3 bl sub_80FF1EC b _080FF46C _080FF45E: str r2, [sp] adds r0, r3, 0 adds r1, r4, 0 movs r2, 0x3 movs r3, 0x2 bl sub_80FF1EC _080FF46C: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_80FF394 thumb_func_start sub_80FF474 sub_80FF474: @ 80FF474 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 movs r6, 0 ldr r0, _080FF54C @ =gMapHeader mov r8, r0 ldr r1, _080FF550 @ =gUnknown_0202E8CE mov r9, r1 ldr r2, _080FF554 @ =gUnknown_0202E8D0 mov r10, r2 ldr r7, _080FF558 @ =gSaveBlock1 _080FF490: adds r5, r6, 0 adds r5, 0xAE adds r4, r5, 0 adds r0, r4, 0 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080FF570 adds r0, r4, 0 bl FlagReset movs r2, 0 mov r4, r8 ldr r0, [r4, 0x4] ldrb r6, [r0] cmp r2, r6 bcs _080FF4E0 ldr r0, [r0, 0x4] ldrh r0, [r0, 0x14] cmp r0, r5 beq _080FF4E0 ldr r0, _080FF54C @ =gMapHeader ldr r3, [r0, 0x4] ldrb r6, [r3] adds r4, r5, 0 _080FF4C6: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, r6 bcs _080FF4E0 ldr r0, [r3, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x14] cmp r0, r4 bne _080FF4C6 _080FF4E0: mov r1, r8 ldr r0, [r1, 0x4] ldr r1, [r0, 0x4] lsls r4, r2, 1 adds r4, r2 lsls r4, 3 adds r1, r4, r1 ldr r2, _080FF55C @ =0x00003f20 adds r0, r2, 0 ldrb r1, [r1, 0x1] adds r0, r1 ldr r1, _080FF560 @ =gUnknown_02038900 ldr r1, [r1] ldr r1, [r1, 0x1C] ldrh r1, [r1] bl VarSet mov r5, r8 ldr r0, [r5, 0x4] ldr r0, [r0, 0x4] adds r4, r0 ldrb r0, [r4] mov r6, r9 strh r0, [r6] ldr r1, _080FF564 @ =gUnknown_020391A4 ldrh r1, [r1] mov r2, r10 strh r1, [r2] ldr r1, _080FF568 @ =gUnknown_020391A6 ldrh r1, [r1] ldr r4, _080FF56C @ =gUnknown_0202E8D2 strh r1, [r4] ldrb r1, [r7, 0x5] ldrb r2, [r7, 0x4] bl show_sprite ldrb r0, [r6] ldrb r1, [r7, 0x5] ldrb r2, [r7, 0x4] mov r5, r10 movs r6, 0 ldrsh r3, [r5, r6] movs r5, 0 ldrsh r4, [r4, r5] str r4, [sp] bl sub_805C0F8 mov r6, r9 ldrb r0, [r6] ldrb r1, [r7, 0x5] ldrb r2, [r7, 0x4] bl sub_805C78C b _080FF57A .align 2, 0 _080FF54C: .4byte gMapHeader _080FF550: .4byte gUnknown_0202E8CE _080FF554: .4byte gUnknown_0202E8D0 _080FF558: .4byte gSaveBlock1 _080FF55C: .4byte 0x00003f20 _080FF560: .4byte gUnknown_02038900 _080FF564: .4byte gUnknown_020391A4 _080FF568: .4byte gUnknown_020391A6 _080FF56C: .4byte gUnknown_0202E8D2 _080FF570: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0xD bls _080FF490 _080FF57A: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80FF474 thumb_func_start sub_80FF58C sub_80FF58C: @ 80FF58C push {lr} movs r1, 0 ldr r0, _080FF5A8 @ =0x0201f000 ldrb r2, [r0, 0x8] cmp r1, r2 bcs _080FF5B6 ldr r3, [r0] _080FF59A: adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 bne _080FF5AC movs r0, 0x1 b _080FF5B8 .align 2, 0 _080FF5A8: .4byte 0x0201f000 _080FF5AC: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r2 bcc _080FF59A _080FF5B6: movs r0, 0 _080FF5B8: pop {r1} bx r1 thumb_func_end sub_80FF58C thumb_func_start sub_80FF5BC sub_80FF5BC: @ 80FF5BC push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080FF5E4 @ =0x0201f000 ldrb r0, [r0, 0x9] cmp r0, 0x1 bne _080FF5F0 ldr r0, _080FF5E8 @ =gUnknown_020388F6 ldrb r0, [r0] cmp r0, 0x6 beq _080FF5F0 cmp r0, 0x7 beq _080FF5F0 bl sub_80FEF74 bl sub_80FED1C ldr r1, _080FF5EC @ =gSecretBaseText_DecorCantPlace b _080FF66E .align 2, 0 _080FF5E4: .4byte 0x0201f000 _080FF5E8: .4byte gUnknown_020388F6 _080FF5EC: .4byte gSecretBaseText_DecorCantPlace _080FF5F0: bl sub_80FEFA4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080FF688 bl sub_80FF58C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080FF62C movs r0, 0x1 movs r1, 0 bl fade_screen ldr r1, _080FF624 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xC] ldr r1, _080FF628 @ =sub_80FF6AC str r1, [r0] b _080FF69C .align 2, 0 _080FF624: .4byte gTasks _080FF628: .4byte sub_80FF6AC _080FF62C: bl sub_80FEF74 bl sub_80FED1C ldr r0, _080FF654 @ =gStringVar1 ldr r4, _080FF658 @ =0x0201f000 ldrb r1, [r4, 0x8] movs r2, 0x1 movs r3, 0x2 bl ConvertIntToDecimalStringN ldrb r0, [r4, 0x9] cmp r0, 0 bne _080FF664 ldr r0, _080FF65C @ =gStringVar4 ldr r1, _080FF660 @ =gSecretBaseText_NoMoreDecor bl StringExpandPlaceholders b _080FF66C .align 2, 0 _080FF654: .4byte gStringVar1 _080FF658: .4byte 0x0201f000 _080FF65C: .4byte gStringVar4 _080FF660: .4byte gSecretBaseText_NoMoreDecor _080FF664: ldr r0, _080FF67C @ =gStringVar4 ldr r1, _080FF680 @ =gSecretBaseText_NoMoreDecor2 bl StringExpandPlaceholders _080FF66C: ldr r1, _080FF67C @ =gStringVar4 _080FF66E: ldr r2, _080FF684 @ =sub_80FEFF4 adds r0, r5, 0 movs r3, 0 bl DisplayItemMessageOnField b _080FF69C .align 2, 0 _080FF67C: .4byte gStringVar4 _080FF680: .4byte gSecretBaseText_NoMoreDecor2 _080FF684: .4byte sub_80FEFF4 _080FF688: bl sub_80FEF74 bl sub_80FED1C ldr r1, _080FF6A4 @ =gSecretBaseText_InUseAlready ldr r2, _080FF6A8 @ =sub_80FEFF4 adds r0, r5, 0 movs r3, 0 bl DisplayItemMessageOnField _080FF69C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FF6A4: .4byte gSecretBaseText_InUseAlready _080FF6A8: .4byte sub_80FEFF4 thumb_func_end sub_80FF5BC thumb_func_start sub_80FF6AC sub_80FF6AC: @ 80FF6AC push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r1, _080FF6D0 @ =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r7, r0, r1 movs r1, 0xC ldrsh r0, [r7, r1] cmp r0, 0x1 beq _080FF714 cmp r0, 0x1 bgt _080FF6D4 cmp r0, 0 beq _080FF6DA b _080FF77A .align 2, 0 _080FF6D0: .4byte gTasks _080FF6D4: cmp r0, 0x2 beq _080FF764 b _080FF77A _080FF6DA: ldr r0, _080FF70C @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080FF77A adds r0, r6, 0 bl sub_80FF0E0 movs r0, 0 bl SetBgTilemapBuffer movs r0, 0x1 bl SetBgTilemapBuffer ldr r0, _080FF710 @ =gUnknown_020388F7 movs r1, 0x8 bl sub_80F9520 bl BuyMenuFreeMemory movs r0, 0x1 strh r0, [r7, 0xC] b _080FF77A .align 2, 0 _080FF70C: .4byte gPaletteFade _080FF710: .4byte gUnknown_020388F7 _080FF714: ldr r4, _080FF754 @ =gPaletteFade ldrb r0, [r4, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r4, 0x8] ldr r5, _080FF758 @ =gUnknown_02038900 ldr r0, _080FF75C @ =gUnknown_020388F5 ldrb r1, [r0] ldr r0, _080FF760 @ =gUnknown_020388D0 ldr r0, [r0] adds r0, r1 ldrb r1, [r0] adds r0, r5, 0 bl AddDecorationIconObjectFromFieldObject adds r0, r6, 0 bl sub_80FF960 adds r0, r6, 0 adds r1, r5, 0 bl SetUpPlacingDecorationPlayerAvatar bl pal_fill_black ldrb r1, [r4, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r4, 0x8] movs r0, 0x2 strh r0, [r7, 0xC] b _080FF77A .align 2, 0 _080FF754: .4byte gPaletteFade _080FF758: .4byte gUnknown_02038900 _080FF75C: .4byte gUnknown_020388F5 _080FF760: .4byte gUnknown_020388D0 _080FF764: bl sub_807D770 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080FF77A movs r0, 0 strh r0, [r7, 0x20] adds r0, r6, 0 bl sub_810065C _080FF77A: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80FF6AC thumb_func_start AddDecorationIconObjectFromFieldObject AddDecorationIconObjectFromFieldObject: @ 80FF780 push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 lsls r4, r1, 24 lsrs r4, 24 bl sub_80FEF74 bl sub_80FED1C adds r0, r5, 0 bl sub_81006D0 lsls r4, 5 ldr r0, _080FF810 @ =gDecorations adds r4, r0 str r4, [r5] ldrb r0, [r4, 0x11] cmp r0, 0x4 beq _080FF834 adds r0, r5, 0 bl sub_81008BC ldr r0, [r5] ldrb r0, [r0, 0x12] bl sub_8100930 adds r0, r5, 0 bl sub_8100874 ldr r1, _080FF814 @ =0x00000884 adds r0, r5, r1 ldr r1, _080FF818 @ =gMapHeader ldr r1, [r1] ldr r2, [r1, 0x14] ldr r1, [r5] ldr r1, [r1, 0x1C] ldrh r1, [r1] ldr r2, [r2, 0xC] lsls r1, 4 adds r1, r2 ldrh r1, [r1, 0xE] lsrs r1, 12 bl sub_810070C ldr r0, _080FF81C @ =gUnknown_083EC954 bl LoadSpritePalette ldr r3, _080FF820 @ =gUnknown_020391A8 ldr r2, _080FF824 @ =gSprites ldr r4, _080FF828 @ =gUnknown_03004880 ldr r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x2E] strb r0, [r3] ldr r0, _080FF82C @ =gSpriteTemplate_83EC93C ldr r3, _080FF830 @ =gUnknown_083EC900 ldr r1, [r5] ldrb r2, [r1, 0x12] lsls r2, 2 adds r2, r3 ldrb r1, [r2, 0x2] ldrb r2, [r2, 0x3] movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 str r0, [r4, 0x4] b _080FF87E .align 2, 0 _080FF810: .4byte gDecorations _080FF814: .4byte 0x00000884 _080FF818: .4byte gMapHeader _080FF81C: .4byte gUnknown_083EC954 _080FF820: .4byte gUnknown_020391A8 _080FF824: .4byte gSprites _080FF828: .4byte gUnknown_03004880 _080FF82C: .4byte gSpriteTemplate_83EC93C _080FF830: .4byte gUnknown_083EC900 _080FF834: ldr r2, _080FF888 @ =gUnknown_020391A8 ldr r6, _080FF88C @ =gSprites ldr r5, _080FF890 @ =gUnknown_03004880 ldr r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldrh r0, [r0, 0x2E] strb r0, [r2] ldr r0, [r4, 0x1C] ldrh r0, [r0] ldr r1, _080FF894 @ =sub_81009A8 ldr r2, _080FF898 @ =gUnknown_083EC900 ldrb r3, [r4, 0x12] lsls r3, 2 adds r3, r2 ldrb r2, [r3, 0x2] ldrb r3, [r3, 0x3] movs r4, 0x1 str r4, [sp] bl AddPseudoFieldObject lsls r0, 24 lsrs r0, 24 str r0, [r5, 0x4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 movs r2, 0x4 orrs r0, r2 strb r0, [r1, 0x5] _080FF87E: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080FF888: .4byte gUnknown_020391A8 _080FF88C: .4byte gSprites _080FF890: .4byte gUnknown_03004880 _080FF894: .4byte sub_81009A8 _080FF898: .4byte gUnknown_083EC900 thumb_func_end AddDecorationIconObjectFromFieldObject thumb_func_start SetUpPlacingDecorationPlayerAvatar SetUpPlacingDecorationPlayerAvatar: @ 80FF89C push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r3, _080FF8F0 @ =gTasks lsls r2, r0, 2 adds r2, r0 lsls r2, 3 adds r2, r3 ldrb r2, [r2, 0x12] ldr r3, _080FF8F4 @ =gUnknown_083EC900 ldr r0, [r1] ldrb r4, [r0, 0x12] lsls r1, r4, 2 adds r1, r3 lsls r0, r2, 4 ldrb r1, [r1, 0x2] adds r0, r1 subs r2, 0x1 lsls r2, 3 subs r0, r2 lsls r0, 24 lsrs r2, r0, 24 cmp r4, 0x2 beq _080FF8D6 cmp r4, 0x8 beq _080FF8D6 cmp r4, 0x9 bne _080FF8DE _080FF8D6: adds r0, r2, 0 subs r0, 0x8 lsls r0, 24 lsrs r2, r0, 24 _080FF8DE: ldr r0, _080FF8F8 @ =gSaveBlock2 ldrb r0, [r0, 0x8] cmp r0, 0 bne _080FF900 ldr r1, _080FF8FC @ =SpriteCallbackDummy str r0, [sp] movs r0, 0xC1 b _080FF908 .align 2, 0 _080FF8F0: .4byte gTasks _080FF8F4: .4byte gUnknown_083EC900 _080FF8F8: .4byte gSaveBlock2 _080FF8FC: .4byte SpriteCallbackDummy _080FF900: ldr r1, _080FF94C @ =SpriteCallbackDummy movs r0, 0 str r0, [sp] movs r0, 0xC2 _080FF908: movs r3, 0x48 bl AddPseudoFieldObject ldr r1, _080FF950 @ =gUnknown_020391A9 strb r0, [r1] ldr r3, _080FF954 @ =gSprites ldr r0, _080FF950 @ =gUnknown_020391A9 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r2, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 movs r2, 0x4 orrs r1, r2 strb r1, [r0, 0x5] ldr r4, _080FF958 @ =gUnknown_020391A8 ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 bl DestroySprite ldr r0, _080FF95C @ =gUnknown_03004880 ldr r0, [r0, 0x4] strb r0, [r4] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080FF94C: .4byte SpriteCallbackDummy _080FF950: .4byte gUnknown_020391A9 _080FF954: .4byte gSprites _080FF958: .4byte gUnknown_020391A8 _080FF95C: .4byte gUnknown_03004880 thumb_func_end SetUpPlacingDecorationPlayerAvatar thumb_func_start sub_80FF960 sub_80FF960: @ 80FF960 push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r2, _080FF98C @ =gDecorations ldr r0, _080FF990 @ =gUnknown_020388F5 ldrb r1, [r0] ldr r0, _080FF994 @ =gUnknown_020388D0 ldr r0, [r0] adds r0, r1 ldrb r0, [r0] lsls r0, 5 adds r0, r2 ldrb r0, [r0, 0x12] cmp r0, 0x9 bls _080FF980 b _080FFAA6 _080FF980: lsls r0, 2 ldr r1, _080FF998 @ =_080FF99C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080FF98C: .4byte gDecorations _080FF990: .4byte gUnknown_020388F5 _080FF994: .4byte gUnknown_020388D0 _080FF998: .4byte _080FF99C .align 2, 0 _080FF99C: .4byte _080FF9C4 .4byte _080FF9D8 .4byte _080FF9F0 .4byte _080FFA08 .4byte _080FFA1C .4byte _080FFA30 .4byte _080FFA44 .4byte _080FFA64 .4byte _080FFA7C .4byte _080FFA94 _080FF9C4: ldr r0, _080FF9D4 @ =gTasks lsls r1, r3, 2 adds r1, r3 lsls r1, 3 adds r1, r0 movs r0, 0x1 b _080FFA88 .align 2, 0 _080FF9D4: .4byte gTasks _080FF9D8: ldr r1, _080FF9EC @ =gTasks lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 movs r1, 0x2 strh r1, [r0, 0x12] movs r1, 0x1 b _080FFAA4 .align 2, 0 _080FF9EC: .4byte gTasks _080FF9F0: ldr r1, _080FFA04 @ =gTasks lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 movs r1, 0x3 strh r1, [r0, 0x12] movs r1, 0x1 b _080FFAA4 .align 2, 0 _080FFA04: .4byte gTasks _080FFA08: ldr r1, _080FFA18 @ =gTasks lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 movs r1, 0x4 b _080FFAA0 .align 2, 0 _080FFA18: .4byte gTasks _080FFA1C: ldr r0, _080FFA2C @ =gTasks lsls r1, r3, 2 adds r1, r3 lsls r1, 3 adds r1, r0 movs r0, 0x2 b _080FFA88 .align 2, 0 _080FFA2C: .4byte gTasks _080FFA30: ldr r1, _080FFA40 @ =gTasks lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 movs r1, 0x1 b _080FFAA0 .align 2, 0 _080FFA40: .4byte gTasks _080FFA44: ldr r0, _080FFA60 @ =gTasks lsls r1, r3, 2 adds r1, r3 lsls r1, 3 adds r1, r0 movs r0, 0x1 strh r0, [r1, 0x12] movs r0, 0x3 strh r0, [r1, 0x14] ldrh r0, [r1, 0xA] adds r0, 0x1 strh r0, [r1, 0xA] b _080FFAA6 .align 2, 0 _080FFA60: .4byte gTasks _080FFA64: ldr r1, _080FFA78 @ =gTasks lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 movs r1, 0x2 strh r1, [r0, 0x12] movs r1, 0x4 b _080FFAA4 .align 2, 0 _080FFA78: .4byte gTasks _080FFA7C: ldr r0, _080FFA90 @ =gTasks lsls r1, r3, 2 adds r1, r3 lsls r1, 3 adds r1, r0 movs r0, 0x3 _080FFA88: strh r0, [r1, 0x12] strh r0, [r1, 0x14] b _080FFAA6 .align 2, 0 _080FFA90: .4byte gTasks _080FFA94: ldr r1, _080FFAAC @ =gTasks lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 movs r1, 0x3 _080FFAA0: strh r1, [r0, 0x12] movs r1, 0x2 _080FFAA4: strh r1, [r0, 0x14] _080FFAA6: pop {r0} bx r0 .align 2, 0 _080FFAAC: .4byte gTasks thumb_func_end sub_80FF960 thumb_func_start sub_80FFAB0 sub_80FFAB0: @ 80FFAB0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _080FFAF8 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x1C] ldr r3, _080FFAFC @ =gSprites ldr r0, _080FFB00 @ =gUnknown_020391A8 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r2, 0x1 strh r2, [r0, 0x3C] ldr r0, _080FFB04 @ =gUnknown_020391A9 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r2, [r0, 0x3C] bl sub_810045C adds r0, r4, 0 bl sub_8100038 pop {r4} pop {r0} bx r0 .align 2, 0 _080FFAF8: .4byte gTasks _080FFAFC: .4byte gSprites _080FFB00: .4byte gUnknown_020391A8 _080FFB04: .4byte gUnknown_020391A9 thumb_func_end sub_80FFAB0 thumb_func_start sub_80FFB08 sub_80FFB08: @ 80FFB08 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _080FFB54 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x1C] ldr r3, _080FFB58 @ =gSprites ldr r0, _080FFB5C @ =gUnknown_020391A8 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r2, 0x1 strh r2, [r0, 0x3C] ldr r0, _080FFB60 @ =gUnknown_020391A9 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r2, [r0, 0x3C] bl sub_810045C ldr r1, _080FFB64 @ =gSecretBaseText_CancelDecorating ldr r2, _080FFB68 @ =sub_8100248 adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField pop {r4} pop {r0} bx r0 .align 2, 0 _080FFB54: .4byte gTasks _080FFB58: .4byte gSprites _080FFB5C: .4byte gUnknown_020391A8 _080FFB60: .4byte gUnknown_020391A9 _080FFB64: .4byte gSecretBaseText_CancelDecorating _080FFB68: .4byte sub_8100248 thumb_func_end sub_80FFB08 thumb_func_start sub_80FFB6C sub_80FFB6C: @ 80FFB6C push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r4, r1, 16 bl sub_8057274 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080FFB86 cmp r4, 0 beq _080FFB8A _080FFB86: movs r0, 0 b _080FFB8C _080FFB8A: movs r0, 0x1 _080FFB8C: pop {r4} pop {r1} bx r1 thumb_func_end sub_80FFB6C thumb_func_start sub_80FFB94 sub_80FFB94: @ 80FFB94 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r2, 16 lsrs r4, r2, 16 lsls r3, 16 lsrs r5, r3, 16 lsls r1, 16 asrs r1, 16 ldr r3, _080FFBD0 @ =gTasks lsls r2, r0, 2 adds r2, r0 lsls r2, 3 adds r2, r3 movs r3, 0xE ldrsh r0, [r2, r3] adds r0, 0x7 cmp r1, r0 bne _080FFBD4 lsls r1, r4, 16 asrs r1, 16 movs r3, 0x10 ldrsh r0, [r2, r3] adds r0, 0x7 cmp r1, r0 bne _080FFBD4 cmp r5, 0 beq _080FFBD4 movs r0, 0 b _080FFBD6 .align 2, 0 _080FFBD0: .4byte gTasks _080FFBD4: movs r0, 0x1 _080FFBD6: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80FFB94 thumb_func_start sub_80FFBDC sub_80FFBDC: @ 80FFBDC push {r4-r6,lr} adds r5, r1, 0 lsls r0, 16 lsrs r6, r0, 16 lsls r0, r6, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_8057274 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080FFC1C ldrb r0, [r5] cmp r0, 0x21 bne _080FFC0A adds r0, r4, 0 bl sub_8057300 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080FFC18 _080FFC0A: lsls r0, r6, 24 lsrs r0, 24 bl sub_805729C lsls r0, 24 cmp r0, 0 beq _080FFC1C _080FFC18: movs r0, 0x1 b _080FFC1E _080FFC1C: movs r0, 0 _080FFC1E: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80FFBDC thumb_func_start sub_80FFC24 sub_80FFC24: @ 80FFC24 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 str r1, [sp] lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r1, _080FFC60 @ =gTasks lsls r0, 2 add r0, r10 lsls r0, 3 adds r0, r1 ldrb r2, [r0, 0x14] str r2, [sp, 0x4] ldrb r0, [r0, 0x12] str r0, [sp, 0x8] ldr r3, [sp] ldrb r0, [r3, 0x11] adds r2, r1, 0 cmp r0, 0x4 bls _080FFC56 b _08100024 _080FFC56: lsls r0, 2 ldr r1, _080FFC64 @ =_080FFC68 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080FFC60: .4byte gTasks _080FFC64: .4byte _080FFC68 .align 2, 0 _080FFC68: .4byte _080FFC7C .4byte _080FFC7C .4byte _080FFD68 .4byte _080FFF1C .4byte _080FFFA0 _080FFC7C: movs r6, 0 ldr r0, [sp, 0x4] cmp r6, r0 bcc _080FFC86 b _08100024 _080FFC86: mov r1, r10 lsls r1, 2 str r1, [sp, 0x1C] _080FFC8C: mov r2, r10 lsls r0, r2, 2 add r0, r10 lsls r0, 3 ldr r3, _080FFD64 @ =gTasks adds r0, r3 ldrh r0, [r0, 0xA] subs r0, r6 lsls r0, 16 lsrs r0, 16 mov r9, r0 movs r7, 0 adds r6, 0x1 str r6, [sp, 0x14] ldr r0, [sp, 0x8] cmp r7, r0 bcs _080FFD56 mov r1, r9 lsls r1, 16 str r1, [sp, 0xC] asrs r1, 16 mov r9, r1 _080FFCB8: ldr r0, [sp, 0x1C] add r0, r10 lsls r0, 3 ldr r2, _080FFD64 @ =gTasks adds r0, r2 ldrh r0, [r0, 0x8] adds r0, r7 lsls r0, 16 mov r8, r0 asrs r6, r0, 16 adds r0, r6, 0 mov r1, r9 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r4, r0, 24 ldr r3, [sp, 0x4] ldr r1, [sp, 0x14] subs r0, r3, r1 ldr r2, [sp, 0x8] adds r1, r0, 0 muls r1, r2 adds r1, r7 ldr r3, [sp] ldr r0, [r3, 0x1C] lsls r1, 1 adds r1, r0 movs r2, 0x80 lsls r2, 2 adds r0, r2, 0 ldrh r1, [r1] adds r0, r1 lsls r0, 16 lsrs r0, 16 bl GetBehaviorByMetatileId movs r3, 0xF0 lsls r3, 8 adds r1, r3, 0 adds r5, r1, 0 ands r5, r0 adds r0, r4, 0 ldr r1, [sp] bl sub_80FFBDC lsls r0, 24 cmp r0, 0 bne _080FFD1A b _080FFFF4 _080FFD1A: mov r0, r10 adds r1, r6, 0 mov r2, r9 adds r3, r5, 0 bl sub_80FFB94 lsls r0, 24 cmp r0, 0 bne _080FFD2E b _080FFFF4 _080FFD2E: mov r1, r8 lsrs r0, r1, 16 ldr r2, [sp, 0xC] lsrs r1, r2, 16 movs r2, 0 bl GetFieldObjectIdByXYZ lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _080FFD4A cmp r4, 0x10 beq _080FFD4A b _080FFFF4 _080FFD4A: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 ldr r3, [sp, 0x8] cmp r7, r3 bcc _080FFCB8 _080FFD56: ldr r1, [sp, 0x14] lsls r0, r1, 24 lsrs r6, r0, 24 ldr r2, [sp, 0x4] cmp r6, r2 bcc _080FFC8C b _08100024 .align 2, 0 _080FFD64: .4byte gTasks _080FFD68: movs r6, 0 mov r3, r10 lsls r3, 2 str r3, [sp, 0x1C] ldr r0, [sp, 0x4] subs r0, 0x1 str r0, [sp, 0x18] cmp r6, r0 bge _080FFE54 adds r0, r3, 0 add r0, r10 lsls r0, 3 str r0, [sp, 0x10] _080FFD82: ldr r1, [sp, 0x10] adds r0, r1, r2 ldrh r0, [r0, 0xA] subs r0, r6 lsls r0, 16 lsrs r0, 16 mov r9, r0 movs r7, 0 adds r6, 0x1 str r6, [sp, 0x14] ldr r3, [sp, 0x8] cmp r7, r3 bcs _080FFE48 lsls r0, 16 str r0, [sp, 0x20] _080FFDA0: ldr r1, [sp, 0x10] adds r0, r1, r2 ldrh r0, [r0, 0x8] adds r0, r7 lsls r0, 16 mov r8, r0 asrs r6, r0, 16 mov r2, r9 lsls r1, r2, 16 adds r0, r6, 0 asrs r1, 16 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r4, r0, 24 ldr r3, [sp, 0x4] ldr r1, [sp, 0x14] subs r0, r3, r1 ldr r2, [sp, 0x8] adds r1, r0, 0 muls r1, r2 adds r1, r7 ldr r3, [sp] ldr r0, [r3, 0x1C] lsls r1, 1 adds r1, r0 movs r2, 0x80 lsls r2, 2 adds r0, r2, 0 ldrh r1, [r1] adds r0, r1 lsls r0, 16 lsrs r0, 16 bl GetBehaviorByMetatileId movs r3, 0xF0 lsls r3, 8 adds r1, r3, 0 adds r5, r1, 0 ands r5, r0 adds r0, r4, 0 bl sub_805729C lsls r0, 24 cmp r0, 0 bne _080FFE0C adds r0, r4, 0 adds r1, r5, 0 bl sub_80FFB6C lsls r0, 24 cmp r0, 0 bne _080FFE0C b _080FFFF4 _080FFE0C: mov r0, r10 adds r1, r6, 0 ldr r3, [sp, 0x20] asrs r2, r3, 16 adds r3, r5, 0 bl sub_80FFB94 lsls r0, 24 cmp r0, 0 bne _080FFE22 b _080FFFF4 _080FFE22: mov r1, r8 lsrs r0, r1, 16 ldr r2, [sp, 0x20] lsrs r1, r2, 16 movs r2, 0 bl GetFieldObjectIdByXYZ lsls r0, 24 lsrs r0, 24 cmp r0, 0x10 beq _080FFE3A b _080FFFF4 _080FFE3A: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 ldr r2, _080FFF18 @ =gTasks ldr r3, [sp, 0x8] cmp r7, r3 bcc _080FFDA0 _080FFE48: ldr r1, [sp, 0x14] lsls r0, r1, 24 lsrs r6, r0, 24 ldr r3, [sp, 0x18] cmp r6, r3 blt _080FFD82 _080FFE54: ldr r0, [sp, 0x1C] add r0, r10 lsls r0, 3 adds r0, r2 ldrh r0, [r0, 0xA] ldr r1, [sp, 0x4] subs r0, r1 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r9, r0 movs r7, 0 ldr r3, [sp, 0x8] cmp r7, r3 bcc _080FFE74 b _08100024 _080FFE74: lsls r0, 16 str r0, [sp, 0x20] _080FFE78: ldr r0, [sp, 0x1C] add r0, r10 lsls r0, 3 ldr r1, _080FFF18 @ =gTasks adds r0, r1 ldrh r0, [r0, 0x8] adds r0, r7 lsls r0, 16 mov r8, r0 asrs r6, r0, 16 mov r2, r9 lsls r1, r2, 16 adds r0, r6, 0 asrs r1, 16 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r4, r0, 24 ldr r3, [sp] ldr r0, [r3, 0x1C] lsls r1, r7, 1 adds r1, r0 movs r2, 0x80 lsls r2, 2 adds r0, r2, 0 ldrh r1, [r1] adds r0, r1 lsls r0, 16 lsrs r0, 16 bl GetBehaviorByMetatileId movs r3, 0xF0 lsls r3, 8 adds r1, r3, 0 adds r5, r1, 0 ands r5, r0 adds r0, r4, 0 bl sub_805729C lsls r0, 24 cmp r0, 0 bne _080FFEDA adds r0, r4, 0 bl sub_80572B0 lsls r0, 24 cmp r0, 0 bne _080FFEDA b _080FFFF4 _080FFEDA: mov r0, r10 adds r1, r6, 0 ldr r3, [sp, 0x20] asrs r2, r3, 16 adds r3, r5, 0 bl sub_80FFB94 lsls r0, 24 cmp r0, 0 bne _080FFEF0 b _080FFFF4 _080FFEF0: mov r1, r8 lsrs r0, r1, 16 ldr r2, [sp, 0x20] lsrs r1, r2, 16 movs r2, 0 bl GetFieldObjectIdByXYZ lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _080FFF0A cmp r4, 0x10 bne _080FFFF4 _080FFF0A: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 ldr r3, [sp, 0x8] cmp r7, r3 bcc _080FFE78 b _08100024 .align 2, 0 _080FFF18: .4byte gTasks _080FFF1C: movs r6, 0 ldr r0, [sp, 0x4] cmp r6, r0 bcc _080FFF26 b _08100024 _080FFF26: mov r1, r10 lsls r0, r1, 2 add r0, r10 lsls r1, r0, 3 ldr r2, _080FFF9C @ =gTasks adds r0, r1, r2 ldrh r0, [r0, 0xA] subs r0, r6 lsls r0, 16 lsrs r0, 16 mov r9, r0 movs r7, 0 ldr r3, [sp, 0x8] cmp r7, r3 bcs _080FFF8C adds r0, r2, 0 adds r1, r0 mov r8, r1 mov r1, r9 lsls r0, r1, 16 asrs r5, r0, 16 _080FFF50: mov r2, r8 ldrh r0, [r2, 0x8] adds r0, r7 lsls r0, 16 asrs r4, r0, 16 adds r0, r4, 0 adds r1, r5, 0 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl sub_80572B0 lsls r0, 24 cmp r0, 0 beq _080FFFF4 adds r0, r4, 0 adds r1, r5, 0x1 bl MapGridGetMetatileIdAt movs r1, 0xA3 lsls r1, 2 cmp r0, r1 beq _080FFFF4 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 ldr r3, [sp, 0x8] cmp r7, r3 bcc _080FFF50 _080FFF8C: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 ldr r0, [sp, 0x4] cmp r6, r0 bcc _080FFF26 b _08100024 .align 2, 0 _080FFF9C: .4byte gTasks _080FFFA0: mov r3, r10 lsls r1, r3, 2 adds r0, r1, r3 lsls r0, 3 adds r0, r2 ldrh r0, [r0, 0xA] mov r9, r0 movs r7, 0 str r1, [sp, 0x1C] ldr r0, [sp, 0x8] cmp r7, r0 bcs _08100024 adds r6, r2, 0 mov r1, r9 lsls r1, 16 str r1, [sp, 0x20] _080FFFC0: ldr r0, [sp, 0x1C] add r0, r10 lsls r0, 3 adds r0, r6 ldrh r0, [r0, 0x8] adds r0, r7 lsls r0, 16 lsrs r5, r0, 16 asrs r0, 16 mov r2, r9 lsls r1, r2, 16 asrs r1, 16 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r4, r0, 24 ldr r3, [sp] ldrb r0, [r3, 0x12] cmp r0, 0x5 bne _080FFFF8 _080FFFE8: adds r0, r4, 0 bl sub_80572EC lsls r0, 24 cmp r0, 0 bne _08100004 _080FFFF4: movs r0, 0 b _08100026 _080FFFF8: adds r0, r4, 0 bl sub_80572D8 lsls r0, 24 cmp r0, 0 beq _080FFFE8 _08100004: adds r0, r5, 0 ldr r2, [sp, 0x20] lsrs r1, r2, 16 movs r2, 0 bl GetFieldObjectIdByXYZ lsls r0, 24 lsrs r0, 24 cmp r0, 0x10 bne _080FFFF4 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 ldr r3, [sp, 0x8] cmp r7, r3 bcc _080FFFC0 _08100024: movs r0, 0x1 _08100026: add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80FFC24 thumb_func_start sub_8100038 sub_8100038: @ 8100038 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0810006C @ =gUnknown_020388F5 ldrb r1, [r0] ldr r0, _08100070 @ =gUnknown_020388D0 ldr r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r1, 5 ldr r0, _08100074 @ =gDecorations adds r1, r0 adds r0, r4, 0 bl sub_80FFC24 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08100080 ldr r1, _08100078 @ =gSecretBaseText_PlaceItHere ldr r2, _0810007C @ =sub_81000A0 adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField b _08100092 .align 2, 0 _0810006C: .4byte gUnknown_020388F5 _08100070: .4byte gUnknown_020388D0 _08100074: .4byte gDecorations _08100078: .4byte gSecretBaseText_PlaceItHere _0810007C: .4byte sub_81000A0 _08100080: movs r0, 0x20 bl PlaySE ldr r1, _08100098 @ =gSecretBaseText_CantBePlacedHere ldr r2, _0810009C @ =sub_81006A8 adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField _08100092: pop {r4} pop {r0} bx r0 .align 2, 0 _08100098: .4byte gSecretBaseText_CantBePlacedHere _0810009C: .4byte sub_81006A8 thumb_func_end sub_8100038 thumb_func_start sub_81000A0 sub_81000A0: @ 81000A0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x14 movs r1, 0x8 movs r2, 0x1 bl DisplayYesNoMenu ldr r1, _081000C0 @ =gUnknown_083EC95C adds r0, r4, 0 bl sub_80F914C pop {r4} pop {r0} bx r0 .align 2, 0 _081000C0: .4byte gUnknown_083EC95C thumb_func_end sub_81000A0 thumb_func_start sub_81000C4 sub_81000C4: @ 81000C4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect adds r0, r4, 0 bl sub_8100174 ldr r2, _0810010C @ =gDecorations ldr r0, _08100110 @ =gUnknown_020388F5 ldrb r1, [r0] ldr r0, _08100114 @ =gUnknown_020388D0 ldr r0, [r0] adds r0, r1 ldrb r3, [r0] lsls r0, r3, 5 adds r0, r2 ldrb r0, [r0, 0x11] cmp r0, 0x4 beq _0810011C ldr r0, _08100118 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] ldrh r1, [r1, 0xA] adds r2, r3, 0 bl sub_80FF394 b _0810013C .align 2, 0 _0810010C: .4byte gDecorations _08100110: .4byte gUnknown_020388F5 _08100114: .4byte gUnknown_020388D0 _08100118: .4byte gTasks _0810011C: ldr r2, _0810015C @ =gUnknown_020391A4 ldr r0, _08100160 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] subs r0, 0x7 strh r0, [r2] ldr r2, _08100164 @ =gUnknown_020391A6 ldrh r0, [r1, 0xA] subs r0, 0x7 strh r0, [r2] ldr r0, _08100168 @ =gUnknown_081A2F7B bl ScriptContext1_SetupScript _0810013C: ldr r2, _0810016C @ =gSprites ldr r0, _08100170 @ =gUnknown_020391A8 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x22] adds r1, 0x2 strh r1, [r0, 0x22] adds r0, r4, 0 bl sub_810028C pop {r4} pop {r0} bx r0 .align 2, 0 _0810015C: .4byte gUnknown_020391A4 _08100160: .4byte gTasks _08100164: .4byte gUnknown_020391A6 _08100168: .4byte gUnknown_081A2F7B _0810016C: .4byte gSprites _08100170: .4byte gUnknown_020391A8 thumb_func_end sub_81000C4 thumb_func_start sub_8100174 sub_8100174: @ 8100174 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r3, 0 ldr r0, _081001B0 @ =0x0201f000 ldrb r1, [r0, 0x8] adds r5, r0, 0 cmp r3, r1 bcs _0810019A ldr r4, [r5] _08100188: adds r2, r4, r3 ldrb r0, [r2] cmp r0, 0 beq _081001B8 adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r1 bcc _08100188 _0810019A: ldrb r0, [r5, 0x9] cmp r0, 0 bne _08100204 movs r3, 0 ldr r0, _081001B4 @ =gUnknown_020388D6 ldrb r1, [r0] adds r2, r0, 0 cmp r1, 0 bne _081001F0 b _08100210 .align 2, 0 _081001B0: .4byte 0x0201f000 _081001B4: .4byte gUnknown_020388D6 _081001B8: ldr r0, _081001E4 @ =gUnknown_020388F5 ldrb r1, [r0] ldr r0, _081001E8 @ =gUnknown_020388D0 ldr r0, [r0] adds r0, r1 ldrb r0, [r0] strb r0, [r2] ldr r2, [r5, 0x4] adds r2, r3 ldr r0, _081001EC @ =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldrb r0, [r1, 0x8] subs r0, 0x7 lsls r0, 4 ldrb r1, [r1, 0xA] subs r1, 0x7 adds r0, r1 strb r0, [r2] b _0810019A .align 2, 0 _081001E4: .4byte gUnknown_020388F5 _081001E8: .4byte gUnknown_020388D0 _081001EC: .4byte gTasks _081001F0: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0xF bhi _0810023E adds r1, r3, r2 ldrb r0, [r1] cmp r0, 0 bne _081001F0 b _08100236 _08100204: movs r3, 0 ldr r0, _0810021C @ =gUnknown_020388E6 ldrb r1, [r0] adds r2, r0, 0 cmp r1, 0 bne _08100224 _08100210: ldr r0, _08100220 @ =gUnknown_020388F5 ldrb r0, [r0] adds r0, 0x1 strb r0, [r2] b _0810023E .align 2, 0 _0810021C: .4byte gUnknown_020388E6 _08100220: .4byte gUnknown_020388F5 _08100224: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0xB bhi _0810023E adds r1, r3, r2 ldrb r0, [r1] cmp r0, 0 bne _08100224 _08100236: ldr r0, _08100244 @ =gUnknown_020388F5 ldrb r0, [r0] adds r0, 0x1 strb r0, [r1] _0810023E: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08100244: .4byte gUnknown_020388F5 thumb_func_end sub_8100174 thumb_func_start sub_8100248 sub_8100248: @ 8100248 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x14 movs r1, 0x8 movs r2, 0x1 bl DisplayYesNoMenu ldr r1, _08100268 @ =gUnknown_083EC964 adds r0, r4, 0 bl sub_80F914C pop {r4} pop {r0} bx r0 .align 2, 0 _08100268: .4byte gUnknown_083EC964 thumb_func_end sub_8100248 thumb_func_start sub_810026C sub_810026C: @ 810026C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect adds r0, r4, 0 bl sub_810028C pop {r4} pop {r0} bx r0 thumb_func_end sub_810026C thumb_func_start sub_810028C sub_810028C: @ 810028C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 movs r1, 0 bl fade_screen ldr r1, _081002B4 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xC] ldr r1, _081002B8 @ =c1_overworld_prev_quest str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _081002B4: .4byte gTasks _081002B8: .4byte c1_overworld_prev_quest thumb_func_end sub_810028C thumb_func_start c1_overworld_prev_quest c1_overworld_prev_quest: @ 81002BC push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _081002DC @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r5, r0, r1 movs r1, 0xC ldrsh r0, [r5, r1] cmp r0, 0 beq _081002E0 cmp r0, 0x1 beq _08100300 b _0810031C .align 2, 0 _081002DC: .4byte gTasks _081002E0: bl ScriptContext2_Enable ldr r0, _081002FC @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0810031C adds r0, r4, 0 bl sub_80FF114 movs r0, 0x1 strh r0, [r5, 0xC] b _0810031C .align 2, 0 _081002FC: .4byte gPaletteFade _08100300: bl sub_81016F4 ldr r0, _08100324 @ =0x00000bb8 bl FreeSpritePaletteByTag ldr r1, _08100328 @ =gUnknown_0300485C ldr r0, _0810032C @ =sub_8100364 str r0, [r1] ldr r0, _08100330 @ =c2_exit_to_overworld_2_switch bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _0810031C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08100324: .4byte 0x00000bb8 _08100328: .4byte gUnknown_0300485C _0810032C: .4byte sub_8100364 _08100330: .4byte c2_exit_to_overworld_2_switch thumb_func_end c1_overworld_prev_quest thumb_func_start sub_8100334 sub_8100334: @ 8100334 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_807D770 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08100354 ldr r0, _0810035C @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08100360 @ =sub_80FE948 str r0, [r1] _08100354: pop {r4} pop {r0} bx r0 .align 2, 0 _0810035C: .4byte gTasks _08100360: .4byte sub_80FE948 thumb_func_end sub_8100334 thumb_func_start sub_8100364 sub_8100364: @ 8100364 push {lr} bl ScriptContext2_Enable bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed bl pal_fill_black ldr r0, _08100388 @ =sub_8100334 movs r1, 0x8 bl CreateTask lsls r0, 24 lsrs r0, 24 bl sub_80FE7EC pop {r0} bx r0 .align 2, 0 _08100388: .4byte sub_8100334 thumb_func_end sub_8100364 thumb_func_start sub_810038C sub_810038C: @ 810038C push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _081003BC @ =gTasks + 0x8 adds r2, r1, r0 ldr r0, _081003C0 @ =gUnknown_020391AA ldrb r1, [r0] adds r3, r0, 0 cmp r1, 0x1 bne _081003C4 movs r1, 0x2 ldrsh r0, [r2, r1] movs r4, 0xC ldrsh r1, [r2, r4] subs r0, r1 subs r0, 0x6 cmp r0, 0 bge _081003C4 ldrh r0, [r2, 0x2] adds r0, 0x1 b _081003DE .align 2, 0 _081003BC: .4byte gTasks + 0x8 _081003C0: .4byte gUnknown_020391AA _081003C4: ldrb r0, [r3] cmp r0, 0x2 bne _081003E8 movs r0, 0x2 ldrsh r1, [r2, r0] subs r1, 0x7 ldr r0, _081003E4 @ =gMapHeader ldr r0, [r0] ldr r0, [r0, 0x4] cmp r1, r0 blt _081003E8 ldrh r0, [r2, 0x2] subs r0, 0x1 _081003DE: strh r0, [r2, 0x2] movs r0, 0 b _0810042A .align 2, 0 _081003E4: .4byte gMapHeader _081003E8: ldrb r0, [r3] cmp r0, 0x3 bne _081003FE movs r1, 0 ldrsh r0, [r2, r1] subs r0, 0x7 cmp r0, 0 bge _081003FE ldrh r0, [r2] adds r0, 0x1 b _0810041E _081003FE: ldrb r0, [r3] cmp r0, 0x4 bne _08100428 movs r3, 0 ldrsh r1, [r2, r3] movs r4, 0xA ldrsh r0, [r2, r4] adds r1, r0 subs r1, 0x8 ldr r0, _08100424 @ =gMapHeader ldr r0, [r0] ldr r0, [r0] cmp r1, r0 blt _08100428 ldrh r0, [r2] subs r0, 0x1 _0810041E: strh r0, [r2] movs r0, 0 b _0810042A .align 2, 0 _08100424: .4byte gMapHeader _08100428: movs r0, 0x1 _0810042A: pop {r4} pop {r1} bx r1 thumb_func_end sub_810038C thumb_func_start sub_8100430 sub_8100430: @ 8100430 push {lr} ldr r0, _08100450 @ =gMain ldrh r0, [r0, 0x2C] movs r1, 0xF0 ands r1, r0 cmp r1, 0x40 beq _08100454 cmp r1, 0x80 beq _08100454 cmp r1, 0x20 beq _08100454 cmp r1, 0x10 beq _08100454 movs r0, 0 b _08100456 .align 2, 0 _08100450: .4byte gMain _08100454: movs r0, 0x1 _08100456: pop {r1} bx r1 thumb_func_end sub_8100430 thumb_func_start sub_810045C sub_810045C: @ 810045C push {r4,lr} ldr r1, _08100488 @ =gUnknown_020391AA movs r0, 0 strb r0, [r1] ldr r4, _0810048C @ =gSprites ldr r3, _08100490 @ =gUnknown_020391A8 ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r2, 0 strh r2, [r0, 0x32] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 strh r2, [r0, 0x34] pop {r4} pop {r0} bx r0 .align 2, 0 _08100488: .4byte gUnknown_020391AA _0810048C: .4byte gSprites _08100490: .4byte gUnknown_020391A8 thumb_func_end sub_810045C thumb_func_start sub_8100494 sub_8100494: @ 8100494 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r5, _081004D0 @ =gSprites ldr r3, _081004D4 @ =gUnknown_020391A8 ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x36 ldrsh r6, [r0, r1] cmp r6, 0 beq _081004B2 b _081005DE _081004B2: ldr r1, _081004D8 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r1 movs r1, 0x1C ldrsh r0, [r2, r1] cmp r0, 0x1 bne _081004E0 ldr r0, _081004DC @ =gUnknown_083EC96C movs r3, 0x20 ldrsh r1, [r2, r3] lsls r1, 3 b _081004EE .align 2, 0 _081004D0: .4byte gSprites _081004D4: .4byte gUnknown_020391A8 _081004D8: .4byte gTasks _081004DC: .4byte gUnknown_083EC96C _081004E0: cmp r0, 0x2 bne _08100500 ldr r0, _081004FC @ =gUnknown_083EC96C movs r3, 0x20 ldrsh r1, [r2, r3] lsls r1, 3 adds r0, 0x4 _081004EE: adds r1, r0 ldr r1, [r1] adds r0, r4, 0 bl _call_via_r1 b _0810063C .align 2, 0 _081004FC: .4byte gUnknown_083EC96C _08100500: ldr r7, _08100644 @ =gMain ldrh r1, [r7, 0x2C] movs r0, 0xF0 mov r12, r0 ands r0, r1 cmp r0, 0x40 bne _08100534 ldr r1, _08100648 @ =gUnknown_020391AA movs r0, 0x1 strb r0, [r1] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r6, [r0, 0x32] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _0810064C @ =0x0000fffe strh r1, [r0, 0x34] ldrh r0, [r2, 0xA] subs r0, 0x1 strh r0, [r2, 0xA] _08100534: ldrh r1, [r7, 0x2C] mov r0, r12 ands r0, r1 cmp r0, 0x80 bne _08100564 ldr r1, _08100648 @ =gUnknown_020391AA movs r0, 0x2 strb r0, [r1] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r6, [r0, 0x32] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x2 strh r1, [r0, 0x34] ldrh r0, [r2, 0xA] adds r0, 0x1 strh r0, [r2, 0xA] _08100564: ldrh r1, [r7, 0x2C] mov r0, r12 ands r0, r1 cmp r0, 0x20 bne _08100594 ldr r1, _08100648 @ =gUnknown_020391AA movs r0, 0x3 strb r0, [r1] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _0810064C @ =0x0000fffe strh r1, [r0, 0x32] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r6, [r0, 0x34] ldrh r0, [r2, 0x8] subs r0, 0x1 strh r0, [r2, 0x8] _08100594: ldrh r1, [r7, 0x2C] mov r0, r12 ands r0, r1 cmp r0, 0x10 bne _081005C4 ldr r1, _08100648 @ =gUnknown_020391AA movs r0, 0x4 strb r0, [r1] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x2 strh r1, [r0, 0x32] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r6, [r0, 0x34] ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] _081005C4: bl sub_8100430 lsls r0, 24 cmp r0, 0 beq _081005DA adds r0, r4, 0 bl sub_810038C lsls r0, 24 cmp r0, 0 bne _081005DE _081005DA: bl sub_810045C _081005DE: ldr r0, _08100648 @ =gUnknown_020391AA ldrb r0, [r0] cmp r0, 0 beq _0810060C ldr r3, _08100650 @ =gSprites ldr r2, _08100654 @ =gUnknown_020391A8 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r0, 0x36] adds r1, 0x1 strh r1, [r0, 0x36] ldrb r0, [r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrh r2, [r1, 0x36] movs r0, 0x7 ands r0, r2 strh r0, [r1, 0x36] _0810060C: ldr r0, _08100658 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r2, r1, r0 movs r1, 0x1C ldrsh r0, [r2, r1] cmp r0, 0 bne _0810063C ldr r4, _08100644 @ =gMain ldrh r1, [r4, 0x2E] movs r3, 0x1 adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0810062E strh r3, [r2, 0x1C] _0810062E: ldrh r1, [r4, 0x2E] movs r3, 0x2 adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0810063C strh r3, [r2, 0x1C] _0810063C: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08100644: .4byte gMain _08100648: .4byte gUnknown_020391AA _0810064C: .4byte 0x0000fffe _08100650: .4byte gSprites _08100654: .4byte gUnknown_020391A8 _08100658: .4byte gTasks thumb_func_end sub_8100494 thumb_func_start sub_810065C sub_810065C: @ 810065C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect ldr r2, _08100698 @ =gSprites ldr r0, _0810069C @ =gUnknown_020391A8 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r2, 0 strh r2, [r0, 0x3C] ldr r1, _081006A0 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 strh r2, [r0, 0x1C] ldr r1, _081006A4 @ =sub_8100494 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08100698: .4byte gSprites _0810069C: .4byte gUnknown_020391A8 _081006A0: .4byte gTasks _081006A4: .4byte sub_8100494 thumb_func_end sub_810065C thumb_func_start sub_81006A8 sub_81006A8: @ 81006A8 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _081006CC @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _081006C2 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081006C8 _081006C2: adds r0, r2, 0 bl sub_810065C _081006C8: pop {r0} bx r0 .align 2, 0 _081006CC: .4byte gMain thumb_func_end sub_81006A8 thumb_func_start sub_81006D0 sub_81006D0: @ 81006D0 push {r4,r5,lr} adds r3, r0, 0 movs r1, 0 adds r2, r3, 0 adds r2, 0x84 movs r5, 0 ldr r4, _08100708 @ =0x000007ff _081006DE: adds r0, r2, r1 strb r5, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r4 bls _081006DE movs r1, 0 adds r2, r3, 0x4 movs r3, 0 _081006F2: lsls r0, r1, 1 adds r0, r2, r0 strh r3, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x3F bls _081006F2 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08100708: .4byte 0x000007ff thumb_func_end sub_81006D0 thumb_func_start sub_810070C sub_810070C: @ 810070C push {r4,r5,lr} adds r5, r0, 0 lsls r1, 16 movs r2, 0 ldr r0, _0810073C @ =gMapHeader ldr r0, [r0] ldr r0, [r0, 0x10] lsrs r4, r1, 12 ldr r3, [r0, 0x8] _0810071E: lsls r1, r2, 1 adds r1, r5 adds r0, r4, r2 lsls r0, 1 adds r0, r3 ldrh r0, [r0] strh r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0xF bls _0810071E pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810073C: .4byte gMapHeader thumb_func_end sub_810070C thumb_func_start sub_8100740 sub_8100740: @ 8100740 push {r4-r7,lr} sub sp, 0x20 adds r7, r0, 0 lsls r1, 16 lsrs r2, r1, 16 lsrs r3, r1, 26 cmp r2, 0 beq _08100754 ldr r0, _08100784 @ =0x000003ff ands r2, r0 _08100754: movs r5, 0 ldr r0, _08100788 @ =gMapHeader ldr r6, [r0] lsls r4, r2, 5 _0810075C: mov r0, sp adds r2, r0, r5 ldr r0, [r6, 0x10] ldr r0, [r0, 0x4] adds r1, r4, r5 adds r0, r1 ldrb r0, [r0] strb r0, [r2] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x1F bls _0810075C cmp r3, 0x1 beq _081007AE cmp r3, 0x1 bgt _0810078C cmp r3, 0 beq _08100796 b _0810086A .align 2, 0 _08100784: .4byte 0x000003ff _08100788: .4byte gMapHeader _0810078C: cmp r3, 0x2 beq _0810080E cmp r3, 0x3 beq _08100846 b _0810086A _08100796: movs r5, 0 _08100798: adds r1, r7, r5 mov r2, sp adds r0, r2, r5 ldrb r0, [r0] strb r0, [r1] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x1F bls _08100798 b _0810086A _081007AE: movs r5, 0 movs r6, 0xF _081007B2: lsls r4, r5, 2 adds r4, r7 adds r5, 0x1 lsls r3, r5, 2 subs r0, r3, 0x1 add r0, sp ldrb r2, [r0] lsrs r1, r2, 4 adds r0, r6, 0 ands r0, r2 lsls r0, 4 adds r1, r0 strb r1, [r4] subs r0, r3, 0x2 add r0, sp ldrb r2, [r0] lsrs r1, r2, 4 adds r0, r6, 0 ands r0, r2 lsls r0, 4 adds r1, r0 strb r1, [r4, 0x1] subs r0, r3, 0x3 add r0, sp ldrb r2, [r0] lsrs r1, r2, 4 adds r0, r6, 0 ands r0, r2 lsls r0, 4 adds r1, r0 strb r1, [r4, 0x2] subs r3, 0x4 mov r1, sp adds r0, r1, r3 ldrb r2, [r0] lsrs r1, r2, 4 adds r0, r6, 0 ands r0, r2 lsls r0, 4 adds r1, r0 strb r1, [r4, 0x3] lsls r5, 16 lsrs r5, 16 cmp r5, 0x7 bls _081007B2 b _0810086A _0810080E: movs r5, 0 movs r3, 0x7 _08100812: lsls r2, r5, 2 adds r2, r7 subs r1, r3, r5 lsls r1, 2 mov r4, sp adds r0, r4, r1 ldrb r0, [r0] strb r0, [r2] adds r0, r1, 0x1 add r0, sp ldrb r0, [r0] strb r0, [r2, 0x1] adds r0, r1, 0x2 add r0, sp ldrb r0, [r0] strb r0, [r2, 0x2] adds r1, 0x3 adds r0, r4, r1 ldrb r0, [r0] strb r0, [r2, 0x3] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x7 bls _08100812 b _0810086A _08100846: movs r5, 0 movs r4, 0x1F movs r6, 0xF _0810084C: adds r3, r7, r5 subs r0, r4, r5 add r0, sp ldrb r2, [r0] lsrs r1, r2, 4 adds r0, r6, 0 ands r0, r2 lsls r0, 4 adds r1, r0 strb r1, [r3] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x1F bls _0810084C _0810086A: add sp, 0x20 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8100740 thumb_func_start sub_8100874 sub_8100874: @ 8100874 push {r4,r5,lr} adds r5, r0, 0 movs r4, 0 _0810087A: lsls r0, r4, 5 adds r0, 0x84 adds r0, r5, r0 lsls r2, r4, 1 adds r1, r5, 0x4 adds r1, r2 ldrh r1, [r1] bl sub_8100740 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x3F bls _0810087A pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8100874 thumb_func_start sub_810089C sub_810089C: @ 810089C lsls r0, 16 ldr r1, _081008B4 @ =gMapHeader ldr r1, [r1] ldr r1, [r1, 0x14] ldr r1, [r1, 0xC] lsrs r0, 15 adds r0, r1 ldrh r1, [r0] ldr r0, _081008B8 @ =0x00000fff ands r0, r1 bx lr .align 2, 0 _081008B4: .4byte gMapHeader _081008B8: .4byte 0x00000fff thumb_func_end sub_810089C thumb_func_start sub_81008BC sub_81008BC: @ 81008BC push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r0 ldr r0, [r0] ldrb r0, [r0, 0x12] movs r6, 0 ldr r1, _0810092C @ =gUnknown_083EC860 lsls r5, r0, 4 adds r0, r5, r1 ldrb r0, [r0, 0xC] cmp r6, r0 bcs _08100920 adds r7, r1, 0 _081008D8: mov r4, r8 ldm r4!, {r1} adds r0, r7, 0x4 adds r0, r5, r0 ldr r0, [r0] adds r0, r6 ldrb r0, [r0] ldr r1, [r1, 0x1C] lsls r0, 1 adds r0, r1 ldrh r0, [r0] adds r1, r7, 0 adds r1, 0x8 adds r1, r5, r1 ldr r1, [r1] adds r1, r6 lsls r0, 3 ldrb r1, [r1] adds r0, r1 lsls r0, 16 lsrs r0, 16 bl sub_810089C adds r2, r5, r7 ldr r1, [r2] adds r1, r6 ldrb r1, [r1] lsls r1, 1 adds r4, r1 strh r0, [r4] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 ldrb r2, [r2, 0xC] cmp r6, r2 bcc _081008D8 _08100920: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810092C: .4byte gUnknown_083EC860 thumb_func_end sub_81008BC thumb_func_start sub_8100930 sub_8100930: @ 8100930 push {r4,r5,lr} lsls r0, 24 ldr r3, _08100998 @ =gUnknown_020391AC movs r1, 0 strb r1, [r3] ldrb r2, [r3, 0x1] subs r1, 0x4 ands r1, r2 movs r4, 0xD negs r4, r4 ands r1, r4 movs r2, 0x11 negs r2, r2 ands r1, r2 subs r2, 0x10 ands r1, r2 strb r1, [r3, 0x1] ldr r1, _0810099C @ =gUnknown_083EC900 lsrs r0, 22 adds r0, r1 ldrb r1, [r0] movs r5, 0x3F lsls r1, 6 strb r1, [r3, 0x1] ldrh r2, [r3, 0x2] ldr r1, _081009A0 @ =0xfffffe00 ands r1, r2 strh r1, [r3, 0x2] ldrb r2, [r3, 0x3] movs r1, 0x3F negs r1, r1 ands r1, r2 strb r1, [r3, 0x3] ldrb r0, [r0, 0x1] lsls r0, 6 ands r5, r1 orrs r5, r0 strb r5, [r3, 0x3] ldrh r1, [r3, 0x4] ldr r0, _081009A4 @ =0xfffffc00 ands r0, r1 strh r0, [r3, 0x4] ldrb r0, [r3, 0x5] ands r4, r0 movs r0, 0x4 orrs r4, r0 movs r0, 0xF ands r4, r0 strb r4, [r3, 0x5] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08100998: .4byte gUnknown_020391AC _0810099C: .4byte gUnknown_083EC900 _081009A0: .4byte 0xfffffe00 _081009A4: .4byte 0xfffffc00 thumb_func_end sub_8100930 thumb_func_start sub_81009A8 sub_81009A8: @ 81009A8 movs r1, 0 strh r1, [r0, 0x32] strh r1, [r0, 0x34] strh r1, [r0, 0x36] strh r1, [r0, 0x38] strh r1, [r0, 0x3A] strh r1, [r0, 0x3C] ldr r1, _081009BC @ =sub_81009C0 str r1, [r0, 0x1C] bx lr .align 2, 0 _081009BC: .4byte sub_81009C0 thumb_func_end sub_81009A8 thumb_func_start sub_81009C0 sub_81009C0: @ 81009C0 push {lr} adds r2, r0, 0 movs r1, 0x3C ldrsh r0, [r2, r1] cmp r0, 0 bne _081009FA movs r1, 0x3A ldrsh r0, [r2, r1] cmp r0, 0xE bgt _081009E2 adds r3, r2, 0 adds r3, 0x3E ldrb r1, [r3] movs r0, 0x5 negs r0, r0 ands r0, r1 b _081009EC _081009E2: adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 _081009EC: strb r0, [r3] ldrh r0, [r2, 0x3A] adds r0, 0x1 movs r1, 0x1F ands r0, r1 strh r0, [r2, 0x3A] b _08100A06 _081009FA: adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] _08100A06: pop {r0} bx r0 thumb_func_end sub_81009C0 thumb_func_start sub_8100A0C sub_8100A0C: @ 8100A0C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_8100D38 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08100A44 movs r0, 0x1 movs r1, 0 bl fade_screen ldr r1, _08100A3C @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xC] ldr r1, _08100A40 @ =sub_8100E70 str r1, [r0] b _08100A50 .align 2, 0 _08100A3C: .4byte gTasks _08100A40: .4byte sub_8100E70 _08100A44: ldr r1, _08100A58 @ =gSecretBaseText_NoDecorInUse ldr r2, _08100A5C @ =sub_80FE428 adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField _08100A50: pop {r4} pop {r0} bx r0 .align 2, 0 _08100A58: .4byte gSecretBaseText_NoDecorInUse _08100A5C: .4byte sub_80FE428 thumb_func_end sub_8100A0C thumb_func_start sub_8100A60 sub_8100A60: @ 8100A60 lsls r0, 24 lsrs r0, 24 ldr r3, _08100A78 @ =0x0201f000 ldr r1, [r3] adds r1, r0 movs r2, 0 strb r2, [r1] ldr r1, [r3, 0x4] adds r1, r0 strb r2, [r1] bx lr .align 2, 0 _08100A78: .4byte 0x0201f000 thumb_func_end sub_8100A60 thumb_func_start sub_8100A7C sub_8100A7C: @ 8100A7C push {r4-r6,lr} ldr r6, _08100A9C @ =gUnknown_0202E8CE movs r0, 0 strh r0, [r6] ldr r2, _08100AA0 @ =gScriptResult strh r0, [r2] ldr r4, _08100AA4 @ =gUnknown_0202E8CC ldr r1, _08100AA8 @ =gUnknown_02039234 ldrh r0, [r4] ldrb r1, [r1] cmp r0, r1 bne _08100AB8 movs r0, 0x1 strh r0, [r2] b _08100B0A .align 2, 0 _08100A9C: .4byte gUnknown_0202E8CE _08100AA0: .4byte gScriptResult _08100AA4: .4byte gUnknown_0202E8CC _08100AA8: .4byte gUnknown_02039234 _08100AAC: ldr r1, _08100AB4 @ =gUnknown_0202E8D0 ldrb r0, [r2] strh r0, [r1] b _08100B0A .align 2, 0 _08100AB4: .4byte gUnknown_0202E8D0 _08100AB8: ldr r3, _08100B10 @ =gDecorations ldr r2, _08100B14 @ =0x0201f000 ldr r1, _08100B18 @ =gUnknown_020391B4 ldrh r0, [r4] lsls r0, 3 adds r4, r0, r1 ldrb r1, [r4] ldr r0, [r2] adds r0, r1 ldrb r0, [r0] lsls r0, 5 adds r0, r3 ldrb r0, [r0, 0x11] cmp r0, 0x4 bne _08100B0A ldrh r0, [r4, 0x4] strh r0, [r6] ldrb r0, [r4] bl sub_8100A60 movs r1, 0 ldr r0, _08100B1C @ =gMapHeader ldr r0, [r0, 0x4] ldrb r2, [r0] cmp r1, r2 bcs _08100B0A ldr r5, [r0, 0x4] ldrh r4, [r6] adds r3, r2, 0 _08100AF2: lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0, r5 ldrh r0, [r2, 0x14] cmp r0, r4 beq _08100AAC adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r3 bcc _08100AF2 _08100B0A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08100B10: .4byte gDecorations _08100B14: .4byte 0x0201f000 _08100B18: .4byte gUnknown_020391B4 _08100B1C: .4byte gMapHeader thumb_func_end sub_8100A7C thumb_func_start sub_8100B20 sub_8100B20: @ 8100B20 push {r4-r6,lr} movs r2, 0 ldr r0, _08100B4C @ =gMapHeader ldr r0, [r0, 0x4] ldrb r1, [r0] cmp r2, r1 bcs _08100B64 adds r3, r0, 0 ldr r5, [r3, 0x4] ldr r0, _08100B50 @ =gUnknown_0202E8CC ldrh r4, [r0] ldr r6, _08100B54 @ =gUnknown_0202E8CE _08100B38: lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0, r5 ldrh r0, [r1, 0x14] cmp r0, r4 bne _08100B58 ldrb r0, [r1] strh r0, [r6] b _08100B64 .align 2, 0 _08100B4C: .4byte gMapHeader _08100B50: .4byte gUnknown_0202E8CC _08100B54: .4byte gUnknown_0202E8CE _08100B58: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 ldrb r0, [r3] cmp r2, r0 bcc _08100B38 _08100B64: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8100B20 thumb_func_start sub_8100B6C sub_8100B6C: @ 8100B6C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC movs r7, 0 b _08100C64 _08100B7C: lsls r3, r7, 3 ldr r0, _08100BE0 @ =gUnknown_020391B4 adds r4, r3, r0 ldrb r1, [r4] ldr r2, _08100BE4 @ =0x0201f000 ldr r0, [r2] adds r0, r1 ldrb r6, [r0] lsls r0, r6, 5 ldr r5, _08100BE8 @ =gDecorations adds r0, r5 ldrb r2, [r0, 0x11] ldr r5, _08100BE4 @ =0x0201f000 ldr r0, [r5, 0x4] adds r0, r1 ldrb r0, [r0] lsrs r1, r0, 4 mov r9, r1 movs r5, 0xF mov r10, r5 mov r1, r10 ands r1, r0 mov r10, r1 adds r5, r3, 0 adds r3, r7, 0x1 str r3, [sp] cmp r2, 0x4 beq _08100C5E cmp r6, 0x29 bne _08100BD0 mov r0, r9 adds r0, 0x7 adds r1, 0x7 bl MapGridGetMetatileIdAt movs r1, 0xA3 lsls r1, 2 cmp r0, r1 bne _08100BD0 ldrb r0, [r4, 0x2] adds r0, 0x1 strb r0, [r4, 0x2] _08100BD0: movs r6, 0 ldr r1, _08100BE0 @ =gUnknown_020391B4 adds r2, r5, 0 adds r0, r5, r1 adds r3, r7, 0x1 str r3, [sp] b _08100C4E .align 2, 0 _08100BE0: .4byte gUnknown_020391B4 _08100BE4: .4byte 0x0201f000 _08100BE8: .4byte gDecorations _08100BEC: movs r4, 0 adds r0, r2, r1 adds r7, r6, 0x1 str r7, [sp, 0x4] ldrb r0, [r0, 0x1] cmp r4, r0 bcs _08100C42 ldr r0, _08100C7C @ =gUnknown_020391B4 adds r0, r5 mov r8, r0 subs r1, r6, 0x7 str r1, [sp, 0x8] _08100C04: adds r0, r4, 0x7 add r0, r9 ldr r1, _08100C80 @ =gMapHeader ldr r3, [r1] mov r7, r10 subs r2, r7, r6 ldr r1, [r3] muls r2, r1 mov r7, r9 adds r1, r7, r4 adds r1, r2 ldr r2, [r3, 0xC] lsls r1, 1 adds r1, r2 ldrh r1, [r1] movs r3, 0xC0 lsls r3, 6 adds r2, r3, 0 orrs r2, r1 mov r7, r10 ldr r3, [sp, 0x8] subs r1, r7, r3 bl MapGridSetMetatileEntryAt adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 mov r7, r8 ldrb r7, [r7, 0x1] cmp r4, r7 bcc _08100C04 _08100C42: ldr r1, [sp, 0x4] lsls r0, r1, 24 lsrs r6, r0, 24 ldr r1, _08100C7C @ =gUnknown_020391B4 adds r2, r5, 0 adds r0, r5, r1 _08100C4E: ldrb r0, [r0, 0x2] cmp r6, r0 bcc _08100BEC ldr r2, _08100C7C @ =gUnknown_020391B4 adds r0, r5, r2 ldrb r0, [r0] bl sub_8100A60 _08100C5E: ldr r3, [sp] lsls r0, r3, 24 lsrs r7, r0, 24 _08100C64: ldr r0, _08100C84 @ =gUnknown_02039234 ldrb r0, [r0] cmp r7, r0 bcc _08100B7C add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08100C7C: .4byte gUnknown_020391B4 _08100C80: .4byte gMapHeader _08100C84: .4byte gUnknown_02039234 thumb_func_end sub_8100B6C thumb_func_start sub_8100C88 sub_8100C88: @ 8100C88 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08100CAC @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r5, r0, r1 movs r1, 0xC ldrsh r0, [r5, r1] cmp r0, 0x1 beq _08100CC4 cmp r0, 0x1 bgt _08100CB0 cmp r0, 0 beq _08100CBA b _08100D24 .align 2, 0 _08100CAC: .4byte gTasks _08100CB0: cmp r0, 0x2 beq _08100CF4 cmp r0, 0x3 beq _08100D08 b _08100D24 _08100CBA: bl sub_8100B6C movs r0, 0x1 strh r0, [r5, 0xC] b _08100D24 _08100CC4: ldr r0, _08100CEC @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08100D24 bl DrawWholeMapView ldr r0, _08100CF0 @ =gUnknown_081A2F8A bl ScriptContext1_SetupScript movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect movs r0, 0x2 strh r0, [r5, 0xC] b _08100D24 .align 2, 0 _08100CEC: .4byte gPaletteFade _08100CF0: .4byte gUnknown_081A2F8A _08100CF4: bl ScriptContext2_Enable adds r0, r4, 0 bl sub_80FED90 bl pal_fill_black movs r0, 0x3 strh r0, [r5, 0xC] b _08100D24 _08100D08: bl sub_807D770 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08100D24 ldr r0, _08100D2C @ =0x0000ffff strh r0, [r5, 0x22] ldr r1, _08100D30 @ =gSecretBaseText_DecorReturned ldr r2, _08100D34 @ =sub_81010F0 adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField _08100D24: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08100D2C: .4byte 0x0000ffff _08100D30: .4byte gSecretBaseText_DecorReturned _08100D34: .4byte sub_81010F0 thumb_func_end sub_8100C88 thumb_func_start sub_8100D38 sub_8100D38: @ 8100D38 push {r4,r5,lr} lsls r0, 24 lsrs r3, r0, 24 movs r2, 0 ldr r0, _08100D68 @ =0x0201f000 adds r4, r0, 0 ldrb r0, [r4, 0x8] cmp r2, r0 bcs _08100D7C adds r5, r4, 0 ldr r1, _08100D6C @ =gTasks lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r1, r0, r1 _08100D56: ldr r0, [r5] adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _08100D70 strh r2, [r1, 0x22] movs r0, 0x1 b _08100D7E .align 2, 0 _08100D68: .4byte 0x0201f000 _08100D6C: .4byte gTasks _08100D70: adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 ldrb r0, [r4, 0x8] cmp r2, r0 bcc _08100D56 _08100D7C: movs r0, 0 _08100D7E: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8100D38 thumb_func_start SetUpPuttingAwayDecorationPlayerAvatar SetUpPuttingAwayDecorationPlayerAvatar: @ 8100D84 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x4 bl player_get_direction_lower_nybble movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect ldr r3, _08100DD8 @ =gUnknown_020391A8 ldr r2, _08100DDC @ =gSprites ldr r4, _08100DE0 @ =gUnknown_03004880 ldr r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x2E] strb r0, [r3] bl sub_81016C8 ldr r0, _08100DE4 @ =gSpriteTemplate_83ECA88 movs r1, 0x78 movs r2, 0x50 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 str r0, [r4, 0x4] ldr r0, _08100DE8 @ =gSaveBlock2 ldrb r0, [r0, 0x8] cmp r0, 0 bne _08100DF0 ldr r1, _08100DEC @ =SpriteCallbackDummy str r0, [sp] movs r0, 0xC1 b _08100DF8 .align 2, 0 _08100DD8: .4byte gUnknown_020391A8 _08100DDC: .4byte gSprites _08100DE0: .4byte gUnknown_03004880 _08100DE4: .4byte gSpriteTemplate_83ECA88 _08100DE8: .4byte gSaveBlock2 _08100DEC: .4byte SpriteCallbackDummy _08100DF0: ldr r1, _08100E5C @ =SpriteCallbackDummy movs r0, 0 str r0, [sp] movs r0, 0xC2 _08100DF8: movs r2, 0x88 movs r3, 0x48 bl AddPseudoFieldObject ldr r1, _08100E60 @ =gUnknown_020391A9 strb r0, [r1] ldr r6, _08100E64 @ =gSprites ldr r0, _08100E60 @ =gUnknown_020391A9 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 ldrb r2, [r1, 0x5] movs r4, 0xD negs r4, r4 adds r0, r4, 0 ands r0, r2 movs r2, 0x4 mov r8, r2 mov r2, r8 orrs r0, r2 strb r0, [r1, 0x5] ldr r5, _08100E68 @ =gUnknown_020391A8 ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 bl DestroySprite ldr r0, _08100E6C @ =gUnknown_03004880 ldr r0, [r0, 0x4] strb r0, [r5] ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldrb r1, [r0, 0x5] ands r4, r1 mov r1, r8 orrs r4, r1 strb r4, [r0, 0x5] add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08100E5C: .4byte SpriteCallbackDummy _08100E60: .4byte gUnknown_020391A9 _08100E64: .4byte gSprites _08100E68: .4byte gUnknown_020391A8 _08100E6C: .4byte gUnknown_03004880 thumb_func_end SetUpPuttingAwayDecorationPlayerAvatar thumb_func_start sub_8100E70 sub_8100E70: @ 8100E70 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _08100E94 @ =gTasks + 0x8 adds r4, r0, r1 movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _08100EC4 cmp r0, 0x1 bgt _08100E98 cmp r0, 0 beq _08100E9E b _08100EE6 .align 2, 0 _08100E94: .4byte gTasks + 0x8 _08100E98: cmp r0, 0x2 beq _08100ED2 b _08100EE6 _08100E9E: ldr r0, _08100EC0 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08100EE6 adds r0, r5, 0 bl sub_80FF0E0 movs r0, 0x1 strh r0, [r4, 0x4] strh r0, [r4, 0xC] strh r0, [r4, 0xA] bl sub_8072DEC b _08100EE6 .align 2, 0 _08100EC0: .4byte gPaletteFade _08100EC4: bl SetUpPuttingAwayDecorationPlayerAvatar bl pal_fill_black movs r0, 0x2 strh r0, [r4, 0x4] b _08100EE6 _08100ED2: bl sub_807D770 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08100EE6 strh r0, [r4, 0x18] adds r0, r5, 0 bl sub_8100EEC _08100EE6: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8100E70 thumb_func_start sub_8100EEC sub_8100EEC: @ 8100EEC push {r4-r6,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect ldr r4, _08100F70 @ =gSprites ldr r3, _08100F74 @ =gUnknown_020391A8 ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r6, 0 strh r6, [r0, 0x3C] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r4, 0 adds r1, 0x1C adds r0, r1 ldr r1, _08100F78 @ =sub_8101698 str r1, [r0] ldr r2, _08100F7C @ =gUnknown_020391A9 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x88 strh r1, [r0, 0x20] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x48 strh r1, [r0, 0x22] ldr r1, _08100F80 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 strh r6, [r0, 0x1C] ldr r1, _08100F84 @ =sub_8100494 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08100F70: .4byte gSprites _08100F74: .4byte gUnknown_020391A8 _08100F78: .4byte sub_8101698 _08100F7C: .4byte gUnknown_020391A9 _08100F80: .4byte gTasks _08100F84: .4byte sub_8100494 thumb_func_end sub_8100EEC thumb_func_start sub_8100F88 sub_8100F88: @ 8100F88 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _08100FB0 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x1C] bl sub_810045C adds r0, r4, 0 bl sub_8101024 pop {r4} pop {r0} bx r0 .align 2, 0 _08100FB0: .4byte gTasks thumb_func_end sub_8100F88 thumb_func_start sub_8100FB4 sub_8100FB4: @ 8100FB4 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _0810100C @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x1C] bl sub_810045C ldr r3, _08101010 @ =gSprites ldr r5, _08101014 @ =gUnknown_020391A8 ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, 0x1C adds r0, r3 ldr r1, _08101018 @ =SpriteCallbackDummy str r1, [r0] ldr r1, _0810101C @ =gSecretBaseText_StopPuttingAwayDecor ldr r2, _08101020 @ =sub_810156C adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810100C: .4byte gTasks _08101010: .4byte gSprites _08101014: .4byte gUnknown_020391A8 _08101018: .4byte SpriteCallbackDummy _0810101C: .4byte gSecretBaseText_StopPuttingAwayDecor _08101020: .4byte sub_810156C thumb_func_end sub_8100FB4 thumb_func_start sub_8101024 sub_8101024: @ 8101024 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 bl sub_8101460 ldr r0, _08101040 @ =gUnknown_02039234 ldrb r0, [r0] cmp r0, 0 beq _0810104C ldr r1, _08101044 @ =gSecretBaseText_ReturnDecor ldr r2, _08101048 @ =sub_8101518 b _081010B0 .align 2, 0 _08101040: .4byte gUnknown_02039234 _08101044: .4byte gSecretBaseText_ReturnDecor _08101048: .4byte sub_8101518 _0810104C: lsls r1, r5, 2 adds r1, r5 lsls r1, 3 ldr r0, _081010BC @ =gTasks + 0x8 adds r1, r0 movs r2, 0 ldrsh r0, [r1, r2] movs r2, 0x2 ldrsh r1, [r1, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_8057238 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08101082 adds r0, r4, 0 bl sub_805738C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081010D4 _08101082: ldr r3, _081010C0 @ =gSprites ldr r4, _081010C4 @ =gUnknown_020391A8 ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, 0x1C adds r0, r3 ldr r1, _081010C8 @ =SpriteCallbackDummy str r1, [r0] ldr r1, _081010CC @ =gSecretBaseText_StopPuttingAwayDecor ldr r2, _081010D0 @ =sub_810156C _081010B0: adds r0, r5, 0 movs r3, 0 bl DisplayItemMessageOnField b _081010E0 .align 2, 0 _081010BC: .4byte gTasks + 0x8 _081010C0: .4byte gSprites _081010C4: .4byte gUnknown_020391A8 _081010C8: .4byte SpriteCallbackDummy _081010CC: .4byte gSecretBaseText_StopPuttingAwayDecor _081010D0: .4byte sub_810156C _081010D4: ldr r1, _081010E8 @ =gSecretBaseText_NoDecor ldr r2, _081010EC @ =sub_81010F0 adds r0, r5, 0 movs r3, 0 bl DisplayItemMessageOnField _081010E0: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081010E8: .4byte gSecretBaseText_NoDecor _081010EC: .4byte sub_81010F0 thumb_func_end sub_8101024 thumb_func_start sub_81010F0 sub_81010F0: @ 81010F0 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _08101114 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0810110A movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08101110 _0810110A: adds r0, r2, 0 bl sub_8100EEC _08101110: pop {r0} bx r0 .align 2, 0 _08101114: .4byte gMain thumb_func_end sub_81010F0 thumb_func_start sub_8101118 sub_8101118: @ 8101118 push {lr} adds r2, r1, 0 lsls r0, 24 ldr r1, _08101130 @ =gDecorations lsrs r0, 19 adds r0, r1 ldrb r1, [r0, 0x12] cmp r1, 0 bne _08101134 movs r0, 0x1 strb r0, [r2, 0x1] b _08101192 .align 2, 0 _08101130: .4byte gDecorations _08101134: cmp r1, 0x1 bne _08101140 movs r0, 0x2 strb r0, [r2, 0x1] strb r1, [r2, 0x2] b _08101194 _08101140: cmp r1, 0x2 bne _0810114C movs r0, 0x3 strb r0, [r2, 0x1] movs r0, 0x1 b _08101192 _0810114C: cmp r1, 0x3 bne _08101154 movs r0, 0x4 b _0810118E _08101154: cmp r1, 0x4 bne _0810115E movs r0, 0x2 strb r0, [r2, 0x1] b _08101192 _0810115E: cmp r1, 0x5 bne _08101166 movs r0, 0x1 b _0810118E _08101166: cmp r1, 0x6 bne _08101172 movs r0, 0x1 strb r0, [r2, 0x1] movs r0, 0x3 b _08101192 _08101172: cmp r1, 0x7 bne _0810117E movs r0, 0x2 strb r0, [r2, 0x1] movs r0, 0x4 b _08101192 _0810117E: cmp r1, 0x8 bne _08101188 movs r0, 0x3 strb r0, [r2, 0x1] b _08101192 _08101188: cmp r1, 0x9 bne _08101194 movs r0, 0x3 _0810118E: strb r0, [r2, 0x1] movs r0, 0x2 _08101192: strb r0, [r2, 0x2] _08101194: pop {r0} bx r0 thumb_func_end sub_8101118 thumb_func_start sub_8101198 sub_8101198: @ 8101198 push {r4-r6,lr} lsls r0, 24 lsls r1, 24 ldr r5, _081011F0 @ =gSprites ldr r6, _081011F4 @ =gUnknown_020391A8 ldrb r3, [r6] lsls r2, r3, 4 adds r2, r3 lsls r2, 2 adds r2, r5 adds r2, 0x3E ldrb r3, [r2] movs r4, 0x4 orrs r3, r4 strb r3, [r2] ldrb r3, [r6] lsls r2, r3, 4 adds r2, r3 lsls r2, 2 adds r3, r5, 0 adds r3, 0x1C adds r2, r3 ldr r3, _081011F8 @ =SpriteCallbackDummy str r3, [r2] ldr r4, _081011FC @ =gUnknown_020391A9 ldrb r3, [r4] lsls r2, r3, 4 adds r2, r3 lsls r2, 2 adds r2, r5 lsrs r0, 20 adds r0, 0x88 strh r0, [r2, 0x20] ldrb r2, [r4] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r5 lsrs r1, 20 adds r1, 0x48 strh r1, [r0, 0x22] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081011F0: .4byte gSprites _081011F4: .4byte gUnknown_020391A8 _081011F8: .4byte SpriteCallbackDummy _081011FC: .4byte gUnknown_020391A9 thumb_func_end sub_8101198 thumb_func_start sub_8101200 sub_8101200: @ 8101200 push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r2, 0 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 ldr r3, _0810128C @ =gTasks lsls r2, r0, 2 adds r2, r0 lsls r2, 3 adds r2, r3 ldrb r0, [r2, 0x8] subs r0, 0x7 lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r2, 0xA] subs r0, 0x7 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r2, _08101290 @ =0x0201f000 ldr r0, [r2, 0x4] adds r0, r1 ldrb r0, [r0] lsrs r4, r0, 4 movs r5, 0xF ands r5, r0 ldr r0, [r2] adds r0, r1 ldrb r0, [r0] cmp r0, 0x29 bne _0810125A adds r0, r4, 0x7 adds r1, r5, 0x7 bl MapGridGetMetatileIdAt movs r1, 0xA3 lsls r1, 2 cmp r0, r1 bne _0810125A ldrb r0, [r6, 0x2] subs r0, 0x1 strb r0, [r6, 0x2] _0810125A: cmp r7, r4 bcc _08101294 ldrb r1, [r6, 0x1] adds r0, r4, r1 cmp r7, r0 bge _08101294 ldrb r0, [r6, 0x2] subs r0, r5, r0 cmp r8, r0 ble _08101294 cmp r8, r5 bhi _08101294 subs r0, r7, r4 adds r0, 0x1 subs r0, r1, r0 lsls r0, 24 lsrs r0, 24 mov r2, r8 subs r1, r5, r2 lsls r1, 24 lsrs r1, 24 bl sub_8101198 movs r0, 0x1 b _08101296 .align 2, 0 _0810128C: .4byte gTasks _08101290: .4byte 0x0201f000 _08101294: movs r0, 0 _08101296: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8101200 thumb_func_start sub_81012A0 sub_81012A0: @ 81012A0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r2, _0810130C @ =0x0201f000 ldr r3, _08101310 @ =gUnknown_020391B4 ldr r0, _08101314 @ =gUnknown_02039234 ldrb r0, [r0] lsls r0, 3 adds r0, r3 ldrb r1, [r0] ldr r0, [r2, 0x4] adds r0, r1 ldrb r0, [r0] lsrs r7, r0, 4 movs r6, 0xF ands r6, r0 movs r5, 0 ldr r0, _08101318 @ =gSaveBlock1 mov r8, r0 mov r9, r3 _081012CA: lsls r0, r5, 1 adds r0, r5 lsls r0, 3 mov r2, r8 adds r1, r0, r2 ldr r2, _0810131C @ =0x00000c24 adds r0, r1, r2 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, r7 bne _08101328 ldr r2, _08101320 @ =0x00000c26 adds r0, r1, r2 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, r6 bne _08101328 ldr r0, _08101324 @ =0x00000c34 adds r4, r1, r0 ldrh r0, [r4] bl FlagGet lsls r0, 24 cmp r0, 0 bne _08101328 ldr r0, _08101314 @ =gUnknown_02039234 ldrb r0, [r0] lsls r0, 3 add r0, r9 ldrh r1, [r4] strh r1, [r0, 0x4] b _08101332 .align 2, 0 _0810130C: .4byte 0x0201f000 _08101310: .4byte gUnknown_020391B4 _08101314: .4byte gUnknown_02039234 _08101318: .4byte gSaveBlock1 _0810131C: .4byte 0x00000c24 _08101320: .4byte 0x00000c26 _08101324: .4byte 0x00000c34 _08101328: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x3F bls _081012CA _08101332: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81012A0 thumb_func_start sub_8101340 sub_8101340: @ 8101340 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 movs r6, 0 b _081013A2 _0810134A: ldr r0, [r0] adds r1, r0, r6 ldrb r0, [r1] cmp r0, 0 beq _0810139C ldr r0, _08101390 @ =gDecorations ldrb r2, [r1] lsls r1, r2, 5 adds r1, r0 ldrb r0, [r1, 0x11] cmp r0, 0x4 bne _0810139C ldr r5, _08101394 @ =gUnknown_020391B4 adds r0, r2, 0 adds r1, r5, 0 bl sub_8101118 lsls r1, r6, 24 lsrs r1, 24 adds r0, r7, 0 adds r2, r5, 0 bl sub_8101200 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bne _0810139C strb r6, [r5] bl sub_81012A0 ldr r0, _08101398 @ =gUnknown_02039234 strb r4, [r0] movs r0, 0x1 b _081013AC .align 2, 0 _08101390: .4byte gDecorations _08101394: .4byte gUnknown_020391B4 _08101398: .4byte gUnknown_02039234 _0810139C: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 _081013A2: ldr r0, _081013B4 @ =0x0201f000 ldrb r1, [r0, 0x8] cmp r6, r1 bcc _0810134A movs r0, 0 _081013AC: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _081013B4: .4byte 0x0201f000 thumb_func_end sub_8101340 thumb_func_start sub_81013B8 sub_81013B8: @ 81013B8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 str r0, [sp] lsls r1, 24 lsrs r1, 24 mov r10, r1 lsls r2, 24 lsrs r2, 24 mov r9, r2 lsls r3, 24 lsrs r3, 24 mov r8, r3 movs r4, 0 ldr r7, _08101450 @ =0x0201f000 ldrb r0, [r7, 0x8] cmp r4, r0 bcs _0810143E adds r6, r7, 0 ldr r5, _08101454 @ =gUnknown_02039234 _081013EA: ldr r0, [r6] adds r0, r4 ldrb r1, [r0] ldr r0, [r6, 0x4] adds r0, r4 ldrb r0, [r0] lsrs r3, r0, 4 movs r2, 0xF ands r2, r0 cmp r1, 0 beq _08101432 ldr r0, _08101458 @ =gDecorations lsls r1, 5 adds r1, r0 ldrb r0, [r1, 0x11] cmp r0, 0x4 bne _08101432 ldr r0, [sp] cmp r0, r3 bhi _08101432 cmp r10, r2 bhi _08101432 cmp r9, r3 bcc _08101432 cmp r8, r2 bcc _08101432 ldr r0, _0810145C @ =gUnknown_020391B4 ldrb r1, [r5] lsls r1, 3 adds r1, r0 strb r4, [r1] bl sub_81012A0 ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] _08101432: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldrb r0, [r7, 0x8] cmp r4, r0 bcc _081013EA _0810143E: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08101450: .4byte 0x0201f000 _08101454: .4byte gUnknown_02039234 _08101458: .4byte gDecorations _0810145C: .4byte gUnknown_020391B4 thumb_func_end sub_81013B8 thumb_func_start sub_8101460 sub_8101460: @ 8101460 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r4, _081014B8 @ =gUnknown_02039234 movs r0, 0 strb r0, [r4] adds r0, r6, 0 bl sub_8101340 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08101504 movs r5, 0 ldr r0, _081014BC @ =0x0201f000 ldrb r1, [r0, 0x8] cmp r5, r1 bcs _081014D2 adds r7, r4, 0 _08101486: ldr r0, [r0] adds r0, r5 ldrb r1, [r0] cmp r1, 0 beq _081014C4 ldr r4, _081014C0 @ =gUnknown_020391B4 adds r0, r1, 0 adds r1, r4, 0 bl sub_8101118 adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 bl sub_8101200 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081014C4 strb r5, [r4] ldrb r0, [r7] adds r0, 0x1 strb r0, [r7] b _081014D2 .align 2, 0 _081014B8: .4byte gUnknown_02039234 _081014BC: .4byte 0x0201f000 _081014C0: .4byte gUnknown_020391B4 _081014C4: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0810150C @ =0x0201f000 ldrb r1, [r0, 0x8] cmp r5, r1 bcc _08101486 _081014D2: ldr r0, _08101510 @ =gUnknown_02039234 ldrb r0, [r0] cmp r0, 0 beq _08101504 ldr r0, _0810150C @ =0x0201f000 ldr r2, _08101514 @ =gUnknown_020391B4 ldrb r1, [r2] ldr r0, [r0, 0x4] adds r0, r1 ldrb r1, [r0] lsrs r0, r1, 4 movs r3, 0xF ands r3, r1 ldrb r1, [r2, 0x2] subs r1, r3, r1 adds r1, 0x1 lsls r1, 24 lsrs r1, 24 ldrb r2, [r2, 0x1] adds r2, r0 subs r2, 0x1 lsls r2, 24 lsrs r2, 24 bl sub_81013B8 _08101504: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810150C: .4byte 0x0201f000 _08101510: .4byte gUnknown_02039234 _08101514: .4byte gUnknown_020391B4 thumb_func_end sub_8101460 thumb_func_start sub_8101518 sub_8101518: @ 8101518 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x14 movs r1, 0x8 movs r2, 0x1 bl DisplayYesNoMenu ldr r1, _08101538 @ =gUnknown_083EC9CC adds r0, r4, 0 bl sub_80F914C pop {r4} pop {r0} bx r0 .align 2, 0 _08101538: .4byte gUnknown_083EC9CC thumb_func_end sub_8101518 thumb_func_start sub_810153C sub_810153C: @ 810153C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 movs r1, 0 bl fade_screen ldr r1, _08101564 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xC] ldr r1, _08101568 @ =sub_8100C88 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08101564: .4byte gTasks _08101568: .4byte sub_8100C88 thumb_func_end sub_810153C thumb_func_start sub_810156C sub_810156C: @ 810156C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x14 movs r1, 0x8 movs r2, 0x1 bl DisplayYesNoMenu ldr r1, _0810158C @ =gUnknown_083EC9D4 adds r0, r4, 0 bl sub_80F914C pop {r4} pop {r0} bx r0 .align 2, 0 _0810158C: .4byte gUnknown_083EC9D4 thumb_func_end sub_810156C thumb_func_start sub_8101590 sub_8101590: @ 8101590 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect adds r0, r4, 0 bl sub_81015B0 pop {r4} pop {r0} bx r0 thumb_func_end sub_8101590 thumb_func_start sub_81015B0 sub_81015B0: @ 81015B0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 movs r1, 0 bl fade_screen ldr r1, _081015D8 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xC] ldr r1, _081015DC @ =sub_81015E0 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _081015D8: .4byte gTasks _081015DC: .4byte sub_81015E0 thumb_func_end sub_81015B0 thumb_func_start sub_81015E0 sub_81015E0: @ 81015E0 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08101600 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r5, r0, r1 movs r1, 0xC ldrsh r0, [r5, r1] cmp r0, 0 beq _08101604 cmp r0, 0x1 beq _08101620 b _08101636 .align 2, 0 _08101600: .4byte gTasks _08101604: ldr r0, _0810161C @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08101636 adds r0, r4, 0 bl sub_80FF114 movs r0, 0x1 strh r0, [r5, 0xC] b _08101636 .align 2, 0 _0810161C: .4byte gPaletteFade _08101620: bl sub_81016F4 ldr r0, _0810163C @ =gUnknown_0300485C ldr r1, _08101640 @ =sub_8101678 str r1, [r0] ldr r0, _08101644 @ =c2_exit_to_overworld_2_switch bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _08101636: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810163C: .4byte gUnknown_0300485C _08101640: .4byte sub_8101678 _08101644: .4byte c2_exit_to_overworld_2_switch thumb_func_end sub_81015E0 thumb_func_start sub_8101648 sub_8101648: @ 8101648 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_807D770 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08101668 ldr r0, _08101670 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08101674 @ =sub_80FE2EC str r0, [r1] _08101668: pop {r4} pop {r0} bx r0 .align 2, 0 _08101670: .4byte gTasks _08101674: .4byte sub_80FE2EC thumb_func_end sub_8101648 thumb_func_start sub_8101678 sub_8101678: @ 8101678 push {lr} bl pal_fill_black bl MenuDisplayMessageBox bl sub_80FE220 ldr r0, _08101694 @ =sub_8101648 movs r1, 0x8 bl CreateTask pop {r0} bx r0 .align 2, 0 _08101694: .4byte sub_8101648 thumb_func_end sub_8101678 thumb_func_start sub_8101698 sub_8101698: @ 8101698 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x2E] adds r0, 0x1 movs r1, 0x1F ands r0, r1 strh r0, [r2, 0x2E] cmp r0, 0xF ble _081016B8 adds r0, r2, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _081016C4 _081016B8: adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] _081016C4: pop {r0} bx r0 thumb_func_end sub_8101698 thumb_func_start sub_81016C8 sub_81016C8: @ 81016C8 push {lr} ldr r0, _081016DC @ =gSaveBlock2 ldrb r0, [r0, 0x8] cmp r0, 0 bne _081016E4 ldr r0, _081016E0 @ =gUnknown_083ECA5C bl LoadSpritePalette b _081016EA .align 2, 0 _081016DC: .4byte gSaveBlock2 _081016E0: .4byte gUnknown_083ECA5C _081016E4: ldr r0, _081016F0 @ =gUnknown_083ECA64 bl LoadSpritePalette _081016EA: pop {r0} bx r0 .align 2, 0 _081016F0: .4byte gUnknown_083ECA64 thumb_func_end sub_81016C8 thumb_func_start sub_81016F4 sub_81016F4: @ 81016F4 push {lr} movs r0, 0x8 bl FreeSpritePaletteByTag pop {r0} bx r0 thumb_func_end sub_81016F4 thumb_func_start sub_8101700 sub_8101700: @ 8101700 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81341D4 lsls r0, 24 cmp r0, 0 bne _08101728 ldr r1, _08101720 @ =gSecretBaseText_NoDecors ldr r2, _08101724 @ =sub_80FE428 adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField b _08101742 .align 2, 0 _08101720: .4byte gSecretBaseText_NoDecors _08101724: .4byte sub_80FE428 _08101728: ldr r1, _08101748 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r2, 0 movs r1, 0x1 strh r1, [r0, 0x1E] ldr r0, _0810174C @ =gUnknown_020388F6 strb r2, [r0] adds r0, r4, 0 bl sub_80FE5AC _08101742: pop {r4} pop {r0} bx r0 .align 2, 0 _08101748: .4byte gTasks _0810174C: .4byte gUnknown_020388F6 thumb_func_end sub_8101700 thumb_func_start unref_sub_8101750 unref_sub_8101750: @ 8101750 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81341D4 lsls r0, 24 cmp r0, 0 bne _08101778 ldr r1, _08101770 @ =gSecretBaseText_NoDecors ldr r2, _08101774 @ =sub_80FE428 adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField b _08101792 .align 2, 0 _08101770: .4byte gSecretBaseText_NoDecors _08101774: .4byte sub_80FE428 _08101778: ldr r1, _08101798 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r2, 0 movs r1, 0x2 strh r1, [r0, 0x1E] ldr r0, _0810179C @ =gUnknown_020388F6 strb r2, [r0] adds r0, r4, 0 bl sub_80FE5AC _08101792: pop {r4} pop {r0} bx r0 .align 2, 0 _08101798: .4byte gTasks _0810179C: .4byte gUnknown_020388F6 thumb_func_end unref_sub_8101750 thumb_func_start sub_81017A0 sub_81017A0: @ 81017A0 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 bl sub_80FEF74 bl sub_80FED1C bl sub_80FEFA4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08101808 ldr r0, _081017EC @ =gStringVar1 ldr r1, _081017F0 @ =gUnknown_020388F5 ldrb r2, [r1] ldr r1, _081017F4 @ =gUnknown_020388D0 ldr r1, [r1] adds r1, r2 ldrb r1, [r1] lsls r1, 5 ldr r2, _081017F8 @ =gDecorations + 0x1 adds r1, r2 bl StringCopy ldr r4, _081017FC @ =gStringVar4 ldr r1, _08101800 @ =gSecretBaseText_WillBeDiscarded adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, _08101804 @ =sub_8101824 adds r0, r5, 0 adds r1, r4, 0 movs r3, 0 bl DisplayItemMessageOnField b _08101814 .align 2, 0 _081017EC: .4byte gStringVar1 _081017F0: .4byte gUnknown_020388F5 _081017F4: .4byte gUnknown_020388D0 _081017F8: .4byte gDecorations + 0x1 _081017FC: .4byte gStringVar4 _08101800: .4byte gSecretBaseText_WillBeDiscarded _08101804: .4byte sub_8101824 _08101808: ldr r1, _0810181C @ =gSecretBaseText_DecorInUse ldr r2, _08101820 @ =sub_80FEFF4 adds r0, r5, 0 movs r3, 0 bl DisplayItemMessageOnField _08101814: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810181C: .4byte gSecretBaseText_DecorInUse _08101820: .4byte sub_80FEFF4 thumb_func_end sub_81017A0 thumb_func_start sub_8101824 sub_8101824: @ 8101824 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x14 movs r1, 0x8 movs r2, 0x1 bl DisplayYesNoMenu ldr r1, _08101844 @ =gUnknown_083ECAA0 adds r0, r4, 0 bl sub_80F914C pop {r4} pop {r0} bx r0 .align 2, 0 _08101844: .4byte gUnknown_083ECAA0 thumb_func_end sub_8101824 thumb_func_start sub_8101848 sub_8101848: @ 8101848 push {r4-r6,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x14 movs r1, 0x8 movs r2, 0x1A movs r3, 0xE bl MenuZeroFillWindowRect ldr r6, _08101890 @ =gUnknown_020388F5 ldrb r1, [r6] ldr r5, _08101894 @ =gUnknown_020388D0 ldr r0, [r5] adds r0, r1 ldrb r0, [r0] bl sub_8109A30 ldrb r1, [r6] ldr r0, [r5] adds r0, r1 movs r1, 0 strb r1, [r0] adds r0, r4, 0 bl sub_80FF098 ldr r1, _08101898 @ =gSecretBaseText_DecorThrownAway ldr r2, _0810189C @ =sub_80FEFF4 adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08101890: .4byte gUnknown_020388F5 _08101894: .4byte gUnknown_020388D0 _08101898: .4byte gSecretBaseText_DecorThrownAway _0810189C: .4byte sub_80FEFF4 thumb_func_end sub_8101848 thumb_func_start sub_81018A0 sub_81018A0: @ 81018A0 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_81019B0 ldr r0, _081018B4 @ =sub_81018B8 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _081018B4: .4byte sub_81018B8 thumb_func_end sub_81018A0 thumb_func_start sub_81018B8 sub_81018B8: @ 81018B8 push {lr} ldr r0, _081018D0 @ =gMain ldr r1, _081018D4 @ =0x0000043c adds r0, r1 ldrb r0, [r0] cmp r0, 0x6 bhi _0810194A lsls r0, 2 ldr r1, _081018D8 @ =_081018DC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081018D0: .4byte gMain _081018D4: .4byte 0x0000043c _081018D8: .4byte _081018DC .align 2, 0 _081018DC: .4byte _081018F8 .4byte _08101902 .4byte _08101908 .4byte _08101912 .4byte _08101918 .4byte _0810191E .4byte _08101938 _081018F8: bl sub_8101A28 bl sub_8101BA4 b _08101922 _08101902: bl sub_8101A8C b _08101922 _08101908: bl sub_8101AE0 bl sub_8101B04 b _08101922 _08101912: bl sub_8101C84 b _08101922 _08101918: bl sub_8101CA0 b _08101922 _0810191E: bl sub_8101CC0 _08101922: ldr r1, _08101930 @ =gMain ldr r0, _08101934 @ =0x0000043c adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0810194A .align 2, 0 _08101930: .4byte gMain _08101934: .4byte 0x0000043c _08101938: bl sub_8101CD4 bl sub_8101CEC bl sub_8101A44 ldr r0, _08101950 @ =sub_8101954 bl SetMainCallback2 _0810194A: pop {r0} bx r0 .align 2, 0 _08101950: .4byte sub_8101954 thumb_func_end sub_81018B8 thumb_func_start sub_8101954 sub_8101954: @ 8101954 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_8101954 thumb_func_start sub_810196C sub_810196C: @ 810196C push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer ldr r1, _081019A8 @ =REG_WIN0H ldr r2, _081019AC @ =0x02000000 adds r0, r2, 0 adds r0, 0x58 ldrh r0, [r0] strh r0, [r1] adds r1, 0x4 adds r0, r2, 0 adds r0, 0x5A ldrh r0, [r0] strh r0, [r1] adds r1, 0x4 adds r0, r2, 0 adds r0, 0x5C ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 adds r0, r2, 0 adds r0, 0x5E ldrh r0, [r0] strh r0, [r1] pop {r0} bx r0 .align 2, 0 _081019A8: .4byte REG_WIN0H _081019AC: .4byte 0x02000000 thumb_func_end sub_810196C thumb_func_start sub_81019B0 sub_81019B0: @ 81019B0 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _081019E4 @ =nullsub_67 movs r1, 0xFF bl CreateTask adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _081019E8 @ =gTasks adds r0, r1 strh r4, [r0, 0x8] adds r0, 0xA adds r1, r5, 0 bl StoreWordInTwoHalfwords pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081019E4: .4byte nullsub_67 _081019E8: .4byte gTasks thumb_func_end sub_81019B0 thumb_func_start sub_81019EC sub_81019EC: @ 81019EC push {lr} ldr r0, _08101A18 @ =nullsub_67 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 lsls r2, r0, 2 adds r2, r0 lsls r2, 3 ldr r0, _08101A1C @ =gTasks adds r2, r0 ldr r1, _08101A20 @ =0x02000000 ldrh r0, [r2, 0x8] strb r0, [r1, 0x1] adds r2, 0xA adds r1, 0x64 adds r0, r2, 0 bl LoadWordFromTwoHalfwords pop {r0} bx r0 .align 2, 0 _08101A18: .4byte nullsub_67 _08101A1C: .4byte gTasks _08101A20: .4byte 0x02000000 thumb_func_end sub_81019EC thumb_func_start nullsub_67 nullsub_67: @ 8101A24 bx lr thumb_func_end nullsub_67 thumb_func_start sub_8101A28 sub_8101A28: @ 8101A28 push {lr} movs r0, 0 bl SetVBlankCallback movs r0, 0 bl SetHBlankCallback movs r1, 0x80 lsls r1, 19 movs r0, 0 strh r0, [r1] pop {r0} bx r0 thumb_func_end sub_8101A28 thumb_func_start sub_8101A44 sub_8101A44: @ 8101A44 push {r4,lr} ldr r0, _08101A7C @ =sub_810196C bl SetVBlankCallback ldr r3, _08101A80 @ =0x04000208 ldrh r2, [r3] movs r0, 0 strh r0, [r3] ldr r4, _08101A84 @ =0x04000200 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _08101A88 @ =REG_DISPSTAT ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] movs r1, 0x80 lsls r1, 19 movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08101A7C: .4byte sub_810196C _08101A80: .4byte 0x04000208 _08101A84: .4byte 0x04000200 _08101A88: .4byte REG_DISPSTAT thumb_func_end sub_8101A44 thumb_func_start sub_8101A8C sub_8101A8C: @ 8101A8C push {r4-r7,lr} sub sp, 0x4 movs r2, 0xC0 lsls r2, 19 movs r3, 0x80 lsls r3, 9 mov r4, sp movs r6, 0 ldr r1, _08101AD8 @ =0x040000d4 movs r5, 0x80 lsls r5, 5 ldr r7, _08101ADC @ =0x81000800 movs r0, 0x81 lsls r0, 24 mov r12, r0 _08101AAA: strh r6, [r4] mov r0, sp str r0, [r1] str r2, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r5 subs r3, r5 cmp r3, r5 bhi _08101AAA strh r6, [r4] mov r0, sp str r0, [r1] str r2, [r1, 0x4] lsrs r0, r3, 1 mov r2, r12 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08101AD8: .4byte 0x040000d4 _08101ADC: .4byte 0x81000800 thumb_func_end sub_8101A8C thumb_func_start sub_8101AE0 sub_8101AE0: @ 8101AE0 sub sp, 0x4 movs r2, 0xE0 lsls r2, 19 mov r1, sp movs r0, 0 strh r0, [r1] ldr r0, _08101AFC @ =0x040000d4 str r1, [r0] str r2, [r0, 0x4] ldr r1, _08101B00 @ =0x81000200 str r1, [r0, 0x8] ldr r0, [r0, 0x8] add sp, 0x4 bx lr .align 2, 0 _08101AFC: .4byte 0x040000d4 _08101B00: .4byte 0x81000200 thumb_func_end sub_8101AE0 thumb_func_start sub_8101B04 sub_8101B04: @ 8101B04 push {r4,r5,lr} ldr r5, _08101B70 @ =REG_BG0CNT movs r1, 0 strh r1, [r5] ldr r2, _08101B74 @ =REG_BG1CNT strh r1, [r2] ldr r3, _08101B78 @ =REG_BG2CNT strh r1, [r3] ldr r4, _08101B7C @ =REG_BG3CNT strh r1, [r4] ldr r0, _08101B80 @ =REG_BG0HOFS strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r1, _08101B84 @ =0x00001f08 adds r0, r1, 0 strh r0, [r5] ldr r1, _08101B88 @ =0x00001c01 adds r0, r1, 0 strh r0, [r2] ldr r2, _08101B8C @ =0x00001d02 adds r0, r2, 0 strh r0, [r3] ldr r1, _08101B90 @ =0x00001e02 adds r0, r1, 0 strh r0, [r4] ldr r0, _08101B94 @ =REG_WININ movs r1, 0x3F strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r1, _08101B98 @ =REG_BLDCNT ldr r2, _08101B9C @ =0x00001048 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _08101BA0 @ =0x00000809 adds r0, r2, 0 strh r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08101B70: .4byte REG_BG0CNT _08101B74: .4byte REG_BG1CNT _08101B78: .4byte REG_BG2CNT _08101B7C: .4byte REG_BG3CNT _08101B80: .4byte REG_BG0HOFS _08101B84: .4byte 0x00001f08 _08101B88: .4byte 0x00001c01 _08101B8C: .4byte 0x00001d02 _08101B90: .4byte 0x00001e02 _08101B94: .4byte REG_WININ _08101B98: .4byte REG_BLDCNT _08101B9C: .4byte 0x00001048 _08101BA0: .4byte 0x00000809 thumb_func_end sub_8101B04 thumb_func_start sub_8101BA4 sub_8101BA4: @ 8101BA4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} bl sub_81019EC ldr r5, _08101C74 @ =0x02000000 movs r4, 0 strb r4, [r5] strb r4, [r5, 0x2] bl Random movs r1, 0x1 ands r1, r0 strb r1, [r5, 0x3] strb r4, [r5, 0x4] movs r0, 0 strh r4, [r5, 0x8] strb r0, [r5, 0xA] strb r0, [r5, 0xB] ldr r0, _08101C78 @ =gSaveBlock1 ldr r1, _08101C7C @ =0x00000494 adds r0, r1 ldrh r0, [r0] strh r0, [r5, 0xC] strh r4, [r5, 0xE] strh r4, [r5, 0x10] strh r4, [r5, 0x12] strh r4, [r5, 0x18] movs r0, 0x8 strh r0, [r5, 0x1A] adds r1, r5, 0 adds r1, 0x58 movs r0, 0xF0 strh r0, [r1] adds r1, 0x2 movs r0, 0xA0 strh r0, [r1] adds r0, r5, 0 adds r0, 0x5C movs r1, 0x3F strh r1, [r0] adds r0, 0x2 strh r1, [r0] bl GetCurrentMapMusic adds r1, r5, 0 adds r1, 0x60 strh r0, [r1] movs r7, 0 adds r6, r5, 0 ldr r2, _08101C80 @ =gUnknown_083ECCF8 mov r9, r2 movs r0, 0x1C adds r0, r6 mov r8, r0 _08101C14: lsls r5, r7, 1 adds r0, r6, 0 adds r0, 0x22 adds r0, r5, r0 movs r1, 0 strh r1, [r0] adds r4, r6, 0 adds r4, 0x28 adds r4, r5, r4 ldrb r0, [r6, 0x3] lsls r0, 1 lsls r1, r7, 2 adds r0, r1 add r0, r9 movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0x15 bl __modsi3 strh r0, [r4] add r5, r8 movs r2, 0 ldrsh r0, [r4, r2] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 movs r2, 0xFC lsls r2, 1 adds r0, r2, 0 subs r0, r1 strh r0, [r5] movs r1, 0 ldrsh r0, [r5, r1] adds r1, r2, 0 bl __modsi3 strh r0, [r5] adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x2 bls _08101C14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08101C74: .4byte 0x02000000 _08101C78: .4byte gSaveBlock1 _08101C7C: .4byte 0x00000494 _08101C80: .4byte gUnknown_083ECCF8 thumb_func_end sub_8101BA4 thumb_func_start sub_8101C84 sub_8101C84: @ 8101C84 push {r4,lr} ldr r4, _08101C9C @ =gWindowConfig_81E7128 adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl InitMenuWindow pop {r4} pop {r0} bx r0 .align 2, 0 _08101C9C: .4byte gWindowConfig_81E7128 thumb_func_end sub_8101C84 thumb_func_start sub_8101CA0 sub_8101CA0: @ 8101CA0 push {lr} bl ResetPaletteFade bl ResetSpriteData ldr r1, _08101CBC @ =gOamLimit movs r0, 0x80 strb r0, [r1] bl FreeAllSpritePalettes bl ResetTasks pop {r0} bx r0 .align 2, 0 _08101CBC: .4byte gOamLimit thumb_func_end sub_8101CA0 thumb_func_start sub_8101CC0 sub_8101CC0: @ 8101CC0 push {lr} bl sub_8106448 bl sub_81064B8 bl sub_81063C0 pop {r0} bx r0 thumb_func_end sub_8101CC0 thumb_func_start sub_8101CD4 sub_8101CD4: @ 8101CD4 push {lr} bl sub_8104EA8 bl sub_8104F8C bl sub_8103DC8 bl sub_81050C4 pop {r0} bx r0 thumb_func_end sub_8101CD4 thumb_func_start sub_8101CEC sub_8101CEC: @ 8101CEC push {lr} bl sub_8104048 bl sub_8102DA8 bl sub_8104C5C bl sub_8101D04 pop {r0} bx r0 thumb_func_end sub_8101CEC thumb_func_start sub_8101D04 sub_8101D04: @ 8101D04 push {r4,lr} ldr r4, _08101D20 @ =sub_8101D24 adds r0, r4, 0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 bl _call_via_r4 pop {r4} pop {r0} bx r0 .align 2, 0 _08101D20: .4byte sub_8101D24 thumb_func_end sub_8101D04 thumb_func_start sub_8101D24 sub_8101D24: @ 8101D24 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 ldr r7, _08101D50 @ =gUnknown_083ECAAC lsls r1, r0, 2 adds r1, r0 lsls r4, r1, 3 ldr r6, _08101D54 @ =0x02000000 ldr r5, _08101D58 @ =gTasks _08101D36: ldrb r0, [r6] lsls r0, 2 adds r0, r7 ldr r1, [r0] adds r0, r4, r5 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _08101D36 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08101D50: .4byte gUnknown_083ECAAC _08101D54: .4byte 0x02000000 _08101D58: .4byte gTasks thumb_func_end sub_8101D24 thumb_func_start sub_8101D5C sub_8101D5C: @ 8101D5C push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r4, _08101D88 @ =0x02000000 ldrb r0, [r4, 0x2] bl sub_810423C ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] movs r0, 0 add sp, 0x4 pop {r4} pop {r1} bx r1 .align 2, 0 _08101D88: .4byte 0x02000000 thumb_func_end sub_8101D5C thumb_func_start sub_8101D8C sub_8101D8C: @ 8101D8C push {lr} ldr r0, _08101DA8 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08101DA2 ldr r1, _08101DAC @ =0x02000000 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _08101DA2: movs r0, 0 pop {r1} bx r1 .align 2, 0 _08101DA8: .4byte gPaletteFade _08101DAC: .4byte 0x02000000 thumb_func_end sub_8101D8C thumb_func_start sub_8101DB0 sub_8101DB0: @ 8101DB0 push {lr} ldr r2, _08101DD8 @ =0x02000000 movs r0, 0 strh r0, [r2, 0xE] strh r0, [r2, 0x12] strh r0, [r2, 0x18] ldrb r1, [r2, 0x4] movs r0, 0xC0 ands r0, r1 strb r0, [r2, 0x4] movs r0, 0x4 strb r0, [r2] movs r1, 0xC ldrsh r0, [r2, r1] cmp r0, 0 bgt _08101DDC movs r0, 0x19 strb r0, [r2] b _08101DEC .align 2, 0 _08101DD8: .4byte 0x02000000 _08101DDC: ldrb r0, [r2, 0xA] cmp r0, 0 beq _08101DEC movs r0, 0x3 strb r0, [r2] movs r0, 0x4 bl sub_8104CAC _08101DEC: movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8101DB0 thumb_func_start sub_8101DF4 sub_8101DF4: @ 8101DF4 push {lr} bl sub_8104E18 lsls r0, 24 cmp r0, 0 beq _08101E06 ldr r1, _08101E0C @ =0x02000000 movs r0, 0x4 strb r0, [r1] _08101E06: movs r0, 0 pop {r1} bx r1 .align 2, 0 _08101E0C: .4byte 0x02000000 thumb_func_end sub_8101DF4 thumb_func_start sub_8101E10 sub_8101E10: @ 8101E10 push {lr} movs r0, 0 bl sub_8104CAC ldr r2, _08101E34 @ =0x02000000 movs r0, 0x5 strb r0, [r2] movs r0, 0xC ldrsh r1, [r2, r0] ldr r0, _08101E38 @ =0x0000270e cmp r1, r0 ble _08101E2C movs r0, 0x17 strb r0, [r2] _08101E2C: movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _08101E34: .4byte 0x02000000 _08101E38: .4byte 0x0000270e thumb_func_end sub_8101E10 thumb_func_start sub_8101E3C sub_8101E3C: @ 8101E3C push {r4,lr} ldr r0, _08101E58 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08101E60 movs r0, 0 bl sub_8104AB8 ldr r1, _08101E5C @ =0x02000000 movs r0, 0x8 strb r0, [r1] b _08101F1A .align 2, 0 _08101E58: .4byte gMain _08101E5C: .4byte 0x02000000 _08101E60: movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _08101EC2 ldr r2, _08101EB8 @ =0x02000000 movs r1, 0xC ldrsh r0, [r2, r1] subs r0, 0x3 movs r3, 0x12 ldrsh r1, [r2, r3] adds r0, r1 cmp r0, 0 blt _08101EBC ldrh r4, [r2, 0x12] adds r0, r1, 0 cmp r0, 0x2 bgt _08101E9C _08101E84: lsls r0, r4, 24 lsrs r0, 24 bl sub_8103D50 lsls r0, r4, 16 movs r2, 0x80 lsls r2, 9 adds r0, r2 lsrs r4, r0, 16 asrs r0, 16 cmp r0, 0x2 ble _08101E84 _08101E9C: ldr r1, _08101EB8 @ =0x02000000 ldrh r0, [r1, 0xC] subs r0, 0x3 ldrh r3, [r1, 0x12] adds r0, r3 strh r0, [r1, 0xC] movs r0, 0x3 strh r0, [r1, 0x12] movs r0, 0x9 strb r0, [r1] movs r0, 0x5F bl PlaySE b _08101F1A .align 2, 0 _08101EB8: .4byte 0x02000000 _08101EBC: movs r0, 0x6 strb r0, [r2] b _08101F1A _08101EC2: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08101EEC ldr r4, _08101F24 @ =0x02000000 movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0 beq _08101EEC movs r0, 0x5F bl PlaySE ldrb r0, [r4, 0x12] bl sub_8103D50 ldrh r0, [r4, 0xC] subs r0, 0x1 strh r0, [r4, 0xC] ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] _08101EEC: ldr r0, _08101F24 @ =0x02000000 movs r2, 0x12 ldrsh r1, [r0, r2] ldr r2, _08101F28 @ =gMain adds r3, r0, 0 cmp r1, 0x2 bgt _08101F08 cmp r1, 0 beq _08101F0C ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08101F0C _08101F08: movs r0, 0x9 strb r0, [r3] _08101F0C: ldrh r1, [r2, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08101F1A movs r0, 0x15 strb r0, [r3] _08101F1A: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08101F24: .4byte 0x02000000 _08101F28: .4byte gMain thumb_func_end sub_8101E3C thumb_func_start sub_8101F2C sub_8101F2C: @ 8101F2C push {r4,lr} adds r4, r0, 0 bl MenuDisplayMessageBox adds r0, r4, 0 movs r1, 0x2 movs r2, 0xF bl MenuPrint pop {r4} pop {r0} bx r0 thumb_func_end sub_8101F2C thumb_func_start sub_8101F44 sub_8101F44: @ 8101F44 push {lr} ldr r0, _08101F58 @ =gOtherText_DontHaveThreeCoins bl sub_8101F2C ldr r1, _08101F5C @ =0x02000000 movs r0, 0x7 strb r0, [r1] movs r0, 0 pop {r1} bx r1 .align 2, 0 _08101F58: .4byte gOtherText_DontHaveThreeCoins _08101F5C: .4byte 0x02000000 thumb_func_end sub_8101F44 thumb_func_start sub_8101F60 sub_8101F60: @ 8101F60 push {lr} ldr r0, _08101F80 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _08101F78 bl MenuZeroFillScreen ldr r1, _08101F84 @ =0x02000000 movs r0, 0x5 strb r0, [r1] _08101F78: movs r0, 0 pop {r1} bx r1 .align 2, 0 _08101F80: .4byte gMain _08101F84: .4byte 0x02000000 thumb_func_end sub_8101F60 thumb_func_start sub_8101F88 sub_8101F88: @ 8101F88 push {lr} bl sub_8104AEC lsls r0, 24 cmp r0, 0 beq _08101F9A ldr r1, _08101FA0 @ =0x02000000 movs r0, 0x5 strb r0, [r1] _08101F9A: movs r0, 0 pop {r1} bx r1 .align 2, 0 _08101FA0: .4byte 0x02000000 thumb_func_end sub_8101F88 thumb_func_start sub_8101FA4 sub_8101FA4: @ 8101FA4 push {r4,lr} adds r4, r0, 0 bl sub_8102484 bl sub_8104DA4 movs r0, 0 bl sub_8102DEC movs r0, 0x1 bl sub_8102DEC movs r0, 0x2 bl sub_8102DEC movs r0, 0 strh r0, [r4, 0x8] ldr r4, _08101FDC @ =0x02000000 ldrb r1, [r4, 0x4] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08101FE0 bl sub_810430C movs r0, 0xA b _08101FE8 .align 2, 0 _08101FDC: .4byte 0x02000000 _08101FE0: movs r0, 0x1 bl sub_8104CAC movs r0, 0xB _08101FE8: strb r0, [r4] ldr r4, _08102004 @ =0x02000000 movs r0, 0x8 strh r0, [r4, 0x1A] ldrb r0, [r4, 0xA] cmp r0, 0 beq _08101FFC bl dp15_jump_random_unknown strh r0, [r4, 0x1A] _08101FFC: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08102004: .4byte 0x02000000 thumb_func_end sub_8101FA4 thumb_func_start sub_8102008 sub_8102008: @ 8102008 push {lr} bl sub_810432C lsls r0, 24 cmp r0, 0 beq _08102028 movs r0, 0x1 bl sub_8104CAC ldr r1, _08102030 @ =0x02000000 ldrb r2, [r1, 0x4] movs r0, 0xDF ands r0, r2 strb r0, [r1, 0x4] movs r0, 0xB strb r0, [r1] _08102028: movs r0, 0 pop {r1} bx r1 .align 2, 0 _08102030: .4byte 0x02000000 thumb_func_end sub_8102008 thumb_func_start sub_8102034 sub_8102034: @ 8102034 push {lr} ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] lsls r1, 16 asrs r1, 16 cmp r1, 0x1D ble _0810204E bl sub_81024F0 ldr r1, _08102054 @ =0x02000000 movs r0, 0xC strb r0, [r1] _0810204E: movs r0, 0 pop {r1} bx r1 .align 2, 0 _08102054: .4byte 0x02000000 thumb_func_end sub_8102034 thumb_func_start sub_8102058 sub_8102058: @ 8102058 push {r4,lr} ldr r0, _08102088 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0810207E movs r0, 0x18 bl PlaySE ldr r4, _0810208C @ =0x02000000 ldrb r0, [r4, 0x18] bl sub_8102E1C ldrb r0, [r4, 0x18] bl sub_8103C14 movs r0, 0xD strb r0, [r4] _0810207E: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08102088: .4byte gMain _0810208C: .4byte 0x02000000 thumb_func_end sub_8102058 thumb_func_start sub_8102090 sub_8102090: @ 8102090 push {r4,lr} ldr r4, _081020BC @ =0x02000000 ldrb r0, [r4, 0x18] bl sub_8102E40 lsls r0, 24 cmp r0, 0 bne _081020C0 ldrh r0, [r4, 0x18] adds r0, 0x1 strh r0, [r4, 0x18] movs r1, 0xC strb r1, [r4] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _081020B6 movs r0, 0xE strb r0, [r4] _081020B6: movs r0, 0x1 b _081020C2 .align 2, 0 _081020BC: .4byte 0x02000000 _081020C0: movs r0, 0 _081020C2: pop {r4} pop {r1} bx r1 thumb_func_end sub_8102090 thumb_func_start sub_81020C8 sub_81020C8: @ 81020C8 push {r4,lr} ldr r4, _08102128 @ =0x02000000 ldrb r1, [r4, 0x4] movs r0, 0xC0 ands r0, r1 strb r0, [r4, 0x4] bl sub_81027A0 ldrb r0, [r4, 0xA] cmp r0, 0 beq _081020E8 subs r0, 0x1 strb r0, [r4, 0xA] ldrb r0, [r4, 0xB] adds r0, 0x1 strb r0, [r4, 0xB] _081020E8: ldrh r0, [r4, 0x8] cmp r0, 0 beq _081021B4 movs r0, 0xF strb r0, [r4] bl sub_8102A24 bl sub_8103F70 ldrh r0, [r4, 0x10] ldrh r1, [r4, 0xE] subs r0, r1 strh r0, [r4, 0x10] lsls r0, 16 cmp r0, 0 bge _0810210C movs r0, 0 strh r0, [r4, 0x10] _0810210C: ldrh r1, [r4, 0x8] movs r0, 0xC0 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _08102130 ldr r0, _0810212C @ =0x00000185 bl PlayFanfare movs r0, 0x6 bl sub_8104CAC b _0810215A .align 2, 0 _08102128: .4byte 0x02000000 _0810212C: .4byte 0x00000185 _08102130: movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0810214C ldr r0, _08102148 @ =0x00000185 bl PlayFanfare movs r0, 0x5 bl sub_8104CAC b _0810215A .align 2, 0 _08102148: .4byte 0x00000185 _0810214C: movs r0, 0xC3 lsls r0, 1 bl PlayFanfare movs r0, 0x2 bl sub_8104CAC _0810215A: ldr r1, _081021B0 @ =0x02000000 ldrh r3, [r1, 0x8] movs r0, 0xE0 lsls r0, 1 ands r0, r3 adds r2, r1, 0 cmp r0, 0 beq _08102192 ldrb r1, [r2, 0x4] movs r0, 0x3F ands r0, r1 movs r1, 0 strb r0, [r2, 0x4] movs r0, 0xC0 lsls r0, 1 ands r0, r3 cmp r0, 0 beq _08102192 strb r1, [r2, 0xA] strb r1, [r2, 0xB] strb r1, [r2, 0x3] movs r0, 0x80 lsls r0, 1 ands r0, r3 cmp r0, 0 beq _08102192 movs r0, 0x1 strb r0, [r2, 0x3] _08102192: ldrh r1, [r2, 0x8] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _081021D2 ldrb r0, [r2, 0x2] cmp r0, 0xF bhi _081021D2 adds r0, 0x1 strb r0, [r2, 0x2] ldrb r0, [r2, 0x2] bl sub_8104064 b _081021D2 .align 2, 0 _081021B0: .4byte 0x02000000 _081021B4: movs r0, 0x3 bl sub_8104CAC movs r0, 0x14 strb r0, [r4] ldrh r0, [r4, 0x12] ldrh r1, [r4, 0x10] adds r0, r1 strh r0, [r4, 0x10] lsls r0, 16 asrs r0, 16 ldr r1, _081021DC @ =0x0000270f cmp r0, r1 ble _081021D2 strh r1, [r4, 0x10] _081021D2: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _081021DC: .4byte 0x0000270f thumb_func_end sub_81020C8 thumb_func_start sub_81021E0 sub_81021E0: @ 81021E0 push {lr} bl sub_8102A44 lsls r0, 24 cmp r0, 0 beq _081021F2 ldr r1, _081021F8 @ =0x02000000 movs r0, 0x10 strb r0, [r1] _081021F2: movs r0, 0 pop {r1} bx r1 .align 2, 0 _081021F8: .4byte 0x02000000 thumb_func_end sub_81021E0 thumb_func_start sub_81021FC sub_81021FC: @ 81021FC push {r4,lr} bl sub_8103FA0 lsls r0, 24 cmp r0, 0 beq _08102256 ldr r4, _08102260 @ =0x02000000 movs r0, 0x13 strb r0, [r4] ldrh r1, [r4, 0x8] movs r0, 0xC0 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _08102220 movs r0, 0x1C bl sav12_xor_increment _08102220: ldrh r1, [r4, 0x8] movs r0, 0x4 ands r0, r1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0 beq _08102236 movs r0, 0 strh r0, [r4, 0x18] movs r0, 0x9 strb r0, [r4] _08102236: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08102242 movs r0, 0x11 strb r0, [r4] _08102242: ldrb r0, [r4, 0xA] cmp r0, 0 beq _08102256 cmp r2, 0 beq _08102256 movs r0, 0x4 bl sub_8104CAC movs r0, 0x12 strb r0, [r4] _08102256: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08102260: .4byte 0x02000000 thumb_func_end sub_81021FC thumb_func_start sub_8102264 sub_8102264: @ 8102264 push {r4,lr} bl sub_81040C8 lsls r0, 24 cmp r0, 0 bne _08102294 ldr r4, _0810229C @ =0x02000000 movs r0, 0x13 strb r0, [r4] ldrh r1, [r4, 0x8] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08102294 movs r0, 0x9 strb r0, [r4] ldrb r0, [r4, 0xA] cmp r0, 0 beq _08102294 movs r0, 0x4 bl sub_8104CAC movs r0, 0x12 strb r0, [r4] _08102294: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0810229C: .4byte 0x02000000 thumb_func_end sub_8102264 thumb_func_start sub_81022A0 sub_81022A0: @ 81022A0 push {lr} bl sub_8104E18 lsls r0, 24 cmp r0, 0 beq _081022C0 ldr r2, _081022C8 @ =0x02000000 movs r0, 0x13 strb r0, [r2] ldrh r1, [r2, 0x8] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _081022C0 movs r0, 0x9 strb r0, [r2] _081022C0: movs r0, 0 pop {r1} bx r1 .align 2, 0 _081022C8: .4byte 0x02000000 thumb_func_end sub_81022A0 thumb_func_start sub_81022CC sub_81022CC: @ 81022CC push {lr} movs r0, 0 bl sub_8103D8C movs r0, 0x1 bl sub_8103D8C movs r0, 0x2 bl sub_8103D8C ldr r1, _081022EC @ =0x02000000 movs r0, 0x2 strb r0, [r1] movs r0, 0 pop {r1} bx r1 .align 2, 0 _081022EC: .4byte 0x02000000 thumb_func_end sub_81022CC thumb_func_start sub_81022F0 sub_81022F0: @ 81022F0 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0xA] adds r0, 0x1 strh r0, [r1, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x40 ble _0810230C movs r0, 0 strh r0, [r1, 0xA] ldr r1, _08102314 @ =0x02000000 movs r0, 0x13 strb r0, [r1] _0810230C: movs r0, 0 pop {r1} bx r1 .align 2, 0 _08102314: .4byte 0x02000000 thumb_func_end sub_81022F0 thumb_func_start sub_8102318 sub_8102318: @ 8102318 push {lr} ldr r0, _0810233C @ =gOtherText_QuitGamePrompt bl sub_8101F2C movs r0, 0x15 movs r1, 0x7 movs r2, 0x1 bl DisplayYesNoMenu bl sub_814AB84 ldr r1, _08102340 @ =0x02000000 movs r0, 0x16 strb r0, [r1] movs r0, 0 pop {r1} bx r1 .align 2, 0 _0810233C: .4byte gOtherText_QuitGamePrompt _08102340: .4byte 0x02000000 thumb_func_end sub_8102318 thumb_func_start sub_8102344 sub_8102344: @ 8102344 push {lr} bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 bne _0810237C bl MenuZeroFillScreen movs r0, 0 bl sub_8103D8C movs r0, 0x1 bl sub_8103D8C movs r0, 0x2 bl sub_8103D8C ldr r0, _08102378 @ =0x02000000 ldrh r1, [r0, 0x12] ldrh r2, [r0, 0xC] adds r1, r2 strh r1, [r0, 0xC] movs r1, 0x1B strb r1, [r0] b _08102392 .align 2, 0 _08102378: .4byte 0x02000000 _0810237C: cmp r1, 0x1 beq _08102388 movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _08102392 _08102388: bl MenuZeroFillScreen ldr r1, _08102398 @ =0x02000000 movs r0, 0x5 strb r0, [r1] _08102392: movs r0, 0 pop {r1} bx r1 .align 2, 0 _08102398: .4byte 0x02000000 thumb_func_end sub_8102344 thumb_func_start sub_810239C sub_810239C: @ 810239C push {lr} ldr r0, _081023B0 @ =gOtherText_MaxCoins bl sub_8101F2C ldr r1, _081023B4 @ =0x02000000 movs r0, 0x18 strb r0, [r1] movs r0, 0 pop {r1} bx r1 .align 2, 0 _081023B0: .4byte gOtherText_MaxCoins _081023B4: .4byte 0x02000000 thumb_func_end sub_810239C thumb_func_start sub_81023B8 sub_81023B8: @ 81023B8 push {lr} ldr r0, _081023D8 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _081023D0 bl MenuZeroFillScreen ldr r1, _081023DC @ =0x02000000 movs r0, 0x5 strb r0, [r1] _081023D0: movs r0, 0 pop {r1} bx r1 .align 2, 0 _081023D8: .4byte gMain _081023DC: .4byte 0x02000000 thumb_func_end sub_81023B8 thumb_func_start sub_81023E0 sub_81023E0: @ 81023E0 push {lr} ldr r0, _081023F4 @ =gOtherText_OutOfCoins bl sub_8101F2C ldr r1, _081023F8 @ =0x02000000 movs r0, 0x1A strb r0, [r1] movs r0, 0 pop {r1} bx r1 .align 2, 0 _081023F4: .4byte gOtherText_OutOfCoins _081023F8: .4byte 0x02000000 thumb_func_end sub_81023E0 thumb_func_start sub_81023FC sub_81023FC: @ 81023FC push {lr} ldr r0, _0810241C @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _08102414 bl MenuZeroFillScreen ldr r1, _08102420 @ =0x02000000 movs r0, 0x1B strb r0, [r1] _08102414: movs r0, 0 pop {r1} bx r1 .align 2, 0 _0810241C: .4byte gMain _08102420: .4byte 0x02000000 thumb_func_end sub_81023FC thumb_func_start sub_8102424 sub_8102424: @ 8102424 push {r4,lr} sub sp, 0x4 ldr r0, _08102454 @ =gSaveBlock1 ldr r4, _08102458 @ =0x02000000 ldrh r1, [r4, 0xC] ldr r2, _0810245C @ =0x00000494 adds r0, r2 movs r2, 0 strh r1, [r0] movs r0, 0x1 negs r0, r0 str r2, [sp] movs r1, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] movs r0, 0 add sp, 0x4 pop {r4} pop {r1} bx r1 .align 2, 0 _08102454: .4byte gSaveBlock1 _08102458: .4byte 0x02000000 _0810245C: .4byte 0x00000494 thumb_func_end sub_8102424 thumb_func_start sub_8102460 sub_8102460: @ 8102460 push {lr} ldr r0, _0810247C @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08102476 ldr r0, _08102480 @ =0x02000000 ldr r0, [r0, 0x64] bl SetMainCallback2 _08102476: movs r0, 0 pop {r1} bx r1 .align 2, 0 _0810247C: .4byte gPaletteFade _08102480: .4byte 0x02000000 thumb_func_end sub_8102460 thumb_func_start sub_8102484 sub_8102484: @ 8102484 push {r4,lr} ldr r4, _081024E4 @ =0x02000000 ldrb r0, [r4, 0xA] cmp r0, 0 bne _081024DC ldrb r1, [r4, 0x4] movs r0, 0xC0 ands r0, r1 cmp r0, 0 bne _081024DC bl sub_8102540 lsls r0, 24 cmp r0, 0 beq _081024C0 bl sub_8102578 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 beq _081024C0 ldr r1, _081024E8 @ =gUnknown_083ECE42 lsls r0, r3, 1 adds r0, r1 ldrb r1, [r0] ldrb r0, [r4, 0x4] orrs r0, r1 strb r0, [r4, 0x4] cmp r3, 0x1 bne _081024DC _081024C0: bl sub_81025BC lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x5 beq _081024DC ldr r2, _081024E4 @ =0x02000000 ldr r1, _081024EC @ =gUnknown_083ECE48 lsls r0, r3, 1 adds r0, r1 ldrb r1, [r0] ldrb r0, [r2, 0x4] orrs r0, r1 strb r0, [r2, 0x4] _081024DC: pop {r4} pop {r0} bx r0 .align 2, 0 _081024E4: .4byte 0x02000000 _081024E8: .4byte gUnknown_083ECE42 _081024EC: .4byte gUnknown_083ECE48 thumb_func_end sub_8102484 thumb_func_start sub_81024F0 sub_81024F0: @ 81024F0 push {lr} ldr r1, _08102508 @ =0x02000000 movs r0, 0 strb r0, [r1, 0x6] ldrb r0, [r1, 0x4] cmp r0, 0 beq _08102502 movs r0, 0x1 strb r0, [r1, 0x6] _08102502: pop {r0} bx r0 .align 2, 0 _08102508: .4byte 0x02000000 thumb_func_end sub_81024F0 thumb_func_start sub_810250C sub_810250C: @ 810250C push {r4,lr} lsls r0, 24 lsrs r1, r0, 24 movs r2, 0 movs r3, 0x1 ldr r4, _08102528 @ =gUnknown_083ECE3A _08102518: adds r0, r1, 0 ands r0, r3 cmp r0, 0 beq _0810252C adds r0, r2, r4 ldrb r0, [r0] b _0810253A .align 2, 0 _08102528: .4byte gUnknown_083ECE3A _0810252C: lsrs r1, 1 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x7 bls _08102518 movs r0, 0 _0810253A: pop {r4} pop {r1} bx r1 thumb_func_end sub_810250C thumb_func_start sub_8102540 sub_8102540: @ 8102540 push {r4,lr} bl Random lsls r0, 24 lsrs r0, 24 ldr r4, _08102568 @ =gUnknown_083ECD04 ldr r1, _0810256C @ =0x02000000 movs r3, 0x12 ldrsh r2, [r1, r3] ldrb r3, [r1, 0x1] lsls r1, r3, 1 adds r1, r3 subs r1, 0x1 adds r2, r1 adds r2, r4 ldrb r1, [r2] cmp r1, r0 bhi _08102570 movs r0, 0 b _08102572 .align 2, 0 _08102568: .4byte gUnknown_083ECD04 _0810256C: .4byte 0x02000000 _08102570: movs r0, 0x1 _08102572: pop {r4} pop {r1} bx r1 thumb_func_end sub_8102540 thumb_func_start sub_8102578 sub_8102578: @ 8102578 push {r4-r6,lr} movs r5, 0 ldr r6, _081025B4 @ =gUnknown_083ECD16 _0810257E: bl Random movs r2, 0xFF ldr r3, _081025B8 @ =0x02000000 lsls r1, r5, 16 asrs r4, r1, 16 lsls r1, r4, 1 adds r1, r4 lsls r1, 1 ldrb r3, [r3, 0x1] adds r1, r3 adds r1, r6 ldrb r1, [r1] ands r2, r0 cmp r1, r2 bgt _081025AA adds r0, r4, 0x1 lsls r0, 16 lsrs r5, r0, 16 asrs r0, 16 cmp r0, 0x2 ble _0810257E _081025AA: lsls r0, r5, 24 lsrs r0, 24 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _081025B4: .4byte gUnknown_083ECD16 _081025B8: .4byte 0x02000000 thumb_func_end sub_8102578 thumb_func_start sub_81025BC sub_81025BC: @ 81025BC push {r4-r7,lr} mov r7, r8 push {r7} movs r6, 0 ldr r0, _08102600 @ =gUnknown_083ECD28 mov r8, r0 ldr r5, _08102604 @ =0x02000000 movs r7, 0x80 lsls r7, 17 _081025CE: bl Random movs r4, 0xFF ands r4, r0 lsls r2, r6, 16 asrs r1, r2, 16 lsls r0, r1, 1 adds r0, r1 lsls r0, 1 ldrb r3, [r5, 0x1] adds r0, r3 add r0, r8 ldrb r3, [r0] cmp r1, 0 bne _08102608 ldrb r0, [r5, 0x3] cmp r0, 0x1 bne _08102608 adds r3, 0xA asrs r0, r7, 16 cmp r3, r0 ble _08102622 adds r3, r0, 0 b _08102622 .align 2, 0 _08102600: .4byte gUnknown_083ECD28 _08102604: .4byte 0x02000000 _08102608: asrs r0, r2, 16 cmp r0, 0x4 bne _08102622 ldrb r0, [r5, 0x3] cmp r0, 0x1 bne _08102622 lsls r0, r3, 16 ldr r1, _08102648 @ =0xfff60000 adds r0, r1 lsrs r3, r0, 16 cmp r0, 0 bge _08102622 movs r3, 0 _08102622: lsls r0, r3, 16 asrs r0, 16 cmp r0, r4 bgt _08102638 movs r3, 0x80 lsls r3, 9 adds r0, r2, r3 lsrs r6, r0, 16 asrs r0, 16 cmp r0, 0x4 ble _081025CE _08102638: lsls r0, r6, 24 lsrs r0, 24 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08102648: .4byte 0xfff60000 thumb_func_end sub_81025BC thumb_func_start sub_810264C sub_810264C: @ 810264C push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r3, _08102660 @ =0x02000000 ldrb r0, [r3, 0x3] cmp r0, 0 beq _08102668 ldr r0, _08102664 @ =gUnknown_083ECDAC b _0810266A .align 2, 0 _08102660: .4byte 0x02000000 _08102664: .4byte gUnknown_083ECDAC _08102668: ldr r0, _0810267C @ =gUnknown_083ECD46 _0810266A: lsls r1, r2, 4 adds r1, r2 ldrb r3, [r3, 0x2] adds r1, r3 adds r1, r0 ldrb r0, [r1] pop {r1} bx r1 .align 2, 0 _0810267C: .4byte gUnknown_083ECD46 thumb_func_end sub_810264C thumb_func_start sub_8102680 sub_8102680: @ 8102680 push {r4-r6,lr} ldr r1, _081026A4 @ =0x02000000 movs r0, 0 strb r0, [r1, 0x5] bl Random lsls r0, 24 lsrs r4, r0, 24 movs r0, 0 bl sub_810264C lsls r0, 24 lsrs r0, 24 cmp r4, r0 bcc _081026D2 movs r6, 0x5 b _081026AE .align 2, 0 _081026A4: .4byte 0x02000000 _081026A8: subs r0, r5, 0x1 lsls r0, 16 lsrs r6, r0, 16 _081026AE: lsls r0, r6, 16 asrs r5, r0, 16 cmp r5, 0 ble _081026CE bl Random lsls r0, 24 lsrs r4, r0, 24 lsls r0, r6, 24 lsrs r0, 24 bl sub_810264C lsls r0, 24 lsrs r0, 24 cmp r4, r0 bcs _081026A8 _081026CE: ldr r0, _081026D8 @ =0x02000000 strb r6, [r0, 0x5] _081026D2: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081026D8: .4byte 0x02000000 thumb_func_end sub_8102680 thumb_func_start sub_81026DC sub_81026DC: @ 81026DC push {r4,lr} adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 bl Random movs r1, 0xFF ands r1, r0 ldr r0, _081026FC @ =gUnknown_083ECE12 lsls r4, 1 adds r4, r0 ldrh r4, [r4] cmp r1, r4 bcc _08102700 movs r0, 0 b _08102702 .align 2, 0 _081026FC: .4byte gUnknown_083ECE12 _08102700: movs r0, 0x1 _08102702: pop {r4} pop {r1} bx r1 thumb_func_end sub_81026DC thumb_func_start dp15_jump_random_unknown dp15_jump_random_unknown: @ 8102708 push {r4,r5,lr} movs r4, 0 ldr r0, _0810271C @ =0x02000000 movs r2, 0x10 ldrsh r1, [r0, r2] ldr r0, _08102720 @ =0x0000012b cmp r1, r0 ble _08102724 movs r4, 0x4 b _0810273A .align 2, 0 _0810271C: .4byte 0x02000000 _08102720: .4byte 0x0000012b _08102724: cmp r1, 0xF9 ble _0810272C movs r4, 0x3 b _0810273A _0810272C: cmp r1, 0xC7 ble _08102734 movs r4, 0x2 b _0810273A _08102734: cmp r1, 0x95 ble _0810273A movs r4, 0x1 _0810273A: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 24 lsrs r1, r0, 24 ldr r5, _0810275C @ =gUnknown_083ECE1C lsls r4, 2 adds r0, r4, r5 ldrb r0, [r0] cmp r1, r0 bcs _08102760 movs r0, 0x4 b _0810279A .align 2, 0 _0810275C: .4byte gUnknown_083ECE1C _08102760: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 24 adds r2, r5, 0x2 adds r2, r4, r2 ldr r3, _08102790 @ =gUnknown_083ECE30 ldr r1, _08102794 @ =0x02000000 ldrb r1, [r1, 0xB] lsls r1, 1 adds r1, r3 ldrb r1, [r1] ldrb r2, [r2] adds r1, r2 lsls r1, 24 cmp r0, r1 bcc _08102798 movs r0, 0x8 b _0810279A .align 2, 0 _08102790: .4byte gUnknown_083ECE30 _08102794: .4byte 0x02000000 _08102798: movs r0, 0x2 _0810279A: pop {r4,r5} pop {r1} bx r1 thumb_func_end dp15_jump_random_unknown thumb_func_start sub_81027A0 sub_81027A0: @ 81027A0 push {r4,lr} ldr r4, _081027CC @ =0x02000000 movs r0, 0 strh r0, [r4, 0x8] bl sub_81027D0 movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0x1 ble _081027B8 bl sub_8102840 _081027B8: movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0x2 ble _081027C4 bl sub_810290C _081027C4: pop {r4} pop {r0} bx r0 .align 2, 0 _081027CC: .4byte 0x02000000 thumb_func_end sub_81027A0 thumb_func_start sub_81027D0 sub_81027D0: @ 81027D0 push {r4,r5,lr} movs r0, 0 movs r1, 0x2 bl sub_8102BA4 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 movs r0, 0x1 movs r1, 0x2 bl sub_8102BA4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x2 movs r1, 0x2 bl sub_8102BA4 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r5, 0 adds r1, r4, 0 bl sub_81029D4 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x9 beq _0810282E ldr r2, _08102834 @ =0x02000000 ldr r0, _08102838 @ =gUnknown_083ECE6C lsls r1, 1 adds r0, r1, r0 ldrh r0, [r0] ldrh r3, [r2, 0xE] adds r0, r3 strh r0, [r2, 0xE] ldr r0, _0810283C @ =gUnknown_083ECE5A adds r1, r0 ldrh r0, [r2, 0x8] ldrh r1, [r1] orrs r0, r1 strh r0, [r2, 0x8] movs r0, 0 bl sub_8103E04 _0810282E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08102834: .4byte 0x02000000 _08102838: .4byte gUnknown_083ECE6C _0810283C: .4byte gUnknown_083ECE5A thumb_func_end sub_81027D0 thumb_func_start sub_8102840 sub_8102840: @ 8102840 push {r4,r5,lr} movs r0, 0 movs r1, 0x1 bl sub_8102BA4 lsls r0, 24 lsrs r5, r0, 24 movs r0, 0x1 movs r1, 0x1 bl sub_8102BA4 lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x2 movs r1, 0x1 bl sub_8102BA4 lsls r0, 24 lsrs r2, r0, 24 adds r0, r5, 0 adds r1, r4, 0 bl sub_81029D4 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x9 beq _0810289E cmp r1, 0 bne _0810287C movs r1, 0x1 _0810287C: ldr r2, _08102900 @ =0x02000000 ldr r0, _08102904 @ =gUnknown_083ECE6C lsls r1, 1 adds r0, r1, r0 ldrh r0, [r0] ldrh r3, [r2, 0xE] adds r0, r3 strh r0, [r2, 0xE] ldr r0, _08102908 @ =gUnknown_083ECE5A adds r1, r0 ldrh r0, [r2, 0x8] ldrh r1, [r1] orrs r0, r1 strh r0, [r2, 0x8] movs r0, 0x1 bl sub_8103E04 _0810289E: movs r0, 0 movs r1, 0x3 bl sub_8102BA4 lsls r0, 24 lsrs r5, r0, 24 movs r0, 0x1 movs r1, 0x3 bl sub_8102BA4 lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x2 movs r1, 0x3 bl sub_8102BA4 lsls r0, 24 lsrs r2, r0, 24 adds r0, r5, 0 adds r1, r4, 0 bl sub_81029D4 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x9 beq _081028FA cmp r1, 0 bne _081028D8 movs r1, 0x1 _081028D8: ldr r2, _08102900 @ =0x02000000 ldr r0, _08102904 @ =gUnknown_083ECE6C lsls r1, 1 adds r0, r1, r0 ldrh r0, [r0] ldrh r3, [r2, 0xE] adds r0, r3 strh r0, [r2, 0xE] ldr r0, _08102908 @ =gUnknown_083ECE5A adds r1, r0 ldrh r0, [r2, 0x8] ldrh r1, [r1] orrs r0, r1 strh r0, [r2, 0x8] movs r0, 0x2 bl sub_8103E04 _081028FA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08102900: .4byte 0x02000000 _08102904: .4byte gUnknown_083ECE6C _08102908: .4byte gUnknown_083ECE5A thumb_func_end sub_8102840 thumb_func_start sub_810290C sub_810290C: @ 810290C push {r4,r5,lr} movs r0, 0 movs r1, 0x1 bl sub_8102BA4 lsls r0, 24 lsrs r5, r0, 24 movs r0, 0x1 movs r1, 0x2 bl sub_8102BA4 lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x2 movs r1, 0x3 bl sub_8102BA4 lsls r0, 24 lsrs r2, r0, 24 adds r0, r5, 0 adds r1, r4, 0 bl sub_81029D4 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x9 beq _08102968 cmp r1, 0 beq _08102962 ldr r2, _081029C8 @ =0x02000000 ldr r0, _081029CC @ =gUnknown_083ECE6C lsls r1, 1 adds r0, r1, r0 ldrh r0, [r0] ldrh r3, [r2, 0xE] adds r0, r3 strh r0, [r2, 0xE] ldr r0, _081029D0 @ =gUnknown_083ECE5A adds r1, r0 ldrh r0, [r2, 0x8] ldrh r1, [r1] orrs r0, r1 strh r0, [r2, 0x8] _08102962: movs r0, 0x3 bl sub_8103E04 _08102968: movs r0, 0 movs r1, 0x3 bl sub_8102BA4 lsls r0, 24 lsrs r5, r0, 24 movs r0, 0x1 movs r1, 0x2 bl sub_8102BA4 lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x2 movs r1, 0x1 bl sub_8102BA4 lsls r0, 24 lsrs r2, r0, 24 adds r0, r5, 0 adds r1, r4, 0 bl sub_81029D4 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x9 beq _081029C2 cmp r1, 0 beq _081029BC ldr r2, _081029C8 @ =0x02000000 ldr r0, _081029CC @ =gUnknown_083ECE6C lsls r1, 1 adds r0, r1, r0 ldrh r0, [r0] ldrh r3, [r2, 0xE] adds r0, r3 strh r0, [r2, 0xE] ldr r0, _081029D0 @ =gUnknown_083ECE5A adds r1, r0 ldrh r0, [r2, 0x8] ldrh r1, [r1] orrs r0, r1 strh r0, [r2, 0x8] _081029BC: movs r0, 0x4 bl sub_8103E04 _081029C2: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081029C8: .4byte 0x02000000 _081029CC: .4byte gUnknown_083ECE6C _081029D0: .4byte gUnknown_083ECE5A thumb_func_end sub_810290C thumb_func_start sub_81029D4 sub_81029D4: @ 81029D4 push {lr} lsls r0, 24 lsrs r3, r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 cmp r3, r1 bne _081029F8 cmp r3, r2 bne _081029F8 ldr r0, _081029F4 @ =gUnknown_083ECE52 adds r0, r3, r0 ldrb r0, [r0] b _08102A1E .align 2, 0 _081029F4: .4byte gUnknown_083ECE52 _081029F8: cmp r3, 0 bne _08102A04 cmp r1, 0 bne _08102A04 cmp r2, 0x1 beq _08102A10 _08102A04: cmp r3, 0x1 bne _08102A14 cmp r1, 0x1 bne _08102A14 cmp r2, 0 bne _08102A14 _08102A10: movs r0, 0x6 b _08102A1E _08102A14: cmp r3, 0x4 beq _08102A1C movs r0, 0x9 b _08102A1E _08102A1C: movs r0, 0 _08102A1E: pop {r1} bx r1 thumb_func_end sub_81029D4 thumb_func_start sub_8102A24 sub_8102A24: @ 8102A24 push {r4,lr} ldr r4, _08102A40 @ =sub_8102A64 adds r0, r4, 0 movs r1, 0x4 bl CreateTask lsls r0, 24 lsrs r0, 24 bl _call_via_r4 pop {r4} pop {r0} bx r0 .align 2, 0 _08102A40: .4byte sub_8102A64 thumb_func_end sub_8102A24 thumb_func_start sub_8102A44 sub_8102A44: @ 8102A44 push {lr} ldr r0, _08102A58 @ =sub_8102A64 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _08102A5C movs r0, 0 b _08102A5E .align 2, 0 _08102A58: .4byte sub_8102A64 _08102A5C: movs r0, 0x1 _08102A5E: pop {r1} bx r1 thumb_func_end sub_8102A44 thumb_func_start sub_8102A64 sub_8102A64: @ 8102A64 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _08102A94 @ =gUnknown_083ECB20 ldr r2, _08102A98 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _08102A76: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _08102A76 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08102A94: .4byte gUnknown_083ECB20 _08102A98: .4byte gTasks thumb_func_end sub_8102A64 thumb_func_start sub_8102A9C sub_8102A9C: @ 8102A9C push {r4,lr} adds r4, r0, 0 bl sub_8103E38 lsls r0, 24 cmp r0, 0 beq _08102AC8 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] ldr r0, _08102AC4 @ =0x02000000 movs r1, 0xE ldrsh r0, [r0, r1] cmp r0, 0 bne _08102AC8 movs r0, 0x2 strh r0, [r4, 0x8] movs r0, 0x1 b _08102ACA .align 2, 0 _08102AC4: .4byte 0x02000000 _08102AC8: movs r0, 0 _08102ACA: pop {r4} pop {r1} bx r1 thumb_func_end sub_8102A9C thumb_func_start sub_8102AD0 sub_8102AD0: @ 8102AD0 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0xA] subs r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _08102B22 bl IsFanfareTaskInactive lsls r0, 24 cmp r0, 0 beq _08102AF6 movs r0, 0x15 bl PlaySE _08102AF6: ldr r2, _08102B70 @ =0x02000000 ldrh r0, [r2, 0xE] subs r0, 0x1 strh r0, [r2, 0xE] ldrh r3, [r2, 0xC] movs r0, 0xC ldrsh r1, [r2, r0] ldr r0, _08102B74 @ =0x0000270e cmp r1, r0 bgt _08102B0E adds r0, r3, 0x1 strh r0, [r2, 0xC] _08102B0E: movs r0, 0x8 strh r0, [r4, 0xA] ldr r0, _08102B78 @ =gMain ldrh r1, [r0, 0x2C] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08102B22 movs r0, 0x4 strh r0, [r4, 0xA] _08102B22: bl IsFanfareTaskInactive lsls r0, 24 cmp r0, 0 beq _08102B58 ldr r0, _08102B78 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08102B58 movs r0, 0x15 bl PlaySE ldr r1, _08102B70 @ =0x02000000 ldrh r0, [r1, 0xE] ldrh r2, [r1, 0xC] adds r0, r2 strh r0, [r1, 0xC] lsls r0, 16 asrs r0, 16 ldr r2, _08102B7C @ =0x0000270f cmp r0, r2 ble _08102B54 strh r2, [r1, 0xC] _08102B54: movs r0, 0 strh r0, [r1, 0xE] _08102B58: ldr r0, _08102B70 @ =0x02000000 movs r1, 0xE ldrsh r0, [r0, r1] cmp r0, 0 bne _08102B68 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _08102B68: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08102B70: .4byte 0x02000000 _08102B74: .4byte 0x0000270e _08102B78: .4byte gMain _08102B7C: .4byte 0x0000270f thumb_func_end sub_8102AD0 thumb_func_start sub_8102B80 sub_8102B80: @ 8102B80 push {lr} bl sub_8103E7C lsls r0, 24 cmp r0, 0 beq _08102B9A ldr r0, _08102BA0 @ =sub_8102A64 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _08102B9A: movs r0, 0 pop {r1} bx r1 .align 2, 0 _08102BA0: .4byte sub_8102A64 thumb_func_end sub_8102B80 thumb_func_start sub_8102BA4 sub_8102BA4: @ 8102BA4 push {r4,lr} lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 ldr r0, _08102BF0 @ =0x02000000 lsls r2, r4, 1 adds r0, 0x28 adds r2, r0 movs r3, 0 ldrsh r0, [r2, r3] lsls r1, 16 asrs r1, 16 adds r0, r1 movs r1, 0x15 bl __modsi3 lsls r0, 16 lsrs r1, r0, 16 asrs r0, 16 cmp r0, 0 bge _08102BD4 adds r0, 0x15 lsls r0, 16 lsrs r1, r0, 16 _08102BD4: ldr r2, _08102BF4 @ =gUnknown_083ECCB2 lsls r1, 16 asrs r1, 16 lsls r0, r4, 2 adds r0, r4 lsls r0, 2 adds r0, r4 adds r1, r0 adds r1, r2 ldrb r0, [r1] pop {r4} pop {r1} bx r1 .align 2, 0 _08102BF0: .4byte 0x02000000 _08102BF4: .4byte gUnknown_083ECCB2 thumb_func_end sub_8102BA4 thumb_func_start sub_8102BF8 sub_8102BF8: @ 8102BF8 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 lsls r1, 16 lsrs r4, r1, 16 movs r6, 0 ldr r0, _08102C40 @ =0x02000000 lsls r1, r5, 1 adds r0, 0x1C adds r1, r0 movs r2, 0 ldrsh r0, [r1, r2] movs r1, 0x18 bl __modsi3 lsls r0, 16 cmp r0, 0 beq _08102C20 ldr r6, _08102C44 @ =0x0000ffff _08102C20: lsls r1, r4, 16 asrs r1, 16 lsls r0, r6, 16 asrs r0, 16 adds r1, r0 lsls r1, 16 asrs r1, 16 adds r0, r5, 0 bl sub_8102BA4 lsls r0, 24 lsrs r0, 24 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08102C40: .4byte 0x02000000 _08102C44: .4byte 0x0000ffff thumb_func_end sub_8102BF8 thumb_func_start sub_8102C48 sub_8102C48: @ 8102C48 push {lr} ldr r1, _08102C7C @ =0x02000000 movs r2, 0x16 ldrsh r1, [r1, r2] lsls r0, 16 asrs r0, 16 adds r1, r0 adds r0, r1, 0 movs r1, 0x6 bl __modsi3 lsls r0, 16 lsrs r1, r0, 16 asrs r0, 16 cmp r0, 0 bge _08102C6E adds r0, 0x6 lsls r0, 16 lsrs r1, r0, 16 _08102C6E: ldr r0, _08102C80 @ =gUnknown_083ECCF1 lsls r1, 16 asrs r1, 16 adds r1, r0 ldrb r0, [r1] pop {r1} bx r1 .align 2, 0 _08102C7C: .4byte 0x02000000 _08102C80: .4byte gUnknown_083ECCF1 thumb_func_end sub_8102C48 thumb_func_start sub_8102C84 sub_8102C84: @ 8102C84 push {r4-r6,lr} adds r5, r0, 0 lsls r5, 24 ldr r6, _08102CC8 @ =0x02000000 lsrs r5, 23 adds r4, r6, 0 adds r4, 0x1C adds r4, r5, r4 lsls r1, 16 asrs r1, 16 ldrh r0, [r4] adds r1, r0 strh r1, [r4] movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0xFC lsls r1, 1 bl __modsi3 strh r0, [r4] adds r6, 0x28 adds r5, r6 movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0x18 bl __divsi3 movs r1, 0x15 subs r1, r0 strh r1, [r5] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08102CC8: .4byte 0x02000000 thumb_func_end sub_8102C84 thumb_func_start sub_8102CCC sub_8102CCC: @ 8102CCC push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 lsls r1, 16 lsrs r4, r1, 16 ldr r0, _08102D24 @ =0x02000000 lsls r1, r6, 1 adds r0, 0x1C adds r5, r1, r0 movs r1, 0 ldrsh r0, [r5, r1] movs r1, 0x18 bl __modsi3 lsls r0, 16 lsrs r0, 16 lsls r2, r0, 16 asrs r1, r2, 16 cmp r1, 0 beq _08102D18 lsls r0, r4, 16 asrs r0, 16 cmp r1, r0 bge _08102D00 lsrs r4, r2, 16 _08102D00: lsls r1, r4, 16 asrs r1, 16 adds r0, r6, 0 bl sub_8102C84 movs r1, 0 ldrsh r0, [r5, r1] movs r1, 0x18 bl __modsi3 lsls r0, 16 lsrs r0, 16 _08102D18: lsls r0, 16 asrs r0, 16 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08102D24: .4byte 0x02000000 thumb_func_end sub_8102CCC thumb_func_start sub_8102D28 sub_8102D28: @ 8102D28 push {r4,lr} ldr r4, _08102D58 @ =0x02000000 lsls r0, 16 asrs r0, 16 ldrh r1, [r4, 0x14] adds r0, r1 strh r0, [r4, 0x14] movs r1, 0x14 ldrsh r0, [r4, r1] movs r1, 0x78 bl __modsi3 strh r0, [r4, 0x14] movs r1, 0x14 ldrsh r0, [r4, r1] movs r1, 0x14 bl __divsi3 movs r1, 0x6 subs r1, r0 strh r1, [r4, 0x16] pop {r4} pop {r0} bx r0 .align 2, 0 _08102D58: .4byte 0x02000000 thumb_func_end sub_8102D28 thumb_func_start sub_8102D5C sub_8102D5C: @ 8102D5C push {r4,r5,lr} lsls r0, 16 lsrs r4, r0, 16 ldr r5, _08102DA4 @ =0x02000000 movs r1, 0x14 ldrsh r0, [r5, r1] movs r1, 0x14 bl __modsi3 lsls r0, 16 lsrs r0, 16 lsls r2, r0, 16 asrs r1, r2, 16 cmp r1, 0 beq _08102D9A lsls r0, r4, 16 asrs r0, 16 cmp r1, r0 bge _08102D84 lsrs r4, r2, 16 _08102D84: lsls r0, r4, 16 asrs r0, 16 bl sub_8102D28 movs r1, 0x14 ldrsh r0, [r5, r1] movs r1, 0x14 bl __modsi3 lsls r0, 16 lsrs r0, 16 _08102D9A: lsls r0, 16 asrs r0, 16 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08102DA4: .4byte 0x02000000 thumb_func_end sub_8102D5C thumb_func_start sub_8102DA8 sub_8102DA8: @ 8102DA8 push {r4-r7,lr} movs r4, 0 ldr r5, _08102DE0 @ =sub_8102E68 ldr r7, _08102DE4 @ =gTasks ldr r6, _08102DE8 @ =0x0200003a _08102DB2: adds r0, r5, 0 movs r1, 0x2 bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r7 strh r4, [r1, 0x26] adds r1, r4, r6 strb r0, [r1] bl _call_via_r5 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _08102DB2 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08102DE0: .4byte sub_8102E68 _08102DE4: .4byte gTasks _08102DE8: .4byte 0x0200003a thumb_func_end sub_8102DA8 thumb_func_start sub_8102DEC sub_8102DEC: @ 8102DEC lsls r0, 24 lsrs r0, 24 ldr r3, _08102E14 @ =gTasks ldr r1, _08102E18 @ =0x02000000 adds r1, 0x3A adds r0, r1 ldrb r2, [r0] lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r3 movs r2, 0x1 strh r2, [r1, 0x8] ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r3 strh r2, [r0, 0x24] bx lr .align 2, 0 _08102E14: .4byte gTasks _08102E18: .4byte 0x02000000 thumb_func_end sub_8102DEC thumb_func_start sub_8102E1C sub_8102E1C: @ 8102E1C lsls r0, 24 lsrs r0, 24 ldr r2, _08102E38 @ =gTasks ldr r1, _08102E3C @ =0x02000000 adds r1, 0x3A adds r0, r1 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r1, 0x2 strh r1, [r0, 0x8] bx lr .align 2, 0 _08102E38: .4byte gTasks _08102E3C: .4byte 0x02000000 thumb_func_end sub_8102E1C thumb_func_start sub_8102E40 sub_8102E40: @ 8102E40 lsls r0, 24 lsrs r0, 24 ldr r2, _08102E60 @ =gTasks ldr r1, _08102E64 @ =0x02000000 adds r1, 0x3A adds r0, r1 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrh r0, [r0, 0x24] lsls r0, 24 lsrs r0, 24 bx lr .align 2, 0 _08102E60: .4byte gTasks _08102E64: .4byte 0x02000000 thumb_func_end sub_8102E40 thumb_func_start sub_8102E68 sub_8102E68: @ 8102E68 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _08102E98 @ =gUnknown_083ECB2C ldr r2, _08102E9C @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _08102E7A: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _08102E7A pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08102E98: .4byte gUnknown_083ECB2C _08102E9C: .4byte gTasks thumb_func_end sub_8102E68 thumb_func_start sub_8102EA0 sub_8102EA0: @ 8102EA0 movs r0, 0 bx lr thumb_func_end sub_8102EA0 thumb_func_start sub_8102EA4 sub_8102EA4: @ 8102EA4 push {lr} ldrh r0, [r0, 0x26] lsls r0, 24 lsrs r0, 24 ldr r1, _08102EBC @ =0x02000000 movs r2, 0x1A ldrsh r1, [r1, r2] bl sub_8102C84 movs r0, 0 pop {r1} bx r1 .align 2, 0 _08102EBC: .4byte 0x02000000 thumb_func_end sub_8102EA4 thumb_func_start sub_8102EC0 sub_8102EC0: @ 8102EC0 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x8] adds r0, 0x1 movs r2, 0 strh r0, [r4, 0x8] ldr r3, _08102F40 @ =0x02000000 movs r1, 0x26 ldrsh r0, [r4, r1] lsls r0, 1 adds r1, r3, 0 adds r1, 0x34 adds r0, r1 strh r2, [r0] movs r1, 0x26 ldrsh r0, [r4, r1] lsls r0, 1 adds r1, r3, 0 adds r1, 0x2E adds r0, r1 strh r2, [r0] ldrb r0, [r3, 0xA] cmp r0, 0 bne _08102F28 ldrb r0, [r3, 0x4] cmp r0, 0 beq _08102F12 ldrb r0, [r3, 0x6] cmp r0, 0 beq _08102F12 ldr r1, _08102F44 @ =gUnknown_083ECB40 movs r2, 0x26 ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 lsls r0, 24 cmp r0, 0 bne _08102F28 _08102F12: ldr r1, _08102F40 @ =0x02000000 movs r0, 0 strb r0, [r1, 0x6] ldr r1, _08102F48 @ =gUnknown_083ECB4C movs r2, 0x26 ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 _08102F28: ldr r0, _08102F40 @ =0x02000000 movs r2, 0x26 ldrsh r1, [r4, r2] lsls r1, 1 adds r0, 0x2E adds r1, r0 ldrh r0, [r1] strh r0, [r4, 0xA] movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _08102F40: .4byte 0x02000000 _08102F44: .4byte gUnknown_083ECB40 _08102F48: .4byte gUnknown_083ECB4C thumb_func_end sub_8102EC0 thumb_func_start sub_8102F4C sub_8102F4C: @ 8102F4C push {r4-r7,lr} sub sp, 0xC adds r4, r0, 0 ldr r1, _08102F8C @ =gUnknown_083ECB58 mov r0, sp movs r2, 0xA bl memcpy ldr r5, _08102F90 @ =0x02000000 movs r1, 0x26 ldrsh r0, [r4, r1] lsls r6, r0, 1 adds r7, r5, 0 adds r7, 0x1C adds r0, r6, r7 movs r2, 0 ldrsh r0, [r0, r2] movs r1, 0x18 bl __modsi3 lsls r0, 16 lsrs r2, r0, 16 cmp r0, 0 beq _08102F94 ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 movs r6, 0x1A ldrsh r1, [r5, r6] bl sub_8102CCC b _08102FC8 .align 2, 0 _08102F8C: .4byte gUnknown_083ECB58 _08102F90: .4byte 0x02000000 _08102F94: adds r0, r5, 0 adds r0, 0x2E adds r1, r6, r0 ldrh r3, [r1] movs r6, 0 ldrsh r0, [r1, r6] cmp r0, 0 beq _08102FCC subs r0, r3, 0x1 strh r0, [r1] ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 movs r2, 0x1A ldrsh r1, [r5, r2] bl sub_8102C84 movs r6, 0x26 ldrsh r0, [r4, r6] lsls r0, 1 adds r0, r7 movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0x18 bl __modsi3 _08102FC8: lsls r0, 16 lsrs r2, r0, 16 _08102FCC: cmp r2, 0 bne _08102FF8 ldr r1, _08103004 @ =0x02000000 movs r2, 0x26 ldrsh r0, [r4, r2] lsls r0, 1 adds r1, 0x2E adds r0, r1 movs r6, 0 ldrsh r1, [r0, r6] cmp r1, 0 bne _08102FF8 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 1 add r0, sp ldrh r0, [r0] strh r0, [r4, 0xA] strh r1, [r4, 0xC] _08102FF8: movs r0, 0 add sp, 0xC pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08103004: .4byte 0x02000000 thumb_func_end sub_8102F4C thumb_func_start sub_8103008 sub_8103008: @ 8103008 push {r4,lr} adds r2, r0, 0 ldr r1, _08103058 @ =0x02000000 movs r3, 0x26 ldrsh r0, [r2, r3] lsls r0, 1 adds r4, r1, 0 adds r4, 0x22 adds r0, r4 ldrh r1, [r2, 0xA] strh r1, [r0] ldrh r0, [r2, 0xA] negs r3, r0 strh r3, [r2, 0xA] ldrh r0, [r2, 0xC] adds r0, 0x1 strh r0, [r2, 0xC] movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _08103038 lsls r0, r3, 16 asrs r0, 17 strh r0, [r2, 0xA] _08103038: movs r0, 0xA ldrsh r3, [r2, r0] cmp r3, 0 bne _0810304E strh r3, [r2, 0x8] strh r3, [r2, 0x24] movs r1, 0x26 ldrsh r0, [r2, r1] lsls r0, 1 adds r0, r4 strh r3, [r0] _0810304E: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08103058: .4byte 0x02000000 thumb_func_end sub_8103008 thumb_func_start sub_810305C sub_810305C: @ 810305C push {r4,r5,lr} ldr r4, _0810309C @ =0x02000000 ldrb r0, [r4, 0x4] bl sub_810250C lsls r0, 24 lsrs r3, r0, 24 adds r5, r3, 0 ldrb r1, [r4, 0x4] movs r0, 0xC0 ands r0, r1 cmp r0, 0 beq _0810307A movs r5, 0 movs r3, 0x1 _0810307A: ldr r1, _081030A0 @ =gUnknown_083ECB64 movs r2, 0x12 ldrsh r0, [r4, r2] subs r0, 0x1 lsls r0, 2 adds r0, r1 ldr r2, [r0] adds r0, r5, 0 adds r1, r3, 0 bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0810309C: .4byte 0x02000000 _081030A0: .4byte gUnknown_083ECB64 thumb_func_end sub_810305C thumb_func_start sub_81030A4 sub_81030A4: @ 81030A4 push {r4,r5,lr} adds r3, r0, 0 adds r4, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r2, 24 lsrs r5, r2, 24 lsls r3, 16 asrs r3, 16 movs r0, 0 adds r1, r3, 0 bl sub_8102BF8 lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, r4 beq _081030CC cmp r0, r5 bne _081030D8 _081030CC: ldr r0, _081030D4 @ =0x02000000 strb r1, [r0, 0x7] movs r0, 0x1 b _081030DA .align 2, 0 _081030D4: .4byte 0x02000000 _081030D8: movs r0, 0 _081030DA: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_81030A4 thumb_func_start sub_81030E0 sub_81030E0: @ 81030E0 push {r4,lr} movs r1, 0x1 lsls r0, 16 asrs r4, r0, 16 subs r1, r4 lsls r1, 16 asrs r1, 16 movs r0, 0 bl sub_8102BF8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 beq _08103128 movs r1, 0x2 subs r1, r4 lsls r1, 16 asrs r1, 16 movs r0, 0 bl sub_8102BF8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 beq _08103128 movs r1, 0x3 subs r1, r4 lsls r1, 16 asrs r1, 16 movs r0, 0 bl sub_8102BF8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bne _0810312C _08103128: movs r0, 0x1 b _0810312E _0810312C: movs r0, 0 _0810312E: pop {r4} pop {r1} bx r1 thumb_func_end sub_81030E0 thumb_func_start sub_8103134 sub_8103134: @ 8103134 push {lr} ldr r0, _08103148 @ =0x02000000 ldrb r1, [r0, 0x4] movs r0, 0xC2 ands r0, r1 cmp r0, 0 bne _0810314C movs r0, 0 b _0810314E .align 2, 0 _08103148: .4byte 0x02000000 _0810314C: movs r0, 0x1 _0810314E: pop {r1} bx r1 thumb_func_end sub_8103134 thumb_func_start sub_8103154 sub_8103154: @ 8103154 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 24 lsrs r7, r1, 24 movs r5, 0 movs r0, 0x2 mov r9, r0 ldr r6, _08103194 @ =0x02000000 _0810316E: lsls r0, r5, 16 asrs r4, r0, 16 mov r1, r9 subs r0, r1, r4 lsls r0, 16 asrs r0, 16 mov r1, r8 adds r2, r7, 0 bl sub_81030A4 lsls r0, 24 cmp r0, 0 beq _08103198 movs r0, 0x2 strh r0, [r6, 0x34] strh r5, [r6, 0x2E] movs r0, 0x1 b _081031A6 .align 2, 0 _08103194: .4byte 0x02000000 _08103198: adds r0, r4, 0x1 lsls r0, 16 lsrs r5, r0, 16 asrs r0, 16 cmp r0, 0x4 ble _0810316E movs r0, 0 _081031A6: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8103154 thumb_func_start sub_81031B4 sub_81031B4: @ 81031B4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r10, r0 lsls r1, 24 lsrs r1, 24 mov r9, r1 bl sub_8103134 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 bne _081031E2 movs r0, 0 bl sub_81030E0 lsls r0, 24 cmp r0, 0 bne _0810321E _081031E2: movs r0, 0x1 mov r8, r0 ldr r5, _0810320C @ =0x02000000 movs r7, 0 _081031EA: mov r1, r8 lsls r0, r1, 16 asrs r4, r0, 16 adds r0, r4, 0 mov r1, r10 mov r2, r9 bl sub_81030A4 lsls r0, 24 cmp r0, 0 beq _08103210 mov r0, r8 strh r0, [r5, 0x34] strh r7, [r5, 0x2E] movs r0, 0x1 b _081032B2 .align 2, 0 _0810320C: .4byte 0x02000000 _08103210: adds r0, r4, 0x1 lsls r0, 16 lsrs r1, r0, 16 mov r8, r1 asrs r0, 16 cmp r0, 0x3 ble _081031EA _0810321E: movs r0, 0x1 mov r8, r0 adds r7, r6, 0 ldr r6, _0810326C @ =0x02000000 _08103226: mov r1, r8 lsls r5, r1, 16 cmp r7, 0 bne _0810323A asrs r0, r5, 16 bl sub_81030E0 lsls r0, 24 cmp r0, 0 bne _081032A0 _0810323A: movs r0, 0x1 asrs r4, r5, 16 subs r0, r4 lsls r0, 16 asrs r0, 16 mov r1, r10 mov r2, r9 bl sub_81030A4 lsls r0, 24 cmp r0, 0 beq _081032A0 cmp r4, 0x1 bne _08103270 cmp r7, 0 bne _08103266 movs r0, 0x3 bl sub_81030E0 lsls r0, 24 cmp r0, 0 bne _08103270 _08103266: movs r0, 0x3 strh r0, [r6, 0x34] b _0810329A .align 2, 0 _0810326C: .4byte 0x02000000 _08103270: asrs r0, r5, 16 cmp r0, 0x3 bgt _08103294 adds r4, r0, 0x1 cmp r7, 0 bne _0810328A lsls r0, r4, 16 asrs r0, 16 bl sub_81030E0 lsls r0, 24 cmp r0, 0 bne _08103294 _0810328A: movs r0, 0x2 strh r0, [r6, 0x34] strh r4, [r6, 0x2E] movs r0, 0x1 b _081032B2 _08103294: movs r0, 0x1 strh r0, [r6, 0x34] mov r0, r8 _0810329A: strh r0, [r6, 0x2E] movs r0, 0x1 b _081032B2 _081032A0: movs r1, 0x80 lsls r1, 9 adds r0, r5, r1 lsrs r1, r0, 16 mov r8, r1 asrs r0, 16 cmp r0, 0x4 ble _08103226 movs r0, 0 _081032B2: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81031B4 thumb_func_start sub_81032C0 sub_81032C0: @ 81032C0 push {lr} ldr r1, _081032E0 @ =gUnknown_083ECB70 ldr r0, _081032E4 @ =0x02000000 movs r2, 0x12 ldrsh r0, [r0, r2] subs r0, 0x1 lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _081032E0: .4byte gUnknown_083ECB70 _081032E4: .4byte 0x02000000 thumb_func_end sub_81032C0 thumb_func_start sub_81032E8 sub_81032E8: @ 81032E8 push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _08103320 @ =0x02000000 movs r6, 0 ldrh r1, [r0, 0x34] mov r8, r1 movs r1, 0x34 ldrsh r7, [r0, r1] adds r5, r0, 0 _081032FC: lsls r0, r6, 16 asrs r4, r0, 16 subs r1, r7, r4 lsls r1, 16 asrs r1, 16 movs r0, 0x1 bl sub_8102BF8 lsls r0, 24 lsrs r0, 24 ldrb r1, [r5, 0x7] cmp r0, r1 bne _08103324 mov r0, r8 strh r0, [r5, 0x36] strh r6, [r5, 0x30] movs r0, 0x1 b _08103332 .align 2, 0 _08103320: .4byte 0x02000000 _08103324: adds r0, r4, 0x1 lsls r0, 16 lsrs r6, r0, 16 asrs r0, 16 cmp r0, 0x4 ble _081032FC movs r0, 0 _08103332: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81032E8 thumb_func_start sub_810333C sub_810333C: @ 810333C push {r4-r7,lr} bl sub_81032E8 lsls r0, 24 cmp r0, 0 beq _0810339A ldr r1, _0810338C @ =0x02000000 movs r2, 0x34 ldrsh r0, [r1, r2] cmp r0, 0x2 beq _08103396 movs r2, 0x30 ldrsh r0, [r1, r2] cmp r0, 0x1 ble _08103396 cmp r0, 0x4 beq _08103396 movs r5, 0 movs r7, 0x2 adds r6, r1, 0 _08103364: lsls r0, r5, 16 asrs r4, r0, 16 subs r1, r7, r4 lsls r1, 16 asrs r1, 16 movs r0, 0x1 bl sub_8102BF8 lsls r0, 24 lsrs r0, 24 ldrb r1, [r6, 0x7] cmp r0, r1 beq _08103390 adds r0, r4, 0x1 lsls r0, 16 lsrs r5, r0, 16 asrs r0, 16 cmp r0, 0x4 ble _08103364 b _08103396 .align 2, 0 _0810338C: .4byte 0x02000000 _08103390: movs r0, 0x2 strh r0, [r6, 0x36] strh r5, [r6, 0x30] _08103396: movs r0, 0x1 b _081033D2 _0810339A: ldr r1, _081033D8 @ =0x02000000 movs r2, 0x34 ldrsh r0, [r1, r2] cmp r0, 0x2 beq _081033D0 movs r5, 0 movs r7, 0x2 adds r6, r1, 0 _081033AA: lsls r0, r5, 16 asrs r4, r0, 16 subs r1, r7, r4 lsls r1, 16 asrs r1, 16 movs r0, 0x1 bl sub_8102BF8 lsls r0, 24 lsrs r0, 24 ldrb r1, [r6, 0x7] cmp r0, r1 beq _08103390 adds r0, r4, 0x1 lsls r0, 16 lsrs r5, r0, 16 asrs r0, 16 cmp r0, 0x4 ble _081033AA _081033D0: movs r0, 0 _081033D2: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _081033D8: .4byte 0x02000000 thumb_func_end sub_810333C thumb_func_start sub_81033DC sub_81033DC: @ 81033DC push {r4,lr} ldr r0, _08103414 @ =0x02000000 ldrb r3, [r0, 0x7] adds r4, r3, 0 ldrb r2, [r0, 0x4] movs r1, 0x40 ands r1, r2 cmp r1, 0 beq _081033F6 movs r3, 0 cmp r4, 0 bne _081033F6 movs r3, 0x1 _081033F6: ldr r1, _08103418 @ =gUnknown_083ECB7C movs r2, 0x12 ldrsh r0, [r0, r2] subs r0, 0x1 lsls r0, 2 adds r0, r1 ldr r1, [r0] adds r0, r3, 0 bl _call_via_r1 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _08103414: .4byte 0x02000000 _08103418: .4byte gUnknown_083ECB7C thumb_func_end sub_81033DC thumb_func_start sub_810341C sub_810341C: @ 810341C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r0, _0810345C @ =0x02000000 movs r5, 0 ldrh r1, [r0, 0x36] mov r8, r1 movs r1, 0x36 ldrsh r7, [r0, r1] adds r6, r0, 0 _08103438: lsls r0, r5, 16 asrs r4, r0, 16 subs r1, r7, r4 lsls r1, 16 asrs r1, 16 movs r0, 0x2 bl sub_8102BF8 lsls r0, 24 lsrs r0, 24 cmp r0, r9 bne _08103460 mov r0, r8 strh r0, [r6, 0x38] strh r5, [r6, 0x32] movs r0, 0x1 b _0810346E .align 2, 0 _0810345C: .4byte 0x02000000 _08103460: adds r0, r4, 0x1 lsls r0, 16 lsrs r5, r0, 16 asrs r0, 16 cmp r0, 0x4 ble _08103438 movs r0, 0 _0810346E: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_810341C thumb_func_start sub_810347C sub_810347C: @ 810347C push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r6, r0, 24 ldr r0, _081034A0 @ =0x02000000 movs r2, 0x34 ldrsh r1, [r0, r2] movs r2, 0x36 ldrsh r0, [r0, r2] cmp r1, r0 bne _081034B4 adds r0, r6, 0 bl sub_810341C lsls r0, 24 lsrs r0, 24 b _081034EA .align 2, 0 _081034A0: .4byte 0x02000000 _081034A4: ldr r0, _081034B0 @ =0x02000000 strh r5, [r0, 0x32] mov r1, r8 strh r1, [r0, 0x38] movs r0, 0x1 b _081034EA .align 2, 0 _081034B0: .4byte 0x02000000 _081034B4: movs r2, 0x1 mov r8, r2 cmp r1, 0x1 bne _081034C0 movs r0, 0x3 mov r8, r0 _081034C0: movs r5, 0 mov r7, r8 _081034C4: lsls r0, r5, 16 asrs r4, r0, 16 subs r1, r7, r4 lsls r1, 16 asrs r1, 16 movs r0, 0x2 bl sub_8102BF8 lsls r0, 24 lsrs r0, 24 cmp r0, r6 beq _081034A4 adds r0, r4, 0x1 lsls r0, 16 lsrs r5, r0, 16 asrs r0, 16 cmp r0, 0x4 ble _081034C4 movs r0, 0 _081034EA: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_810347C thumb_func_start sub_81034F4 sub_81034F4: @ 81034F4 push {r4,r5,lr} movs r5, 0 b _08103500 _081034FA: adds r0, r4, 0x1 lsls r0, 16 lsrs r5, r0, 16 _08103500: lsls r0, r5, 16 asrs r4, r0, 16 adds r0, r4, 0 bl sub_81030E0 lsls r0, 24 cmp r0, 0 bne _081034FA ldr r0, _0810351C @ =0x02000000 strh r5, [r0, 0x2E] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810351C: .4byte 0x02000000 thumb_func_end sub_81034F4 thumb_func_start sub_8103520 sub_8103520: @ 8103520 push {lr} adds r1, r0, 0 ldrb r0, [r1] cmp r0, 0 bne _0810352E movs r0, 0x1 b _08103538 _0810352E: cmp r0, 0x1 beq _08103536 movs r0, 0 b _0810353C _08103536: movs r0, 0 _08103538: strb r0, [r1] movs r0, 0x1 _0810353C: pop {r1} bx r1 thumb_func_end sub_8103520 thumb_func_start sub_8103540 sub_8103540: @ 8103540 push {lr} ldr r1, _0810355C @ =gUnknown_083ECB88 ldr r0, _08103560 @ =0x02000000 movs r2, 0x12 ldrsh r0, [r0, r2] subs r0, 0x1 lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r0} bx r0 .align 2, 0 _0810355C: .4byte gUnknown_083ECB88 _08103560: .4byte 0x02000000 thumb_func_end sub_8103540 thumb_func_start sub_8103564 sub_8103564: @ 8103564 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 ldr r4, _081035D0 @ =0x02000000 movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0 beq _081035E0 ldrb r1, [r4, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _081035E0 ldrh r0, [r4, 0x2E] movs r1, 0x2 subs r1, r0 lsls r1, 16 asrs r1, 16 movs r0, 0 bl sub_8102BF8 mov r1, sp strb r0, [r1] mov r0, sp bl sub_8103520 lsls r0, 24 cmp r0, 0 beq _081035E0 movs r5, 0 mov r7, sp movs r0, 0x2 mov r8, r0 adds r6, r4, 0 _081035AA: lsls r0, r5, 16 asrs r4, r0, 16 mov r0, r8 subs r1, r0, r4 lsls r1, 16 asrs r1, 16 movs r0, 0x1 bl sub_8102BF8 ldrb r1, [r7] lsls r0, 24 lsrs r0, 24 cmp r1, r0 bne _081035D4 movs r0, 0x2 strh r0, [r6, 0x36] strh r5, [r6, 0x30] b _081035E0 .align 2, 0 _081035D0: .4byte 0x02000000 _081035D4: adds r0, r4, 0x1 lsls r0, 16 lsrs r5, r0, 16 asrs r0, 16 cmp r0, 0x4 ble _081035AA _081035E0: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8103564 thumb_func_start j5_08111E84 j5_08111E84: @ 81035EC push {r4-r7,lr} sub sp, 0x4 ldr r4, _08103650 @ =0x02000000 ldrh r2, [r4, 0x34] movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0 beq _08103660 ldrb r1, [r4, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08103660 ldrh r1, [r4, 0x2E] subs r1, r2, r1 lsls r1, 16 asrs r1, 16 movs r0, 0 bl sub_8102BF8 mov r1, sp strb r0, [r1] mov r0, sp bl sub_8103520 lsls r0, 24 cmp r0, 0 beq _08103660 movs r6, 0 mov r7, sp adds r5, r4, 0 _0810362A: ldrh r1, [r5, 0x34] lsls r0, r6, 16 asrs r4, r0, 16 subs r1, r4 lsls r1, 16 asrs r1, 16 movs r0, 0x1 bl sub_8102BF8 ldrb r1, [r7] lsls r0, 24 lsrs r0, 24 cmp r1, r0 bne _08103654 ldrh r0, [r5, 0x34] strh r0, [r5, 0x36] strh r6, [r5, 0x30] b _08103660 .align 2, 0 _08103650: .4byte 0x02000000 _08103654: adds r0, r4, 0x1 lsls r0, 16 lsrs r6, r0, 16 asrs r0, 16 cmp r0, 0x4 ble _0810362A _08103660: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 thumb_func_end j5_08111E84 thumb_func_start sub_8103668 sub_8103668: @ 8103668 push {r4-r7,lr} sub sp, 0x4 ldr r4, _0810368C @ =0x02000000 ldrh r3, [r4, 0x34] movs r0, 0x34 ldrsh r2, [r4, r0] cmp r2, 0 beq _0810375A ldrb r1, [r4, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0810375A cmp r2, 0x2 bne _081036AE bl j5_08111E84 b _0810375A .align 2, 0 _0810368C: .4byte 0x02000000 _08103690: ldr r0, _0810369C @ =0x02000000 movs r1, 0 strh r6, [r0, 0x36] strh r1, [r0, 0x30] b _0810375A .align 2, 0 _0810369C: .4byte 0x02000000 _081036A0: movs r0, 0x2 strh r0, [r5, 0x36] adds r0, r4, 0x1 strh r0, [r5, 0x30] b _0810375A _081036AA: movs r0, 0x3 b _08103736 _081036AE: ldrh r1, [r4, 0x2E] subs r1, r3, r1 lsls r1, 16 asrs r1, 16 movs r0, 0 bl sub_8102BF8 mov r1, sp strb r0, [r1] mov r0, sp bl sub_8103520 lsls r0, 24 cmp r0, 0 beq _0810375A movs r6, 0x2 movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0x3 bne _081036D8 movs r6, 0x3 _081036D8: movs r5, 0 mov r7, sp _081036DC: lsls r0, r6, 16 asrs r4, r0, 16 movs r0, 0x1 adds r1, r4, 0 bl sub_8102BF8 ldrb r1, [r7] lsls r0, 24 lsrs r0, 24 cmp r1, r0 beq _08103690 lsls r1, r5, 16 movs r0, 0x80 lsls r0, 9 adds r1, r0 subs r0, r4, 0x1 lsls r0, 16 lsrs r6, r0, 16 lsrs r5, r1, 16 asrs r1, 16 cmp r1, 0x1 ble _081036DC movs r6, 0x1 mov r7, sp ldr r5, _0810373C @ =0x02000000 _0810370E: ldrh r1, [r5, 0x34] lsls r0, r6, 16 asrs r4, r0, 16 subs r1, r4 lsls r1, 16 asrs r1, 16 movs r0, 0x1 bl sub_8102BF8 ldrb r1, [r7] lsls r0, 24 lsrs r0, 24 cmp r1, r0 bne _0810374E movs r1, 0x34 ldrsh r0, [r5, r1] cmp r0, 0x1 bne _08103740 cmp r4, 0x2 ble _081036A0 _08103736: strh r0, [r5, 0x36] strh r6, [r5, 0x30] b _0810375A .align 2, 0 _0810373C: .4byte 0x02000000 _08103740: cmp r4, 0x2 ble _081036AA movs r0, 0x2 strh r0, [r5, 0x36] subs r0, r4, 0x1 strh r0, [r5, 0x30] b _0810375A _0810374E: adds r0, r4, 0x1 lsls r0, 16 lsrs r6, r0, 16 asrs r0, 16 cmp r0, 0x4 ble _0810370E _0810375A: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8103668 thumb_func_start sub_8103764 sub_8103764: @ 8103764 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 adds r2, r1, 0 cmp r0, 0 bne _08103778 cmp r1, 0x1 beq _08103780 _08103778: cmp r0, 0x1 bne _08103784 cmp r2, 0 bne _08103784 _08103780: movs r0, 0x1 b _08103786 _08103784: movs r0, 0 _08103786: pop {r1} bx r1 thumb_func_end sub_8103764 thumb_func_start sub_810378C sub_810378C: @ 810378C push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 cmp r0, 0 bne _081037A6 cmp r1, 0x1 bne _081037A6 cmp r2, 0 beq _081037B2 _081037A6: cmp r0, 0x1 bne _081037B6 cmp r1, 0 bne _081037B6 cmp r2, 0x1 bne _081037B6 _081037B2: movs r0, 0x1 b _081037B8 _081037B6: movs r0, 0 _081037B8: pop {r1} bx r1 thumb_func_end sub_810378C thumb_func_start sub_81037BC sub_81037BC: @ 81037BC push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 cmp r0, 0 bne _081037D6 cmp r1, 0x1 bne _081037D6 cmp r2, 0 beq _08103802 _081037D6: cmp r0, 0x1 bne _081037E2 cmp r1, 0 bne _081037E2 cmp r2, 0x1 beq _08103802 _081037E2: cmp r0, 0 bne _081037EE cmp r1, 0 bne _081037EE cmp r2, 0x1 beq _08103802 _081037EE: cmp r0, 0x1 bne _081037FA cmp r1, 0x1 bne _081037FA cmp r2, 0 beq _08103802 _081037FA: cmp r0, r1 bne _08103806 cmp r0, r2 bne _08103806 _08103802: movs r0, 0 b _08103808 _08103806: movs r0, 0x1 _08103808: pop {r1} bx r1 thumb_func_end sub_81037BC thumb_func_start sub_810380C sub_810380C: @ 810380C push {lr} ldr r1, _08103828 @ =gUnknown_083ECB94 ldr r0, _0810382C @ =0x02000000 movs r2, 0x12 ldrsh r0, [r0, r2] subs r0, 0x1 lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r0} bx r0 .align 2, 0 _08103828: .4byte gUnknown_083ECB94 _0810382C: .4byte 0x02000000 thumb_func_end sub_810380C thumb_func_start sub_8103830 sub_8103830: @ 8103830 push {r4-r7,lr} movs r6, 0 ldr r7, _08103868 @ =0x02000000 ldrh r1, [r7, 0x2E] movs r4, 0x2 subs r1, r4, r1 lsls r1, 16 asrs r1, 16 movs r0, 0 bl sub_8102BF8 lsls r0, 24 lsrs r5, r0, 24 ldrh r0, [r7, 0x30] subs r4, r0 lsls r4, 16 asrs r4, 16 movs r0, 0x1 adds r1, r4, 0 bl sub_8102BF8 lsls r0, 24 lsrs r1, r0, 24 cmp r5, r1 bne _081038A0 movs r4, 0x2 b _08103876 .align 2, 0 _08103868: .4byte 0x02000000 _0810386C: lsls r0, r6, 16 movs r1, 0x80 lsls r1, 9 adds r0, r1 lsrs r6, r0, 16 _08103876: lsls r1, r6, 16 asrs r1, 16 subs r1, r4, r1 lsls r1, 16 asrs r1, 16 movs r0, 0x2 bl sub_8102BF8 lsls r0, 24 lsrs r0, 24 cmp r5, r0 beq _0810386C cmp r5, 0 bne _08103896 cmp r0, 0x1 beq _0810386C _08103896: cmp r5, 0x1 bne _08103900 cmp r0, 0 beq _0810386C b _08103900 _081038A0: adds r0, r5, 0 bl sub_8103764 lsls r0, 24 cmp r0, 0 beq _08103900 ldrb r1, [r7, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _081038DC movs r7, 0x2 _081038B8: lsls r0, r6, 16 asrs r4, r0, 16 subs r1, r7, r4 lsls r1, 16 asrs r1, 16 movs r0, 0x2 bl sub_8102BF8 lsls r0, 24 lsrs r0, 24 cmp r5, r0 beq _08103900 adds r0, r4, 0x1 lsls r0, 16 lsrs r6, r0, 16 asrs r0, 16 cmp r0, 0x4 ble _081038B8 _081038DC: movs r6, 0 movs r7, 0x2 b _081038E8 _081038E2: adds r0, r4, 0x1 lsls r0, 16 lsrs r6, r0, 16 _081038E8: lsls r0, r6, 16 asrs r4, r0, 16 subs r1, r7, r4 lsls r1, 16 asrs r1, 16 movs r0, 0x2 bl sub_8102BF8 lsls r0, 24 lsrs r0, 24 cmp r5, r0 beq _081038E2 _08103900: ldr r0, _0810390C @ =0x02000000 strh r6, [r0, 0x32] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810390C: .4byte 0x02000000 thumb_func_end sub_8103830 thumb_func_start sub_8103910 sub_8103910: @ 8103910 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 movs r0, 0 str r0, [sp] ldr r4, _08103978 @ =0x02000000 movs r2, 0x36 ldrsh r1, [r4, r2] cmp r1, 0 beq _081039A6 ldrh r2, [r4, 0x34] movs r3, 0x34 ldrsh r0, [r4, r3] cmp r0, r1 bne _081039A6 ldrb r1, [r4, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _081039A6 ldrh r1, [r4, 0x2E] subs r1, r2, r1 lsls r1, 16 asrs r1, 16 movs r0, 0 bl sub_8102BF8 lsls r0, 24 lsrs r7, r0, 24 ldrh r1, [r4, 0x36] ldrh r0, [r4, 0x30] subs r1, r0 lsls r1, 16 asrs r1, 16 movs r0, 0x1 bl sub_8102BF8 lsls r0, 24 lsrs r6, r0, 24 adds r0, r7, 0 adds r1, r6, 0 bl sub_8103764 lsls r0, 24 cmp r0, 0 beq _081039A6 movs r5, 0 b _08103982 .align 2, 0 _08103978: .4byte 0x02000000 _0810397C: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 _08103982: lsls r6, r5, 16 asrs r5, r6, 16 cmp r5, 0x4 bgt _081039A6 ldr r0, _08103A34 @ =0x02000000 ldrh r1, [r0, 0x36] subs r1, r5 lsls r1, 16 asrs r1, 16 movs r0, 0x2 bl sub_8102BF8 lsls r0, 24 lsrs r4, r0, 24 cmp r7, r4 bne _0810397C lsrs r6, 16 str r6, [sp] _081039A6: ldr r0, _08103A34 @ =0x02000000 mov r9, r0 _081039AA: movs r5, 0x1 movs r1, 0 mov r8, r1 ldr r2, [sp] lsls r2, 16 mov r10, r2 _081039B6: mov r3, r9 ldrh r1, [r3, 0x2E] lsls r5, 16 asrs r4, r5, 16 subs r1, r4, r1 lsls r1, 16 asrs r1, 16 movs r0, 0 bl sub_8102BF8 lsls r0, 24 lsrs r7, r0, 24 mov r0, r9 ldrh r1, [r0, 0x30] subs r1, r4, r1 lsls r1, 16 asrs r1, 16 movs r0, 0x1 bl sub_8102BF8 lsls r0, 24 lsrs r6, r0, 24 mov r1, r10 asrs r0, r1, 16 subs r4, r0 lsls r4, 16 asrs r4, 16 movs r0, 0x2 adds r1, r4, 0 bl sub_8102BF8 lsls r0, 24 lsrs r4, r0, 24 adds r0, r7, 0 adds r1, r6, 0 adds r2, r4, 0 bl sub_81037BC lsls r0, 24 cmp r0, 0 bne _08103A38 adds r0, r7, 0 adds r1, r6, 0 adds r2, r4, 0 bl sub_810378C lsls r0, 24 cmp r0, 0 beq _08103A24 mov r2, r9 ldrb r1, [r2, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08103A38 _08103A24: mov r3, r8 lsls r0, r3, 16 movs r1, 0x80 lsls r1, 9 adds r0, r1 lsrs r0, 16 mov r8, r0 b _08103A46 .align 2, 0 _08103A34: .4byte 0x02000000 _08103A38: movs r2, 0x80 lsls r2, 9 adds r0, r5, r2 lsrs r5, r0, 16 asrs r0, 16 cmp r0, 0x3 ble _081039B6 _08103A46: mov r3, r8 cmp r3, 0 beq _08103A5C ldr r1, [sp] lsls r0, r1, 16 movs r2, 0x80 lsls r2, 9 adds r0, r2 lsrs r0, 16 str r0, [sp] b _081039AA _08103A5C: ldr r0, _08103A74 @ =0x02000000 mov r3, sp ldrh r3, [r3] strh r3, [r0, 0x32] add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08103A74: .4byte 0x02000000 thumb_func_end sub_8103910 thumb_func_start sub_8103A78 sub_8103A78: @ 8103A78 push {r4-r7,lr} mov r7, r8 push {r7} bl sub_8103910 ldr r4, _08103B10 @ =0x02000000 movs r0, 0x36 ldrsh r1, [r4, r0] cmp r1, 0 beq _08103B20 ldrh r2, [r4, 0x34] movs r3, 0x34 ldrsh r0, [r4, r3] cmp r0, r1 beq _08103B20 ldrb r1, [r4, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08103B20 ldrh r1, [r4, 0x2E] subs r1, r2, r1 lsls r1, 16 asrs r1, 16 movs r0, 0 bl sub_8102BF8 lsls r0, 24 lsrs r6, r0, 24 ldrh r1, [r4, 0x36] ldrh r0, [r4, 0x30] subs r1, r0 lsls r1, 16 asrs r1, 16 movs r0, 0x1 bl sub_8102BF8 lsls r0, 24 lsrs r5, r0, 24 adds r0, r6, 0 adds r1, r5, 0 bl sub_8103764 lsls r0, 24 cmp r0, 0 beq _08103B20 movs r1, 0x1 movs r2, 0x34 ldrsh r0, [r4, r2] cmp r0, 0x1 bne _08103AE0 movs r1, 0x3 _08103AE0: movs r3, 0 lsls r1, 16 mov r8, r1 adds r7, r4, 0 _08103AE8: ldrh r2, [r7, 0x32] lsls r0, r3, 16 asrs r5, r0, 16 adds r2, r5, r2 mov r3, r8 asrs r1, r3, 16 subs r1, r2 lsls r1, 16 asrs r1, 16 movs r0, 0x2 bl sub_8102BF8 lsls r0, 24 lsrs r4, r0, 24 cmp r6, r4 bne _08103B14 ldrh r0, [r7, 0x32] adds r0, r5, r0 strh r0, [r7, 0x32] b _08103B20 .align 2, 0 _08103B10: .4byte 0x02000000 _08103B14: adds r0, r5, 0x1 lsls r0, 16 lsrs r3, r0, 16 asrs r0, 16 cmp r0, 0x4 ble _08103AE8 _08103B20: ldr r7, _08103B90 @ =0x02000000 _08103B22: ldrh r0, [r7, 0x2E] movs r1, 0x1 subs r1, r0 lsls r1, 16 asrs r1, 16 movs r0, 0 bl sub_8102BF8 lsls r0, 24 lsrs r6, r0, 24 ldrh r0, [r7, 0x30] movs r1, 0x2 subs r1, r0 lsls r1, 16 asrs r1, 16 movs r0, 0x1 bl sub_8102BF8 lsls r0, 24 lsrs r5, r0, 24 ldrh r0, [r7, 0x32] movs r1, 0x3 subs r1, r0 lsls r1, 16 asrs r1, 16 movs r0, 0x2 bl sub_8102BF8 lsls r0, 24 lsrs r4, r0, 24 adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 bl sub_81037BC lsls r0, 24 cmp r0, 0 bne _08103B94 adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 bl sub_810378C lsls r0, 24 cmp r0, 0 beq _08103B88 ldrb r1, [r7, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08103B94 _08103B88: ldrh r0, [r7, 0x32] adds r0, 0x1 strh r0, [r7, 0x32] b _08103B22 .align 2, 0 _08103B90: .4byte 0x02000000 _08103B94: ldr r7, _08103C04 @ =0x02000000 _08103B96: ldrh r0, [r7, 0x2E] movs r1, 0x3 subs r1, r0 lsls r1, 16 asrs r1, 16 movs r0, 0 bl sub_8102BF8 lsls r0, 24 lsrs r6, r0, 24 ldrh r0, [r7, 0x30] movs r1, 0x2 subs r1, r0 lsls r1, 16 asrs r1, 16 movs r0, 0x1 bl sub_8102BF8 lsls r0, 24 lsrs r5, r0, 24 ldrh r0, [r7, 0x32] movs r1, 0x1 subs r1, r0 lsls r1, 16 asrs r1, 16 movs r0, 0x2 bl sub_8102BF8 lsls r0, 24 lsrs r4, r0, 24 adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 bl sub_81037BC lsls r0, 24 cmp r0, 0 bne _08103C08 adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 bl sub_810378C lsls r0, 24 cmp r0, 0 beq _08103BFC ldrb r1, [r7, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08103C08 _08103BFC: ldrh r0, [r7, 0x32] adds r0, 0x1 strh r0, [r7, 0x32] b _08103B96 .align 2, 0 _08103C04: .4byte 0x02000000 _08103C08: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8103A78 thumb_func_start sub_8103C14 sub_8103C14: @ 8103C14 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _08103C40 @ =sub_8103C48 adds r0, r5, 0 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08103C44 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x26] bl _call_via_r5 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08103C40: .4byte sub_8103C48 _08103C44: .4byte gTasks thumb_func_end sub_8103C14 thumb_func_start sub_8103C48 sub_8103C48: @ 8103C48 push {r4,lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r3, _08103C70 @ =gUnknown_083ECBA0 ldr r2, _08103C74 @ =gTasks lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r4, 0x8 ldrsh r2, [r0, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 pop {r4} pop {r0} bx r0 .align 2, 0 _08103C70: .4byte gUnknown_083ECBA0 _08103C74: .4byte gTasks thumb_func_end sub_8103C48 thumb_func_start sub_8103C78 sub_8103C78: @ 8103C78 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 ldr r1, _08103CA8 @ =gUnknown_083ECBAC movs r2, 0x26 ldrsh r0, [r4, r2] lsls r0, 1 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0x73 str r1, [sp] movs r1, 0x62 movs r2, 0x63 movs r3, 0x72 bl sub_81065A8 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08103CA8: .4byte gUnknown_083ECBAC thumb_func_end sub_8103C78 thumb_func_start sub_8103CAC sub_8103CAC: @ 8103CAC push {lr} adds r1, r0, 0 ldrh r0, [r1, 0xA] adds r0, 0x1 strh r0, [r1, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0xB ble _08103CC4 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _08103CC4: pop {r0} bx r0 thumb_func_end sub_8103CAC thumb_func_start sub_8103CC8 sub_8103CC8: @ 8103CC8 push {r4,lr} sub sp, 0x4 lsls r4, r1, 24 lsrs r4, 24 ldr r1, _08103CFC @ =gUnknown_083ECBAC movs r2, 0x26 ldrsh r0, [r0, r2] lsls r0, 1 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0x53 str r1, [sp] movs r1, 0x42 movs r2, 0x43 movs r3, 0x52 bl sub_81065A8 adds r0, r4, 0 bl DestroyTask add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08103CFC: .4byte gUnknown_083ECBAC thumb_func_end sub_8103CC8 thumb_func_start sub_8103D00 sub_8103D00: @ 8103D00 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _08103D20 @ =gUnknown_083EDD08 lsls r1, r0, 2 adds r1, r2 ldr r2, [r1] ldr r1, _08103D24 @ =gUnknown_083EDD30 adds r0, r1 ldrb r1, [r0] adds r0, r2, 0 movs r2, 0x2 bl LoadPalette pop {r0} bx r0 .align 2, 0 _08103D20: .4byte gUnknown_083EDD08 _08103D24: .4byte gUnknown_083EDD30 thumb_func_end sub_8103D00 thumb_func_start sub_8103D28 sub_8103D28: @ 8103D28 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _08103D48 @ =gUnknown_083EDD1C lsls r1, r0, 2 adds r1, r2 ldr r2, [r1] ldr r1, _08103D4C @ =gUnknown_083EDD30 adds r0, r1 ldrb r1, [r0] adds r0, r2, 0 movs r2, 0x2 bl LoadPalette pop {r0} bx r0 .align 2, 0 _08103D48: .4byte gUnknown_083EDD1C _08103D4C: .4byte gUnknown_083EDD30 thumb_func_end sub_8103D28 thumb_func_start sub_8103D50 sub_8103D50: @ 8103D50 push {r4-r7,lr} lsls r0, 24 lsrs r1, r0, 24 movs r4, 0 ldr r0, _08103D84 @ =gUnknown_083EDD3B adds r0, r1, r0 ldrb r0, [r0] cmp r4, r0 bcs _08103D7C ldr r7, _08103D88 @ =gUnknown_083EDD35 adds r6, r0, 0 lsls r5, r1, 1 _08103D68: adds r0, r4, r5 adds r0, r7 ldrb r0, [r0] bl sub_8103D00 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r6 bcc _08103D68 _08103D7C: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08103D84: .4byte gUnknown_083EDD3B _08103D88: .4byte gUnknown_083EDD35 thumb_func_end sub_8103D50 thumb_func_start sub_8103D8C sub_8103D8C: @ 8103D8C push {r4-r7,lr} lsls r0, 24 lsrs r1, r0, 24 movs r4, 0 ldr r0, _08103DC0 @ =gUnknown_083EDD3B adds r0, r1, r0 ldrb r0, [r0] cmp r4, r0 bcs _08103DB8 ldr r7, _08103DC4 @ =gUnknown_083EDD35 adds r6, r0, 0 lsls r5, r1, 1 _08103DA4: adds r0, r4, r5 adds r0, r7 ldrb r0, [r0] bl sub_8103D28 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r6 bcc _08103DA4 _08103DB8: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08103DC0: .4byte gUnknown_083EDD3B _08103DC4: .4byte gUnknown_083EDD35 thumb_func_end sub_8103D8C thumb_func_start sub_8103DC8 sub_8103DC8: @ 8103DC8 push {r4-r6,lr} movs r4, 0 ldr r6, _08103DF8 @ =gSprites ldr r5, _08103DFC @ =0x02000044 _08103DD0: ldr r0, _08103E00 @ =sub_8103EE4 bl CreateInvisibleSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 strh r4, [r1, 0x2E] adds r1, r4, r5 strb r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 bls _08103DD0 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08103DF8: .4byte gSprites _08103DFC: .4byte 0x02000044 _08103E00: .4byte sub_8103EE4 thumb_func_end sub_8103DC8 thumb_func_start sub_8103E04 sub_8103E04: @ 8103E04 lsls r0, 24 lsrs r0, 24 ldr r1, _08103E30 @ =0x02000000 adds r1, 0x44 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08103E34 @ =gSprites adds r0, r1 movs r2, 0 movs r1, 0x1 strh r1, [r0, 0x30] movs r1, 0x4 strh r1, [r0, 0x32] strh r2, [r0, 0x34] strh r2, [r0, 0x36] movs r1, 0x2 strh r1, [r0, 0x38] strh r2, [r0, 0x3C] bx lr .align 2, 0 _08103E30: .4byte 0x02000000 _08103E34: .4byte gSprites thumb_func_end sub_8103E04 thumb_func_start sub_8103E38 sub_8103E38: @ 8103E38 push {r4,r5,lr} movs r2, 0 ldr r4, _08103E60 @ =0x02000044 ldr r3, _08103E64 @ =gSprites _08103E40: adds r0, r2, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r3 movs r5, 0x30 ldrsh r0, [r1, r5] cmp r0, 0 beq _08103E68 movs r5, 0x32 ldrsh r0, [r1, r5] cmp r0, 0 beq _08103E68 movs r0, 0 b _08103E74 .align 2, 0 _08103E60: .4byte 0x02000044 _08103E64: .4byte gSprites _08103E68: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x4 bls _08103E40 movs r0, 0x1 _08103E74: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8103E38 thumb_func_start sub_8103E7C sub_8103E7C: @ 8103E7C push {r4,r5,lr} movs r4, 0 ldr r5, _08103E94 @ =0x02000044 _08103E82: adds r0, r4, r5 ldrb r0, [r0] bl sub_8103EAC lsls r0, 24 cmp r0, 0 bne _08103E98 movs r0, 0 b _08103EA4 .align 2, 0 _08103E94: .4byte 0x02000044 _08103E98: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 bls _08103E82 movs r0, 0x1 _08103EA4: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8103E7C thumb_func_start sub_8103EAC sub_8103EAC: @ 8103EAC push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _08103EC8 @ =gSprites adds r1, r0 movs r2, 0x30 ldrsh r0, [r1, r2] cmp r0, 0 bne _08103ECC movs r0, 0x1 b _08103EDE .align 2, 0 _08103EC8: .4byte gSprites _08103ECC: ldrh r2, [r1, 0x3C] movs r3, 0x3C ldrsh r0, [r1, r3] cmp r0, 0 beq _08103EDA movs r0, 0 strh r0, [r1, 0x30] _08103EDA: lsls r0, r2, 24 lsrs r0, 24 _08103EDE: pop {r1} bx r1 thumb_func_end sub_8103EAC thumb_func_start sub_8103EE4 sub_8103EE4: @ 8103EE4 push {r4-r7,lr} adds r2, r0, 0 movs r1, 0x30 ldrsh r0, [r2, r1] cmp r0, 0 beq _08103F66 ldrh r0, [r2, 0x34] subs r0, 0x1 strh r0, [r2, 0x34] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _08103F4E movs r0, 0 strh r0, [r2, 0x3C] movs r6, 0x1 strh r6, [r2, 0x34] ldrh r1, [r2, 0x38] ldrh r3, [r2, 0x36] adds r0, r1, r3 strh r0, [r2, 0x36] movs r4, 0x4 ldrh r5, [r2, 0x32] movs r7, 0x32 ldrsh r3, [r2, r7] cmp r3, 0 beq _08103F20 movs r4, 0x8 _08103F20: lsls r0, 16 asrs r0, 16 cmp r0, 0 bgt _08103F38 strh r6, [r2, 0x3C] negs r0, r1 strh r0, [r2, 0x38] cmp r3, 0 beq _08103F4E subs r0, r5, 0x1 strh r0, [r2, 0x32] b _08103F40 _08103F38: cmp r0, r4 blt _08103F40 negs r0, r1 strh r0, [r2, 0x38] _08103F40: movs r1, 0x32 ldrsh r0, [r2, r1] cmp r0, 0 beq _08103F4E ldrh r0, [r2, 0x34] lsls r0, 1 strh r0, [r2, 0x34] _08103F4E: ldr r1, _08103F6C @ =gUnknown_083EDD30 movs r3, 0x2E ldrsh r0, [r2, r3] adds r0, r1 ldrb r0, [r0] ldrh r3, [r2, 0x36] lsls r3, 24 lsrs r3, 24 adds r1, r3, 0 adds r2, r3, 0 bl MultiplyPaletteRGBComponents _08103F66: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08103F6C: .4byte gUnknown_083EDD30 thumb_func_end sub_8103EE4 thumb_func_start sub_8103F70 sub_8103F70: @ 8103F70 push {r4,lr} ldr r4, _08103F98 @ =sub_8103FE8 adds r0, r4, 0 movs r1, 0x6 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08103F9C @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0x1 strh r2, [r1, 0xE] bl _call_via_r4 pop {r4} pop {r0} bx r0 .align 2, 0 _08103F98: .4byte sub_8103FE8 _08103F9C: .4byte gTasks thumb_func_end sub_8103F70 thumb_func_start sub_8103FA0 sub_8103FA0: @ 8103FA0 push {lr} ldr r0, _08103FC4 @ =sub_8103FE8 bl FindTaskIdByFunc lsls r0, 24 lsrs r2, r0, 24 ldr r1, _08103FC8 @ =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 movs r1, 0xC ldrsh r0, [r0, r1] cmp r0, 0 beq _08103FCC movs r0, 0 b _08103FE0 .align 2, 0 _08103FC4: .4byte sub_8103FE8 _08103FC8: .4byte gTasks _08103FCC: adds r0, r2, 0 bl DestroyTask ldr r0, _08103FE4 @ =gUnknown_083EDDAC ldr r0, [r0] movs r1, 0x10 movs r2, 0x20 bl LoadPalette movs r0, 0x1 _08103FE0: pop {r1} bx r1 .align 2, 0 _08103FE4: .4byte gUnknown_083EDDAC thumb_func_end sub_8103FA0 thumb_func_start sub_8103FE8 sub_8103FE8: @ 8103FE8 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _08104040 @ =gTasks adds r2, r1, r0 ldrh r0, [r2, 0xA] subs r0, 0x1 strh r0, [r2, 0xA] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _08104026 movs r0, 0x4 strh r0, [r2, 0xA] ldrh r1, [r2, 0xE] ldrh r3, [r2, 0xC] adds r0, r1, r3 strh r0, [r2, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0 beq _08104022 cmp r0, 0x2 bne _08104026 _08104022: negs r0, r1 strh r0, [r2, 0xE] _08104026: ldr r0, _08104044 @ =gUnknown_083EDDA0 movs r3, 0xC ldrsh r1, [r2, r3] lsls r1, 2 adds r1, r0 ldr r0, [r1] movs r1, 0x10 movs r2, 0x20 bl LoadPalette pop {r0} bx r0 .align 2, 0 _08104040: .4byte gTasks _08104044: .4byte gUnknown_083EDDA0 thumb_func_end sub_8103FE8 thumb_func_start sub_8104048 sub_8104048: @ 8104048 push {lr} ldr r0, _0810405C @ =sub_81040E8 movs r1, 0x8 bl CreateTask ldr r1, _08104060 @ =0x02000000 adds r1, 0x3E strb r0, [r1] pop {r0} bx r0 .align 2, 0 _0810405C: .4byte sub_81040E8 _08104060: .4byte 0x02000000 thumb_func_end sub_8104048 thumb_func_start sub_8104064 sub_8104064: @ 8104064 push {r4,lr} ldr r0, _08104090 @ =0x02000000 adds r0, 0x3E ldrb r0, [r0] lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _08104094 @ =gTasks adds r4, r0 adds r0, r4, 0 bl sub_810421C movs r1, 0x1 strh r1, [r4, 0x8] ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] strh r1, [r4, 0x26] pop {r4} pop {r0} bx r0 .align 2, 0 _08104090: .4byte 0x02000000 _08104094: .4byte gTasks thumb_func_end sub_8104064 thumb_func_start sub_8104098 sub_8104098: @ 8104098 push {r4,lr} ldr r0, _081040C0 @ =0x02000000 adds r0, 0x3E ldrb r0, [r0] lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _081040C4 @ =gTasks adds r4, r0 adds r0, r4, 0 bl sub_810421C movs r0, 0x3 strh r0, [r4, 0x8] movs r0, 0x1 strh r0, [r4, 0x26] pop {r4} pop {r0} bx r0 .align 2, 0 _081040C0: .4byte 0x02000000 _081040C4: .4byte gTasks thumb_func_end sub_8104098 thumb_func_start sub_81040C8 sub_81040C8: @ 81040C8 ldr r2, _081040E0 @ =gTasks ldr r0, _081040E4 @ =0x02000000 adds r0, 0x3E ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrh r0, [r0, 0x26] lsls r0, 24 lsrs r0, 24 bx lr .align 2, 0 _081040E0: .4byte gTasks _081040E4: .4byte 0x02000000 thumb_func_end sub_81040C8 thumb_func_start sub_81040E8 sub_81040E8: @ 81040E8 push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r3, _08104110 @ =gUnknown_083ECBB4 ldr r2, _08104114 @ =gTasks lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r2, 0x8 ldrsh r1, [r0, r2] lsls r1, 2 adds r1, r3 ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _08104110: .4byte gUnknown_083ECBB4 _08104114: .4byte gTasks thumb_func_end sub_81040E8 thumb_func_start nullsub_68 nullsub_68: @ 8104118 bx lr thumb_func_end nullsub_68 thumb_func_start sub_810411C sub_810411C: @ 810411C push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0xA] lsls r0, 19 movs r1, 0xA0 lsls r1, 13 adds r0, r1 asrs r0, 16 movs r1, 0x14 bl sub_8105B1C lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xC] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] pop {r4} pop {r0} bx r0 thumb_func_end sub_810411C thumb_func_start sub_8104144 sub_8104144: @ 8104144 push {r4,lr} adds r4, r0, 0 ldr r2, _08104174 @ =gSprites movs r0, 0xC ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x3C ldrsh r0, [r0, r1] cmp r0, 0 beq _0810419E ldrh r1, [r4, 0xA] adds r0, r1, 0x2 lsls r0, 16 lsrs r2, r0, 16 movs r0, 0 lsls r1, 16 asrs r1, 16 cmp r1, 0x1 bne _08104178 movs r0, 0x1 b _0810417E .align 2, 0 _08104174: .4byte gSprites _08104178: cmp r1, 0x10 bne _0810417E movs r0, 0x2 _0810417E: lsls r1, r2, 16 asrs r1, 15 ldr r2, _081041A4 @ =0x0600e800 adds r1, r2 adds r1, 0x80 ldr r2, _081041A8 @ =gUnknown_083ECBC4 lsls r0, 2 adds r0, r2 ldrh r0, [r0] strh r0, [r1] ldrb r0, [r4, 0xC] bl sub_8105B88 movs r0, 0 strh r0, [r4, 0x8] strh r0, [r4, 0x26] _0810419E: pop {r4} pop {r0} bx r0 .align 2, 0 _081041A4: .4byte 0x0600e800 _081041A8: .4byte gUnknown_083ECBC4 thumb_func_end sub_8104144 thumb_func_start sub_81041AC sub_81041AC: @ 81041AC push {r4,lr} adds r3, r0, 0 ldrh r1, [r3, 0xA] adds r0, r1, 0x2 lsls r0, 16 lsrs r4, r0, 16 movs r2, 0 lsls r1, 16 asrs r1, 16 cmp r1, 0x1 bne _081041C6 movs r2, 0x1 b _081041CC _081041C6: cmp r1, 0x10 bne _081041CC movs r2, 0x2 _081041CC: movs r1, 0xC ldrsh r0, [r3, r1] cmp r0, 0 bne _081041F0 lsls r0, r4, 16 asrs r0, 15 ldr r1, _08104214 @ =0x0600e800 adds r0, r1 adds r0, 0x80 ldr r1, _08104218 @ =gUnknown_083ECBC4 lsls r2, 2 adds r1, 0x2 adds r2, r1 ldrh r1, [r2] strh r1, [r0] ldrh r0, [r3, 0xA] subs r0, 0x1 strh r0, [r3, 0xA] _081041F0: ldrh r0, [r3, 0xC] adds r0, 0x1 strh r0, [r3, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x13 ble _08104202 movs r0, 0 strh r0, [r3, 0xC] _08104202: movs r1, 0xA ldrsh r0, [r3, r1] cmp r0, 0 bne _0810420E strh r0, [r3, 0x8] strh r0, [r3, 0x26] _0810420E: pop {r4} pop {r0} bx r0 .align 2, 0 _08104214: .4byte 0x0600e800 _08104218: .4byte gUnknown_083ECBC4 thumb_func_end sub_81041AC thumb_func_start sub_810421C sub_810421C: @ 810421C push {lr} movs r1, 0x2 adds r2, r0, 0 adds r2, 0x8 movs r3, 0 _08104226: lsls r0, r1, 1 adds r0, r2, r0 strh r3, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xF bls _08104226 pop {r0} bx r0 thumb_func_end sub_810421C thumb_func_start sub_810423C sub_810423C: @ 810423C push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r5, r0, 24 movs r2, 0x3 ldr r6, _08104268 @ =0x0600e800 movs r4, 0 ldr r0, _0810426C @ =gTasks mov r8, r0 ldr r1, _08104270 @ =0x02000000 mov r12, r1 cmp r4, r5 bge _081042A6 ldr r7, _08104274 @ =gUnknown_083ECBC4 _0810425A: movs r3, 0 lsls r0, r4, 16 asrs r0, 16 cmp r0, 0 bne _08104278 movs r3, 0x1 b _0810427E .align 2, 0 _08104268: .4byte 0x0600e800 _0810426C: .4byte gTasks _08104270: .4byte 0x02000000 _08104274: .4byte gUnknown_083ECBC4 _08104278: cmp r0, 0xF bne _0810427E movs r3, 0x2 _0810427E: lsls r2, 16 asrs r2, 16 lsls r1, r2, 1 adds r1, r6 adds r1, 0x80 lsls r0, r3, 2 adds r0, r7 ldrh r0, [r0] strh r0, [r1] lsls r0, r4, 16 movs r1, 0x80 lsls r1, 9 adds r0, r1 adds r2, 0x1 lsls r2, 16 lsrs r2, 16 lsrs r4, r0, 16 asrs r0, 16 cmp r0, r5 blt _0810425A _081042A6: lsls r1, r4, 16 asrs r0, r1, 16 cmp r0, 0xF bgt _081042F0 ldr r7, _081042BC @ =gUnknown_083ECBC4 + 0x2 _081042B0: movs r3, 0 asrs r0, r1, 16 cmp r0, 0 bne _081042C0 movs r3, 0x1 b _081042C6 .align 2, 0 _081042BC: .4byte gUnknown_083ECBC4 + 0x2 _081042C0: cmp r0, 0xF bne _081042C6 movs r3, 0x2 _081042C6: lsls r2, 16 asrs r2, 16 lsls r1, r2, 1 adds r1, r6 adds r1, 0x80 lsls r0, r3, 2 adds r0, r7 ldrh r0, [r0] strh r0, [r1] lsls r0, r4, 16 movs r1, 0x80 lsls r1, 9 adds r0, r1 lsrs r4, r0, 16 adds r2, 0x1 lsls r2, 16 lsrs r2, 16 lsls r1, r4, 16 asrs r0, r1, 16 cmp r0, 0xF ble _081042B0 _081042F0: mov r0, r12 adds r0, 0x3E ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 add r0, r8 strh r5, [r0, 0xA] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_810423C thumb_func_start sub_810430C sub_810430C: @ 810430C push {r4,lr} ldr r4, _08104328 @ =sub_810434C adds r0, r4, 0 movs r1, 0x7 bl CreateTask lsls r0, 24 lsrs r0, 24 bl _call_via_r4 pop {r4} pop {r0} bx r0 .align 2, 0 _08104328: .4byte sub_810434C thumb_func_end sub_810430C thumb_func_start sub_810432C sub_810432C: @ 810432C push {lr} ldr r0, _08104340 @ =sub_810434C bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _08104344 movs r0, 0 b _08104346 .align 2, 0 _08104340: .4byte sub_810434C _08104344: movs r0, 0x1 _08104346: pop {r1} bx r1 thumb_func_end sub_810432C thumb_func_start sub_810434C sub_810434C: @ 810434C push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r3, _08104374 @ =gUnknown_083ECBD0 ldr r2, _08104378 @ =gTasks lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r2, 0x8 ldrsh r1, [r0, r2] lsls r1, 2 adds r1, r3 ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _08104374: .4byte gUnknown_083ECBD0 _08104378: .4byte gTasks thumb_func_end sub_810434C thumb_func_start sub_810437C sub_810437C: @ 810437C push {lr} ldr r1, _081043DC @ =0x02000000 movs r2, 0 strb r2, [r1, 0xA] strh r2, [r1, 0x14] strh r2, [r1, 0x16] ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] strh r2, [r0, 0xA] movs r1, 0x1E strh r1, [r0, 0xC] movs r1, 0xA0 lsls r1, 3 strh r1, [r0, 0x10] ldr r0, _081043E0 @ =gSpriteCoordOffsetX strh r2, [r0] ldr r0, _081043E4 @ =gSpriteCoordOffsetY strh r2, [r0] ldr r0, _081043E8 @ =REG_BG1HOFS strh r2, [r0] adds r0, 0x2 strh r2, [r0] movs r0, 0x1E movs r1, 0 bl sub_8104A40 bl sub_81051C0 bl sub_8105100 bl sub_81052EC bl sub_81053A0 bl sub_810545C bl sub_8102680 bl StopMapMusic movs r0, 0xC4 lsls r0, 1 bl PlayNewMapMusic pop {r0} bx r0 .align 2, 0 _081043DC: .4byte 0x02000000 _081043E0: .4byte gSpriteCoordOffsetX _081043E4: .4byte gSpriteCoordOffsetY _081043E8: .4byte REG_BG1HOFS thumb_func_end sub_810437C thumb_func_start sub_81043EC sub_81043EC: @ 81043EC push {r4,lr} adds r4, r0, 0 ldr r1, _0810445C @ =gSpriteCoordOffsetX ldrh r0, [r1] subs r0, 0x8 strh r0, [r1] ldrh r2, [r4, 0xA] adds r2, 0x8 strh r2, [r4, 0xA] movs r1, 0xA ldrsh r0, [r4, r1] adds r0, 0xF0 movs r1, 0xFF ands r0, r1 lsrs r3, r0, 3 ldr r1, _08104460 @ =REG_BG1HOFS ldr r0, _08104464 @ =0x000001ff ands r2, r0 strh r2, [r1] adds r2, r3, 0 movs r1, 0xC ldrsh r0, [r4, r1] cmp r2, r0 beq _08104438 movs r1, 0xE ldrsh r0, [r4, r1] cmp r0, 0x12 bgt _08104438 strh r3, [r4, 0xC] ldrh r0, [r4, 0xA] lsls r0, 16 asrs r0, 19 strh r0, [r4, 0xE] movs r0, 0xE ldrsh r1, [r4, r0] adds r0, r2, 0 bl sub_8104A40 _08104438: movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0xC7 ble _0810444A ldrh r0, [r4, 0x8] adds r0, 0x1 movs r1, 0 strh r0, [r4, 0x8] strh r1, [r4, 0xE] _0810444A: ldrh r0, [r4, 0x10] lsls r0, 16 asrs r0, 24 bl sub_8102D28 pop {r4} pop {r0} bx r0 .align 2, 0 _0810445C: .4byte gSpriteCoordOffsetX _08104460: .4byte REG_BG1HOFS _08104464: .4byte 0x000001ff thumb_func_end sub_81043EC thumb_func_start sub_8104468 sub_8104468: @ 8104468 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x10] lsls r0, 16 asrs r0, 24 bl sub_8102D28 ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] lsls r0, 16 asrs r0, 16 cmp r0, 0x3B ble _08104492 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] bl sub_8105578 bl sub_81056F0 _08104492: pop {r4} pop {r0} bx r0 thumb_func_end sub_8104468 thumb_func_start sub_8104498 sub_8104498: @ 8104498 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 adds r7, r0, 0 ldr r1, _08104534 @ =gUnknown_083ECC1C mov r0, sp movs r2, 0x4 bl memcpy add r0, sp, 0x4 mov r8, r0 ldr r1, _08104538 @ =gUnknown_083ECC20 movs r2, 0x8 bl memcpy add r6, sp, 0xC ldr r1, _0810453C @ =gUnknown_083ECC28 adds r0, r6, 0 movs r2, 0x8 bl memcpy ldrh r0, [r7, 0x10] lsls r0, 16 asrs r0, 24 bl sub_8102D28 ldrh r0, [r7, 0x10] subs r0, 0x4 strh r0, [r7, 0x10] lsls r0, 16 asrs r0, 24 movs r5, 0x4 subs r5, r0 lsls r4, r5, 1 add r8, r4 mov r1, r8 movs r2, 0 ldrsh r0, [r1, r2] bl sub_8105688 adds r6, r4 movs r1, 0 ldrsh r0, [r6, r1] bl sub_81057E8 ldr r0, _08104540 @ =0x02000000 adds r0, 0x3F ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08104544 @ =gSprites adds r0, r1 mov r2, sp adds r1, r2, r5 ldrb r1, [r1] bl StartSpriteAnimIfDifferent movs r1, 0x10 ldrsh r0, [r7, r1] movs r1, 0x80 lsls r1, 1 cmp r0, r1 bgt _08104526 ldrh r0, [r7, 0x8] adds r0, 0x1 strh r0, [r7, 0x8] strh r1, [r7, 0x10] movs r0, 0 strh r0, [r7, 0x12] _08104526: add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08104534: .4byte gUnknown_083ECC1C _08104538: .4byte gUnknown_083ECC20 _0810453C: .4byte gUnknown_083ECC28 _08104540: .4byte 0x02000000 _08104544: .4byte gSprites thumb_func_end sub_8104498 thumb_func_start sub_8104548 sub_8104548: @ 8104548 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x10] lsls r0, 16 asrs r0, 24 bl sub_8102D28 ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] lsls r0, 16 asrs r0, 16 cmp r0, 0x4F ble _0810458A ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0 strh r0, [r4, 0x12] movs r0, 0x2 bl sub_81057E8 ldr r0, _08104590 @ =0x02000000 adds r0, 0x3F ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08104594 @ =gSprites adds r0, r1 movs r1, 0x3 bl StartSpriteAnimIfDifferent _0810458A: pop {r4} pop {r0} bx r0 .align 2, 0 _08104590: .4byte 0x02000000 _08104594: .4byte gSprites thumb_func_end sub_8104548 thumb_func_start sub_8104598 sub_8104598: @ 8104598 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x10] lsls r0, 16 asrs r0, 24 bl sub_8102D28 ldrb r0, [r4, 0x10] adds r0, 0x80 strh r0, [r4, 0x10] ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] lsls r0, 16 asrs r0, 16 cmp r0, 0x4F ble _081045C4 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0 strh r0, [r4, 0x12] _081045C4: pop {r4} pop {r0} bx r0 thumb_func_end sub_8104598 thumb_func_start sub_81045CC sub_81045CC: @ 81045CC push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x10] lsls r0, 16 asrs r0, 24 bl sub_8102D28 ldrb r0, [r4, 0x10] adds r0, 0x40 strh r0, [r4, 0x10] ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] lsls r0, 16 asrs r0, 16 cmp r0, 0x27 ble _08104634 movs r0, 0 strh r0, [r4, 0x12] ldr r1, _0810460C @ =0x02000000 ldrb r0, [r1, 0x5] cmp r0, 0 beq _08104610 ldrb r1, [r1, 0xA] movs r2, 0x14 ldrsh r0, [r4, r2] cmp r1, r0 bgt _0810462E ldrh r0, [r4, 0x8] adds r0, 0x1 b _0810462C .align 2, 0 _0810460C: .4byte 0x02000000 _08104610: movs r1, 0x14 ldrsh r0, [r4, r1] cmp r0, 0x3 ble _0810461E ldrh r0, [r4, 0x8] adds r0, 0x1 b _0810462C _0810461E: ldrh r0, [r4, 0x14] bl sub_81026DC lsls r0, 24 cmp r0, 0 beq _0810462E movs r0, 0xE _0810462C: strh r0, [r4, 0x8] _0810462E: ldrh r0, [r4, 0x14] adds r0, 0x1 strh r0, [r4, 0x14] _08104634: pop {r4} pop {r0} bx r0 thumb_func_end sub_81045CC thumb_func_start sub_810463C sub_810463C: @ 810463C push {r4-r6,lr} adds r4, r0, 0 ldr r6, _08104660 @ =0x02000000 movs r1, 0x14 ldrsh r0, [r6, r1] movs r1, 0x14 bl __modsi3 lsls r0, 16 lsrs r5, r0, 16 cmp r0, 0 beq _08104664 ldrh r0, [r4, 0x10] lsls r0, 16 asrs r0, 24 bl sub_8102D5C b _08104688 .align 2, 0 _08104660: .4byte 0x02000000 _08104664: movs r0, 0x1 bl sub_8102C48 lsls r0, 24 lsrs r0, 24 ldrb r1, [r6, 0x5] cmp r0, r1 beq _08104692 ldrh r0, [r4, 0x10] lsls r0, 16 asrs r0, 24 bl sub_8102D28 movs r1, 0x14 ldrsh r0, [r6, r1] movs r1, 0x14 bl __modsi3 _08104688: lsls r0, 16 lsrs r5, r0, 16 ldrb r0, [r4, 0x10] adds r0, 0x40 strh r0, [r4, 0x10] _08104692: lsls r0, r5, 16 asrs r5, r0, 16 cmp r5, 0 bne _081046B4 movs r0, 0x1 bl sub_8102C48 ldr r1, _081046BC @ =0x02000000 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1, 0x5] cmp r0, r1 bne _081046B4 strh r5, [r4, 0x10] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _081046B4: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081046BC: .4byte 0x02000000 thumb_func_end sub_810463C thumb_func_start sub_81046C0 sub_81046C0: @ 81046C0 push {r4-r7,lr} adds r4, r0, 0 ldrh r0, [r4, 0x10] adds r0, 0x1 movs r7, 0 strh r0, [r4, 0x10] lsls r0, 16 asrs r0, 16 cmp r0, 0x3B ble _08104758 bl StopMapMusic bl sub_81056C0 bl sub_8105804 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] ldr r5, _08104710 @ =0x02000000 ldrb r0, [r5, 0x5] cmp r0, 0 bne _0810471C movs r0, 0xA0 strh r0, [r4, 0x10] adds r0, r5, 0 adds r0, 0x3F ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08104714 @ =gSprites adds r0, r1 movs r1, 0x5 bl StartSpriteAnimIfDifferent ldr r0, _08104718 @ =0x00000187 bl PlayFanfare b _08104758 .align 2, 0 _08104710: .4byte 0x02000000 _08104714: .4byte gSprites _08104718: .4byte 0x00000187 _0810471C: movs r0, 0xC0 strh r0, [r4, 0x10] adds r6, r5, 0 adds r6, 0x3F ldrb r1, [r6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _08104760 @ =gSprites adds r0, r4 movs r1, 0x4 bl StartSpriteAnimIfDifferent ldrb r1, [r6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x2B strb r7, [r0] ldrb r0, [r5, 0x2] cmp r0, 0 beq _08104750 bl sub_8104098 strb r7, [r5, 0x2] _08104750: movs r0, 0xC3 lsls r0, 1 bl PlayFanfare _08104758: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08104760: .4byte gSprites thumb_func_end sub_81046C0 thumb_func_start sub_8104764 sub_8104764: @ 8104764 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x10] movs r2, 0x10 ldrsh r0, [r4, r2] cmp r0, 0 beq _0810477C subs r0, r1, 0x1 strh r0, [r4, 0x10] lsls r0, 16 cmp r0, 0 bne _0810478C _0810477C: bl sub_81040C8 lsls r0, 24 cmp r0, 0 bne _0810478C ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _0810478C: pop {r4} pop {r0} bx r0 thumb_func_end sub_8104764 thumb_func_start sub_8104794 sub_8104794: @ 8104794 push {r4,lr} adds r3, r0, 0 ldr r1, _081047D4 @ =gSpriteCoordOffsetX ldrh r0, [r1] subs r0, 0x8 strh r0, [r1] ldrh r2, [r3, 0xA] adds r2, 0x8 strh r2, [r3, 0xA] ldrh r0, [r3, 0xE] adds r0, 0x8 strh r0, [r3, 0xE] movs r1, 0xA ldrsh r0, [r3, r1] subs r0, 0x8 movs r1, 0xFF ands r0, r1 lsrs r4, r0, 3 ldr r1, _081047D8 @ =REG_BG1HOFS ldr r0, _081047DC @ =0x000001ff ands r2, r0 strh r2, [r1] ldrh r0, [r3, 0xE] lsls r0, 16 asrs r0, 19 cmp r0, 0x19 bgt _081047E0 adds r0, r4, 0 bl sub_8104A88 b _081047E6 .align 2, 0 _081047D4: .4byte gSpriteCoordOffsetX _081047D8: .4byte REG_BG1HOFS _081047DC: .4byte 0x000001ff _081047E0: ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] _081047E6: pop {r4} pop {r0} bx r0 thumb_func_end sub_8104794 thumb_func_start sub_81047EC sub_81047EC: @ 81047EC push {r4-r6,lr} adds r5, r0, 0 ldr r4, _08104834 @ =0x02000000 movs r6, 0 strb r6, [r4, 0xB] ldrb r0, [r4, 0x5] strb r0, [r4, 0xA] ldr r0, _08104838 @ =gSpriteCoordOffsetX strh r6, [r0] ldr r0, _0810483C @ =REG_BG1HOFS strh r6, [r0] movs r0, 0x8 strh r0, [r4, 0x1A] bl sub_810514C bl sub_81054B8 bl sub_8105524 adds r0, r4, 0 adds r0, 0x60 ldrh r0, [r0] bl PlayNewMapMusic ldrb r0, [r4, 0xA] cmp r0, 0 bne _08104844 ldr r0, _08104840 @ =sub_810434C bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask b _0810485A .align 2, 0 _08104834: .4byte 0x02000000 _08104838: .4byte gSpriteCoordOffsetX _0810483C: .4byte REG_BG1HOFS _08104840: .4byte sub_810434C _08104844: movs r0, 0x4 bl sub_8104CAC bl dp15_jump_random_unknown strh r0, [r5, 0xA] strh r6, [r5, 0xC] strh r6, [r5, 0xE] ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] _0810485A: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81047EC thumb_func_start sub_8104860 sub_8104860: @ 8104860 push {r4-r6,lr} adds r4, r0, 0 ldr r5, _0810487C @ =0x02000000 ldrh r0, [r5, 0x1A] lsls r6, r0, 16 asrs r1, r6, 16 movs r2, 0xA ldrsh r0, [r4, r2] cmp r1, r0 bne _08104880 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _081048A2 .align 2, 0 _0810487C: .4byte 0x02000000 _08104880: movs r1, 0x1C ldrsh r0, [r5, r1] movs r1, 0x18 bl __modsi3 lsls r0, 16 cmp r0, 0 bne _081048A2 ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] movs r1, 0x7 ands r0, r1 cmp r0, 0 bne _081048A2 asrs r0, r6, 17 strh r0, [r5, 0x1A] _081048A2: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8104860 thumb_func_start sub_81048A8 sub_81048A8: @ 81048A8 push {lr} bl sub_8104E18 lsls r0, 24 cmp r0, 0 beq _081048C2 ldr r0, _081048C8 @ =sub_810434C bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _081048C2: pop {r0} bx r0 .align 2, 0 _081048C8: .4byte sub_810434C thumb_func_end sub_81048A8 thumb_func_start sub_81048CC sub_81048CC: @ 81048CC push {r4,r5,lr} adds r4, r0, 0 bl sub_81054B8 bl sub_81056C0 bl sub_8105804 bl sub_8105854 ldr r5, _08104934 @ =gSprites ldr r3, _08104938 @ =0x02000000 adds r0, r3, 0 adds r0, 0x4E ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] adds r3, 0x3F ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x5 bl StartSpriteAnimIfDifferent ldrh r0, [r4, 0x8] adds r0, 0x1 movs r1, 0 strh r0, [r4, 0x8] movs r0, 0x4 strh r0, [r4, 0x10] strh r1, [r4, 0x12] bl StopMapMusic ldr r0, _0810493C @ =0x00000187 bl PlayFanfare movs r0, 0xB2 bl PlaySE pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08104934: .4byte gSprites _08104938: .4byte 0x02000000 _0810493C: .4byte 0x00000187 thumb_func_end sub_81048CC thumb_func_start sub_8104940 sub_8104940: @ 8104940 push {r4,r5,lr} adds r4, r0, 0 ldr r0, _081049B8 @ =gSpriteCoordOffsetY ldrh r1, [r4, 0x10] strh r1, [r0] ldr r0, _081049BC @ =REG_BG1VOFS strh r1, [r0] ldrh r1, [r4, 0x12] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0810495E ldrh r0, [r4, 0x10] negs r0, r0 strh r0, [r4, 0x10] _0810495E: ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] movs r1, 0x1F ands r0, r1 cmp r0, 0 bne _08104974 ldrh r0, [r4, 0x10] lsls r0, 16 asrs r0, 17 strh r0, [r4, 0x10] _08104974: movs r0, 0x10 ldrsh r5, [r4, r0] cmp r5, 0 bne _081049B0 bl sub_81058A0 bl sub_81058C4 bl sub_8105284 bl sub_81059E8 ldr r2, _081049C0 @ =gSprites ldr r0, _081049C4 @ =0x02000000 adds r0, 0x4E ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] strh r5, [r4, 0x12] _081049B0: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081049B8: .4byte gSpriteCoordOffsetY _081049BC: .4byte REG_BG1VOFS _081049C0: .4byte gSprites _081049C4: .4byte 0x02000000 thumb_func_end sub_8104940 thumb_func_start sub_81049C8 sub_81049C8: @ 81049C8 push {r4,lr} adds r4, r0, 0 ldr r0, _081049F0 @ =gSpriteCoordOffsetY movs r1, 0 strh r1, [r0] ldr r0, _081049F4 @ =REG_BG1VOFS strh r1, [r0] bl sub_8105ACC lsls r0, 24 cmp r0, 0 beq _081049EA ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] bl sub_8105AEC _081049EA: pop {r4} pop {r0} bx r0 .align 2, 0 _081049F0: .4byte gSpriteCoordOffsetY _081049F4: .4byte REG_BG1VOFS thumb_func_end sub_81049C8 thumb_func_start sub_81049F8 sub_81049F8: @ 81049F8 push {lr} ldr r0, _08104A30 @ =gSpriteCoordOffsetX movs r1, 0 strh r1, [r0] ldr r0, _08104A34 @ =REG_BG1HOFS strh r1, [r0] ldr r0, _08104A38 @ =0x02000000 adds r0, 0x60 ldrh r0, [r0] bl PlayNewMapMusic bl sub_810514C bl sub_8105554 bl sub_8105524 bl sub_81059B8 ldr r0, _08104A3C @ =sub_810434C bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask pop {r0} bx r0 .align 2, 0 _08104A30: .4byte gSpriteCoordOffsetX _08104A34: .4byte REG_BG1HOFS _08104A38: .4byte 0x02000000 _08104A3C: .4byte sub_810434C thumb_func_end sub_81049F8 thumb_func_start sub_8104A40 sub_8104A40: @ 8104A40 push {r4-r7,lr} movs r3, 0x4 ldr r7, _08104A80 @ =gReelTimeWindowTilemap lsls r1, 16 asrs r5, r1, 16 lsls r0, 16 asrs r4, r0, 16 ldr r6, _08104A84 @ =0x0600e000 _08104A50: lsls r2, r3, 16 asrs r2, 16 subs r1, r2, 0x4 lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r5, r0 lsls r0, 1 adds r0, r7 ldrh r1, [r0] lsls r0, r2, 5 adds r0, r4 lsls r0, 1 adds r0, r6 strh r1, [r0] adds r2, 0x1 lsls r2, 16 lsrs r3, r2, 16 asrs r2, 16 cmp r2, 0xE ble _08104A50 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08104A80: .4byte gReelTimeWindowTilemap _08104A84: .4byte 0x0600e000 thumb_func_end sub_8104A40 thumb_func_start sub_8104A88 sub_8104A88: @ 8104A88 push {r4,r5,lr} movs r2, 0x4 lsls r0, 16 asrs r3, r0, 16 ldr r5, _08104AB4 @ =0x0600e000 movs r4, 0 _08104A94: lsls r1, r2, 16 asrs r1, 16 lsls r0, r1, 5 adds r0, r3 lsls r0, 1 adds r0, r5 strh r4, [r0] adds r1, 0x1 lsls r1, 16 lsrs r2, r1, 16 asrs r1, 16 cmp r1, 0xE ble _08104A94 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08104AB4: .4byte 0x0600e000 thumb_func_end sub_8104A88 thumb_func_start sub_8104AB8 sub_8104AB8: @ 8104AB8 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _08104AE4 @ =sub_8104B0C adds r0, r5, 0 movs r1, 0x1 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08104AE8 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0xA] bl _call_via_r5 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08104AE4: .4byte sub_8104B0C _08104AE8: .4byte gTasks thumb_func_end sub_8104AB8 thumb_func_start sub_8104AEC sub_8104AEC: @ 8104AEC push {lr} ldr r0, _08104B00 @ =sub_8104B0C bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _08104B04 movs r0, 0 b _08104B06 .align 2, 0 _08104B00: .4byte sub_8104B0C _08104B04: movs r0, 0x1 _08104B06: pop {r1} bx r1 thumb_func_end sub_8104AEC thumb_func_start sub_8104B0C sub_8104B0C: @ 8104B0C push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r3, _08104B34 @ =gUnknown_083ECC30 ldr r2, _08104B38 @ =gTasks lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r2, 0x8 ldrsh r1, [r0, r2] lsls r1, 2 adds r1, r3 ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _08104B34: .4byte gUnknown_083ECC30 _08104B38: .4byte gTasks thumb_func_end sub_8104B0C thumb_func_start sub_8104B3C sub_8104B3C: @ 8104B3C push {r4,lr} sub sp, 0x4 adds r4, r0, 0 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8104B3C thumb_func_start sub_8104B60 sub_8104B60: @ 8104B60 push {lr} adds r2, r0, 0 ldr r0, _08104B7C @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08104B76 ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] _08104B76: pop {r0} bx r0 .align 2, 0 _08104B7C: .4byte gPaletteFade thumb_func_end sub_8104B60 thumb_func_start sub_8104B80 sub_8104B80: @ 8104B80 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 bl sub_8104DA4 bl sub_81065DC ldr r0, _08104BC0 @ =gWindowConfig_81E7144 bl BasicInitMenuWindow ldr r0, _08104BC4 @ =gOtherText_ReelTime movs r1, 0xA movs r2, 0x20 movs r3, 0x1 bl MenuPrint_PixelCoords movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08104BC0: .4byte gWindowConfig_81E7144 _08104BC4: .4byte gOtherText_ReelTime thumb_func_end sub_8104B80 thumb_func_start sub_8104BC8 sub_8104BC8: @ 8104BC8 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 ldr r0, _08104BF8 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x6 ands r0, r1 cmp r0, 0 beq _08104BF0 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _08104BF0: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08104BF8: .4byte gMain thumb_func_end sub_8104BC8 thumb_func_start sub_8104BFC sub_8104BFC: @ 8104BFC push {r4,lr} sub sp, 0x4 adds r4, r0, 0 bl MenuZeroFillScreen ldr r0, _08104C3C @ =gWindowConfig_81E7128 bl BasicInitMenuWindow bl sub_81064B8 ldrb r0, [r4, 0xA] bl sub_8104CAC ldr r0, _08104C40 @ =0x02000000 ldrb r0, [r0, 0x2] bl sub_810423C movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08104C3C: .4byte gWindowConfig_81E7128 _08104C40: .4byte 0x02000000 thumb_func_end sub_8104BFC thumb_func_start sub_8104C44 sub_8104C44: @ 8104C44 push {lr} ldr r0, _08104C58 @ =sub_8104B0C bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask pop {r0} bx r0 .align 2, 0 _08104C58: .4byte sub_8104B0C thumb_func_end sub_8104C44 thumb_func_start sub_8104C5C sub_8104C5C: @ 8104C5C push {lr} ldr r0, _08104C9C @ =sub_8104E74 movs r1, 0x3 bl CreateTask lsls r0, 24 lsrs r1, r0, 24 ldr r0, _08104CA0 @ =0x02000000 adds r0, 0x3D strb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _08104CA4 @ =gTasks adds r0, r1 ldr r1, _08104CA8 @ =0x0000ffff strh r1, [r0, 0xA] movs r1, 0x4 adds r2, r0, 0 adds r2, 0x8 movs r3, 0x40 _08104C86: lsls r0, r1, 1 adds r0, r2, r0 strh r3, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xF bls _08104C86 pop {r0} bx r0 .align 2, 0 _08104C9C: .4byte sub_8104E74 _08104CA0: .4byte 0x02000000 _08104CA4: .4byte gTasks _08104CA8: .4byte 0x0000ffff thumb_func_end sub_8104C5C thumb_func_start sub_8104CAC sub_8104CAC: @ 8104CAC push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8104DA4 ldr r0, _08104D24 @ =0x02000000 adds r0, 0x3D ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _08104D28 @ =gTasks adds r7, r0, r1 strh r4, [r7, 0xA] movs r6, 0 ldr r1, _08104D2C @ =gUnknown_083ED048 lsls r5, r4, 2 adds r0, r5, r1 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0xFF beq _08104D18 mov r8, r1 _08104CE0: mov r0, r8 adds r4, r5, r0 ldr r0, [r4] lsls r2, r6, 2 adds r2, r0 ldrb r0, [r2] ldrb r1, [r2, 0x1] movs r3, 0x2 ldrsh r2, [r2, r3] bl sub_8105BB4 lsls r0, 24 lsrs r0, 24 adds r2, r6, 0x4 lsls r2, 1 adds r1, r7, 0 adds r1, 0x8 adds r1, r2 strh r0, [r1] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 ldr r1, [r4] lsls r0, r6, 2 adds r0, r1 ldrb r0, [r0] cmp r0, 0xFF bne _08104CE0 _08104D18: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08104D24: .4byte 0x02000000 _08104D28: .4byte gTasks _08104D2C: .4byte gUnknown_083ED048 thumb_func_end sub_8104CAC thumb_func_start sub_8104D30 sub_8104D30: @ 8104D30 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 mov r8, r1 ldr r4, [sp, 0x1C] lsls r0, 24 lsrs r7, r0, 24 ldr r0, _08104D84 @ =0x02000000 adds r0, 0x3D ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _08104D88 @ =gTasks adds r0, r1 mov r12, r0 movs r5, 0x4 lsls r4, 16 asrs r6, r4, 16 lsls r2, 16 lsls r3, 16 _08104D5C: lsls r0, r5, 1 mov r1, r12 adds r1, 0x8 adds r4, r1, r0 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x40 bne _08104D8C str r6, [sp] adds r0, r7, 0 mov r1, r8 asrs r2, 16 asrs r3, 16 bl sub_8105BF8 lsls r0, 24 lsrs r0, 24 strh r0, [r4] b _08104D96 .align 2, 0 _08104D84: .4byte 0x02000000 _08104D88: .4byte gTasks _08104D8C: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xF bls _08104D5C _08104D96: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8104D30 thumb_func_start sub_8104DA4 sub_8104DA4: @ 8104DA4 push {r4-r6,lr} ldr r0, _08104E04 @ =0x02000000 adds r0, 0x3D ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _08104E08 @ =gTasks adds r4, r0, r1 ldrh r1, [r4, 0xA] ldr r0, _08104E0C @ =0x0000ffff cmp r1, r0 beq _08104DCE ldr r0, _08104E10 @ =gUnknown_083ED064 movs r2, 0xA ldrsh r1, [r4, r2] lsls r1, 2 adds r1, r0 ldr r0, [r1] bl _call_via_r0 _08104DCE: movs r5, 0x4 adds r6, r4, 0 adds r6, 0x8 _08104DD4: lsls r0, r5, 1 adds r4, r6, r0 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x40 beq _08104DF4 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08104E14 @ =gSprites adds r0, r1 bl DestroySprite movs r0, 0x40 strh r0, [r4] _08104DF4: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xF bls _08104DD4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08104E04: .4byte 0x02000000 _08104E08: .4byte gTasks _08104E0C: .4byte 0x0000ffff _08104E10: .4byte gUnknown_083ED064 _08104E14: .4byte gSprites thumb_func_end sub_8104DA4 thumb_func_start sub_8104E18 sub_8104E18: @ 8104E18 push {r4,r5,lr} ldr r0, _08104E54 @ =0x02000000 adds r0, 0x3D ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _08104E58 @ =gTasks adds r0, r1 movs r2, 0x4 adds r3, r0, 0 adds r3, 0x8 ldr r4, _08104E5C @ =gSprites _08104E32: lsls r0, r2, 1 adds r1, r3, r0 movs r5, 0 ldrsh r0, [r1, r5] cmp r0, 0x40 beq _08104E60 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 movs r5, 0x3C ldrsh r0, [r1, r5] cmp r0, 0 beq _08104E60 movs r0, 0 b _08104E6C .align 2, 0 _08104E54: .4byte 0x02000000 _08104E58: .4byte gTasks _08104E5C: .4byte gSprites _08104E60: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xF bls _08104E32 movs r0, 0x1 _08104E6C: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8104E18 thumb_func_start sub_8104E74 sub_8104E74: @ 8104E74 push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r3, _08104E9C @ =gUnknown_083ECC54 ldr r2, _08104EA0 @ =gTasks lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r2, 0x8 ldrsh r1, [r0, r2] lsls r1, 2 adds r1, r3 ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _08104E9C: .4byte gUnknown_083ECC54 _08104EA0: .4byte gTasks thumb_func_end sub_8104E74 thumb_func_start nullsub_69 nullsub_69: @ 8104EA4 bx lr thumb_func_end nullsub_69 thumb_func_start sub_8104EA8 sub_8104EA8: @ 8104EA8 push {r4-r7,lr} movs r6, 0 movs r0, 0x30 _08104EAE: movs r4, 0 lsls r5, r0, 16 lsls r7, r6, 16 _08104EB4: ldr r0, _08104F0C @ =gSpriteTemplate_83ED414 asrs r1, r5, 16 movs r2, 0 movs r3, 0xE bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _08104F10 @ =gSprites adds r1, r0 ldrb r0, [r1, 0x5] movs r2, 0xC orrs r0, r2 strb r0, [r1, 0x5] strh r6, [r1, 0x2E] strh r4, [r1, 0x30] ldr r0, _08104F14 @ =0x0000ffff strh r0, [r1, 0x34] lsls r0, r4, 16 movs r1, 0xC0 lsls r1, 13 adds r0, r1 lsrs r4, r0, 16 asrs r0, 16 cmp r0, 0x77 ble _08104EB4 movs r2, 0x80 lsls r2, 9 adds r1, r7, r2 movs r2, 0xA0 lsls r2, 14 adds r0, r5, r2 lsrs r0, 16 lsrs r6, r1, 16 asrs r1, 16 cmp r1, 0x2 ble _08104EAE pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08104F0C: .4byte gSpriteTemplate_83ED414 _08104F10: .4byte gSprites _08104F14: .4byte 0x0000ffff thumb_func_end sub_8104EA8 thumb_func_start sub_8104F18 sub_8104F18: @ 8104F18 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _08104F88 @ =0x02000000 movs r0, 0x2E ldrsh r1, [r5, r0] lsls r1, 1 adds r0, r4, 0 adds r0, 0x1C adds r1, r0 ldrh r0, [r5, 0x30] ldrh r1, [r1] adds r0, r1 strh r0, [r5, 0x32] movs r1, 0x32 ldrsh r0, [r5, r1] movs r1, 0x78 bl __modsi3 strh r0, [r5, 0x32] movs r2, 0x2E ldrsh r1, [r5, r2] lsls r1, 1 adds r4, 0x22 adds r1, r4 ldrh r1, [r1] adds r1, 0x1C adds r0, r1 strh r0, [r5, 0x22] ldrh r4, [r5, 0x2E] lsls r4, 24 lsrs r4, 24 movs r1, 0x32 ldrsh r0, [r5, r1] movs r1, 0x18 bl __divsi3 adds r1, r0, 0 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 bl sub_8102BA4 lsls r0, 24 lsrs r0, 24 bl GetSpriteTileStartByTag adds r1, r5, 0 adds r1, 0x40 strh r0, [r1] adds r0, r5, 0 bl SetSpriteSheetFrameTileNum pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08104F88: .4byte 0x02000000 thumb_func_end sub_8104F18 thumb_func_start sub_8104F8C sub_8104F8C: @ 8104F8C push {r4-r6,lr} movs r4, 0xCB movs r5, 0x1 ldr r6, _08104FF0 @ =0x0000270f _08104F94: lsls r4, 16 asrs r4, 16 lsls r5, 16 asrs r5, 16 adds r0, r4, 0 movs r1, 0x17 movs r2, 0 adds r3, r5, 0 bl sub_8104FF4 lsls r0, r5, 2 adds r0, r5 lsls r0, 17 subs r4, 0x7 lsls r4, 16 lsrs r4, 16 lsrs r5, r0, 16 asrs r0, 16 cmp r0, r6 ble _08104F94 movs r4, 0xEB movs r5, 0x1 ldr r6, _08104FF0 @ =0x0000270f _08104FC2: lsls r4, 16 asrs r4, 16 lsls r5, 16 asrs r5, 16 adds r0, r4, 0 movs r1, 0x17 movs r2, 0x1 adds r3, r5, 0 bl sub_8104FF4 lsls r0, r5, 2 adds r0, r5 lsls r0, 17 subs r4, 0x7 lsls r4, 16 lsrs r4, 16 lsrs r5, r0, 16 asrs r0, 16 cmp r0, r6 ble _08104FC2 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08104FF0: .4byte 0x0000270f thumb_func_end sub_8104F8C thumb_func_start sub_8104FF4 sub_8104FF4: @ 8104FF4 push {r4-r6,lr} mov r6, r8 push {r6} adds r5, r0, 0 adds r6, r1, 0 mov r8, r2 adds r4, r3, 0 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r4, 16 lsrs r4, 16 ldr r0, _08105060 @ =gSpriteTemplate_83ED42C lsls r5, 16 asrs r5, 16 lsls r6, 16 asrs r6, 16 adds r1, r5, 0 adds r2, r6, 0 movs r3, 0xD bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _08105064 @ =gSprites adds r2, r0 ldrb r1, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x8 orrs r0, r1 strb r0, [r2, 0x5] mov r0, r8 strh r0, [r2, 0x2E] strh r4, [r2, 0x30] lsls r4, 16 asrs r4, 16 lsls r0, r4, 2 adds r0, r4 lsls r0, 1 strh r0, [r2, 0x32] ldr r0, _08105068 @ =0x0000ffff strh r0, [r2, 0x34] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08105060: .4byte gSpriteTemplate_83ED42C _08105064: .4byte gSprites _08105068: .4byte 0x0000ffff thumb_func_end sub_8104FF4 thumb_func_start sub_810506C sub_810506C: @ 810506C push {r4,lr} adds r4, r0, 0 ldr r1, _081050C0 @ =0x02000000 ldrh r2, [r1, 0xC] movs r3, 0x2E ldrsh r0, [r4, r3] cmp r0, 0 beq _0810507E ldrh r2, [r1, 0xE] _0810507E: movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, r2 beq _081050B8 strh r2, [r4, 0x34] ldrh r1, [r4, 0x32] adds r0, r2, 0 bl __umodsi3 lsls r0, 16 lsrs r2, r0, 16 ldrh r1, [r4, 0x30] adds r0, r2, 0 bl __udivsi3 lsls r0, 16 movs r3, 0xE0 lsls r3, 11 adds r0, r3 lsrs r2, r0, 16 adds r0, r2, 0 bl GetSpriteTileStartByTag adds r1, r4, 0 adds r1, 0x40 strh r0, [r1] adds r0, r4, 0 bl SetSpriteSheetFrameTileNum _081050B8: pop {r4} pop {r0} bx r0 .align 2, 0 _081050C0: .4byte 0x02000000 thumb_func_end sub_810506C thumb_func_start sub_81050C4 sub_81050C4: @ 81050C4 push {lr} ldr r0, _081050F4 @ =gSpriteTemplate_83ED444 movs r1, 0x58 movs r2, 0x48 movs r3, 0xF bl CreateSprite adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r2, _081050F8 @ =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x5] movs r2, 0xC orrs r1, r2 strb r1, [r0, 0x5] ldr r1, _081050FC @ =gUnknown_083ED704 bl SetSubspriteTables pop {r0} bx r0 .align 2, 0 _081050F4: .4byte gSpriteTemplate_83ED444 _081050F8: .4byte gSprites _081050FC: .4byte gUnknown_083ED704 thumb_func_end sub_81050C4 thumb_func_start sub_8105100 sub_8105100: @ 8105100 push {lr} ldr r0, _08105140 @ =gSpriteTemplate_83ED45C movs r1, 0x8C lsls r1, 1 movs r2, 0x50 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, _08105144 @ =gSprites lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r1 ldrb r3, [r2, 0x5] movs r1, 0xD negs r1, r1 ands r1, r3 movs r3, 0x4 orrs r1, r3 strb r1, [r2, 0x5] adds r2, 0x3E ldrb r1, [r2] movs r3, 0x2 orrs r1, r3 strb r1, [r2] ldr r1, _08105148 @ =0x02000000 adds r1, 0x3F strb r0, [r1] pop {r0} bx r0 .align 2, 0 _08105140: .4byte gSpriteTemplate_83ED45C _08105144: .4byte gSprites _08105148: .4byte 0x02000000 thumb_func_end sub_8105100 thumb_func_start sub_810514C sub_810514C: @ 810514C push {lr} ldr r0, _08105168 @ =0x02000000 adds r0, 0x3F ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0810516C @ =gSprites adds r0, r1 bl DestroySprite pop {r0} bx r0 .align 2, 0 _08105168: .4byte 0x02000000 _0810516C: .4byte gSprites thumb_func_end sub_810514C thumb_func_start sub_8105170 sub_8105170: @ 8105170 push {lr} adds r2, r0, 0 movs r0, 0 strh r0, [r2, 0x24] strh r0, [r2, 0x26] adds r0, r2, 0 adds r0, 0x2A ldrb r0, [r0] cmp r0, 0x4 bne _081051B6 movs r0, 0x8 strh r0, [r2, 0x24] strh r0, [r2, 0x26] adds r0, r2, 0 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0 beq _081051A4 adds r0, r2, 0 adds r0, 0x2C ldrb r1, [r0] movs r0, 0x3F ands r0, r1 cmp r0, 0 bne _081051B2 b _081051B6 _081051A4: adds r0, r2, 0 adds r0, 0x2C ldrb r1, [r0] movs r0, 0x3F ands r0, r1 cmp r0, 0 bne _081051B6 _081051B2: ldr r0, _081051BC @ =0x0000fff8 strh r0, [r2, 0x26] _081051B6: pop {r0} bx r0 .align 2, 0 _081051BC: .4byte 0x0000fff8 thumb_func_end sub_8105170 thumb_func_start sub_81051C0 sub_81051C0: @ 81051C0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, _0810526C @ =gSpriteTemplate_83ED474 movs r7, 0xB8 lsls r7, 1 adds r1, r7, 0 movs r2, 0x34 movs r3, 0x7 bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r1, _08105270 @ =gSprites mov r10, r1 adds r2, r0, r1 ldrb r1, [r2, 0x5] movs r5, 0xD negs r5, r5 adds r0, r5, 0 ands r0, r1 movs r3, 0x4 mov r9, r3 mov r1, r9 orrs r0, r1 strb r0, [r2, 0x5] adds r1, r2, 0 adds r1, 0x3E ldrb r0, [r1] movs r3, 0x2 mov r8, r3 mov r3, r8 orrs r0, r3 strb r0, [r1] ldr r1, _08105274 @ =gUnknown_083ED73C adds r0, r2, 0 bl SetSubspriteTables ldr r6, _08105278 @ =0x02000000 adds r0, r6, 0 adds r0, 0x49 strb r4, [r0] ldr r0, _0810527C @ =gSpriteTemplate_83ED48C adds r1, r7, 0 movs r2, 0x54 movs r3, 0x7 bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 mov r1, r10 adds r2, r0, r1 ldrb r0, [r2, 0x5] ands r5, r0 mov r3, r9 orrs r5, r3 strb r5, [r2, 0x5] adds r1, r2, 0 adds r1, 0x3E ldrb r0, [r1] mov r3, r8 orrs r0, r3 strb r0, [r1] ldr r1, _08105280 @ =gUnknown_083ED75C adds r0, r2, 0 bl SetSubspriteTables adds r6, 0x4A strb r4, [r6] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810526C: .4byte gSpriteTemplate_83ED474 _08105270: .4byte gSprites _08105274: .4byte gUnknown_083ED73C _08105278: .4byte 0x02000000 _0810527C: .4byte gSpriteTemplate_83ED48C _08105280: .4byte gUnknown_083ED75C thumb_func_end sub_81051C0 thumb_func_start sub_8105284 sub_8105284: @ 8105284 push {r4,lr} ldr r0, _081052D8 @ =gSpriteTemplate_83ED4A4 ldr r1, _081052DC @ =gSpriteCoordOffsetX ldrh r2, [r1] movs r1, 0xA8 subs r1, r2 lsls r1, 16 asrs r1, 16 movs r2, 0x50 movs r3, 0x7 bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r1, _081052E0 @ =gSprites adds r0, r1 ldrb r2, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 movs r2, 0x4 orrs r1, r2 strb r1, [r0, 0x5] adds r3, r0, 0 adds r3, 0x3E ldrb r1, [r3] movs r2, 0x2 orrs r1, r2 strb r1, [r3] ldr r1, _081052E4 @ =gUnknown_083ED78C bl SetSubspriteTables ldr r0, _081052E8 @ =0x02000000 adds r0, 0x42 strb r4, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _081052D8: .4byte gSpriteTemplate_83ED4A4 _081052DC: .4byte gSpriteCoordOffsetX _081052E0: .4byte gSprites _081052E4: .4byte gUnknown_083ED78C _081052E8: .4byte 0x02000000 thumb_func_end sub_8105284 thumb_func_start sub_81052EC sub_81052EC: @ 81052EC push {r4-r7,lr} movs r4, 0 movs r5, 0 ldr r6, _08105350 @ =0x0200004b _081052F4: ldr r0, _08105354 @ =gSpriteTemplate_83ED4BC movs r1, 0xB8 lsls r1, 1 movs r2, 0 movs r3, 0xA bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r3, r0, 4 adds r3, r0 lsls r3, 2 ldr r1, _08105358 @ =gSprites adds r3, r1 ldrb r2, [r3, 0x5] movs r7, 0xD negs r7, r7 adds r1, r7, 0 ands r2, r1 movs r1, 0x4 orrs r2, r1 strb r2, [r3, 0x5] movs r1, 0x3E adds r1, r3 mov r12, r1 ldrb r1, [r1] movs r2, 0x2 orrs r1, r2 mov r2, r12 strb r1, [r2] strh r5, [r3, 0x3C] adds r1, r4, r6 strb r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 lsls r0, r5, 16 movs r7, 0xA0 lsls r7, 13 adds r0, r7 lsrs r5, r0, 16 cmp r4, 0x2 bls _081052F4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08105350: .4byte 0x0200004b _08105354: .4byte gSpriteTemplate_83ED4BC _08105358: .4byte gSprites thumb_func_end sub_81052EC thumb_func_start sub_810535C sub_810535C: @ 810535C push {r4,lr} adds r4, r0, 0 ldr r1, _0810539C @ =0x02000000 ldrh r0, [r4, 0x3C] ldrh r1, [r1, 0x14] adds r0, r1 lsls r0, 16 asrs r0, 16 movs r1, 0x28 bl __modsi3 lsls r0, 16 asrs r0, 16 adds r1, r0, 0 adds r1, 0x3B strh r1, [r4, 0x22] movs r1, 0x14 bl __divsi3 lsls r0, 16 asrs r0, 16 bl sub_8102C48 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnimIfDifferent pop {r4} pop {r0} bx r0 .align 2, 0 _0810539C: .4byte 0x02000000 thumb_func_end sub_810535C thumb_func_start sub_81053A0 sub_81053A0: @ 81053A0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r1, 0xB8 lsls r1, 1 ldr r0, _0810544C @ =gSpriteTemplate_83ED4D4 movs r2, 0x64 movs r3, 0x9 bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r7, _08105450 @ =gSprites adds r2, r0, r7 adds r1, r2, 0 adds r1, 0x3E ldrb r0, [r1] movs r3, 0x2 mov r10, r3 mov r3, r10 orrs r0, r3 strb r0, [r1] ldrb r1, [r2, 0x5] movs r5, 0xD negs r5, r5 adds r0, r5, 0 ands r0, r1 movs r1, 0x4 mov r8, r1 mov r3, r8 orrs r0, r3 strb r0, [r2, 0x5] ldr r0, _08105454 @ =gUnknown_083ED7B4 mov r9, r0 adds r0, r2, 0 mov r1, r9 bl SetSubspriteTables ldr r6, _08105458 @ =0x02000000 adds r0, r6, 0 adds r0, 0x4E strb r4, [r0] movs r1, 0x90 lsls r1, 1 ldr r0, _0810544C @ =gSpriteTemplate_83ED4D4 movs r2, 0x68 movs r3, 0x4 bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r2, r0, r7 adds r1, r2, 0 adds r1, 0x3E ldrb r0, [r1] mov r3, r10 orrs r0, r3 strb r0, [r1] ldrb r0, [r2, 0x5] ands r5, r0 mov r0, r8 orrs r5, r0 strb r5, [r2, 0x5] adds r0, r2, 0 mov r1, r9 bl SetSubspriteTables adds r6, 0x4F strb r4, [r6] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810544C: .4byte gSpriteTemplate_83ED4D4 _08105450: .4byte gSprites _08105454: .4byte gUnknown_083ED7B4 _08105458: .4byte 0x02000000 thumb_func_end sub_81053A0 thumb_func_start sub_810545C sub_810545C: @ 810545C push {r4,lr} ldr r0, _081054A8 @ =gSpriteTemplate_83ED4EC movs r1, 0xB8 lsls r1, 1 movs r2, 0x4C movs r3, 0xB bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r1, _081054AC @ =gSprites adds r0, r1 adds r3, r0, 0 adds r3, 0x3E ldrb r1, [r3] movs r2, 0x2 orrs r1, r2 strb r1, [r3] ldrb r2, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 movs r2, 0x4 orrs r1, r2 strb r1, [r0, 0x5] ldr r1, _081054B0 @ =gUnknown_083ED7D4 bl SetSubspriteTables ldr r0, _081054B4 @ =0x02000000 adds r0, 0x40 strb r4, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _081054A8: .4byte gSpriteTemplate_83ED4EC _081054AC: .4byte gSprites _081054B0: .4byte gUnknown_083ED7D4 _081054B4: .4byte 0x02000000 thumb_func_end sub_810545C thumb_func_start sub_81054B8 sub_81054B8: @ 81054B8 push {r4,r5,lr} ldr r4, _08105518 @ =0x02000000 adds r0, r4, 0 adds r0, 0x40 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0810551C @ =gSprites adds r0, r1 bl DestroySprite movs r5, 0 adds r4, 0x49 _081054D4: adds r0, r5, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0810551C @ =gSprites adds r0, r1 bl DestroySprite adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x1 bls _081054D4 movs r5, 0 ldr r4, _08105520 @ =0x0200004b _081054F4: adds r0, r5, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0810551C @ =gSprites adds r0, r1 bl DestroySprite adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bls _081054F4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08105518: .4byte 0x02000000 _0810551C: .4byte gSprites _08105520: .4byte 0x0200004b thumb_func_end sub_81054B8 thumb_func_start sub_8105524 sub_8105524: @ 8105524 push {r4,r5,lr} movs r4, 0 ldr r5, _0810554C @ =0x0200004e _0810552A: adds r0, r4, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08105550 @ =gSprites adds r0, r1 bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bls _0810552A pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810554C: .4byte 0x0200004e _08105550: .4byte gSprites thumb_func_end sub_8105524 thumb_func_start sub_8105554 sub_8105554: @ 8105554 push {lr} ldr r0, _08105570 @ =0x02000000 adds r0, 0x42 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08105574 @ =gSprites adds r0, r1 bl DestroySprite pop {r0} bx r0 .align 2, 0 _08105570: .4byte 0x02000000 _08105574: .4byte gSprites thumb_func_end sub_8105554 thumb_func_start sub_8105578 sub_8105578: @ 8105578 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} ldr r0, _0810561C @ =gSpriteTemplate_83ED504 mov r10, r0 movs r1, 0x98 movs r2, 0x20 movs r3, 0x5 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r2, _08105620 @ =gSprites mov r9, r2 adds r3, r1, r2 ldrb r2, [r3, 0x5] movs r4, 0xD negs r4, r4 adds r1, r4, 0 ands r1, r2 movs r2, 0x4 mov r8, r2 mov r2, r8 orrs r1, r2 strb r1, [r3, 0x5] adds r5, r3, 0 adds r5, 0x3F ldrb r1, [r5] movs r2, 0x1 orrs r1, r2 strb r1, [r5] ldr r5, _08105624 @ =0x02000000 adds r1, r5, 0 adds r1, 0x50 strb r0, [r1] movs r0, 0x8 strh r0, [r3, 0x2E] ldr r0, _08105628 @ =0x0000ffff strh r0, [r3, 0x30] movs r0, 0x1 negs r0, r0 strh r0, [r3, 0x32] movs r6, 0x20 strh r6, [r3, 0x3C] mov r0, r10 movs r1, 0xB8 movs r2, 0x20 movs r3, 0x5 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 mov r2, r9 adds r3, r1, r2 ldrb r1, [r3, 0x5] ands r4, r1 mov r1, r8 orrs r4, r1 strb r4, [r3, 0x5] adds r5, 0x51 strb r0, [r5] movs r0, 0x1 strh r0, [r3, 0x30] subs r0, 0x2 strh r0, [r3, 0x32] strh r6, [r3, 0x3C] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810561C: .4byte gSpriteTemplate_83ED504 _08105620: .4byte gSprites _08105624: .4byte 0x02000000 _08105628: .4byte 0x0000ffff thumb_func_end sub_8105578 thumb_func_start sub_810562C sub_810562C: @ 810562C push {r4,lr} adds r2, r0, 0 ldrh r0, [r2, 0x2E] movs r1, 0x2E ldrsh r4, [r2, r1] cmp r4, 0 beq _08105650 subs r0, 0x1 movs r1, 0 strh r0, [r2, 0x2E] strh r1, [r2, 0x24] strh r1, [r2, 0x26] adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] b _08105682 _08105650: adds r3, r2, 0 adds r3, 0x3E ldrb r1, [r3] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r3] ldrh r0, [r2, 0x30] ldrh r1, [r2, 0x24] adds r0, r1 strh r0, [r2, 0x24] ldrh r0, [r2, 0x32] ldrh r1, [r2, 0x26] adds r0, r1 strh r0, [r2, 0x26] ldrh r0, [r2, 0x34] adds r0, 0x1 strh r0, [r2, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _08105682 ldrh r0, [r2, 0x3C] strh r0, [r2, 0x2E] strh r4, [r2, 0x34] _08105682: pop {r4} pop {r0} bx r0 thumb_func_end sub_810562C thumb_func_start sub_8105688 sub_8105688: @ 8105688 push {r4,lr} lsls r0, 16 lsrs r0, 16 ldr r4, _081056B8 @ =gSprites ldr r3, _081056BC @ =0x02000000 adds r1, r3, 0 adds r1, 0x50 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 strh r0, [r1, 0x3C] adds r3, 0x51 ldrb r2, [r3] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 strh r0, [r1, 0x3C] pop {r4} pop {r0} bx r0 .align 2, 0 _081056B8: .4byte gSprites _081056BC: .4byte 0x02000000 thumb_func_end sub_8105688 thumb_func_start sub_81056C0 sub_81056C0: @ 81056C0 push {r4,r5,lr} movs r4, 0 ldr r5, _081056E8 @ =0x02000050 _081056C6: adds r0, r4, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _081056EC @ =gSprites adds r0, r1 bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bls _081056C6 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081056E8: .4byte 0x02000050 _081056EC: .4byte gSprites thumb_func_end sub_81056C0 thumb_func_start sub_81056F0 sub_81056F0: @ 81056F0 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} ldr r0, _08105778 @ =gSpriteTemplate_83ED51C mov r8, r0 movs r1, 0x48 movs r2, 0x50 movs r3, 0x3 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, _0810577C @ =gSprites mov r9, r1 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 add r2, r9 ldrb r3, [r2, 0x5] movs r4, 0xD negs r4, r4 adds r1, r4, 0 ands r1, r3 movs r6, 0x4 orrs r1, r6 strb r1, [r2, 0x5] movs r3, 0 movs r1, 0x1 strh r1, [r2, 0x2E] strh r3, [r2, 0x38] movs r1, 0x10 strh r1, [r2, 0x3A] movs r1, 0x8 strh r1, [r2, 0x3C] ldr r5, _08105780 @ =0x02000000 adds r1, r5, 0 adds r1, 0x52 strb r0, [r1] mov r0, r8 movs r1, 0x68 movs r2, 0x50 movs r3, 0x3 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r9 ldrb r2, [r1, 0x5] ands r4, r2 orrs r4, r6 strb r4, [r1, 0x5] adds r1, 0x3F ldrb r2, [r1] movs r3, 0x1 orrs r2, r3 strb r2, [r1] adds r5, 0x53 strb r0, [r5] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08105778: .4byte gSpriteTemplate_83ED51C _0810577C: .4byte gSprites _08105780: .4byte 0x02000000 thumb_func_end sub_81056F0 thumb_func_start sub_8105784 sub_8105784: @ 8105784 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 ldr r1, _081057E0 @ =gUnknown_083ECC58 mov r0, sp movs r2, 0x2 bl memcpy movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 beq _081057D6 ldrh r0, [r4, 0x3A] subs r0, 0x1 strh r0, [r4, 0x3A] lsls r0, 16 cmp r0, 0 bgt _081057D6 movs r0, 0x7 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 4 ldr r2, _081057E4 @ =0x01030000 adds r0, r2 lsrs r0, 16 movs r2, 0x38 ldrsh r1, [r4, r2] add r1, sp ldrb r3, [r1] adds r1, r3, 0 adds r2, r3, 0 bl MultiplyInvertedPaletteRGBComponents ldrh r0, [r4, 0x38] adds r0, 0x1 movs r1, 0x1 ands r0, r1 strh r0, [r4, 0x38] ldrh r0, [r4, 0x3C] strh r0, [r4, 0x3A] _081057D6: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _081057E0: .4byte gUnknown_083ECC58 _081057E4: .4byte 0x01030000 thumb_func_end sub_8105784 thumb_func_start sub_81057E8 sub_81057E8: @ 81057E8 ldr r3, _081057FC @ =gSprites ldr r1, _08105800 @ =0x02000000 adds r1, 0x52 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r3 strh r0, [r1, 0x3C] bx lr .align 2, 0 _081057FC: .4byte gSprites _08105800: .4byte 0x02000000 thumb_func_end sub_81057E8 thumb_func_start sub_8105804 sub_8105804: @ 8105804 push {r4,r5,lr} movs r0, 0x7 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 4 ldr r1, _08105848 @ =0x01030000 adds r0, r1 lsrs r0, 16 movs r1, 0 movs r2, 0 movs r3, 0 bl MultiplyInvertedPaletteRGBComponents movs r4, 0 ldr r5, _0810584C @ =0x02000052 _08105824: adds r0, r4, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08105850 @ =gSprites adds r0, r1 bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bls _08105824 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08105848: .4byte 0x01030000 _0810584C: .4byte 0x02000052 _08105850: .4byte gSprites thumb_func_end sub_8105804 thumb_func_start sub_8105854 sub_8105854: @ 8105854 push {lr} ldr r0, _08105888 @ =gSpriteTemplate_83ED534 movs r1, 0xA8 movs r2, 0x50 movs r3, 0x6 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, _0810588C @ =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r3, [r1, 0x5] movs r2, 0xD negs r2, r2 ands r2, r3 movs r3, 0x4 orrs r2, r3 strb r2, [r1, 0x5] ldr r1, _08105890 @ =0x02000000 adds r1, 0x41 strb r0, [r1] pop {r0} bx r0 .align 2, 0 _08105888: .4byte gSpriteTemplate_83ED534 _0810588C: .4byte gSprites _08105890: .4byte 0x02000000 thumb_func_end sub_8105854 thumb_func_start sub_8105894 sub_8105894: @ 8105894 ldr r1, _0810589C @ =gSpriteCoordOffsetY ldrh r1, [r1] strh r1, [r0, 0x26] bx lr .align 2, 0 _0810589C: .4byte gSpriteCoordOffsetY thumb_func_end sub_8105894 thumb_func_start sub_81058A0 sub_81058A0: @ 81058A0 push {lr} ldr r0, _081058BC @ =0x02000000 adds r0, 0x41 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _081058C0 @ =gSprites adds r0, r1 bl DestroySprite pop {r0} bx r0 .align 2, 0 _081058BC: .4byte 0x02000000 _081058C0: .4byte gSprites thumb_func_end sub_81058A0 thumb_func_start sub_81058C4 sub_81058C4: @ 81058C4 push {r4-r6,lr} sub sp, 0x8 ldr r1, _08105938 @ =gUnknown_083ECC5A mov r0, sp movs r2, 0x8 bl memcpy movs r4, 0 ldr r5, _0810593C @ =0x02000054 _081058D6: ldr r0, _08105940 @ =gSpriteCoordOffsetX ldrh r0, [r0] movs r1, 0x50 subs r1, r0 lsls r1, 16 asrs r1, 16 ldr r0, _08105944 @ =gSpriteTemplate_83ED54C movs r2, 0x44 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r3, r0, 4 adds r3, r0 lsls r3, 2 ldr r1, _08105948 @ =gSprites adds r3, r1 ldrb r2, [r3, 0x5] movs r6, 0xD negs r6, r6 adds r1, r6, 0 ands r2, r1 movs r1, 0x4 orrs r2, r1 strb r2, [r3, 0x5] movs r1, 0x3E adds r1, r3 mov r12, r1 ldrb r1, [r1] movs r2, 0x2 orrs r1, r2 mov r2, r12 strb r1, [r2] lsls r1, r4, 1 add r1, sp ldrh r1, [r1] strh r1, [r3, 0x2E] adds r1, r4, r5 strb r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _081058D6 add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08105938: .4byte gUnknown_083ECC5A _0810593C: .4byte 0x02000054 _08105940: .4byte gSpriteCoordOffsetX _08105944: .4byte gSpriteTemplate_83ED54C _08105948: .4byte gSprites thumb_func_end sub_81058C4 thumb_func_start sub_810594C sub_810594C: @ 810594C push {r4,r5,lr} adds r5, r0, 0 ldrh r0, [r5, 0x2E] subs r0, 0x2 movs r4, 0 movs r1, 0xFF ands r0, r1 strh r0, [r5, 0x2E] movs r1, 0x2E ldrsh r0, [r5, r1] movs r1, 0x14 bl Cos strh r0, [r5, 0x24] movs r2, 0x2E ldrsh r0, [r5, r2] movs r1, 0x6 bl Sin strh r0, [r5, 0x26] adds r1, r5, 0 adds r1, 0x43 strb r4, [r1] movs r2, 0x2E ldrsh r0, [r5, r2] cmp r0, 0x7F ble _08105986 movs r0, 0x2 strb r0, [r1] _08105986: ldrh r0, [r5, 0x30] adds r0, 0x1 strh r0, [r5, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0xF ble _081059B0 adds r3, r5, 0 adds r3, 0x3F ldrb r2, [r3] lsls r0, r2, 31 lsrs r0, 31 movs r1, 0x1 eors r1, r0 movs r0, 0x2 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] movs r0, 0 strh r0, [r5, 0x30] _081059B0: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_810594C thumb_func_start sub_81059B8 sub_81059B8: @ 81059B8 push {r4,r5,lr} movs r4, 0 ldr r5, _081059E0 @ =0x02000054 _081059BE: adds r0, r4, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _081059E4 @ =gSprites adds r0, r1 bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _081059BE pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081059E0: .4byte 0x02000054 _081059E4: .4byte gSprites thumb_func_end sub_81059B8 thumb_func_start sub_81059E8 sub_81059E8: @ 81059E8 push {r4,lr} ldr r0, _08105A2C @ =gSpriteTemplate_83ED564 movs r1, 0xA8 movs r2, 0x3C movs r3, 0x8 bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r1, _08105A30 @ =gSprites adds r0, r1 ldrb r2, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 movs r2, 0x4 orrs r1, r2 strb r1, [r0, 0x5] ldrb r1, [r0, 0x1] movs r2, 0x3 orrs r1, r2 strb r1, [r0, 0x1] bl InitSpriteAffineAnim ldr r0, _08105A34 @ =0x02000000 adds r0, 0x43 strb r4, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08105A2C: .4byte gSpriteTemplate_83ED564 _08105A30: .4byte gSprites _08105A34: .4byte 0x02000000 thumb_func_end sub_81059E8 thumb_func_start sub_8105A38 sub_8105A38: @ 8105A38 push {lr} adds r3, r0, 0 ldrh r2, [r3, 0x2E] movs r1, 0x2E ldrsh r0, [r3, r1] cmp r0, 0 bne _08105A5A adds r0, r3, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08105AB4 adds r0, r2, 0x1 strh r0, [r3, 0x2E] b _08105AB4 _08105A5A: cmp r0, 0x1 bne _08105A96 movs r0, 0x3E adds r0, r3 mov r12, r0 ldrb r2, [r0] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] ldrh r0, [r3, 0x32] adds r0, 0x1 strh r0, [r3, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x17 ble _08105AB4 ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] movs r0, 0 strh r0, [r3, 0x32] b _08105AB4 _08105A96: adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldrh r0, [r3, 0x32] adds r0, 0x1 strh r0, [r3, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0xF ble _08105AB4 movs r0, 0x1 strh r0, [r3, 0x3C] _08105AB4: ldrh r0, [r3, 0x30] movs r1, 0xFF ands r1, r0 adds r1, 0x10 strh r1, [r3, 0x30] lsrs r1, 8 ldrh r0, [r3, 0x26] subs r0, r1 strh r0, [r3, 0x26] pop {r0} bx r0 thumb_func_end sub_8105A38 thumb_func_start sub_8105ACC sub_8105ACC: @ 8105ACC ldr r2, _08105AE4 @ =gSprites ldr r0, _08105AE8 @ =0x02000000 adds r0, 0x43 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x3C] lsls r0, 24 lsrs r0, 24 bx lr .align 2, 0 _08105AE4: .4byte gSprites _08105AE8: .4byte 0x02000000 thumb_func_end sub_8105ACC thumb_func_start sub_8105AEC sub_8105AEC: @ 8105AEC push {r4,lr} ldr r0, _08105B14 @ =0x02000000 adds r0, 0x43 ldrb r0, [r0] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _08105B18 @ =gSprites adds r4, r0 ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix adds r0, r4, 0 bl DestroySprite pop {r4} pop {r0} bx r0 .align 2, 0 _08105B14: .4byte 0x02000000 _08105B18: .4byte gSprites thumb_func_end sub_8105AEC thumb_func_start sub_8105B1C sub_8105B1C: @ 8105B1C push {r4,lr} adds r3, r0, 0 adds r2, r1, 0 ldr r0, _08105B68 @ =gSpriteTemplate_83ED6CC lsls r3, 16 asrs r3, 16 lsls r2, 16 asrs r2, 16 adds r1, r3, 0 movs r3, 0xC bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r1, _08105B6C @ =gSprites adds r0, r1 ldrb r2, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 movs r2, 0x8 orrs r1, r2 strb r1, [r0, 0x5] ldrb r1, [r0, 0x1] movs r2, 0x3 orrs r1, r2 strb r1, [r0, 0x1] bl InitSpriteAffineAnim adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08105B68: .4byte gSpriteTemplate_83ED6CC _08105B6C: .4byte gSprites thumb_func_end sub_8105B1C thumb_func_start sub_8105B70 sub_8105B70: @ 8105B70 push {lr} adds r2, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08105B84 movs r0, 0x1 strh r0, [r2, 0x3C] _08105B84: pop {r0} bx r0 thumb_func_end sub_8105B70 thumb_func_start sub_8105B88 sub_8105B88: @ 8105B88 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _08105BB0 @ =gSprites adds r4, r0 ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix adds r0, r4, 0 bl DestroySprite pop {r4} pop {r0} bx r0 .align 2, 0 _08105BB0: .4byte gSprites thumb_func_end sub_8105B88 thumb_func_start sub_8105BB4 sub_8105BB4: @ 8105BB4 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 lsls r1, 24 ldr r3, _08105BF0 @ =gUnknown_083ECF0C lsrs r1, 22 adds r3, r1, r3 ldr r5, [r3] ldr r3, _08105BF4 @ =gUnknown_083ECE7E adds r4, r1, r3 movs r6, 0 ldrsh r4, [r4, r6] adds r3, 0x2 adds r1, r3 movs r6, 0 ldrsh r3, [r1, r6] lsls r2, 16 asrs r2, 16 str r2, [sp] adds r1, r5, 0 adds r2, r4, 0 bl sub_8105BF8 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08105BF0: .4byte gUnknown_083ECF0C _08105BF4: .4byte gUnknown_083ECE7E thumb_func_end sub_8105BB4 thumb_func_start sub_8105BF8 sub_8105BF8: @ 8105BF8 push {r4-r7,lr} adds r4, r0, 0 adds r6, r1, 0 adds r1, r2, 0 adds r2, r3, 0 ldr r5, [sp, 0x14] lsls r4, 24 lsls r5, 16 lsrs r5, 16 ldr r0, _08105C58 @ =gUnknown_083EDB5C lsrs r4, 22 adds r0, r4, r0 ldr r0, [r0] lsls r1, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 movs r3, 0x10 bl CreateSprite lsls r0, 24 lsrs r0, 24 adds r7, r0, 0 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 ldr r1, _08105C5C @ =gSprites adds r2, r0, r1 ldrb r0, [r2, 0x5] movs r1, 0xC orrs r0, r1 strb r0, [r2, 0x5] str r6, [r2, 0x1C] strh r5, [r2, 0x3A] movs r0, 0x1 strh r0, [r2, 0x3C] ldr r0, _08105C60 @ =gUnknown_083EDBC4 adds r4, r0 ldr r1, [r4] cmp r1, 0 beq _08105C50 adds r0, r2, 0 bl SetSubspriteTables _08105C50: adds r0, r7, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08105C58: .4byte gUnknown_083EDB5C _08105C5C: .4byte gSprites _08105C60: .4byte gUnknown_083EDBC4 thumb_func_end sub_8105BF8 thumb_func_start sub_8105C64 sub_8105C64: @ 8105C64 movs r1, 0 strh r1, [r0, 0x3C] bx lr thumb_func_end sub_8105C64 thumb_func_start sub_8105C6C sub_8105C6C: @ 8105C6C push {r4,r5,lr} sub sp, 0x10 adds r4, r0, 0 ldr r1, _08105CE8 @ =gUnknown_083ECC62 mov r0, sp movs r2, 0x8 bl memcpy add r5, sp, 0x8 ldr r1, _08105CEC @ =gUnknown_083ECC6A adds r0, r5, 0 movs r2, 0x8 bl memcpy ldrh r0, [r4, 0x30] adds r1, r0, 0x1 strh r1, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0xF ble _08105CB2 adds r3, r4, 0 adds r3, 0x42 ldrb r2, [r3] lsls r0, r2, 26 lsrs r0, 26 movs r1, 0x1 eors r1, r0 movs r0, 0x40 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] movs r0, 0 strh r0, [r4, 0x30] _08105CB2: movs r0, 0 strh r0, [r4, 0x24] strh r0, [r4, 0x26] adds r0, r4, 0 adds r0, 0x42 ldrb r1, [r0] movs r0, 0x3F ands r0, r1 cmp r0, 0 beq _08105CDE movs r1, 0x3A ldrsh r0, [r4, r1] lsls r0, 1 add r0, sp ldrh r0, [r0] strh r0, [r4, 0x24] movs r1, 0x3A ldrsh r0, [r4, r1] lsls r0, 1 adds r0, r5, r0 ldrh r0, [r0] strh r0, [r4, 0x26] _08105CDE: add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08105CE8: .4byte gUnknown_083ECC62 _08105CEC: .4byte gUnknown_083ECC6A thumb_func_end sub_8105C6C thumb_func_start sub_8105CF0 sub_8105CF0: @ 8105CF0 push {lr} adds r3, r0, 0 adds r3, 0x3F ldrb r1, [r3] movs r2, 0x1 orrs r1, r2 strb r1, [r3] bl sub_8105C6C pop {r0} bx r0 thumb_func_end sub_8105CF0 thumb_func_start sub_8105D08 sub_8105D08: @ 8105D08 push {lr} adds r3, r0, 0 adds r3, 0x3F ldrb r1, [r3] movs r2, 0x2 orrs r1, r2 strb r1, [r3] bl sub_8105C6C pop {r0} bx r0 thumb_func_end sub_8105D08 thumb_func_start sub_8105D20 sub_8105D20: @ 8105D20 push {lr} adds r3, r0, 0 adds r3, 0x3F ldrb r1, [r3] movs r2, 0x1 orrs r1, r2 movs r2, 0x2 orrs r1, r2 strb r1, [r3] bl sub_8105C6C pop {r0} bx r0 thumb_func_end sub_8105D20 thumb_func_start sub_8105D3C sub_8105D3C: @ 8105D3C push {lr} adds r2, r0, 0 movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0x1 beq _08105D70 cmp r0, 0x1 bgt _08105D52 cmp r0, 0 beq _08105D5C b _08105DA0 _08105D52: cmp r0, 0x2 beq _08105D80 cmp r0, 0x3 beq _08105D9C b _08105DA0 _08105D5C: ldrh r0, [r2, 0x20] adds r0, 0x4 strh r0, [r2, 0x20] lsls r0, 16 asrs r0, 16 cmp r0, 0xCF ble _08105DA0 movs r0, 0xD0 strh r0, [r2, 0x20] b _08105D8E _08105D70: ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x5A ble _08105DA0 b _08105D8E _08105D80: ldrh r0, [r2, 0x20] adds r0, 0x4 strh r0, [r2, 0x20] lsls r0, 16 ldr r1, _08105D98 @ =0x010f0000 cmp r0, r1 ble _08105DA0 _08105D8E: ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] b _08105DA0 .align 2, 0 _08105D98: .4byte 0x010f0000 _08105D9C: movs r0, 0 strh r0, [r2, 0x3C] _08105DA0: pop {r0} bx r0 thumb_func_end sub_8105D3C thumb_func_start sub_8105DA4 sub_8105DA4: @ 8105DA4 push {lr} adds r1, r0, 0 movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0x1 beq _08105DD8 cmp r0, 0x1 bgt _08105DBA cmp r0, 0 beq _08105DC4 b _08105E02 _08105DBA: cmp r0, 0x2 beq _08105DE8 cmp r0, 0x3 beq _08105DFE b _08105E02 _08105DC4: ldrh r0, [r1, 0x20] subs r0, 0x4 strh r0, [r1, 0x20] lsls r0, 16 asrs r0, 16 cmp r0, 0xD0 bgt _08105E02 movs r0, 0xD0 strh r0, [r1, 0x20] b _08105DF6 _08105DD8: ldrh r0, [r1, 0x30] adds r0, 0x1 strh r0, [r1, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x5A ble _08105E02 b _08105DF6 _08105DE8: ldrh r0, [r1, 0x20] subs r0, 0x4 strh r0, [r1, 0x20] lsls r0, 16 asrs r0, 16 cmp r0, 0x90 bgt _08105E02 _08105DF6: ldrh r0, [r1, 0x2E] adds r0, 0x1 strh r0, [r1, 0x2E] b _08105E02 _08105DFE: movs r0, 0 strh r0, [r1, 0x3C] _08105E02: pop {r0} bx r0 thumb_func_end sub_8105DA4 thumb_func_start sub_8105E08 sub_8105E08: @ 8105E08 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x5 bhi _08105EAE lsls r0, 2 ldr r1, _08105E20 @ =_08105E24 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08105E20: .4byte _08105E24 .align 2, 0 _08105E24: .4byte _08105E3C .4byte _08105E52 .4byte _08105E70 .4byte _08105E84 .4byte _08105E94 .4byte _08105EAA _08105E3C: ldr r0, _08105E6C @ =0x02000000 ldrb r1, [r0, 0xA] subs r1, 0x1 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] _08105E52: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 ble _08105EAE ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] movs r0, 0 strh r0, [r4, 0x30] b _08105EAE .align 2, 0 _08105E6C: .4byte 0x02000000 _08105E70: ldrh r0, [r4, 0x20] adds r0, 0x4 strh r0, [r4, 0x20] lsls r0, 16 asrs r0, 16 cmp r0, 0xCF ble _08105EAE movs r0, 0xD0 strh r0, [r4, 0x20] b _08105EA2 _08105E84: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x5A ble _08105EAE b _08105EA2 _08105E94: ldrh r0, [r4, 0x20] adds r0, 0x4 strh r0, [r4, 0x20] lsls r0, 16 asrs r0, 16 cmp r0, 0xF7 ble _08105EAE _08105EA2: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _08105EAE _08105EAA: movs r0, 0 strh r0, [r4, 0x3C] _08105EAE: pop {r4} pop {r0} bx r0 thumb_func_end sub_8105E08 thumb_func_start sub_8105EB4 sub_8105EB4: @ 8105EB4 push {lr} adds r3, r0, 0 movs r1, 0x2E ldrsh r0, [r3, r1] cmp r0, 0x1 beq _08105EE2 cmp r0, 0x1 bgt _08105ECA cmp r0, 0 beq _08105ED0 b _08105F50 _08105ECA: cmp r0, 0x2 beq _08105F00 b _08105F50 _08105ED0: adds r2, r3, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x40 orrs r0, r1 strb r0, [r2] ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] _08105EE2: ldrh r0, [r3, 0x22] adds r0, 0x8 strh r0, [r3, 0x22] lsls r0, 16 asrs r0, 16 cmp r0, 0x6F ble _08105F50 movs r0, 0x70 strh r0, [r3, 0x22] movs r0, 0x10 strh r0, [r3, 0x30] ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] b _08105F50 _08105F00: movs r0, 0x32 ldrsh r2, [r3, r0] cmp r2, 0 bne _08105F46 ldrh r0, [r3, 0x22] ldrh r1, [r3, 0x30] subs r0, r1 strh r0, [r3, 0x22] negs r1, r1 strh r1, [r3, 0x30] ldrh r0, [r3, 0x34] adds r0, 0x1 strh r0, [r3, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _08105F46 lsls r0, r1, 16 asrs r0, 18 strh r0, [r3, 0x30] strh r2, [r3, 0x34] adds r1, r0, 0 cmp r1, 0 bne _08105F46 ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] strh r1, [r3, 0x3C] adds r2, r3, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r2] _08105F46: ldrh r0, [r3, 0x32] adds r0, 0x1 movs r1, 0x7 ands r0, r1 strh r0, [r3, 0x32] _08105F50: pop {r0} bx r0 thumb_func_end sub_8105EB4 thumb_func_start sub_8105F54 sub_8105F54: @ 8105F54 push {lr} adds r1, r0, 0 movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0 beq _08105F66 cmp r0, 0x1 beq _08105F7C b _08105F98 _08105F66: ldrh r0, [r1, 0x30] adds r0, 0x1 strh r0, [r1, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _08105F98 ldrh r0, [r1, 0x2E] adds r0, 0x1 strh r0, [r1, 0x2E] b _08105F98 _08105F7C: ldrh r0, [r1, 0x22] adds r0, 0x2 strh r0, [r1, 0x22] lsls r0, 16 asrs r0, 16 cmp r0, 0x2F ble _08105F98 movs r0, 0x30 strh r0, [r1, 0x22] ldrh r0, [r1, 0x2E] adds r0, 0x1 strh r0, [r1, 0x2E] movs r0, 0 strh r0, [r1, 0x3C] _08105F98: pop {r0} bx r0 thumb_func_end sub_8105F54 thumb_func_start sub_8105F9C sub_8105F9C: @ 8105F9C push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 beq _08105FAE cmp r0, 0x1 beq _08106000 b _0810604E _08105FAE: adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x20 ble _0810604E ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] movs r0, 0x5 strh r0, [r4, 0x30] ldrb r0, [r4, 0x1] movs r1, 0x10 orrs r0, r1 strb r0, [r4, 0x1] ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAnim ldr r2, _08105FFC @ =REG_MOSAIC ldrh r1, [r4, 0x30] lsls r0, r1, 4 orrs r0, r1 lsls r0, 8 strh r0, [r2] b _0810604E .align 2, 0 _08105FFC: .4byte REG_MOSAIC _08106000: ldrh r1, [r4, 0x32] lsls r1, 16 asrs r1, 24 ldrh r0, [r4, 0x30] subs r0, r1 strh r0, [r4, 0x30] lsls r0, 16 cmp r0, 0 bge _08106016 movs r0, 0 strh r0, [r4, 0x30] _08106016: ldr r2, _08106054 @ =REG_MOSAIC ldrh r1, [r4, 0x30] lsls r0, r1, 4 orrs r0, r1 lsls r0, 8 strh r0, [r2] ldrh r1, [r4, 0x32] movs r0, 0xFF ands r0, r1 adds r0, 0x80 strh r0, [r4, 0x32] movs r0, 0x30 ldrsh r1, [r4, r0] cmp r1, 0 bne _0810604E ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] strh r1, [r4, 0x3C] ldrb r1, [r4, 0x1] movs r0, 0x11 negs r0, r0 ands r0, r1 strb r0, [r4, 0x1] adds r0, r4, 0 movs r1, 0 bl StartSpriteAnim _0810604E: pop {r4} pop {r0} bx r0 .align 2, 0 _08106054: .4byte REG_MOSAIC thumb_func_end sub_8105F9C thumb_func_start sub_8106058 sub_8106058: @ 8106058 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x30 ldrsh r0, [r5, r1] cmp r0, 0x2 bgt _081060A8 ldr r1, _081060A4 @ =gUnknown_083EDE10 lsls r0, 2 adds r0, r1 ldr r4, [r0] movs r0, 0x6 bl IndexOfSpritePaletteTag adds r1, r0, 0 lsls r1, 24 lsrs r1, 4 movs r0, 0x80 lsls r0, 17 adds r1, r0 lsrs r1, 16 adds r0, r4, 0 movs r2, 0x20 bl LoadPalette ldrh r0, [r5, 0x32] adds r0, 0x1 strh r0, [r5, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 ble _081060E4 ldrh r0, [r5, 0x30] adds r0, 0x1 strh r0, [r5, 0x30] movs r0, 0 strh r0, [r5, 0x32] b _081060E4 .align 2, 0 _081060A4: .4byte gUnknown_083EDE10 _081060A8: ldr r1, _081060F8 @ =gUnknown_083EDE10 movs r2, 0x30 ldrsh r0, [r5, r2] lsls r0, 2 adds r0, r1 ldr r4, [r0] movs r0, 0x6 bl IndexOfSpritePaletteTag adds r1, r0, 0 lsls r1, 24 lsrs r1, 4 movs r0, 0x80 lsls r0, 17 adds r1, r0 lsrs r1, 16 adds r0, r4, 0 movs r2, 0x20 bl LoadPalette ldrh r0, [r5, 0x32] adds r0, 0x1 movs r1, 0 strh r0, [r5, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x18 ble _081060E4 strh r1, [r5, 0x30] strh r1, [r5, 0x32] _081060E4: adds r0, r5, 0 movs r1, 0x1 bl StartSpriteAnimIfDifferent movs r0, 0 strh r0, [r5, 0x3C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081060F8: .4byte gUnknown_083EDE10 thumb_func_end sub_8106058 thumb_func_start sub_81060FC sub_81060FC: @ 81060FC push {r4-r6,lr} sub sp, 0x30 adds r4, r0, 0 ldr r1, _08106138 @ =gUnknown_083ECC72 mov r0, sp movs r2, 0x10 bl memcpy add r6, sp, 0x10 ldr r1, _0810613C @ =gUnknown_083ECC82 adds r0, r6, 0 movs r2, 0x10 bl memcpy add r5, sp, 0x20 ldr r1, _08106140 @ =gUnknown_083ECC92 adds r0, r5, 0 movs r2, 0x10 bl memcpy movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x1 beq _08106174 cmp r0, 0x1 bgt _08106144 cmp r0, 0 beq _0810614A b _081061C0 .align 2, 0 _08106138: .4byte gUnknown_083ECC72 _0810613C: .4byte gUnknown_083ECC82 _08106140: .4byte gUnknown_083ECC92 _08106144: cmp r0, 0x2 beq _08106188 b _081061C0 _0810614A: movs r2, 0x3A ldrsh r0, [r4, r2] lsls r0, 1 add r0, sp ldrh r0, [r0] strh r0, [r4, 0x24] movs r1, 0x3A ldrsh r0, [r4, r1] lsls r0, 1 adds r0, r6, r0 ldrh r0, [r0] strh r0, [r4, 0x26] movs r2, 0x3A ldrsh r0, [r4, r2] lsls r0, 1 adds r0, r5, r0 ldrh r0, [r0] strh r0, [r4, 0x30] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] _08106174: ldrh r0, [r4, 0x30] subs r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _081061C0 b _081061BA _08106188: ldrh r0, [r4, 0x24] movs r2, 0x24 ldrsh r1, [r4, r2] cmp r1, 0 ble _08106196 subs r0, 0x4 b _0810619C _08106196: cmp r1, 0 bge _0810619E adds r0, 0x4 _0810619C: strh r0, [r4, 0x24] _0810619E: ldrh r0, [r4, 0x26] movs r2, 0x26 ldrsh r1, [r4, r2] cmp r1, 0 ble _081061AC subs r0, 0x4 b _081061B2 _081061AC: cmp r1, 0 bge _081061B4 adds r0, 0x4 _081061B2: strh r0, [r4, 0x26] _081061B4: ldr r0, [r4, 0x24] cmp r0, 0 bne _081061C0 _081061BA: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] _081061C0: add sp, 0x30 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81060FC thumb_func_start sub_81061C8 sub_81061C8: @ 81061C8 push {r4,lr} sub sp, 0x10 adds r4, r0, 0 ldr r1, _0810622C @ =gUnknown_083ECCA2 mov r0, sp movs r2, 0x10 bl memcpy ldrh r1, [r4, 0x2E] movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0 bne _081061EA adds r0, r1, 0x1 strh r0, [r4, 0x2E] movs r0, 0xC strh r0, [r4, 0x30] _081061EA: movs r1, 0x3A ldrsh r0, [r4, r1] lsls r0, 1 add r0, sp movs r2, 0 ldrsh r0, [r0, r2] movs r2, 0x30 ldrsh r1, [r4, r2] bl Cos strh r0, [r4, 0x24] movs r1, 0x3A ldrsh r0, [r4, r1] lsls r0, 1 add r0, sp movs r2, 0 ldrsh r0, [r0, r2] movs r2, 0x30 ldrsh r1, [r4, r2] bl Sin strh r0, [r4, 0x26] ldrh r1, [r4, 0x30] movs r2, 0x30 ldrsh r0, [r4, r2] cmp r0, 0 beq _08106224 subs r0, r1, 0x1 strh r0, [r4, 0x30] _08106224: add sp, 0x10 pop {r4} pop {r0} bx r0 .align 2, 0 _0810622C: .4byte gUnknown_083ECCA2 thumb_func_end sub_81061C8 thumb_func_start sub_8106230 sub_8106230: @ 8106230 push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0x1 beq _0810627A cmp r0, 0x1 bgt _08106248 cmp r0, 0 beq _08106252 b _0810634A _08106248: cmp r0, 0x2 beq _081062C4 cmp r0, 0x3 beq _081062FC b _0810634A _08106252: ldr r2, _081062BC @ =0x02000000 adds r1, r2, 0 adds r1, 0x5C movs r0, 0x2F strh r0, [r1] adds r1, 0x2 movs r0, 0x3F strh r0, [r1] subs r1, 0x4 ldr r0, _081062C0 @ =0x00002088 strh r0, [r1] adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] _0810627A: ldrh r0, [r5, 0x30] adds r2, r0, 0x2 strh r2, [r5, 0x30] adds r0, 0xB2 strh r0, [r5, 0x32] movs r1, 0xF0 subs r1, r2 strh r1, [r5, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0xD0 ble _08106296 movs r0, 0xD0 strh r0, [r5, 0x32] _08106296: movs r1, 0x34 ldrsh r0, [r5, r1] cmp r0, 0xCF bgt _081062A2 movs r0, 0xD0 strh r0, [r5, 0x34] _081062A2: ldr r2, _081062BC @ =0x02000000 ldrh r0, [r5, 0x32] lsls r0, 8 ldrh r1, [r5, 0x34] orrs r0, r1 adds r1, r2, 0 adds r1, 0x58 strh r0, [r1] movs r1, 0x30 ldrsh r0, [r5, r1] cmp r0, 0x33 ble _0810634A b _0810633C .align 2, 0 _081062BC: .4byte 0x02000000 _081062C0: .4byte 0x00002088 _081062C4: ldr r6, _08106354 @ =0x02000000 movs r1, 0x12 ldrsh r0, [r6, r1] cmp r0, 0 beq _0810634A ldr r1, _08106358 @ =SpriteCallbackDummy movs r4, 0 str r4, [sp] movs r0, 0x5 movs r2, 0xD0 movs r3, 0x74 bl sub_8104D30 adds r1, r6, 0 adds r1, 0x58 ldr r0, _0810635C @ =0x0000c0e0 strh r0, [r1] adds r1, 0x2 movs r0, 0xD1 lsls r0, 7 strh r0, [r1] adds r1, 0x2 movs r0, 0x2F strh r0, [r1] ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] strh r4, [r5, 0x30] _081062FC: ldrh r0, [r5, 0x30] adds r2, r0, 0x2 strh r2, [r5, 0x30] adds r0, 0xC2 strh r0, [r5, 0x32] movs r1, 0xE0 subs r1, r2 strh r1, [r5, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0xD0 ble _08106318 movs r0, 0xD0 strh r0, [r5, 0x32] _08106318: movs r1, 0x34 ldrsh r0, [r5, r1] cmp r0, 0xCF bgt _08106324 movs r0, 0xD0 strh r0, [r5, 0x34] _08106324: ldr r2, _08106354 @ =0x02000000 ldrh r0, [r5, 0x32] lsls r0, 8 ldrh r1, [r5, 0x34] orrs r0, r1 adds r1, r2, 0 adds r1, 0x58 strh r0, [r1] movs r1, 0x30 ldrsh r0, [r5, r1] cmp r0, 0xF ble _0810634A _0810633C: ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] adds r1, r2, 0 adds r1, 0x5C movs r0, 0x3F strh r0, [r1] _0810634A: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08106354: .4byte 0x02000000 _08106358: .4byte SpriteCallbackDummy _0810635C: .4byte 0x0000c0e0 thumb_func_end sub_8106230 thumb_func_start nullsub_70 nullsub_70: @ 8106360 bx lr thumb_func_end nullsub_70 thumb_func_start sub_8106364 sub_8106364: @ 8106364 ldr r1, _0810636C @ =REG_MOSAIC movs r0, 0 strh r0, [r1] bx lr .align 2, 0 _0810636C: .4byte REG_MOSAIC thumb_func_end sub_8106364 thumb_func_start sub_8106370 sub_8106370: @ 8106370 push {r4,lr} ldr r0, _08106398 @ =gUnknown_083EDE20 ldr r4, [r0] movs r0, 0x6 bl IndexOfSpritePaletteTag adds r1, r0, 0 lsls r1, 24 lsrs r1, 4 movs r0, 0x80 lsls r0, 17 adds r1, r0 lsrs r1, 16 adds r0, r4, 0 movs r2, 0x20 bl LoadPalette pop {r4} pop {r0} bx r0 .align 2, 0 _08106398: .4byte gUnknown_083EDE20 thumb_func_end sub_8106370 thumb_func_start sub_810639C sub_810639C: @ 810639C ldr r2, _081063BC @ =0x02000000 adds r1, r2, 0 adds r1, 0x58 movs r0, 0xF0 strh r0, [r1] adds r1, 0x2 movs r0, 0xA0 strh r0, [r1] adds r0, r2, 0 adds r0, 0x5C movs r1, 0x3F strh r1, [r0] adds r0, 0x2 strh r1, [r0] bx lr .align 2, 0 _081063BC: .4byte 0x02000000 thumb_func_end sub_810639C thumb_func_start sub_81063C0 sub_81063C0: @ 81063C0 push {r4,lr} bl sub_8106404 ldr r0, _081063F0 @ =gSlotMachineReelTimeLights_Gfx ldr r4, _081063F4 @ =0x02010000 adds r1, r4, 0 bl sub_800D238 ldr r0, _081063F8 @ =gUnknown_083EDE8C movs r1, 0xC8 lsls r1, 6 adds r4, r1 adds r1, r4, 0 bl sub_800D238 ldr r0, _081063FC @ =gUnknown_083EDC2C bl LoadSpriteSheets ldr r0, _08106400 @ =gSlotMachineSpritePalettes bl LoadSpritePalettes pop {r4} pop {r0} bx r0 .align 2, 0 _081063F0: .4byte gSlotMachineReelTimeLights_Gfx _081063F4: .4byte 0x02010000 _081063F8: .4byte gUnknown_083EDE8C _081063FC: .4byte gUnknown_083EDC2C _08106400: .4byte gSlotMachineSpritePalettes thumb_func_end sub_81063C0 thumb_func_start sub_8106404 sub_8106404: @ 8106404 push {r4,r5,lr} ldr r3, _0810643C @ =0x02010000 movs r2, 0 ldr r5, _08106440 @ =gUnknown_083EDCDC ldr r0, _08106444 @ =gUnknown_083EDCE4 ldr r4, [r0] _08106410: movs r1, 0 adds r2, 0x1 _08106414: adds r0, r4, r1 ldrb r0, [r0] strb r0, [r3] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 adds r3, 0x1 cmp r1, 0x1F bls _08106414 lsls r0, r2, 24 lsrs r2, r0, 24 cmp r2, 0x3F bls _08106410 adds r0, r5, 0 bl LoadSpriteSheet pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810643C: .4byte 0x02010000 _08106440: .4byte gUnknown_083EDCDC _08106444: .4byte gUnknown_083EDCE4 thumb_func_end sub_8106404 thumb_func_start sub_8106448 sub_8106448: @ 8106448 push {r4-r7,lr} ldr r0, _081064A0 @ =gSlotMachine_Gfx ldr r4, _081064A4 @ =0x02010000 adds r1, r4, 0 bl sub_800D238 movs r3, 0xC0 lsls r3, 19 movs r5, 0xE9 lsls r5, 5 ldr r1, _081064A8 @ =0x040000d4 ldr r6, _081064AC @ =0x80000800 movs r2, 0x80 lsls r2, 5 movs r7, 0x80 lsls r7, 24 _08106468: str r4, [r1] str r3, [r1, 0x4] str r6, [r1, 0x8] ldr r0, [r1, 0x8] adds r4, r2 adds r3, r2 subs r5, r2 cmp r5, r2 bhi _08106468 str r4, [r1] str r3, [r1, 0x4] lsrs r0, r5, 1 orrs r0, r7 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r0, _081064B0 @ =gUnknown_08E95A18 movs r1, 0 movs r2, 0xA0 bl LoadPalette ldr r0, _081064B4 @ =gUnknown_083EDE24 movs r1, 0xD0 movs r2, 0x20 bl LoadPalette pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081064A0: .4byte gSlotMachine_Gfx _081064A4: .4byte 0x02010000 _081064A8: .4byte 0x040000d4 _081064AC: .4byte 0x80000800 _081064B0: .4byte gUnknown_08E95A18 _081064B4: .4byte gUnknown_083EDE24 thumb_func_end sub_8106448 thumb_func_start sub_81064B8 sub_81064B8: @ 81064B8 push {lr} ldr r0, _081064D0 @ =gUnknown_08E95AB8 ldr r1, _081064D4 @ =0x0600e800 movs r2, 0xA0 lsls r2, 2 bl CpuSet bl sub_81064D8 pop {r0} bx r0 .align 2, 0 _081064D0: .4byte gUnknown_08E95AB8 _081064D4: .4byte 0x0600e800 thumb_func_end sub_81064B8 thumb_func_start sub_81064D8 sub_81064D8: @ 81064D8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r6, _0810658C @ =0x0600f000 movs r3, 0x4 movs r0, 0xC0 lsls r0, 1 mov r12, r0 movs r1, 0xC0 lsls r1, 2 mov r9, r1 movs r2, 0xA0 lsls r2, 1 mov r8, r2 _081064F6: movs r0, 0 lsls r4, r3, 16 asrs r5, r4, 16 _081064FC: lsls r2, r0, 16 asrs r2, 16 adds r1, r5, r2 lsls r1, 1 adds r1, r6 mov r7, r8 adds r3, r1, r7 ldr r7, _08106590 @ =0x00002051 adds r0, r7, 0 strh r0, [r3] movs r0, 0xD0 lsls r0, 2 adds r3, r1, r0 ldr r7, _08106594 @ =0x00002851 adds r0, r7, 0 strh r0, [r3] mov r0, r12 adds r3, r1, r0 ldr r7, _08106598 @ =0x00002061 adds r0, r7, 0 strh r0, [r3] add r1, r9 ldr r3, _0810659C @ =0x00002861 adds r0, r3, 0 strh r0, [r1] adds r2, 0x1 lsls r2, 16 lsrs r0, r2, 16 asrs r2, 16 cmp r2, 0x3 ble _081064FC asrs r3, r4, 16 lsls r1, r3, 1 adds r1, r6 mov r5, r12 adds r2, r1, r5 adds r7, 0x5D adds r0, r7, 0 strh r0, [r2] add r1, r9 ldr r2, _081065A0 @ =0x000028be adds r0, r2, 0 strh r0, [r1] movs r0, 0x7 ldr r5, _081065A4 @ =0x000020bf adds r2, r5, 0 _08106558: lsls r1, r0, 16 asrs r1, 16 lsls r0, r1, 5 adds r0, r3 lsls r0, 1 adds r0, r6 strh r2, [r0] adds r1, 0x1 lsls r1, 16 lsrs r0, r1, 16 asrs r1, 16 cmp r1, 0xB ble _08106558 movs r7, 0xA0 lsls r7, 11 adds r0, r4, r7 lsrs r3, r0, 16 asrs r0, 16 cmp r0, 0x11 ble _081064F6 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810658C: .4byte 0x0600f000 _08106590: .4byte 0x00002051 _08106594: .4byte 0x00002851 _08106598: .4byte 0x00002061 _0810659C: .4byte 0x00002861 _081065A0: .4byte 0x000028be _081065A4: .4byte 0x000020bf thumb_func_end sub_81064D8 thumb_func_start sub_81065A8 sub_81065A8: @ 81065A8 push {r4-r6,lr} ldr r5, [sp, 0x10] lsls r0, 16 asrs r0, 15 ldr r6, _081065D0 @ =0x0600ebc0 adds r4, r0, r6 strh r1, [r4] ldr r4, _081065D4 @ =0x0600ebc2 adds r1, r0, r4 strh r2, [r1] adds r6, 0x40 adds r1, r0, r6 strh r3, [r1] ldr r1, _081065D8 @ =0x0600ec02 adds r0, r1 strh r5, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081065D0: .4byte 0x0600ebc0 _081065D4: .4byte 0x0600ebc2 _081065D8: .4byte 0x0600ec02 thumb_func_end sub_81065A8 thumb_func_start sub_81065DC sub_81065DC: @ 81065DC push {r4,r5,lr} ldr r0, _08106624 @ =gUnknown_08E95FB8 ldr r1, _08106628 @ =0x0600e800 movs r2, 0xA0 lsls r2, 2 bl CpuSet ldr r5, _0810662C @ =0x0600f000 movs r1, 0 movs r4, 0 _081065F0: movs r0, 0 lsls r3, r1, 16 asrs r2, r3, 11 _081065F6: lsls r1, r0, 16 asrs r1, 16 adds r0, r2, r1 lsls r0, 1 adds r0, r5 strh r4, [r0] adds r1, 0x1 lsls r1, 16 lsrs r0, r1, 16 asrs r1, 16 cmp r1, 0x1D ble _081065F6 movs r1, 0x80 lsls r1, 9 adds r0, r3, r1 lsrs r1, r0, 16 asrs r0, 16 cmp r0, 0x13 ble _081065F0 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08106624: .4byte gUnknown_08E95FB8 _08106628: .4byte 0x0600e800 _0810662C: .4byte 0x0600f000 thumb_func_end sub_81065DC thumb_func_start sub_8106630 sub_8106630: @ 8106630 push {r4-r7,lr} ldr r2, _0810665C @ =0x02015de0 subs r4, r2, 0x2 subs r5, r2, 0x1 ldr r3, _08106660 @ =gSaveBlock1 subs r0, 0x1 lsls r1, r0, 5 adds r1, r3 ldr r3, _08106664 @ =0x00002dfc adds r1, r3 ldm r1!, {r3,r6,r7} stm r2!, {r3,r6,r7} ldm r1!, {r3,r6,r7} stm r2!, {r3,r6,r7} ldm r1!, {r6,r7} stm r2!, {r6,r7} strb r0, [r4] movs r0, 0 strb r0, [r5] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810665C: .4byte 0x02015de0 _08106660: .4byte gSaveBlock1 _08106664: .4byte 0x00002dfc thumb_func_end sub_8106630 thumb_func_start sub_8106668 sub_8106668: @ 8106668 push {lr} bl sub_8106674 pop {r0} bx r0 thumb_func_end sub_8106668 thumb_func_start sub_8106674 sub_8106674: @ 8106674 push {r4-r7,lr} sub sp, 0x4 ldr r1, _08106694 @ =gMain ldr r2, _08106698 @ =0x0000043c adds r0, r1, r2 ldrb r0, [r0] adds r4, r1, 0 cmp r0, 0x4 bls _08106688 b _081067E0 _08106688: lsls r0, 2 ldr r1, _0810669C @ =_081066A0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08106694: .4byte gMain _08106698: .4byte 0x0000043c _0810669C: .4byte _081066A0 .align 2, 0 _081066A0: .4byte _081066B4 .4byte _081066D8 .4byte _08106734 .4byte _0810675C .4byte _0810678C _081066B4: bl remove_some_task movs r0, 0 bl SetVBlankCallback ldr r1, _081066D0 @ =gUnknown_03005E8C ldr r0, _081066D4 @ =0x02015de0 str r0, [r1] movs r0, 0x1 bl sub_8106A10 bl sub_81069CC b _0810676E .align 2, 0 _081066D0: .4byte gUnknown_03005E8C _081066D4: .4byte 0x02015de0 _081066D8: bl ResetPaletteFade movs r2, 0xC0 lsls r2, 19 movs r3, 0xC0 lsls r3, 9 movs r5, 0 ldr r1, _08106724 @ =0x040000d4 movs r4, 0x80 lsls r4, 5 ldr r6, _08106728 @ =0x85000400 movs r7, 0x85 lsls r7, 24 _081066F2: str r5, [sp] mov r0, sp str r0, [r1] str r2, [r1, 0x4] str r6, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r4 subs r3, r4 cmp r3, r4 bhi _081066F2 str r5, [sp] mov r0, sp str r0, [r1] str r2, [r1, 0x4] lsrs r0, r3, 2 orrs r0, r7 str r0, [r1, 0x8] ldr r0, [r1, 0x8] bl ResetSpriteData ldr r1, _0810672C @ =gMain ldr r2, _08106730 @ =0x0000043c adds r1, r2 b _08106774 .align 2, 0 _08106724: .4byte 0x040000d4 _08106728: .4byte 0x85000400 _0810672C: .4byte gMain _08106730: .4byte 0x0000043c _08106734: ldrh r0, [r4, 0x20] bl SeedRng bl InitKeys ldr r0, _08106750 @ =0x02000000 ldr r1, _08106754 @ =0x00015ddf adds r0, r1 ldrb r0, [r0] bl sub_81068FC ldr r2, _08106758 @ =0x0000043c adds r1, r4, r2 b _08106774 .align 2, 0 _08106750: .4byte 0x02000000 _08106754: .4byte 0x00015ddf _08106758: .4byte 0x0000043c _0810675C: ldr r1, _0810677C @ =0x02000000 ldr r2, _08106780 @ =0x00015dde adds r0, r1, r2 ldrb r0, [r0] adds r2, 0x1 adds r1, r2 ldrb r1, [r1] bl sub_8107090 _0810676E: ldr r1, _08106784 @ =gMain ldr r0, _08106788 @ =0x0000043c adds r1, r0 _08106774: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _081067E0 .align 2, 0 _0810677C: .4byte 0x02000000 _08106780: .4byte 0x00015dde _08106784: .4byte gMain _08106788: .4byte 0x0000043c _0810678C: ldr r1, _081067E8 @ =0x02000000 ldr r2, _081067EC @ =0x00015dde adds r0, r1, r2 ldrb r0, [r0] adds r2, 0x1 adds r1, r2 ldrb r1, [r1] bl sub_8106918 ldr r0, _081067F0 @ =gUnknown_083F6140 movs r1, 0 movs r2, 0x2 bl LoadPalette movs r1, 0xA0 lsls r1, 19 movs r4, 0 str r4, [sp] ldr r0, _081067F4 @ =0x040000d4 mov r2, sp str r2, [r0] str r1, [r0, 0x4] ldr r1, _081067F8 @ =0x85000100 str r1, [r0, 0x8] ldr r0, [r0, 0x8] movs r0, 0x2 bl BeginFastPaletteFade ldr r0, _081067FC @ =sub_8106AAC bl SetVBlankCallback ldr r0, _08106800 @ =gUnknown_03000750 strb r4, [r0] movs r1, 0x80 lsls r1, 19 movs r2, 0x9A lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r0, _08106804 @ =sub_8106808 bl SetMainCallback2 _081067E0: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081067E8: .4byte 0x02000000 _081067EC: .4byte 0x00015dde _081067F0: .4byte gUnknown_083F6140 _081067F4: .4byte 0x040000d4 _081067F8: .4byte 0x85000100 _081067FC: .4byte sub_8106AAC _08106800: .4byte gUnknown_03000750 _08106804: .4byte sub_8106808 thumb_func_end sub_8106674 thumb_func_start sub_8106808 sub_8106808: @ 8106808 push {lr} bl sub_810682C bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_8106808 thumb_func_start sub_8106818 sub_8106818: @ 8106818 push {lr} ldr r0, _08106828 @ =gMain ldr r0, [r0, 0x8] bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _08106828: .4byte gMain thumb_func_end sub_8106818 thumb_func_start sub_810682C sub_810682C: @ 810682C push {lr} sub sp, 0x4 ldr r3, _08106844 @ =gUnknown_03000750 ldrb r1, [r3] cmp r1, 0x1 beq _08106880 cmp r1, 0x1 bgt _08106848 cmp r1, 0 beq _0810684E b _081068E6 .align 2, 0 _08106844: .4byte gUnknown_03000750 _08106848: cmp r1, 0x2 beq _081068C0 b _081068E6 _0810684E: ldr r0, _08106874 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0810685E movs r0, 0x1 strb r0, [r3] _0810685E: ldr r0, _08106878 @ =gUnknown_03000756 ldrb r0, [r0] cmp r0, 0 beq _081068E6 ldr r1, _0810687C @ =gUnknown_03000754 ldrh r0, [r1] cmp r0, 0 beq _081068E6 subs r0, 0x1 b _081068E4 .align 2, 0 _08106874: .4byte gPaletteFade _08106878: .4byte gUnknown_03000756 _0810687C: .4byte gUnknown_03000754 _08106880: ldr r0, _081068B4 @ =gMain ldrh r2, [r0, 0x2E] ands r1, r2 cmp r1, 0 bne _08106892 movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _081068A4 _08106892: movs r0, 0x2 strb r0, [r3] subs r0, 0x3 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade _081068A4: ldr r0, _081068B8 @ =gUnknown_03000756 ldrb r0, [r0] cmp r0, 0 beq _081068E6 ldr r1, _081068BC @ =gUnknown_03000754 movs r0, 0 b _081068E4 .align 2, 0 _081068B4: .4byte gMain _081068B8: .4byte gUnknown_03000756 _081068BC: .4byte gUnknown_03000754 _081068C0: ldr r0, _081068EC @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081068D2 ldr r0, _081068F0 @ =sub_8106818 bl SetMainCallback2 _081068D2: ldr r0, _081068F4 @ =gUnknown_03000756 ldrb r0, [r0] cmp r0, 0 beq _081068E6 ldr r1, _081068F8 @ =gUnknown_03000754 ldrh r0, [r1] cmp r0, 0x1D bhi _081068E6 adds r0, 0x1 _081068E4: strh r0, [r1] _081068E6: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _081068EC: .4byte gPaletteFade _081068F0: .4byte sub_8106818 _081068F4: .4byte gUnknown_03000756 _081068F8: .4byte gUnknown_03000754 thumb_func_end sub_810682C thumb_func_start sub_81068FC sub_81068FC: @ 81068FC push {r4,lr} ldr r4, _08106914 @ =gWindowConfig_81E7160 adds r0, r4, 0 bl InitMenuWindow adds r0, r4, 0 bl SetUpWindowConfig pop {r4} pop {r0} bx r0 .align 2, 0 _08106914: .4byte gWindowConfig_81E7160 thumb_func_end sub_81068FC thumb_func_start sub_8106918 sub_8106918: @ 8106918 push {r4-r6,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r1, 24 lsrs r1, 24 cmp r1, 0x1 beq _081069BE ldr r2, _08106974 @ =gUnknown_03005E40 ldr r6, _08106978 @ =gUnknown_03005E8C ldr r0, [r6] ldrb r0, [r0, 0xA] cmp r3, 0x7 bhi _08106988 ldr r1, _0810697C @ =gUnknown_083F60AC lsls r0, 2 adds r0, r1 ldr r1, [r0] adds r0, r2, 0 bl StringCopy adds r2, r0, 0 ldr r1, _08106980 @ =gContestText_ContestWinner bl StringCopy adds r2, r0, 0 ldr r1, [r6] adds r1, 0x16 bl StringCopy adds r2, r0, 0 movs r0, 0xFC strb r0, [r2] movs r0, 0x16 strb r0, [r2, 0x1] adds r2, 0x2 ldr r1, _08106984 @ =gOtherText_Unknown1 adds r0, r2, 0 bl StringCopy adds r2, r0, 0 ldr r1, [r6] adds r1, 0xB bl StringCopy10 movs r1, 0x6 b _081069AE .align 2, 0 _08106974: .4byte gUnknown_03005E40 _08106978: .4byte gUnknown_03005E8C _0810697C: .4byte gUnknown_083F60AC _08106980: .4byte gContestText_ContestWinner _08106984: .4byte gOtherText_Unknown1 _08106988: ldr r4, _081069C4 @ =gUnknown_083F60C0 lsls r5, r0, 3 adds r0, r5, r4 ldr r1, [r0] adds r0, r2, 0 bl StringCopy adds r2, r0, 0 ldr r1, [r6] adds r1, 0xB bl StringCopy10 adds r2, r0, 0 adds r4, 0x4 adds r5, r4 ldr r1, [r5] bl StringCopy movs r1, 0x3 _081069AE: movs r2, 0xE ldr r0, _081069C8 @ =gUnknown_03005E40 lsls r1, 3 adds r1, 0x1 lsls r2, 3 movs r3, 0x1 bl MenuPrint_PixelCoords _081069BE: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081069C4: .4byte gUnknown_083F60C0 _081069C8: .4byte gUnknown_03005E40 thumb_func_end sub_8106918 thumb_func_start sub_81069CC sub_81069CC: @ 81069CC movs r0, 0x80 lsls r0, 19 movs r3, 0 strh r3, [r0] ldr r2, _081069FC @ =0x04000200 ldrh r0, [r2] movs r1, 0x1 orrs r0, r1 strh r0, [r2] ldr r1, _08106A00 @ =REG_BG0CNT ldr r2, _08106A04 @ =0x00000c42 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _08106A08 @ =0x00000a45 adds r0, r2, 0 strh r0, [r1] ldr r0, _08106A0C @ =REG_BLDCNT strh r3, [r0] adds r0, 0x2 strh r3, [r0] adds r0, 0x2 strh r3, [r0] bx lr .align 2, 0 _081069FC: .4byte 0x04000200 _08106A00: .4byte REG_BG0CNT _08106A04: .4byte 0x00000c42 _08106A08: .4byte 0x00000a45 _08106A0C: .4byte REG_BLDCNT thumb_func_end sub_81069CC thumb_func_start sub_8106A10 sub_8106A10: @ 8106A10 push {lr} lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _08106A34 ldr r0, _08106A28 @ =gUnknown_03000756 strb r1, [r0] ldr r0, _08106A2C @ =gUnknown_03000752 strh r1, [r0] ldr r0, _08106A30 @ =gUnknown_03000754 strh r1, [r0] b _08106A46 .align 2, 0 _08106A28: .4byte gUnknown_03000756 _08106A2C: .4byte gUnknown_03000752 _08106A30: .4byte gUnknown_03000754 _08106A34: ldr r1, _08106A4C @ =gUnknown_03000756 movs r0, 0x1 strb r0, [r1] ldr r1, _08106A50 @ =gUnknown_03000752 movs r0, 0xF strh r0, [r1] ldr r1, _08106A54 @ =gUnknown_03000754 movs r0, 0x1E strh r0, [r1] _08106A46: pop {r0} bx r0 .align 2, 0 _08106A4C: .4byte gUnknown_03000756 _08106A50: .4byte gUnknown_03000752 _08106A54: .4byte gUnknown_03000754 thumb_func_end sub_8106A10 thumb_func_start sub_8106A58 sub_8106A58: @ 8106A58 push {lr} ldr r0, _08106A68 @ =gUnknown_03000756 ldrb r1, [r0] cmp r1, 0 bne _08106A70 ldr r0, _08106A6C @ =REG_MOSAIC strh r1, [r0] b _08106A92 .align 2, 0 _08106A68: .4byte gUnknown_03000756 _08106A6C: .4byte REG_MOSAIC _08106A70: ldr r1, _08106A98 @ =REG_BG1CNT ldr r2, _08106A9C @ =0x00000a45 adds r0, r2, 0 strh r0, [r1] ldr r2, _08106AA0 @ =gUnknown_03000752 ldr r0, _08106AA4 @ =gUnknown_03000754 ldrh r1, [r0] lsrs r1, 1 strh r1, [r2] ldr r3, _08106AA8 @ =REG_MOSAIC lsls r0, r1, 12 lsls r2, r1, 8 orrs r0, r2 lsls r2, r1, 4 orrs r0, r2 orrs r0, r1 strh r0, [r3] _08106A92: pop {r0} bx r0 .align 2, 0 _08106A98: .4byte REG_BG1CNT _08106A9C: .4byte 0x00000a45 _08106AA0: .4byte gUnknown_03000752 _08106AA4: .4byte gUnknown_03000754 _08106AA8: .4byte REG_MOSAIC thumb_func_end sub_8106A58 thumb_func_start sub_8106AAC sub_8106AAC: @ 8106AAC push {lr} bl sub_8106A58 bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_8106AAC thumb_func_start sub_8106AC4 sub_8106AC4: @ 8106AC4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC adds r4, r1, 0 lsls r0, 16 lsrs r6, r0, 16 lsls r4, 24 lsrs r4, 24 ldr r7, _08106B28 @ =gUnknown_03005E8C ldr r0, [r7] ldr r1, [r0, 0x4] ldr r2, [r0] adds r0, r6, 0 bl species_and_otid_get_pal ldr r1, _08106B2C @ =gUnknown_03005E90 mov r8, r1 ldr r1, [r1] bl LZDecompressVram cmp r4, 0 bne _08106B40 lsls r0, r6, 3 ldr r1, _08106B30 @ =gMonFrontPicTable adds r0, r1 ldr r1, _08106B34 @ =gMonFrontPicCoords lsls r2, r6, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _08106B38 @ =gUnknown_081FAF4C ldr r5, [r4, 0x4] str r5, [sp] str r6, [sp, 0x4] ldr r4, [r7] ldr r4, [r4] str r4, [sp, 0x8] bl sub_800D334 mov r2, r8 ldr r1, [r2] ldr r0, _08106B3C @ =gUnknown_03005E10 ldr r2, [r0] adds r0, r5, 0 bl sub_8106B90 b _08106B74 .align 2, 0 _08106B28: .4byte gUnknown_03005E8C _08106B2C: .4byte gUnknown_03005E90 _08106B30: .4byte gMonFrontPicTable _08106B34: .4byte gMonFrontPicCoords _08106B38: .4byte gUnknown_081FAF4C _08106B3C: .4byte gUnknown_03005E10 _08106B40: lsls r0, r6, 3 ldr r1, _08106B80 @ =gMonBackPicTable adds r0, r1 ldr r1, _08106B84 @ =gMonBackPicCoords lsls r2, r6, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _08106B88 @ =gUnknown_081FAF4C ldr r5, [r4] str r5, [sp] str r6, [sp, 0x4] ldr r4, [r7] ldr r4, [r4] str r4, [sp, 0x8] bl sub_800D334 mov r0, r8 ldr r1, [r0] ldr r0, _08106B8C @ =gUnknown_03005E10 ldr r2, [r0] adds r0, r5, 0 bl sub_8106B90 _08106B74: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08106B80: .4byte gMonBackPicTable _08106B84: .4byte gMonBackPicCoords _08106B88: .4byte gUnknown_081FAF4C _08106B8C: .4byte gUnknown_03005E10 thumb_func_end sub_8106AC4 thumb_func_start sub_8106B90 sub_8106B90: @ 8106B90 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC mov r10, r0 mov r9, r1 str r2, [sp] movs r0, 0 _08106BA4: movs r3, 0 adds r1, r0, 0x1 str r1, [sp, 0x4] lsls r0, 3 str r0, [sp, 0x8] _08106BAE: movs r1, 0 adds r2, r3, 0x1 mov r8, r2 ldr r7, [sp, 0x8] adds r0, r7, r3 lsls r0, 5 mov r12, r0 lsls r4, r3, 3 _08106BBE: movs r3, 0 lsls r0, r1, 2 adds r6, r1, 0x1 mov r2, r12 adds r5, r2, r0 ldr r7, [sp, 0x8] adds r0, r7, r1 lsls r0, 7 ldr r1, [sp] adds r2, r0, r1 _08106BD2: lsrs r0, r3, 1 adds r0, r5, r0 add r0, r10 ldrb r1, [r0] movs r0, 0x1 ands r0, r3 cmp r0, 0 beq _08106BE6 lsrs r1, 4 b _08106BEA _08106BE6: movs r0, 0xF ands r1, r0 _08106BEA: cmp r1, 0 bne _08106BFC adds r0, r4, r3 lsls r0, 1 adds r0, r2 movs r7, 0x80 lsls r7, 8 adds r1, r7, 0 b _08106C08 _08106BFC: adds r0, r4, r3 lsls r0, 1 adds r0, r2 lsls r1, 1 add r1, r9 ldrh r1, [r1] _08106C08: strh r1, [r0] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x7 bls _08106BD2 lsls r0, r6, 16 lsrs r1, r0, 16 cmp r1, 0x7 bls _08106BBE mov r1, r8 lsls r0, r1, 16 lsrs r3, r0, 16 cmp r3, 0x7 bls _08106BAE ldr r2, [sp, 0x4] lsls r0, r2, 16 lsrs r0, 16 cmp r0, 0x7 bls _08106BA4 add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8106B90 thumb_func_start sub_8106C40 sub_8106C40: @ 8106C40 push {r4-r7,lr} adds r4, r1, 0 lsls r0, 24 lsrs r5, r0, 24 lsls r4, 24 lsrs r4, 24 ldr r0, _08106C7C @ =gPictureFramePalettes movs r2, 0x80 lsls r2, 1 movs r1, 0 bl LoadPalette cmp r4, 0x1 beq _08106C5E b _08106DB4 _08106C5E: ldr r0, _08106C80 @ =gUnknown_03005E8C ldr r0, [r0] ldrb r0, [r0, 0xA] movs r1, 0x3 bl __udivsi3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _08106D1C lsls r0, 2 ldr r1, _08106C84 @ =_08106C88 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08106C7C: .4byte gPictureFramePalettes _08106C80: .4byte gUnknown_03005E8C _08106C84: .4byte _08106C88 .align 2, 0 _08106C88: .4byte _08106C9C .4byte _08106CB4 .4byte _08106CCC .4byte _08106CE4 .4byte _08106D08 _08106C9C: ldr r0, _08106CAC @ =gPictureFrameTiles_0 movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106CB0 @ =gPictureFrameTilemap_0 b _08106CF0 .align 2, 0 _08106CAC: .4byte gPictureFrameTiles_0 _08106CB0: .4byte gPictureFrameTilemap_0 _08106CB4: ldr r0, _08106CC4 @ =gPictureFrameTiles_1 movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106CC8 @ =gPictureFrameTilemap_1 b _08106CF0 .align 2, 0 _08106CC4: .4byte gPictureFrameTiles_1 _08106CC8: .4byte gPictureFrameTilemap_1 _08106CCC: ldr r0, _08106CDC @ =gPictureFrameTiles_2 movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106CE0 @ =gPictureFrameTilemap_2 b _08106CF0 .align 2, 0 _08106CDC: .4byte gPictureFrameTiles_2 _08106CE0: .4byte gPictureFrameTilemap_2 _08106CE4: ldr r0, _08106CFC @ =gPictureFrameTiles_3 movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106D00 @ =gPictureFrameTilemap_3 _08106CF0: ldr r1, _08106D04 @ =gUnknown_03005E10 ldr r1, [r1] bl RLUnCompWram b _08106D1C .align 2, 0 _08106CFC: .4byte gPictureFrameTiles_3 _08106D00: .4byte gPictureFrameTilemap_3 _08106D04: .4byte gUnknown_03005E10 _08106D08: ldr r0, _08106D98 @ =gPictureFrameTiles_4 movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106D9C @ =gPictureFrameTilemap_4 ldr r1, _08106DA0 @ =gUnknown_03005E10 ldr r1, [r1] bl RLUnCompWram _08106D1C: movs r1, 0 ldr r5, _08106DA4 @ =0x06006000 ldr r0, _08106DA8 @ =0x00001015 adds r4, r0, 0 _08106D24: movs r3, 0 lsls r2, r1, 5 _08106D28: adds r0, r2, r3 lsls r0, 1 adds r0, r5 strh r4, [r0] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x1F bls _08106D28 adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x13 bls _08106D24 movs r1, 0 ldr r0, _08106DAC @ =0x0600608c mov r12, r0 ldr r7, _08106DA0 @ =gUnknown_03005E10 _08106D4C: movs r3, 0 adds r6, r1, 0x1 lsls r5, r1, 5 lsls r4, r1, 6 _08106D54: adds r2, r5, r3 lsls r2, 1 add r2, r12 ldr r0, [r7] adds r0, r4, r0 lsls r1, r3, 1 adds r0, r1 adds r0, 0x8C ldrh r0, [r0] strh r0, [r2] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x11 bls _08106D54 lsls r0, r6, 24 lsrs r1, r0, 24 cmp r1, 0x9 bls _08106D4C movs r3, 0 ldr r4, _08106DB0 @ =0x0600608e ldr r2, _08106DA0 @ =gUnknown_03005E10 _08106D80: lsls r1, r3, 1 adds r1, r4 ldr r0, [r2] adds r0, 0x8E ldrh r0, [r0] strh r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0xF bls _08106D80 b _08106E86 .align 2, 0 _08106D98: .4byte gPictureFrameTiles_4 _08106D9C: .4byte gPictureFrameTilemap_4 _08106DA0: .4byte gUnknown_03005E10 _08106DA4: .4byte 0x06006000 _08106DA8: .4byte 0x00001015 _08106DAC: .4byte 0x0600608c _08106DB0: .4byte 0x0600608e _08106DB4: cmp r5, 0x7 bhi _08106DD0 ldr r0, _08106DC8 @ =gPictureFrameTiles_5 movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106DCC @ =gPictureFrameTilemap_5 b _08106E60 .align 2, 0 _08106DC8: .4byte gPictureFrameTiles_5 _08106DCC: .4byte gPictureFrameTilemap_5 _08106DD0: ldr r0, _08106DF0 @ =gUnknown_03005E8C ldr r0, [r0] ldrb r0, [r0, 0xA] movs r1, 0x3 bl __udivsi3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _08106E86 lsls r0, 2 ldr r1, _08106DF4 @ =_08106DF8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08106DF0: .4byte gUnknown_03005E8C _08106DF4: .4byte _08106DF8 .align 2, 0 _08106DF8: .4byte _08106E0C .4byte _08106E24 .4byte _08106E3C .4byte _08106E54 .4byte _08106E74 _08106E0C: ldr r0, _08106E1C @ =gPictureFrameTiles_0 movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106E20 @ =gPictureFrameTilemap_0 b _08106E60 .align 2, 0 _08106E1C: .4byte gPictureFrameTiles_0 _08106E20: .4byte gPictureFrameTilemap_0 _08106E24: ldr r0, _08106E34 @ =gPictureFrameTiles_1 movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106E38 @ =gPictureFrameTilemap_1 b _08106E60 .align 2, 0 _08106E34: .4byte gPictureFrameTiles_1 _08106E38: .4byte gPictureFrameTilemap_1 _08106E3C: ldr r0, _08106E4C @ =gPictureFrameTiles_2 movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106E50 @ =gPictureFrameTilemap_2 b _08106E60 .align 2, 0 _08106E4C: .4byte gPictureFrameTiles_2 _08106E50: .4byte gPictureFrameTilemap_2 _08106E54: ldr r0, _08106E68 @ =gPictureFrameTiles_3 movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106E6C @ =gPictureFrameTilemap_3 _08106E60: ldr r1, _08106E70 @ =0x06006000 bl RLUnCompVram b _08106E86 .align 2, 0 _08106E68: .4byte gPictureFrameTiles_3 _08106E6C: .4byte gPictureFrameTilemap_3 _08106E70: .4byte 0x06006000 _08106E74: ldr r0, _08106E8C @ =gPictureFrameTiles_4 movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106E90 @ =gPictureFrameTilemap_4 ldr r1, _08106E94 @ =0x06006000 bl RLUnCompVram _08106E86: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08106E8C: .4byte gPictureFrameTiles_4 _08106E90: .4byte gPictureFrameTilemap_4 _08106E94: .4byte 0x06006000 thumb_func_end sub_8106C40 thumb_func_start sub_8106E98 sub_8106E98: @ 8106E98 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r4, _08106ED0 @ =gMain ldr r1, _08106ED4 @ =gOamData_83F6138 ldr r2, [r1, 0x4] ldr r1, [r1] str r1, [r4, 0x3C] str r2, [r4, 0x40] adds r3, r4, 0 adds r3, 0x40 ldrh r2, [r3] ldr r1, _08106ED8 @ =0xfffffc00 ands r1, r2 strh r1, [r3] ldrh r1, [r4, 0x3E] ldr r0, _08106EDC @ =0xfffffe00 ands r0, r1 movs r1, 0x58 orrs r0, r1 strh r0, [r4, 0x3E] adds r1, r4, 0 adds r1, 0x3C movs r0, 0x18 strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08106ED0: .4byte gMain _08106ED4: .4byte gOamData_83F6138 _08106ED8: .4byte 0xfffffc00 _08106EDC: .4byte 0xfffffe00 thumb_func_end sub_8106E98 thumb_func_start sub_8106EE0 sub_8106EE0: @ 8106EE0 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x7 bhi _08106EF8 ldr r0, _08106EF4 @ =gUnknown_03005E8C ldr r0, [r0] ldrb r0, [r0, 0xA] b _08106F08 .align 2, 0 _08106EF4: .4byte gUnknown_03005E8C _08106EF8: ldr r0, _08106F18 @ =gUnknown_03005E8C ldr r0, [r0] ldrb r0, [r0, 0xA] movs r1, 0x3 bl __udivsi3 lsls r0, 24 lsrs r0, 24 _08106F08: cmp r0, 0x4 bhi _08106F46 lsls r0, 2 ldr r1, _08106F1C @ =_08106F20 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08106F18: .4byte gUnknown_03005E8C _08106F1C: .4byte _08106F20 .align 2, 0 _08106F20: .4byte _08106F34 .4byte _08106F38 .4byte _08106F3C .4byte _08106F40 .4byte _08106F44 _08106F34: movs r0, 0x9 b _08106F46 _08106F38: movs r0, 0xD b _08106F46 _08106F3C: movs r0, 0x2 b _08106F46 _08106F40: movs r0, 0x24 b _08106F46 _08106F44: movs r0, 0x6 _08106F46: pop {r1} bx r1 thumb_func_end sub_8106EE0 thumb_func_start sub_8106F4C sub_8106F4C: @ 8106F4C ldr r0, _08106F5C @ =gUnknown_03005E90 ldr r1, _08106F60 @ =0x02017e00 str r1, [r0] ldr r0, _08106F64 @ =gUnknown_03005E10 ldr r2, _08106F68 @ =0xffffe000 adds r1, r2 str r1, [r0] bx lr .align 2, 0 _08106F5C: .4byte gUnknown_03005E90 _08106F60: .4byte 0x02017e00 _08106F64: .4byte gUnknown_03005E10 _08106F68: .4byte 0xffffe000 thumb_func_end sub_8106F4C thumb_func_start sub_8106F6C sub_8106F6C: @ 8106F6C push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 ldr r1, _08106FAC @ =gUnknown_03005E20 ldr r0, _08106FB0 @ =gUnknown_03005E10 ldr r0, [r0] str r0, [r1, 0x4] ldr r0, _08106FB4 @ =gUnknown_03005E90 ldr r0, [r0] str r0, [r1, 0x8] movs r2, 0 strb r2, [r1, 0x18] ldr r0, _08106FB8 @ =gUnknown_03005E8C ldr r0, [r0] ldrb r0, [r0] strb r0, [r1, 0x1F] strb r2, [r1, 0x19] strb r2, [r1, 0x1A] movs r0, 0x40 strb r0, [r1, 0x1B] strb r0, [r1, 0x1C] strb r0, [r1, 0x1D] strb r0, [r1, 0x1E] subs r0, r3, 0x2 adds r4, r1, 0 cmp r0, 0x22 bhi _08107050 lsls r0, 2 ldr r1, _08106FBC @ =_08106FC0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08106FAC: .4byte gUnknown_03005E20 _08106FB0: .4byte gUnknown_03005E10 _08106FB4: .4byte gUnknown_03005E90 _08106FB8: .4byte gUnknown_03005E8C _08106FBC: .4byte _08106FC0 .align 2, 0 _08106FC0: .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _0810704C .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _0810704C _0810704C: movs r0, 0x3 b _08107052 _08107050: movs r0, 0x1 _08107052: strh r0, [r4, 0x14] movs r0, 0x2 strh r0, [r4, 0x16] strb r3, [r4] ldr r0, _08107088 @ =0x06010000 str r0, [r4, 0x10] adds r0, r4, 0 bl sub_80FC7A0 adds r0, r4, 0 bl sub_80FDA18 adds r0, r4, 0 bl sub_80FD8CC ldr r0, _0810708C @ =gUnknown_03005E90 ldr r0, [r0] movs r1, 0x80 lsls r1, 1 movs r2, 0x80 lsls r2, 2 bl LoadPalette pop {r4} pop {r0} bx r0 .align 2, 0 _08107088: .4byte 0x06010000 _0810708C: .4byte gUnknown_03005E90 thumb_func_end sub_8106F6C thumb_func_start sub_8107090 sub_8107090: @ 8107090 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 bl sub_8106F4C ldr r0, _081070D0 @ =gUnknown_03005E8C ldr r0, [r0] ldrh r0, [r0, 0x8] movs r1, 0 bl sub_8106AC4 adds r0, r4, 0 bl sub_8106EE0 lsls r0, 24 lsrs r0, 24 bl sub_8106F6C adds r0, r4, 0 bl sub_8106E98 adds r0, r4, 0 adds r1, r5, 0 bl sub_8106C40 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081070D0: .4byte gUnknown_03005E8C thumb_func_end sub_8107090 .align 2, 0 @ Don't pad with nop.