!!ARBvp1.0
# ARB_vertex_program generated by NVIDIA Cg compiler
# cgc version 1.0.0002, build date Dec 18 2002  12:39:16
# command line args: -profile arbvp1
# nv30vp backend compiling 'main' program
PARAM c0 = { 1, 0, 0, 0 };
#vendor NVIDIA Corporation
#version 1.0.02
#profile arbvp1
#program main
#var float4 vertex.position : $vin.POSITION : POSITION : 0 : 1
#var float4 vertex.normal : $vin.NORMAL : NORMAL : 0 : 1
#var float4 vertex.texcoord0 : $vin.TEXCOORD0 : TEXCOORD0 : 0 : 1
#var float4 vertex.texcoord1 : $vin.TEXCOORD1 : TEXCOORD1 : 0 : 1
#var float4 vertex.texcoord2 : $vin.TEXCOORD2 : TEXCOORD2 : 0 : 1
#var float4 position : $vout.POSITION : POSITION : -1 : 1
#var float4 texcoord0 : $vout.TEXCOORD0 : TEXCOORD0 : -1 : 1
#var float4 texcoord1 : $vout.TEXCOORD1 : TEXCOORD1 : -1 : 1
#var float4 texcoord2 : $vout.TEXCOORD2 : TEXCOORD2 : -1 : 1
#var float4 texcoord3 : $vout.TEXCOORD3 : TEXCOORD3 : -1 : 1
#var float4 texcoord4 : $vout.TEXCOORD4 : TEXCOORD4 : -1 : 1
#var float4 color0 : $vout.COLOR0 : COLOR0 : -1 : 1
#var float4 color1 : $vout.COLOR1 : COLOR1 : -1 : 1
TEMP R0, R1, R2, tanx,tany,tanz, eye;
ATTRIB v26 = vertex.texcoord[2];
ATTRIB v25 = vertex.texcoord[1];
ATTRIB v24 = vertex.texcoord[0];
ATTRIB v18 = vertex.normal;
ATTRIB v16 = vertex.position;
PARAM s21 = state.light[0].half;
PARAM s18 = state.light[0].position;
PARAM s4 = state.material.shininess;
PARAM s77 = state.lightprod[0].specular;
PARAM s76 = state.lightprod[0].diffuse;
PARAM s75 = state.lightprod[0].ambient;
PARAM modelview_it[4] = { state.matrix.modelview[0].invtrans };
PARAM s223[4] = { state.matrix.modelview[0] };
PARAM s259[4] = { state.matrix.mvp };
	MOV result.color.front.secondary, s77[0];
	DP4 R0.x, s259[0], v16;
	DP4 R0.y, s259[1], v16;
	DP4 R0.z, s259[2], v16;
	DP4 R0.w, s259[3], v16;
	MOV result.texcoord[4], R0;
	MOV result.position, R0;
	DP4 R0.x, v18, v18;
	RSQ R0.x, R0.x;
	MUL R1, R0.x, v18;
	MOV tanz, R1;
	MOV result.texcoord[1], tanz;
	
	DP3 R0.y, modelview_it[0].xyzx, R1.xyzx;
	DP3 R0.z, modelview_it[1].xyzx, R1.xyzx;
	DP3 R0.w, modelview_it[2].xyzx, R1.xyzx;
	DP3 R0.x, R0.yzwy, R0.yzwy;
	RSQ R0.x, R0.x;
	MUL R2.xyz, R0.x, R0.yzwy;
	DP3 R0.x, s18[0].xyzx, s18[0].xyzx;
	RSQ R0.x, R0.x;
	MUL R0.xyz, R0.x, s18[0].xyzx;
	DP3 R1.x, R2.xyzx, R0.xyzx;
	DP3 R0.x, s21[0].xyzx, s21[0].xyzx;
	RSQ R0.x, R0.x;
	MUL R0.xyz, R0.x, s21[0].xyzx;
	DP3 R1.y, R2.xyzx, R0.xyzx;
	MOV R1.zw, s4[0].x;
	LIT R0.y, R1;
	MUL result.color.front.primary.xyz, R0.y, s76[0];
	MOV result.color.front.primary.w, c0.x;
	MOV result.texcoord[0].xyz, v24;
	MOV result.texcoord[0].w, s4[0].x;
	DP3 R0.x, v25.xyzx, v25.xyzx;
	RSQ R0.x, R0.x;
	MUL tany.xyz, R0.x, v25.xyzx;
	MOV tany.w, c0.y;
	MOV result.texcoord[2],tany;
	
	DP3 R0.x, v26.xyzx, v26.xyzx;
	RSQ R0.x, R0.x;
	MUL tanx.xyz, R0.x, v26.xyzx;
	MOV tanx.w, c0.y;
	MOV result.texcoord[3], tanx;
	
	SUB eye, modelview_it[3], v16;
	DP3 result.texcoord[4].x, eye, tanx;
	DP3 result.texcoord[4].y, eye, tany;
	DP3 result.texcoord[4].z, eye, tanz;
	MOV result.texcoord[4].w, 1.0;
END
# 39 instructions
# 3 temp registers
# End of program
