Buffer<mixed4> t0 : register(t0);


Texture2D<float4> StereoParams : register(t125);
Texture1D<float4> IniParams : register(t120);

void main( 
  float3 v0 : POSITION0,
  float3 v1 : NORMAL0,
  float4 v2 : TANGENT0,
  float4 v3 : BLENDWEIGHT0,
  int4 v4 : BLENDINDICES0,
  out float3 o0 : POSITION0,
  out float4 o1 : TEXCOORD0,
  out float4 o2 : TEXCOORD1)
{
  float4 r0,r1,r2,r3,r4;
  uint4 bitmask, uiDest;
  float4 fDest;

  r0.xyzw = (int4)v4.xyzw * int4(3,3,3,3);
  r1.xyzw = t0.Load(r0.y).xyzw;
  r1.xyzw = v3.yyyy * r1.xyzw;
  r2.xyzw = t0.Load(r0.x).xyzw;
  r1.xyzw = v3.xxxx * r2.xyzw + r1.xyzw;
  r2.xyzw = t0.Load(r0.z).xyzw;
  r0.xyzw = t0.Load(r0.w).xyzw;
  r1.xyzw = v3.zzzz * r2.xyzw + r1.xyzw;
  r0.xyzw = v3.wwww * r0.xyzw + r1.xyzw;
  r1.xyz = v0.xyz;
  r1.w = 1;
  o0.x = dot(r1.xyzw, r0.xyzw);
  r0.xyzw = mad((int4)v4.xxyy, int4(3,3,3,3), int4(2,1,2,1));
  r2.xyzw = t0.Load(r0.w).xyzw;
  r2.xyzw = v3.yyyy * r2.xyzw;
  r3.xyzw = t0.Load(r0.y).xyzw;
  r2.xyzw = v3.xxxx * r3.xyzw + r2.xyzw;
  r3.xyzw = mad((int4)v4.zzww, int4(3,3,3,3), int4(2,1,2,1));
  r4.xyzw = t0.Load(r3.y).xyzw;
  r2.xyzw = v3.zzzz * r4.xyzw + r2.xyzw;
  r4.xyzw = t0.Load(r3.w).xyzw;
  r2.xyzw = v3.wwww * r4.xyzw + r2.xyzw;
  o0.y = dot(r1.xyzw, r2.xyzw);
  r2.xyzw = t0.Load(r0.z).xyzw;
  r0.xyzw = t0.Load(r0.x).xyzw;
  r2.xyzw = v3.yyyy * r2.xyzw;
  r0.xyzw = v3.xxxx * r0.xyzw + r2.xyzw;
  r2.xyzw = t0.Load(r3.x).xyzw;
  r3.xyzw = t0.Load(r3.z).xyzw;
  r0.xyzw = v3.zzzz * r2.xyzw + r0.xyzw;
  r0.xyzw = v3.wwww * r3.xyzw + r0.xyzw;
  o0.z = dot(r1.xyzw, r0.xyzw);
  o1.xyz = float3(0,0,0);
  o2.xyzw = float4(0,0,0,0);
  return;
}