varying lowp vec3 xlv_TEXCOORD3; varying lowp vec3 xlv_TEXCOORD2; varying mediump vec3 xlv_TEXCOORD1; varying mediump vec2 xlv_TEXCOORD0; uniform mediump float _Shininess; uniform sampler2D _MainTex; uniform lowp vec4 _LightColor0; uniform sampler2D _BumpMap; void main () { lowp vec4 c; lowp vec4 tmpvar_1; tmpvar_1 = texture2D (_MainTex, xlv_TEXCOORD0); lowp vec3 tmpvar_2; tmpvar_2 = ((texture2D (_BumpMap, xlv_TEXCOORD0).xyz * 2.0) - 1.0); lowp vec3 halfDir; halfDir = xlv_TEXCOORD1; lowp vec4 c_i0; lowp float spec; lowp float tmpvar_3; tmpvar_3 = max (0.0, dot (tmpvar_2, halfDir)); mediump float tmpvar_4; tmpvar_4 = (pow (tmpvar_3, (_Shininess * 128.0)) * tmpvar_1.w); spec = tmpvar_4; c_i0.xyz = ((((tmpvar_1.xyz * max (0.0, dot (tmpvar_2, xlv_TEXCOORD2))) + spec) * _LightColor0.xyz) * 2.0); c_i0.w = 0.0; c = c_i0; c.xyz = (c_i0.xyz + (tmpvar_1.xyz * xlv_TEXCOORD3)); gl_FragData[0] = c; }