
float4 ABS(float4 _Arg1)
{
	return abs(_Arg1);
}

float4 ADD(float4 _Arg1, float4 _Arg2)
{
	return _Arg1 + _Arg2;
}

float1 ARL(float1 _Arg1)
{
	return floor(_Arg1);	
}

float4 DP3(float3 _Arg1, float3 _Arg2)
{
	return dot(_Arg1, _Arg2);
}

float4 DP3(float4 _Arg1, float4 _Arg2)
{
	return dot(_Arg1.xyz, _Arg2.xyz);
}

float4 DP4(float4 _Arg1, float4 _Arg2)
{
	return dot(_Arg1, _Arg2);
}

float4 DPH(float4 _Arg1, float4 _Arg2)
{
	return dot(_Arg1.xyz, _Arg2.xyz) + _Arg2.w;
}

float4 DST(float4 _Arg1, float4 _Arg2)
{
	return float4(1.0, _Arg1.y * _Arg2.y, _Arg1.z, _Arg2.w);
}

float4 FLR(float4 _Arg)
{
	return floor(_Arg);
}

float4 FRC(float4 _Arg)
{
	return fraction(_Arg);
}

float4 LG2(float _Arg)
{
	return log2(_Arg);
}

float4 LOG(float _Arg)
{
	return log(_Arg);
}

float4 MAD(float4 _Arg1, float4 _Arg2, float4 _Arg3)
{
	return _Arg1 * _Arg2 + _Arg3;
}

float4 MAX(float4 _Arg1, float4 _Arg2)
{
	return max(_Arg1, _Arg2);
}

float4 MIN(float4 _Arg1, float4 _Arg2)
{
	return min(_Arg1, _Arg2);
}

float4 MOV(float4 _Src)
{
	return _Src;
}

float4 MUL(float4 _Arg1, float4 _Arg2)
{
	return _Arg1 * _Arg2;
}

float4 POW(float _Arg1, float _Arg2)
{
	return pow(_Arg1, _Arg2);
}

float4 RCP(float _Arg1)
{
	return 1 / _Arg1;
}

float4 RSQ(float _Arg1)
{
	return 1 / sqrt(_Arg1);
}

float4 SGE(float4 _Arg1, float4 _Arg2)
{
	return float4((_Arg1.x >= _Arg2.x)?1:0, (_Arg1.y >= _Arg2.y)?1:0, (_Arg1.z >= _Arg2.z)?1:0, (_Arg1.w >= _Arg2.w)?1:0);
}

float4 SLT(float4 _Arg1, float4 _Arg2)
{
	return float4((_Arg1.x < _Arg2.x)?1:0, (_Arg1.y < _Arg2.y)?1:0, (_Arg1.z < _Arg2.z)?1:0, (_Arg1.w < _Arg2.w)?1:0);
}

float4 SUB(float4 _Arg1, float4 _Arg2)
{
	return _Arg1 - _Arg2;
}

float3 XPD(float3 _Arg1, float3 _Arg2)
{
	return xpd(_Arg1, _Arg2);
}

float4 c[256] : register(c0);
void main(in float4 _vpos : ATTR0, in float4 _vc0 : ATTR2, in float4 _vt0 : ATTR8, in float4 _vt1 : ATTR9, in float4 _vt2 : ATTR10, in float4 _vt3 : ATTR11, out float4 _opos : POSITION, out float4 _oc0 : COLOR0, out float4 _ot0 : TEXCOORD0, out float4 _ot1 : TEXCOORD1, out float4 _ot2 : TEXCOORD2, out float4 _ot3 : TEXCOORD3)
{
	float4 r4;
	float4 r8;
	float4 r10;
	r8 = MUL(_vpos, c[11]);
	r8 = ADD(r8, c[12]);
	r10 = MUL(_vc0.yzwx, c[10]);
	_oc0 = MOV(r10);
	r4 = ADD(r8, c[7]);
	_opos.x = DP4(c[0], r4).x;
	_opos.y = DP4(c[1], r4).y;
	_opos.z = DP4(c[2], r4).z;
	_opos.w = DP4(c[3], r4).w;
	r4 = MUL(_vt0, c[13]);
	_ot0 = ADD(r4, c[14]);
	r4 = MUL(_vt1, c[15]);
	_ot1 = ADD(r4, c[16]);
	r4 = MUL(_vt2, c[17]);
	_ot2 = ADD(r4, c[18]);
	r4 = MUL(_vt3, c[19]);
	_ot3 = ADD(r4, c[20]);
}
