uniform vec4 _BumpMap_ST;
uniform mat4 _LightMatrix0;
uniform vec4 _MainTex_ST;
uniform mat4 _Object2World;
uniform mat4 _World2Object;
uniform vec4 _WorldSpaceLightPos0;
attribute vec4 TANGENT;
varying vec4 xlv_FOG;
void main ()
{
  vec3 binormal_1;
  vec4 tmpvar_2;
  vec4 pos_3;
  pos_3 = (gl_ModelViewProjectionMatrix * gl_Vertex);
  tmpvar_2.xy = ((gl_MultiTexCoord0.xy * _MainTex_ST.xy) + _MainTex_ST.zw);
  tmpvar_2.zw = ((gl_MultiTexCoord0.xy * _BumpMap_ST.xy) + _BumpMap_ST.zw);
  binormal_1 = (((gl_Normal.yzx * TANGENT.zxy) - (gl_Normal.zxy * TANGENT.yzx)) * TANGENT.w);
  mat3 tmpvar_4;
  tmpvar_4[0].x = TANGENT.x;
  tmpvar_4[0].y = binormal_1.x;
  tmpvar_4[0].z = gl_Normal.x;
  tmpvar_4[1].x = TANGENT.y;
  tmpvar_4[1].y = binormal_1.y;
  tmpvar_4[1].z = gl_Normal.y;
  tmpvar_4[2].x = TANGENT.z;
  tmpvar_4[2].y = binormal_1.z;
  tmpvar_4[2].z = gl_Normal.z;
  gl_Position = pos_3;
  vec4 tmpvar_5;
  tmpvar_5.yzw = vec3(0.0, 0.0, 0.0);
  tmpvar_5.x = pos_3.z;
  xlv_FOG = tmpvar_5;
  gl_TexCoord[0] = tmpvar_2;
  vec4 tmpvar_6;
  tmpvar_6.w = 0.0;
  tmpvar_6.xyz = (tmpvar_4 * (_World2Object * _WorldSpaceLightPos0).xyz);
  gl_TexCoord[1] = tmpvar_6;
  vec4 tmpvar_7;
  tmpvar_7.zw = vec2(0.0, 0.0);
  tmpvar_7.xy = (_LightMatrix0 * (_Object2World * gl_Vertex)).xy;
  gl_TexCoord[2] = tmpvar_7;
}


// stats: 16 alu 0 tex 0 flow
// inputs: 4
//  #0: gl_MultiTexCoord0 (high float) 4x1 [-1] loc 8
//  #1: gl_Normal (high float) 3x1 [-1] loc 2
//  #2: gl_Vertex (high float) 4x1 [-1] loc 0
//  #3: TANGENT (high float) 4x1 [-1]
// uniforms: 7 (total size: 0)
//  #0: gl_ModelViewProjectionMatrix (high float) 4x4 [-1]
//  #1: _BumpMap_ST (high float) 4x1 [-1]
//  #2: _LightMatrix0 (high float) 4x4 [-1]
//  #3: _MainTex_ST (high float) 4x1 [-1]
//  #4: _Object2World (high float) 4x4 [-1]
//  #5: _World2Object (high float) 4x4 [-1]
//  #6: _WorldSpaceLightPos0 (high float) 4x1 [-1]
