// non symetrical flame  (o5) => fix does not work, disabled using ps shader
// Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
//
// Parameters:
//
//   float4 chunkInfo;
//   float4 g_vDefLightDir;
//   float4 g_vFogColor;
//   float4 g_vFogDistance;
//   float4 g_vFogLayerPlane;
//   float4 skirtInfo;
//   float3 textureCoordsP1;
//   float3 textureCoordsP2;
//
//
// Registers:
//
//   Name             Reg   Size
//   ---------------- ----- ----
//   g_vDefLightDir   c0       1
//   g_vFogLayerPlane c1       1
//   g_vFogColor      c2       1
//   g_vFogDistance   c3       1
//   skirtInfo        c4       1
//   textureCoordsP1  c5       1
//   textureCoordsP2  c6       1
//   chunkInfo        c7       1
//
//
// Default values:
//
//   g_vDefLightDir
//     c0   = { 0, 0, 0, 0 };
//
//   g_vFogLayerPlane
//     c1   = { 0, -1, 0, 0 };
//
//   g_vFogColor
//     c2   = { 1, 0, 0, 1 };
//
//   g_vFogDistance
//     c3   = { 0, 0, 0, 0 };
//
//   skirtInfo
//     c4   = { 0, 0, 0, 0 };
//
//   textureCoordsP1
//     c5   = { 0, 0, 0, 0 };
//
//   textureCoordsP2
//     c6   = { 0, 0, 0, 0 };
//
//   chunkInfo
//     c7   = { 0, 0, 0, 0 };
//

    // preshader
    // neg r0.x, c4.x
    // lt r1.x, c4.x, r0.x
    // frc r0.x, c4.x
    // neg r1.y, r0.x
    // lt r2.x, r1.y, r0.x
    // add r0.x, r1.y, c4.x
    // mul r0.y, r1.x, r2.x
    // add r1.x, r0.y, r0.x
    // add c1.x, r1.x, (16)
    // add c2.x, r1.x, (32)
    // add c3.x, r1.x, (48)
    // mov c0.x, r1.x
    // mul r0.x, c4.y, (800)
    // add r1.x, r0.x, c4.z
    // neg r0.x, c4.y
    // add c4.x, r0.x, r1.x
    // mul r0.x, c4.y, (799)
    // add c5.x, r0.x, c4.w
    // rcp c6.x, c7.x
    // rcp c7.x, c7.y
    // neg r0.x, c5.x
    // add c8.x, r0.x, c6.x
    // neg r0.x, c5.y
    // add c9.x, r0.x, c6.y
    // ge ob0.x, c1.w, (0)
    // dot r0.xyz, (1, 1, 1), c2.xyz
    // lt c11.x, (0.001), r0.x
    // add r0.x, c3.w, (-0.25)
    // add c12.x, r0.x, r0.x
    // neg r0.x, c0.y
    // add r1.x, r0.x, (-0.05)
    // mul r0.x, r1.x, (10)
    // max r1.x, r0.x, (0)
    // min c13.x, r1.x, (1)

// approximately 34 instructions used
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
//
// Parameters:
//
//   float4x4 LightSpace;
//   float4 NormalsTextureSize;
//   float4 ShadowsDesc;
//   float3 chunkInSectorCoords;
//   float4 chunkInfo;
//   float3 g_deltaCam;
//   float4x4 g_mCloudsShadowsSpace;
//   float4x4 g_mWorldViewProjection;
//   float4x4 g_textureRotation;
//   float4 g_vFogColor;
//   float4 g_vFogDistance;
//   float4 g_vFogLayerPlane;
//   float4 g_vFogLayerSettings;
//   float4 skirtInfo;
//   float3 textureCoordsP1;
//
//
// Registers:
//
//   Name                   Reg   Size
//   ---------------------- ----- ----
//   LightSpace             c14      4
//   g_mWorldViewProjection c18      4
//   g_mCloudsShadowsSpace  c22      3
//   g_textureRotation      c25      2
//   ShadowsDesc            c27      1
//   g_vFogLayerPlane       c28      1
//   g_vFogLayerSettings    c29      1
//   g_vFogColor            c30      1
//   g_vFogDistance         c31      1
//   NormalsTextureSize     c32      1
//   g_deltaCam             c33      1
//   skirtInfo              c34      1
//   textureCoordsP1        c35      1
//   chunkInSectorCoords    c36      1
//   chunkInfo              c37      1
//
//
// Default values:
//
//   LightSpace
//     c14  = { 0, 0, 0, 0 };
//     c15  = { 0, 0, 0, 0 };
//     c16  = { 0, 0, 0, 0 };
//     c17  = { 0, 0, 0, 0 };
//
//   g_mWorldViewProjection
//     c18  = { 0, 0, 0, 0 };
//     c19  = { 0, 0, 0, 0 };
//     c20  = { 0, 0, 0, 0 };
//     c21  = { 0, 0, 0, 0 };
//
//   g_mCloudsShadowsSpace
//     c22  = { 0, 0, 0, 0 };
//     c23  = { 0, 0, 0, 0 };
//     c24  = { 0, 0, 0, 0 };
//
//   g_textureRotation
//     c25  = { 0, 0, 0, 0 };
//     c26  = { 0, 0, 0, 0 };
//
//   ShadowsDesc
//     c27  = { 0, 0, 0, 0 };
//
//   g_vFogLayerPlane
//     c28  = { 0, -1, 0, 0 };
//
//   g_vFogLayerSettings
//     c29  = { 0.0005, 300, 0.0125, 0 };
//
//   g_vFogColor
//     c30  = { 1, 0, 0, 1 };
//
//   g_vFogDistance
//     c31  = { 0, 0, 0, 0 };
//
//   NormalsTextureSize
//     c32  = { 256, 256, 0, 0 };
//
//   g_deltaCam
//     c33  = { 0, 0, 0, 0 };
//
//   skirtInfo
//     c34  = { 0, 0, 0, 0 };
//
//   textureCoordsP1
//     c35  = { 0, 0, 0, 0 };
//
//   chunkInSectorCoords
//     c36  = { 0, 0, 0, 0 };
//
//   chunkInfo
//     c37  = { 0, 0, 0, 0 };
//

    vs_3_0
    def c38, 50, 0, -16, -48
    def c39, -32, 0.00389105058, 9.99999975e-005, 257
    def c40, 1, 0.5, -0.5, 7.81249983e-005
    def c41, -1, 0, 1, 1.44254541
    def c42, -1.44269502, 0.800000012, -0.800000012, 5
    def c43, 0.333299994, 0, 0, 0
