.include "constants/gba_constants.inc" .include "constants/species_constants.inc" .include "asm/macros.inc" .syntax unified .text thumb_func_start sub_80312F0 sub_80312F0: @ 80312F0 push {r4-r7,lr} adds r6, r0, 0 ldrh r0, [r6, 0x30] lsls r0, 24 lsrs r0, 24 ldr r7, _08031334 @ =gSprites lsls r1, r0, 4 adds r1, r0 lsls r5, r1, 2 adds r3, r5, r7 adds r0, r3, 0 adds r0, 0x3F ldrb r4, [r0] lsls r0, r4, 26 cmp r0, 0 bge _08031354 adds r0, r3, 0 adds r0, 0x3E ldrb r0, [r0] lsls r0, 29 cmp r0, 0 blt _08031354 adds r1, r3, 0 adds r1, 0x2C ldrb r2, [r1] lsls r0, r2, 25 cmp r0, 0 bge _08031338 movs r0, 0x41 negs r0, r0 ands r0, r2 strb r0, [r1] b _08031354 .align 2, 0 _08031334: .4byte gSprites _08031338: lsls r0, r4, 27 cmp r0, 0 bge _08031354 adds r0, r7, 0 adds r0, 0x1C adds r0, r5, r0 ldr r1, _0803135C @ =sub_80105DC str r1, [r0] adds r0, r3, 0 movs r1, 0 bl StartSpriteAffineAnim ldr r0, _08031360 @ =SpriteCallbackDummy str r0, [r6, 0x1C] _08031354: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803135C: .4byte sub_80105DC _08031360: .4byte SpriteCallbackDummy thumb_func_end sub_80312F0 thumb_func_start unref_sub_8031364 unref_sub_8031364: @ 8031364 push {r4,lr} adds r4, r0, 0 lsls r1, 24 adds r3, r4, 0 adds r3, 0x2C ldrb r0, [r3] movs r2, 0x40 orrs r0, r2 strb r0, [r3] ldr r0, _08031388 @ =SpriteCallbackDummy str r0, [r4, 0x1C] cmp r1, 0 bne _0803138C adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim b _08031394 .align 2, 0 _08031388: .4byte SpriteCallbackDummy _0803138C: adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim _08031394: adds r0, r4, 0 bl AnimateSprite pop {r4} pop {r0} bx r0 thumb_func_end unref_sub_8031364 thumb_func_start sub_80313A0 sub_80313A0: @ 80313A0 push {lr} adds r2, r0, 0 ldr r0, _080313C8 @ =gUnknown_02024DE8 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080313C2 ldrh r0, [r2, 0x2E] ldrh r1, [r2, 0x24] adds r0, r1 strh r0, [r2, 0x24] lsls r0, 16 cmp r0, 0 bne _080313C2 ldr r0, _080313CC @ =SpriteCallbackDummy str r0, [r2, 0x1C] _080313C2: pop {r0} bx r0 .align 2, 0 _080313C8: .4byte gUnknown_02024DE8 _080313CC: .4byte SpriteCallbackDummy thumb_func_end sub_80313A0 thumb_func_start move_anim_start_t2_for_situation move_anim_start_t2_for_situation: @ 80313D0 push {r4-r6,lr} adds r4, r1, 0 lsls r0, 24 ldr r5, _08031400 @ =gUnknown_02024A60 ldrb r2, [r5] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 ldr r6, _08031404 @ =0x02017810 adds r1, r6 ldrb r2, [r1] movs r3, 0x10 orrs r2, r3 strb r2, [r1] cmp r0, 0 bne _0803144C cmp r4, 0x20 bne _08031408 ldrb r0, [r5] movs r1, 0x6 bl move_anim_start_t2 b _080314C2 .align 2, 0 _08031400: .4byte gUnknown_02024A60 _08031404: .4byte 0x02017810 _08031408: cmp r4, 0x8 beq _08031414 movs r0, 0x80 ands r0, r4 cmp r0, 0 beq _0803141E _08031414: ldrb r0, [r5] movs r1, 0 bl move_anim_start_t2 b _080314C2 _0803141E: cmp r4, 0x10 bne _0803142C ldrb r0, [r5] movs r1, 0x2 bl move_anim_start_t2 b _080314C2 _0803142C: movs r0, 0x7 ands r0, r4 cmp r0, 0 beq _0803143E ldrb r0, [r5] movs r1, 0x4 bl move_anim_start_t2 b _080314C2 _0803143E: cmp r4, 0x40 bne _080314AE ldrb r0, [r5] movs r1, 0x5 bl move_anim_start_t2 b _080314C2 _0803144C: movs r0, 0xF0 lsls r0, 12 ands r0, r4 cmp r0, 0 beq _08031460 ldrb r0, [r5] movs r1, 0x3 bl move_anim_start_t2 b _080314C2 _08031460: movs r0, 0x7 ands r0, r4 cmp r0, 0 beq _08031472 ldrb r0, [r5] movs r1, 0x1 bl move_anim_start_t2 b _080314C2 _08031472: movs r0, 0x80 lsls r0, 21 ands r0, r4 cmp r0, 0 beq _08031486 ldrb r0, [r5] movs r1, 0x7 bl move_anim_start_t2 b _080314C2 _08031486: movs r0, 0x80 lsls r0, 20 ands r0, r4 cmp r0, 0 beq _0803149A ldrb r0, [r5] movs r1, 0x8 bl move_anim_start_t2 b _080314C2 _0803149A: movs r0, 0xE0 lsls r0, 8 ands r0, r4 cmp r0, 0 beq _080314AE ldrb r0, [r5] movs r1, 0x9 bl move_anim_start_t2 b _080314C2 _080314AE: ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r6 ldrb r2, [r1] movs r0, 0x11 negs r0, r0 ands r0, r2 strb r0, [r1] _080314C2: pop {r4-r6} pop {r0} bx r0 thumb_func_end move_anim_start_t2_for_situation thumb_func_start move_anim_start_t3 move_anim_start_t3: @ 80314C8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, [sp, 0x20] lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r1, 24 mov r9, r1 lsls r2, 24 lsrs r2, 24 mov r10, r2 lsls r3, 24 lsrs r5, r3, 24 lsls r4, 16 lsrs r7, r4, 16 cmp r5, 0 bne _0803150C movs r0, 0x80 ands r0, r7 cmp r0, 0 beq _0803150C ldr r0, _08031508 @ =gBattleMonForms adds r0, r6, r0 movs r2, 0x7F adds r1, r7, 0 ands r1, r2 strb r1, [r0] movs r0, 0x1 b _080315C2 .align 2, 0 _08031508: .4byte gBattleMonForms _0803150C: lsls r1, r6, 2 ldr r0, _08031530 @ =0x02017800 adds r4, r1, r0 ldrb r1, [r4] movs r0, 0x4 mov r8, r0 ands r0, r1 cmp r0, 0 beq _08031578 adds r0, r5, 0 bl sub_803163C lsls r0, 24 cmp r0, 0 bne _08031534 movs r0, 0x1 b _080315C2 .align 2, 0 _08031530: .4byte 0x02017800 _08031534: ldrb r1, [r4] mov r0, r8 ands r0, r1 cmp r0, 0 beq _08031578 cmp r5, 0x2 bne _08031578 ldr r1, _08031570 @ =gSprites ldr r0, _08031574 @ =gUnknown_02024BE0 adds r0, r6, r0 ldrb r2, [r0] 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 _08031578 adds r0, r6, 0 movs r1, 0x1 bl refresh_graphics_maybe adds r0, r6, 0 bl sub_80324E0 movs r0, 0x1 b _080315C2 .align 2, 0 _08031570: .4byte gSprites _08031574: .4byte gUnknown_02024BE0 _08031578: ldr r0, _080315D0 @ =gBattleAnimPlayerMonIndex mov r1, r9 strb r1, [r0] ldr r0, _080315D4 @ =gBattleAnimEnemyMonIndex mov r1, r10 strb r1, [r0] ldr r4, _080315D8 @ =0x02017840 strh r7, [r4] ldr r0, _080315DC @ =gBattleAnims_Unknown1 adds r1, r5, 0 movs r2, 0 bl DoMoveAnim ldr r0, _080315E0 @ =sub_80315E8 movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080315E4 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r6, [r1, 0x8] movs r0, 0x8 ldrsh r1, [r1, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 subs r4, 0x30 adds r0, r4 ldrb r1, [r0] movs r2, 0x20 orrs r1, r2 strb r1, [r0] movs r0, 0 _080315C2: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080315D0: .4byte gBattleAnimPlayerMonIndex _080315D4: .4byte gBattleAnimEnemyMonIndex _080315D8: .4byte 0x02017840 _080315DC: .4byte gBattleAnims_Unknown1 _080315E0: .4byte sub_80315E8 _080315E4: .4byte gTasks thumb_func_end move_anim_start_t3 thumb_func_start sub_80315E8 sub_80315E8: @ 80315E8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0803162C @ =gAnimScriptCallback ldr r0, [r0] bl _call_via_r0 ldr r0, _08031630 @ =gAnimScriptActive ldrb r0, [r0] cmp r0, 0 bne _08031626 ldr r1, _08031634 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0x8 ldrsh r0, [r0, r1] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 ldr r0, _08031638 @ =0x02017810 adds r1, r0 ldrb r2, [r1] movs r0, 0x21 negs r0, r0 ands r0, r2 strb r0, [r1] adds r0, r4, 0 bl DestroyTask _08031626: pop {r4} pop {r0} bx r0 .align 2, 0 _0803162C: .4byte gAnimScriptCallback _08031630: .4byte gAnimScriptActive _08031634: .4byte gTasks _08031638: .4byte 0x02017810 thumb_func_end sub_80315E8 thumb_func_start sub_803163C sub_803163C: @ 803163C push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xD bgt _08031650 cmp r0, 0xA bge _08031654 cmp r0, 0x2 beq _08031654 b _08031658 _08031650: cmp r0, 0x11 bne _08031658 _08031654: movs r0, 0x1 b _0803165A _08031658: movs r0, 0 _0803165A: pop {r1} bx r1 thumb_func_end sub_803163C thumb_func_start move_anim_start_t4 move_anim_start_t4: @ 8031660 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r3, 24 lsrs r3, 24 ldr r0, _080316B4 @ =gBattleAnimPlayerMonIndex strb r1, [r0] ldr r0, _080316B8 @ =gBattleAnimEnemyMonIndex strb r2, [r0] ldr r0, _080316BC @ =gBattleAnims_Unknown2 adds r1, r3, 0 movs r2, 0 bl DoMoveAnim ldr r0, _080316C0 @ =sub_80316CC movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080316C4 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] movs r0, 0x8 ldrsh r1, [r1, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _080316C8 @ =0x02017810 adds r0, r1 ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080316B4: .4byte gBattleAnimPlayerMonIndex _080316B8: .4byte gBattleAnimEnemyMonIndex _080316BC: .4byte gBattleAnims_Unknown2 _080316C0: .4byte sub_80316CC _080316C4: .4byte gTasks _080316C8: .4byte 0x02017810 thumb_func_end move_anim_start_t4 thumb_func_start sub_80316CC sub_80316CC: @ 80316CC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08031710 @ =gAnimScriptCallback ldr r0, [r0] bl _call_via_r0 ldr r0, _08031714 @ =gAnimScriptActive ldrb r0, [r0] cmp r0, 0 bne _0803170A ldr r1, _08031718 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0x8 ldrsh r0, [r0, r1] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 ldr r0, _0803171C @ =0x02017810 adds r1, r0 ldrb r2, [r1] movs r0, 0x41 negs r0, r0 ands r0, r2 strb r0, [r1] adds r0, r4, 0 bl DestroyTask _0803170A: pop {r4} pop {r0} bx r0 .align 2, 0 _08031710: .4byte gAnimScriptCallback _08031714: .4byte gAnimScriptActive _08031718: .4byte gTasks _0803171C: .4byte 0x02017810 thumb_func_end sub_80316CC thumb_func_start sub_8031720 sub_8031720: @ 8031720 movs r0, 0 bx lr thumb_func_end sub_8031720 thumb_func_start mplay_80342A4 mplay_80342A4: @ 8031724 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 movs r5, 0 bl IsSEPlaying lsls r0, 24 cmp r0, 0 beq _08031764 lsls r1, r4, 1 adds r1, r4 lsls r1, 2 ldr r2, _0803176C @ =0x02017810 adds r1, r2 ldrb r0, [r1, 0x8] adds r0, 0x1 strb r0, [r1, 0x8] ldr r0, _08031770 @ =gUnknown_02024A60 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x8] cmp r0, 0x1D bls _08031768 ldr r0, _08031774 @ =gMPlay_SE1 bl m4aMPlayStop ldr r0, _08031778 @ =gMPlay_SE2 bl m4aMPlayStop _08031764: cmp r5, 0 beq _0803177C _08031768: movs r0, 0x1 b _0803178A .align 2, 0 _0803176C: .4byte 0x02017810 _08031770: .4byte gUnknown_02024A60 _08031774: .4byte gMPlay_SE1 _08031778: .4byte gMPlay_SE2 _0803177C: lsls r0, r4, 1 adds r0, r4 lsls r0, 2 ldr r1, _08031790 @ =0x02017810 adds r0, r1 strb r5, [r0, 0x8] movs r0, 0 _0803178A: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08031790: .4byte 0x02017810 thumb_func_end mplay_80342A4 thumb_func_start sub_8031794 sub_8031794: @ 8031794 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 mov r8, r0 lsls r1, 24 lsrs r1, 24 mov r9, r1 movs r1, 0 bl GetMonData str r0, [sp, 0xC] mov r0, r9 lsls r1, r0, 2 ldr r0, _080317D0 @ =0x02017800 adds r2, r1, r0 ldrh r0, [r2, 0x2] cmp r0, 0 bne _080317D4 mov r0, r8 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r6, r0, 16 ldr r7, [sp, 0xC] b _080317DC .align 2, 0 _080317D0: .4byte 0x02017800 _080317D4: ldrh r6, [r2, 0x2] ldr r0, _08031838 @ =gUnknown_02024E70 adds r0, r1, r0 ldr r7, [r0] _080317DC: mov r0, r8 movs r1, 0x1 bl GetMonData mov r10, r0 mov r0, r9 bl battle_get_per_side_status lsls r0, 24 lsls r5, r6, 3 ldr r1, _0803183C @ =gMonFrontPicTable adds r5, r1 ldr r1, _08031840 @ =gMonFrontPicCoords lsls r2, r6, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _08031844 @ =gUnknown_081FAF4C lsrs r0, 22 adds r0, r4 ldr r0, [r0] str r0, [sp] str r6, [sp, 0x4] str r7, [sp, 0x8] adds r0, r5, 0 bl HandleLoadSpecialPokePic mov r1, r9 lsls r2, r1, 4 movs r0, 0x80 lsls r0, 1 adds r7, r2, r0 lsls r1, 2 ldr r0, _08031848 @ =0x02017800 adds r0, r1, r0 ldrh r0, [r0, 0x2] str r1, [sp, 0x10] adds r4, r2, 0 cmp r0, 0 bne _0803184C mov r0, r8 bl pokemon_get_pal b _08031856 .align 2, 0 _08031838: .4byte gUnknown_02024E70 _0803183C: .4byte gMonFrontPicTable _08031840: .4byte gMonFrontPicCoords _08031844: .4byte gUnknown_081FAF4C _08031848: .4byte 0x02017800 _0803184C: adds r0, r6, 0 mov r1, r10 ldr r2, [sp, 0xC] bl species_and_otid_get_pal _08031856: adds r5, r0, 0 ldr r1, _080318E0 @ =0x02000000 mov r8, r1 adds r0, r5, 0 bl sub_800D238 mov r0, r8 adds r1, r7, 0 movs r2, 0x20 bl LoadPalette adds r1, r4, 0 adds r1, 0x80 mov r0, r8 movs r2, 0x20 bl LoadPalette ldr r0, _080318E4 @ =SPECIES_CASTFORM cmp r6, r0 bne _080318A2 subs r0, 0x81 adds r7, r4, r0 movs r4, 0xB2 lsls r4, 9 add r4, r8 adds r0, r5, 0 adds r1, r4, 0 bl sub_800D238 ldr r0, _080318E8 @ =gBattleMonForms add r0, r9 ldrb r0, [r0] lsls r0, 5 adds r0, r4 adds r1, r7, 0 movs r2, 0x20 bl LoadPalette _080318A2: movs r0, 0xBC lsls r0, 9 add r0, r8 ldr r1, [sp, 0x10] adds r0, r1, r0 ldrh r0, [r0, 0x2] cmp r0, 0 beq _080318CE ldr r3, _080318EC @ =0x00007fff adds r0, r7, 0 movs r1, 0x10 movs r2, 0x6 bl BlendPalette lsls r1, r7, 1 ldr r0, _080318F0 @ =gPlttBufferFaded adds r0, r1, r0 ldr r2, _080318F4 @ =gPlttBufferUnfaded adds r1, r2 ldr r2, _080318F8 @ =REG_BG0CNT bl CpuSet _080318CE: 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 _080318E0: .4byte 0x02000000 _080318E4: .4byte SPECIES_CASTFORM _080318E8: .4byte gBattleMonForms _080318EC: .4byte 0x00007fff _080318F0: .4byte gPlttBufferFaded _080318F4: .4byte gPlttBufferUnfaded _080318F8: .4byte REG_BG0CNT thumb_func_end sub_8031794 thumb_func_start sub_80318FC sub_80318FC: @ 80318FC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 mov r8, r0 lsls r1, 24 lsrs r1, 24 mov r9, r1 movs r1, 0 bl GetMonData str r0, [sp, 0xC] mov r0, r9 lsls r1, r0, 2 ldr r0, _08031938 @ =0x02017800 adds r2, r1, r0 ldrh r0, [r2, 0x2] cmp r0, 0 bne _0803193C mov r0, r8 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r6, r0, 16 ldr r7, [sp, 0xC] b _08031944 .align 2, 0 _08031938: .4byte 0x02017800 _0803193C: ldrh r6, [r2, 0x2] ldr r0, _080319A0 @ =gUnknown_02024E70 adds r0, r1, r0 ldr r7, [r0] _08031944: mov r0, r8 movs r1, 0x1 bl GetMonData mov r10, r0 mov r0, r9 bl battle_get_per_side_status lsls r0, 24 lsls r5, r6, 3 ldr r1, _080319A4 @ =gMonBackPicTable adds r5, r1 ldr r1, _080319A8 @ =gMonBackPicCoords lsls r2, r6, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _080319AC @ =gUnknown_081FAF4C lsrs r0, 22 adds r0, r4 ldr r0, [r0] str r0, [sp] str r6, [sp, 0x4] str r7, [sp, 0x8] adds r0, r5, 0 bl HandleLoadSpecialPokePic mov r1, r9 lsls r2, r1, 4 movs r0, 0x80 lsls r0, 1 adds r7, r2, r0 lsls r1, 2 ldr r0, _080319B0 @ =0x02017800 adds r0, r1, r0 ldrh r0, [r0, 0x2] str r1, [sp, 0x10] adds r4, r2, 0 cmp r0, 0 bne _080319B4 mov r0, r8 bl pokemon_get_pal b _080319BE .align 2, 0 _080319A0: .4byte gUnknown_02024E70 _080319A4: .4byte gMonBackPicTable _080319A8: .4byte gMonBackPicCoords _080319AC: .4byte gUnknown_081FAF4C _080319B0: .4byte 0x02017800 _080319B4: adds r0, r6, 0 mov r1, r10 ldr r2, [sp, 0xC] bl species_and_otid_get_pal _080319BE: adds r5, r0, 0 ldr r1, _08031A48 @ =0x02000000 mov r8, r1 adds r0, r5, 0 bl sub_800D238 mov r0, r8 adds r1, r7, 0 movs r2, 0x20 bl LoadPalette adds r1, r4, 0 adds r1, 0x80 mov r0, r8 movs r2, 0x20 bl LoadPalette ldr r0, _08031A4C @ =SPECIES_CASTFORM cmp r6, r0 bne _08031A0A subs r0, 0x81 adds r7, r4, r0 movs r4, 0xB2 lsls r4, 9 add r4, r8 adds r0, r5, 0 adds r1, r4, 0 bl sub_800D238 ldr r0, _08031A50 @ =gBattleMonForms add r0, r9 ldrb r0, [r0] lsls r0, 5 adds r0, r4 adds r1, r7, 0 movs r2, 0x20 bl LoadPalette _08031A0A: movs r0, 0xBC lsls r0, 9 add r0, r8 ldr r1, [sp, 0x10] adds r0, r1, r0 ldrh r0, [r0, 0x2] cmp r0, 0 beq _08031A36 ldr r3, _08031A54 @ =0x00007fff adds r0, r7, 0 movs r1, 0x10 movs r2, 0x6 bl BlendPalette lsls r1, r7, 1 ldr r0, _08031A58 @ =gPlttBufferFaded adds r0, r1, r0 ldr r2, _08031A5C @ =gPlttBufferUnfaded adds r1, r2 ldr r2, _08031A60 @ =REG_BG0CNT bl CpuSet _08031A36: 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 _08031A48: .4byte 0x02000000 _08031A4C: .4byte SPECIES_CASTFORM _08031A50: .4byte gBattleMonForms _08031A54: .4byte 0x00007fff _08031A58: .4byte gPlttBufferFaded _08031A5C: .4byte gPlttBufferUnfaded _08031A60: .4byte REG_BG0CNT thumb_func_end sub_80318FC thumb_func_start unref_sub_8031A64 unref_sub_8031A64: @ 8031A64 bx lr thumb_func_end unref_sub_8031A64 thumb_func_start nullsub_9 nullsub_9: @ 8031A68 bx lr thumb_func_end nullsub_9 thumb_func_start sub_8031A6C sub_8031A6C: @ 8031A6C push {r4-r6,lr} sub sp, 0x10 adds r4, r0, 0 adds r0, r1, 0 lsls r4, 16 lsrs r4, 16 lsls r0, 24 lsrs r0, 24 bl battle_get_per_side_status lsls r0, 24 lsls r6, r4, 3 ldr r5, _08031ADC @ =gTrainerFrontPicTable adds r5, r6, r5 ldr r1, _08031AE0 @ =gTrainerFrontPicCoords lsls r4, 2 adds r4, r1 ldrb r1, [r4] ldrb r2, [r4, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _08031AE4 @ =gUnknown_081FAF4C lsrs r0, 22 adds r0, r4 ldr r4, [r0] str r4, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r5, 0 bl DecompressPicFromTable_2 str r4, [sp, 0x8] ldrh r2, [r5, 0x4] ldr r0, _08031AE8 @ =0xffff0000 ldr r1, [sp, 0xC] ands r1, r0 orrs r1, r2 str r1, [sp, 0xC] ldrh r2, [r5, 0x6] lsls r2, 16 ldr r0, _08031AEC @ =0x0000ffff ands r0, r1 orrs r0, r2 str r0, [sp, 0xC] add r0, sp, 0x8 bl LoadCompressedObjectPic ldr r0, _08031AF0 @ =gTrainerFrontPicPaletteTable adds r6, r0 adds r0, r6, 0 bl LoadCompressedObjectPalette add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08031ADC: .4byte gTrainerFrontPicTable _08031AE0: .4byte gTrainerFrontPicCoords _08031AE4: .4byte gUnknown_081FAF4C _08031AE8: .4byte 0xffff0000 _08031AEC: .4byte 0x0000ffff _08031AF0: .4byte gTrainerFrontPicPaletteTable thumb_func_end sub_8031A6C thumb_func_start sub_8031AF4 sub_8031AF4: @ 8031AF4 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x8 adds r4, r0, 0 adds r5, r1, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 24 lsrs r5, 24 adds r0, r5, 0 bl battle_get_per_side_status lsls r0, 24 lsls r1, r4, 3 mov r8, r1 ldr r6, _08031B60 @ =gTrainerBackPicTable add r6, r8 ldr r1, _08031B64 @ =gTrainerBackPicCoords lsls r4, 2 adds r4, r1 ldrb r1, [r4] ldrb r2, [r4, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _08031B68 @ =gUnknown_081FAF4C lsrs r0, 22 adds r0, r4 ldr r0, [r0] str r0, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r6, 0 bl DecompressPicFromTable_2 ldr r0, _08031B6C @ =gTrainerBackPicPaletteTable add r8, r0 mov r1, r8 ldr r0, [r1] lsls r5, 20 movs r1, 0x80 lsls r1, 17 adds r5, r1 lsrs r5, 16 adds r1, r5, 0 movs r2, 0x20 bl LoadCompressedPalette add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08031B60: .4byte gTrainerBackPicTable _08031B64: .4byte gTrainerBackPicCoords _08031B68: .4byte gUnknown_081FAF4C _08031B6C: .4byte gTrainerBackPicPaletteTable thumb_func_end sub_8031AF4 thumb_func_start nullsub_10 nullsub_10: @ 8031B70 bx lr thumb_func_end nullsub_10 thumb_func_start sub_8031B74 sub_8031B74: @ 8031B74 push {r4,lr} adds r4, r0, 0 lsls r4, 16 ldr r0, _08031B98 @ =gTrainerFrontPicPaletteTable lsrs r4, 13 adds r0, r4, r0 ldrh r0, [r0, 0x4] bl FreeSpritePaletteByTag ldr r0, _08031B9C @ =gTrainerFrontPicTable adds r4, r0 ldrh r0, [r4, 0x6] bl FreeSpriteTilesByTag pop {r4} pop {r0} bx r0 .align 2, 0 _08031B98: .4byte gTrainerFrontPicPaletteTable _08031B9C: .4byte gTrainerFrontPicTable thumb_func_end sub_8031B74 thumb_func_start unref_sub_8031BA0 unref_sub_8031BA0: @ 8031BA0 push {r4-r7,lr} ldr r4, _08031BCC @ =gUnknown_0820A4D4 adds r0, r4, 0 bl LoadSpritePalette adds r4, 0x8 adds r0, r4, 0 bl LoadSpritePalette bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _08031BD8 ldr r0, _08031BD0 @ =gUnknown_0820A47C bl LoadCompressedObjectPic ldr r0, _08031BD4 @ =gUnknown_0820A484 bl LoadCompressedObjectPic movs r5, 0x2 b _08031BFA .align 2, 0 _08031BCC: .4byte gUnknown_0820A4D4 _08031BD0: .4byte gUnknown_0820A47C _08031BD4: .4byte gUnknown_0820A484 _08031BD8: ldr r4, _08031C20 @ =gUnknown_0820A48C adds r0, r4, 0 bl LoadCompressedObjectPic adds r4, 0x8 adds r0, r4, 0 bl LoadCompressedObjectPic ldr r4, _08031C24 @ =gUnknown_0820A49C adds r0, r4, 0 bl LoadCompressedObjectPic adds r4, 0x8 adds r0, r4, 0 bl LoadCompressedObjectPic movs r5, 0x4 _08031BFA: movs r4, 0 cmp r4, r5 bcs _08031C1A ldr r7, _08031C28 @ =gUnknown_02024A72 ldr r6, _08031C2C @ =gUnknown_0820A4B4 _08031C04: adds r0, r4, r7 ldrb r0, [r0] lsls r0, 3 adds r0, r6 bl LoadCompressedObjectPic adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _08031C04 _08031C1A: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08031C20: .4byte gUnknown_0820A48C _08031C24: .4byte gUnknown_0820A49C _08031C28: .4byte gUnknown_02024A72 _08031C2C: .4byte gUnknown_0820A4B4 thumb_func_end unref_sub_8031BA0 thumb_func_start sub_8031C30 sub_8031C30: @ 8031C30 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 movs r6, 0 cmp r4, 0 bne _08031C40 b _08031D52 _08031C40: cmp r4, 0x1 bne _08031C5C ldr r4, _08031C58 @ =gUnknown_0820A4D4 adds r0, r4, 0 bl LoadSpritePalette adds r4, 0x8 adds r0, r4, 0 bl LoadSpritePalette b _08031D52 .align 2, 0 _08031C58: .4byte gUnknown_0820A4D4 _08031C5C: bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _08031CC4 cmp r4, 0x2 bne _08031C94 ldr r0, _08031C80 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08031C88 ldr r0, _08031C84 @ =gUnknown_0820A4AC bl LoadCompressedObjectPic b _08031D52 .align 2, 0 _08031C80: .4byte gBattleTypeFlags _08031C84: .4byte gUnknown_0820A4AC _08031C88: ldr r0, _08031C90 @ =gUnknown_0820A47C bl LoadCompressedObjectPic b _08031D52 .align 2, 0 _08031C90: .4byte gUnknown_0820A47C _08031C94: cmp r4, 0x3 bne _08031CA4 ldr r0, _08031CA0 @ =gUnknown_0820A484 bl LoadCompressedObjectPic b _08031D52 .align 2, 0 _08031CA0: .4byte gUnknown_0820A484 _08031CA4: cmp r4, 0x4 bne _08031CB4 ldr r0, _08031CB0 @ =gUnknown_02024A72 ldrb r0, [r0] b _08031D3C .align 2, 0 _08031CB0: .4byte gUnknown_02024A72 _08031CB4: cmp r4, 0x5 bne _08031D50 ldr r0, _08031CC0 @ =gUnknown_02024A72 ldrb r0, [r0, 0x1] b _08031D3C .align 2, 0 _08031CC0: .4byte gUnknown_02024A72 _08031CC4: cmp r4, 0x2 bne _08031CD4 ldr r0, _08031CD0 @ =gUnknown_0820A48C bl LoadCompressedObjectPic b _08031D52 .align 2, 0 _08031CD0: .4byte gUnknown_0820A48C _08031CD4: cmp r4, 0x3 bne _08031CE4 ldr r0, _08031CE0 @ =gUnknown_0820A494 bl LoadCompressedObjectPic b _08031D52 .align 2, 0 _08031CE0: .4byte gUnknown_0820A494 _08031CE4: cmp r4, 0x4 bne _08031CF4 ldr r0, _08031CF0 @ =gUnknown_0820A49C bl LoadCompressedObjectPic b _08031D52 .align 2, 0 _08031CF0: .4byte gUnknown_0820A49C _08031CF4: cmp r4, 0x5 bne _08031D04 ldr r0, _08031D00 @ =gUnknown_0820A4A4 bl LoadCompressedObjectPic b _08031D52 .align 2, 0 _08031D00: .4byte gUnknown_0820A4A4 _08031D04: cmp r4, 0x6 bne _08031D14 ldr r0, _08031D10 @ =gUnknown_02024A72 ldrb r0, [r0] b _08031D3C .align 2, 0 _08031D10: .4byte gUnknown_02024A72 _08031D14: cmp r4, 0x7 bne _08031D24 ldr r0, _08031D20 @ =gUnknown_02024A72 ldrb r0, [r0, 0x1] b _08031D3C .align 2, 0 _08031D20: .4byte gUnknown_02024A72 _08031D24: cmp r4, 0x8 bne _08031D34 ldr r0, _08031D30 @ =gUnknown_02024A72 ldrb r0, [r0, 0x2] b _08031D3C .align 2, 0 _08031D30: .4byte gUnknown_02024A72 _08031D34: cmp r5, 0x9 bne _08031D50 ldr r0, _08031D48 @ =gUnknown_02024A72 ldrb r0, [r0, 0x3] _08031D3C: lsls r0, 3 ldr r1, _08031D4C @ =gUnknown_0820A4B4 adds r0, r1 bl LoadCompressedObjectPic b _08031D52 .align 2, 0 _08031D48: .4byte gUnknown_02024A72 _08031D4C: .4byte gUnknown_0820A4B4 _08031D50: movs r6, 0x1 _08031D52: adds r0, r6, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8031C30 thumb_func_start load_gfxc_health_bar load_gfxc_health_bar: @ 8031D5C push {lr} ldr r0, _08031D6C @ =gUnknown_08D09C48 movs r1, 0x80 lsls r1, 18 bl sub_800D238 pop {r0} bx r0 .align 2, 0 _08031D6C: .4byte gUnknown_08D09C48 thumb_func_end load_gfxc_health_bar thumb_func_start battle_load_something battle_load_something: @ 8031D70 push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 movs r6, 0 ldrb r0, [r5] cmp r0, 0x6 bls _08031D80 b _08031EDE _08031D80: lsls r0, 2 ldr r1, _08031D8C @ =_08031D90 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08031D8C: .4byte _08031D90 .align 2, 0 _08031D90: .4byte _08031DAC .4byte _08031DB2 .4byte _08031EBC .4byte _08031DC8 .4byte _08031DF8 .4byte _08031E34 .4byte _08031ED4 _08031DAC: bl sub_8031F0C b _08031EBC _08031DB2: ldrb r0, [r4] bl sub_8031C30 lsls r0, 24 cmp r0, 0 beq _08031DC0 b _08031EB8 _08031DC0: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _08031EDE _08031DC8: ldr r0, _08031DE0 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08031DE4 ldrb r0, [r4] cmp r0, 0 bne _08031DE4 bl battle_make_oam_safari_battle b _08031DEA .align 2, 0 _08031DE0: .4byte gBattleTypeFlags _08031DE4: ldrb r0, [r4] bl battle_make_oam_normal_battle _08031DEA: ldr r2, _08031DF4 @ =gUnknown_03004340 ldrb r1, [r4] adds r1, r2 strb r0, [r1] b _08031EA6 .align 2, 0 _08031DF4: .4byte gUnknown_03004340 _08031DF8: ldrb r0, [r4] bl sub_8043F44 ldr r0, _08031E18 @ =gUnknown_02024A72 ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] cmp r0, 0x1 bhi _08031E20 ldr r0, _08031E1C @ =gUnknown_03004340 adds r0, r1, r0 ldrb r0, [r0] movs r1, 0 bl nullsub_11 b _08031EA6 .align 2, 0 _08031E18: .4byte gUnknown_02024A72 _08031E1C: .4byte gUnknown_03004340 _08031E20: ldr r0, _08031E30 @ =gUnknown_03004340 adds r0, r1, r0 ldrb r0, [r0] movs r1, 0x1 bl nullsub_11 b _08031EA6 .align 2, 0 _08031E30: .4byte gUnknown_03004340 _08031E34: ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08031E7C ldr r0, _08031E6C @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08031E9A ldr r0, _08031E70 @ =gUnknown_03004340 ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] ldr r2, _08031E74 @ =gUnknown_02024A6A lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _08031E78 @ =gPlayerParty adds r1, r2 movs r2, 0 bl sub_8045A5C b _08031E9A .align 2, 0 _08031E6C: .4byte gBattleTypeFlags _08031E70: .4byte gUnknown_03004340 _08031E74: .4byte gUnknown_02024A6A _08031E78: .4byte gPlayerParty _08031E7C: ldr r0, _08031EC4 @ =gUnknown_03004340 ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] ldr r2, _08031EC8 @ =gUnknown_02024A6A lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _08031ECC @ =gEnemyParty adds r1, r2 movs r2, 0 bl sub_8045A5C _08031E9A: ldr r1, _08031EC4 @ =gUnknown_03004340 ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] bl sub_8043DB0 _08031EA6: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldr r1, _08031ED0 @ =gUnknown_02024A68 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bne _08031EDE _08031EB8: movs r0, 0 strb r0, [r4] _08031EBC: ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] b _08031EDE .align 2, 0 _08031EC4: .4byte gUnknown_03004340 _08031EC8: .4byte gUnknown_02024A6A _08031ECC: .4byte gEnemyParty _08031ED0: .4byte gUnknown_02024A68 _08031ED4: bl sub_80327CC bl sub_8094958 movs r6, 0x1 _08031EDE: adds r0, r6, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end battle_load_something thumb_func_start sub_8031EE8 sub_8031EE8: @ 8031EE8 push {r4,lr} ldr r4, _08031F08 @ =0x02017810 adds r0, r4, 0 movs r1, 0 movs r2, 0x30 bl memset adds r4, 0x30 adds r0, r4, 0 movs r1, 0 movs r2, 0x10 bl memset pop {r4} pop {r0} bx r0 .align 2, 0 _08031F08: .4byte 0x02017810 thumb_func_end sub_8031EE8 thumb_func_start sub_8031F0C sub_8031F0C: @ 8031F0C push {lr} bl sub_8031EE8 ldr r0, _08031F20 @ =0x02017800 movs r1, 0 movs r2, 0x10 bl memset pop {r0} bx r0 .align 2, 0 _08031F20: .4byte 0x02017800 thumb_func_end sub_8031F0C thumb_func_start sub_8031F24 sub_8031F24: @ 8031F24 push {r4-r7,lr} mov r7, r8 push {r7} movs r4, 0 ldr r5, _08031F78 @ =gUnknown_02024A68 ldrb r0, [r5] cmp r4, r0 bge _08031F6E ldr r0, _08031F7C @ =gSprites mov r8, r0 movs r7, 0x1 movs r0, 0x2 negs r0, r0 mov r12, r0 ldr r6, _08031F80 @ =gUnknown_02024BE0 ldr r3, _08031F84 @ =0x02017800 _08031F44: adds r0, r4, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 adds r0, 0x3E ldrb r1, [r0] lsls r1, 29 lsrs r1, 31 ands r1, r7 ldrb r2, [r3] mov r0, r12 ands r0, r2 orrs r0, r1 strb r0, [r3] adds r3, 0x4 adds r4, 0x1 ldrb r0, [r5] cmp r4, r0 blt _08031F44 _08031F6E: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08031F78: .4byte gUnknown_02024A68 _08031F7C: .4byte gSprites _08031F80: .4byte gUnknown_02024BE0 _08031F84: .4byte 0x02017800 thumb_func_end sub_8031F24 thumb_func_start sub_8031F88 sub_8031F88: @ 8031F88 lsls r0, 24 lsrs r0, 24 lsls r3, r0, 2 ldr r1, _08031FB8 @ =0x02017800 adds r3, r1 ldr r2, _08031FBC @ =gSprites ldr r1, _08031FC0 @ =gUnknown_02024BE0 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] lsls r1, 29 lsrs r1, 31 ldrb r2, [r3] movs r0, 0x2 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] bx lr .align 2, 0 _08031FB8: .4byte 0x02017800 _08031FBC: .4byte gSprites _08031FC0: .4byte gUnknown_02024BE0 thumb_func_end sub_8031F88 thumb_func_start sub_8031FC4 sub_8031FC4: @ 8031FC4 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 mov r8, r0 lsls r1, 24 lsrs r1, 24 str r1, [sp, 0xC] lsls r2, 24 cmp r2, 0 beq _08032088 ldr r0, _08032064 @ =gUnknown_02024BE0 mov r1, r8 adds r6, r1, r0 ldrb r1, [r6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r7, _08032068 @ =gSprites adds r0, r7 ldr r4, _0803206C @ =0x02017840 ldrb r1, [r4] bl StartSpriteAnim mov r2, r8 lsls r0, r2, 20 movs r5, 0x80 lsls r5, 17 adds r0, r5 lsrs r5, r0, 16 ldrh r0, [r4] lsls r0, 5 ldr r2, _08032070 @ =0xffffebc0 adds r1, r4, r2 adds r0, r1 adds r1, r5, 0 movs r2, 0x20 bl LoadPalette ldr r0, _08032074 @ =gBattleMonForms add r0, r8 ldrh r1, [r4] strb r1, [r0] mov r1, r8 lsls r0, r1, 2 subs r4, 0x40 adds r0, r4 ldrh r0, [r0, 0x2] cmp r0, 0 beq _0803204C ldr r3, _08032078 @ =0x00007fff adds r0, r5, 0 movs r1, 0x10 movs r2, 0x6 bl BlendPalette lsls r1, r5, 1 ldr r0, _0803207C @ =gPlttBufferFaded adds r0, r1, r0 ldr r2, _08032080 @ =gPlttBufferUnfaded adds r1, r2 ldr r2, _08032084 @ =REG_BG0CNT bl CpuSet _0803204C: mov r0, r8 bl sub_8077F68 ldrb r2, [r6] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r7 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x22] b _080322F6 .align 2, 0 _08032064: .4byte gUnknown_02024BE0 _08032068: .4byte gSprites _0803206C: .4byte 0x02017840 _08032070: .4byte 0xffffebc0 _08032074: .4byte gBattleMonForms _08032078: .4byte 0x00007fff _0803207C: .4byte gPlttBufferFaded _08032080: .4byte gPlttBufferUnfaded _08032084: .4byte REG_BG0CNT _08032088: bl IsContest lsls r0, 24 cmp r0, 0 beq _080320D0 movs r2, 0 mov r10, r2 ldr r5, _080320C0 @ =0x02019348 ldrh r7, [r5, 0x2] ldr r4, [r5, 0x8] mov r9, r4 ldr r6, [r5, 0xC] lsls r0, r7, 3 ldr r1, _080320C4 @ =gMonBackPicTable adds r0, r1 ldr r1, _080320C8 @ =gMonBackPicCoords lsls r2, r7, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _080320CC @ =gUnknown_081FAF4C ldr r4, [r4] str r4, [sp] str r7, [sp, 0x4] ldr r4, [r5, 0x10] b _08032184 .align 2, 0 _080320C0: .4byte 0x02019348 _080320C4: .4byte gMonBackPicTable _080320C8: .4byte gMonBackPicCoords _080320CC: .4byte gUnknown_081FAF4C _080320D0: mov r0, r8 bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r0, [sp, 0xC] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08032104 ldr r1, _080320FC @ =gUnknown_02024A6A ldr r5, [sp, 0xC] lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08032100 @ =gEnemyParty b _08032114 .align 2, 0 _080320FC: .4byte gUnknown_02024A6A _08032100: .4byte gEnemyParty _08032104: ldr r1, _0803218C @ =gUnknown_02024A6A ldr r2, [sp, 0xC] lsls r0, r2, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08032190 @ =gPlayerParty _08032114: adds r0, r1 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r7, r0, 16 mov r0, r8 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080321A4 ldr r0, _0803218C @ =gUnknown_02024A6A mov r5, r8 lsls r4, r5, 1 adds r4, r0 ldrh r0, [r4] movs r6, 0x64 muls r0, r6 ldr r5, _08032190 @ =gPlayerParty adds r0, r5 movs r1, 0 bl GetMonData mov r9, r0 ldrh r0, [r4] muls r0, r6 adds r0, r5 movs r1, 0x1 bl GetMonData adds r6, r0, 0 lsls r0, r7, 3 ldr r1, _08032194 @ =gMonBackPicTable adds r0, r1 ldr r1, _08032198 @ =gMonBackPicCoords lsls r2, r7, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _0803219C @ =gUnknown_081FAF4C mov r12, r4 mov r5, r10 lsls r4, r5, 2 add r4, r12 ldr r4, [r4] str r4, [sp] str r7, [sp, 0x4] ldr r4, _080321A0 @ =gUnknown_02024E70 mov r12, r4 mov r5, r8 lsls r4, r5, 2 add r4, r12 ldr r4, [r4] _08032184: str r4, [sp, 0x8] bl HandleLoadSpecialPokePic b _08032202 .align 2, 0 _0803218C: .4byte gUnknown_02024A6A _08032190: .4byte gPlayerParty _08032194: .4byte gMonBackPicTable _08032198: .4byte gMonBackPicCoords _0803219C: .4byte gUnknown_081FAF4C _080321A0: .4byte gUnknown_02024E70 _080321A4: ldr r0, _08032308 @ =gUnknown_02024A6A mov r1, r8 lsls r4, r1, 1 adds r4, r0 ldrh r0, [r4] movs r6, 0x64 muls r0, r6 ldr r5, _0803230C @ =gEnemyParty adds r0, r5 movs r1, 0 bl GetMonData mov r9, r0 ldrh r0, [r4] muls r0, r6 adds r0, r5 movs r1, 0x1 bl GetMonData adds r6, r0, 0 lsls r0, r7, 3 ldr r1, _08032310 @ =gMonFrontPicTable adds r0, r1 ldr r1, _08032314 @ =gMonFrontPicCoords lsls r2, r7, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _08032318 @ =gUnknown_081FAF4C mov r12, r4 mov r5, r10 lsls r4, r5, 2 add r4, r12 ldr r4, [r4] str r4, [sp] str r7, [sp, 0x4] ldr r4, _0803231C @ =gUnknown_02024E70 mov r12, r4 mov r5, r8 lsls r4, r5, 2 add r4, r12 ldr r4, [r4] str r4, [sp, 0x8] bl HandleLoadSpecialPokePic _08032202: ldr r1, _08032318 @ =gUnknown_081FAF4C mov r2, r10 lsls r0, r2, 2 adds r0, r1 ldr r2, [r0] ldr r0, _08032320 @ =gUnknown_02024BE0 add r0, r8 mov r10, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _08032324 @ =gSprites adds r0, r4 ldrh r0, [r0, 0x4] lsls r0, 22 lsrs r0, 17 ldr r1, _08032328 @ =0x06010000 adds r0, r1 ldr r1, _0803232C @ =0x040000d4 str r2, [r1] str r0, [r1, 0x4] ldr r0, _08032330 @ =0x84000200 str r0, [r1, 0x8] ldr r0, [r1, 0x8] mov r5, r8 lsls r0, r5, 20 movs r1, 0x80 lsls r1, 17 adds r0, r1 lsrs r5, r0, 16 adds r0, r7, 0 adds r1, r6, 0 mov r2, r9 bl species_and_otid_get_pal adds r6, r0, 0 ldr r2, _08032334 @ =0x02000000 mov r9, r2 mov r1, r9 bl sub_800D238 mov r0, r9 adds r1, r5, 0 movs r2, 0x20 bl LoadPalette ldr r0, _08032338 @ =SPECIES_CASTFORM cmp r7, r0 bne _08032288 movs r4, 0xB2 lsls r4, 9 add r4, r9 adds r0, r6, 0 adds r1, r4, 0 bl sub_800D238 ldr r0, _0803233C @ =gBattleMonForms ldr r1, [sp, 0xC] adds r0, r1, r0 ldrb r0, [r0] lsls r0, 5 adds r0, r4 adds r1, r5, 0 movs r2, 0x20 bl LoadPalette _08032288: ldr r3, _08032340 @ =0x00007fff adds r0, r5, 0 movs r1, 0x10 movs r2, 0x6 bl BlendPalette lsls r1, r5, 1 ldr r0, _08032344 @ =gPlttBufferFaded adds r0, r1, r0 ldr r2, _08032348 @ =gPlttBufferUnfaded adds r1, r2 ldr r2, _0803234C @ =REG_BG0CNT bl CpuSet bl IsContest lsls r0, 24 cmp r0, 0 bne _080322C8 mov r2, r8 lsls r0, r2, 2 movs r1, 0xBC lsls r1, 9 add r1, r9 adds r0, r1 strh r7, [r0, 0x2] ldr r0, _0803233C @ =gBattleMonForms adds r1, r2, r0 ldr r4, [sp, 0xC] adds r0, r4, r0 ldrb r0, [r0] strb r0, [r1] _080322C8: mov r0, r8 bl sub_8077F68 mov r5, r10 ldrb r2, [r5] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 ldr r2, _08032324 @ =gSprites adds r1, r2 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x22] ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _0803233C @ =gBattleMonForms add r1, r8 ldrb r1, [r1] bl StartSpriteAnim _080322F6: 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 _08032308: .4byte gUnknown_02024A6A _0803230C: .4byte gEnemyParty _08032310: .4byte gMonFrontPicTable _08032314: .4byte gMonFrontPicCoords _08032318: .4byte gUnknown_081FAF4C _0803231C: .4byte gUnknown_02024E70 _08032320: .4byte gUnknown_02024BE0 _08032324: .4byte gSprites _08032328: .4byte 0x06010000 _0803232C: .4byte 0x040000d4 _08032330: .4byte 0x84000200 _08032334: .4byte 0x02000000 _08032338: .4byte SPECIES_CASTFORM _0803233C: .4byte gBattleMonForms _08032340: .4byte 0x00007fff _08032344: .4byte gPlttBufferFaded _08032348: .4byte gPlttBufferUnfaded _0803234C: .4byte REG_BG0CNT thumb_func_end sub_8031FC4 thumb_func_start sub_8032350 sub_8032350: @ 8032350 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 lsls r1, 24 cmp r1, 0 bne _08032408 bl IsContest lsls r0, 24 cmp r0, 0 beq _0803236C movs r4, 0 b _08032376 _0803236C: adds r0, r4, 0 bl battle_get_per_side_status lsls r0, 24 lsrs r4, r0, 24 _08032376: bl IsContest lsls r0, 24 cmp r0, 0 beq _08032388 ldr r0, _08032384 @ =gSubstituteDollTilemap b _08032396 .align 2, 0 _08032384: .4byte gSubstituteDollTilemap _08032388: adds r0, r5, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080323AC ldr r0, _080323A4 @ =gSubstituteDollGfx _08032396: ldr r1, _080323A8 @ =gUnknown_081FAF4C lsls r4, 2 adds r1, r4, r1 ldr r1, [r1] bl LZDecompressVram b _080323BA .align 2, 0 _080323A4: .4byte gSubstituteDollGfx _080323A8: .4byte gUnknown_081FAF4C _080323AC: ldr r0, _080323F4 @ =gSubstituteDollTilemap ldr r1, _080323F8 @ =gUnknown_081FAF4C lsls r4, 2 adds r1, r4, r1 ldr r1, [r1] bl LZDecompressVram _080323BA: lsls r7, r5, 4 ldr r0, _080323FC @ =gSubstituteDollPal mov r12, r0 ldr r0, _080323F8 @ =gUnknown_081FAF4C adds r0, r4, r0 ldr r4, [r0] ldr r3, _08032400 @ =0x040000d4 ldr r6, _08032404 @ =0x84000200 movs r0, 0x80 lsls r0, 4 adds r2, r4, r0 adds r5, r0, 0 movs r1, 0x2 _080323D4: str r4, [r3] str r2, [r3, 0x4] str r6, [r3, 0x8] ldr r0, [r3, 0x8] adds r2, r5 subs r1, 0x1 cmp r1, 0 bge _080323D4 movs r0, 0x80 lsls r0, 1 adds r1, r7, r0 mov r0, r12 movs r2, 0x20 bl LoadCompressedPalette b _08032456 .align 2, 0 _080323F4: .4byte gSubstituteDollTilemap _080323F8: .4byte gUnknown_081FAF4C _080323FC: .4byte gSubstituteDollPal _08032400: .4byte 0x040000d4 _08032404: .4byte 0x84000200 _08032408: bl IsContest lsls r0, 24 cmp r0, 0 bne _08032456 adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _08032440 ldr r1, _08032438 @ =gUnknown_02024A6A lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0803243C @ =gEnemyParty adds r0, r1 adds r1, r4, 0 bl sub_8031794 b _08032456 .align 2, 0 _08032438: .4byte gUnknown_02024A6A _0803243C: .4byte gEnemyParty _08032440: ldr r1, _0803245C @ =gUnknown_02024A6A lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08032460 @ =gPlayerParty adds r0, r1 adds r1, r5, 0 bl sub_80318FC _08032456: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803245C: .4byte gUnknown_02024A6A _08032460: .4byte gPlayerParty thumb_func_end sub_8032350 thumb_func_start refresh_graphics_maybe refresh_graphics_maybe: @ 8032464 push {r4-r6,lr} adds r5, r1, 0 adds r4, r2, 0 lsls r0, 24 lsrs r6, r0, 24 lsls r5, 24 lsrs r5, 24 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 adds r1, r5, 0 bl sub_8032350 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r1, _080324A0 @ =gSprites adds r4, r0, r1 ldr r0, _080324A4 @ =gBattleMonForms adds r0, r6, r0 ldrb r1, [r0] adds r0, r4, 0 bl StartSpriteAnim cmp r5, 0 bne _080324A8 adds r0, r6, 0 bl sub_8077F7C b _080324AE .align 2, 0 _080324A0: .4byte gSprites _080324A4: .4byte gBattleMonForms _080324A8: adds r0, r6, 0 bl sub_8077F68 _080324AE: lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] pop {r4-r6} pop {r0} bx r0 thumb_func_end refresh_graphics_maybe thumb_func_start sub_80324BC sub_80324BC: @ 80324BC push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r1, 16 cmp r1, 0xA4 bne _080324D8 lsls r2, r0, 2 ldr r0, _080324DC @ =0x02017800 adds r2, r0 ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _080324D8: pop {r0} bx r0 .align 2, 0 _080324DC: .4byte 0x02017800 thumb_func_end sub_80324BC thumb_func_start sub_80324E0 sub_80324E0: @ 80324E0 lsls r0, 24 lsrs r0, 22 ldr r1, _080324F4 @ =0x02017800 adds r0, r1 ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] bx lr .align 2, 0 _080324F4: .4byte 0x02017800 thumb_func_end sub_80324E0 thumb_func_start sub_80324F8 sub_80324F8: @ 80324F8 push {r4-r7,lr} adds r5, r0, 0 lsls r1, 24 lsrs r6, r1, 24 adds r7, r6, 0 movs r1, 0x39 bl GetMonData adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 movs r1, 0x3A bl GetMonData adds r1, r0, 0 lsls r4, 16 asrs r4, 16 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 bl GetHPBarLevel lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08032568 lsls r0, r6, 2 ldr r3, _08032564 @ =0x02017800 adds r4, r0, r3 ldrb r1, [r4] movs r5, 0x2 movs r2, 0x2 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _080325B2 adds r0, r6, 0 eors r0, r5 lsls r0, 2 adds r0, r3 ldrb r1, [r0] adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _0803255A movs r0, 0x5A bl PlaySE _0803255A: ldrb r0, [r4] orrs r0, r5 strb r0, [r4] b _080325B2 .align 2, 0 _08032564: .4byte 0x02017800 _08032568: lsls r1, r6, 2 ldr r4, _0803258C @ =0x02017800 adds r1, r4 ldrb r2, [r1] movs r0, 0x3 negs r0, r0 ands r0, r2 strb r0, [r1] bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _08032590 movs r0, 0x5A bl m4aSongNumStop b _080325B2 .align 2, 0 _0803258C: .4byte 0x02017800 _08032590: bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _080325B2 movs r0, 0x2 eors r7, r0 lsls r0, r7, 2 adds r0, r4 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080325B2 movs r0, 0x5A bl m4aSongNumStop _080325B2: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80324F8 thumb_func_start sub_80325B8 sub_80325B8: @ 80325B8 push {r4-r6,lr} movs r0, 0 bl battle_get_side_with_given_state lsls r0, 24 lsrs r4, r0, 24 lsls r1, r4, 2 ldr r6, _08032600 @ =0x02017800 adds r1, r6 ldrb r2, [r1] movs r5, 0x3 negs r5, r5 adds r0, r5, 0 ands r0, r2 strb r0, [r1] bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _080325F2 movs r0, 0x2 adds r1, r4, 0 eors r1, r0 lsls r1, 2 adds r1, r6 ldrb r2, [r1] adds r0, r5, 0 ands r0, r2 strb r0, [r1] _080325F2: movs r0, 0x5A bl m4aSongNumStop pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08032600: .4byte 0x02017800 thumb_func_end sub_80325B8 thumb_func_start unref_sub_8032604 unref_sub_8032604: @ 8032604 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x39 bl GetMonData adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 movs r1, 0x3A bl GetMonData adds r1, r0, 0 lsls r4, 16 asrs r4, 16 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 bl GetHPBarLevel lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end unref_sub_8032604 thumb_func_start sub_8032638 sub_8032638: @ 8032638 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, _080326DC @ =gMain ldr r1, _080326E0 @ =0x0000043d adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080326CE movs r0, 0 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r0, 0x2 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r5, _080326E4 @ =gUnknown_02024A6A mov r1, r8 lsls r0, r1, 1 adds r0, r5 ldrb r0, [r0] bl pokemon_order_func adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 mov r1, r9 lsls r0, r1, 1 adds r0, r5 ldrb r0, [r0] bl pokemon_order_func lsls r0, 24 lsrs r5, r0, 24 movs r7, 0x64 adds r0, r4, 0 muls r0, r7 ldr r6, _080326E8 @ =gPlayerParty adds r4, r0, r6 adds r0, r4, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _080326AA adds r0, r4, 0 mov r1, r8 bl sub_80324F8 _080326AA: bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _080326CE adds r0, r5, 0 muls r0, r7 adds r4, r0, r6 adds r0, r4, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _080326CE adds r0, r4, 0 mov r1, r9 bl sub_80324F8 _080326CE: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080326DC: .4byte gMain _080326E0: .4byte 0x0000043d _080326E4: .4byte gUnknown_02024A6A _080326E8: .4byte gPlayerParty thumb_func_end sub_8032638 thumb_func_start sub_80326EC sub_80326EC: @ 80326EC 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 r0, _08032778 @ =gUnknown_02024A68 ldrb r0, [r0] cmp r5, r0 bge _080327B4 movs r0, 0x3 mov r10, r8 mov r1, r10 ands r1, r0 mov r10, r1 movs r6, 0 movs r2, 0x3F negs r2, r2 mov r9, r2 _08032718: lsls r0, r5, 24 lsrs r0, 24 bl sub_8078874 lsls r0, 24 cmp r0, 0 beq _080327A8 ldr r4, _0803277C @ =gSprites ldr r0, _08032780 @ =gUnknown_02024BE0 adds r3, r5, r0 ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0, 0x1] movs r7, 0x4 negs r7, r7 adds r2, r7, 0 ands r1, r2 mov r2, r10 orrs r1, r2 strb r1, [r0, 0x1] mov r7, r8 cmp r7, 0 bne _08032788 ldr r2, _08032784 @ =0x02017810 adds r2, r6, r2 ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 strb r0, [r2, 0x6] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0, 0x3] mov r2, r9 ands r1, r2 strb r1, [r0, 0x3] b _080327A8 .align 2, 0 _08032778: .4byte gUnknown_02024A68 _0803277C: .4byte gSprites _08032780: .4byte gUnknown_02024BE0 _08032784: .4byte 0x02017810 _08032788: ldrb r0, [r3] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r4 ldr r0, _080327C4 @ =0x02017810 adds r0, r6, r0 ldrb r1, [r0, 0x6] movs r0, 0x1F ands r1, r0 lsls r1, 1 ldrb r0, [r2, 0x3] mov r3, r9 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x3] _080327A8: adds r6, 0xC adds r5, 0x1 ldr r0, _080327C8 @ =gUnknown_02024A68 ldrb r0, [r0] cmp r5, r0 blt _08032718 _080327B4: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080327C4: .4byte 0x02017810 _080327C8: .4byte gUnknown_02024A68 thumb_func_end sub_80326EC thumb_func_start sub_80327CC sub_80327CC: @ 80327CC push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _08032894 @ =gUnknown_081FAF24 bl LoadCompressedObjectPic movs r0, 0x1 bl battle_get_side_with_given_state adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, _08032898 @ =gSpriteTemplate_81FAF34 mov r8, r0 adds r0, r5, 0 movs r1, 0 bl sub_8077ABC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x1 bl sub_8077ABC adds r2, r0, 0 lsls r2, 24 lsrs r2, 8 movs r0, 0x80 lsls r0, 14 adds r2, r0 asrs r2, 16 mov r0, r8 adds r1, r4, 0 movs r3, 0xC8 bl CreateSprite lsls r1, r5, 1 adds r1, r5 lsls r1, 2 ldr r6, _0803289C @ =0x02017810 adds r1, r6 strb r0, [r1, 0x7] ldr r7, _080328A0 @ =gSprites ldrb r1, [r1, 0x7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r5, [r0, 0x2E] bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0803288A movs r0, 0x3 bl battle_get_side_with_given_state adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 adds r0, r5, 0 movs r1, 0 bl sub_8077ABC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x1 bl sub_8077ABC adds r2, r0, 0 lsls r2, 24 lsrs r2, 8 movs r0, 0x80 lsls r0, 14 adds r2, r0 asrs r2, 16 mov r0, r8 adds r1, r4, 0 movs r3, 0xC8 bl CreateSprite lsls r1, r5, 1 adds r1, r5 lsls r1, 2 adds r1, r6 strb r0, [r1, 0x7] ldrb r1, [r1, 0x7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r5, [r0, 0x2E] _0803288A: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08032894: .4byte gUnknown_081FAF24 _08032898: .4byte gSpriteTemplate_81FAF34 _0803289C: .4byte 0x02017810 _080328A0: .4byte gSprites thumb_func_end sub_80327CC thumb_func_start sub_80328A4 sub_80328A4: @ 80328A4 push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 movs r0, 0 mov r8, r0 ldrh r0, [r5, 0x2E] lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080328E8 @ =gUnknown_02024BE0 adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080328EC @ =gSprites adds r7, r0, r1 adds r6, r7, 0 adds r6, 0x3E ldrb r1, [r6] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080328E0 adds r0, r4, 0 bl sub_8078874 lsls r0, 24 cmp r0, 0 bne _080328F4 _080328E0: ldr r0, _080328F0 @ =sub_8032978 str r0, [r5, 0x1C] b _08032964 .align 2, 0 _080328E8: .4byte gUnknown_02024BE0 _080328EC: .4byte gSprites _080328F0: .4byte sub_8032978 _080328F4: ldr r0, _08032910 @ =gAnimScriptActive ldrb r0, [r0] cmp r0, 0 bne _08032906 ldrb r1, [r6] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08032918 _08032906: movs r0, 0x1 mov r8, r0 lsls r4, 2 ldr r6, _08032914 @ =0x02017800 b _08032938 .align 2, 0 _08032910: .4byte gAnimScriptActive _08032914: .4byte 0x02017800 _08032918: lsls r0, r4, 2 ldr r1, _08032970 @ =0x02017800 adds r3, r0, r1 ldrh r2, [r3, 0x2] adds r4, r0, 0 adds r6, r1, 0 cmp r2, 0 beq _08032938 ldr r0, _08032974 @ =gEnemyMonElevation adds r1, r2, 0 adds r1, r0 ldrb r0, [r1] cmp r0, 0 bne _08032938 movs r0, 0x1 mov r8, r0 _08032938: adds r0, r4, r6 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08032948 movs r0, 0x1 mov r8, r0 _08032948: ldrh r0, [r7, 0x20] strh r0, [r5, 0x20] ldrh r0, [r7, 0x24] strh r0, [r5, 0x24] adds r2, r5, 0 adds r2, 0x3E mov r0, r8 lsls r3, r0, 2 ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 orrs r0, r3 strb r0, [r2] _08032964: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08032970: .4byte 0x02017800 _08032974: .4byte gEnemyMonElevation thumb_func_end sub_80328A4 thumb_func_start sub_8032978 sub_8032978: @ 8032978 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] bx lr thumb_func_end sub_8032978 thumb_func_start sub_8032984 sub_8032984: @ 8032984 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 lsls r1, 16 lsrs r5, r1, 16 adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080329FA lsls r0, r4, 2 ldr r3, _080329D0 @ =0x02017800 adds r1, r0, r3 ldrh r0, [r1, 0x2] cmp r0, 0 beq _080329AA adds r5, r0, 0 _080329AA: ldr r0, _080329D4 @ =gEnemyMonElevation adds r0, r5, r0 ldrb r0, [r0] cmp r0, 0 beq _080329E0 ldr r2, _080329D8 @ =gSprites lsls r0, r4, 1 adds r0, r4 lsls r0, 2 adds r0, r3, r0 ldrb r1, [r0, 0x17] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _080329DC @ =sub_80328A4 b _080329F8 .align 2, 0 _080329D0: .4byte 0x02017800 _080329D4: .4byte gEnemyMonElevation _080329D8: .4byte gSprites _080329DC: .4byte sub_80328A4 _080329E0: ldr r2, _08032A00 @ =gSprites lsls r0, r6, 1 adds r0, r6 lsls r0, 2 adds r0, r3, r0 ldrb r1, [r0, 0x17] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _08032A04 @ =sub_8032978 _080329F8: str r1, [r0] _080329FA: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08032A00: .4byte gSprites _08032A04: .4byte sub_8032978 thumb_func_end sub_8032984 thumb_func_start sub_8032A08 sub_8032A08: @ 8032A08 lsls r0, 24 lsrs r0, 24 ldr r2, _08032A2C @ =gSprites lsls r1, r0, 1 adds r1, r0 lsls r1, 2 ldr r0, _08032A30 @ =0x02017810 adds r1, r0 ldrb r1, [r1, 0x7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _08032A34 @ =sub_8032978 str r1, [r0] bx lr .align 2, 0 _08032A2C: .4byte gSprites _08032A30: .4byte 0x02017810 _08032A34: .4byte sub_8032978 thumb_func_end sub_8032A08 thumb_func_start sub_8032A38 sub_8032A38: @ 8032A38 push {r4-r6,lr} ldr r3, _08032AA4 @ =0x06000240 movs r0, 0 movs r6, 0xF0 lsls r6, 8 _08032A42: adds r5, r0, 0x1 movs r4, 0xF _08032A46: ldrh r1, [r3] adds r0, r6, 0 ands r0, r1 cmp r0, 0 bne _08032A56 adds r0, r6, 0 orrs r0, r1 strh r0, [r3] _08032A56: ldrh r1, [r3] movs r2, 0xF0 lsls r2, 4 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _08032A6A adds r0, r2, 0 orrs r0, r1 strh r0, [r3] _08032A6A: ldrh r1, [r3] movs r2, 0xF0 movs r0, 0xF0 ands r0, r1 cmp r0, 0 bne _08032A7C adds r0, r1, 0 orrs r0, r2 strh r0, [r3] _08032A7C: ldrh r1, [r3] movs r2, 0xF movs r0, 0xF ands r0, r1 cmp r0, 0 bne _08032A8E adds r0, r1, 0 orrs r0, r2 strh r0, [r3] _08032A8E: adds r3, 0x2 subs r4, 0x1 cmp r4, 0 bge _08032A46 adds r0, r5, 0 cmp r0, 0x8 ble _08032A42 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08032AA4: .4byte 0x06000240 thumb_func_end sub_8032A38 thumb_func_start sub_8032AA8 sub_8032AA8: @ 8032AA8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsls r2, r4, 2 ldr r0, _08032AD4 @ =0x02017800 adds r2, r0 movs r3, 0 movs r0, 0 strh r0, [r2, 0x2] ldr r0, _08032AD8 @ =gBattleMonForms adds r0, r4, r0 strb r3, [r0] cmp r1, 0 bne _08032ACC adds r0, r4, 0 bl sub_80324E0 _08032ACC: pop {r4} pop {r0} bx r0 .align 2, 0 _08032AD4: .4byte 0x02017800 _08032AD8: .4byte gBattleMonForms thumb_func_end sub_8032AA8 thumb_func_start nullsub_45 nullsub_45: @ 8032ADC bx lr thumb_func_end nullsub_45 thumb_func_start sub_8032AE0 sub_8032AE0: @ 8032AE0 ldr r1, _08032AF0 @ =gUnknown_03004330 ldr r0, _08032AF4 @ =gUnknown_02024A60 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _08032AF8 @ =sub_8032AFC str r1, [r0] bx lr .align 2, 0 _08032AF0: .4byte gUnknown_03004330 _08032AF4: .4byte gUnknown_02024A60 _08032AF8: .4byte sub_8032AFC thumb_func_end sub_8032AE0 thumb_func_start sub_8032AFC sub_8032AFC: @ 8032AFC push {lr} ldr r2, _08032B30 @ =gUnknown_02024A64 ldr r1, _08032B34 @ =gBitTable ldr r0, _08032B38 @ =gUnknown_02024A60 ldrb r3, [r0] lsls r0, r3, 2 adds r0, r1 ldr r1, [r2] ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _08032B48 ldr r0, _08032B3C @ =gUnknown_02023A60 lsls r1, r3, 9 adds r1, r0 ldrb r0, [r1] cmp r0, 0x38 bhi _08032B44 ldr r0, _08032B40 @ =gUnknown_081FAF5C ldrb r1, [r1] lsls r1, 2 adds r1, r0 ldr r0, [r1] bl _call_via_r0 b _08032B48 .align 2, 0 _08032B30: .4byte gUnknown_02024A64 _08032B34: .4byte gBitTable _08032B38: .4byte gUnknown_02024A60 _08032B3C: .4byte gUnknown_02023A60 _08032B40: .4byte gUnknown_081FAF5C _08032B44: bl sub_80334EC _08032B48: pop {r0} bx r0 thumb_func_end sub_8032AFC thumb_func_start sub_8032B4C sub_8032B4C: @ 8032B4C push {lr} ldr r2, _08032B74 @ =gSprites ldr r1, _08032B78 @ =gUnknown_02024BE0 ldr r0, _08032B7C @ =gUnknown_02024A60 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _08032B80 @ =SpriteCallbackDummy cmp r1, r0 bne _08032B70 bl sub_80334EC _08032B70: pop {r0} bx r0 .align 2, 0 _08032B74: .4byte gSprites _08032B78: .4byte gUnknown_02024BE0 _08032B7C: .4byte gUnknown_02024A60 _08032B80: .4byte SpriteCallbackDummy thumb_func_end sub_8032B4C thumb_func_start sub_8032B84 sub_8032B84: @ 8032B84 push {lr} ldr r2, _08032BAC @ =gSprites ldr r1, _08032BB0 @ =gUnknown_02024BE0 ldr r0, _08032BB4 @ =gUnknown_02024A60 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _08032BB8 @ =SpriteCallbackDummy cmp r1, r0 bne _08032BA8 bl sub_80334EC _08032BA8: pop {r0} bx r0 .align 2, 0 _08032BAC: .4byte gSprites _08032BB0: .4byte gUnknown_02024BE0 _08032BB4: .4byte gUnknown_02024A60 _08032BB8: .4byte SpriteCallbackDummy thumb_func_end sub_8032B84 thumb_func_start sub_8032BBC sub_8032BBC: @ 8032BBC push {r4-r6,lr} ldr r4, _08032C34 @ =gSprites ldr r6, _08032C38 @ =gUnknown_02024BE0 ldr r5, _08032C3C @ =gUnknown_02024A60 ldrb r0, [r5] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r2, r0, 2 adds r0, r4, 0 adds r0, 0x1C adds r0, r2, r0 ldr r1, [r0] ldr r0, _08032C40 @ =SpriteCallbackDummy cmp r1, r0 bne _08032C2C adds r0, r2, r4 ldrh r0, [r0, 0x6] bl sub_8031B74 ldrb r0, [r5] adds r0, r6 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrh r0, [r1, 0x38] ldr r2, _08032C44 @ =0x000003ff ands r2, r0 ldrh r3, [r1, 0x4] ldr r0, _08032C48 @ =0xfffffc00 ands r0, r3 orrs r0, r2 strh r0, [r1, 0x4] ldrb r0, [r5] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl FreeSpriteOamMatrix ldrb r0, [r5] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite bl sub_80334EC _08032C2C: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08032C34: .4byte gSprites _08032C38: .4byte gUnknown_02024BE0 _08032C3C: .4byte gUnknown_02024A60 _08032C40: .4byte SpriteCallbackDummy _08032C44: .4byte 0x000003ff _08032C48: .4byte 0xfffffc00 thumb_func_end sub_8032BBC thumb_func_start sub_8032C4C sub_8032C4C: @ 8032C4C push {lr} ldr r3, _08032C80 @ =gUnknown_02024A60 ldrb r0, [r3] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 ldr r2, _08032C84 @ =0x02017810 adds r1, r2 ldrb r0, [r1, 0x9] subs r0, 0x1 strb r0, [r1, 0x9] lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _08032C7C ldrb r0, [r3] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r2 movs r0, 0 strb r0, [r1, 0x9] bl sub_80334EC _08032C7C: pop {r0} bx r0 .align 2, 0 _08032C80: .4byte gUnknown_02024A60 _08032C84: .4byte 0x02017810 thumb_func_end sub_8032C4C thumb_func_start sub_8032C88 sub_8032C88: @ 8032C88 push {r4-r7,lr} movs r6, 0 bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08032CAC bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08032CE0 ldr r0, _08032CCC @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08032CE0 _08032CAC: ldr r2, _08032CD0 @ =gSprites ldr r1, _08032CD4 @ =gUnknown_03004340 ldr r0, _08032CD8 @ =gUnknown_02024A60 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _08032CDC @ =SpriteCallbackDummy cmp r1, r0 bne _08032D16 b _08032D14 .align 2, 0 _08032CCC: .4byte gBattleTypeFlags _08032CD0: .4byte gSprites _08032CD4: .4byte gUnknown_03004340 _08032CD8: .4byte gUnknown_02024A60 _08032CDC: .4byte SpriteCallbackDummy _08032CE0: ldr r2, _08032DC4 @ =gSprites ldr r5, _08032DC8 @ =gUnknown_03004340 ldr r0, _08032DCC @ =gUnknown_02024A60 ldrb r3, [r0] adds r0, r3, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r4, [r0] ldr r0, _08032DD0 @ =SpriteCallbackDummy cmp r4, r0 bne _08032D16 movs r0, 0x2 eors r3, r0 adds r0, r3, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r0, [r0] cmp r0, r4 bne _08032D16 _08032D14: movs r6, 0x1 _08032D16: bl IsCryPlayingOrClearCrySongs lsls r0, 24 cmp r0, 0 beq _08032D22 movs r6, 0 _08032D22: cmp r6, 0 beq _08032E0E ldr r7, _08032DCC @ =gUnknown_02024A60 ldrb r2, [r7] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r5, _08032DD4 @ =0x02017810 adds r4, r0, r5 ldrb r1, [r4, 0x1] movs r3, 0x1 adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _08032E0E movs r6, 0x2 adds r1, r6, 0 eors r1, r2 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r0, 0x1] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _08032E0E ldrb r1, [r4] movs r3, 0x7F adds r0, r3, 0 ands r0, r1 strb r0, [r4] ldrb r0, [r7] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r2, [r1, 0x1] movs r4, 0x2 negs r4, r4 adds r0, r4, 0 ands r0, r2 strb r0, [r1, 0x1] ldrb r0, [r7] adds r1, r6, 0 eors r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r0] ands r3, r1 strb r3, [r0] ldrb r0, [r7] adds r1, r6, 0 eors r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r0, 0x1] ands r4, r1 strb r4, [r0, 0x1] ldr r4, _08032DD8 @ =0x000027f9 adds r0, r4, 0 bl FreeSpriteTilesByTag adds r0, r4, 0 bl FreeSpritePaletteByTag ldr r0, _08032DDC @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08032DE4 ldr r0, _08032DE0 @ =gMPlay_BGM bl m4aMPlayContinue b _08032DF0 .align 2, 0 _08032DC4: .4byte gSprites _08032DC8: .4byte gUnknown_03004340 _08032DCC: .4byte gUnknown_02024A60 _08032DD0: .4byte SpriteCallbackDummy _08032DD4: .4byte 0x02017810 _08032DD8: .4byte 0x000027f9 _08032DDC: .4byte gBattleTypeFlags _08032DE0: .4byte gMPlay_BGM _08032DE4: ldr r0, _08032E14 @ =gMPlay_BGM ldr r1, _08032E18 @ =0x0000ffff movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl _08032DF0: ldr r2, _08032E1C @ =gUnknown_02024A60 ldrb r1, [r2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _08032E20 @ =0x02017810 adds r0, r1 movs r1, 0x3 strb r1, [r0, 0x9] ldr r1, _08032E24 @ =gUnknown_03004330 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _08032E28 @ =sub_8032C4C str r1, [r0] _08032E0E: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08032E14: .4byte gMPlay_BGM _08032E18: .4byte 0x0000ffff _08032E1C: .4byte gUnknown_02024A60 _08032E20: .4byte 0x02017810 _08032E24: .4byte gUnknown_03004330 _08032E28: .4byte sub_8032C4C thumb_func_end sub_8032C88 thumb_func_start sub_8032E2C sub_8032E2C: @ 8032E2C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, _08032FEC @ =gUnknown_02024A60 mov r9, r0 ldrb r2, [r0] lsls r3, r2, 1 adds r0, r3, r2 lsls r0, 2 ldr r4, _08032FF0 @ =0x02017810 adds r0, r4 ldrb r1, [r0] movs r5, 0x88 adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _08032E64 ldr r0, _08032FF4 @ =gUnknown_02024A6A adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _08032FF8 @ =gEnemyParty adds r1, r0 adds r0, r2, 0 bl sub_8141828 _08032E64: mov r1, r9 ldrb r0, [r1] movs r7, 0x2 adds r2, r7, 0 eors r2, r0 lsls r3, r2, 1 adds r0, r3, r2 lsls r0, 2 adds r0, r4 ldrb r1, [r0] adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _08032E94 ldr r0, _08032FF4 @ =gUnknown_02024A6A adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _08032FF8 @ =gEnemyParty adds r1, r0 adds r0, r2, 0 bl sub_8141828 _08032E94: mov r0, r9 ldrb r2, [r0] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r4 ldrb r1, [r0] movs r3, 0x8 adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _08032EAE b _08032FE0 _08032EAE: adds r1, r7, 0 eors r1, r2 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _08032EC6 b _08032FE0 _08032EC6: bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08032F58 ldr r0, _08032FFC @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _08032F58 ldr r1, _08033000 @ =gUnknown_0300434C mov r2, r9 ldrb r0, [r2] eors r0, r7 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08033004 @ =gSprites adds r0, r1 bl DestroySprite ldr r4, _08033008 @ =gUnknown_03004340 mov r1, r9 ldrb r0, [r1] adds r1, r7, 0 eors r1, r0 adds r0, r1, r4 ldrb r0, [r0] ldr r2, _08032FF4 @ =gUnknown_02024A6A mov r8, r2 lsls r1, 1 add r1, r8 ldrh r1, [r1] movs r6, 0x64 muls r1, r6 ldr r5, _08032FF8 @ =gEnemyParty adds r1, r5 movs r2, 0 bl sub_8045A5C mov r1, r9 ldrb r0, [r1] eors r0, r7 bl sub_804777C mov r2, r9 ldrb r0, [r2] eors r0, r7 adds r0, r4 ldrb r0, [r0] bl sub_8043DFC mov r1, r9 ldrb r0, [r1] adds r4, r7, 0 eors r4, r0 lsls r0, r4, 1 add r0, r8 ldrh r0, [r0] muls r0, r6 adds r0, r5 movs r1, 0xB bl GetMonData adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_8032984 _08032F58: ldr r1, _08033000 @ =gUnknown_0300434C ldr r4, _08032FEC @ =gUnknown_02024A60 ldrb r0, [r4] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08033004 @ =gSprites adds r0, r1 bl DestroySprite ldr r5, _08033008 @ =gUnknown_03004340 ldrb r1, [r4] adds r0, r1, r5 ldrb r0, [r0] ldr r2, _08032FF4 @ =gUnknown_02024A6A mov r9, r2 lsls r1, 1 add r1, r9 ldrh r1, [r1] movs r2, 0x64 mov r8, r2 mov r2, r8 muls r2, r1 adds r1, r2, 0 ldr r6, _08032FF8 @ =gEnemyParty adds r1, r6 movs r2, 0 bl sub_8045A5C ldrb r0, [r4] bl sub_804777C ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] bl sub_8043DFC ldrb r5, [r4] lsls r0, r5, 1 add r0, r9 ldrh r0, [r0] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r6 movs r1, 0xB bl GetMonData adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 bl sub_8032984 ldr r2, _0803300C @ =0x02017840 ldrb r1, [r2, 0x9] movs r0, 0x2 negs r0, r0 ands r0, r1 strb r0, [r2, 0x9] ldr r1, _08033010 @ =gUnknown_03004330 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _08033014 @ =sub_8032C88 str r1, [r0] _08032FE0: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08032FEC: .4byte gUnknown_02024A60 _08032FF0: .4byte 0x02017810 _08032FF4: .4byte gUnknown_02024A6A _08032FF8: .4byte gEnemyParty _08032FFC: .4byte gBattleTypeFlags _08033000: .4byte gUnknown_0300434C _08033004: .4byte gSprites _08033008: .4byte gUnknown_03004340 _0803300C: .4byte 0x02017840 _08033010: .4byte gUnknown_03004330 _08033014: .4byte sub_8032C88 thumb_func_end sub_8032E2C thumb_func_start sub_8033018 sub_8033018: @ 8033018 push {r4-r7,lr} ldr r2, _08033070 @ =gSprites ldr r0, _08033074 @ =gUnknown_02024BE0 ldr r7, _08033078 @ =gUnknown_02024A60 ldrb r3, [r7] adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r2 adds r0, r1, 0 adds r0, 0x3F ldrb r0, [r0] lsls r0, 27 lsrs r2, r0, 31 cmp r2, 0x1 bne _080330BC movs r4, 0x24 ldrsh r0, [r1, r4] cmp r0, 0 bne _080330BC lsls r4, r3, 1 adds r0, r4, r3 lsls r0, 2 ldr r6, _0803307C @ =0x02017810 adds r1, r0, r6 ldrb r5, [r1] movs r0, 0x80 ands r0, r5 cmp r0, 0 bne _08033088 ldr r0, _08033080 @ =gUnknown_02024A6A adds r0, r4, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _08033084 @ =gEnemyParty adds r1, r0 adds r0, r3, 0 bl sub_8141828 b _080330BC .align 2, 0 _08033070: .4byte gSprites _08033074: .4byte gUnknown_02024BE0 _08033078: .4byte gUnknown_02024A60 _0803307C: .4byte 0x02017810 _08033080: .4byte gUnknown_02024A6A _08033084: .4byte gEnemyParty _08033088: ldrb r0, [r1, 0x1] ands r2, r0 cmp r2, 0 beq _080330BC movs r0, 0x7F ands r0, r5 strb r0, [r1] ldrb r0, [r7] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r6 ldrb r2, [r1, 0x1] movs r0, 0x2 negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] ldr r4, _080330C4 @ =0x000027f9 adds r0, r4, 0 bl FreeSpriteTilesByTag adds r0, r4, 0 bl FreeSpritePaletteByTag bl sub_80334EC _080330BC: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080330C4: .4byte 0x000027f9 thumb_func_end sub_8033018 thumb_func_start sub_80330C8 sub_80330C8: @ 80330C8 push {r4-r6,lr} ldr r6, _08033108 @ =gUnknown_02024A60 ldrb r0, [r6] ldr r5, _0803310C @ =gUnknown_03004340 adds r1, r0, r5 ldrb r1, [r1] movs r2, 0 movs r3, 0 bl sub_8045C78 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldrb r0, [r6] adds r0, r5 ldrb r0, [r0] bl sub_8043DFC lsls r4, 16 asrs r1, r4, 16 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08033110 ldrb r0, [r6] adds r0, r5 ldrb r0, [r0] movs r2, 0 bl sub_80440EC b _08033114 .align 2, 0 _08033108: .4byte gUnknown_02024A60 _0803310C: .4byte gUnknown_03004340 _08033110: bl sub_80334EC _08033114: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80330C8 thumb_func_start sub_803311C sub_803311C: @ 803311C push {lr} ldr r2, _08033150 @ =gSprites ldr r0, _08033154 @ =gUnknown_02024BE0 ldr r1, _08033158 @ =gUnknown_02024A60 ldrb r3, [r1] adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r0, [r0] lsls r0, 31 cmp r0, 0 bne _0803314A ldr r0, _0803315C @ =gUnknown_03004340 adds r0, r3, r0 ldrb r0, [r0] bl sub_8043DB0 bl sub_80334EC _0803314A: pop {r0} bx r0 .align 2, 0 _08033150: .4byte gSprites _08033154: .4byte gUnknown_02024BE0 _08033158: .4byte gUnknown_02024A60 _0803315C: .4byte gUnknown_03004340 thumb_func_end sub_803311C thumb_func_start sub_8033160 sub_8033160: @ 8033160 push {r4-r6,lr} ldr r6, _080331BC @ =gUnknown_02024A60 ldrb r2, [r6] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r1, _080331C0 @ =0x02017810 adds r0, r1 ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _080331B6 ldr r5, _080331C4 @ =gUnknown_02024BE0 adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _080331C8 @ =gSprites adds r0, r4 bl FreeSpriteOamMatrix ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite ldrb r0, [r6] bl sub_8032A08 ldr r1, _080331CC @ =gUnknown_03004340 ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] bl sub_8043DB0 bl sub_80334EC _080331B6: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080331BC: .4byte gUnknown_02024A60 _080331C0: .4byte 0x02017810 _080331C4: .4byte gUnknown_02024BE0 _080331C8: .4byte gSprites _080331CC: .4byte gUnknown_03004340 thumb_func_end sub_8033160 thumb_func_start sub_80331D0 sub_80331D0: @ 80331D0 push {lr} ldr r0, _080331E4 @ =gUnknown_03004210 ldrh r0, [r0, 0x16] cmp r0, 0 bne _080331DE bl sub_80334EC _080331DE: pop {r0} bx r0 .align 2, 0 _080331E4: .4byte gUnknown_03004210 thumb_func_end sub_80331D0 thumb_func_start bx_blink_t7 bx_blink_t7: @ 80331E8 push {r4,lr} ldr r1, _08033224 @ =gUnknown_02024BE0 ldr r0, _08033228 @ =gUnknown_02024A60 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] ldr r2, _0803322C @ =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, r0, r2 movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0x20 bne _08033234 movs r3, 0 movs r0, 0 strh r0, [r4, 0x30] adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] subs r0, 0x5 ands r0, r1 strb r0, [r2] ldr r0, _08033230 @ =gUnknown_02024E6D strb r3, [r0] bl sub_80334EC b _0803325E .align 2, 0 _08033224: .4byte gUnknown_02024BE0 _08033228: .4byte gUnknown_02024A60 _0803322C: .4byte gSprites _08033230: .4byte gUnknown_02024E6D _08033234: ldrh r0, [r4, 0x30] movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _08033258 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] _08033258: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] _0803325E: pop {r4} pop {r0} bx r0 thumb_func_end bx_blink_t7 thumb_func_start sub_8033264 sub_8033264: @ 8033264 push {r4,lr} ldr r2, _080332B4 @ =gSprites ldr r0, _080332B8 @ =gUnknown_03004340 ldr r4, _080332BC @ =gUnknown_02024A60 ldrb r3, [r4] adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _080332C0 @ =SpriteCallbackDummy cmp r1, r0 bne _080332AC lsls r0, r3, 2 ldr r1, _080332C4 @ =0x02017800 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080332A0 adds r0, r3, 0 adds r1, r3, 0 adds r2, r3, 0 movs r3, 0x6 bl move_anim_start_t4 _080332A0: ldr r0, _080332C8 @ =gUnknown_03004330 ldrb r1, [r4] lsls r1, 2 adds r1, r0 ldr r0, _080332CC @ =sub_80332D0 str r0, [r1] _080332AC: pop {r4} pop {r0} bx r0 .align 2, 0 _080332B4: .4byte gSprites _080332B8: .4byte gUnknown_03004340 _080332BC: .4byte gUnknown_02024A60 _080332C0: .4byte SpriteCallbackDummy _080332C4: .4byte 0x02017800 _080332C8: .4byte gUnknown_03004330 _080332CC: .4byte sub_80332D0 thumb_func_end sub_8033264 thumb_func_start sub_80332D0 sub_80332D0: @ 80332D0 push {lr} ldr r0, _080332FC @ =gUnknown_02024A60 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _08033300 @ =0x02017810 adds r0, r1 ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _080332F6 ldr r0, _08033304 @ =c3_0802FDF4 movs r1, 0xA bl CreateTask bl sub_80334EC _080332F6: pop {r0} bx r0 .align 2, 0 _080332FC: .4byte gUnknown_02024A60 _08033300: .4byte 0x02017810 _08033304: .4byte c3_0802FDF4 thumb_func_end sub_80332D0 thumb_func_start sub_8033308 sub_8033308: @ 8033308 push {r4,r5,lr} ldr r5, _080333AC @ =gUnknown_02024A60 ldrb r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r3, _080333B0 @ =0x02017810 adds r2, r0, r3 ldrb r1, [r2, 0x1] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080333A4 ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r2, [r1, 0x1] movs r0, 0x2 negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] ldr r4, _080333B4 @ =0x000027f9 adds r0, r4, 0 bl FreeSpriteTilesByTag adds r0, r4, 0 bl FreeSpritePaletteByTag ldr r1, _080333B8 @ =gUnknown_02024BE0 ldrb r0, [r5] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080333BC @ =gSprites adds r0, r1 movs r1, 0 bl StartSpriteAnim ldr r4, _080333C0 @ =gUnknown_03004340 ldrb r1, [r5] adds r0, r1, r4 ldrb r0, [r0] ldr r2, _080333C4 @ =gUnknown_02024A6A lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _080333C8 @ =gEnemyParty adds r1, r2 movs r2, 0 bl sub_8045A5C ldrb r0, [r5] bl sub_804777C ldrb r0, [r5] adds r0, r4 ldrb r0, [r0] bl sub_8043DFC ldrb r0, [r5] bl sub_8031F88 ldr r1, _080333CC @ =gUnknown_03004330 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _080333D0 @ =sub_8033264 str r1, [r0] _080333A4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080333AC: .4byte gUnknown_02024A60 _080333B0: .4byte 0x02017810 _080333B4: .4byte 0x000027f9 _080333B8: .4byte gUnknown_02024BE0 _080333BC: .4byte gSprites _080333C0: .4byte gUnknown_03004340 _080333C4: .4byte gUnknown_02024A6A _080333C8: .4byte gEnemyParty _080333CC: .4byte gUnknown_03004330 _080333D0: .4byte sub_8033264 thumb_func_end sub_8033308 thumb_func_start sub_80333D4 sub_80333D4: @ 80333D4 push {r4-r6,lr} ldr r5, _08033470 @ =gUnknown_02024A60 ldrb r2, [r5] lsls r3, r2, 1 adds r0, r3, r2 lsls r0, 2 ldr r6, _08033474 @ =0x02017810 adds r0, r6 ldrb r1, [r0] movs r0, 0x88 ands r0, r1 cmp r0, 0 bne _08033402 ldr r0, _08033478 @ =gUnknown_02024A6A adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _0803347C @ =gEnemyParty adds r1, r0 adds r0, r2, 0 bl sub_8141828 _08033402: ldr r4, _08033480 @ =gSprites ldr r0, _08033484 @ =gUnknown_0300434C ldrb r2, [r5] adds r0, r2, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r3, r0, 2 adds r0, r4, 0 adds r0, 0x1C adds r0, r3, r0 ldr r1, [r0] ldr r0, _08033488 @ =SpriteCallbackDummy cmp r1, r0 bne _08033468 lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r6 ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _08033468 adds r0, r3, r4 bl DestroySprite ldrb r4, [r5] ldr r1, _08033478 @ =gUnknown_02024A6A lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0803347C @ =gEnemyParty adds r0, r1 movs r1, 0xB bl GetMonData adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_8032984 ldr r1, _0803348C @ =gUnknown_03004330 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _08033490 @ =sub_8033308 str r1, [r0] _08033468: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08033470: .4byte gUnknown_02024A60 _08033474: .4byte 0x02017810 _08033478: .4byte gUnknown_02024A6A _0803347C: .4byte gEnemyParty _08033480: .4byte gSprites _08033484: .4byte gUnknown_0300434C _08033488: .4byte SpriteCallbackDummy _0803348C: .4byte gUnknown_03004330 _08033490: .4byte sub_8033308 thumb_func_end sub_80333D4 thumb_func_start sub_8033494 sub_8033494: @ 8033494 push {lr} ldr r0, _080334B8 @ =gUnknown_02024A60 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _080334BC @ =0x02017810 adds r0, r1 ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _080334B2 bl sub_80334EC _080334B2: pop {r0} bx r0 .align 2, 0 _080334B8: .4byte gUnknown_02024A60 _080334BC: .4byte 0x02017810 thumb_func_end sub_8033494 thumb_func_start sub_80334C0 sub_80334C0: @ 80334C0 push {lr} ldr r0, _080334E4 @ =gUnknown_02024A60 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _080334E8 @ =0x02017810 adds r0, r1 ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _080334DE bl sub_80334EC _080334DE: pop {r0} bx r0 .align 2, 0 _080334E4: .4byte gUnknown_02024A60 _080334E8: .4byte 0x02017810 thumb_func_end sub_80334C0 thumb_func_start sub_80334EC sub_80334EC: @ 80334EC ldr r1, _08033510 @ =gUnknown_03004330 ldr r2, _08033514 @ =gUnknown_02024A60 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _08033518 @ =sub_8032AFC str r1, [r0] ldr r3, _0803351C @ =gUnknown_02024A64 ldr r1, _08033520 @ =gBitTable ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, [r0] ldr r0, [r3] bics r0, r1 str r0, [r3] bx lr .align 2, 0 _08033510: .4byte gUnknown_03004330 _08033514: .4byte gUnknown_02024A60 _08033518: .4byte sub_8032AFC _0803351C: .4byte gUnknown_02024A64 _08033520: .4byte gBitTable thumb_func_end sub_80334EC .align 2, 0 @ Don't pad with nop.