//More lightshafts.
//Found by masterotaku.
// ---- Created with 3Dmigoto v1.2.40 on Sat Jul 02 18:11:29 2016
Texture2D<float4> t0 : register(t0);

SamplerState s0_s : register(s0);

cbuffer cb3 : register(b3)
{
  float4 cb3[8];
}




// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);


void main( 
  float4 v0 : SV_Position0,
  out float4 o0 : SV_Target0)
{
  float4 r0,r1,r2,r3,r4,r5,r6;
  uint4 bitmask, uiDest;
  float4 fDest;

  float4 stereo = StereoParams.Load(0);
  float2 origin = cb3[4].xy;
  origin.x += stereo.x / 2;
  
  r0.xyzw = trunc(cb3[3].zwxy);
  r0.xy = v0.xy + -r0.xy;
  r1.xy = float2(0.5,0.5) + r0.zw;
  r1.zw = cb3[2].xy + r0.zw;
  r1.zw = float2(-0.5,-0.5) + r1.zw;
  r1.xyzw = r1.xyzw / cb3[0].xyxy;
  r0.xy = trunc(r0.xy);
  r0.xy = r0.xy + r0.zw;
  r0.xy = float2(0.5,0.5) + r0.xy;
  r0.xy = r0.xy / cb3[0].xy;
  r0.zw = r1.zw + -r1.xy;
  //r2.xy = cb3[4].xy * r0.zw + r1.xy;
  r2.xy = origin * r0.zw + r1.xy;
  r3.x = cb3[0].x / cb3[0].y;
  r2.zw = -r2.xy + r0.xy;
  r3.y = 1;
  r2.zw = r3.xy * r2.zw;
  r0.z = dot(r2.zw, r2.zw);
  r0.z = sqrt(r0.z);
  r0.z = r0.z / r0.w;
  r0.z = saturate(r0.z / cb3[5].x);
  r2.z = cmp(r0.z < 1);
  if (r2.z != 0) {
    r2.xy = r2.xy + -r0.xy;
    r2.z = dot(r2.xy, r2.xy);
    r2.w = sqrt(r2.z);
    r2.z = rsqrt(r2.z);
    r2.xy = r2.xy * r2.zz;
    r4.xyzw = cb3[5].xxxx * r2.xyxy;
    r4.xyzw = r4.xyzw * r0.wwww;
    r2.xy = r2.xy * r3.xy;
    r0.w = dot(r2.xy, r2.xy);
    r0.w = sqrt(r0.w);
    r3.xyzw = r4.xyzw / r0.wwww;
    r3.xyzw = float4(0.0500000007,0.0500000007,0.00250000018,0.00250000018) * r3.xyzw;
    r0.w = dot(r3.xy, r3.xy);
    r0.w = sqrt(r0.w);
    r0.w = r2.w / r0.w;
    r0.w = 1 + r0.w;
    r2.z = (int)r0.w;
    r0.w = (int)cb3[4].z;
    r4.x = dot(r3.zw, r3.zw);
    r4.x = sqrt(r4.x);
    r2.w = r2.w / r4.x;
    r2.w = 1 + r2.w;
    r4.z = (int)r2.w;
    r4.xy = r3.zw;
    r2.xy = r3.xy;
    r2.xyz = r0.www ? r4.xyz : r2.xyz;
    r3.xy = cmp(float2(0,0) < r2.xy);
    r1.zw = r1.zw + -r0.xy;
    r1.xy = r0.xy + -r1.xy;
    r1.xy = r3.xy ? r1.zw : r1.xy;
    r1.xy = r1.xy / abs(r2.xy);
    r1.xy = float2(1,1) + r1.xy;
    r1.xy = (int2)r1.xy;
    r1.x = min((int)r2.z, (int)r1.x);
    r1.x = min((int)r1.x, (int)r1.y);
    if (r0.w != 0) {
      r3.xyzw = cmp(int4(0,1,2,3) < (int4)r1.xxxx);
      r3.xyzw = r3.xyzw ? float4(1,1,1,1) : 0;
      r1.yzw = t0.SampleLevel(s0_s, r0.xy, 0).xyz;
      r2.zw = r2.xy + r0.xy;
      r4.xyz = t0.SampleLevel(s0_s, r2.zw, 0).xyz;
      r4.xyz = r4.xyz * r3.yyy;
      r1.yzw = r3.xxx * r1.yzw + r4.xyz;
      r2.zw = r2.xy * float2(2,2) + r0.xy;
      r4.xyz = t0.SampleLevel(s0_s, r2.zw, 0).xyz;
      r1.yzw = r3.zzz * r4.xyz + r1.yzw;
      r4.xyzw = r2.xyxy * float4(3,3,4,4) + r0.xyxy;
      r3.xyz = t0.SampleLevel(s0_s, r4.xy, 0).xyz;
      r1.yzw = r3.www * r3.xyz + r1.yzw;
      r3.xyzw = cmp(int4(4,5,6,7) < (int4)r1.xxxx);
      r3.xyzw = r3.xyzw ? float4(1,1,1,1) : 0;
      r4.xyz = t0.SampleLevel(s0_s, r4.zw, 0).xyz;
      r1.yzw = r3.xxx * r4.xyz + r1.yzw;
      r4.xyzw = r2.xyxy * float4(5,5,6,6) + r0.xyxy;
      r5.xyz = t0.SampleLevel(s0_s, r4.xy, 0).xyz;
      r1.yzw = r3.yyy * r5.xyz + r1.yzw;
      r4.xyz = t0.SampleLevel(s0_s, r4.zw, 0).xyz;
      r1.yzw = r3.zzz * r4.xyz + r1.yzw;
      r4.xyzw = r2.xyxy * float4(7,7,8,8) + r0.xyxy;
      r3.xyz = t0.SampleLevel(s0_s, r4.xy, 0).xyz;
      r1.yzw = r3.www * r3.xyz + r1.yzw;
      r3.xyzw = cmp(int4(8,9,10,11) < (int4)r1.xxxx);
      r3.xyzw = r3.xyzw ? float4(1,1,1,1) : 0;
      r4.xyz = t0.SampleLevel(s0_s, r4.zw, 0).xyz;
      r1.yzw = r3.xxx * r4.xyz + r1.yzw;
      r4.xyzw = r2.xyxy * float4(9,9,10,10) + r0.xyxy;
      r5.xyz = t0.SampleLevel(s0_s, r4.xy, 0).xyz;
      r1.yzw = r3.yyy * r5.xyz + r1.yzw;
      r4.xyz = t0.SampleLevel(s0_s, r4.zw, 0).xyz;
      r1.yzw = r3.zzz * r4.xyz + r1.yzw;
      r4.xyzw = r2.xyxy * float4(11,11,12,12) + r0.xyxy;
      r3.xyz = t0.SampleLevel(s0_s, r4.xy, 0).xyz;
      r1.yzw = r3.www * r3.xyz + r1.yzw;
      r3.xyzw = cmp(int4(12,13,14,15) < (int4)r1.xxxx);
      r3.xyzw = r3.xyzw ? float4(1,1,1,1) : 0;
      r4.xyz = t0.SampleLevel(s0_s, r4.zw, 0).xyz;
      r1.yzw = r3.xxx * r4.xyz + r1.yzw;
      r4.xyzw = r2.xyxy * float4(13,13,14,14) + r0.xyxy;
      r5.xyz = t0.SampleLevel(s0_s, r4.xy, 0).xyz;
      r1.yzw = r3.yyy * r5.xyz + r1.yzw;
      r4.xyz = t0.SampleLevel(s0_s, r4.zw, 0).xyz;
      r1.yzw = r3.zzz * r4.xyz + r1.yzw;
      r4.xyzw = r2.xyxy * float4(15,15,16,16) + r0.xyxy;
      r3.xyz = t0.SampleLevel(s0_s, r4.xy, 0).xyz;
      r1.yzw = r3.www * r3.xyz + r1.yzw;
      r3.xyzw = cmp(int4(16,17,18,19) < (int4)r1.xxxx);
      r3.xyzw = r3.xyzw ? float4(1,1,1,1) : 0;
      r4.xyz = t0.SampleLevel(s0_s, r4.zw, 0).xyz;
      r1.yzw = r3.xxx * r4.xyz + r1.yzw;
      r4.xyzw = r2.xyxy * float4(17,17,18,18) + r0.xyxy;
      r5.xyz = t0.SampleLevel(s0_s, r4.xy, 0).xyz;
      r1.yzw = r3.yyy * r5.xyz + r1.yzw;
      r4.xyz = t0.SampleLevel(s0_s, r4.zw, 0).xyz;
      r1.yzw = r3.zzz * r4.xyz + r1.yzw;
      r2.zw = r2.xy * float2(19,19) + r0.xy;
      r3.xyz = t0.SampleLevel(s0_s, r2.zw, 0).xyz;
      r1.yzw = r3.www * r3.xyz + r1.yzw;
      r1.yzw = cb3[6].xyz * r1.yzw;
    } else {
      r3.xyzw = cmp(int4(0,1,2,3) < (int4)r1.xxxx);
      r3.xyzw = r3.xyzw ? float4(1,1,1,1) : 0;
      r4.xyz = t0.SampleLevel(s0_s, r0.xy, 0).xyz;
      r2.z = dot(float3(0.212599993,0.715200007,0.0722000003), r4.xyz);
      r2.w = -cb3[7].x + r2.z;
      r2.zw = max(float2(9.99999975e-005,0), r2.zw);
      r4.w = saturate(cb3[7].y * r2.w);
      r2.w = r4.w * r2.w;
      r2.z = r2.w / r2.z;
      r4.xyz = r4.xyz * r2.zzz;
      r2.zw = r2.xy + r0.xy;
      r5.xyz = t0.SampleLevel(s0_s, r2.zw, 0).xyz;
      r2.z = dot(float3(0.212599993,0.715200007,0.0722000003), r5.xyz);
      r2.w = -cb3[7].x + r2.z;
      r2.zw = max(float2(9.99999975e-005,0), r2.zw);
      r4.w = saturate(cb3[7].y * r2.w);
      r2.w = r4.w * r2.w;
      r2.z = r2.w / r2.z;
      r5.xyz = r5.xyz * r2.zzz;
      r5.xyz = r5.xyz * r3.yyy;
      r4.xyz = r3.xxx * r4.xyz + r5.xyz;
      r2.zw = r2.xy * float2(2,2) + r0.xy;
      r5.xyz = t0.SampleLevel(s0_s, r2.zw, 0).xyz;
      r2.z = dot(float3(0.212599993,0.715200007,0.0722000003), r5.xyz);
      r2.w = -cb3[7].x + r2.z;
      r2.zw = max(float2(9.99999975e-005,0), r2.zw);
      r3.x = saturate(cb3[7].y * r2.w);
      r2.w = r3.x * r2.w;
      r2.z = r2.w / r2.z;
      r5.xyz = r5.xyz * r2.zzz;
      r3.xyz = r3.zzz * r5.xyz + r4.xyz;
      r4.xyzw = r2.xyxy * float4(3,3,4,4) + r0.xyxy;
      r5.xyz = t0.SampleLevel(s0_s, r4.xy, 0).xyz;
      r2.z = dot(float3(0.212599993,0.715200007,0.0722000003), r5.xyz);
      r2.w = -cb3[7].x + r2.z;
      r2.zw = max(float2(9.99999975e-005,0), r2.zw);
      r4.x = saturate(cb3[7].y * r2.w);
      r2.w = r4.x * r2.w;
      r2.z = r2.w / r2.z;
      r5.xyz = r5.xyz * r2.zzz;
      r3.xyz = r3.www * r5.xyz + r3.xyz;
      r5.xyzw = cmp(int4(4,5,6,7) < (int4)r1.xxxx);
      r5.xyzw = r5.xyzw ? float4(1,1,1,1) : 0;
      r4.xyz = t0.SampleLevel(s0_s, r4.zw, 0).xyz;
      r2.z = dot(float3(0.212599993,0.715200007,0.0722000003), r4.xyz);
      r2.w = -cb3[7].x + r2.z;
      r2.zw = max(float2(9.99999975e-005,0), r2.zw);
      r3.w = saturate(cb3[7].y * r2.w);
      r2.w = r3.w * r2.w;
      r2.z = r2.w / r2.z;
      r4.xyz = r4.xyz * r2.zzz;
      r3.xyz = r5.xxx * r4.xyz + r3.xyz;
      r4.xyzw = r2.xyxy * float4(5,5,6,6) + r0.xyxy;
      r6.xyz = t0.SampleLevel(s0_s, r4.xy, 0).xyz;
      r2.z = dot(float3(0.212599993,0.715200007,0.0722000003), r6.xyz);
      r2.w = -cb3[7].x + r2.z;
      r2.zw = max(float2(9.99999975e-005,0), r2.zw);
      r3.w = saturate(cb3[7].y * r2.w);
      r2.w = r3.w * r2.w;
      r2.z = r2.w / r2.z;
      r6.xyz = r6.xyz * r2.zzz;
      r3.xyz = r5.yyy * r6.xyz + r3.xyz;
      r4.xyz = t0.SampleLevel(s0_s, r4.zw, 0).xyz;
      r2.z = dot(float3(0.212599993,0.715200007,0.0722000003), r4.xyz);
      r2.w = -cb3[7].x + r2.z;
      r2.zw = max(float2(9.99999975e-005,0), r2.zw);
      r3.w = saturate(cb3[7].y * r2.w);
      r2.w = r3.w * r2.w;
      r2.z = r2.w / r2.z;
      r4.xyz = r4.xyz * r2.zzz;
      r3.xyz = r5.zzz * r4.xyz + r3.xyz;
      r4.xyzw = r2.xyxy * float4(7,7,8,8) + r0.xyxy;
      r5.xyz = t0.SampleLevel(s0_s, r4.xy, 0).xyz;
      r2.z = dot(float3(0.212599993,0.715200007,0.0722000003), r5.xyz);
      r2.w = -cb3[7].x + r2.z;
      r2.zw = max(float2(9.99999975e-005,0), r2.zw);
      r3.w = saturate(cb3[7].y * r2.w);
      r2.w = r3.w * r2.w;
      r2.z = r2.w / r2.z;
      r5.xyz = r5.xyz * r2.zzz;
      r3.xyz = r5.www * r5.xyz + r3.xyz;
      r5.xyzw = cmp(int4(8,9,10,11) < (int4)r1.xxxx);
      r5.xyzw = r5.xyzw ? float4(1,1,1,1) : 0;
      r4.xyz = t0.SampleLevel(s0_s, r4.zw, 0).xyz;
      r2.z = dot(float3(0.212599993,0.715200007,0.0722000003), r4.xyz);
      r2.w = -cb3[7].x + r2.z;
      r2.zw = max(float2(9.99999975e-005,0), r2.zw);
      r3.w = saturate(cb3[7].y * r2.w);
      r2.w = r3.w * r2.w;
      r2.z = r2.w / r2.z;
      r4.xyz = r4.xyz * r2.zzz;
      r3.xyz = r5.xxx * r4.xyz + r3.xyz;
      r4.xyzw = r2.xyxy * float4(9,9,10,10) + r0.xyxy;
      r6.xyz = t0.SampleLevel(s0_s, r4.xy, 0).xyz;
      r2.z = dot(float3(0.212599993,0.715200007,0.0722000003), r6.xyz);
      r2.w = -cb3[7].x + r2.z;
      r2.zw = max(float2(9.99999975e-005,0), r2.zw);
      r3.w = saturate(cb3[7].y * r2.w);
      r2.w = r3.w * r2.w;
      r2.z = r2.w / r2.z;
      r6.xyz = r6.xyz * r2.zzz;
      r3.xyz = r5.yyy * r6.xyz + r3.xyz;
      r4.xyz = t0.SampleLevel(s0_s, r4.zw, 0).xyz;
      r2.z = dot(float3(0.212599993,0.715200007,0.0722000003), r4.xyz);
      r2.w = -cb3[7].x + r2.z;
      r2.zw = max(float2(9.99999975e-005,0), r2.zw);
      r3.w = saturate(cb3[7].y * r2.w);
      r2.w = r3.w * r2.w;
      r2.z = r2.w / r2.z;
      r4.xyz = r4.xyz * r2.zzz;
      r3.xyz = r5.zzz * r4.xyz + r3.xyz;
      r4.xyzw = r2.xyxy * float4(11,11,12,12) + r0.xyxy;
      r5.xyz = t0.SampleLevel(s0_s, r4.xy, 0).xyz;
      r2.z = dot(float3(0.212599993,0.715200007,0.0722000003), r5.xyz);
      r2.w = -cb3[7].x + r2.z;
      r2.zw = max(float2(9.99999975e-005,0), r2.zw);
      r3.w = saturate(cb3[7].y * r2.w);
      r2.w = r3.w * r2.w;
      r2.z = r2.w / r2.z;
      r5.xyz = r5.xyz * r2.zzz;
      r3.xyz = r5.www * r5.xyz + r3.xyz;
      r5.xyzw = cmp(int4(12,13,14,15) < (int4)r1.xxxx);
      r5.xyzw = r5.xyzw ? float4(1,1,1,1) : 0;
      r4.xyz = t0.SampleLevel(s0_s, r4.zw, 0).xyz;
      r2.z = dot(float3(0.212599993,0.715200007,0.0722000003), r4.xyz);
      r2.w = -cb3[7].x + r2.z;
      r2.zw = max(float2(9.99999975e-005,0), r2.zw);
      r3.w = saturate(cb3[7].y * r2.w);
      r2.w = r3.w * r2.w;
      r2.z = r2.w / r2.z;
      r4.xyz = r4.xyz * r2.zzz;
      r3.xyz = r5.xxx * r4.xyz + r3.xyz;
      r4.xyzw = r2.xyxy * float4(13,13,14,14) + r0.xyxy;
      r6.xyz = t0.SampleLevel(s0_s, r4.xy, 0).xyz;
      r2.z = dot(float3(0.212599993,0.715200007,0.0722000003), r6.xyz);
      r2.w = -cb3[7].x + r2.z;
      r2.zw = max(float2(9.99999975e-005,0), r2.zw);
      r3.w = saturate(cb3[7].y * r2.w);
      r2.w = r3.w * r2.w;
      r2.z = r2.w / r2.z;
      r6.xyz = r6.xyz * r2.zzz;
      r3.xyz = r5.yyy * r6.xyz + r3.xyz;
      r4.xyz = t0.SampleLevel(s0_s, r4.zw, 0).xyz;
      r2.z = dot(float3(0.212599993,0.715200007,0.0722000003), r4.xyz);
      r2.w = -cb3[7].x + r2.z;
      r2.zw = max(float2(9.99999975e-005,0), r2.zw);
      r3.w = saturate(cb3[7].y * r2.w);
      r2.w = r3.w * r2.w;
      r2.z = r2.w / r2.z;
      r4.xyz = r4.xyz * r2.zzz;
      r3.xyz = r5.zzz * r4.xyz + r3.xyz;
      r4.xyzw = r2.xyxy * float4(15,15,16,16) + r0.xyxy;
      r5.xyz = t0.SampleLevel(s0_s, r4.xy, 0).xyz;
      r2.z = dot(float3(0.212599993,0.715200007,0.0722000003), r5.xyz);
      r2.w = -cb3[7].x + r2.z;
      r2.zw = max(float2(9.99999975e-005,0), r2.zw);
      r3.w = saturate(cb3[7].y * r2.w);
      r2.w = r3.w * r2.w;
      r2.z = r2.w / r2.z;
      r5.xyz = r5.xyz * r2.zzz;
      r3.xyz = r5.www * r5.xyz + r3.xyz;
      r5.xyzw = cmp(int4(16,17,18,19) < (int4)r1.xxxx);
      r5.xyzw = r5.xyzw ? float4(1,1,1,1) : 0;
      r4.xyz = t0.SampleLevel(s0_s, r4.zw, 0).xyz;
      r1.x = dot(float3(0.212599993,0.715200007,0.0722000003), r4.xyz);
      r2.z = -cb3[7].x + r1.x;
      r2.z = max(0, r2.z);
      r2.w = saturate(cb3[7].y * r2.z);
      r2.z = r2.z * r2.w;
      r1.x = max(9.99999975e-005, r1.x);
      r1.x = r2.z / r1.x;
      r4.xyz = r4.xyz * r1.xxx;
      r3.xyz = r5.xxx * r4.xyz + r3.xyz;
      r4.xyzw = r2.xyxy * float4(17,17,18,18) + r0.xyxy;
      r6.xyz = t0.SampleLevel(s0_s, r4.xy, 0).xyz;
      r1.x = dot(float3(0.212599993,0.715200007,0.0722000003), r6.xyz);
      r2.z = -cb3[7].x + r1.x;
      r2.z = max(0, r2.z);
      r2.w = saturate(cb3[7].y * r2.z);
      r2.z = r2.z * r2.w;
      r1.x = max(9.99999975e-005, r1.x);
      r1.x = r2.z / r1.x;
      r6.xyz = r6.xyz * r1.xxx;
      r3.xyz = r5.yyy * r6.xyz + r3.xyz;
      r4.xyz = t0.SampleLevel(s0_s, r4.zw, 0).xyz;
      r1.x = dot(float3(0.212599993,0.715200007,0.0722000003), r4.xyz);
      r2.z = -cb3[7].x + r1.x;
      r2.z = max(0, r2.z);
      r2.w = saturate(cb3[7].y * r2.z);
      r2.z = r2.z * r2.w;
      r1.x = max(9.99999975e-005, r1.x);
      r1.x = r2.z / r1.x;
      r4.xyz = r4.xyz * r1.xxx;
      r3.xyz = r5.zzz * r4.xyz + r3.xyz;
      r0.xy = r2.xy * float2(19,19) + r0.xy;
      r2.xyz = t0.SampleLevel(s0_s, r0.xy, 0).xyz;
      r0.x = dot(float3(0.212599993,0.715200007,0.0722000003), r2.xyz);
      r0.y = -cb3[7].x + r0.x;
      r0.xy = max(float2(9.99999975e-005,0), r0.xy);
      r1.x = saturate(cb3[7].y * r0.y);
      r0.y = r1.x * r0.y;
      r0.x = r0.y / r0.x;
      r2.xyz = r2.xyz * r0.xxx;
      r1.yzw = r5.www * r2.xyz + r3.xyz;
    }
    r1.xyz = float3(0.0500000007,0.0500000007,0.0500000007) * r1.yzw;
    r0.x = 1 + -r0.z;
    r0.x = log2(r0.x);
    r0.x = cb3[5].y * r0.x;
    r0.x = exp2(r0.x);
    r0.y = r0.z * r0.z;
    r0.y = r0.y * cb3[5].z + 1;
    r0.x = r0.x / r0.y;
    r0.xyz = r1.xyz * r0.xxx;
    r0.xyz = r0.www ? r0.xyz : r1.xyz;
  } else {
    r0.xyz = float3(0,0,0);
  }
  o0.xyz = r0.xyz;
  o0.w = 1;
  return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.2.40 on Sat Jul 02 18:11:29 2016
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position              0   xyzw        0      POS   float   xy  
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb3[8], immediateIndexed
dcl_sampler s0, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_input_ps_siv linear noperspective v0.xy, position
dcl_output o0.xyzw
dcl_temps 7
round_z r0.xyzw, cb3[3].zwxy
add r0.xy, -r0.xyxx, v0.xyxx
add r1.xy, r0.zwzz, l(0.500000, 0.500000, 0.000000, 0.000000)
add r1.zw, r0.zzzw, cb3[2].xxxy
add r1.zw, r1.zzzw, l(0.000000, 0.000000, -0.500000, -0.500000)
div r1.xyzw, r1.xyzw, cb3[0].xyxy
round_z r0.xy, r0.xyxx
add r0.xy, r0.zwzz, r0.xyxx
add r0.xy, r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
div r0.xy, r0.xyxx, cb3[0].xyxx
add r0.zw, -r1.xxxy, r1.zzzw
mad r2.xy, cb3[4].xyxx, r0.zwzz, r1.xyxx
div r3.x, cb3[0].x, cb3[0].y
add r2.zw, r0.xxxy, -r2.xxxy
mov r3.y, l(1.000000)
mul r2.zw, r2.zzzw, r3.xxxy
dp2 r0.z, r2.zwzz, r2.zwzz
sqrt r0.z, r0.z
div r0.z, r0.z, r0.w
div_sat r0.z, r0.z, cb3[5].x
lt r2.z, r0.z, l(1.000000)
if_nz r2.z
  add r2.xy, -r0.xyxx, r2.xyxx
  dp2 r2.z, r2.xyxx, r2.xyxx
  sqrt r2.w, r2.z
  rsq r2.z, r2.z
  mul r2.xy, r2.zzzz, r2.xyxx
  mul r4.xyzw, r2.xyxy, cb3[5].xxxx
  mul r4.xyzw, r0.wwww, r4.xyzw
  mul r2.xy, r3.xyxx, r2.xyxx
  dp2 r0.w, r2.xyxx, r2.xyxx
  sqrt r0.w, r0.w
  div r3.xyzw, r4.xyzw, r0.wwww
  mul r3.xyzw, r3.xyzw, l(0.050000, 0.050000, 0.00250000018, 0.00250000018)
  dp2 r0.w, r3.xyxx, r3.xyxx
  sqrt r0.w, r0.w
  div r0.w, r2.w, r0.w
  add r0.w, r0.w, l(1.000000)
  ftoi r2.z, r0.w
  ftoi r0.w, cb3[4].z
  dp2 r4.x, r3.zwzz, r3.zwzz
  sqrt r4.x, r4.x
  div r2.w, r2.w, r4.x
  add r2.w, r2.w, l(1.000000)
  ftoi r4.z, r2.w
  mov r4.xy, r3.zwzz
  mov r2.xy, r3.xyxx
  movc r2.xyz, r0.wwww, r4.xyzx, r2.xyzx
  lt r3.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r2.xyxx
  add r1.zw, -r0.xxxy, r1.zzzw
  add r1.xy, -r1.xyxx, r0.xyxx
  movc r1.xy, r3.xyxx, r1.zwzz, r1.xyxx
  div r1.xy, r1.xyxx, |r2.xyxx|
  add r1.xy, r1.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000)
  ftoi r1.xy, r1.xyxx
  imin r1.x, r1.x, r2.z
  imin r1.x, r1.y, r1.x
  if_nz r0.w
    ilt r3.xyzw, l(0, 1, 2, 3), r1.xxxx
    and r3.xyzw, r3.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000)
    sample_l_indexable(texture2d)(float,float,float,float) r1.yzw, r0.xyxx, t0.wxyz, s0, l(0.000000)
    add r2.zw, r0.xxxy, r2.xxxy
    sample_l_indexable(texture2d)(float,float,float,float) r4.xyz, r2.zwzz, t0.xyzw, s0, l(0.000000)
    mul r4.xyz, r3.yyyy, r4.xyzx
    mad r1.yzw, r3.xxxx, r1.yyzw, r4.xxyz
    mad r2.zw, r2.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), r0.xxxy
    sample_l_indexable(texture2d)(float,float,float,float) r4.xyz, r2.zwzz, t0.xyzw, s0, l(0.000000)
    mad r1.yzw, r3.zzzz, r4.xxyz, r1.yyzw
    mad r4.xyzw, r2.xyxy, l(3.000000, 3.000000, 4.000000, 4.000000), r0.xyxy
    sample_l_indexable(texture2d)(float,float,float,float) r3.xyz, r4.xyxx, t0.xyzw, s0, l(0.000000)
    mad r1.yzw, r3.wwww, r3.xxyz, r1.yyzw
    ilt r3.xyzw, l(4, 5, 6, 7), r1.xxxx
    and r3.xyzw, r3.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000)
    sample_l_indexable(texture2d)(float,float,float,float) r4.xyz, r4.zwzz, t0.xyzw, s0, l(0.000000)
    mad r1.yzw, r3.xxxx, r4.xxyz, r1.yyzw
    mad r4.xyzw, r2.xyxy, l(5.000000, 5.000000, 6.000000, 6.000000), r0.xyxy
    sample_l_indexable(texture2d)(float,float,float,float) r5.xyz, r4.xyxx, t0.xyzw, s0, l(0.000000)
    mad r1.yzw, r3.yyyy, r5.xxyz, r1.yyzw
    sample_l_indexable(texture2d)(float,float,float,float) r4.xyz, r4.zwzz, t0.xyzw, s0, l(0.000000)
    mad r1.yzw, r3.zzzz, r4.xxyz, r1.yyzw
    mad r4.xyzw, r2.xyxy, l(7.000000, 7.000000, 8.000000, 8.000000), r0.xyxy
    sample_l_indexable(texture2d)(float,float,float,float) r3.xyz, r4.xyxx, t0.xyzw, s0, l(0.000000)
    mad r1.yzw, r3.wwww, r3.xxyz, r1.yyzw
    ilt r3.xyzw, l(8, 9, 10, 11), r1.xxxx
    and r3.xyzw, r3.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000)
    sample_l_indexable(texture2d)(float,float,float,float) r4.xyz, r4.zwzz, t0.xyzw, s0, l(0.000000)
    mad r1.yzw, r3.xxxx, r4.xxyz, r1.yyzw
    mad r4.xyzw, r2.xyxy, l(9.000000, 9.000000, 10.000000, 10.000000), r0.xyxy
    sample_l_indexable(texture2d)(float,float,float,float) r5.xyz, r4.xyxx, t0.xyzw, s0, l(0.000000)
    mad r1.yzw, r3.yyyy, r5.xxyz, r1.yyzw
    sample_l_indexable(texture2d)(float,float,float,float) r4.xyz, r4.zwzz, t0.xyzw, s0, l(0.000000)
    mad r1.yzw, r3.zzzz, r4.xxyz, r1.yyzw
    mad r4.xyzw, r2.xyxy, l(11.000000, 11.000000, 12.000000, 12.000000), r0.xyxy
    sample_l_indexable(texture2d)(float,float,float,float) r3.xyz, r4.xyxx, t0.xyzw, s0, l(0.000000)
    mad r1.yzw, r3.wwww, r3.xxyz, r1.yyzw
    ilt r3.xyzw, l(12, 13, 14, 15), r1.xxxx
    and r3.xyzw, r3.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000)
    sample_l_indexable(texture2d)(float,float,float,float) r4.xyz, r4.zwzz, t0.xyzw, s0, l(0.000000)
    mad r1.yzw, r3.xxxx, r4.xxyz, r1.yyzw
    mad r4.xyzw, r2.xyxy, l(13.000000, 13.000000, 14.000000, 14.000000), r0.xyxy
    sample_l_indexable(texture2d)(float,float,float,float) r5.xyz, r4.xyxx, t0.xyzw, s0, l(0.000000)
    mad r1.yzw, r3.yyyy, r5.xxyz, r1.yyzw
    sample_l_indexable(texture2d)(float,float,float,float) r4.xyz, r4.zwzz, t0.xyzw, s0, l(0.000000)
    mad r1.yzw, r3.zzzz, r4.xxyz, r1.yyzw
    mad r4.xyzw, r2.xyxy, l(15.000000, 15.000000, 16.000000, 16.000000), r0.xyxy
    sample_l_indexable(texture2d)(float,float,float,float) r3.xyz, r4.xyxx, t0.xyzw, s0, l(0.000000)
    mad r1.yzw, r3.wwww, r3.xxyz, r1.yyzw
    ilt r3.xyzw, l(16, 17, 18, 19), r1.xxxx
    and r3.xyzw, r3.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000)
    sample_l_indexable(texture2d)(float,float,float,float) r4.xyz, r4.zwzz, t0.xyzw, s0, l(0.000000)
    mad r1.yzw, r3.xxxx, r4.xxyz, r1.yyzw
    mad r4.xyzw, r2.xyxy, l(17.000000, 17.000000, 18.000000, 18.000000), r0.xyxy
    sample_l_indexable(texture2d)(float,float,float,float) r5.xyz, r4.xyxx, t0.xyzw, s0, l(0.000000)
    mad r1.yzw, r3.yyyy, r5.xxyz, r1.yyzw
    sample_l_indexable(texture2d)(float,float,float,float) r4.xyz, r4.zwzz, t0.xyzw, s0, l(0.000000)
    mad r1.yzw, r3.zzzz, r4.xxyz, r1.yyzw
    mad r2.zw, r2.xxxy, l(0.000000, 0.000000, 19.000000, 19.000000), r0.xxxy
    sample_l_indexable(texture2d)(float,float,float,float) r3.xyz, r2.zwzz, t0.xyzw, s0, l(0.000000)
    mad r1.yzw, r3.wwww, r3.xxyz, r1.yyzw
    mul r1.yzw, r1.yyzw, cb3[6].xxyz
  else 
    ilt r3.xyzw, l(0, 1, 2, 3), r1.xxxx
    and r3.xyzw, r3.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000)
    sample_l_indexable(texture2d)(float,float,float,float) r4.xyz, r0.xyxx, t0.xyzw, s0, l(0.000000)
    dp3 r2.z, l(0.212600, 0.715200, 0.072200, 0.000000), r4.xyzx
    add r2.w, r2.z, -cb3[7].x
    max r2.zw, r2.zzzw, l(0.000000, 0.000000, 0.000100, 0.000000)
    mul_sat r4.w, r2.w, cb3[7].y
    mul r2.w, r2.w, r4.w
    div r2.z, r2.w, r2.z
    mul r4.xyz, r2.zzzz, r4.xyzx
    add r2.zw, r0.xxxy, r2.xxxy
    sample_l_indexable(texture2d)(float,float,float,float) r5.xyz, r2.zwzz, t0.xyzw, s0, l(0.000000)
    dp3 r2.z, l(0.212600, 0.715200, 0.072200, 0.000000), r5.xyzx
    add r2.w, r2.z, -cb3[7].x
    max r2.zw, r2.zzzw, l(0.000000, 0.000000, 0.000100, 0.000000)
    mul_sat r4.w, r2.w, cb3[7].y
    mul r2.w, r2.w, r4.w
    div r2.z, r2.w, r2.z
    mul r5.xyz, r2.zzzz, r5.xyzx
    mul r5.xyz, r3.yyyy, r5.xyzx
    mad r4.xyz, r3.xxxx, r4.xyzx, r5.xyzx
    mad r2.zw, r2.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), r0.xxxy
    sample_l_indexable(texture2d)(float,float,float,float) r5.xyz, r2.zwzz, t0.xyzw, s0, l(0.000000)
    dp3 r2.z, l(0.212600, 0.715200, 0.072200, 0.000000), r5.xyzx
    add r2.w, r2.z, -cb3[7].x
    max r2.zw, r2.zzzw, l(0.000000, 0.000000, 0.000100, 0.000000)
    mul_sat r3.x, r2.w, cb3[7].y
    mul r2.w, r2.w, r3.x
    div r2.z, r2.w, r2.z
    mul r5.xyz, r2.zzzz, r5.xyzx
    mad r3.xyz, r3.zzzz, r5.xyzx, r4.xyzx
    mad r4.xyzw, r2.xyxy, l(3.000000, 3.000000, 4.000000, 4.000000), r0.xyxy
    sample_l_indexable(texture2d)(float,float,float,float) r5.xyz, r4.xyxx, t0.xyzw, s0, l(0.000000)
    dp3 r2.z, l(0.212600, 0.715200, 0.072200, 0.000000), r5.xyzx
    add r2.w, r2.z, -cb3[7].x
    max r2.zw, r2.zzzw, l(0.000000, 0.000000, 0.000100, 0.000000)
    mul_sat r4.x, r2.w, cb3[7].y
    mul r2.w, r2.w, r4.x
    div r2.z, r2.w, r2.z
    mul r5.xyz, r2.zzzz, r5.xyzx
    mad r3.xyz, r3.wwww, r5.xyzx, r3.xyzx
    ilt r5.xyzw, l(4, 5, 6, 7), r1.xxxx
    and r5.xyzw, r5.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000)
    sample_l_indexable(texture2d)(float,float,float,float) r4.xyz, r4.zwzz, t0.xyzw, s0, l(0.000000)
    dp3 r2.z, l(0.212600, 0.715200, 0.072200, 0.000000), r4.xyzx
    add r2.w, r2.z, -cb3[7].x
    max r2.zw, r2.zzzw, l(0.000000, 0.000000, 0.000100, 0.000000)
    mul_sat r3.w, r2.w, cb3[7].y
    mul r2.w, r2.w, r3.w
    div r2.z, r2.w, r2.z
    mul r4.xyz, r2.zzzz, r4.xyzx
    mad r3.xyz, r5.xxxx, r4.xyzx, r3.xyzx
    mad r4.xyzw, r2.xyxy, l(5.000000, 5.000000, 6.000000, 6.000000), r0.xyxy
    sample_l_indexable(texture2d)(float,float,float,float) r6.xyz, r4.xyxx, t0.xyzw, s0, l(0.000000)
    dp3 r2.z, l(0.212600, 0.715200, 0.072200, 0.000000), r6.xyzx
    add r2.w, r2.z, -cb3[7].x
    max r2.zw, r2.zzzw, l(0.000000, 0.000000, 0.000100, 0.000000)
    mul_sat r3.w, r2.w, cb3[7].y
    mul r2.w, r2.w, r3.w
    div r2.z, r2.w, r2.z
    mul r6.xyz, r2.zzzz, r6.xyzx
    mad r3.xyz, r5.yyyy, r6.xyzx, r3.xyzx
    sample_l_indexable(texture2d)(float,float,float,float) r4.xyz, r4.zwzz, t0.xyzw, s0, l(0.000000)
    dp3 r2.z, l(0.212600, 0.715200, 0.072200, 0.000000), r4.xyzx
    add r2.w, r2.z, -cb3[7].x
    max r2.zw, r2.zzzw, l(0.000000, 0.000000, 0.000100, 0.000000)
    mul_sat r3.w, r2.w, cb3[7].y
    mul r2.w, r2.w, r3.w
    div r2.z, r2.w, r2.z
    mul r4.xyz, r2.zzzz, r4.xyzx
    mad r3.xyz, r5.zzzz, r4.xyzx, r3.xyzx
    mad r4.xyzw, r2.xyxy, l(7.000000, 7.000000, 8.000000, 8.000000), r0.xyxy
    sample_l_indexable(texture2d)(float,float,float,float) r5.xyz, r4.xyxx, t0.xyzw, s0, l(0.000000)
    dp3 r2.z, l(0.212600, 0.715200, 0.072200, 0.000000), r5.xyzx
    add r2.w, r2.z, -cb3[7].x
    max r2.zw, r2.zzzw, l(0.000000, 0.000000, 0.000100, 0.000000)
    mul_sat r3.w, r2.w, cb3[7].y
    mul r2.w, r2.w, r3.w
    div r2.z, r2.w, r2.z
    mul r5.xyz, r2.zzzz, r5.xyzx
    mad r3.xyz, r5.wwww, r5.xyzx, r3.xyzx
    ilt r5.xyzw, l(8, 9, 10, 11), r1.xxxx
    and r5.xyzw, r5.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000)
    sample_l_indexable(texture2d)(float,float,float,float) r4.xyz, r4.zwzz, t0.xyzw, s0, l(0.000000)
    dp3 r2.z, l(0.212600, 0.715200, 0.072200, 0.000000), r4.xyzx
    add r2.w, r2.z, -cb3[7].x
    max r2.zw, r2.zzzw, l(0.000000, 0.000000, 0.000100, 0.000000)
    mul_sat r3.w, r2.w, cb3[7].y
    mul r2.w, r2.w, r3.w
    div r2.z, r2.w, r2.z
    mul r4.xyz, r2.zzzz, r4.xyzx
    mad r3.xyz, r5.xxxx, r4.xyzx, r3.xyzx
    mad r4.xyzw, r2.xyxy, l(9.000000, 9.000000, 10.000000, 10.000000), r0.xyxy
    sample_l_indexable(texture2d)(float,float,float,float) r6.xyz, r4.xyxx, t0.xyzw, s0, l(0.000000)
    dp3 r2.z, l(0.212600, 0.715200, 0.072200, 0.000000), r6.xyzx
    add r2.w, r2.z, -cb3[7].x
    max r2.zw, r2.zzzw, l(0.000000, 0.000000, 0.000100, 0.000000)
    mul_sat r3.w, r2.w, cb3[7].y
    mul r2.w, r2.w, r3.w
    div r2.z, r2.w, r2.z
    mul r6.xyz, r2.zzzz, r6.xyzx
    mad r3.xyz, r5.yyyy, r6.xyzx, r3.xyzx
    sample_l_indexable(texture2d)(float,float,float,float) r4.xyz, r4.zwzz, t0.xyzw, s0, l(0.000000)
    dp3 r2.z, l(0.212600, 0.715200, 0.072200, 0.000000), r4.xyzx
    add r2.w, r2.z, -cb3[7].x
    max r2.zw, r2.zzzw, l(0.000000, 0.000000, 0.000100, 0.000000)
    mul_sat r3.w, r2.w, cb3[7].y
    mul r2.w, r2.w, r3.w
    div r2.z, r2.w, r2.z
    mul r4.xyz, r2.zzzz, r4.xyzx
    mad r3.xyz, r5.zzzz, r4.xyzx, r3.xyzx
    mad r4.xyzw, r2.xyxy, l(11.000000, 11.000000, 12.000000, 12.000000), r0.xyxy
    sample_l_indexable(texture2d)(float,float,float,float) r5.xyz, r4.xyxx, t0.xyzw, s0, l(0.000000)
    dp3 r2.z, l(0.212600, 0.715200, 0.072200, 0.000000), r5.xyzx
    add r2.w, r2.z, -cb3[7].x
    max r2.zw, r2.zzzw, l(0.000000, 0.000000, 0.000100, 0.000000)
    mul_sat r3.w, r2.w, cb3[7].y
    mul r2.w, r2.w, r3.w
    div r2.z, r2.w, r2.z
    mul r5.xyz, r2.zzzz, r5.xyzx
    mad r3.xyz, r5.wwww, r5.xyzx, r3.xyzx
    ilt r5.xyzw, l(12, 13, 14, 15), r1.xxxx
    and r5.xyzw, r5.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000)
    sample_l_indexable(texture2d)(float,float,float,float) r4.xyz, r4.zwzz, t0.xyzw, s0, l(0.000000)
    dp3 r2.z, l(0.212600, 0.715200, 0.072200, 0.000000), r4.xyzx
    add r2.w, r2.z, -cb3[7].x
    max r2.zw, r2.zzzw, l(0.000000, 0.000000, 0.000100, 0.000000)
    mul_sat r3.w, r2.w, cb3[7].y
    mul r2.w, r2.w, r3.w
    div r2.z, r2.w, r2.z
    mul r4.xyz, r2.zzzz, r4.xyzx
    mad r3.xyz, r5.xxxx, r4.xyzx, r3.xyzx
    mad r4.xyzw, r2.xyxy, l(13.000000, 13.000000, 14.000000, 14.000000), r0.xyxy
    sample_l_indexable(texture2d)(float,float,float,float) r6.xyz, r4.xyxx, t0.xyzw, s0, l(0.000000)
    dp3 r2.z, l(0.212600, 0.715200, 0.072200, 0.000000), r6.xyzx
    add r2.w, r2.z, -cb3[7].x
    max r2.zw, r2.zzzw, l(0.000000, 0.000000, 0.000100, 0.000000)
    mul_sat r3.w, r2.w, cb3[7].y
    mul r2.w, r2.w, r3.w
    div r2.z, r2.w, r2.z
    mul r6.xyz, r2.zzzz, r6.xyzx
    mad r3.xyz, r5.yyyy, r6.xyzx, r3.xyzx
    sample_l_indexable(texture2d)(float,float,float,float) r4.xyz, r4.zwzz, t0.xyzw, s0, l(0.000000)
    dp3 r2.z, l(0.212600, 0.715200, 0.072200, 0.000000), r4.xyzx
    add r2.w, r2.z, -cb3[7].x
    max r2.zw, r2.zzzw, l(0.000000, 0.000000, 0.000100, 0.000000)
    mul_sat r3.w, r2.w, cb3[7].y
    mul r2.w, r2.w, r3.w
    div r2.z, r2.w, r2.z
    mul r4.xyz, r2.zzzz, r4.xyzx
    mad r3.xyz, r5.zzzz, r4.xyzx, r3.xyzx
    mad r4.xyzw, r2.xyxy, l(15.000000, 15.000000, 16.000000, 16.000000), r0.xyxy
    sample_l_indexable(texture2d)(float,float,float,float) r5.xyz, r4.xyxx, t0.xyzw, s0, l(0.000000)
    dp3 r2.z, l(0.212600, 0.715200, 0.072200, 0.000000), r5.xyzx
    add r2.w, r2.z, -cb3[7].x
    max r2.zw, r2.zzzw, l(0.000000, 0.000000, 0.000100, 0.000000)
    mul_sat r3.w, r2.w, cb3[7].y
    mul r2.w, r2.w, r3.w
    div r2.z, r2.w, r2.z
    mul r5.xyz, r2.zzzz, r5.xyzx
    mad r3.xyz, r5.wwww, r5.xyzx, r3.xyzx
    ilt r5.xyzw, l(16, 17, 18, 19), r1.xxxx
    and r5.xyzw, r5.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000)
    sample_l_indexable(texture2d)(float,float,float,float) r4.xyz, r4.zwzz, t0.xyzw, s0, l(0.000000)
    dp3 r1.x, l(0.212600, 0.715200, 0.072200, 0.000000), r4.xyzx
    add r2.z, r1.x, -cb3[7].x
    max r2.z, r2.z, l(0.000000)
    mul_sat r2.w, r2.z, cb3[7].y
    mul r2.z, r2.w, r2.z
    max r1.x, r1.x, l(0.000100)
    div r1.x, r2.z, r1.x
    mul r4.xyz, r1.xxxx, r4.xyzx
    mad r3.xyz, r5.xxxx, r4.xyzx, r3.xyzx
    mad r4.xyzw, r2.xyxy, l(17.000000, 17.000000, 18.000000, 18.000000), r0.xyxy
    sample_l_indexable(texture2d)(float,float,float,float) r6.xyz, r4.xyxx, t0.xyzw, s0, l(0.000000)
    dp3 r1.x, l(0.212600, 0.715200, 0.072200, 0.000000), r6.xyzx
    add r2.z, r1.x, -cb3[7].x
    max r2.z, r2.z, l(0.000000)
    mul_sat r2.w, r2.z, cb3[7].y
    mul r2.z, r2.w, r2.z
    max r1.x, r1.x, l(0.000100)
    div r1.x, r2.z, r1.x
    mul r6.xyz, r1.xxxx, r6.xyzx
    mad r3.xyz, r5.yyyy, r6.xyzx, r3.xyzx
    sample_l_indexable(texture2d)(float,float,float,float) r4.xyz, r4.zwzz, t0.xyzw, s0, l(0.000000)
    dp3 r1.x, l(0.212600, 0.715200, 0.072200, 0.000000), r4.xyzx
    add r2.z, r1.x, -cb3[7].x
    max r2.z, r2.z, l(0.000000)
    mul_sat r2.w, r2.z, cb3[7].y
    mul r2.z, r2.w, r2.z
    max r1.x, r1.x, l(0.000100)
    div r1.x, r2.z, r1.x
    mul r4.xyz, r1.xxxx, r4.xyzx
    mad r3.xyz, r5.zzzz, r4.xyzx, r3.xyzx
    mad r0.xy, r2.xyxx, l(19.000000, 19.000000, 0.000000, 0.000000), r0.xyxx
    sample_l_indexable(texture2d)(float,float,float,float) r2.xyz, r0.xyxx, t0.xyzw, s0, l(0.000000)
    dp3 r0.x, l(0.212600, 0.715200, 0.072200, 0.000000), r2.xyzx
    add r0.y, r0.x, -cb3[7].x
    max r0.xy, r0.xyxx, l(0.000100, 0.000000, 0.000000, 0.000000)
    mul_sat r1.x, r0.y, cb3[7].y
    mul r0.y, r0.y, r1.x
    div r0.x, r0.y, r0.x
    mul r2.xyz, r0.xxxx, r2.xyzx
    mad r1.yzw, r5.wwww, r2.xxyz, r3.xxyz
  endif 
  mul r1.xyz, r1.yzwy, l(0.050000, 0.050000, 0.050000, 0.000000)
  add r0.x, -r0.z, l(1.000000)
  log r0.x, r0.x
  mul r0.x, r0.x, cb3[5].y
  exp r0.x, r0.x
  mul r0.y, r0.z, r0.z
  mad r0.y, r0.y, cb3[5].z, l(1.000000)
  div r0.x, r0.x, r0.y
  mul r0.xyz, r0.xxxx, r1.xyzx
  movc r0.xyz, r0.wwww, r0.xyzx, r1.xyzx
else 
  mov r0.xyz, l(0,0,0,0)
endif 
mov o0.xyz, r0.xyzx
mov o0.w, l(1.000000)
ret 
// Approximately 0 instruction slots used

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