def c220, 0.25, 0, 0.0625, 0	
    dcl_texcoord v0
    dcl_position o0
    dcl_texcoord o1
    dcl_texcoord1 o2.xyz
    dcl_texcoord2 o3
    dcl_texcoord3 o4
    dcl_texcoord4 o5
    dcl_texcoord5 o6.xyz
    dcl_texcoord6 o7
dcl_2d s0		
    frc r0.x, v0.y
    add r0.y, -r0.x, v0.y
    slt r0.z, v0.y, -v0.y
    slt r0.x, -r0.x, r0.x
    mad r0.x, r0.z, r0.x, r0.y
    if_ge r0.x, c0.x
      if_lt r0.x, c1.x
        add r0.y, r0.x, -c0.x
        mul r0.y, r0.y, c34.y
        mov r1.x, c38.x
        mad r1.y, r0.y, r1.x, c34.w
        mov r1.x, c34.z
      else
        mov r1.xy, c38.y
      endif
      sge r0.y, r0.x, c1.x
      slt r0.z, r0.x, c2.x
      mul r0.y, r0.z, r0.y
      if_ne r0.y, -r0.y
        add r0.x, r0.x, c38.z
        add r0.y, r0.x, -c0.x
        mul r0.y, r0.y, c34.y
        mov r2.x, c38.x
        mad r1.x, r0.y, r2.x, c34.z
        mov r1.y, c34.w
      endif
      if_ge r0.x, c3.x
        add r0.x, r0.x, c38.w
        add r0.y, r0.x, -c0.x
        mul r0.y, r0.y, c34.y
        mov r2.x, c38.x
        mad r1.y, r0.y, r2.x, c34.w
        mov r1.x, c4.x
      endif
      sge r0.y, r0.x, c2.x
      slt r0.z, r0.x, c3.x
      mul r0.y, r0.z, r0.y
      if_ne r0.y, -r0.y
        add r0.y, r0.x, c39.x
        add r0.y, r0.y, -c0.x
        mul r0.y, r0.y, c34.y
        mov r2.x, c38.x
        mad r1.x, r0.y, r2.x, c34.z
        mov r1.y, c5.x
      endif
    else
      mul r0.y, r0.x, c39.y
      frc r0.z, r0.y
      add r0.w, r0.y, -r0.z
      slt r0.y, r0.y, -r0.y
      slt r0.z, -r0.z, r0.z
      mad r0.y, r0.y, r0.z, r0.w
      if_lt c38.y, r0.y
        mad r0.z, r0.x, c39.y, c39.z
        frc r0.w, r0.z
        add r0.z, -r0.w, r0.z
        mad r0.x, r0.z, -c39.w, r0.x
      endif
      mul r1.xy, r0, c38.x
    endif
    mad r1.z, v0.x, c37.z, c37.w
    add r0.xyz, r1.xzyw, c33
    mov r0.w, c40.x
    dp4 r2.x, r0, c18
    dp4 r2.y, r0, c19
    dp4 r2.z, r0, c20
    dp4 r2.w, r0, c21
    mul r3.xyz, r2.xwyw, c40.yyzw
