//
// Generated by Microsoft (R) D3DX9 Shader Compiler 9.08.299.0000
//
//   vsa shaderdump19/SLS2075.vso /Fcshaderdump19/SLS2075.vso.dis
//
//
// Parameters:
//
float4 FogParam : register(c23);
float4 LightPosition[3] : register(c16);
row_major float4x4 ModelViewProj : register(c0);
row_major float4x4 ObjToCubeSpace : register(c8);

//float4 TESR_ShadowsDataint : register(c17);
//
//
// Registers:
//
//   Name           Reg   Size
//   -------------- ----- ----
//   ModelViewProj[0]  const_0        1
//   ModelViewProj[1]  const_1        1
//   ModelViewProj[2]  const_2        1
//   ModelViewProj[3]  const_3        1
//   ObjToCubeSpace[0] const_8        1
//   ObjToCubeSpace[1] const_9        1
//   ObjToCubeSpace[2] const_10        1
//   ObjToCubeSpace[3] const_11        1
//   LightPosition[0]  const_16       1
//   FogParam       const_23      1
//


// Structures:

struct VS_INPUT {
    float4 position : POSITION;
    float4 texcoord_0 : TEXCOORD0;
};

struct VS_OUTPUT {
    float4 position : POSITION;
    float2 texcoord_0 : TEXCOORD0;
    float4 texcoord_1 : TEXCOORD1;
    float4 texcoord_2 : TEXCOORD2;
    float4 texcoord_3 : TEXCOORD3;
    float3 texcoord_6 : TEXCOORD6;
};

// Code:

VS_OUTPUT main(VS_INPUT IN) {
    VS_OUTPUT OUT;

    float3 mdl0;

    mdl0.xyz = mul(float3x4(ModelViewProj[0].xyzw, ModelViewProj[1].xyzw, ModelViewProj[2].xyzw), IN.position.xyzw);
    OUT.position.w = dot(ModelViewProj[3].xyzw, IN.position.xyzw);
    OUT.position.xyz = mdl0.xyz;
    OUT.texcoord_0.xy = IN.texcoord_0.xy;
    OUT.texcoord_1.xyzw = mul(ObjToCubeSpace, IN.position.xyzw);
    OUT.texcoord_2.xyzw = LightPosition[0].xyzw;
    OUT.texcoord_3.w = 1 - saturate((FogParam.x - length(mdl0.xyz)) / FogParam.y);
	OUT.texcoord_3.z = 1.5; //TESR_ShadowsDataint.x;
    OUT.texcoord_3.xy = 0;
    OUT.texcoord_6.xyz = IN.position.xyz;

    return OUT;
};

// approximately 22 instruction slots used
