diff options
Diffstat (limited to 'asm/pokemon_animation.s')
-rw-r--r-- | asm/pokemon_animation.s | 11688 |
1 files changed, 11688 insertions, 0 deletions
diff --git a/asm/pokemon_animation.s b/asm/pokemon_animation.s new file mode 100644 index 000000000..1b0119424 --- /dev/null +++ b/asm/pokemon_animation.s @@ -0,0 +1,11688 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_817F498 +sub_817F498: @ 817F498 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, =gTasks + lsls r6, r5, 2 + adds r0, r6, r5 + lsls r0, 3 + adds r2, r0, r1 + movs r3, 0xA + ldrsh r0, [r2, r3] + lsls r3, r0, 16 + movs r4, 0xC + ldrsh r0, [r2, r4] + orrs r3, r0 + movs r0, 0x8 + ldrsh r4, [r2, r0] + mov r8, r1 + ldr r0, =SpriteCallbackDummy + mov r12, r0 + cmp r4, 0 + bne _0817F508 + ldrh r0, [r3, 0x2E] + strh r0, [r2, 0x10] + ldrh r0, [r3, 0x32] + strh r0, [r2, 0x12] + movs r0, 0x1 + strh r0, [r3, 0x30] + strh r4, [r3, 0x2E] + movs r0, 0x2 + adds r1, r6, 0 + ldr r6, =gUnknown_0860AA88 + ldr r7, =gUnknown_03001274 + movs r4, 0 + adds r2, r3, 0 + adds r2, 0x32 +_0817F4E2: + strh r4, [r2] + adds r2, 0x2 + adds r0, 0x1 + cmp r0, 0x7 + bls _0817F4E2 + adds r1, r5 + lsls r1, 3 + add r1, r8 + movs r2, 0xE + ldrsh r0, [r1, r2] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + str r0, [r3, 0x1C] + movs r0, 0 + str r0, [r7] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_0817F508: + ldr r0, [r3, 0x1C] + cmp r0, r12 + bne _0817F528 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + add r0, r8 + ldrh r1, [r0, 0x10] + movs r2, 0 + strh r1, [r3, 0x2E] + ldrh r0, [r0, 0x12] + strh r0, [r3, 0x32] + strh r2, [r3, 0x30] + adds r0, r5, 0 + bl DestroyTask +_0817F528: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_817F498 + + thumb_func_start sub_817F544 +sub_817F544: @ 817F544 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r4, r1, 24 + lsrs r4, 24 + ldr r0, =sub_817F498 + movs r1, 0x80 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + lsrs r0, r5, 16 + strh r0, [r1, 0xA] + strh r5, [r1, 0xC] + strh r4, [r1, 0xE] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_817F544 + + thumb_func_start sub_817F578 +sub_817F578: @ 817F578 + lsls r1, 24 + ldr r3, =gUnknown_03001274 + movs r2, 0x1 + str r2, [r3] + ldr r2, =gUnknown_0860AA88 + lsrs r1, 22 + adds r1, r2 + ldr r1, [r1] + str r1, [r0, 0x1C] + bx lr + .pool + thumb_func_end sub_817F578 + + thumb_func_start sub_817F594 +sub_817F594: @ 817F594 + push {r4-r6,lr} + adds r5, r0, 0 + lsls r6, r1, 24 + lsrs r6, 24 + ldr r0, =sub_817F498 + movs r1, 0x80 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + lsrs r0, r5, 16 + strh r0, [r4, 0xA] + strh r5, [r4, 0xC] + ldrh r0, [r5, 0x2E] + lsls r0, 24 + ldr r1, =gBattlePartyID + lsrs r0, 23 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + bl GetNature + lsls r0, 24 + lsrs r0, 24 + lsls r1, r6, 1 + ldr r2, =gUnknown_0860AD2F + adds r0, r2 + adds r1, r6 + ldrb r0, [r0] + adds r1, r0 + lsls r1, 24 + lsrs r1, 24 + ldr r0, =gUnknown_0860ACE4 + adds r1, r0 + ldrb r0, [r1] + strh r0, [r4, 0xE] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_817F594 + + thumb_func_start sub_817F60C +sub_817F60C: @ 817F60C + ldr r1, =nullsub_69 + str r1, [r0, 0x1C] + bx lr + .pool + thumb_func_end sub_817F60C + + thumb_func_start sub_817F618 +sub_817F618: @ 817F618 + push {r4,r5,lr} + sub sp, 0x10 + lsls r1, 16 + lsls r3, 16 + lsrs r3, 16 + ldr r4, =0xffff0000 + lsls r2, 16 + lsrs r1, 16 + orrs r1, r2 + str r1, [sp] + ldr r1, [sp, 0x4] + ands r1, r4 + orrs r1, r3 + str r1, [sp, 0x4] + ldrb r4, [r0, 0x3] + lsls r4, 26 + lsrs r4, 27 + add r5, sp, 0x8 + mov r0, sp + adds r1, r5, 0 + movs r2, 0x1 + movs r3, 0x2 + bl ObjAffineSet + ldr r0, =gOamMatrices + lsls r4, 3 + adds r4, r0 + ldrh r0, [r5] + strh r0, [r4] + ldrh r0, [r5, 0x2] + strh r0, [r4, 0x2] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x4] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x6] + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_817F618 + + thumb_func_start sub_817F670 +sub_817F670: @ 817F670 + push {r4,lr} + adds r4, r0, 0 + ldrb r0, [r4, 0x1] + movs r1, 0x3 + orrs r0, r1 + strb r0, [r4, 0x1] + ldr r0, =gUnknown_0860AD68 + str r0, [r4, 0x10] + ldr r0, =gUnknown_03001274 + ldr r0, [r0] + cmp r0, 0x1 + bne _0817F68E + adds r0, r4, 0 + bl InitSpriteAffineAnim +_0817F68E: + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _0817F6A8 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + b _0817F6B0 + .pool +_0817F6A8: + adds r0, r4, 0 + movs r1, 0 + bl StartSpriteAffineAnim +_0817F6B0: + 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 + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_817F670 + + thumb_func_start sub_817F6D4 +sub_817F6D4: @ 817F6D4 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsrs r2, 16 + lsls r3, 16 + lsrs r3, 16 + movs r5, 0x30 + ldrsh r0, [r4, r5] + cmp r0, 0 + bne _0817F6F8 + lsls r0, r1, 16 + negs r0, r0 + lsrs r1, r0, 16 + negs r0, r3 + lsls r0, 16 + lsrs r3, r0, 16 +_0817F6F8: + lsls r1, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + adds r0, r4, 0 + bl sub_817F618 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_817F6D4 + + thumb_func_start sub_817F70C +sub_817F70C: @ 817F70C + push {lr} + adds r1, r0, 0 + movs r2, 0x30 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _0817F720 + movs r2, 0x24 + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1, 0x24] +_0817F720: + pop {r0} + bx r0 + thumb_func_end sub_817F70C + + thumb_func_start sub_817F724 +sub_817F724: @ 817F724 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bhi _0817F750 + ldr r1, =gUnknown_03001240 + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + movs r2, 0 + strh r2, [r0, 0x6] + strh r2, [r0] + movs r1, 0x1 + strh r1, [r0, 0x4] + strh r2, [r0, 0x2] + strh r2, [r0, 0x8] + movs r0, 0x1 + b _0817F752 + .pool +_0817F750: + movs r0, 0 +_0817F752: + pop {r1} + bx r1 + thumb_func_end sub_817F724 + + thumb_func_start sub_817F758 +sub_817F758: @ 817F758 + push {r4,lr} + ldr r4, =gUnknown_03001270 + ldrb r1, [r4] + adds r2, r1, 0x1 + adds r0, r2, 0 + asrs r0, 2 + lsls r0, 2 + subs r0, r2, r0 + strb r0, [r4] + ldrb r0, [r4] + bl sub_817F724 + ldrb r0, [r4] + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_817F758 + + thumb_func_start sub_817F77C +sub_817F77C: @ 817F77C + push {r4,r5,lr} + adds r4, r0, 0 + ldrb r0, [r4, 0x1] + movs r3, 0x4 + negs r3, r3 + ands r3, r0 + movs r5, 0x1 + orrs r3, r5 + 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 + ldr r0, =gUnknown_03001274 + ldr r0, [r0] + cmp r0, 0x1 + bne _0817F800 + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _0817F7C0 + adds r1, r4, 0 + adds r1, 0x3F + ldrb r0, [r1] + orrs r0, r5 + strb r0, [r1] + adds r5, r1, 0 + b _0817F7D0 + .pool +_0817F7C0: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r2, [r0] + movs r1, 0x2 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + adds r5, r0, 0 +_0817F7D0: + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldrb r2, [r4, 0x3] + lsls r1, r2, 26 + lsrs r1, 27 + ldrb r0, [r5] + lsls r0, 31 + lsrs r0, 31 + lsls r0, 3 + orrs r1, r0 + lsls r1, 1 + movs r0, 0x3F + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x3] + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x1] +_0817F800: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_817F77C + + thumb_func_start pokemonanimfunc_01 +pokemonanimfunc_01: @ 817F808 + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x32 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _0817F81A + adds r0, r6, 0 + bl sub_817F670 +_0817F81A: + movs r1, 0x32 + ldrsh r0, [r6, r1] + cmp r0, 0x28 + ble _0817F840 + movs r2, 0x80 + lsls r2, 1 + adds r0, r6, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + adds r0, r6, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r6, 0x1C] + b _0817F88C + .pool +_0817F840: + movs r1, 0x32 + ldrsh r0, [r6, r1] + lsls r0, 9 + movs r1, 0x28 + bl __divsi3 + adds r4, r0, 0 + cmp r0, 0 + bge _0817F854 + adds r4, 0xFF +_0817F854: + asrs r4, 8 + lsls r4, 8 + subs r4, r0, r4 + lsls r4, 16 + asrs r4, 16 + adds r0, r4, 0 + movs r1, 0x20 + bl Sin + movs r1, 0x80 + lsls r1, 1 + adds r5, r1, 0 + adds r0, r5 + strh r0, [r6, 0x36] + adds r0, r4, 0 + movs r1, 0x20 + bl Cos + adds r0, r5 + strh r0, [r6, 0x38] + movs r0, 0x36 + ldrsh r1, [r6, r0] + movs r0, 0x38 + ldrsh r2, [r6, r0] + adds r0, r6, 0 + movs r3, 0 + bl sub_817F6D4 +_0817F88C: + ldrh r0, [r6, 0x32] + adds r0, 0x1 + strh r0, [r6, 0x32] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_01 + + thumb_func_start pokemonanimfunc_02 +pokemonanimfunc_02: @ 817F898 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x32] + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r0, 0x28 + ble _0817F8B4 + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + movs r0, 0 + b _0817F8EE + .pool +_0817F8B4: + movs r0, 0x1 + ands r0, r1 + movs r5, 0xFF + cmp r0, 0 + bne _0817F8C0 + movs r5, 0x1 +_0817F8C0: + movs r1, 0x32 + ldrsh r0, [r4, r1] + lsls r0, 7 + movs r1, 0x28 + bl __divsi3 + adds r1, r0, 0 + cmp r1, 0 + bge _0817F8D4 + adds r0, 0xFF +_0817F8D4: + asrs r0, 8 + lsls r0, 8 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x6 + bl Sin + lsls r1, r5, 24 + asrs r1, 24 + adds r2, r0, 0 + muls r2, r1 + adds r0, r2, 0 +_0817F8EE: + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_02 + + thumb_func_start sub_817F8FC +sub_817F8FC: @ 817F8FC + push {r4,lr} + adds r4, r0, 0 + bl sub_817F70C + movs r0, 0x32 + ldrsh r1, [r4, r0] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r1, r0 + ble _0817F91C + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + movs r0, 0 + b _0817F946 + .pool +_0817F91C: + movs r0, 0x32 + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 7 + movs r2, 0x2E + ldrsh r1, [r4, r2] + bl __divsi3 + adds r1, r0, 0 + cmp r1, 0 + bge _0817F936 + adds r0, 0xFF +_0817F936: + asrs r0, 8 + lsls r0, 8 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x6 + bl Sin +_0817F946: + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + adds r0, r4, 0 + bl sub_817F70C + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_817F8FC + + thumb_func_start pokemonanimfunc_03 +pokemonanimfunc_03: @ 817F95C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x28 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_817F8FC + ldr r0, =sub_817F8FC + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_03 + + thumb_func_start sub_817F978 +sub_817F978: @ 817F978 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F70C + movs r0, 0x32 + ldrsh r1, [r4, r0] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r1, r0 + ble _0817F998 + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + movs r0, 0 + b _0817F9C4 + .pool +_0817F998: + movs r0, 0x32 + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 7 + movs r2, 0x2E + ldrsh r1, [r4, r2] + bl __divsi3 + adds r1, r0, 0 + cmp r1, 0 + bge _0817F9B2 + adds r0, 0xFF +_0817F9B2: + asrs r0, 8 + lsls r0, 8 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x6 + bl Sin + negs r0, r0 +_0817F9C4: + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + adds r0, r4, 0 + bl sub_817F70C + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_817F978 + + thumb_func_start pokemonanimfunc_04 +pokemonanimfunc_04: @ 817F9D8 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x28 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_817F978 + ldr r0, =sub_817F978 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_04 + + thumb_func_start sub_817F9F4 +sub_817F9F4: @ 817F9F4 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r1, [r4, r0] + movs r0, 0xC0 + lsls r0, 1 + cmp r1, r0 + ble _0817FA14 + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + movs r0, 0 + strh r0, [r4, 0x24] + b _0817FA5E + .pool +_0817FA14: + adds r0, r1, 0 + cmp r1, 0 + bge _0817FA1C + adds r0, 0x7F +_0817FA1C: + asrs r2, r0, 7 + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, 0 + blt _0817FA60 + cmp r0, 0x1 + ble _0817FA48 + cmp r0, 0x3 + bgt _0817FA60 + ldr r2, =0xffffff00 + adds r1, r2 + lsls r0, r1, 16 + asrs r0, 16 + movs r1, 0x2E + ldrsh r2, [r4, r1] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 16 + b _0817FA56 + .pool +_0817FA48: + lsls r0, r2, 7 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + movs r2, 0x2E + ldrsh r1, [r4, r2] + lsls r1, 17 +_0817FA56: + asrs r1, 16 + bl Sin + negs r0, r0 +_0817FA5E: + strh r0, [r4, 0x26] +_0817FA60: + ldrh r0, [r4, 0x32] + adds r0, 0xC + strh r0, [r4, 0x32] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_817F9F4 + + thumb_func_start pokemonanimfunc_1E +pokemonanimfunc_1E: @ 817FA6C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x4 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_817F9F4 + ldr r0, =sub_817F9F4 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_1E + + thumb_func_start pokemonanimfunc_06 +pokemonanimfunc_06: @ 817FA88 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r2, [r4, r0] + movs r0, 0xC0 + lsls r0, 2 + cmp r2, r0 + ble _0817FAA8 + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + movs r0, 0 + strh r0, [r4, 0x24] + b _0817FB56 + .pool +_0817FAA8: + adds r0, r2, 0 + cmp r2, 0 + bge _0817FAB0 + adds r0, 0x7F +_0817FAB0: + lsls r0, 9 + asrs r0, 16 + cmp r0, 0x5 + bhi _0817FB3C + lsls r0, 2 + ldr r1, =_0817FAC8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0817FAC8: + .4byte _0817FAE0 + .4byte _0817FAE0 + .4byte _0817FAE4 + .4byte _0817FAE8 + .4byte _0817FB04 + .4byte _0817FB1E +_0817FAE0: + movs r0, 0 + b _0817FB3A +_0817FAE4: + movs r2, 0 + b _0817FB3C +_0817FAE8: + adds r0, r2, 0 + cmp r2, 0 + bge _0817FAF0 + adds r0, 0x7F +_0817FAF0: + asrs r0, 7 + lsls r0, 7 + subs r0, r2, r0 + lsls r0, 3 + negs r0, r0 + cmp r0, 0 + bge _0817FB00 + adds r0, 0x7F +_0817FB00: + asrs r0, 7 + b _0817FB3A +_0817FB04: + adds r0, r2, 0 + cmp r2, 0 + bge _0817FB0C + adds r0, 0x7F +_0817FB0C: + asrs r0, 7 + lsls r0, 7 + subs r0, r2, r0 + cmp r0, 0 + bge _0817FB18 + adds r0, 0x7 +_0817FB18: + asrs r0, 3 + subs r0, 0x8 + b _0817FB3A +_0817FB1E: + adds r0, r2, 0 + cmp r2, 0 + bge _0817FB26 + adds r0, 0x7F +_0817FB26: + asrs r0, 7 + lsls r0, 7 + subs r0, r2, r0 + lsls r0, 3 + negs r0, r0 + cmp r0, 0 + bge _0817FB36 + adds r0, 0x7F +_0817FB36: + asrs r0, 7 + adds r0, 0x8 +_0817FB3A: + strh r0, [r4, 0x24] +_0817FB3C: + adds r0, r2, 0 + cmp r2, 0 + bge _0817FB44 + adds r0, 0x7F +_0817FB44: + asrs r0, 7 + lsls r0, 7 + subs r0, r2, r0 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x8 + bl Sin + negs r0, r0 +_0817FB56: + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + adds r0, 0xC + strh r0, [r4, 0x32] + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_06 + + thumb_func_start pokemonanimfunc_09 +pokemonanimfunc_09: @ 817FB64 + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x32 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _0817FB76 + adds r0, r6, 0 + bl sub_817F670 +_0817FB76: + movs r1, 0x32 + ldrsh r0, [r6, r1] + cmp r0, 0x28 + ble _0817FB9C + movs r2, 0x80 + lsls r2, 1 + adds r0, r6, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + adds r0, r6, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r6, 0x1C] + b _0817FC12 + .pool +_0817FB9C: + movs r1, 0x32 + ldrsh r0, [r6, r1] + lsls r0, 8 + movs r1, 0x28 + bl __divsi3 + adds r1, r0, 0 + cmp r1, 0 + bge _0817FBB0 + adds r0, 0xFF +_0817FBB0: + asrs r0, 8 + lsls r0, 8 + subs r0, r1, r0 + lsls r0, 16 + lsrs r4, r0, 16 + ldrh r0, [r6, 0x32] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0817FBE0 + lsls r4, 16 + asrs r4, 16 + adds r0, r4, 0 + movs r1, 0x20 + bl Sin + movs r1, 0x80 + lsls r1, 1 + adds r5, r1, 0 + adds r0, r5 + strh r0, [r6, 0x36] + adds r0, r4, 0 + movs r1, 0x20 + b _0817FBFA +_0817FBE0: + lsls r4, 16 + asrs r4, 16 + adds r0, r4, 0 + movs r1, 0x8 + bl Sin + movs r1, 0x80 + lsls r1, 1 + adds r5, r1, 0 + adds r0, r5 + strh r0, [r6, 0x36] + adds r0, r4, 0 + movs r1, 0x8 +_0817FBFA: + bl Sin + adds r0, r5 + strh r0, [r6, 0x38] + movs r0, 0x36 + ldrsh r1, [r6, r0] + movs r0, 0x38 + ldrsh r2, [r6, r0] + adds r0, r6, 0 + movs r3, 0 + bl sub_817F6D4 +_0817FC12: + ldrh r0, [r6, 0x32] + adds r0, 0x1 + strh r0, [r6, 0x32] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_09 + + thumb_func_start sub_817FC20 +sub_817FC20: @ 817FC20 + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_817F70C + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _0817FC32 + strh r0, [r4, 0x34] +_0817FC32: + ldr r2, =gUnknown_0860AD70 + movs r5, 0x34 + ldrsh r1, [r4, r5] + lsls r0, r1, 1 + adds r0, r1 + adds r1, r2, 0x2 + adds r3, r0, r1 + movs r1, 0 + ldrsb r1, [r3, r1] + movs r5, 0x32 + ldrsh r0, [r4, r5] + cmp r1, r0 + bne _0817FC6A + adds r0, r1, 0 + cmp r0, 0 + bne _0817FC60 + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + b _0817FC6A + .pool +_0817FC60: + ldrh r0, [r4, 0x34] + adds r0, 0x1 + movs r1, 0 + strh r0, [r4, 0x34] + strh r1, [r4, 0x32] +_0817FC6A: + movs r0, 0x34 + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r1, r0, r1 + adds r0, r2, 0x2 + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + bne _0817FC8C + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + b _0817FCBE + .pool +_0817FC8C: + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r5, 0x34 + ldrsh r1, [r4, r5] + lsls r0, r1, 1 + adds r0, r1 + adds r1, r2, 0x1 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 24 + 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] + adds r0, r4, 0 + bl sub_817F70C +_0817FCBE: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_817FC20 + + thumb_func_start pokemonanimfunc_0A +pokemonanimfunc_0A: @ 817FCC4 + push {r4,lr} + adds r4, r0, 0 + bl sub_817FC20 + ldr r0, =sub_817FC20 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_0A + + thumb_func_start sub_817FCDC +sub_817FCDC: @ 817FCDC + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r1, [r4, r0] + movs r0, 0x90 + lsls r0, 4 + cmp r1, r0 + ble _0817FCF8 + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + movs r0, 0 + b _0817FD12 + .pool +_0817FCF8: + adds r0, r1, 0 + cmp r1, 0 + bge _0817FD00 + adds r0, 0xFF +_0817FD00: + asrs r0, 8 + lsls r0, 8 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + movs r2, 0x3C + ldrsh r1, [r4, r2] + bl Sin +_0817FD12: + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x2E] + ldrh r1, [r4, 0x32] + adds r0, r1 + strh r0, [r4, 0x32] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_817FCDC + + thumb_func_start pokemonanimfunc_0F +pokemonanimfunc_0F: @ 817FD24 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x3C + strh r0, [r4, 0x2E] + movs r0, 0x3 + strh r0, [r4, 0x3C] + adds r0, r4, 0 + bl sub_817FCDC + ldr r0, =sub_817FCDC + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_0F + + thumb_func_start sub_817FD44 +sub_817FD44: @ 817FD44 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r1, [r4, r0] + movs r0, 0x90 + lsls r0, 4 + cmp r1, r0 + ble _0817FD60 + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + movs r0, 0 + b _0817FD78 + .pool +_0817FD60: + adds r0, r1, 0 + cmp r1, 0 + bge _0817FD68 + adds r0, 0xFF +_0817FD68: + asrs r0, 8 + lsls r0, 8 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x3 + bl Sin +_0817FD78: + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x2E] + ldrh r1, [r4, 0x32] + adds r0, r1 + strh r0, [r4, 0x32] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_817FD44 + + thumb_func_start pokemonanimfunc_10 +pokemonanimfunc_10: @ 817FD88 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x3C + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_817FD44 + ldr r0, =sub_817FD44 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_10 + + thumb_func_start pokemonanimfunc_11 +pokemonanimfunc_11: @ 817FDA4 + push {r4-r7,lr} + adds r7, r0, 0 + ldrh r2, [r7, 0x32] + movs r0, 0x32 + ldrsh r1, [r7, r0] + movs r0, 0x80 + lsls r0, 2 + cmp r1, r0 + ble _0817FDC8 + ldr r0, =sub_8184D88 + str r0, [r7, 0x1C] + movs r0, 0 + strh r0, [r7, 0x24] + strh r0, [r7, 0x26] + b _0817FE24 + .pool +_0817FDC8: + movs r0, 0x1 + ands r0, r2 + movs r5, 0xFF + cmp r0, 0 + bne _0817FDD4 + movs r5, 0x1 +_0817FDD4: + movs r1, 0x32 + ldrsh r0, [r7, r1] + cmp r0, 0 + bge _0817FDDE + adds r0, 0x3 +_0817FDDE: + asrs r0, 2 + movs r1, 0x8 + bl Sin + lsls r0, 16 + asrs r6, r0, 16 + movs r0, 0x32 + ldrsh r1, [r7, r0] + adds r4, r1, 0 + cmp r1, 0 + bge _0817FDF6 + adds r4, 0xFF +_0817FDF6: + asrs r4, 8 + lsls r4, 8 + subs r4, r1, r4 + lsls r4, 16 + asrs r4, 16 + adds r0, r4, 0 + adds r1, r6, 0 + bl Sin + lsls r5, 24 + asrs r5, 24 + adds r1, r0, 0 + muls r1, r5 + adds r0, r1, 0 + strh r0, [r7, 0x26] + adds r0, r4, 0 + adds r1, r6, 0 + bl Cos + adds r1, r0, 0 + muls r1, r5 + adds r0, r1, 0 + strh r0, [r7, 0x24] +_0817FE24: + ldrh r0, [r7, 0x32] + adds r0, 0x9 + strh r0, [r7, 0x32] + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_11 + + thumb_func_start sub_817FE30 +sub_817FE30: @ 817FE30 + push {r4-r6,lr} + adds r4, r0, 0 + ldr r2, =gUnknown_03001240 + ldrh r6, [r4, 0x2E] + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r5, r0, r2 + ldrh r0, [r5] + cmp r0, 0 + beq _0817FE54 + subs r0, 0x1 + strh r0, [r5] + b _0817FEF8 + .pool +_0817FE54: + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _0817FE70 + movs r2, 0x8 + ldrsh r0, [r5, r2] + cmp r0, 0 + bne _0817FE70 + adds r0, r4, 0 + bl sub_817F670 + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] +_0817FE70: + ldr r2, =gUnknown_03001240 + lsls r1, r6, 16 + asrs r1, 16 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r5, r0, r2 + movs r0, 0x32 + ldrsh r1, [r4, r0] + movs r2, 0x6 + ldrsh r0, [r5, r2] + cmp r1, r0 + ble _0817FEC4 + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + ldrh r1, [r5, 0x4] + movs r2, 0x4 + ldrsh r0, [r5, r2] + cmp r0, 0x1 + ble _0817FEB4 + subs r0, r1, 0x1 + movs r1, 0 + strh r0, [r5, 0x4] + movs r0, 0xA + strh r0, [r5] + strh r1, [r4, 0x32] + b _0817FEF2 + .pool +_0817FEB4: + adds r0, r4, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + b _0817FEF2 + .pool +_0817FEC4: + movs r0, 0x32 + ldrsh r1, [r4, r0] + adds r0, r1, 0 + cmp r1, 0 + bge _0817FED0 + adds r0, 0xFF +_0817FED0: + asrs r0, 8 + lsls r0, 8 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x80 + lsls r1, 5 + bl Sin + strh r0, [r4, 0x3A] + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r4, 0x3A] + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_817F6D4 +_0817FEF2: + ldrh r0, [r4, 0x32] + adds r0, 0x10 + strh r0, [r4, 0x32] +_0817FEF8: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_817FE30 + + thumb_func_start pokemonanimfunc_12 +pokemonanimfunc_12: @ 817FF00 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F758 + lsls r0, 24 + lsrs r0, 24 + movs r3, 0 + strh r0, [r4, 0x2E] + ldr r2, =gUnknown_03001240 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x80 + lsls r0, 2 + strh r0, [r1, 0x6] + strh r3, [r1] + adds r0, r4, 0 + bl sub_817FE30 + ldr r0, =sub_817FE30 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_12 + + thumb_func_start sub_817FF3C +sub_817FF3C: @ 817FF3C + push {r4-r6,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + lsls r0, 24 + lsrs r5, r0, 24 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _0817FF54 + adds r0, r4, 0 + bl sub_817F670 +_0817FF54: + movs r2, 0x32 + ldrsh r6, [r4, r2] + ldr r1, =gUnknown_03001240 + lsls r0, r5, 1 + adds r0, r5 + lsls r0, 2 + adds r0, r1 + ldrh r1, [r0] + cmp r6, r1 + ble _0817FF8C + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + adds r0, r4, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + b _0817FFAA + .pool +_0817FF8C: + movs r2, 0x8 + ldrsh r1, [r0, r2] + movs r0, 0x80 + lsls r0, 9 + bl __divsi3 + muls r0, r6 + strh r0, [r4, 0x3A] + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r4, 0x3A] + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_817F6D4 +_0817FFAA: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_817FF3C + + thumb_func_start pokemonanimfunc_1F +pokemonanimfunc_1F: @ 817FFB8 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F758 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2E] + ldr r2, =gUnknown_03001240 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x3C + strh r0, [r1] + movs r0, 0x14 + strh r0, [r1, 0x8] + adds r0, r4, 0 + bl sub_817FF3C + ldr r0, =sub_817FF3C + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_1F + + thumb_func_start sub_817FFF0 +sub_817FFF0: @ 817FFF0 + push {r4-r7,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x2E] + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r5, 0 + bl sub_817F70C + ldr r1, =gUnknown_03001240 + lsls r0, r7, 1 + adds r0, r7 + lsls r0, 2 + adds r6, r0, r1 + movs r0, 0x32 + ldrsh r1, [r5, r0] + movs r2, 0x6 + ldrsh r0, [r6, r2] + cmp r1, r0 + ble _0818002C + movs r0, 0 + strh r0, [r5, 0x24] + strh r0, [r5, 0x26] + ldr r0, =sub_8184D88 + str r0, [r5, 0x1C] + b _0818006A + .pool +_0818002C: + movs r0, 0x32 + ldrsh r1, [r5, r0] + adds r0, r1, 0 + adds r0, 0xC0 + adds r4, r0, 0 + cmp r0, 0 + bge _0818003E + ldr r2, =0x000001bf + adds r4, r1, r2 +_0818003E: + asrs r4, 8 + lsls r4, 8 + subs r4, r0, r4 + lsls r4, 16 + asrs r4, 16 + movs r0, 0x8 + ldrsh r1, [r6, r0] + lsls r1, 17 + asrs r1, 16 + adds r0, r4, 0 + bl Cos + negs r0, r0 + strh r0, [r5, 0x24] + movs r2, 0x8 + ldrsh r1, [r6, r2] + adds r0, r4, 0 + bl Sin + ldrh r1, [r6, 0x8] + adds r0, r1 + strh r0, [r5, 0x26] +_0818006A: + ldr r0, =gUnknown_03001240 + lsls r1, r7, 1 + adds r1, r7 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1, 0x2] + ldrh r1, [r5, 0x32] + adds r0, r1 + strh r0, [r5, 0x32] + adds r0, r5, 0 + bl sub_817F70C + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_817FFF0 + + thumb_func_start pokemonanimfunc_14 +pokemonanimfunc_14: @ 8180090 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F758 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2E] + ldr r2, =gUnknown_03001240 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x80 + lsls r0, 2 + strh r0, [r1, 0x6] + movs r0, 0x6 + strh r0, [r1, 0x8] + movs r0, 0x18 + strh r0, [r1, 0x2] + adds r0, r4, 0 + bl sub_817FFF0 + ldr r0, =sub_817FFF0 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_14 + + thumb_func_start pokemonanimfunc_15 +pokemonanimfunc_15: @ 81800D0 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _081800EC + ldrb r0, [r4, 0x5] + lsrs r0, 4 + lsls r0, 4 + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + adds r0, r1 + strh r0, [r4, 0x3C] +_081800EC: + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0x80 + ble _0818010C + ldrh r0, [r4, 0x3C] + movs r1, 0x10 + movs r2, 0 + movs r3, 0 + bl BlendPalette + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + b _08180128 + .pool +_0818010C: + movs r2, 0x32 + ldrsh r0, [r4, r2] + movs r1, 0x10 + bl Sin + adds r2, r0, 0 + strh r2, [r4, 0x3A] + ldrh r0, [r4, 0x3C] + lsls r2, 24 + lsrs r2, 24 + movs r1, 0x10 + movs r3, 0 + bl BlendPalette +_08180128: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_15 + + thumb_func_start pokemonanimfunc_16 +pokemonanimfunc_16: @ 8180134 + push {r4-r7,lr} + adds r6, r0, 0 + movs r7, 0 + movs r1, 0x32 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _08180148 + adds r0, r6, 0 + bl sub_817F670 +_08180148: + ldrh r5, [r6, 0x32] + movs r2, 0x32 + ldrsh r0, [r6, r2] + cmp r0, 0x28 + ble _08180170 + movs r2, 0x80 + lsls r2, 1 + adds r0, r6, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + adds r0, r6, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r6, 0x1C] + b _08180204 + .pool +_08180170: + movs r1, 0x32 + ldrsh r0, [r6, r1] + lsls r0, 7 + movs r1, 0x28 + bl __divsi3 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r5, 0 + subs r0, 0xA + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x13 + bhi _08180196 + ldrh r0, [r6, 0x3C] + adds r0, 0x33 + strh r0, [r6, 0x3C] + movs r7, 0xFF + ands r7, r0 +_08180196: + movs r2, 0x30 + ldrsh r0, [r6, r2] + cmp r0, 0 + bne _081801C4 + lsls r5, r4, 16 + asrs r0, r5, 16 + movs r1, 0x28 + bl Sin + adds r4, r0, 0 + adds r0, r7, 0 + movs r1, 0x10 + bl Sin + ldr r1, =0xffffff00 + adds r0, r1 + adds r4, r0 + strh r4, [r6, 0x36] + adds r4, r5, 0 + b _081801E4 + .pool +_081801C4: + adds r0, r7, 0 + movs r1, 0x10 + bl Sin + adds r5, r0, 0 + lsls r4, 16 + asrs r0, r4, 16 + movs r1, 0x28 + bl Sin + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + subs r1, r5 + subs r1, r0 + strh r1, [r6, 0x36] +_081801E4: + asrs r0, r4, 16 + movs r1, 0x10 + bl Sin + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + strh r0, [r6, 0x38] + movs r2, 0x36 + ldrsh r1, [r6, r2] + movs r0, 0x38 + ldrsh r2, [r6, r0] + adds r0, r6, 0 + movs r3, 0 + bl sub_817F618 +_08180204: + ldrh r0, [r6, 0x32] + adds r0, 0x1 + strh r0, [r6, 0x32] + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_16 + + thumb_func_start pokemonanimfunc_17 +pokemonanimfunc_17: @ 8180210 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + movs r0, 0 + mov r8, r0 + movs r7, 0 + movs r1, 0x32 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _0818022C + adds r0, r5, 0 + bl sub_817F670 +_0818022C: + ldrh r6, [r5, 0x32] + movs r2, 0x32 + ldrsh r0, [r5, r2] + cmp r0, 0x28 + ble _08180258 + movs r2, 0x80 + lsls r2, 1 + adds r0, r5, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + adds r0, r5, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r5, 0x1C] + mov r0, r8 + strh r0, [r5, 0x26] + b _0818030A + .pool +_08180258: + movs r1, 0x32 + ldrsh r0, [r5, r1] + lsls r0, 7 + movs r1, 0x28 + bl __divsi3 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r6, 0 + subs r0, 0xA + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x13 + bhi _0818027E + ldrh r0, [r5, 0x3C] + adds r0, 0x33 + strh r0, [r5, 0x3C] + movs r7, 0xFF + ands r7, r0 +_0818027E: + movs r2, 0x30 + ldrsh r0, [r5, r2] + cmp r0, 0 + bne _081802A0 + lsls r4, 16 + asrs r0, r4, 16 + movs r1, 0x10 + bl Sin + ldr r2, =0xffffff00 + adds r1, r2, 0 + subs r1, r0 + strh r1, [r5, 0x36] + b _081802B2 + .pool +_081802A0: + lsls r4, 16 + asrs r0, r4, 16 + movs r1, 0x10 + bl Sin + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + strh r0, [r5, 0x36] +_081802B2: + adds r6, r4, 0 + adds r0, r7, 0 + movs r1, 0x8 + bl Sin + adds r4, r0, 0 + asrs r0, r6, 16 + movs r1, 0x28 + bl Sin + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + subs r4, r1, r4 + subs r4, r0 + strh r4, [r5, 0x38] + lsls r4, 16 + asrs r4, 16 + lsls r1, 16 + asrs r1, 16 + cmp r4, r1 + beq _081802F0 + movs r2, 0x38 + ldrsh r0, [r5, r2] + subs r0, r1, r0 + cmp r0, 0 + bge _081802EA + adds r0, 0x7 +_081802EA: + lsls r0, 13 + lsrs r0, 16 + mov r8, r0 +_081802F0: + mov r1, r8 + lsls r0, r1, 16 + asrs r0, 16 + negs r0, r0 + strh r0, [r5, 0x26] + movs r2, 0x36 + ldrsh r1, [r5, r2] + movs r0, 0x38 + ldrsh r2, [r5, r0] + adds r0, r5, 0 + movs r3, 0 + bl sub_817F618 +_0818030A: + ldrh r0, [r5, 0x32] + adds r0, 0x1 + strh r0, [r5, 0x32] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_17 + + thumb_func_start sub_818031C +sub_818031C: @ 818031C + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r4, r0, 0 + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldrh r0, [r4, 0x3A] + lsls r0, 24 + lsrs r7, r0, 24 + ldr r2, =gUnknown_0860AA80 + movs r1, 0x38 + ldrsh r0, [r4, r1] + lsls r0, 1 + adds r1, r0, r2 + ldrb r5, [r1] + adds r2, 0x1 + adds r0, r2 + ldrb r6, [r0] + movs r1, 0 + cmp r5, 0xFE + beq _08180358 + subs r0, r6, r7 + muls r0, r5 + adds r1, r6, 0 + bl __divsi3 + lsls r0, 24 + lsrs r1, r0, 24 +_08180358: + cmp r5, 0xFF + bne _08180370 + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + movs r0, 0 + strh r0, [r4, 0x26] + b _08180394 + .pool +_08180370: + mov r0, r8 + bl Sin + strh r0, [r4, 0x26] + cmp r7, r6 + bne _08180386 + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + movs r0, 0 + b _08180392 +_08180386: + ldrh r0, [r4, 0x2E] + ldrh r1, [r4, 0x32] + adds r0, r1 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x3A] + adds r0, 0x1 +_08180392: + strh r0, [r4, 0x3A] +_08180394: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_818031C + + thumb_func_start pokemonanimfunc_19 +pokemonanimfunc_19: @ 81803A0 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x30 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_818031C + ldr r0, =sub_818031C + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_19 + + thumb_func_start pokemonanimfunc_1A +pokemonanimfunc_1A: @ 81803BC + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r4, r0, 0 + bl sub_817F70C + ldrh r0, [r4, 0x32] + lsls r7, r0, 24 + lsrs r5, r7, 24 + mov r8, r5 + cmp r0, 0 + bne _081803DA + adds r0, r4, 0 + bl sub_817F670 +_081803DA: + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0x23 + ble _08180404 + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + adds r0, r4, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + movs r0, 0 + strh r0, [r4, 0x24] + b _0818045E + .pool +_08180404: + adds r6, r5, 0 + subs r6, 0xA + lsls r0, r6, 7 + movs r1, 0x14 + bl __divsi3 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r5, 0x9 + bhi _0818042A + movs r2, 0x80 + lsls r2, 1 + lsrs r3, r7, 25 + lsls r3, 9 + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_817F6D4 + b _0818045E +_0818042A: + lsls r0, r6, 24 + lsrs r0, 24 + cmp r0, 0x13 + bhi _08180442 + lsls r0, r1, 16 + asrs r0, 16 + movs r1, 0x5 + bl Sin + negs r0, r0 + strh r0, [r4, 0x24] + b _0818045E +_08180442: + movs r2, 0x80 + lsls r2, 1 + movs r3, 0x23 + mov r0, r8 + subs r3, r0 + lsrs r0, r3, 31 + adds r3, r0 + asrs r3, 1 + lsls r3, 26 + lsrs r3, 16 + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_817F6D4 +_0818045E: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + adds r0, r4, 0 + bl sub_817F70C + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_1A + + thumb_func_start pokemonanimfunc_1B +pokemonanimfunc_1B: @ 8180474 + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x32 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _08180486 + adds r0, r6, 0 + bl sub_817F670 +_08180486: + movs r1, 0x32 + ldrsh r0, [r6, r1] + cmp r0, 0x64 + ble _081804B0 + movs r2, 0x80 + lsls r2, 1 + adds r0, r6, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + movs r0, 0 + strh r0, [r6, 0x26] + adds r0, r6, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r6, 0x1C] + b _081804E8 + .pool +_081804B0: + movs r1, 0x32 + ldrsh r0, [r6, r1] + lsls r0, 8 + movs r1, 0x64 + bl __divsi3 + adds r4, r0, 0 + lsls r4, 16 + asrs r4, 16 + adds r0, r4, 0 + movs r1, 0xA + bl Sin + strh r0, [r6, 0x26] + movs r5, 0x80 + lsls r5, 1 + ldr r1, =0x00000ccc + adds r0, r4, 0 + bl Sin + adds r3, r0, 0 + lsls r3, 16 + lsrs r3, 16 + adds r0, r6, 0 + adds r1, r5, 0 + adds r2, r5, 0 + bl sub_817F6D4 +_081804E8: + ldrh r0, [r6, 0x32] + adds r0, 0x1 + strh r0, [r6, 0x32] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_1B + + thumb_func_start sub_81804F8 +sub_81804F8: @ 81804F8 + push {r4-r6,lr} + adds r6, r0, 0 + movs r5, 0 + movs r1, 0x32 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _0818050C + adds r0, r6, 0 + bl sub_817F670 +_0818050C: + movs r1, 0x32 + ldrsh r0, [r6, r1] + cmp r0, 0x64 + ble _08180534 + movs r2, 0x80 + lsls r2, 1 + adds r0, r6, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + strh r5, [r6, 0x26] + adds r0, r6, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r6, 0x1C] + b _08180582 + .pool +_08180534: + movs r0, 0x32 + ldrsh r5, [r6, r0] + lsls r0, r5, 8 + movs r1, 0x64 + bl __divsi3 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 9 + adds r0, r5, 0 + movs r1, 0x64 + bl __divsi3 + adds r5, r0, 0 + movs r0, 0xFF + ands r5, r0 + lsls r4, 16 + asrs r4, 16 + movs r0, 0x2E + ldrsh r1, [r6, r0] + adds r0, r4, 0 + bl Sin + strh r0, [r6, 0x26] + movs r4, 0x80 + lsls r4, 1 + adds r0, r5, 0 + ldr r1, =0x00000ccc + bl Sin + adds r3, r0, 0 + lsls r3, 16 + lsrs r3, 16 + adds r0, r6, 0 + adds r1, r4, 0 + adds r2, r4, 0 + bl sub_817F6D4 +_08180582: + ldrh r0, [r6, 0x32] + adds r0, 0x1 + strh r0, [r6, 0x32] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81804F8 + + thumb_func_start pokemonanimfunc_1C +pokemonanimfunc_1C: @ 8180594 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0xA + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_81804F8 + ldr r0, =sub_81804F8 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_1C + + thumb_func_start sub_81805B0 +sub_81805B0: @ 81805B0 + push {r4-r6,lr} + adds r6, r0, 0 + movs r5, 0 + movs r1, 0x32 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _081805C4 + adds r0, r6, 0 + bl sub_817F670 +_081805C4: + movs r2, 0x32 + ldrsh r0, [r6, r2] + cmp r0, 0x64 + ble _081805EC + movs r2, 0x80 + lsls r2, 1 + adds r0, r6, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + strh r5, [r6, 0x26] + adds r0, r6, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r6, 0x1C] + b _08180644 + .pool +_081805EC: + movs r0, 0x32 + ldrsh r5, [r6, r0] + lsls r0, r5, 8 + movs r1, 0x64 + bl __divsi3 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 9 + adds r0, r5, 0 + movs r1, 0x64 + bl __divsi3 + adds r5, r0, 0 + movs r0, 0xFF + ands r5, r0 + lsls r4, 16 + asrs r0, r4, 16 + lsrs r4, 31 + adds r0, r4 + asrs r0, 1 + movs r2, 0x2E + ldrsh r1, [r6, r2] + lsls r1, 17 + asrs r1, 16 + bl Sin + negs r0, r0 + strh r0, [r6, 0x26] + movs r4, 0x80 + lsls r4, 1 + adds r0, r5, 0 + ldr r1, =0x00000ccc + bl Sin + adds r3, r0, 0 + lsls r3, 16 + lsrs r3, 16 + adds r0, r6, 0 + adds r1, r4, 0 + adds r2, r4, 0 + bl sub_817F6D4 +_08180644: + ldrh r0, [r6, 0x32] + adds r0, 0x1 + strh r0, [r6, 0x32] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81805B0 + + thumb_func_start pokemonanimfunc_18 +pokemonanimfunc_18: @ 8180654 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x5 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_81805B0 + ldr r0, =sub_81805B0 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_18 + + thumb_func_start pokemonanimfunc_1D +pokemonanimfunc_1D: @ 8180670 + push {r4-r6,lr} + adds r6, r0, 0 + bl sub_817F70C + movs r5, 0 + movs r1, 0x32 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _08180688 + adds r0, r6, 0 + bl sub_817F670 +_08180688: + movs r1, 0x32 + ldrsh r0, [r6, r1] + cmp r0, 0x64 + ble _081806B0 + movs r2, 0x80 + lsls r2, 1 + adds r0, r6, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + strh r5, [r6, 0x24] + adds r0, r6, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r6, 0x1C] + b _081806FC + .pool +_081806B0: + movs r0, 0x32 + ldrsh r5, [r6, r0] + lsls r0, r5, 8 + movs r1, 0x64 + bl __divsi3 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 9 + adds r0, r5, 0 + movs r1, 0x64 + bl __divsi3 + adds r5, r0, 0 + movs r0, 0xFF + ands r5, r0 + lsls r4, 16 + asrs r4, 16 + adds r0, r4, 0 + movs r1, 0x8 + bl Sin + strh r0, [r6, 0x24] + movs r4, 0x80 + lsls r4, 1 + adds r0, r5, 0 + ldr r1, =0x00000ccc + bl Sin + adds r3, r0, 0 + lsls r3, 16 + lsrs r3, 16 + adds r0, r6, 0 + adds r1, r4, 0 + adds r2, r4, 0 + bl sub_817F6D4 +_081806FC: + ldrh r0, [r6, 0x32] + adds r0, 0x1 + strh r0, [r6, 0x32] + adds r0, r6, 0 + bl sub_817F70C + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_1D + + thumb_func_start sub_8180714 +sub_8180714: @ 8180714 + push {r4-r6,lr} + adds r4, r0, 0 + movs r6, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _0818072A + adds r0, r4, 0 + bl sub_817F670 + strh r6, [r4, 0x34] +_0818072A: + adds r0, r4, 0 + bl sub_817F70C + movs r0, 0x32 + ldrsh r2, [r4, r0] + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r0, r1 + cmp r2, r0 + ble _08180760 + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + strh r6, [r4, 0x26] + adds r0, r4, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + b _081807FE + .pool +_08180760: + movs r1, 0x36 + ldrsh r0, [r4, r1] + movs r1, 0x20 + bl Sin + movs r2, 0x80 + lsls r2, 1 + adds r0, r2 + lsls r0, 16 + lsrs r5, r0, 16 + movs r0, 0x32 + ldrsh r1, [r4, r0] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r1, r0 + ble _08180796 + adds r2, r0, 0 + lsls r0, r2, 1 + cmp r1, r0 + bge _08180796 + movs r0, 0x80 + adds r1, r2, 0 + bl __divsi3 + ldrh r1, [r4, 0x34] + adds r1, r0 + strh r1, [r4, 0x34] +_08180796: + lsls r0, r5, 16 + asrs r1, r0, 16 + movs r2, 0x80 + lsls r2, 1 + adds r5, r0, 0 + cmp r1, r2 + ble _081807B0 + subs r0, r2, r1 + cmp r0, 0 + bge _081807AC + adds r0, 0x7 +_081807AC: + lsls r0, 13 + lsrs r6, r0, 16 +_081807B0: + movs r1, 0x34 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl Sin + negs r0, r0 + lsls r1, r6, 16 + asrs r1, 16 + subs r0, r1 + strh r0, [r4, 0x26] + movs r2, 0x36 + ldrsh r0, [r4, r2] + movs r1, 0x20 + bl Sin + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + subs r1, r0 + lsls r1, 16 + asrs r1, 16 + asrs r2, r5, 16 + adds r0, r4, 0 + movs r3, 0 + bl sub_817F6D4 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + movs r0, 0x2E + ldrsh r1, [r4, r0] + movs r0, 0x80 + bl __divsi3 + ldrh r1, [r4, 0x36] + adds r1, r0 + movs r0, 0xFF + ands r1, r0 + strh r1, [r4, 0x36] +_081807FE: + adds r0, r4, 0 + bl sub_817F70C + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8180714 + + thumb_func_start pokemonanimfunc_00 +pokemonanimfunc_00: @ 818080C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x10 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_8180714 + ldr r0, =sub_8180714 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_00 + + thumb_func_start sub_8180828 +sub_8180828: @ 8180828 + push {r4-r6,lr} + adds r5, r0, 0 + movs r6, 0 + movs r0, 0x32 + ldrsh r4, [r5, r0] + movs r2, 0x3A + ldrsh r1, [r5, r2] + movs r0, 0x80 + bl __divsi3 + movs r2, 0x3C + ldrsh r1, [r5, r2] + muls r0, r1 + cmp r4, r0 + ble _08180868 + movs r2, 0x80 + lsls r2, 1 + adds r0, r5, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + strh r6, [r5, 0x26] + adds r0, r5, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r5, 0x1C] + b _081808D0 + .pool +_08180868: + movs r1, 0x36 + ldrsh r0, [r5, r1] + movs r1, 0x20 + bl Sin + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + adds r0, r1 + lsls r0, 16 + lsrs r4, r0, 16 + asrs r0, 16 + lsls r1, 16 + asrs r1, 16 + cmp r0, r1 + ble _08180894 + subs r0, r1, r0 + cmp r0, 0 + bge _08180890 + adds r0, 0x7 +_08180890: + lsls r0, 13 + lsrs r6, r0, 16 +_08180894: + lsls r0, r6, 16 + asrs r0, 16 + negs r0, r0 + strh r0, [r5, 0x26] + movs r1, 0x36 + ldrsh r0, [r5, r1] + movs r1, 0x30 + bl Sin + adds r1, r0, 0 + movs r2, 0x80 + lsls r2, 1 + adds r1, r2 + lsls r1, 16 + asrs r1, 16 + lsls r2, r4, 16 + asrs r2, 16 + adds r0, r5, 0 + movs r3, 0 + bl sub_817F6D4 + ldrh r0, [r5, 0x32] + adds r0, 0x1 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x3A] + ldrh r1, [r5, 0x36] + adds r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r5, 0x36] +_081808D0: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8180828 + + thumb_func_start pokemonanimfunc_13 +pokemonanimfunc_13: @ 81808D8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _081808F2 + adds r0, r4, 0 + bl sub_817F670 + movs r0, 0x3 + strh r0, [r4, 0x3C] + movs r0, 0x8 + strh r0, [r4, 0x3A] +_081808F2: + adds r0, r4, 0 + bl sub_8180828 + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_13 + + thumb_func_start sub_8180900 +sub_8180900: @ 8180900 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r4, r0, 0 + bl sub_817F70C + ldrh r1, [r4, 0x2E] + lsls r1, 24 + lsrs r1, 24 + ldr r2, =gUnknown_03001240 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x6] + str r1, [sp] + ldr r5, =gUnknown_0860AD8E + movs r3, 0x36 + ldrsh r2, [r4, r3] + lsls r1, r2, 1 + adds r1, r2 + movs r3, 0x8 + ldrsh r2, [r0, r3] + lsls r0, r2, 1 + adds r0, r2 + lsls r6, r0, 3 + adds r1, r6 + adds r2, r1, r5 + adds r0, r5, 0x1 + adds r1, r0 + movs r0, 0 + ldrsb r0, [r1, r0] + ldrb r2, [r2] + lsls r2, 24 + asrs r2, 24 + mov r9, r2 + subs r0, r2 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + ldrh r7, [r4, 0x34] + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _0818096C + adds r0, r4, 0 + bl sub_817F670 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] +_0818096C: + movs r2, 0x36 + ldrsh r1, [r4, r2] + lsls r0, r1, 1 + adds r0, r1 + adds r0, r6 + adds r5, 0x2 + mov r8, r5 + adds r1, r0, r5 + movs r5, 0 + ldrsb r5, [r1, r5] + cmp r5, 0 + bne _081809B0 + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + strh r5, [r4, 0x24] + strh r5, [r4, 0x26] + adds r0, r4, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + b _08180A3A + .pool +_081809B0: + lsls r0, r7, 16 + asrs r5, r0, 16 + lsls r0, r5, 7 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + bl __divsi3 + lsls r0, 16 + asrs r0, 16 + movs r1, 0xA + bl Sin + negs r0, r0 + strh r0, [r4, 0x26] + mov r3, r10 + lsls r0, r3, 16 + asrs r0, 16 + muls r0, r5 + movs r1, 0x36 + ldrsh r2, [r4, r1] + lsls r1, r2, 1 + adds r1, r2 + adds r1, r6 + add r1, r8 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + bl __divsi3 + add r0, r9 + strh r0, [r4, 0x24] + ldr r2, [sp] + lsls r0, r2, 16 + asrs r0, 16 + movs r3, 0x24 + ldrsh r1, [r4, r3] + muls r0, r1 + negs r0, r0 + cmp r0, 0 + bge _08180A04 + adds r0, 0x7 +_08180A04: + lsls r3, r0, 13 + lsrs r3, 16 + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_817F6D4 + movs r0, 0x36 + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r0, r1 + adds r0, r6 + add r0, r8 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r5, r0 + bne _08180A34 + ldrh r0, [r4, 0x36] + adds r0, 0x1 + strh r0, [r4, 0x36] + movs r0, 0 + b _08180A38 +_08180A34: + ldrh r0, [r4, 0x34] + adds r0, 0x1 +_08180A38: + strh r0, [r4, 0x34] +_08180A3A: + adds r0, r4, 0 + bl sub_817F70C + 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_8180900 + + thumb_func_start pokemonanimfunc_05 +pokemonanimfunc_05: @ 8180A50 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F758 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2E] + ldr r2, =gUnknown_03001240 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x80 + lsls r0, 5 + strh r0, [r1, 0x6] + ldrh r0, [r4, 0x3A] + strh r0, [r1, 0x8] + adds r0, r4, 0 + bl sub_8180900 + ldr r0, =sub_8180900 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_05 + + thumb_func_start pokemonanimfunc_20 +pokemonanimfunc_20: @ 8180A8C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _08180AA8 + ldrb r0, [r4, 0x5] + lsrs r0, 4 + lsls r0, 4 + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + adds r0, r1 + strh r0, [r4, 0x3C] +_08180AA8: + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0x80 + ble _08180ACC + ldrh r0, [r4, 0x3C] + ldr r3, =0x000002df + movs r1, 0x10 + movs r2, 0 + bl BlendPalette + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + b _08180AE8 + .pool +_08180ACC: + movs r2, 0x32 + ldrsh r0, [r4, r2] + movs r1, 0xC + bl Sin + adds r2, r0, 0 + strh r2, [r4, 0x3A] + ldrh r0, [r4, 0x3C] + lsls r2, 24 + lsrs r2, 24 + ldr r3, =0x000002df + movs r1, 0x10 + bl BlendPalette +_08180AE8: + ldrh r0, [r4, 0x32] + adds r0, 0x2 + strh r0, [r4, 0x32] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_20 + + thumb_func_start pokemonanimfunc_21 +pokemonanimfunc_21: @ 8180AF8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _08180B14 + ldrb r0, [r4, 0x5] + lsrs r0, 4 + lsls r0, 4 + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + adds r0, r1 + strh r0, [r4, 0x3C] +_08180B14: + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0x80 + ble _08180B34 + ldrh r0, [r4, 0x3C] + movs r1, 0x10 + movs r2, 0 + movs r3, 0x1F + bl BlendPalette + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + b _08180B50 + .pool +_08180B34: + movs r2, 0x32 + ldrsh r0, [r4, r2] + movs r1, 0xC + bl Sin + adds r2, r0, 0 + strh r2, [r4, 0x3A] + ldrh r0, [r4, 0x3C] + lsls r2, 24 + lsrs r2, 24 + movs r1, 0x10 + movs r3, 0x1F + bl BlendPalette +_08180B50: + ldrh r0, [r4, 0x32] + adds r0, 0x2 + strh r0, [r4, 0x32] + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_21 + + thumb_func_start pokemonanimfunc_22 +pokemonanimfunc_22: @ 8180B5C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _08180B78 + ldrb r0, [r4, 0x5] + lsrs r0, 4 + lsls r0, 4 + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + adds r0, r1 + strh r0, [r4, 0x3C] +_08180B78: + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0x80 + ble _08180B98 + ldrh r0, [r4, 0x3C] + movs r3, 0xF8 + lsls r3, 7 + movs r1, 0x10 + movs r2, 0 + bl BlendPalette + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + b _08180BB6 + .pool +_08180B98: + movs r2, 0x32 + ldrsh r0, [r4, r2] + movs r1, 0xC + bl Sin + adds r2, r0, 0 + strh r2, [r4, 0x3A] + ldrh r0, [r4, 0x3C] + lsls r2, 24 + lsrs r2, 24 + movs r3, 0xF8 + lsls r3, 7 + movs r1, 0x10 + bl BlendPalette +_08180BB6: + ldrh r0, [r4, 0x32] + adds r0, 0x2 + strh r0, [r4, 0x32] + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_22 + + thumb_func_start pokemonanimfunc_23 +pokemonanimfunc_23: @ 8180BC4 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _08180BE0 + ldrb r0, [r4, 0x5] + lsrs r0, 4 + lsls r0, 4 + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + adds r0, r1 + strh r0, [r4, 0x3C] +_08180BE0: + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0x80 + ble _08180C04 + ldrh r0, [r4, 0x3C] + ldr r3, =0x000003ff + movs r1, 0x10 + movs r2, 0 + bl BlendPalette + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + b _08180C20 + .pool +_08180C04: + movs r2, 0x32 + ldrsh r0, [r4, r2] + movs r1, 0xC + bl Sin + adds r2, r0, 0 + strh r2, [r4, 0x3A] + ldrh r0, [r4, 0x3C] + lsls r2, 24 + lsrs r2, 24 + ldr r3, =0x000003ff + movs r1, 0x10 + bl BlendPalette +_08180C20: + ldrh r0, [r4, 0x32] + adds r0, 0x2 + strh r0, [r4, 0x32] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_23 + + thumb_func_start pokemonanimfunc_24 +pokemonanimfunc_24: @ 8180C30 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _08180C4C + ldrb r0, [r4, 0x5] + lsrs r0, 4 + lsls r0, 4 + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + adds r0, r1 + strh r0, [r4, 0x3C] +_08180C4C: + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0x80 + ble _08180C70 + ldrh r0, [r4, 0x3C] + ldr r3, =0x00006018 + movs r1, 0x10 + movs r2, 0 + bl BlendPalette + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + b _08180C8C + .pool +_08180C70: + movs r2, 0x32 + ldrsh r0, [r4, r2] + movs r1, 0xC + bl Sin + adds r2, r0, 0 + strh r2, [r4, 0x3A] + ldrh r0, [r4, 0x3C] + lsls r2, 24 + lsrs r2, 24 + ldr r3, =0x00006018 + movs r1, 0x10 + bl BlendPalette +_08180C8C: + ldrh r0, [r4, 0x32] + adds r0, 0x2 + strh r0, [r4, 0x32] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_24 + + thumb_func_start pokemonanimfunc_25 +pokemonanimfunc_25: @ 8180C9C + push {r4,lr} + adds r4, r0, 0 + bl sub_817F670 + ldr r0, =sub_8180CB4 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_25 + + thumb_func_start sub_8180CB4 +sub_8180CB4: @ 8180CB4 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F70C + ldrh r0, [r4, 0x24] + adds r0, 0x1 + strh r0, [r4, 0x24] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _08180CD6 + movs r0, 0x8 + strh r0, [r4, 0x24] + movs r0, 0x2 + strh r0, [r4, 0x3C] + ldr r0, =sub_8180CE8 + str r0, [r4, 0x1C] +_08180CD6: + adds r0, r4, 0 + bl sub_817F70C + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8180CB4 + + thumb_func_start sub_8180CE8 +sub_8180CE8: @ 8180CE8 + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_817F70C + ldrh r1, [r4, 0x24] + ldrh r0, [r4, 0x3C] + subs r1, r0 + strh r1, [r4, 0x24] + adds r0, 0x1 + adds r2, r0, 0 + strh r0, [r4, 0x3C] + lsls r1, 16 + cmp r1, 0 + bgt _08180D32 + lsls r0, r2, 24 + lsrs r2, r0, 24 + movs r0, 0 + strh r0, [r4, 0x3A] + ldrh r1, [r4, 0x24] + ldr r5, =sub_8180D44 + movs r3, 0x8 + negs r3, r3 +_08180D14: + subs r0, r1, r2 + lsls r0, 16 + ldrh r1, [r4, 0x3A] + adds r1, 0x1 + strh r1, [r4, 0x3A] + adds r1, r2, 0x1 + lsls r1, 24 + lsrs r2, r1, 24 + lsrs r1, r0, 16 + asrs r0, 16 + cmp r0, r3 + bgt _08180D14 + movs r0, 0x1 + strh r0, [r4, 0x38] + str r5, [r4, 0x1C] +_08180D32: + adds r0, r4, 0 + bl sub_817F70C + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8180CE8 + + thumb_func_start sub_8180D44 +sub_8180D44: @ 8180D44 + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_817F70C + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x3C] + subs r0, r1 + strh r0, [r4, 0x24] + adds r1, 0x1 + strh r1, [r4, 0x3C] + movs r0, 0x38 + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 1 + movs r2, 0x3A + ldrsh r1, [r4, r2] + bl __divsi3 + lsls r0, 24 + lsrs r5, r0, 24 + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + ldrh r2, [r4, 0x3A] + movs r3, 0x3A + ldrsh r1, [r4, r3] + cmp r0, r1 + ble _08180D84 + strh r2, [r4, 0x38] +_08180D84: + movs r2, 0x80 + lsls r2, 1 + lsls r3, r5, 8 + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_817F6D4 + movs r1, 0x24 + ldrsh r0, [r4, r1] + movs r1, 0x8 + negs r1, r1 + cmp r0, r1 + bge _08180DAE + strh r1, [r4, 0x24] + movs r0, 0x2 + strh r0, [r4, 0x36] + movs r0, 0 + strh r0, [r4, 0x34] + strh r5, [r4, 0x32] + ldr r0, =sub_8180DC0 + str r0, [r4, 0x1C] +_08180DAE: + adds r0, r4, 0 + bl sub_817F70C + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8180D44 + + thumb_func_start sub_8180DC0 +sub_8180DC0: @ 8180DC0 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F70C + ldrh r1, [r4, 0x34] + movs r2, 0x34 + ldrsh r0, [r4, r2] + cmp r0, 0xB + ble _08180E08 + ldrh r0, [r4, 0x32] + subs r0, 0x2 + strh r0, [r4, 0x32] + lsls r0, 16 + cmp r0, 0 + bge _08180DE2 + movs r0, 0 + strh r0, [r4, 0x32] +_08180DE2: + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r4, 0x32] + lsls r3, 24 + lsrs r3, 16 + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_817F6D4 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _08180E1C + ldr r0, =sub_8180E28 + str r0, [r4, 0x1C] + b _08180E1C + .pool +_08180E08: + ldrh r0, [r4, 0x36] + ldrh r2, [r4, 0x24] + adds r0, r2 + strh r0, [r4, 0x24] + movs r2, 0x36 + ldrsh r0, [r4, r2] + negs r0, r0 + strh r0, [r4, 0x36] + adds r0, r1, 0x1 + strh r0, [r4, 0x34] +_08180E1C: + adds r0, r4, 0 + bl sub_817F70C + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8180DC0 + + thumb_func_start sub_8180E28 +sub_8180E28: @ 8180E28 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F70C + ldrh r0, [r4, 0x24] + adds r0, 0x2 + strh r0, [r4, 0x24] + lsls r0, 16 + cmp r0, 0 + ble _08180E4A + movs r0, 0 + strh r0, [r4, 0x24] + adds r0, r4, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] +_08180E4A: + adds r0, r4, 0 + bl sub_817F70C + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8180E28 + + thumb_func_start pokemonanimfunc_26 +pokemonanimfunc_26: @ 8180E5C + push {r4,lr} + adds r4, r0, 0 + bl sub_817F670 + movs r0, 0 + strh r0, [r4, 0x34] + ldr r0, =sub_8180E78 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_26 + + thumb_func_start sub_8180E78 +sub_8180E78: @ 8180E78 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F70C + ldrh r0, [r4, 0x24] + adds r0, 0x1 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x26] + subs r0, 0x1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x24] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08180EA2 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + bgt _08180EA2 + movs r0, 0xA + strh r0, [r4, 0x34] +_08180EA2: + movs r1, 0x24 + ldrsh r0, [r4, r1] + cmp r0, 0x7 + ble _08180EBA + movs r1, 0 + movs r0, 0x8 + strh r0, [r4, 0x24] + ldr r0, =0x0000fff8 + strh r0, [r4, 0x26] + strh r1, [r4, 0x36] + ldr r0, =sub_8180ED0 + str r0, [r4, 0x1C] +_08180EBA: + adds r0, r4, 0 + bl sub_817F70C + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8180E78 + + thumb_func_start sub_8180ED0 +sub_8180ED0: @ 8180ED0 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F70C + movs r1, 0x36 + ldrsh r0, [r4, r1] + movs r1, 0x10 + bl Cos + subs r0, 0x8 + strh r0, [r4, 0x24] + movs r1, 0x36 + ldrsh r0, [r4, r1] + movs r1, 0x10 + bl Sin + subs r0, 0x8 + strh r0, [r4, 0x26] + movs r1, 0x36 + ldrsh r0, [r4, r1] + cmp r0, 0x3F + ble _08180F08 + movs r0, 0xA0 + strh r0, [r4, 0x32] + movs r0, 0xA + strh r0, [r4, 0x34] + ldr r0, =sub_8180F2C + str r0, [r4, 0x1C] +_08180F08: + ldrh r0, [r4, 0x36] + adds r0, 0x8 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x40 + ble _08180F1A + movs r0, 0x40 + strh r0, [r4, 0x36] +_08180F1A: + adds r0, r4, 0 + bl sub_817F70C + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8180ED0 + + thumb_func_start sub_8180F2C +sub_8180F2C: @ 8180F2C + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_817F70C + ldrh r1, [r4, 0x34] + movs r2, 0x34 + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _08180F44 + subs r0, r1, 0x1 + strh r0, [r4, 0x34] + b _08180F96 +_08180F44: + movs r1, 0x32 + ldrsh r0, [r4, r1] + movs r1, 0x5 + bl Cos + subs r0, 0x4 + movs r5, 0 + strh r0, [r4, 0x24] + movs r2, 0x32 + ldrsh r0, [r4, r2] + movs r1, 0x5 + bl Sin + negs r0, r0 + adds r0, 0x4 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + subs r0, 0x4 + strh r0, [r4, 0x32] + movs r0, 0x32 + ldrsh r3, [r4, r0] + subs r3, 0x20 + movs r2, 0x80 + lsls r2, 1 + lsls r3, 25 + lsrs r3, 16 + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_817F6D4 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0x20 + bgt _08180F96 + strh r5, [r4, 0x24] + strh r5, [r4, 0x26] + adds r0, r4, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] +_08180F96: + adds r0, r4, 0 + bl sub_817F70C + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8180F2C + + thumb_func_start pokemonanimfunc_27 +pokemonanimfunc_27: @ 8180FA8 + push {r4,lr} + adds r3, r0, 0 + ldrh r1, [r3, 0x34] + movs r2, 0x34 + ldrsh r0, [r3, r2] + cmp r0, 0 + ble _08180FBA + subs r0, r1, 0x1 + b _08180FFE +_08180FBA: + movs r2, 0 + movs r1, 0x36 + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _08180FC6 + movs r2, 0x1 +_08180FC6: + strh r2, [r3, 0x36] + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + lsls r2, 2 + ldrb r1, [r0] + movs r4, 0x5 + negs r4, r4 + adds r0, r4, 0 + ands r0, r1 + orrs r0, r2 + 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, 0x13 + ble _08180FFC + ldrb r0, [r1] + adds r1, r4, 0 + ands r1, r0 + mov r2, r12 + strb r1, [r2] + ldr r0, =sub_8184D88 + str r0, [r3, 0x1C] +_08180FFC: + movs r0, 0x2 +_08180FFE: + strh r0, [r3, 0x34] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_27 + + thumb_func_start pokemonanimfunc_28 +pokemonanimfunc_28: @ 818100C + push {r4,lr} + adds r4, r0, 0 + bl sub_817F670 + ldr r0, =sub_8181024 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_28 + + thumb_func_start sub_8181024 +sub_8181024: @ 8181024 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F70C + ldrh r0, [r4, 0x24] + subs r0, 0x1 + strh r0, [r4, 0x24] + ldrh r1, [r4, 0x26] + adds r1, 0x1 + strh r1, [r4, 0x26] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x10 + negs r1, r1 + cmp r0, r1 + bgt _08181054 + ldr r0, =0x0000fff0 + strh r0, [r4, 0x24] + movs r0, 0x10 + strh r0, [r4, 0x26] + ldr r0, =sub_8181068 + str r0, [r4, 0x1C] + movs r0, 0xA0 + strh r0, [r4, 0x32] +_08181054: + adds r0, r4, 0 + bl sub_817F70C + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8181024 + + thumb_func_start sub_8181068 +sub_8181068: @ 8181068 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F70C + ldrh r0, [r4, 0x32] + subs r0, 0x4 + strh r0, [r4, 0x32] + movs r1, 0x32 + ldrsh r0, [r4, r1] + movs r1, 0x16 + bl Cos + strh r0, [r4, 0x24] + movs r1, 0x32 + ldrsh r0, [r4, r1] + movs r1, 0x16 + bl Sin + negs r0, r0 + strh r0, [r4, 0x26] + movs r0, 0x32 + ldrsh r3, [r4, r0] + subs r3, 0x20 + movs r2, 0x80 + lsls r2, 1 + lsls r3, 25 + lsrs r3, 16 + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_817F6D4 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0x20 + bgt _081810B2 + ldr r0, =sub_81810C4 + str r0, [r4, 0x1C] +_081810B2: + adds r0, r4, 0 + bl sub_817F70C + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8181068 + + thumb_func_start sub_81810C4 +sub_81810C4: @ 81810C4 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F70C + ldrh r1, [r4, 0x24] + subs r1, 0x1 + strh r1, [r4, 0x24] + ldrh r0, [r4, 0x26] + adds r0, 0x1 + strh r0, [r4, 0x26] + lsls r1, 16 + cmp r1, 0 + bgt _081810E8 + adds r0, r4, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] +_081810E8: + adds r0, r4, 0 + bl sub_817F70C + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81810C4 + + thumb_func_start pokemonanimfunc_29 +pokemonanimfunc_29: @ 81810F8 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F670 + ldr r0, =sub_8181110 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_29 + + thumb_func_start sub_8181110 +sub_8181110: @ 8181110 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F70C + ldrh r1, [r4, 0x24] + adds r1, 0x1 + strh r1, [r4, 0x24] + ldrh r0, [r4, 0x26] + subs r0, 0x1 + strh r0, [r4, 0x26] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0xF + ble _08181134 + movs r0, 0 + strh r0, [r4, 0x32] + ldr r0, =sub_8181144 + str r0, [r4, 0x1C] +_08181134: + adds r0, r4, 0 + bl sub_817F70C + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8181110 + + thumb_func_start sub_8181144 +sub_8181144: @ 8181144 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F70C + ldrh r0, [r4, 0x32] + adds r0, 0x10 + strh r0, [r4, 0x32] + ldrh r2, [r4, 0x24] + movs r0, 0x24 + ldrsh r1, [r4, r0] + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + bgt _0818117C + ldr r0, =0x0000fff0 + strh r0, [r4, 0x24] + movs r0, 0x10 + strh r0, [r4, 0x26] + movs r0, 0 + strh r0, [r4, 0x32] + ldr r0, =sub_81811A4 + str r0, [r4, 0x1C] + b _08181186 + .pool +_0818117C: + subs r0, r2, 0x2 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x26] + adds r0, 0x2 + strh r0, [r4, 0x26] +_08181186: + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r4, 0x32] + lsls r3, 24 + lsrs r3, 16 + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_817F6D4 + adds r0, r4, 0 + bl sub_817F70C + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8181144 + + thumb_func_start sub_81811A4 +sub_81811A4: @ 81811A4 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F70C + ldrh r1, [r4, 0x24] + adds r1, 0x1 + movs r2, 0 + strh r1, [r4, 0x24] + ldrh r0, [r4, 0x26] + subs r0, 0x1 + strh r0, [r4, 0x26] + lsls r1, 16 + cmp r1, 0 + blt _081811CE + strh r2, [r4, 0x24] + strh r2, [r4, 0x26] + adds r0, r4, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] +_081811CE: + adds r0, r4, 0 + bl sub_817F70C + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81811A4 + + thumb_func_start pokemonanimfunc_2A +pokemonanimfunc_2A: @ 81811E0 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F758 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2E] + ldr r2, =gUnknown_03001240 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x2 + strh r0, [r1, 0x2] + adds r0, r4, 0 + bl sub_8181214 + ldr r0, =sub_8181214 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_2A + + thumb_func_start sub_8181214 +sub_8181214: @ 8181214 + push {r4-r6,lr} + adds r4, r0, 0 + ldr r6, =gUnknown_03001240 + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r6 + ldrh r0, [r1] + cmp r0, 0 + beq _08181238 + subs r0, 0x1 + strh r0, [r1] + b _0818134A + .pool +_08181238: + adds r0, r4, 0 + bl sub_817F70C + ldrh r0, [r4, 0x32] + movs r1, 0x32 + ldrsh r5, [r4, r1] + cmp r5, 0 + bne _08181270 + adds r0, 0x1 + strh r0, [r4, 0x32] + adds r0, r4, 0 + bl sub_817F670 + movs r2, 0x2E + ldrsh r1, [r4, r2] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrh r0, [r0, 0x2] + strh r0, [r4, 0x3C] + ldr r0, =0x0000ffff + strh r0, [r4, 0x34] + movs r0, 0x1 + negs r0, r0 + strh r0, [r4, 0x36] + strh r5, [r4, 0x38] + strh r5, [r4, 0x3A] +_08181270: + movs r3, 0x3C + ldrsh r1, [r4, r3] + movs r6, 0x34 + ldrsh r0, [r4, r6] + lsls r0, 1 + muls r1, r0 + ldrh r0, [r4, 0x24] + adds r1, r0 + strh r1, [r4, 0x24] + ldrh r2, [r4, 0x3C] + ldrh r0, [r4, 0x36] + adds r3, r0, 0 + muls r3, r2 + adds r0, r3, 0 + ldrh r6, [r4, 0x26] + adds r2, r0, r6 + strh r2, [r4, 0x26] + ldrh r0, [r4, 0x3A] + adds r0, 0x8 + strh r0, [r4, 0x3A] + adds r1, 0xF + lsls r1, 16 + lsrs r1, 16 + cmp r1, 0x1E + bls _081812B8 + movs r1, 0x34 + ldrsh r0, [r4, r1] + lsls r0, 4 + strh r0, [r4, 0x24] + movs r2, 0x34 + ldrsh r0, [r4, r2] + negs r0, r0 + strh r0, [r4, 0x34] + b _081812D4 + .pool +_081812B8: + adds r0, r2, 0 + adds r0, 0xF + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1E + bls _081812DA + movs r3, 0x36 + ldrsh r0, [r4, r3] + lsls r0, 4 + strh r0, [r4, 0x26] + movs r6, 0x36 + ldrsh r0, [r4, r6] + negs r0, r0 + strh r0, [r4, 0x36] +_081812D4: + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] +_081812DA: + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0x5 + ble _08181332 + movs r2, 0x24 + ldrsh r0, [r4, r2] + cmp r0, 0 + bgt _08181332 + movs r3, 0 + strh r3, [r4, 0x24] + strh r3, [r4, 0x26] + ldr r5, =gUnknown_03001240 + movs r6, 0x2E + ldrsh r0, [r4, r6] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrh r2, [r1, 0x4] + movs r6, 0x4 + ldrsh r0, [r1, r6] + cmp r0, 0x1 + ble _08181328 + subs r0, r2, 0x1 + strh r0, [r1, 0x4] + strh r3, [r4, 0x38] + strh r3, [r4, 0x3A] + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0xA + strh r1, [r0] + b _08181332 + .pool +_08181328: + adds r0, r4, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] +_08181332: + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r4, 0x3A] + lsls r3, 24 + lsrs r3, 16 + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_817F6D4 + adds r0, r4, 0 + bl sub_817F70C +_0818134A: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8181214 + + thumb_func_start pokemonanimfunc_2B +pokemonanimfunc_2B: @ 8181354 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F670 + movs r0, 0 + strh r0, [r4, 0x3A] + strh r0, [r4, 0x3C] + ldr r0, =sub_8181370 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_2B + + thumb_func_start sub_8181370 +sub_8181370: @ 8181370 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F70C + ldrh r0, [r4, 0x3A] + adds r0, 0x4 + strh r0, [r4, 0x3A] + movs r1, 0x3A + ldrsh r0, [r4, r1] + movs r1, 0x10 + bl Sin + negs r0, r0 + strh r0, [r4, 0x24] + movs r1, 0x3A + ldrsh r0, [r4, r1] + lsls r0, 1 + movs r1, 0xFF + ands r0, r1 + movs r1, 0x8 + bl Sin + negs r0, r0 + strh r0, [r4, 0x26] + movs r1, 0x3A + ldrsh r0, [r4, r1] + cmp r0, 0xC0 + ble _081813BA + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _081813BA + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 + adds r1, r2, 0 + b _081813D2 +_081813BA: + movs r1, 0x3A + ldrsh r0, [r4, r1] + cmp r0, 0x40 + ble _081813DE + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _081813DE + ldr r1, =0xffffff00 + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 +_081813D2: + movs r3, 0 + bl sub_817F6D4 + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] +_081813DE: + movs r1, 0x3A + ldrsh r0, [r4, r1] + cmp r0, 0xFF + ble _08181404 + movs r0, 0 + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + adds r0, r4, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] +_08181404: + adds r0, r4, 0 + bl sub_817F70C + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8181370 + + thumb_func_start pokemonanimfunc_2C +pokemonanimfunc_2C: @ 8181418 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + movs r2, 0 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _08181442 + ldrb r0, [r4, 0x5] + lsrs r0, 4 + lsls r0, 4 + movs r3, 0x80 + lsls r3, 1 + adds r1, r3, 0 + adds r0, r1 + strh r0, [r4, 0x3C] + strh r2, [r4, 0x3A] + strh r2, [r4, 0x38] + strh r2, [r4, 0x36] +_08181442: + ldr r1, =gUnknown_0860AA64 + movs r2, 0x3A + ldrsh r0, [r4, r2] + lsls r2, r0, 1 + adds r0, r1, 0x1 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, 0xFF + bne _08181464 + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + b _081814CE + .pool +_08181464: + movs r3, 0x36 + ldrsh r0, [r4, r3] + cmp r0, 0x1 + bne _0818149A + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08181488 + ldrh r0, [r4, 0x3C] + ldr r3, =0x000003ff + movs r1, 0x10 + movs r2, 0x10 + bl BlendPalette + b _08181494 + .pool +_08181488: + ldrh r0, [r4, 0x3C] + ldr r3, =0x000003ff + movs r1, 0x10 + movs r2, 0 + bl BlendPalette +_08181494: + movs r0, 0 + strh r0, [r4, 0x36] + ldr r1, =gUnknown_0860AA64 +_0818149A: + movs r2, 0x3A + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r1, 0x1 + adds r0, r1 + ldrb r1, [r0] + movs r3, 0x38 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _081814C8 + movs r1, 0 + movs r0, 0x1 + strh r0, [r4, 0x36] + strh r1, [r4, 0x38] + ldrh r0, [r4, 0x3A] + adds r0, 0x1 + strh r0, [r4, 0x3A] + b _081814CE + .pool +_081814C8: + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] +_081814CE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_2C + + thumb_func_start sub_81814D4 +sub_81814D4: @ 81814D4 + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x32 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _081814E6 + adds r0, r6, 0 + bl sub_817F670 +_081814E6: + adds r0, r6, 0 + bl sub_817F70C + ldr r4, =gUnknown_03001240 + movs r3, 0x2E + ldrsh r1, [r6, r3] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r2, r0, r4 + movs r0, 0x32 + ldrsh r1, [r6, r0] + movs r3, 0x8 + ldrsh r0, [r2, r3] + cmp r1, r0 + ble _0818154C + movs r2, 0x80 + lsls r2, 1 + adds r0, r6, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + movs r3, 0 + strh r3, [r6, 0x24] + movs r0, 0x2E + ldrsh r1, [r6, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r4 + ldrh r2, [r1, 0x4] + movs r4, 0x4 + ldrsh r0, [r1, r4] + cmp r0, 0x1 + ble _0818153C + subs r0, r2, 0x1 + strh r0, [r1, 0x4] + strh r3, [r6, 0x32] + b _08181588 + .pool +_0818153C: + adds r0, r6, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r6, 0x1C] + b _08181588 + .pool +_0818154C: + movs r1, 0x32 + ldrsh r0, [r6, r1] + lsls r0, 8 + movs r3, 0x8 + ldrsh r1, [r2, r3] + bl __divsi3 + adds r4, r0, 0 + lsls r4, 16 + asrs r4, 16 + adds r0, r4, 0 + movs r1, 0xA + bl Sin + negs r0, r0 + strh r0, [r6, 0x24] + movs r5, 0x80 + lsls r5, 1 + ldr r1, =0x00000ccc + adds r0, r4, 0 + bl Sin + adds r3, r0, 0 + lsls r3, 16 + lsrs r3, 16 + adds r0, r6, 0 + adds r1, r5, 0 + adds r2, r5, 0 + bl sub_817F6D4 +_08181588: + ldrh r0, [r6, 0x32] + adds r0, 0x1 + strh r0, [r6, 0x32] + adds r0, r6, 0 + bl sub_817F70C + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81814D4 + + thumb_func_start pokemonanimfunc_2D +pokemonanimfunc_2D: @ 81815A0 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F758 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2E] + ldr r2, =gUnknown_03001240 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x32 + strh r0, [r1, 0x8] + adds r0, r4, 0 + bl sub_81814D4 + ldr r0, =sub_81814D4 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_2D + + thumb_func_start sub_81815D4 +sub_81815D4: @ 81815D4 + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x32 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _081815E6 + adds r0, r6, 0 + bl sub_817F670 +_081815E6: + adds r0, r6, 0 + bl sub_817F70C + ldr r4, =gUnknown_03001240 + movs r3, 0x2E + ldrsh r1, [r6, r3] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r2, r0, r4 + movs r0, 0x32 + ldrsh r1, [r6, r0] + movs r3, 0x8 + ldrsh r0, [r2, r3] + cmp r1, r0 + ble _0818164C + movs r2, 0x80 + lsls r2, 1 + adds r0, r6, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + movs r3, 0 + strh r3, [r6, 0x24] + movs r0, 0x2E + ldrsh r1, [r6, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r4 + ldrh r2, [r1, 0x4] + movs r4, 0x4 + ldrsh r0, [r1, r4] + cmp r0, 0x1 + ble _0818163C + subs r0, r2, 0x1 + strh r0, [r1, 0x4] + strh r3, [r6, 0x32] + b _0818168A + .pool +_0818163C: + adds r0, r6, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r6, 0x1C] + b _0818168A + .pool +_0818164C: + movs r1, 0x32 + ldrsh r0, [r6, r1] + lsls r0, 8 + movs r3, 0x8 + ldrsh r1, [r2, r3] + bl __divsi3 + adds r4, r0, 0 + lsls r4, 16 + asrs r4, 16 + adds r0, r4, 0 + movs r1, 0xA + bl Sin + negs r0, r0 + strh r0, [r6, 0x24] + movs r5, 0x80 + lsls r5, 1 + ldr r1, =0x00000ccc + adds r0, r4, 0 + bl Sin + adds r3, r0, 0 + negs r3, r3 + lsls r3, 16 + lsrs r3, 16 + adds r0, r6, 0 + adds r1, r5, 0 + adds r2, r5, 0 + bl sub_817F6D4 +_0818168A: + ldrh r0, [r6, 0x32] + adds r0, 0x1 + strh r0, [r6, 0x32] + adds r0, r6, 0 + bl sub_817F70C + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81815D4 + + thumb_func_start pokemonanimfunc_2E +pokemonanimfunc_2E: @ 81816A0 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F758 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2E] + ldr r2, =gUnknown_03001240 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x32 + strh r0, [r1, 0x8] + adds r0, r4, 0 + bl sub_81815D4 + ldr r0, =sub_81815D4 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_2E + + thumb_func_start pokemonanimfunc_2F +pokemonanimfunc_2F: @ 81816D4 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F670 + adds r0, r4, 0 + adds r0, 0x28 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 1 + movs r1, 0xA + bl __divsi3 + negs r0, r0 + strh r0, [r4, 0x3A] + movs r0, 0x80 + strh r0, [r4, 0x3C] + ldr r0, =sub_8181708 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_2F + + thumb_func_start sub_8181708 +sub_8181708: @ 8181708 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F70C + ldrh r0, [r4, 0x3C] + subs r0, 0x1 + strh r0, [r4, 0x3C] + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r2, 0x3A + ldrsh r1, [r4, r2] + bl Cos + ldrh r1, [r4, 0x3A] + adds r0, r1 + strh r0, [r4, 0x24] + movs r2, 0x3C + ldrsh r0, [r4, r2] + movs r2, 0x3A + ldrsh r1, [r4, r2] + bl Sin + negs r0, r0 + strh r0, [r4, 0x26] + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r4, 0x3C] + subs r3, 0x80 + lsls r3, 24 + lsrs r3, 16 + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_817F6D4 + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0x78 + bgt _08181760 + movs r0, 0x78 + strh r0, [r4, 0x3C] + movs r0, 0 + strh r0, [r4, 0x34] + ldr r0, =sub_8181770 + str r0, [r4, 0x1C] +_08181760: + adds r0, r4, 0 + bl sub_817F70C + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8181708 + + thumb_func_start sub_8181770 +sub_8181770: @ 8181770 + push {lr} + adds r1, r0, 0 + movs r2, 0x34 + ldrsh r0, [r1, r2] + cmp r0, 0x14 + bne _08181784 + ldr r0, =sub_8181794 + str r0, [r1, 0x1C] + movs r0, 0 + strh r0, [r1, 0x34] +_08181784: + ldrh r0, [r1, 0x34] + adds r0, 0x1 + strh r0, [r1, 0x34] + pop {r0} + bx r0 + .pool + thumb_func_end sub_8181770 + + thumb_func_start sub_8181794 +sub_8181794: @ 8181794 + push {r4-r6,lr} + adds r4, r0, 0 + bl sub_817F70C + ldrh r0, [r4, 0x3C] + adds r0, 0x2 + movs r6, 0 + strh r0, [r4, 0x3C] + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r2, 0x3A + ldrsh r1, [r4, r2] + bl Cos + ldrh r1, [r4, 0x3A] + adds r0, r1 + strh r0, [r4, 0x24] + movs r2, 0x3C + ldrsh r0, [r4, r2] + movs r2, 0x3A + ldrsh r1, [r4, r2] + bl Sin + negs r0, r0 + strh r0, [r4, 0x26] + movs r5, 0x80 + lsls r5, 1 + ldrh r3, [r4, 0x3C] + subs r3, 0x80 + lsls r3, 24 + lsrs r3, 16 + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r5, 0 + bl sub_817F6D4 + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0x7F + ble _08181800 + strh r6, [r4, 0x24] + strh r6, [r4, 0x26] + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r5, 0 + movs r3, 0 + bl sub_817F6D4 + strh r6, [r4, 0x32] + adds r0, r4, 0 + bl sub_817F77C + ldr r0, =pokemonanimfunc_10 + str r0, [r4, 0x1C] +_08181800: + adds r0, r4, 0 + bl sub_817F70C + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8181794 + + thumb_func_start sub_8181810 +sub_8181810: @ 8181810 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r4, =gUnknown_03001240 + movs r0, 0x2E + ldrsh r1, [r5, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r4 + ldrh r0, [r1] + adds r6, r0, 0 + cmp r6, 0 + beq _08181834 + subs r0, 0x1 + strh r0, [r1] + b _08181950 + .pool +_08181834: + movs r1, 0x32 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _0818184A + adds r0, r5, 0 + bl sub_817F670 + strh r6, [r5, 0x36] + strh r6, [r5, 0x38] + movs r0, 0x1 + strh r0, [r5, 0x32] +_0818184A: + movs r3, 0x38 + ldrsh r0, [r5, r3] + cmp r0, 0 + bne _081818A2 + movs r1, 0x36 + ldrsh r0, [r5, r1] + movs r4, 0x80 + lsls r4, 1 + adds r1, r4, 0 + bl Sin + strh r0, [r5, 0x3C] + movs r3, 0x36 + ldrsh r0, [r5, r3] + movs r1, 0x10 + bl Sin + strh r0, [r5, 0x26] + movs r1, 0x36 + ldrsh r0, [r5, r1] + movs r1, 0x20 + bl Sin + adds r1, r0, 0 + strh r1, [r5, 0x3A] + subs r1, r4, r1 + lsls r1, 16 + asrs r1, 16 + ldrh r2, [r5, 0x3C] + adds r2, r4 + lsls r2, 16 + asrs r2, 16 + adds r0, r5, 0 + movs r3, 0 + bl sub_817F6D4 + movs r3, 0x36 + ldrsh r0, [r5, r3] + cmp r0, 0x80 + bne _0818193A + strh r6, [r5, 0x36] + movs r0, 0x1 + strh r0, [r5, 0x38] + b _0818193A +_081818A2: + cmp r0, 0x1 + bne _0818193A + movs r1, 0x36 + ldrsh r0, [r5, r1] + movs r1, 0x20 + bl Sin + strh r0, [r5, 0x3C] + movs r3, 0x36 + ldrsh r0, [r5, r3] + movs r1, 0x8 + bl Sin + negs r0, r0 + strh r0, [r5, 0x26] + movs r1, 0x36 + ldrsh r0, [r5, r1] + movs r1, 0x80 + bl Sin + adds r1, r0, 0 + strh r1, [r5, 0x3A] + movs r3, 0x80 + lsls r3, 1 + adds r2, r3, 0 + adds r1, r2 + lsls r1, 16 + asrs r1, 16 + ldrh r0, [r5, 0x3C] + subs r2, r0 + lsls r2, 16 + asrs r2, 16 + adds r0, r5, 0 + movs r3, 0 + bl sub_817F6D4 + movs r1, 0x36 + ldrsh r0, [r5, r1] + cmp r0, 0x80 + bne _0818193A + movs r3, 0x2E + ldrsh r0, [r5, r3] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrh r2, [r1, 0x4] + movs r3, 0x4 + ldrsh r0, [r1, r3] + cmp r0, 0x1 + ble _08181922 + subs r0, r2, 0x1 + strh r0, [r1, 0x4] + movs r0, 0x2E + ldrsh r1, [r5, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0xA + strh r1, [r0] + strh r6, [r5, 0x36] + strh r6, [r5, 0x38] + b _0818193A +_08181922: + movs r2, 0x80 + lsls r2, 1 + adds r0, r5, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + adds r0, r5, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r5, 0x1C] +_0818193A: + ldr r2, =gUnknown_03001240 + movs r3, 0x2E + ldrsh r1, [r5, r3] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x6] + ldrh r1, [r5, 0x36] + adds r0, r1 + strh r0, [r5, 0x36] +_08181950: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8181810 + + thumb_func_start pokemonanimfunc_30 +pokemonanimfunc_30: @ 8181960 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F758 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2E] + ldr r2, =gUnknown_03001240 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x4 + strh r0, [r1, 0x6] + adds r0, r4, 0 + bl sub_8181810 + ldr r0, =sub_8181810 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_30 + + thumb_func_start pokemonanimfunc_31 +pokemonanimfunc_31: @ 8181994 + push {r4,r5,lr} + adds r5, r0, 0 + movs r0, 0x32 + ldrsh r4, [r5, r0] + adds r0, r5, 0 + bl sub_817F70C + movs r0, 0x80 + lsls r0, 2 + cmp r4, r0 + ble _081819B8 + ldr r0, =sub_8184D88 + str r0, [r5, 0x1C] + movs r0, 0 + strh r0, [r5, 0x24] + b _08181A62 + .pool +_081819B8: + movs r1, 0x32 + ldrsh r0, [r5, r1] + cmp r0, 0 + bge _081819C2 + adds r0, 0x7F +_081819C2: + asrs r0, 7 + cmp r0, 0x1 + beq _081819F8 + cmp r0, 0x1 + bgt _081819D2 + cmp r0, 0 + beq _081819DC + b _08181A48 +_081819D2: + cmp r0, 0x2 + beq _08181A12 + cmp r0, 0x3 + beq _08181A2A + b _08181A48 +_081819DC: + adds r0, r4, 0 + cmp r4, 0 + bge _081819E4 + adds r0, 0x7F +_081819E4: + asrs r0, 7 + lsls r0, 7 + subs r0, r4, r0 + lsls r0, 3 + negs r0, r0 + cmp r0, 0 + bge _081819F4 + adds r0, 0x7F +_081819F4: + asrs r0, 7 + b _08181A46 +_081819F8: + adds r0, r4, 0 + cmp r4, 0 + bge _08181A00 + adds r0, 0x7F +_08181A00: + asrs r0, 7 + lsls r0, 7 + subs r0, r4, r0 + cmp r0, 0 + bge _08181A0C + adds r0, 0xF +_08181A0C: + asrs r0, 4 + subs r0, 0x8 + b _08181A46 +_08181A12: + adds r0, r4, 0 + cmp r4, 0 + bge _08181A1A + adds r0, 0x7F +_08181A1A: + asrs r0, 7 + lsls r0, 7 + subs r0, r4, r0 + cmp r0, 0 + bge _08181A26 + adds r0, 0xF +_08181A26: + asrs r0, 4 + b _08181A46 +_08181A2A: + adds r0, r4, 0 + cmp r4, 0 + bge _08181A32 + adds r0, 0x7F +_08181A32: + asrs r0, 7 + lsls r0, 7 + subs r0, r4, r0 + lsls r0, 3 + negs r0, r0 + cmp r0, 0 + bge _08181A42 + adds r0, 0x7F +_08181A42: + asrs r0, 7 + adds r0, 0x8 +_08181A46: + strh r0, [r5, 0x24] +_08181A48: + adds r0, r4, 0 + cmp r4, 0 + bge _08181A50 + adds r0, 0x7F +_08181A50: + asrs r0, 7 + lsls r0, 7 + subs r0, r4, r0 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x8 + bl Sin + negs r0, r0 +_08181A62: + strh r0, [r5, 0x26] + ldrh r0, [r5, 0x32] + adds r0, 0xC + strh r0, [r5, 0x32] + adds r0, r5, 0 + bl sub_817F70C + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_31 + + thumb_func_start pokemonanimfunc_32 +pokemonanimfunc_32: @ 8181A78 + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_817F758 + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + strh r0, [r4, 0x2E] + ldr r2, =gUnknown_03001240 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldr r0, =0x0000ffff + strh r0, [r1, 0x8] + adds r0, r4, 0 + bl sub_817F670 + strh r5, [r4, 0x34] + adds r0, r4, 0 + bl sub_8181ABC + ldr r0, =sub_8181ABC + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_32 + + thumb_func_start sub_8181ABC +sub_8181ABC: @ 8181ABC + push {r4-r6,lr} + adds r4, r0, 0 + ldr r6, =gUnknown_03001240 + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r6 + ldrh r0, [r1] + adds r5, r0, 0 + cmp r5, 0 + beq _08181AE0 + subs r0, 0x1 + strh r0, [r1] + b _08181B44 + .pool +_08181AE0: + adds r0, r4, 0 + bl sub_817F70C + movs r1, 0x32 + ldrsh r2, [r4, r1] + adds r0, r2, 0 + cmp r0, 0x80 + ble _08181AFC + strh r5, [r4, 0x32] + ldr r0, =sub_8181B4C + str r0, [r4, 0x1C] + b _08181B3E + .pool +_08181AFC: + movs r1, 0x2E + ldrsh r0, [r4, r1] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + movs r3, 0x8 + ldrsh r0, [r1, r3] + lsls r3, r0, 3 + adds r0, r2, 0 + cmp r2, 0 + bge _08181B16 + adds r0, 0x7F +_08181B16: + asrs r0, 7 + lsls r0, 7 + subs r1, r2, r0 + adds r0, r3, 0 + muls r0, r1 + cmp r0, 0 + bge _08181B26 + adds r0, 0x7F +_08181B26: + asrs r0, 7 + strh r0, [r4, 0x24] + lsls r0, r1, 16 + asrs r0, 16 + movs r1, 0x8 + bl Sin + negs r0, r0 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + adds r0, 0xC + strh r0, [r4, 0x32] +_08181B3E: + adds r0, r4, 0 + bl sub_817F70C +_08181B44: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8181ABC + + thumb_func_start sub_8181B4C +sub_8181B4C: @ 8181B4C + push {r4-r6,lr} + adds r4, r0, 0 + bl sub_817F70C + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0x30 + ble _08181B7C + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + movs r0, 0 + strh r0, [r4, 0x26] + strh r0, [r4, 0x32] + ldr r0, =sub_8181C2C + str r0, [r4, 0x1C] + b _08181C1A + .pool +_08181B7C: + movs r2, 0x36 + ldrsh r0, [r4, r2] + movs r1, 0x40 + bl Sin + movs r1, 0x80 + lsls r1, 1 + adds r6, r1, 0 + adds r0, r6 + lsls r0, 16 + lsrs r3, r0, 16 + ldrh r0, [r4, 0x32] + subs r0, 0x10 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xF + bhi _08181BBA + ldrh r0, [r4, 0x34] + adds r0, 0x8 + strh r0, [r4, 0x34] + ldr r2, =gUnknown_03001240 + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0x24] + ldrh r0, [r0, 0x8] + subs r1, r0 + strh r1, [r4, 0x24] +_08181BBA: + movs r5, 0 + lsls r1, r3, 16 + asrs r2, r1, 16 + lsls r0, r6, 16 + asrs r0, 16 + adds r6, r1, 0 + cmp r2, r0 + ble _08181BD6 + subs r0, r2 + cmp r0, 0 + bge _08181BD2 + adds r0, 0x7 +_08181BD2: + lsls r0, 13 + lsrs r5, r0, 16 +_08181BD6: + movs r1, 0x34 + ldrsh r0, [r4, r1] + movs r1, 0x14 + bl Sin + negs r0, r0 + lsls r1, r5, 16 + asrs r1, 16 + subs r0, r1 + strh r0, [r4, 0x26] + movs r2, 0x36 + ldrsh r0, [r4, r2] + movs r1, 0x20 + bl Sin + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + subs r1, r0 + lsls r1, 16 + asrs r1, 16 + asrs r2, r6, 16 + adds r0, r4, 0 + movs r3, 0 + bl sub_817F6D4 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x36] + adds r0, 0x8 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x36] +_08181C1A: + adds r0, r4, 0 + bl sub_817F70C + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8181B4C + + thumb_func_start sub_8181C2C +sub_8181C2C: @ 8181C2C + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_817F70C + movs r0, 0x32 + ldrsh r3, [r4, r0] + cmp r3, 0x80 + ble _08181C90 + ldr r3, =gUnknown_03001240 + movs r1, 0x2E + ldrsh r0, [r4, r1] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrh r2, [r1, 0x4] + movs r5, 0x4 + ldrsh r0, [r1, r5] + cmp r0, 0x1 + ble _08181C7C + subs r0, r2, 0x1 + movs r2, 0 + strh r0, [r1, 0x4] + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0xA + strh r1, [r0] + strh r2, [r4, 0x34] + strh r2, [r4, 0x32] + strh r2, [r4, 0x36] + ldr r0, =sub_8181ABC + b _08181C84 + .pool +_08181C7C: + adds r0, r4, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 +_08181C84: + str r0, [r4, 0x1C] + movs r0, 0 + strh r0, [r4, 0x24] + b _08181CD0 + .pool +_08181C90: + ldr r2, =gUnknown_03001240 + movs r5, 0x2E + ldrsh r1, [r4, r5] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x8 + ldrsh r5, [r0, r1] + lsls r1, r5, 3 + adds r0, r3, 0 + cmp r3, 0 + bge _08181CAC + adds r0, 0x7F +_08181CAC: + asrs r0, 7 + lsls r0, 7 + subs r2, r3, r0 + adds r0, r1, 0 + muls r0, r2 + cmp r0, 0 + bge _08181CBC + adds r0, 0x7F +_08181CBC: + asrs r0, 7 + lsls r1, r5, 3 + subs r0, r1 + strh r0, [r4, 0x24] + lsls r0, r2, 16 + asrs r0, 16 + movs r1, 0x8 + bl Sin + negs r0, r0 +_08181CD0: + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + adds r0, 0xC + strh r0, [r4, 0x32] + adds r0, r4, 0 + bl sub_817F70C + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8181C2C + + thumb_func_start sub_8181CE8 +sub_8181CE8: @ 8181CE8 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _08181D00 + adds r0, r4, 0 + bl sub_817F670 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] +_08181D00: + adds r0, r4, 0 + bl sub_817F70C + movs r3, 0x3C + ldrsh r0, [r4, r3] + cmp r0, 0xFE + ble _08181D60 + movs r5, 0 + strh r5, [r4, 0x24] + strh r5, [r4, 0x26] + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + ldr r2, =gUnknown_03001240 + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r2 + ldrh r2, [r1, 0x4] + movs r3, 0x4 + ldrsh r0, [r1, r3] + cmp r0, 0x1 + ble _08181D48 + subs r0, r2, 0x1 + strh r0, [r1, 0x4] + strh r5, [r4, 0x32] + strh r5, [r4, 0x3C] + b _08181D52 + .pool +_08181D48: + adds r0, r4, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] +_08181D52: + adds r0, r4, 0 + bl sub_817F70C + b _08181DA6 + .pool +_08181D60: + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r1, 0x10 + bl Sin + negs r0, r0 + strh r0, [r4, 0x24] + movs r3, 0x3C + ldrsh r0, [r4, r3] + movs r1, 0x20 + bl Sin + adds r3, r0, 0 + movs r2, 0x80 + lsls r2, 1 + lsls r3, 24 + lsrs r3, 16 + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_817F6D4 + ldr r2, =gUnknown_03001240 + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x6] + ldrh r1, [r4, 0x3C] + adds r0, r1 + strh r0, [r4, 0x3C] + adds r0, r4, 0 + bl sub_817F70C +_08181DA6: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8181CE8 + + thumb_func_start pokemonanimfunc_33 +pokemonanimfunc_33: @ 8181DB0 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F758 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2E] + ldr r2, =gUnknown_03001240 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x4 + strh r0, [r1, 0x6] + adds r0, r4, 0 + bl sub_8181CE8 + ldr r0, =sub_8181CE8 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_33 + + thumb_func_start pokemonanimfunc_34 +pokemonanimfunc_34: @ 8181DE4 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _08181DFC + adds r0, r4, 0 + bl sub_817F670 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] +_08181DFC: + adds r0, r4, 0 + bl sub_817F70C + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0xFE + ble _08181E34 + movs r0, 0 + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + adds r0, r4, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + adds r0, r4, 0 + bl sub_817F70C + b _08181E8A + .pool +_08181E34: + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r1, 0x10 + bl Sin + negs r0, r0 + strh r0, [r4, 0x24] + movs r0, 0x3C + ldrsh r1, [r4, r0] + adds r0, r1, 0 + cmp r1, 0 + bge _08181E4E + adds r0, 0x7F +_08181E4E: + asrs r0, 7 + lsls r0, 7 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x10 + bl Sin + negs r0, r0 + strh r0, [r4, 0x26] + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r1, 0x20 + bl Sin + adds r3, r0, 0 + movs r2, 0x80 + lsls r2, 1 + lsls r3, 24 + lsrs r3, 16 + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_817F6D4 + ldrh r0, [r4, 0x3C] + adds r0, 0x8 + strh r0, [r4, 0x3C] + adds r0, r4, 0 + bl sub_817F70C +_08181E8A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_34 + + thumb_func_start pokemonanimfunc_35 +pokemonanimfunc_35: @ 8181E90 + push {r4,r5,lr} + adds r3, r0, 0 + movs r1, 0x32 + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _08181E9E + strh r0, [r3, 0x3C] +_08181E9E: + ldrh r4, [r3, 0x32] + movs r5, 0x32 + ldrsh r1, [r3, r5] + ldrh r2, [r3, 0x3C] + movs r5, 0x3C + ldrsh r0, [r3, r5] + cmp r1, r0 + bne _08181EC8 + movs r0, 0 + strh r0, [r3, 0x3C] + adds r0, r4, 0x1 + strh r0, [r3, 0x32] + adds r1, r3, 0 + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + adds r2, r1, 0 + b _08181ED8 +_08181EC8: + adds r0, r2, 0x1 + strh r0, [r3, 0x3C] + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_08181ED8: + movs r1, 0x32 + ldrsh r0, [r3, r1] + cmp r0, 0xA + ble _08181EEE + ldrb r0, [r2] + movs r1, 0x5 + negs r1, r1 + ands r1, r0 + strb r1, [r2] + ldr r0, =sub_8184D88 + str r0, [r3, 0x1C] +_08181EEE: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_35 + + thumb_func_start pokemonanimfunc_36 +pokemonanimfunc_36: @ 8181EF8 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F670 + movs r0, 0 + strh r0, [r4, 0x3C] + ldr r0, =sub_8181F14 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_36 + + thumb_func_start sub_8181F14 +sub_8181F14: @ 8181F14 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x3C] + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0x1F + ble _08181F34 + movs r0, 0 + movs r1, 0x20 + strh r1, [r4, 0x3C] + strh r0, [r4, 0x32] + ldr r0, =sub_8181F50 + str r0, [r4, 0x1C] + b _08181F38 + .pool +_08181F34: + adds r0, r1, 0x4 + strh r0, [r4, 0x3C] +_08181F38: + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r4, 0x3C] + lsls r3, 24 + lsrs r3, 16 + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_817F6D4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8181F14 + + thumb_func_start sub_8181F50 +sub_8181F50: @ 8181F50 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F70C + movs r0, 0x32 + ldrsh r1, [r4, r0] + movs r0, 0x80 + lsls r0, 2 + cmp r1, r0 + ble _08181F74 + ldr r0, =sub_8181FC0 + str r0, [r4, 0x1C] + movs r0, 0 + strh r0, [r4, 0x3A] + b _08181FAE + .pool +_08181F74: + movs r1, 0x32 + ldrsh r0, [r4, r1] + lsls r0, 4 + negs r0, r0 + cmp r0, 0 + bge _08181F84 + ldr r1, =0x000001ff + adds r0, r1 +_08181F84: + asrs r0, 9 + strh r0, [r4, 0x24] + movs r0, 0x32 + ldrsh r1, [r4, r0] + adds r0, r1, 0 + cmp r1, 0 + bge _08181F94 + adds r0, 0x7F +_08181F94: + asrs r0, 7 + lsls r0, 7 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x4 + bl Sin + negs r0, r0 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + adds r0, 0xC + strh r0, [r4, 0x32] +_08181FAE: + adds r0, r4, 0 + bl sub_817F70C + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8181F50 + + thumb_func_start sub_8181FC0 +sub_8181FC0: @ 8181FC0 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F70C + ldrh r0, [r4, 0x3C] + subs r0, 0x2 + movs r1, 0 + strh r0, [r4, 0x3C] + lsls r0, 16 + cmp r0, 0 + bge _08181FEC + strh r1, [r4, 0x3C] + strh r1, [r4, 0x24] + adds r0, r4, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + b _08181FFE + .pool +_08181FEC: + movs r1, 0x3C + ldrsh r0, [r4, r1] + lsls r0, 17 + asrs r0, 16 + movs r1, 0x10 + bl Sin + negs r0, r0 + strh r0, [r4, 0x24] +_08181FFE: + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r4, 0x3C] + lsls r3, 24 + lsrs r3, 16 + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_817F6D4 + adds r0, r4, 0 + bl sub_817F70C + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8181FC0 + + thumb_func_start pokemonanimfunc_37 +pokemonanimfunc_37: @ 818201C + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _08182036 + adds r0, r4, 0 + bl sub_817F670 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + strh r5, [r4, 0x3C] +_08182036: + adds r0, r4, 0 + bl sub_817F70C + ldrh r1, [r4, 0x3C] + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0xFF + ble _08182060 + movs r0, 0 + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + strh r0, [r4, 0x3C] + adds r0, r4, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + b _081820A6 + .pool +_08182060: + adds r0, r1, 0 + adds r0, 0x10 + strh r0, [r4, 0x3C] + movs r0, 0x3C + ldrsh r1, [r4, r0] + adds r0, r1, 0 + cmp r1, 0 + bge _08182072 + adds r0, 0x7F +_08182072: + asrs r0, 7 + lsls r0, 7 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x8 + bl Sin + negs r0, r0 + strh r0, [r4, 0x24] + movs r2, 0x3C + ldrsh r1, [r4, r2] + adds r0, r1, 0 + cmp r1, 0 + bge _08182092 + adds r0, 0x7F +_08182092: + asrs r0, 7 + lsls r0, 7 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x8 + bl Sin + negs r0, r0 + strh r0, [r4, 0x26] +_081820A6: + movs r0, 0x3C + ldrsh r1, [r4, r0] + adds r0, r1, 0 + cmp r1, 0 + bge _081820B2 + adds r0, 0x7F +_081820B2: + asrs r0, 7 + lsls r0, 7 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x10 + bl Sin + adds r3, r0, 0 + movs r2, 0x80 + lsls r2, 1 + lsls r3, 24 + lsrs r3, 16 + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_817F6D4 + adds r0, r4, 0 + bl sub_817F70C + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_37 + + thumb_func_start pokemonanimfunc_38 +pokemonanimfunc_38: @ 81820E0 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F670 + movs r0, 0 + strh r0, [r4, 0x3C] + strh r0, [r4, 0x36] + ldr r0, =sub_81820FC + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_38 + + thumb_func_start sub_81820FC +sub_81820FC: @ 81820FC + push {r4,lr} + adds r4, r0, 0 + bl sub_817F70C + ldrh r1, [r4, 0x3C] + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0x18 + ble _0818212C + ldrh r0, [r4, 0x36] + adds r0, 0x1 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _0818214A + movs r0, 0 + strh r0, [r4, 0x36] + ldr r0, =sub_818216C + str r0, [r4, 0x1C] + b _0818214A + .pool +_0818212C: + adds r0, r1, 0x2 + strh r0, [r4, 0x3C] + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl Sin + strh r0, [r4, 0x24] + movs r2, 0x3C + ldrsh r0, [r4, r2] + movs r1, 0x8 + bl Sin + negs r0, r0 + strh r0, [r4, 0x26] +_0818214A: + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r4, 0x3C] + negs r3, r3 + lsls r3, 24 + lsrs r3, 16 + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_817F6D4 + adds r0, r4, 0 + bl sub_817F70C + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81820FC + + thumb_func_start sub_818216C +sub_818216C: @ 818216C + push {r4,lr} + adds r4, r0, 0 + bl sub_817F70C + ldrh r1, [r4, 0x3C] + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0x20 + ble _0818218C + movs r0, 0x1 + strh r0, [r4, 0x3A] + ldr r0, =sub_81821CC + str r0, [r4, 0x1C] + b _081821AA + .pool +_0818218C: + adds r0, r1, 0x2 + strh r0, [r4, 0x3C] + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl Sin + strh r0, [r4, 0x24] + movs r2, 0x3C + ldrsh r0, [r4, r2] + movs r1, 0x8 + bl Sin + negs r0, r0 + strh r0, [r4, 0x26] +_081821AA: + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r4, 0x3C] + negs r3, r3 + lsls r3, 24 + lsrs r3, 16 + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_817F6D4 + adds r0, r4, 0 + bl sub_817F70C + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_818216C + + thumb_func_start sub_81821CC +sub_81821CC: @ 81821CC + push {r4,lr} + adds r4, r0, 0 + bl sub_817F70C + movs r1, 0x3A + ldrsh r0, [r4, r1] + lsls r0, 2 + ldrh r1, [r4, 0x3C] + adds r0, r1 + strh r0, [r4, 0x3C] + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0x9 + ble _081821F0 + movs r0, 0x20 + strh r0, [r4, 0x3C] + ldr r0, =sub_8182248 + str r0, [r4, 0x1C] +_081821F0: + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl Sin + negs r0, r0 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3C] + subs r0, 0x1D + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x6 + bls _08182224 + movs r1, 0x3A + ldrsh r0, [r4, r1] + negs r0, r0 + strh r0, [r4, 0x3A] + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] +_08182224: + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r4, 0x3C] + negs r3, r3 + lsls r3, 24 + lsrs r3, 16 + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_817F6D4 + adds r0, r4, 0 + bl sub_817F70C + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81821CC + + thumb_func_start sub_8182248 +sub_8182248: @ 8182248 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F70C + ldrh r1, [r4, 0x3C] + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0 + bgt _08182270 + movs r0, 0 + strh r0, [r4, 0x3C] + adds r0, r4, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + b _0818228E + .pool +_08182270: + subs r0, r1, 0x2 + strh r0, [r4, 0x3C] + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl Sin + strh r0, [r4, 0x24] + movs r2, 0x3C + ldrsh r0, [r4, r2] + movs r1, 0x8 + bl Sin + negs r0, r0 + strh r0, [r4, 0x26] +_0818228E: + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r4, 0x3C] + negs r3, r3 + lsls r3, 24 + lsrs r3, 16 + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_817F6D4 + adds r0, r4, 0 + bl sub_817F70C + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8182248 + + thumb_func_start pokemonanimfunc_39 +pokemonanimfunc_39: @ 81822B0 + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_817F70C + ldrh r1, [r4, 0x32] + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r0, 0x28 + ble _081822D0 + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + movs r0, 0 + strh r0, [r4, 0x24] + b _0818235C + .pool +_081822D0: + movs r0, 0x1 + ands r0, r1 + movs r5, 0xFF + cmp r0, 0 + bne _081822DC + movs r5, 0x1 +_081822DC: + movs r0, 0x32 + ldrsh r2, [r4, r0] + adds r0, r2, 0 + cmp r2, 0 + bge _081822E8 + adds r0, r2, 0x3 +_081822E8: + asrs r0, 2 + lsls r0, 2 + subs r0, r2, r0 + lsls r0, 16 + asrs r1, r0, 16 + lsrs r0, 31 + adds r1, r0 + asrs r1, 1 + cmp r1, 0 + bne _0818232C + lsls r0, r2, 7 + movs r1, 0x28 + bl __divsi3 + adds r1, r0, 0 + cmp r1, 0 + bge _0818230C + adds r0, 0xFF +_0818230C: + asrs r0, 8 + lsls r0, 8 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x10 + bl Sin + lsls r1, r5, 24 + asrs r1, 24 + adds r2, r0, 0 + muls r2, r1 + adds r0, r2, 0 + strh r0, [r4, 0x24] + negs r0, r0 + b _0818235A +_0818232C: + lsls r0, r2, 7 + movs r1, 0x28 + bl __divsi3 + adds r1, r0, 0 + cmp r1, 0 + bge _0818233C + adds r0, 0xFF +_0818233C: + asrs r0, 8 + lsls r0, 8 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x10 + bl Sin + lsls r0, 16 + asrs r0, 16 + negs r0, r0 + lsls r1, r5, 24 + asrs r1, 24 + muls r0, r1 + strh r0, [r4, 0x24] +_0818235A: + strh r0, [r4, 0x26] +_0818235C: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + adds r0, r4, 0 + bl sub_817F70C + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_39 + + thumb_func_start pokemonanimfunc_3A +pokemonanimfunc_3A: @ 8182370 + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_817F70C + movs r0, 0x32 + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _08182392 + adds r0, r4, 0 + bl sub_817F670 + strh r5, [r4, 0x38] + strh r5, [r4, 0x3A] + strh r5, [r4, 0x3C] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] +_08182392: + ldrh r1, [r4, 0x3A] + movs r2, 0x3A + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _081823E4 + subs r0, r1, 0x1 + strh r0, [r4, 0x3A] + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0x3 + beq _08182494 + movs r2, 0x3A + ldrsh r0, [r4, r2] + lsls r0, 3 + movs r1, 0x14 + bl __divsi3 + adds r1, r0, 0 + ldrh r0, [r4, 0x3C] + lsls r1, 16 + asrs r1, 16 + subs r0, r1 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x40 + bl Sin + movs r1, 0x80 + lsls r1, 1 + adds r2, r1, 0 + lsls r0, 16 + asrs r0, 16 + subs r2, r0 + lsls r2, 16 + asrs r2, 16 + adds r0, r4, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + b _08182494 +_081823E4: + movs r2, 0x38 + ldrsh r0, [r4, r2] + cmp r0, 0x3 + bne _08182424 + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0x3F + ble _08182410 + movs r0, 0x40 + strh r0, [r4, 0x3C] + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + adds r0, r4, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] +_08182410: + movs r2, 0x3C + ldrsh r0, [r4, r2] + movs r1, 0x40 + bl Cos + lsls r0, 16 + lsrs r3, r0, 16 + b _08182474 + .pool +_08182424: + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r1, 0x40 + bl Sin + lsls r0, 16 + lsrs r3, r0, 16 + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0x3F + ble _08182448 + movs r0, 0 + movs r1, 0x3 + strh r1, [r4, 0x38] + movs r1, 0xA + strh r1, [r4, 0x3A] + strh r0, [r4, 0x3C] + b _08182474 +_08182448: + lsls r0, r3, 16 + asrs r0, 16 + cmp r0, 0x30 + ble _0818245C + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _0818245C + movs r0, 0x2 + b _0818246E +_0818245C: + lsls r0, r3, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _08182474 + movs r2, 0x38 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _08182474 + movs r0, 0x1 +_0818246E: + strh r0, [r4, 0x38] + movs r0, 0x14 + strh r0, [r4, 0x3A] +_08182474: + ldrh r0, [r4, 0x3C] + adds r0, 0x2 + strh r0, [r4, 0x3C] + movs r0, 0x80 + lsls r0, 1 + adds r2, r0, 0 + lsls r0, r3, 16 + asrs r0, 16 + subs r2, r0 + lsls r2, 16 + asrs r2, 16 + adds r0, r4, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 +_08182494: + adds r0, r4, 0 + bl sub_817F70C + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_3A + + thumb_func_start pokemonanimfunc_3B +pokemonanimfunc_3B: @ 81824A0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _081824BA + adds r0, r4, 0 + bl sub_817F670 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + strh r5, [r4, 0x3C] +_081824BA: + movs r0, 0x3C + ldrsh r1, [r4, r0] + movs r0, 0x80 + lsls r0, 2 + cmp r1, r0 + ble _081824E8 + movs r0, 0 + strh r0, [r4, 0x26] + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + adds r0, r4, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + b _08182540 + .pool +_081824E8: + movs r0, 0x3C + ldrsh r1, [r4, r0] + adds r0, r1, 0 + cmp r1, 0 + bge _081824F4 + adds r0, 0xFF +_081824F4: + asrs r0, 8 + lsls r0, 8 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x8 + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3C] + adds r0, 0x8 + strh r0, [r4, 0x3C] + movs r0, 0x3C + ldrsh r1, [r4, r0] + adds r0, r1, 0 + cmp r1, 0 + bge _08182518 + adds r0, 0x7F +_08182518: + asrs r0, 7 + lsls r0, 7 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x60 + bl Sin + adds r2, r0, 0 + movs r1, 0x80 + lsls r1, 1 + lsls r2, 16 + asrs r2, 16 + adds r2, r1 + lsls r2, 16 + asrs r2, 16 + adds r0, r4, 0 + movs r3, 0 + bl sub_817F6D4 +_08182540: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_3B + + thumb_func_start pokemonanimfunc_3C +pokemonanimfunc_3C: @ 8182548 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _08182562 + adds r0, r4, 0 + bl sub_817F670 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + strh r5, [r4, 0x3C] +_08182562: + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r5, 0x80 + lsls r5, 1 + cmp r0, r5 + ble _08182590 + movs r0, 0 + strh r0, [r4, 0x26] + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r5, 0 + movs r3, 0 + bl sub_817F6D4 + adds r0, r4, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + b _081825D4 + .pool +_08182590: + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r1, 0x10 + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3C] + adds r0, 0x4 + strh r0, [r4, 0x3C] + movs r0, 0x3C + ldrsh r1, [r4, r0] + adds r0, r1, 0 + cmp r1, 0 + bge _081825AE + adds r0, 0x3F +_081825AE: + asrs r0, 6 + lsls r0, 6 + subs r0, r1, r0 + lsls r0, 17 + asrs r0, 16 + movs r1, 0x80 + bl Sin + adds r2, r0, 0 + lsls r2, 16 + asrs r2, 16 + adds r2, r5 + lsls r2, 16 + asrs r2, 16 + adds r0, r4, 0 + adds r1, r5, 0 + movs r3, 0 + bl sub_817F6D4 +_081825D4: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_3C + + thumb_func_start pokemonanimfunc_3D +pokemonanimfunc_3D: @ 81825DC + push {r4,lr} + adds r4, r0, 0 + bl sub_817F670 + ldr r0, =sub_81825F8 + str r0, [r4, 0x1C] + movs r0, 0 + strh r0, [r4, 0x3C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_3D + + thumb_func_start sub_81825F8 +sub_81825F8: @ 81825F8 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x3C] + adds r0, 0x8 + movs r1, 0 + strh r0, [r4, 0x3C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3F + ble _0818261C + strh r1, [r4, 0x3C] + strh r1, [r4, 0x3A] + ldr r0, =sub_8182648 + str r0, [r4, 0x1C] + movs r0, 0x40 + b _08182620 + .pool +_0818261C: + movs r1, 0x3C + ldrsh r0, [r4, r1] +_08182620: + movs r1, 0x80 + bl Sin + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x80 + lsls r1, 1 + lsls r2, r0, 16 + asrs r2, 16 + adds r2, r1 + lsls r2, 16 + asrs r2, 16 + adds r0, r4, 0 + movs r3, 0 + bl sub_817F6D4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81825F8 + + thumb_func_start sub_8182648 +sub_8182648: @ 8182648 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x3C] + adds r0, 0x4 + strh r0, [r4, 0x3C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5F + ble _08182672 + movs r0, 0 + movs r1, 0x80 + bl Cos + lsls r0, 16 + lsrs r2, r0, 16 + movs r0, 0 + strh r0, [r4, 0x3C] + ldrh r0, [r4, 0x3A] + adds r0, 0x1 + strh r0, [r4, 0x3A] + b _081826C8 +_08182672: + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl Sin + movs r2, 0x3A + ldrsh r1, [r4, r2] + lsls r1, 2 + negs r1, r1 + subs r1, r0 + strh r1, [r4, 0x26] + ldrh r1, [r4, 0x3C] + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0x3F + ble _081826A4 + ldr r5, =0x0000ffff + adds r0, r1, 0 + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + b _081826A8 + .pool +_081826A4: + movs r5, 0x1 + movs r0, 0 +_081826A8: + lsls r0, 16 + asrs r0, 15 + ldrh r1, [r4, 0x3C] + adds r0, r1 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x80 + bl Cos + lsls r1, r5, 16 + asrs r1, 16 + adds r2, r1, 0 + muls r2, r0 + adds r0, r2, 0 + lsls r0, 16 + lsrs r2, r0, 16 +_081826C8: + movs r1, 0x80 + lsls r1, 1 + lsls r2, 16 + asrs r2, 16 + adds r2, r1 + lsls r2, 16 + asrs r2, 16 + adds r0, r4, 0 + movs r3, 0 + bl sub_817F6D4 + movs r1, 0x3A + ldrsh r0, [r4, r1] + cmp r0, 0x3 + bne _081826EE + movs r0, 0 + strh r0, [r4, 0x3C] + ldr r0, =sub_81826F8 + str r0, [r4, 0x1C] +_081826EE: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8182648 + + thumb_func_start sub_81826F8 +sub_81826F8: @ 81826F8 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x3C] + adds r0, 0x8 + strh r0, [r4, 0x3C] + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r1, 0x80 + bl Cos + lsls r0, 16 + lsrs r5, r0, 16 + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r1, 0xC + bl Cos + negs r0, r0 + strh r0, [r4, 0x26] + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0x3F + ble _08182742 + adds r0, r4, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + movs r0, 0 + strh r0, [r4, 0x26] + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 +_08182742: + movs r1, 0x80 + lsls r1, 1 + lsls r2, r5, 16 + asrs r2, 16 + adds r2, r1 + lsls r2, 16 + asrs r2, 16 + adds r0, r4, 0 + movs r3, 0 + bl sub_817F6D4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81826F8 + + thumb_func_start sub_8182764 +sub_8182764: @ 8182764 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x3C + ldrsh r1, [r4, r0] + movs r2, 0x38 + ldrsh r0, [r4, r2] + cmp r1, r0 + ble _08182798 + movs r0, 0 + strh r0, [r4, 0x24] + adds r0, r4, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + b _081827F4 + .pool +_08182798: + movs r0, 0x3C + ldrsh r1, [r4, r0] + adds r0, r1, 0 + cmp r1, 0 + bge _081827A4 + adds r0, 0xFF +_081827A4: + asrs r0, 8 + lsls r0, 8 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + movs r2, 0x36 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x3A] + ldrh r1, [r4, 0x3C] + adds r0, r1 + strh r0, [r4, 0x3C] + movs r2, 0x3C + ldrsh r1, [r4, r2] + adds r0, r1, 0 + cmp r1, 0 + bge _081827CC + adds r0, 0x7F +_081827CC: + asrs r0, 7 + lsls r0, 7 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x60 + bl Sin + adds r1, r0, 0 + lsls r1, 16 + movs r0, 0x80 + lsls r0, 17 + adds r1, r0 + asrs r1, 16 + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 + movs r3, 0 + bl sub_817F6D4 +_081827F4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8182764 + + thumb_func_start pokemonanimfunc_3E +pokemonanimfunc_3E: @ 81827FC + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _08182822 + adds r0, r4, 0 + bl sub_817F670 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + strh r5, [r4, 0x3C] + movs r1, 0x8 + strh r1, [r4, 0x3A] + movs r0, 0x80 + lsls r0, 2 + strh r0, [r4, 0x38] + strh r1, [r4, 0x36] +_08182822: + adds r0, r4, 0 + bl sub_8182764 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_3E + + thumb_func_start sub_8182830 +sub_8182830: @ 8182830 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x3C + ldrsh r1, [r4, r0] + movs r2, 0x38 + ldrsh r0, [r4, r2] + cmp r1, r0 + ble _08182864 + movs r0, 0 + strh r0, [r4, 0x24] + adds r0, r4, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + b _081828C0 + .pool +_08182864: + movs r0, 0x3C + ldrsh r1, [r4, r0] + adds r0, r1, 0 + cmp r1, 0 + bge _08182870 + adds r0, 0xFF +_08182870: + asrs r0, 8 + lsls r0, 8 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + movs r2, 0x36 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x3A] + ldrh r1, [r4, 0x3C] + adds r0, r1 + strh r0, [r4, 0x3C] + movs r2, 0x3C + ldrsh r1, [r4, r2] + adds r0, r1, 0 + cmp r1, 0 + bge _08182898 + adds r0, 0x3F +_08182898: + asrs r0, 6 + lsls r0, 6 + subs r0, r1, r0 + lsls r0, 17 + asrs r0, 16 + movs r1, 0x80 + bl Sin + adds r1, r0, 0 + lsls r1, 16 + movs r0, 0x80 + lsls r0, 17 + adds r1, r0 + asrs r1, 16 + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 + movs r3, 0 + bl sub_817F6D4 +_081828C0: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8182830 + + thumb_func_start pokemonanimfunc_3F +pokemonanimfunc_3F: @ 81828C8 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _081828EE + adds r0, r4, 0 + bl sub_817F670 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + strh r5, [r4, 0x3C] + movs r0, 0x4 + strh r0, [r4, 0x3A] + adds r0, 0xFC + strh r0, [r4, 0x38] + movs r0, 0x10 + strh r0, [r4, 0x36] +_081828EE: + adds r0, r4, 0 + bl sub_8182830 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_3F + + thumb_func_start pokemonanimfunc_40 +pokemonanimfunc_40: @ 81828FC + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_817F70C + movs r0, 0x32 + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _0818291A + adds r0, r4, 0 + bl sub_817F670 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + strh r5, [r4, 0x3C] +_0818291A: + movs r0, 0x3C + ldrsh r1, [r4, r0] + movs r0, 0x80 + lsls r0, 2 + cmp r1, r0 + ble _08182948 + movs r0, 0 + strh r0, [r4, 0x24] + adds r0, r4, 0 + bl sub_817F77C + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + b _0818299E + .pool +_08182948: + movs r0, 0x3C + ldrsh r1, [r4, r0] + adds r0, r1, 0 + cmp r1, 0 + bge _08182954 + adds r0, 0xFF +_08182954: + asrs r0, 8 + lsls r0, 8 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x8 + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x3C] + adds r0, 0x8 + strh r0, [r4, 0x3C] + movs r0, 0x3C + ldrsh r1, [r4, r0] + adds r0, r1, 0 + cmp r1, 0 + bge _08182978 + adds r0, 0x7F +_08182978: + asrs r0, 7 + lsls r0, 7 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x60 + bl Sin + adds r2, r0, 0 + lsls r2, 16 + movs r0, 0x80 + lsls r0, 17 + adds r2, r0 + asrs r2, 16 + adds r0, r4, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 +_0818299E: + adds r0, r4, 0 + bl sub_817F70C + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_40 + + thumb_func_start pokemonanimfunc_41 +pokemonanimfunc_41: @ 81829AC + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_817F70C + movs r0, 0x32 + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _081829CA + adds r0, r4, 0 + bl sub_817F670 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + strh r5, [r4, 0x3C] +_081829CA: + movs r0, 0x3C + ldrsh r1, [r4, r0] + movs r0, 0x80 + lsls r0, 2 + cmp r1, r0 + ble _081829F8 + movs r0, 0 + strh r0, [r4, 0x24] + adds r0, r4, 0 + bl sub_817F77C + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + b _08182A5E + .pool +_081829F8: + movs r1, 0x3C + ldrsh r0, [r4, r1] + adds r1, r0, 0 + cmp r0, 0 + bge _08182A04 + adds r1, 0xFF +_08182A04: + asrs r1, 8 + lsls r1, 8 + subs r1, r0, r1 + lsls r1, 16 + asrs r0, r1, 16 + lsrs r1, 31 + adds r0, r1 + asrs r0, 1 + movs r1, 0x10 + bl Sin + negs r0, r0 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x3C] + adds r0, 0x8 + strh r0, [r4, 0x3C] + movs r1, 0x3C + ldrsh r0, [r4, r1] + adds r1, r0, 0 + cmp r0, 0 + bge _08182A30 + adds r1, 0xFF +_08182A30: + asrs r1, 8 + lsls r1, 8 + subs r1, r0, r1 + lsls r1, 16 + asrs r0, r1, 16 + lsrs r1, 31 + adds r0, r1 + asrs r0, 1 + movs r1, 0x40 + bl Sin + adds r2, r0, 0 + negs r2, r2 + lsls r2, 16 + movs r0, 0x80 + lsls r0, 17 + adds r2, r0 + asrs r2, 16 + adds r0, r4, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 +_08182A5E: + adds r0, r4, 0 + bl sub_817F70C + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_41 + + thumb_func_start pokemonanimfunc_42 +pokemonanimfunc_42: @ 8182A6C + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_817F70C + movs r0, 0x32 + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _08182A8A + adds r0, r4, 0 + bl sub_817F670 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + strh r5, [r4, 0x3C] +_08182A8A: + movs r0, 0x3C + ldrsh r1, [r4, r0] + movs r0, 0x80 + lsls r0, 2 + cmp r1, r0 + ble _08182AB8 + movs r0, 0 + strh r0, [r4, 0x24] + adds r0, r4, 0 + bl sub_817F77C + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + b _08182B16 + .pool +_08182AB8: + movs r0, 0x3C + ldrsh r1, [r4, r0] + adds r0, r1, 0 + cmp r1, 0 + bge _08182AC4 + adds r0, 0xFF +_08182AC4: + asrs r0, 8 + lsls r0, 8 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x8 + bl Sin + negs r0, r0 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x3C] + adds r0, 0x8 + strh r0, [r4, 0x3C] + movs r1, 0x3C + ldrsh r0, [r4, r1] + adds r1, r0, 0 + cmp r0, 0 + bge _08182AEA + adds r1, 0xFF +_08182AEA: + asrs r1, 8 + lsls r1, 8 + subs r1, r0, r1 + lsls r1, 16 + asrs r0, r1, 16 + lsrs r1, 31 + adds r0, r1 + asrs r0, 1 + movs r1, 0x60 + bl Sin + adds r2, r0, 0 + lsls r2, 16 + movs r0, 0x80 + lsls r0, 17 + adds r2, r0 + asrs r2, 16 + adds r0, r4, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 +_08182B16: + adds r0, r4, 0 + bl sub_817F70C + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_42 + + thumb_func_start pokemonanimfunc_43 +pokemonanimfunc_43: @ 8182B24 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F70C + movs r0, 0x32 + ldrsh r1, [r4, r0] + movs r0, 0x80 + lsls r0, 4 + cmp r1, r0 + ble _08182B48 + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + movs r0, 0 + strh r0, [r4, 0x3A] + b _08182C08 + .pool +_08182B48: + movs r1, 0x32 + ldrsh r2, [r4, r1] + adds r0, r2, 0 + cmp r2, 0 + bge _08182B56 + ldr r1, =0x000001ff + adds r0, r2, r1 +_08182B56: + asrs r3, r0, 9 + adds r1, r3, 0 + adds r0, r1, 0 + cmp r1, 0 + bge _08182B62 + adds r0, r1, 0x3 +_08182B62: + asrs r0, 2 + lsls r0, 2 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + beq _08182BA4 + cmp r0, 0x1 + bgt _08182B80 + cmp r0, 0 + beq _08182B8A + b _08182BE2 + .pool +_08182B80: + cmp r0, 0x2 + beq _08182BB8 + cmp r0, 0x3 + beq _08182BCA + b _08182BE2 +_08182B8A: + lsls r0, r3, 9 + subs r0, r2, r0 + lsls r0, 16 + asrs r0, 12 + negs r0, r0 + cmp r0, 0 + bge _08182B9C + ldr r1, =0x000001ff + adds r0, r1 +_08182B9C: + asrs r0, 9 + b _08182BE0 + .pool +_08182BA4: + lsls r0, r3, 9 + subs r0, r2, r0 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _08182BB2 + adds r0, 0x1F +_08182BB2: + asrs r0, 5 + subs r0, 0x10 + b _08182BE0 +_08182BB8: + lsls r0, r3, 9 + subs r0, r2, r0 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _08182BC6 + adds r0, 0x1F +_08182BC6: + asrs r0, 5 + b _08182BE0 +_08182BCA: + lsls r0, r3, 9 + subs r0, r2, r0 + lsls r0, 16 + asrs r0, 12 + negs r0, r0 + cmp r0, 0 + bge _08182BDC + ldr r1, =0x000001ff + adds r0, r1 +_08182BDC: + asrs r0, 9 + adds r0, 0x10 +_08182BE0: + strh r0, [r4, 0x24] +_08182BE2: + movs r0, 0x32 + ldrsh r1, [r4, r0] + adds r0, r1, 0 + cmp r1, 0 + bge _08182BEE + adds r0, 0x7F +_08182BEE: + asrs r0, 7 + lsls r0, 7 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x4 + bl Sin + negs r0, r0 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + adds r0, 0x18 + strh r0, [r4, 0x32] +_08182C08: + adds r0, r4, 0 + bl sub_817F70C + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_43 + + thumb_func_start pokemonanimfunc_44 +pokemonanimfunc_44: @ 8182C18 + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_817F70C + ldrh r1, [r4, 0x32] + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _08182C34 + strh r0, [r4, 0x3A] + movs r0, 0x40 + strh r0, [r4, 0x3C] + adds r0, r1, 0x1 + strh r0, [r4, 0x32] +_08182C34: + ldrh r0, [r4, 0x3C] + adds r1, r0, 0 + adds r1, 0x8 + movs r3, 0 + strh r1, [r4, 0x3C] + ldrh r2, [r4, 0x3A] + movs r5, 0x3A + ldrsh r0, [r4, r5] + cmp r0, 0x4 + bne _08182C52 + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x3F + ble _08182C60 + b _08182C5A +_08182C52: + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x7F + ble _08182C60 +_08182C5A: + strh r3, [r4, 0x3C] + adds r0, r2, 0x1 + strh r0, [r4, 0x3A] +_08182C60: + movs r1, 0x3A + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bhi _08182D08 + lsls r0, 2 + ldr r1, =_08182C78 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08182C78: + .4byte _08182CEC + .4byte _08182C8C + .4byte _08182CAA + .4byte _08182CCC + .4byte _08182CEC +_08182C8C: + movs r2, 0x3C + ldrsh r0, [r4, r2] + movs r1, 0x8 + bl Cos + negs r0, r0 + strh r0, [r4, 0x24] + movs r5, 0x3C + ldrsh r0, [r4, r5] + movs r1, 0x8 + bl Sin + subs r0, 0x8 + strh r0, [r4, 0x26] + b _08182D12 +_08182CAA: + ldrh r0, [r4, 0x3C] + adds r0, 0x80 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x8 + bl Sin + adds r0, 0x8 + strh r0, [r4, 0x24] + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl Cos + negs r0, r0 + strh r0, [r4, 0x26] + b _08182D12 +_08182CCC: + movs r2, 0x3C + ldrsh r0, [r4, r2] + movs r1, 0x8 + bl Cos + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x3C] + adds r0, 0x80 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x8 + bl Sin + adds r0, 0x8 + strh r0, [r4, 0x26] + b _08182D12 +_08182CEC: + movs r5, 0x3C + ldrsh r0, [r4, r5] + movs r1, 0x8 + bl Sin + subs r0, 0x8 + strh r0, [r4, 0x24] + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl Cos + strh r0, [r4, 0x26] + b _08182D12 +_08182D08: + movs r0, 0 + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] +_08182D12: + adds r0, r4, 0 + bl sub_817F70C + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_44 + + thumb_func_start pokemonanimfunc_45 +pokemonanimfunc_45: @ 8182D24 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x20 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_8180714 + ldr r0, =sub_8180714 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_45 + + thumb_func_start pokemonanimfunc_46 +pokemonanimfunc_46: @ 8182D40 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x50 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_817F8FC + ldr r0, =sub_817F8FC + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_46 + + thumb_func_start pokemonanimfunc_47 +pokemonanimfunc_47: @ 8182D5C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x50 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_817F978 + ldr r0, =sub_817F978 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_47 + + thumb_func_start pokemonanimfunc_48 +pokemonanimfunc_48: @ 8182D78 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F758 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2E] + ldr r2, =gUnknown_03001240 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x80 + lsls r0, 4 + strh r0, [r1, 0x6] + ldrh r0, [r4, 0x3A] + strh r0, [r1, 0x8] + adds r0, r4, 0 + bl sub_8180900 + ldr r0, =sub_8180900 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_48 + + thumb_func_start pokemonanimfunc_49 +pokemonanimfunc_49: @ 8182DB4 + push {lr} + movs r1, 0x1 + strh r1, [r0, 0x3A] + bl pokemonanimfunc_05 + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_49 + + thumb_func_start pokemonanimfunc_4A +pokemonanimfunc_4A: @ 8182DC4 + push {lr} + movs r1, 0x1 + strh r1, [r0, 0x3A] + bl pokemonanimfunc_48 + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_4A + + thumb_func_start pokemonanimfunc_4B +pokemonanimfunc_4B: @ 8182DD4 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _08182DE2 + strh r0, [r4, 0x2E] +_08182DE2: + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + bgt _08182DF6 + adds r0, r4, 0 + bl sub_817FC20 + movs r0, 0x1 + b _08182DF8 +_08182DF6: + subs r0, r1, 0x1 +_08182DF8: + strh r0, [r4, 0x2E] + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_4B + + thumb_func_start pokemonanimfunc_4C +pokemonanimfunc_4C: @ 8182E00 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x1E + strh r0, [r4, 0x2E] + movs r0, 0x3 + strh r0, [r4, 0x3C] + adds r0, r4, 0 + bl sub_817FCDC + ldr r0, =sub_817FCDC + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_4C + + thumb_func_start pokemonanimfunc_4D +pokemonanimfunc_4D: @ 8182E20 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x1E + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_817FD44 + ldr r0, =sub_817FD44 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_4D + + thumb_func_start pokemonanimfunc_4E +pokemonanimfunc_4E: @ 8182E3C + push {r4,lr} + adds r4, r0, 0 + bl sub_817F758 + lsls r0, 24 + lsrs r0, 24 + movs r3, 0 + strh r0, [r4, 0x2E] + ldr r2, =gUnknown_03001240 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x80 + lsls r0, 3 + strh r0, [r1, 0x6] + strh r3, [r1] + movs r0, 0x2 + strh r0, [r1, 0x4] + adds r0, r4, 0 + bl sub_817FE30 + ldr r0, =sub_817FE30 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_4E + + thumb_func_start pokemonanimfunc_4F +pokemonanimfunc_4F: @ 8182E7C + push {r4,lr} + adds r4, r0, 0 + bl sub_817F758 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2E] + ldr r2, =gUnknown_03001240 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x80 + lsls r0, 2 + strh r0, [r1, 0x6] + movs r0, 0x3 + strh r0, [r1, 0x8] + movs r0, 0xC + strh r0, [r1, 0x2] + adds r0, r4, 0 + bl sub_817FFF0 + ldr r0, =sub_817FFF0 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_4F + + thumb_func_start pokemonanimfunc_50 +pokemonanimfunc_50: @ 8182EBC + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x18 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_818031C + ldr r0, =sub_818031C + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_50 + + thumb_func_start pokemonanimfunc_51 +pokemonanimfunc_51: @ 8182ED8 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x5 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_81804F8 + ldr r0, =sub_81804F8 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_51 + + thumb_func_start pokemonanimfunc_52 +pokemonanimfunc_52: @ 8182EF4 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x3 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_817F9F4 + ldr r0, =sub_817F9F4 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_52 + + thumb_func_start pokemonanimfunc_53 +pokemonanimfunc_53: @ 8182F10 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F758 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2E] + ldr r2, =gUnknown_03001240 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x3C + strh r0, [r1] + movs r0, 0x1E + strh r0, [r1, 0x8] + adds r0, r4, 0 + bl sub_817FF3C + ldr r0, =sub_817FF3C + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_53 + + thumb_func_start pokemonanimfunc_54 +pokemonanimfunc_54: @ 8182F48 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F758 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2E] + ldr r2, =gUnknown_03001240 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x1 + strh r0, [r1, 0x2] + movs r0, 0x2 + strh r0, [r1, 0x4] + adds r0, r4, 0 + bl sub_8181214 + ldr r0, =sub_8181214 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_54 + + thumb_func_start pokemonanimfunc_55 +pokemonanimfunc_55: @ 8182F80 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F758 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2E] + ldr r2, =gUnknown_03001240 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x4 + strh r0, [r1, 0x6] + movs r0, 0x2 + strh r0, [r1, 0x4] + adds r0, r4, 0 + bl sub_8181810 + ldr r0, =sub_8181810 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_55 + + thumb_func_start pokemonanimfunc_56 +pokemonanimfunc_56: @ 8182FB8 + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_817F758 + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + strh r0, [r4, 0x2E] + ldr r2, =gUnknown_03001240 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x1 + strh r0, [r1, 0x8] + movs r0, 0x2 + strh r0, [r1, 0x4] + adds r0, r4, 0 + bl sub_817F670 + strh r5, [r4, 0x34] + adds r0, r4, 0 + bl sub_8181ABC + ldr r0, =sub_8181ABC + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_56 + + thumb_func_start pokemonanimfunc_07 +pokemonanimfunc_07: @ 8182FFC + push {r4,lr} + adds r4, r0, 0 + bl sub_817F758 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2E] + ldr r2, =gUnknown_03001240 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x2 + strh r0, [r1, 0x6] + adds r0, r4, 0 + bl sub_8181CE8 + ldr r0, =sub_8181CE8 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_07 + + thumb_func_start pokemonanimfunc_08 +pokemonanimfunc_08: @ 8183030 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F758 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2E] + ldr r2, =gUnknown_03001240 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x4 + strh r0, [r1, 0x6] + movs r0, 0x2 + strh r0, [r1, 0x4] + adds r0, r4, 0 + bl sub_8181CE8 + ldr r0, =sub_8181CE8 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_08 + + thumb_func_start pokemonanimfunc_0B +pokemonanimfunc_0B: @ 8183068 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F758 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2E] + ldr r2, =gUnknown_03001240 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x64 + strh r0, [r1, 0x8] + adds r0, r4, 0 + bl sub_81814D4 + ldr r0, =sub_81814D4 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_0B + + thumb_func_start pokemonanimfunc_0C +pokemonanimfunc_0C: @ 818309C + push {r4,lr} + adds r4, r0, 0 + bl sub_817F758 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2E] + ldr r2, =gUnknown_03001240 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x32 + strh r0, [r1, 0x8] + movs r0, 0x2 + strh r0, [r1, 0x4] + adds r0, r4, 0 + bl sub_81814D4 + ldr r0, =sub_81814D4 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_0C + + thumb_func_start pokemonanimfunc_0D +pokemonanimfunc_0D: @ 81830D4 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F758 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2E] + ldr r2, =gUnknown_03001240 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x64 + strh r0, [r1, 0x8] + adds r0, r4, 0 + bl sub_81815D4 + ldr r0, =sub_81815D4 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_0D + + thumb_func_start pokemonanimfunc_0E +pokemonanimfunc_0E: @ 8183108 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F758 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2E] + ldr r2, =gUnknown_03001240 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x32 + strh r0, [r1, 0x8] + movs r0, 0x2 + strh r0, [r1, 0x4] + adds r0, r4, 0 + bl sub_81815D4 + ldr r0, =sub_81815D4 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_0E + + thumb_func_start sub_8183140 +sub_8183140: @ 8183140 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r2, [r4, r0] + movs r0, 0x90 + lsls r0, 4 + cmp r2, r0 + ble _0818315C + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + movs r0, 0 + b _08183180 + .pool +_0818315C: + adds r1, r2, 0 + adds r1, 0xC0 + adds r0, r1, 0 + cmp r1, 0 + bge _0818316A + ldr r3, =0x000001bf + adds r0, r2, r3 +_0818316A: + asrs r0, 8 + lsls r0, 8 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + movs r2, 0x3C + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x3C] + adds r0, r1 +_08183180: + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x2E] + ldrh r3, [r4, 0x32] + adds r0, r3 + strh r0, [r4, 0x32] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8183140 + + thumb_func_start pokemonanimfunc_57 +pokemonanimfunc_57: @ 8183194 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x3C + strh r0, [r4, 0x2E] + movs r0, 0x3 + strh r0, [r4, 0x3C] + adds r0, r4, 0 + bl sub_8183140 + ldr r0, =sub_8183140 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_57 + + thumb_func_start pokemonanimfunc_58 +pokemonanimfunc_58: @ 81831B4 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x1E + strh r0, [r4, 0x2E] + movs r0, 0x3 + strh r0, [r4, 0x3C] + adds r0, r4, 0 + bl sub_8183140 + ldr r0, =sub_8183140 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_58 + + thumb_func_start pokemonanimfunc_59 +pokemonanimfunc_59: @ 81831D4 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F70C + movs r0, 0x32 + ldrsh r1, [r4, r0] + movs r0, 0x80 + lsls r0, 4 + cmp r1, r0 + ble _081831F8 + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + movs r0, 0 + strh r0, [r4, 0x3A] + b _081832BC + .pool +_081831F8: + movs r1, 0x32 + ldrsh r2, [r4, r1] + adds r0, r2, 0 + cmp r2, 0 + bge _08183206 + ldr r1, =0x000001ff + adds r0, r2, r1 +_08183206: + asrs r3, r0, 9 + adds r1, r3, 0 + adds r0, r1, 0 + cmp r1, 0 + bge _08183212 + adds r0, r1, 0x3 +_08183212: + asrs r0, 2 + lsls r0, 2 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + beq _08183268 + cmp r0, 0x1 + bgt _08183230 + cmp r0, 0 + beq _0818323A + b _08183298 + .pool +_08183230: + cmp r0, 0x2 + beq _0818324C + cmp r0, 0x3 + beq _08183284 + b _08183298 +_0818323A: + lsls r0, r3, 9 + subs r0, r2, r0 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _08183248 + adds r0, 0x1F +_08183248: + asrs r0, 5 + b _08183296 +_0818324C: + lsls r0, r3, 9 + subs r0, r2, r0 + lsls r0, 16 + asrs r0, 12 + negs r0, r0 + cmp r0, 0 + bge _0818325E + ldr r1, =0x000001ff + adds r0, r1 +_0818325E: + asrs r0, 9 + b _08183296 + .pool +_08183268: + lsls r0, r3, 9 + subs r0, r2, r0 + lsls r0, 16 + asrs r0, 12 + negs r0, r0 + cmp r0, 0 + bge _0818327A + ldr r1, =0x000001ff + adds r0, r1 +_0818327A: + asrs r0, 9 + adds r0, 0x10 + b _08183296 + .pool +_08183284: + lsls r0, r3, 9 + subs r0, r2, r0 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _08183292 + adds r0, 0x1F +_08183292: + asrs r0, 5 + subs r0, 0x10 +_08183296: + strh r0, [r4, 0x24] +_08183298: + movs r0, 0x32 + ldrsh r1, [r4, r0] + adds r0, r1, 0 + cmp r1, 0 + bge _081832A4 + adds r0, 0x7F +_081832A4: + asrs r0, 7 + lsls r0, 7 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x4 + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + adds r0, 0x18 + strh r0, [r4, 0x32] +_081832BC: + adds r0, r4, 0 + bl sub_817F70C + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_59 + + thumb_func_start sub_81832C8 +sub_81832C8: @ 81832C8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r6, r0, 0 + movs r0, 0 + mov r8, r0 + movs r2, 0x38 + ldrsh r1, [r6, r2] + movs r2, 0x3A + ldrsh r0, [r6, r2] + cmp r1, r0 + ble _0818331A + mov r0, r8 + strh r0, [r6, 0x26] + strh r0, [r6, 0x38] + movs r2, 0x80 + lsls r2, 1 + adds r0, r6, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + ldrh r1, [r6, 0x36] + movs r2, 0x36 + ldrsh r0, [r6, r2] + cmp r0, 0x1 + bgt _08183310 + adds r0, r6, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r6, 0x1C] + b _081833DC + .pool +_08183310: + subs r0, r1, 0x1 + strh r0, [r6, 0x36] + mov r0, r8 + strh r0, [r6, 0x3C] + b _081833DC +_0818331A: + movs r1, 0x38 + ldrsh r5, [r6, r1] + lsls r0, r5, 7 + movs r2, 0x3A + ldrsh r4, [r6, r2] + adds r1, r4, 0 + bl __divsi3 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r4, 0 + bge _08183334 + adds r4, 0x3 +_08183334: + asrs r1, r4, 2 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 24 + lsrs r0, 24 + cmp r5, r1 + blt _08183358 + cmp r5, r0 + bge _08183358 + ldrh r0, [r6, 0x3C] + adds r0, 0x33 + strh r0, [r6, 0x3C] + movs r1, 0xFF + mov r8, r1 + ands r1, r0 + mov r8, r1 +_08183358: + movs r1, 0x30 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _0818337C + lsls r4, r2, 16 + asrs r0, r4, 16 + movs r1, 0x10 + bl Sin + ldr r2, =0xffffff00 + adds r1, r2, 0 + subs r1, r0 + lsls r1, 16 + lsrs r1, 16 + mov r9, r1 + b _08183392 + .pool +_0818337C: + lsls r4, r2, 16 + asrs r0, r4, 16 + movs r1, 0x10 + bl Sin + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 +_08183392: + adds r7, r4, 0 + ldrh r4, [r6, 0x34] + lsls r4, 24 + lsrs r4, 24 + mov r5, r8 + adds r0, r4, 0 + movs r1, 0x5 + bl __udivsi3 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl Sin + adds r5, r0, 0 + asrs r0, r7, 16 + adds r1, r4, 0 + bl Sin + movs r1, 0x80 + lsls r1, 1 + adds r2, r1, 0 + subs r2, r5 + subs r2, r0 + mov r0, r9 + lsls r1, r0, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + adds r0, r6, 0 + movs r3, 0 + bl sub_817F618 + ldrh r0, [r6, 0x38] + adds r0, 0x1 + strh r0, [r6, 0x38] +_081833DC: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81832C8 + + thumb_func_start pokemonanimfunc_5A +pokemonanimfunc_5A: @ 81833E8 + push {r4-r6,lr} + adds r5, r0, 0 + movs r0, 0x32 + ldrsh r6, [r5, r0] + cmp r6, 0 + bne _0818340A + movs r4, 0x1 + strh r4, [r5, 0x32] + adds r0, r5, 0 + bl sub_817F670 + strh r4, [r5, 0x36] + movs r0, 0x28 + strh r0, [r5, 0x3A] + strh r0, [r5, 0x34] + strh r6, [r5, 0x38] + strh r6, [r5, 0x3C] +_0818340A: + adds r0, r5, 0 + bl sub_81832C8 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_5A + + thumb_func_start sub_8183418 +sub_8183418: @ 8183418 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r6, r0, 0 + movs r0, 0 + mov r8, r0 + movs r2, 0x38 + ldrsh r1, [r6, r2] + movs r2, 0x3A + ldrsh r0, [r6, r2] + cmp r1, r0 + ble _0818346A + mov r0, r8 + strh r0, [r6, 0x38] + movs r2, 0x80 + lsls r2, 1 + adds r0, r6, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + ldrh r1, [r6, 0x36] + movs r2, 0x36 + ldrsh r0, [r6, r2] + cmp r0, 0x1 + bgt _08183460 + adds r0, r6, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r6, 0x1C] + b _08183538 + .pool +_08183460: + subs r0, r1, 0x1 + strh r0, [r6, 0x36] + mov r0, r8 + strh r0, [r6, 0x3C] + b _08183538 +_0818346A: + movs r1, 0x38 + ldrsh r5, [r6, r1] + lsls r0, r5, 7 + movs r2, 0x3A + ldrsh r4, [r6, r2] + adds r1, r4, 0 + bl __divsi3 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + cmp r4, 0 + bge _08183486 + adds r4, 0x3 +_08183486: + asrs r1, r4, 2 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 24 + lsrs r0, 24 + cmp r5, r1 + blt _081834AC + cmp r5, r0 + bge _081834AC + ldrh r0, [r6, 0x3C] + adds r0, 0x33 + strh r0, [r6, 0x3C] + movs r1, 0xFF + mov r8, r1 + mov r2, r8 + ands r2, r0 + mov r8, r2 +_081834AC: + ldrh r0, [r6, 0x34] + lsls r0, 24 + lsrs r7, r0, 24 + movs r1, 0x30 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _081834F0 + mov r2, r9 + lsls r0, r2, 16 + asrs r0, 16 + adds r1, r7, 0 + bl Sin + adds r4, r0, 0 + mov r5, r8 + adds r0, r7, 0 + movs r1, 0x5 + bl __udivsi3 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 23 + adds r0, r5, 0 + bl Sin + ldr r1, =0xffffff00 + adds r0, r1 + adds r4, r0 + lsls r4, 16 + lsrs r1, r4, 16 + b _08183522 + .pool +_081834F0: + mov r4, r8 + adds r0, r7, 0 + movs r1, 0x5 + bl __udivsi3 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 23 + adds r0, r4, 0 + bl Sin + adds r4, r0, 0 + mov r2, r9 + lsls r0, r2, 16 + asrs r0, 16 + adds r1, r7, 0 + bl Sin + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + subs r1, r4 + subs r1, r0 + lsls r1, 16 + lsrs r1, 16 +_08183522: + lsls r1, 16 + asrs r1, 16 + movs r2, 0x80 + lsls r2, 1 + adds r0, r6, 0 + movs r3, 0 + bl sub_817F618 + ldrh r0, [r6, 0x38] + adds r0, 0x1 + strh r0, [r6, 0x38] +_08183538: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8183418 + + thumb_func_start pokemonanimfunc_5B +pokemonanimfunc_5B: @ 8183544 + push {r4-r6,lr} + adds r5, r0, 0 + movs r0, 0x32 + ldrsh r6, [r5, r0] + cmp r6, 0 + bne _08183566 + movs r4, 0x1 + strh r4, [r5, 0x32] + adds r0, r5, 0 + bl sub_817F670 + strh r4, [r5, 0x36] + movs r0, 0x28 + strh r0, [r5, 0x3A] + strh r0, [r5, 0x34] + strh r6, [r5, 0x38] + strh r6, [r5, 0x3C] +_08183566: + adds r0, r5, 0 + bl sub_8183418 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_5B + + thumb_func_start sub_8183574 +sub_8183574: @ 8183574 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r4, r0, 0 + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldrh r0, [r4, 0x3A] + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r3, =gUnknown_0860AA80 + movs r1, 0x38 + ldrsh r0, [r4, r1] + lsls r1, r0, 1 + adds r0, r1, r3 + ldrb r5, [r0] + adds r2, r5, 0 + cmp r5, 0xFF + beq _081835A6 + ldrh r0, [r4, 0x3C] + lsls r0, 24 + lsrs r5, r0, 24 +_081835A6: + adds r0, r3, 0x1 + adds r0, r1, r0 + ldrb r6, [r0] + movs r7, 0 + cmp r2, 0xFE + beq _081835C2 + mov r1, r9 + subs r0, r6, r1 + muls r0, r5 + adds r1, r6, 0 + bl __divsi3 + lsls r0, 24 + lsrs r7, r0, 24 +_081835C2: + cmp r5, 0xFF + bne _081835D8 + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + movs r0, 0 + strh r0, [r4, 0x26] + b _0818360A + .pool +_081835D8: + mov r1, r8 + adds r1, 0xC0 + adds r0, r1, 0 + asrs r0, 8 + lsls r0, 8 + subs r0, r1, r0 + adds r1, r7, 0 + bl Sin + adds r0, r7 + strh r0, [r4, 0x26] + cmp r9, r6 + bne _081835FC + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + movs r0, 0 + b _08183608 +_081835FC: + ldrh r0, [r4, 0x2E] + ldrh r1, [r4, 0x32] + adds r0, r1 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x3A] + adds r0, 0x1 +_08183608: + strh r0, [r4, 0x3A] +_0818360A: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8183574 + + thumb_func_start pokemonanimfunc_5C +pokemonanimfunc_5C: @ 8183618 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x28 + strh r0, [r4, 0x2E] + movs r0, 0x6 + strh r0, [r4, 0x3C] + adds r0, r4, 0 + bl sub_8183574 + ldr r0, =sub_8183574 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_5C + + thumb_func_start pokemonanimfunc_5D +pokemonanimfunc_5D: @ 8183638 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x46 + strh r0, [r4, 0x2E] + movs r0, 0x6 + strh r0, [r4, 0x3C] + adds r0, r4, 0 + bl sub_817FCDC + ldr r0, =sub_817FCDC + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_5D + + thumb_func_start pokemonanimfunc_5E +pokemonanimfunc_5E: @ 8183658 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x14 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_817F8FC + ldr r0, =sub_817F8FC + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_5E + + thumb_func_start pokemonanimfunc_5F +pokemonanimfunc_5F: @ 8183674 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x32] + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r0, 0x28 + ble _08183690 + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + movs r0, 0 + b _081836CA + .pool +_08183690: + movs r0, 0x1 + ands r0, r1 + movs r5, 0xFF + cmp r0, 0 + bne _0818369C + movs r5, 0x1 +_0818369C: + movs r1, 0x32 + ldrsh r0, [r4, r1] + lsls r0, 7 + movs r1, 0x28 + bl __divsi3 + adds r1, r0, 0 + cmp r1, 0 + bge _081836B0 + adds r0, 0xFF +_081836B0: + asrs r0, 8 + lsls r0, 8 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x9 + bl Sin + lsls r1, r5, 24 + asrs r1, 24 + adds r2, r0, 0 + muls r2, r1 + adds r0, r2, 0 +_081836CA: + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_5F + + thumb_func_start pokemonanimfunc_60 +pokemonanimfunc_60: @ 81836D8 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x32] + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r0, 0x28 + ble _081836F4 + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + movs r0, 0 + b _0818372E + .pool +_081836F4: + movs r0, 0x1 + ands r0, r1 + movs r5, 0xFF + cmp r0, 0 + bne _08183700 + movs r5, 0x1 +_08183700: + movs r1, 0x32 + ldrsh r0, [r4, r1] + lsls r0, 7 + movs r1, 0x28 + bl __divsi3 + adds r1, r0, 0 + cmp r1, 0 + bge _08183714 + adds r0, 0xFF +_08183714: + asrs r0, 8 + lsls r0, 8 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + movs r1, 0xC + bl Sin + lsls r1, r5, 24 + asrs r1, 24 + adds r2, r0, 0 + muls r2, r1 + adds r0, r2, 0 +_0818372E: + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_60 + + thumb_func_start pokemonanimfunc_61 +pokemonanimfunc_61: @ 818373C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x46 + strh r0, [r4, 0x2E] + movs r0, 0x6 + strh r0, [r4, 0x3C] + adds r0, r4, 0 + bl sub_8183140 + ldr r0, =sub_8183140 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_61 + + thumb_func_start pokemonanimfunc_62 +pokemonanimfunc_62: @ 818375C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x18 + strh r0, [r4, 0x2E] + movs r0, 0x6 + strh r0, [r4, 0x3C] + adds r0, r4, 0 + bl sub_8183574 + ldr r0, =sub_8183574 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_62 + + thumb_func_start pokemonanimfunc_63 +pokemonanimfunc_63: @ 818377C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x38 + strh r0, [r4, 0x2E] + movs r0, 0x9 + strh r0, [r4, 0x3C] + adds r0, r4, 0 + bl sub_8183574 + ldr r0, =sub_8183574 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_63 + + thumb_func_start pokemonanimfunc_64 +pokemonanimfunc_64: @ 818379C + push {r4,lr} + adds r4, r0, 0 + bl sub_817F758 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2E] + ldr r2, =gUnknown_03001240 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x80 + lsls r0, 3 + strh r0, [r1, 0x6] + movs r0, 0x6 + strh r0, [r1, 0x8] + movs r0, 0x18 + strh r0, [r1, 0x2] + adds r0, r4, 0 + bl sub_817FFF0 + ldr r0, =sub_817FFF0 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_64 + + thumb_func_start sub_81837DC +sub_81837DC: @ 81837DC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r7, r0, 0 + movs r5, 0 + movs r0, 0x38 + ldrsh r1, [r7, r0] + movs r2, 0x3A + ldrsh r0, [r7, r2] + cmp r1, r0 + ble _0818382C + strh r5, [r7, 0x26] + strh r5, [r7, 0x38] + movs r2, 0x80 + lsls r2, 1 + adds r0, r7, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + ldrh r1, [r7, 0x36] + movs r2, 0x36 + ldrsh r0, [r7, r2] + cmp r0, 0x1 + bgt _08183824 + adds r0, r7, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r7, 0x1C] + b _0818392C + .pool +_08183824: + subs r0, r1, 0x1 + strh r0, [r7, 0x36] + strh r5, [r7, 0x3C] + b _0818392C +_0818382C: + movs r0, 0x38 + ldrsh r6, [r7, r0] + lsls r0, r6, 7 + movs r1, 0x3A + ldrsh r4, [r7, r1] + adds r1, r4, 0 + bl __divsi3 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r4, 0 + bge _08183846 + adds r4, 0x3 +_08183846: + asrs r1, r4, 2 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 24 + lsrs r0, 24 + cmp r6, r1 + blt _08183866 + cmp r6, r0 + bge _08183866 + ldrh r0, [r7, 0x3C] + adds r0, 0x33 + strh r0, [r7, 0x3C] + movs r5, 0xFF + ands r5, r0 +_08183866: + ldrh r0, [r7, 0x34] + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r1, 0x30 + ldrsh r0, [r7, r1] + cmp r0, 0 + bne _081838B0 + lsls r2, 16 + mov r8, r2 + asrs r0, r2, 16 + mov r1, r9 + bl Sin + adds r4, r0, 0 + lsls r6, r5, 16 + asrs r5, r6, 16 + mov r0, r9 + movs r1, 0x5 + bl __udivsi3 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 23 + adds r0, r5, 0 + bl Sin + ldr r2, =0xffffff00 + adds r4, r2 + adds r0, r4 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + mov r0, r8 + b _081838EA + .pool +_081838B0: + lsls r2, 16 + mov r8, r2 + asrs r0, r2, 16 + mov r1, r9 + bl Sin + adds r6, r0, 0 + lsls r5, 16 + asrs r4, r5, 16 + mov r0, r9 + movs r1, 0x5 + bl __udivsi3 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 23 + adds r0, r4, 0 + bl Sin + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + subs r1, r6 + subs r1, r0 + lsls r1, 16 + lsrs r1, 16 + mov r10, r1 + mov r0, r8 + adds r6, r5, 0 +_081838EA: + asrs r0, 16 + mov r1, r9 + bl Sin + adds r5, r0, 0 + asrs r4, r6, 16 + mov r0, r9 + movs r1, 0x5 + bl __udivsi3 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl Sin + movs r1, 0x80 + lsls r1, 1 + adds r2, r1, 0 + subs r2, r5 + subs r2, r0 + mov r0, r10 + lsls r1, r0, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + adds r0, r7, 0 + movs r3, 0 + bl sub_817F618 + ldrh r0, [r7, 0x38] + adds r0, 0x1 + strh r0, [r7, 0x38] +_0818392C: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81837DC + + thumb_func_start pokemonanimfunc_65 +pokemonanimfunc_65: @ 818393C + push {r4-r6,lr} + adds r5, r0, 0 + movs r0, 0x32 + ldrsh r6, [r5, r0] + cmp r6, 0 + bne _0818395E + movs r4, 0x1 + strh r4, [r5, 0x32] + adds r0, r5, 0 + bl sub_817F670 + strh r4, [r5, 0x36] + movs r0, 0x28 + strh r0, [r5, 0x3A] + strh r0, [r5, 0x34] + strh r6, [r5, 0x38] + strh r6, [r5, 0x3C] +_0818395E: + adds r0, r5, 0 + bl sub_81837DC + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_65 + + thumb_func_start pokemonanimfunc_66 +pokemonanimfunc_66: @ 818396C + push {r4,lr} + adds r4, r0, 0 + bl sub_817F70C + movs r0, 0x32 + ldrsh r1, [r4, r0] + movs r0, 0x80 + lsls r0, 4 + cmp r1, r0 + ble _08183990 + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + movs r0, 0 + strh r0, [r4, 0x3A] + b _08183A54 + .pool +_08183990: + movs r1, 0x32 + ldrsh r2, [r4, r1] + adds r0, r2, 0 + cmp r2, 0 + bge _0818399E + ldr r1, =0x000001ff + adds r0, r2, r1 +_0818399E: + asrs r3, r0, 9 + adds r1, r3, 0 + adds r0, r1, 0 + cmp r1, 0 + bge _081839AA + adds r0, r1, 0x3 +_081839AA: + asrs r0, 2 + lsls r0, 2 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + beq _08183A00 + cmp r0, 0x1 + bgt _081839C8 + cmp r0, 0 + beq _081839D2 + b _08183A30 + .pool +_081839C8: + cmp r0, 0x2 + beq _081839E4 + cmp r0, 0x3 + beq _08183A1C + b _08183A30 +_081839D2: + lsls r0, r3, 9 + subs r0, r2, r0 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _081839E0 + adds r0, 0x1F +_081839E0: + asrs r0, 5 + b _08183A2E +_081839E4: + lsls r0, r3, 9 + subs r0, r2, r0 + lsls r0, 16 + asrs r0, 12 + negs r0, r0 + cmp r0, 0 + bge _081839F6 + ldr r1, =0x000001ff + adds r0, r1 +_081839F6: + asrs r0, 9 + b _08183A2E + .pool +_08183A00: + lsls r0, r3, 9 + subs r0, r2, r0 + lsls r0, 16 + asrs r0, 12 + negs r0, r0 + cmp r0, 0 + bge _08183A12 + ldr r1, =0x000001ff + adds r0, r1 +_08183A12: + asrs r0, 9 + adds r0, 0x10 + b _08183A2E + .pool +_08183A1C: + lsls r0, r3, 9 + subs r0, r2, r0 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _08183A2A + adds r0, 0x1F +_08183A2A: + asrs r0, 5 + subs r0, 0x10 +_08183A2E: + strh r0, [r4, 0x24] +_08183A30: + movs r0, 0x32 + ldrsh r1, [r4, r0] + adds r0, r1, 0 + cmp r1, 0 + bge _08183A3C + adds r0, 0x7F +_08183A3C: + asrs r0, 7 + lsls r0, 7 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x4 + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + adds r0, 0x30 + strh r0, [r4, 0x32] +_08183A54: + adds r0, r4, 0 + bl sub_817F70C + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_66 + + thumb_func_start pokemonanimfunc_67 +pokemonanimfunc_67: @ 8183A60 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F70C + movs r0, 0x32 + ldrsh r1, [r4, r0] + movs r0, 0x80 + lsls r0, 4 + cmp r1, r0 + ble _08183A84 + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + movs r0, 0 + strh r0, [r4, 0x3A] + b _08183B40 + .pool +_08183A84: + movs r1, 0x32 + ldrsh r2, [r4, r1] + adds r0, r2, 0 + cmp r2, 0 + bge _08183A92 + ldr r1, =0x000001ff + adds r0, r2, r1 +_08183A92: + asrs r3, r0, 9 + adds r1, r3, 0 + adds r0, r1, 0 + cmp r1, 0 + bge _08183A9E + adds r0, r1, 0x3 +_08183A9E: + asrs r0, 2 + lsls r0, 2 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + beq _08183AF4 + cmp r0, 0x1 + bgt _08183ABC + cmp r0, 0 + beq _08183AC6 + b _08183B24 + .pool +_08183ABC: + cmp r0, 0x2 + beq _08183AD8 + cmp r0, 0x3 + beq _08183B10 + b _08183B24 +_08183AC6: + lsls r0, r3, 9 + subs r0, r2, r0 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _08183AD4 + adds r0, 0x1F +_08183AD4: + asrs r0, 5 + b _08183B22 +_08183AD8: + lsls r0, r3, 9 + subs r0, r2, r0 + lsls r0, 16 + asrs r0, 12 + negs r0, r0 + cmp r0, 0 + bge _08183AEA + ldr r1, =0x000001ff + adds r0, r1 +_08183AEA: + asrs r0, 9 + b _08183B22 + .pool +_08183AF4: + lsls r0, r3, 9 + subs r0, r2, r0 + lsls r0, 16 + asrs r0, 12 + negs r0, r0 + cmp r0, 0 + bge _08183B06 + ldr r1, =0x000001ff + adds r0, r1 +_08183B06: + asrs r0, 9 + adds r0, 0x10 + b _08183B22 + .pool +_08183B10: + lsls r0, r3, 9 + subs r0, r2, r0 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _08183B1E + adds r0, 0x1F +_08183B1E: + asrs r0, 5 + subs r0, 0x10 +_08183B22: + strh r0, [r4, 0x24] +_08183B24: + movs r1, 0x32 + ldrsh r0, [r4, r1] + movs r1, 0x60 + bl __modsi3 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x4 + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + adds r0, 0x40 + strh r0, [r4, 0x32] +_08183B40: + adds r0, r4, 0 + bl sub_817F70C + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_67 + + thumb_func_start sub_8183B4C +sub_8183B4C: @ 8183B4C + push {r4-r7,lr} + adds r4, r0, 0 + bl sub_817F70C + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _08183B5E + strh r0, [r4, 0x34] +_08183B5E: + ldr r7, =gUnknown_0860ADBE + movs r2, 0x34 + ldrsh r1, [r4, r2] + lsls r0, r1, 1 + adds r0, r1 + adds r5, r7, 0x2 + adds r0, r5 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl __divsi3 + movs r2, 0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _08183B8C + ldrh r0, [r4, 0x34] + adds r0, 0x1 + movs r1, 0 + strh r0, [r4, 0x34] + strh r1, [r4, 0x32] +_08183B8C: + movs r0, 0x34 + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r6, r0, r1 + adds r0, r6, r5 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x38 + ldrsh r5, [r4, r1] + adds r1, r5, 0 + bl __divsi3 + adds r1, r0, 0 + cmp r1, 0 + bne _08183BCC + ldrh r0, [r4, 0x3A] + subs r0, 0x1 + strh r0, [r4, 0x3A] + lsls r0, 16 + cmp r0, 0 + bne _08183BC8 + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + b _08183C06 + .pool +_08183BC8: + strh r1, [r4, 0x32] + b _08183C06 +_08183BCC: + adds r0, r6, r7 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + muls r0, r5 + ldrh r2, [r4, 0x24] + adds r0, r2 + strh r0, [r4, 0x24] + movs r0, 0x34 + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r0, r1 + adds r1, r7, 0x1 + adds r0, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + ldrh r0, [r4, 0x38] + adds r2, r0, 0 + muls r2, r1 + adds r0, r2, 0 + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + adds r0, r4, 0 + bl sub_817F70C +_08183C06: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8183B4C + + thumb_func_start pokemonanimfunc_68 +pokemonanimfunc_68: @ 8183C0C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x1 + strh r0, [r4, 0x38] + strh r0, [r4, 0x3A] + adds r0, r4, 0 + bl sub_8183B4C + ldr r0, =sub_8183B4C + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_68 + + thumb_func_start pokemonanimfunc_69 +pokemonanimfunc_69: @ 8183C2C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x2 + strh r0, [r4, 0x38] + movs r0, 0x1 + strh r0, [r4, 0x3A] + adds r0, r4, 0 + bl sub_8183B4C + ldr r0, =sub_8183B4C + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_69 + + thumb_func_start pokemonanimfunc_6A +pokemonanimfunc_6A: @ 8183C4C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x2 + strh r0, [r4, 0x38] + strh r0, [r4, 0x3A] + adds r0, r4, 0 + bl sub_8183B4C + ldr r0, =sub_8183B4C + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_6A + + thumb_func_start sub_8183C6C +sub_8183C6C: @ 8183C6C + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x3C] + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0xFF + ble _08183CAE + ldrh r1, [r4, 0x38] + movs r2, 0x38 + ldrsh r0, [r4, r2] + cmp r0, 0x1 + bgt _08183CA4 + adds r0, r4, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + b _08183CE8 + .pool +_08183CA4: + subs r0, r1, 0x1 + movs r1, 0 + strh r0, [r4, 0x38] + strh r1, [r4, 0x3C] + b _08183CE8 +_08183CAE: + ldrh r0, [r4, 0x3A] + adds r0, r1, r0 + strh r0, [r4, 0x3C] + lsls r0, 16 + asrs r0, 16 + movs r5, 0x80 + lsls r5, 1 + cmp r0, r5 + ble _08183CC2 + strh r5, [r4, 0x3C] +_08183CC2: + movs r1, 0x3C + ldrsh r0, [r4, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + movs r1, 0x40 + bl Sin + adds r2, r0, 0 + lsls r2, 16 + asrs r2, 16 + subs r2, r5, r2 + lsls r2, 16 + asrs r2, 16 + adds r0, r4, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 +_08183CE8: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8183C6C + + thumb_func_start pokemonanimfunc_6B +pokemonanimfunc_6B: @ 8183CF0 + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_817F70C + movs r0, 0x32 + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _08183D16 + adds r0, r4, 0 + bl sub_817F670 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + strh r5, [r4, 0x3C] + movs r0, 0x4 + strh r0, [r4, 0x3A] + movs r0, 0x1 + strh r0, [r4, 0x38] +_08183D16: + adds r0, r4, 0 + bl sub_8183C6C + adds r0, r4, 0 + bl sub_817F70C + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_6B + + thumb_func_start pokemonanimfunc_6C +pokemonanimfunc_6C: @ 8183D28 + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_817F70C + movs r0, 0x32 + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _08183D4E + adds r0, r4, 0 + bl sub_817F670 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + strh r5, [r4, 0x3C] + movs r0, 0x8 + strh r0, [r4, 0x3A] + movs r0, 0x2 + strh r0, [r4, 0x38] +_08183D4E: + adds r0, r4, 0 + bl sub_8183C6C + adds r0, r4, 0 + bl sub_817F70C + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_6C + + thumb_func_start pokemonanimfunc_6D +pokemonanimfunc_6D: @ 8183D60 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _08183D88 + adds r0, r4, 0 + bl sub_817F670 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + strh r5, [r4, 0x3C] + movs r0, 0x8 + strh r0, [r4, 0x3A] + movs r0, 0x80 + lsls r0, 2 + strh r0, [r4, 0x38] + movs r0, 0x10 + strh r0, [r4, 0x36] +_08183D88: + adds r0, r4, 0 + bl sub_8182764 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_6D + + thumb_func_start pokemonanimfunc_6E +pokemonanimfunc_6E: @ 8183D94 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _08183DBA + adds r0, r4, 0 + bl sub_817F670 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + strh r5, [r4, 0x3C] + movs r0, 0x4 + strh r0, [r4, 0x3A] + adds r0, 0xFC + strh r0, [r4, 0x38] + movs r0, 0x10 + strh r0, [r4, 0x36] +_08183DBA: + adds r0, r4, 0 + bl sub_8182764 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_6E + + thumb_func_start pokemonanimfunc_6F +pokemonanimfunc_6F: @ 8183DC8 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _08183DF0 + adds r0, r4, 0 + bl sub_817F670 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + strh r5, [r4, 0x3C] + movs r0, 0x8 + strh r0, [r4, 0x3A] + movs r0, 0x80 + lsls r0, 2 + strh r0, [r4, 0x38] + movs r0, 0x10 + strh r0, [r4, 0x36] +_08183DF0: + adds r0, r4, 0 + bl sub_8182830 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_6F + + thumb_func_start pokemonanimfunc_70 +pokemonanimfunc_70: @ 8183DFC + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _08183E22 + adds r0, r4, 0 + bl sub_817F670 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + strh r5, [r4, 0x3C] + movs r1, 0x8 + strh r1, [r4, 0x3A] + movs r0, 0x80 + lsls r0, 2 + strh r0, [r4, 0x38] + strh r1, [r4, 0x36] +_08183E22: + adds r0, r4, 0 + bl sub_8182830 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_70 + + thumb_func_start pokemonanimfunc_71 +pokemonanimfunc_71: @ 8183E30 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _08183E4A + adds r0, r4, 0 + bl sub_817F670 + movs r0, 0x5 + strh r0, [r4, 0x3C] + movs r0, 0x8 + strh r0, [r4, 0x3A] +_08183E4A: + adds r0, r4, 0 + bl sub_8180828 + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_71 + + thumb_func_start pokemonanimfunc_72 +pokemonanimfunc_72: @ 8183E58 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _08183E72 + adds r0, r4, 0 + bl sub_817F670 + movs r0, 0x3 + strh r0, [r4, 0x3C] + movs r0, 0x4 + strh r0, [r4, 0x3A] +_08183E72: + adds r0, r4, 0 + bl sub_8180828 + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_72 + + thumb_func_start pokemonanimfunc_73 +pokemonanimfunc_73: @ 8183E80 + push {r4-r6,lr} + adds r5, r0, 0 + movs r0, 0x32 + ldrsh r6, [r5, r0] + cmp r6, 0 + bne _08183EA2 + movs r4, 0x1 + strh r4, [r5, 0x32] + adds r0, r5, 0 + bl sub_817F670 + strh r4, [r5, 0x36] + movs r0, 0x1E + strh r0, [r5, 0x3A] + movs r0, 0x3C + strh r0, [r5, 0x34] + strh r6, [r5, 0x3C] +_08183EA2: + adds r0, r5, 0 + bl sub_81832C8 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_73 + + thumb_func_start pokemonanimfunc_74 +pokemonanimfunc_74: @ 8183EB0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _08183ED4 + movs r0, 0x1 + strh r0, [r4, 0x32] + adds r0, r4, 0 + bl sub_817F670 + movs r0, 0x2 + strh r0, [r4, 0x36] + movs r0, 0x14 + strh r0, [r4, 0x3A] + movs r0, 0x46 + strh r0, [r4, 0x34] + strh r5, [r4, 0x3C] +_08183ED4: + adds r0, r4, 0 + bl sub_81832C8 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_74 + + thumb_func_start pokemonanimfunc_75 +pokemonanimfunc_75: @ 8183EE0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _08183F06 + movs r0, 0x1 + strh r0, [r4, 0x32] + adds r0, r4, 0 + bl sub_817F670 + movs r0, 0x2 + strh r0, [r4, 0x36] + movs r0, 0x14 + strh r0, [r4, 0x3A] + movs r0, 0x46 + strh r0, [r4, 0x34] + strh r5, [r4, 0x38] + strh r5, [r4, 0x3C] +_08183F06: + adds r0, r4, 0 + bl sub_8183418 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_75 + + thumb_func_start pokemonanimfunc_76 +pokemonanimfunc_76: @ 8183F14 + push {r4-r6,lr} + adds r5, r0, 0 + movs r0, 0x32 + ldrsh r6, [r5, r0] + cmp r6, 0 + bne _08183F38 + movs r4, 0x1 + strh r4, [r5, 0x32] + adds r0, r5, 0 + bl sub_817F670 + strh r4, [r5, 0x36] + movs r0, 0x1E + strh r0, [r5, 0x3A] + movs r0, 0x3C + strh r0, [r5, 0x34] + strh r6, [r5, 0x38] + strh r6, [r5, 0x3C] +_08183F38: + adds r0, r5, 0 + bl sub_8183418 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_76 + + thumb_func_start pokemonanimfunc_77 +pokemonanimfunc_77: @ 8183F44 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _08183F6A + movs r0, 0x1 + strh r0, [r4, 0x32] + adds r0, r4, 0 + bl sub_817F670 + movs r0, 0x2 + strh r0, [r4, 0x36] + movs r0, 0x14 + strh r0, [r4, 0x3A] + movs r0, 0x46 + strh r0, [r4, 0x34] + strh r5, [r4, 0x38] + strh r5, [r4, 0x3C] +_08183F6A: + adds r0, r4, 0 + bl sub_81837DC + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_77 + + thumb_func_start pokemonanimfunc_78 +pokemonanimfunc_78: @ 8183F78 + push {r4-r6,lr} + adds r5, r0, 0 + movs r0, 0x32 + ldrsh r6, [r5, r0] + cmp r6, 0 + bne _08183F9C + movs r4, 0x1 + strh r4, [r5, 0x32] + adds r0, r5, 0 + bl sub_817F670 + strh r4, [r5, 0x36] + movs r0, 0x1E + strh r0, [r5, 0x3A] + movs r0, 0x3C + strh r0, [r5, 0x34] + strh r6, [r5, 0x38] + strh r6, [r5, 0x3C] +_08183F9C: + adds r0, r5, 0 + bl sub_81837DC + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_78 + + thumb_func_start sub_8183FA8 +sub_8183FA8: @ 8183FA8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0xFF + ble _08183FEA + ldrh r2, [r4, 0x3A] + movs r3, 0x3A + ldrsh r0, [r4, r3] + cmp r0, 0x1 + bgt _08183FD0 + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + movs r0, 0 + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + b _0818403E + .pool +_08183FD0: + movs r0, 0x3C + ldrsh r1, [r4, r0] + adds r0, r1, 0 + cmp r1, 0 + bge _08183FDC + adds r0, 0xFF +_08183FDC: + asrs r0, 8 + lsls r0, 8 + subs r0, r1, r0 + strh r0, [r4, 0x3C] + subs r0, r2, 0x1 + strh r0, [r4, 0x3A] + b _0818403E +_08183FEA: + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + negs r0, r0 + strh r0, [r4, 0x24] + movs r3, 0x3C + ldrsh r2, [r4, r3] + adds r1, r2, 0 + adds r1, 0xC0 + adds r0, r1, 0 + cmp r1, 0 + bge _0818400C + ldr r3, =0x000001bf + adds r0, r2, r3 +_0818400C: + asrs r0, 8 + lsls r0, 8 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + movs r2, 0x36 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x26] + lsls r0, 16 + cmp r0, 0 + ble _0818402E + movs r3, 0x26 + ldrsh r0, [r4, r3] + negs r0, r0 + strh r0, [r4, 0x26] +_0818402E: + ldrh r0, [r4, 0x36] + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x34] + ldrh r2, [r4, 0x3C] + adds r0, r2 + strh r0, [r4, 0x3C] +_0818403E: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8183FA8 + + thumb_func_start pokemonanimfunc_79 +pokemonanimfunc_79: @ 8184048 + push {lr} + adds r1, r0, 0 + movs r0, 0x32 + ldrsh r2, [r1, r0] + cmp r2, 0 + bne _08184066 + movs r0, 0x1 + strh r0, [r1, 0x32] + strh r0, [r1, 0x3A] + strh r2, [r1, 0x3C] + movs r0, 0xC + strh r0, [r1, 0x38] + strh r0, [r1, 0x36] + movs r0, 0x4 + strh r0, [r1, 0x34] +_08184066: + adds r0, r1, 0 + bl sub_8183FA8 + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_79 + + thumb_func_start pokemonanimfunc_7A +pokemonanimfunc_7A: @ 8184070 + push {lr} + adds r1, r0, 0 + movs r0, 0x32 + ldrsh r2, [r1, r0] + cmp r2, 0 + bne _0818408E + movs r0, 0x1 + strh r0, [r1, 0x32] + strh r0, [r1, 0x3A] + strh r2, [r1, 0x3C] + movs r0, 0xC + strh r0, [r1, 0x38] + strh r0, [r1, 0x36] + movs r0, 0x6 + strh r0, [r1, 0x34] +_0818408E: + adds r0, r1, 0 + bl sub_8183FA8 + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_7A + + thumb_func_start pokemonanimfunc_7B +pokemonanimfunc_7B: @ 8184098 + push {lr} + adds r1, r0, 0 + movs r0, 0x32 + ldrsh r2, [r1, r0] + cmp r2, 0 + bne _081840B8 + movs r0, 0x1 + strh r0, [r1, 0x32] + movs r0, 0x2 + strh r0, [r1, 0x3A] + strh r2, [r1, 0x3C] + movs r0, 0xC + strh r0, [r1, 0x38] + strh r0, [r1, 0x36] + movs r0, 0x8 + strh r0, [r1, 0x34] +_081840B8: + adds r0, r1, 0 + bl sub_8183FA8 + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_7B + + thumb_func_start sub_81840C4 +sub_81840C4: @ 81840C4 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x3C + ldrsh r0, [r5, r1] + movs r1, 0x80 + lsls r1, 1 + cmp r0, r1 + ble _081840FC + movs r2, 0x3A + ldrsh r1, [r5, r2] + ldrh r2, [r5, 0x36] + movs r3, 0x36 + ldrsh r0, [r5, r3] + cmp r1, r0 + bgt _081840EC + ldr r0, =sub_8184D88 + str r0, [r5, 0x1C] + b _081840F4 + .pool +_081840EC: + adds r0, r2, 0x1 + movs r1, 0 + strh r0, [r5, 0x36] + strh r1, [r5, 0x3C] +_081840F4: + movs r0, 0 + strh r0, [r5, 0x24] + strh r0, [r5, 0x26] + b _08184188 +_081840FC: + cmp r0, 0x9F + ble _08184126 + cmp r0, r1 + ble _08184106 + strh r1, [r5, 0x3C] +_08184106: + movs r0, 0x3C + ldrsh r1, [r5, r0] + adds r0, r1, 0 + cmp r1, 0 + bge _08184112 + adds r0, 0xFF +_08184112: + asrs r0, 8 + lsls r0, 8 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x8 + bl Sin + negs r0, r0 + b _08184154 +_08184126: + cmp r0, 0x5F + ble _0818414A + movs r0, 0x60 + movs r1, 0x6 + bl Sin + adds r4, r0, 0 + movs r1, 0x3C + ldrsh r0, [r5, r1] + subs r0, 0x60 + lsls r0, 17 + asrs r0, 16 + movs r1, 0x4 + bl Sin + subs r4, r0 + strh r4, [r5, 0x26] + b _08184156 +_0818414A: + movs r2, 0x3C + ldrsh r0, [r5, r2] + movs r1, 0x6 + bl Sin +_08184154: + strh r0, [r5, 0x26] +_08184156: + movs r3, 0x3C + ldrsh r0, [r5, r3] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + movs r2, 0x38 + ldrsh r1, [r5, r2] + bl Sin + negs r0, r0 + lsls r0, 16 + lsrs r2, r0, 16 + ldrh r0, [r5, 0x36] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0818417E + lsls r0, r2, 16 + negs r0, r0 + lsrs r2, r0, 16 +_0818417E: + strh r2, [r5, 0x24] + ldrh r0, [r5, 0x34] + ldrh r3, [r5, 0x3C] + adds r0, r3 + strh r0, [r5, 0x3C] +_08184188: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81840C4 + + thumb_func_start pokemonanimfunc_7C +pokemonanimfunc_7C: @ 8184190 + push {lr} + adds r2, r0, 0 + movs r0, 0x32 + ldrsh r3, [r2, r0] + cmp r3, 0 + bne _081841B0 + movs r1, 0x1 + strh r1, [r2, 0x32] + movs r0, 0x2 + strh r0, [r2, 0x3A] + strh r3, [r2, 0x3C] + movs r0, 0x10 + strh r0, [r2, 0x38] + strh r1, [r2, 0x36] + movs r0, 0x4 + strh r0, [r2, 0x34] +_081841B0: + adds r0, r2, 0 + bl sub_81840C4 + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_7C + + thumb_func_start pokemonanimfunc_7D +pokemonanimfunc_7D: @ 81841BC + push {lr} + adds r2, r0, 0 + movs r0, 0x32 + ldrsh r3, [r2, r0] + cmp r3, 0 + bne _081841DC + movs r1, 0x1 + strh r1, [r2, 0x32] + movs r0, 0x2 + strh r0, [r2, 0x3A] + strh r3, [r2, 0x3C] + movs r0, 0x10 + strh r0, [r2, 0x38] + strh r1, [r2, 0x36] + movs r0, 0x6 + strh r0, [r2, 0x34] +_081841DC: + adds r0, r2, 0 + bl sub_81840C4 + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_7D + + thumb_func_start pokemonanimfunc_7E +pokemonanimfunc_7E: @ 81841E8 + push {lr} + adds r2, r0, 0 + movs r0, 0x32 + ldrsh r3, [r2, r0] + cmp r3, 0 + bne _08184208 + movs r1, 0x1 + strh r1, [r2, 0x32] + movs r0, 0x3 + strh r0, [r2, 0x3A] + strh r3, [r2, 0x3C] + movs r0, 0x10 + strh r0, [r2, 0x38] + strh r1, [r2, 0x36] + movs r0, 0x8 + strh r0, [r2, 0x34] +_08184208: + adds r0, r2, 0 + bl sub_81840C4 + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_7E + + thumb_func_start pokemonanimfunc_7F +pokemonanimfunc_7F: @ 8184214 + push {lr} + adds r2, r0, 0 + movs r0, 0x32 + ldrsh r1, [r2, r0] + cmp r1, 0 + bne _08184232 + movs r0, 0x1 + strh r0, [r2, 0x32] + strh r0, [r2, 0x3A] + strh r1, [r2, 0x3C] + movs r1, 0x4 + strh r1, [r2, 0x38] + movs r0, 0x6 + strh r0, [r2, 0x36] + strh r1, [r2, 0x34] +_08184232: + adds r0, r2, 0 + bl sub_8183FA8 + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_7F + + thumb_func_start pokemonanimfunc_80 +pokemonanimfunc_80: @ 818423C + push {lr} + adds r1, r0, 0 + movs r0, 0x32 + ldrsh r2, [r1, r0] + cmp r2, 0 + bne _0818425A + movs r0, 0x1 + strh r0, [r1, 0x32] + strh r0, [r1, 0x3A] + strh r2, [r1, 0x3C] + movs r0, 0x4 + strh r0, [r1, 0x38] + movs r0, 0x6 + strh r0, [r1, 0x36] + strh r0, [r1, 0x34] +_0818425A: + adds r0, r1, 0 + bl sub_8183FA8 + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_80 + + thumb_func_start pokemonanimfunc_81 +pokemonanimfunc_81: @ 8184264 + push {lr} + adds r1, r0, 0 + movs r0, 0x32 + ldrsh r2, [r1, r0] + cmp r2, 0 + bne _08184286 + movs r0, 0x1 + strh r0, [r1, 0x32] + movs r0, 0x2 + strh r0, [r1, 0x3A] + strh r2, [r1, 0x3C] + movs r0, 0x4 + strh r0, [r1, 0x38] + movs r0, 0x6 + strh r0, [r1, 0x36] + movs r0, 0x8 + strh r0, [r1, 0x34] +_08184286: + adds r0, r1, 0 + bl sub_8183FA8 + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_81 + + thumb_func_start sub_8184290 +sub_8184290: @ 8184290 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + lsls r0, 7 + movs r2, 0x3C + ldrsh r1, [r4, r2] + bl __divsi3 + lsls r0, 16 + asrs r0, 16 + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + lsls r0, r1, 8 + negs r0, r0 + strh r0, [r4, 0x3A] + movs r0, 0x36 + ldrsh r2, [r4, r0] + adds r0, r4, 0 + movs r3, 0 + bl sub_817F3F0 + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r4, 0x3A] + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_817F6D4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8184290 + + thumb_func_start pokemonanimfunc_82 +pokemonanimfunc_82: @ 81842DC + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _08184300 + adds r0, r4, 0 + bl sub_817F670 + movs r0, 0x3C + strh r0, [r4, 0x3C] + movs r0, 0x8 + strh r0, [r4, 0x38] + ldr r0, =0x0000ffe0 + strh r0, [r4, 0x36] + movs r0, 0x1 + strh r0, [r4, 0x34] + strh r5, [r4, 0x2E] +_08184300: + movs r2, 0x32 + ldrsh r1, [r4, r2] + movs r3, 0x3C + ldrsh r0, [r4, r3] + cmp r1, r0 + ble _0818434C + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + movs r2, 0 + strh r2, [r4, 0x24] + strh r2, [r4, 0x26] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + movs r3, 0x34 + ldrsh r1, [r4, r3] + lsls r0, 16 + asrs r0, 16 + cmp r1, r0 + bgt _08184348 + adds r0, r4, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + b _08184358 + .pool +_08184348: + strh r2, [r4, 0x32] + b _08184352 +_0818434C: + adds r0, r4, 0 + bl sub_8184290 +_08184352: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] +_08184358: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_82 + + thumb_func_start pokemonanimfunc_83 +pokemonanimfunc_83: @ 8184360 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _08184384 + adds r0, r4, 0 + bl sub_817F670 + movs r0, 0x5A + strh r0, [r4, 0x3C] + movs r0, 0x8 + strh r0, [r4, 0x38] + ldr r0, =0x0000ffe0 + strh r0, [r4, 0x36] + movs r0, 0x1 + strh r0, [r4, 0x34] + strh r5, [r4, 0x2E] +_08184384: + movs r2, 0x32 + ldrsh r1, [r4, r2] + movs r3, 0x3C + ldrsh r0, [r4, r3] + cmp r1, r0 + ble _081843D0 + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + movs r2, 0 + strh r2, [r4, 0x24] + strh r2, [r4, 0x26] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + movs r3, 0x34 + ldrsh r1, [r4, r3] + lsls r0, 16 + asrs r0, 16 + cmp r1, r0 + bgt _081843CC + adds r0, r4, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + b _081843DC + .pool +_081843CC: + strh r2, [r4, 0x32] + b _081843D6 +_081843D0: + adds r0, r4, 0 + bl sub_8184290 +_081843D6: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] +_081843DC: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_83 + + thumb_func_start pokemonanimfunc_84 +pokemonanimfunc_84: @ 81843E4 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _08184408 + adds r0, r4, 0 + bl sub_817F670 + movs r0, 0x1E + strh r0, [r4, 0x3C] + movs r0, 0x8 + strh r0, [r4, 0x38] + ldr r0, =0x0000ffe0 + strh r0, [r4, 0x36] + movs r0, 0x2 + strh r0, [r4, 0x34] + strh r5, [r4, 0x2E] +_08184408: + movs r2, 0x32 + ldrsh r1, [r4, r2] + movs r3, 0x3C + ldrsh r0, [r4, r3] + cmp r1, r0 + ble _08184454 + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + movs r2, 0 + strh r2, [r4, 0x24] + strh r2, [r4, 0x26] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + movs r3, 0x34 + ldrsh r1, [r4, r3] + lsls r0, 16 + asrs r0, 16 + cmp r1, r0 + bgt _08184450 + adds r0, r4, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + b _08184460 + .pool +_08184450: + strh r2, [r4, 0x32] + b _0818445A +_08184454: + adds r0, r4, 0 + bl sub_8184290 +_0818445A: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] +_08184460: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_84 + + thumb_func_start sub_8184468 +sub_8184468: @ 8184468 + push {r4-r6,lr} + adds r6, r0, 0 + movs r0, 0x32 + ldrsh r1, [r6, r0] + movs r2, 0x3C + ldrsh r0, [r6, r2] + cmp r1, r0 + ble _0818449C + movs r0, 0 + strh r0, [r6, 0x26] + movs r2, 0x80 + lsls r2, 1 + adds r0, r6, 0 + adds r1, r2, 0 + movs r3, 0 + bl sub_817F6D4 + adds r0, r6, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r6, 0x1C] + b _08184544 + .pool +_0818449C: + movs r1, 0x32 + ldrsh r0, [r6, r1] + movs r2, 0x3A + ldrsh r4, [r6, r2] + adds r1, r4, 0 + bl __modsi3 + lsls r0, 24 + lsrs r0, 16 + adds r1, r4, 0 + bl __divsi3 + adds r1, r0, 0 + cmp r1, 0 + bge _081844BC + adds r0, 0xFF +_081844BC: + asrs r0, 8 + lsls r0, 8 + subs r0, r1, r0 + lsls r0, 16 + lsrs r4, r0, 16 + ldrh r0, [r6, 0x32] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _081844F8 + lsls r4, 16 + asrs r4, 16 + adds r0, r4, 0 + movs r1, 0x20 + bl Sin + movs r1, 0x80 + lsls r1, 1 + adds r5, r1, 0 + adds r0, r5 + strh r0, [r6, 0x36] + adds r0, r4, 0 + movs r1, 0x20 + bl Sin + adds r0, r5 + strh r0, [r6, 0x38] + adds r0, r4, 0 + movs r1, 0x20 + b _0818451E +_081844F8: + lsls r4, 16 + asrs r4, 16 + adds r0, r4, 0 + movs r1, 0x8 + bl Sin + movs r2, 0x80 + lsls r2, 1 + adds r5, r2, 0 + adds r0, r5 + strh r0, [r6, 0x36] + adds r0, r4, 0 + movs r1, 0x8 + bl Sin + adds r0, r5 + strh r0, [r6, 0x38] + adds r0, r4, 0 + movs r1, 0x8 +_0818451E: + bl Sin + lsls r0, 24 + lsrs r0, 24 + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + bge _08184530 + adds r0, 0x7 +_08184530: + lsrs r0, 3 + strh r0, [r6, 0x26] + movs r0, 0x36 + ldrsh r1, [r6, r0] + movs r0, 0x38 + ldrsh r2, [r6, r0] + adds r0, r6, 0 + movs r3, 0 + bl sub_817F6D4 +_08184544: + ldrh r0, [r6, 0x32] + adds r0, 0x1 + strh r0, [r6, 0x32] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8184468 + + thumb_func_start pokemonanimfunc_85 +pokemonanimfunc_85: @ 8184550 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _08184570 + adds r0, r4, 0 + bl sub_817F670 + ldrh r0, [r4, 0x26] + adds r0, 0x2 + strh r0, [r4, 0x26] + movs r0, 0x28 + strh r0, [r4, 0x3A] + movs r0, 0x50 + strh r0, [r4, 0x3C] +_08184570: + adds r0, r4, 0 + bl sub_8184468 + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_85 + + thumb_func_start pokemonanimfunc_86 +pokemonanimfunc_86: @ 818457C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _0818459A + adds r0, r4, 0 + bl sub_817F670 + ldrh r0, [r4, 0x26] + adds r0, 0x2 + strh r0, [r4, 0x26] + movs r0, 0x28 + strh r0, [r4, 0x3A] + strh r0, [r4, 0x3C] +_0818459A: + adds r0, r4, 0 + bl sub_8184468 + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_86 + + thumb_func_start pokemonanimfunc_87 +pokemonanimfunc_87: @ 81845A8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _081845C6 + adds r0, r4, 0 + bl sub_817F670 + ldrh r0, [r4, 0x26] + adds r0, 0x2 + strh r0, [r4, 0x26] + movs r0, 0x50 + strh r0, [r4, 0x3A] + strh r0, [r4, 0x3C] +_081845C6: + adds r0, r4, 0 + bl sub_8184468 + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_87 + + thumb_func_start sub_81845D4 +sub_81845D4: @ 81845D4 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F70C + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x32] + subs r0, r1 + strh r0, [r4, 0x24] + movs r0, 0x24 + ldrsh r1, [r4, r0] + movs r2, 0x3A + ldrsh r0, [r4, r2] + cmn r1, r0 + bgt _081845FE + ldrh r0, [r4, 0x3A] + negs r0, r0 + strh r0, [r4, 0x24] + movs r0, 0x2 + strh r0, [r4, 0x3C] + ldr r0, =sub_8184610 + str r0, [r4, 0x1C] +_081845FE: + adds r0, r4, 0 + bl sub_817F70C + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81845D4 + + thumb_func_start sub_8184610 +sub_8184610: @ 8184610 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F70C + ldrh r0, [r4, 0x3C] + ldrh r2, [r4, 0x24] + adds r1, r0, r2 + strh r1, [r4, 0x24] + adds r0, 0x1 + strh r0, [r4, 0x3C] + lsls r1, 16 + cmp r1, 0 + blt _0818462E + ldr r0, =sub_8184640 + str r0, [r4, 0x1C] +_0818462E: + adds r0, r4, 0 + bl sub_817F70C + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8184610 + + thumb_func_start sub_8184640 +sub_8184640: @ 8184640 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F70C + ldrh r0, [r4, 0x3C] + ldrh r2, [r4, 0x24] + adds r1, r0, r2 + strh r1, [r4, 0x24] + adds r0, 0x1 + strh r0, [r4, 0x3C] + lsls r1, 16 + asrs r1, 16 + ldrh r2, [r4, 0x3A] + movs r3, 0x3A + ldrsh r0, [r4, r3] + cmp r1, r0 + ble _08184668 + strh r2, [r4, 0x24] + ldr r0, =sub_8184678 + str r0, [r4, 0x1C] +_08184668: + adds r0, r4, 0 + bl sub_817F70C + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8184640 + + thumb_func_start sub_8184678 +sub_8184678: @ 8184678 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F70C + ldrh r2, [r4, 0x34] + movs r0, 0x34 + ldrsh r1, [r4, r0] + movs r3, 0x38 + ldrsh r0, [r4, r3] + cmp r1, r0 + blt _08184698 + ldr r0, =sub_81846B8 + str r0, [r4, 0x1C] + b _081846AC + .pool +_08184698: + ldrh r0, [r4, 0x36] + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r3, 0x36 + ldrsh r0, [r4, r3] + negs r0, r0 + strh r0, [r4, 0x36] + adds r0, r2, 0x1 + strh r0, [r4, 0x34] +_081846AC: + adds r0, r4, 0 + bl sub_817F70C + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8184678 + + thumb_func_start sub_81846B8 +sub_81846B8: @ 81846B8 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F70C + ldrh r0, [r4, 0x24] + subs r0, 0x2 + strh r0, [r4, 0x24] + lsls r0, 16 + cmp r0, 0 + bgt _081846DA + movs r0, 0 + strh r0, [r4, 0x24] + adds r0, r4, 0 + bl sub_817F77C + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] +_081846DA: + adds r0, r4, 0 + bl sub_817F70C + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81846B8 + + thumb_func_start pokemonanimfunc_88 +pokemonanimfunc_88: @ 81846EC + push {r4,lr} + adds r4, r0, 0 + bl sub_817F670 + movs r2, 0 + movs r1, 0x4 + strh r1, [r4, 0x3C] + movs r0, 0xC + strh r0, [r4, 0x3A] + movs r0, 0x10 + strh r0, [r4, 0x38] + strh r1, [r4, 0x36] + strh r2, [r4, 0x34] + movs r0, 0x2 + strh r0, [r4, 0x32] + ldr r0, =sub_81845D4 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_88 + + thumb_func_start pokemonanimfunc_89 +pokemonanimfunc_89: @ 8184718 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F670 + movs r2, 0 + movs r1, 0x2 + strh r1, [r4, 0x3C] + movs r0, 0x8 + strh r0, [r4, 0x3A] + movs r0, 0xC + strh r0, [r4, 0x38] + strh r1, [r4, 0x36] + strh r2, [r4, 0x34] + movs r0, 0x1 + strh r0, [r4, 0x32] + ldr r0, =sub_81845D4 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_89 + + thumb_func_start pokemonanimfunc_8A +pokemonanimfunc_8A: @ 8184744 + push {r4,lr} + adds r4, r0, 0 + bl sub_817F670 + movs r1, 0 + strh r1, [r4, 0x3C] + movs r0, 0x6 + strh r0, [r4, 0x3A] + strh r0, [r4, 0x38] + movs r0, 0x2 + strh r0, [r4, 0x36] + strh r1, [r4, 0x34] + movs r0, 0x1 + strh r0, [r4, 0x32] + ldr r0, =sub_81845D4 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end pokemonanimfunc_8A + + thumb_func_start sub_8184770 +sub_8184770: @ 8184770 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x30] + strh r0, [r1, 0x24] + ldrh r2, [r1, 0x2E] + movs r3, 0x2E + ldrsh r0, [r1, r3] + cmp r0, 0x1 + ble _0818478E + movs r2, 0x30 + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1, 0x30] + movs r0, 0 + b _08184790 +_0818478E: + adds r0, r2, 0x1 +_08184790: + strh r0, [r1, 0x2E] + pop {r0} + bx r0 + thumb_func_end sub_8184770 + + thumb_func_start sub_8184798 +sub_8184798: @ 8184798 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r1, =gUnknown_0860AE7C + movs r2, 0x34 + ldrsh r0, [r4, r2] + lsls r0, 2 + adds r0, r1 + ldr r5, [r0] + adds r0, r4, 0 + bl sub_8184770 + movs r1, 0x3A + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r1, r0, r5 + ldrb r0, [r1, 0x1] + cmp r0, 0xFF + bne _081847D0 + movs r0, 0 + strh r0, [r4, 0x24] + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + b _0818482E + .pool +_081847D0: + movs r2, 0x36 + ldrsh r0, [r4, r2] + cmp r0, 0x1 + bne _08184800 + ldrb r0, [r1] + cmp r0, 0 + beq _081847F0 + ldrh r0, [r4, 0x3C] + ldr r3, =0x000003ff + movs r1, 0x10 + movs r2, 0x10 + bl BlendPalette + b _081847FC + .pool +_081847F0: + ldrh r0, [r4, 0x3C] + ldr r3, =0x000003ff + movs r1, 0x10 + movs r2, 0 + bl BlendPalette +_081847FC: + movs r0, 0 + strh r0, [r4, 0x36] +_08184800: + movs r1, 0x3A + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldrb r1, [r0, 0x1] + movs r2, 0x38 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _08184828 + movs r1, 0 + movs r0, 0x1 + strh r0, [r4, 0x36] + strh r1, [r4, 0x38] + ldrh r0, [r4, 0x3A] + adds r0, 0x1 + strh r0, [r4, 0x3A] + b _0818482E + .pool +_08184828: + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] +_0818482E: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8184798 + + thumb_func_start pokemonanimfunc_8B +pokemonanimfunc_8B: @ 8184834 + push {r4,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x32] + adds r0, 0x1 + movs r3, 0 + strh r0, [r2, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _08184860 + ldrb r0, [r2, 0x5] + lsrs r0, 4 + lsls r0, 4 + movs r4, 0x80 + lsls r4, 1 + adds r1, r4, 0 + adds r0, r1 + strh r0, [r2, 0x3C] + strh r3, [r2, 0x3A] + strh r3, [r2, 0x38] + strh r3, [r2, 0x36] + strh r3, [r2, 0x34] +_08184860: + adds r0, r2, 0 + bl sub_8184798 + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_8B + + thumb_func_start pokemonanimfunc_8C +pokemonanimfunc_8C: @ 818486C + push {r4,r5,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x32] + adds r0, 0x1 + movs r3, 0 + strh r0, [r2, 0x32] + lsls r0, 16 + asrs r4, r0, 16 + cmp r4, 0x1 + bne _08184898 + ldrb r0, [r2, 0x5] + lsrs r0, 4 + lsls r0, 4 + movs r5, 0x80 + lsls r5, 1 + adds r1, r5, 0 + adds r0, r1 + strh r0, [r2, 0x3C] + strh r3, [r2, 0x3A] + strh r3, [r2, 0x38] + strh r3, [r2, 0x36] + strh r4, [r2, 0x34] +_08184898: + adds r0, r2, 0 + bl sub_8184798 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_8C + + thumb_func_start pokemonanimfunc_8D +pokemonanimfunc_8D: @ 81848A4 + push {r4,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x32] + adds r0, 0x1 + movs r3, 0 + strh r0, [r2, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _081848D2 + ldrb r0, [r2, 0x5] + lsrs r0, 4 + lsls r0, 4 + movs r4, 0x80 + lsls r4, 1 + adds r1, r4, 0 + adds r0, r1 + strh r0, [r2, 0x3C] + strh r3, [r2, 0x3A] + strh r3, [r2, 0x38] + strh r3, [r2, 0x36] + movs r0, 0x2 + strh r0, [r2, 0x34] +_081848D2: + adds r0, r2, 0 + bl sub_8184798 + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_8D + + thumb_func_start sub_81848E0 +sub_81848E0: @ 81848E0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0x7F + ble _08184904 + ldrh r0, [r4, 0x3C] + movs r1, 0x10 + movs r2, 0 + movs r3, 0x1F + bl BlendPalette + ldr r0, =sub_8184D88 + str r0, [r4, 0x1C] + b _0818492A + .pool +_08184904: + movs r5, 0x32 + ldrsh r0, [r4, r5] + movs r1, 0xC + bl Sin + adds r2, r0, 0 + strh r2, [r4, 0x3A] + ldrh r0, [r4, 0x3C] + lsls r2, 24 + lsrs r2, 24 + ldr r3, =gUnknown_0860AE88 + movs r5, 0x30 + ldrsh r1, [r4, r5] + lsls r1, 1 + adds r1, r3 + ldrh r3, [r1] + movs r1, 0x10 + bl BlendPalette +_0818492A: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81848E0 + + thumb_func_start sub_8184934 +sub_8184934: @ 8184934 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x34 + ldrsh r1, [r4, r0] + movs r2, 0x36 + ldrsh r0, [r4, r2] + cmp r1, r0 + bge _081849CC + adds r0, r4, 0 + bl sub_817F70C + movs r3, 0x38 + ldrsh r1, [r4, r3] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r1, r0 + ble _08184970 + ldrh r0, [r4, 0x34] + adds r0, 0x1 + movs r2, 0 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x36 + ldrsh r1, [r4, r3] + cmp r0, r1 + bge _0818496C + strh r2, [r4, 0x38] +_0818496C: + strh r2, [r4, 0x24] + b _081849C6 +_08184970: + movs r0, 0x34 + ldrsh r1, [r4, r0] + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + lsls r1, 16 + asrs r1, 15 + movs r0, 0x1 + subs r0, r1 + lsls r0, 24 + lsrs r5, r0, 24 + movs r2, 0x38 + ldrsh r1, [r4, r2] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 7 + movs r3, 0x2E + ldrsh r1, [r4, r3] + bl __divsi3 + adds r1, r0, 0 + cmp r1, 0 + bge _081849A4 + adds r0, 0xFF +_081849A4: + asrs r0, 8 + lsls r0, 8 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x6 + bl Sin + lsls r1, r5, 24 + asrs r1, 24 + adds r2, r1, 0 + muls r2, r0 + adds r0, r2, 0 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] +_081849C6: + adds r0, r4, 0 + bl sub_817F70C +_081849CC: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8184934 + + thumb_func_start pokemonanimfunc_8E +pokemonanimfunc_8E: @ 81849D4 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r2, [r4, r0] + cmp r2, 0 + bne _081849FE + ldrb r0, [r4, 0x5] + lsrs r0, 4 + lsls r0, 4 + movs r3, 0x80 + lsls r3, 1 + adds r1, r3, 0 + adds r0, r1 + strh r0, [r4, 0x3C] + movs r0, 0xA + strh r0, [r4, 0x2E] + strh r2, [r4, 0x38] + movs r0, 0x2 + strh r0, [r4, 0x36] + strh r2, [r4, 0x34] + strh r2, [r4, 0x30] +_081849FE: + ldrh r0, [r4, 0x32] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08184A0E + adds r0, r4, 0 + bl sub_81848E0 +_08184A0E: + movs r0, 0x32 + ldrsh r2, [r4, r0] + movs r3, 0x2E + ldrsh r1, [r4, r3] + movs r3, 0x36 + ldrsh r0, [r4, r3] + muls r1, r0 + movs r0, 0x80 + subs r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + cmp r2, r0 + blt _08184A30 + adds r0, r4, 0 + bl sub_8184934 +_08184A30: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_8E + + thumb_func_start pokemonanimfunc_8F +pokemonanimfunc_8F: @ 8184A3C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r2, [r4, r0] + cmp r2, 0 + bne _08184A66 + ldrb r0, [r4, 0x5] + lsrs r0, 4 + lsls r0, 4 + movs r3, 0x80 + lsls r3, 1 + adds r1, r3, 0 + adds r0, r1 + strh r0, [r4, 0x3C] + movs r0, 0x14 + strh r0, [r4, 0x2E] + strh r2, [r4, 0x38] + movs r0, 0x1 + strh r0, [r4, 0x36] + strh r2, [r4, 0x34] + strh r2, [r4, 0x30] +_08184A66: + ldrh r0, [r4, 0x32] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08184A76 + adds r0, r4, 0 + bl sub_81848E0 +_08184A76: + movs r0, 0x32 + ldrsh r2, [r4, r0] + movs r3, 0x2E + ldrsh r1, [r4, r3] + movs r3, 0x36 + ldrsh r0, [r4, r3] + muls r1, r0 + movs r0, 0x80 + subs r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + cmp r2, r0 + blt _08184A98 + adds r0, r4, 0 + bl sub_8184934 +_08184A98: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_8F + + thumb_func_start pokemonanimfunc_90 +pokemonanimfunc_90: @ 8184AA4 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r2, [r4, r0] + cmp r2, 0 + bne _08184ACE + ldrb r0, [r4, 0x5] + lsrs r0, 4 + lsls r0, 4 + movs r3, 0x80 + lsls r3, 1 + adds r1, r3, 0 + adds r0, r1 + strh r0, [r4, 0x3C] + movs r0, 0x50 + strh r0, [r4, 0x2E] + strh r2, [r4, 0x38] + movs r0, 0x1 + strh r0, [r4, 0x36] + strh r2, [r4, 0x34] + strh r2, [r4, 0x30] +_08184ACE: + ldrh r0, [r4, 0x32] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08184ADE + adds r0, r4, 0 + bl sub_81848E0 +_08184ADE: + movs r0, 0x32 + ldrsh r2, [r4, r0] + movs r3, 0x2E + ldrsh r1, [r4, r3] + movs r3, 0x36 + ldrsh r0, [r4, r3] + muls r1, r0 + movs r0, 0x80 + subs r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + cmp r2, r0 + blt _08184B00 + adds r0, r4, 0 + bl sub_8184934 +_08184B00: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_90 + + thumb_func_start pokemonanimfunc_91 +pokemonanimfunc_91: @ 8184B0C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r2, [r4, r0] + cmp r2, 0 + bne _08184B38 + ldrb r0, [r4, 0x5] + lsrs r0, 4 + lsls r0, 4 + movs r3, 0x80 + lsls r3, 1 + adds r1, r3, 0 + adds r0, r1 + strh r0, [r4, 0x3C] + movs r0, 0xA + strh r0, [r4, 0x2E] + strh r2, [r4, 0x38] + movs r0, 0x2 + strh r0, [r4, 0x36] + strh r2, [r4, 0x34] + movs r0, 0x1 + strh r0, [r4, 0x30] +_08184B38: + ldrh r0, [r4, 0x32] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08184B48 + adds r0, r4, 0 + bl sub_81848E0 +_08184B48: + movs r0, 0x32 + ldrsh r2, [r4, r0] + movs r3, 0x2E + ldrsh r1, [r4, r3] + movs r3, 0x36 + ldrsh r0, [r4, r3] + muls r1, r0 + movs r0, 0x80 + subs r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + cmp r2, r0 + blt _08184B6A + adds r0, r4, 0 + bl sub_8184934 +_08184B6A: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_91 + + thumb_func_start pokemonanimfunc_92 +pokemonanimfunc_92: @ 8184B78 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r2, [r4, r0] + cmp r2, 0 + bne _08184BA2 + ldrb r0, [r4, 0x5] + lsrs r0, 4 + lsls r0, 4 + movs r3, 0x80 + lsls r3, 1 + adds r1, r3, 0 + adds r0, r1 + strh r0, [r4, 0x3C] + movs r0, 0x14 + strh r0, [r4, 0x2E] + strh r2, [r4, 0x38] + movs r0, 0x1 + strh r0, [r4, 0x36] + strh r2, [r4, 0x34] + strh r0, [r4, 0x30] +_08184BA2: + ldrh r0, [r4, 0x32] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08184BB2 + adds r0, r4, 0 + bl sub_81848E0 +_08184BB2: + movs r0, 0x32 + ldrsh r2, [r4, r0] + movs r3, 0x2E + ldrsh r1, [r4, r3] + movs r3, 0x36 + ldrsh r0, [r4, r3] + muls r1, r0 + movs r0, 0x80 + subs r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + cmp r2, r0 + blt _08184BD4 + adds r0, r4, 0 + bl sub_8184934 +_08184BD4: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_92 + + thumb_func_start pokemonanimfunc_93 +pokemonanimfunc_93: @ 8184BE0 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r2, [r4, r0] + cmp r2, 0 + bne _08184C0A + ldrb r0, [r4, 0x5] + lsrs r0, 4 + lsls r0, 4 + movs r3, 0x80 + lsls r3, 1 + adds r1, r3, 0 + adds r0, r1 + strh r0, [r4, 0x3C] + movs r0, 0x50 + strh r0, [r4, 0x2E] + strh r2, [r4, 0x38] + movs r0, 0x1 + strh r0, [r4, 0x36] + strh r2, [r4, 0x34] + strh r0, [r4, 0x30] +_08184C0A: + ldrh r0, [r4, 0x32] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08184C1A + adds r0, r4, 0 + bl sub_81848E0 +_08184C1A: + movs r0, 0x32 + ldrsh r2, [r4, r0] + movs r3, 0x2E + ldrsh r1, [r4, r3] + movs r3, 0x36 + ldrsh r0, [r4, r3] + muls r1, r0 + movs r0, 0x80 + subs r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + cmp r2, r0 + blt _08184C3C + adds r0, r4, 0 + bl sub_8184934 +_08184C3C: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_93 + + thumb_func_start pokemonanimfunc_94 +pokemonanimfunc_94: @ 8184C48 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r2, [r4, r0] + cmp r2, 0 + bne _08184C72 + ldrb r0, [r4, 0x5] + lsrs r0, 4 + lsls r0, 4 + movs r3, 0x80 + lsls r3, 1 + adds r1, r3, 0 + adds r0, r1 + strh r0, [r4, 0x3C] + movs r0, 0xA + strh r0, [r4, 0x2E] + strh r2, [r4, 0x38] + movs r0, 0x2 + strh r0, [r4, 0x36] + strh r2, [r4, 0x34] + strh r0, [r4, 0x30] +_08184C72: + ldrh r0, [r4, 0x32] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08184C82 + adds r0, r4, 0 + bl sub_81848E0 +_08184C82: + movs r0, 0x32 + ldrsh r2, [r4, r0] + movs r3, 0x2E + ldrsh r1, [r4, r3] + movs r3, 0x36 + ldrsh r0, [r4, r3] + muls r1, r0 + movs r0, 0x80 + subs r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + cmp r2, r0 + blt _08184CA4 + adds r0, r4, 0 + bl sub_8184934 +_08184CA4: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_94 + + thumb_func_start pokemonanimfunc_95 +pokemonanimfunc_95: @ 8184CB0 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r2, [r4, r0] + cmp r2, 0 + bne _08184CDC + ldrb r0, [r4, 0x5] + lsrs r0, 4 + lsls r0, 4 + movs r3, 0x80 + lsls r3, 1 + adds r1, r3, 0 + adds r0, r1 + strh r0, [r4, 0x3C] + movs r0, 0x14 + strh r0, [r4, 0x2E] + strh r2, [r4, 0x38] + movs r0, 0x1 + strh r0, [r4, 0x36] + strh r2, [r4, 0x34] + movs r0, 0x2 + strh r0, [r4, 0x30] +_08184CDC: + ldrh r0, [r4, 0x32] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08184CEC + adds r0, r4, 0 + bl sub_81848E0 +_08184CEC: + movs r0, 0x32 + ldrsh r2, [r4, r0] + movs r3, 0x2E + ldrsh r1, [r4, r3] + movs r3, 0x36 + ldrsh r0, [r4, r3] + muls r1, r0 + movs r0, 0x80 + subs r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + cmp r2, r0 + blt _08184D0E + adds r0, r4, 0 + bl sub_8184934 +_08184D0E: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_95 + + thumb_func_start pokemonanimfunc_96 +pokemonanimfunc_96: @ 8184D1C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r2, [r4, r0] + cmp r2, 0 + bne _08184D48 + ldrb r0, [r4, 0x5] + lsrs r0, 4 + lsls r0, 4 + movs r3, 0x80 + lsls r3, 1 + adds r1, r3, 0 + adds r0, r1 + strh r0, [r4, 0x3C] + movs r0, 0x50 + strh r0, [r4, 0x2E] + strh r2, [r4, 0x38] + movs r0, 0x1 + strh r0, [r4, 0x36] + strh r2, [r4, 0x34] + movs r0, 0x2 + strh r0, [r4, 0x30] +_08184D48: + ldrh r0, [r4, 0x32] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08184D58 + adds r0, r4, 0 + bl sub_81848E0 +_08184D58: + movs r0, 0x32 + ldrsh r2, [r4, r0] + movs r3, 0x2E + ldrsh r1, [r4, r3] + movs r3, 0x36 + ldrsh r0, [r4, r3] + muls r1, r0 + movs r0, 0x80 + subs r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + cmp r2, r0 + blt _08184D7A + adds r0, r4, 0 + bl sub_8184934 +_08184D7A: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemonanimfunc_96 + + thumb_func_start sub_8184D88 +sub_8184D88: @ 8184D88 + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08184D9C + ldr r0, =SpriteCallbackDummy + str r0, [r2, 0x1C] +_08184D9C: + pop {r0} + bx r0 + .pool + thumb_func_end sub_8184D88 + + .align 2, 0 @ Don't pad with nop. |