//    add o5.xy, r3.y, r3.xzzw
add r9.xy, r3.y, r3.xzzw
    rcp r1.z, r2_abs.w
    mul r1.w, r1.z, r2.x
    mad o4.z, r1.w, c40.y, c40.y
    mul r1.z, r1.z, -r2.y
    mad o4.w, r1.z, c40.y, c40.y
    dp4 r1.z, r0, c14
    dp4 r1.w, r0, c15
    dp4 o3.z, r0, c16
    dp4 r3.x, r0, c17
    add r1.z, r1.z, r3.x
    mul o3.x, r1.z, c40.y
    add r1.z, -r1.w, r3.x
    mul o3.y, r1.z, c40.y
    add r1.zw, r1.xyxy, -c36.xyxy
    mul r1.z, r1.z, c6.x
    mul r1.w, r1.w, c7.x
    mov r4.xy, c35
    mad o1.x, r1.z, c8.x, r4.x
    mad o1.y, r1.w, c9.x, r4.y
    mul r4.xy, r1.yxzw, c40.w
    mad r4.zw, r4.y, c41.xyxy, c41.z
    dp3 r1.z, r4.xzww, c25.xyww
    dp3 r1.w, r4.xzww, c26.xyww
    mad o1.z, r1.z, c32.x, c32.z
    mad o1.w, r1.w, c32.y, c32.w
    dp4 o2.x, r0, c22
    dp4 o2.y, r0, c24
    dp3 r1.z, r0, r0
    rsq r1.z, r1.z
    rcp r1.z, r1.z
    mul r1.w, r1.z, c31.x
    min r1.w, r1.w, c40.x
    dp4 r0.w, r0, c28
    if b0
      if_lt r0.w, -c29.y
        mov r0.w, -c29.y
      endif
      if_ge r0.w, c38.y
        mov r3.y, c38.y
        mov r3.z, c40.x
      else
        nrm r4.xyz, -r0
        dp3 r3.w, c28, r4
        if_lt c39.z, r3_abs.w
          rcp r3.w, r3.w
          add r4.x, -r0.w, c28.w
          mul r4.y, r3.w, c28.w
          mad r3.y, r4.x, r3.w, -r4.y
        else
          mov r3.y, c38.y
        endif
        slt r3.z, r3.y, c39.z
      endif
      if_ne r3.z, -r3.z
        mov o7.w, c38.y
      else
        mul r3.y, r3.y, c29.x
        mul r3.y, r3.y, c41.w
        exp r3.y, r3.y
        rcp r3.y, r3.y
        add o7.w, -r3.y, c40.x
      endif
    else
      if_ge r0.w, c38.y
        nrm r4.xyz, -r0
        dp3 r0.w, c28, r4
        if_lt c39.z, r0_abs.w
          rcp r3.y, r0.w
          mul r0.w, r3.y, c28.w
        endif
        slt r3.y, r0.w, c39.z
      else
        dp3 r3.z, -r0, -r0
        rsq r3.z, r3.z
        rcp r0.w, r3.z
        mov r3.y, c38.y
      endif
      if_ne r3.y, -r3.y
        mov o7.w, c38.y
      else
        mul r0.w, r0.w, c29.x
        mul r0.w, r0.w, c41.w
        exp r0.w, r0.w
        rcp r0.w, r0.w
        add o7.w, r0.w, -c40.x
      endif
    endif
    mul r3.yzw, r1.w, c30.xxyz
    pow r0.w, r3.y, c30.w
    mul r0.w, r0.w, c42.x
    exp r0.w, r0.w
    add r4.x, -r0.w, c40.x
    pow r0.w, r3.z, c30.w
    mul r0.w, r0.w, c42.x
    exp r0.w, r0.w
    add r4.y, -r0.w, c40.x
    pow r0.w, r3.w, c30.w
    mul r0.w, r0.w, c42.x
    exp r0.w, r0.w
    add r4.z, -r0.w, c40.x
    slt r0.w, c42.y, r1.w
    mul r0.w, r0.w, c11.x
    if_ne r0.w, -r0.w
      add r0.w, r1.w, c42.z
      mul r0.w, r0.w, c42.w
      lrp r3.yzw, r0.w, c40.x, r4.xxyz
      mov r4.xyz, r3.yzww
    endif
    dp3 r0.w, r4, c43.x
    add r3.yzw, -r4.xxyz, r0.w
    mad o7.xyz, c12.x, r3.yzww, r4
    add r0.w, r1.z, -c27.x
    mul_sat r0.w, r0.w, c27.y
    add r0.w, r0.w, -c40.x
    mov r4.x, c40.x
    mad o2.z, c13.x, r0.w, r4.x
    mov o0, r2
    mov o3.w, r3.x
    mov o4.xy, r1
    mov o5.zw, r2
    mov o6.xyz, r0
mov r5, c220	
texldl r1, r5.z, s0	
mul r1.x, r1.x, -r5.x
add r9.x, r9.x, -r1.x  
mov r9.xyzw, c41.yyyy
	mov o5.xy, r9.xy

// approximately 230 instruction slots used
