//
// Generated by Microsoft (R) HLSL Shader Compiler 9.24.950.2656
//
// Parameters:
//
//   sampler2D sDir;
//   sampler2D sMask;
//   sampler2D sPos;
//   float4 sp[4];
//
//
// Registers:
//
//   Name         Reg   Size
//   ------------ ----- ----
//   sp           c8       2
//   sPos         s0       1
//   sDir         s1       1
//   sMask        s3       1
//

    ps_3_0
    def c0, 0.5, 2, 1, 0
    dcl_texcoord v0.xy  // In<4,5>
    dcl_2d s0
    dcl_2d s1
    dcl_2d s3

#line 121 "h:\Users\Ryosuke\Documents\Visual Studio 2010\Projects\raytrace\shader.psh"
    texld r0, v0, s3
    add r0, -r0.y, c0.x
    texkill r0

#line 132
    rcp r0.x, c8.w

#line 123
    texld r1, v0, s0  // ::regp<0,1,2,3>

#line 128
    add r0.yzw, -r1.xxyz, c8.xxyz  // ::offset<0,1,2>

#line 124
    texld r2, v0, s1  // ::regs<0,1,2,3>

#line 129
    dp3 r0.y, r0.yzww, r2  // ::distance<0>
    mul r0.yzw, r2.xxyz, r0.y
    mad r0.yzw, r0, c0.y, r1.xxyz  // ::hit<0,1,2>
    add r1.xyz, r0.yzww, -c8
    mul r1.xyz, r0.x, -r1  // ::norm<0,1,2>
    dp3 r0.x, r2, r1  // ::cosine<0>

#line 38
    mul r3.xyz, r1, r0.x
    mad r3.xyz, r3, -c0.y, r2  // ::reflect_impl<0,1,2>

#line 134
    dp3 r3.w, r3, r3
    rsq r3.w, r3.w
    mul oC3.xyz, r3, r3.w  // ::inner1<12,13,14>

#line 43
    mul r3.x, c9.y, c9.y
    mad r3.y, r0.x, -r0.x, c0.z
    mad r3.x, r3.x, -r3.y, c0.z
    rsq r3.x, r3.x
    rcp r3.x, r3.x
    mul r3.xyz, r1, r3.x
    mad r2.xyz, r1, -r0.x, r2
    mad r2.xyz, r2, c9.y, -r3  // ::refract_impl<0,1,2>

#line 135
    nrm r3.xyz, r2  // ::refr<0,1,2>
    dp3 r1.x, r3, r1  // ::cosine2<0>
    mov oC1.xyz, r3  // ::inner1<4,5,6>
    mad r1.y, r0.x, c9.y, r1.x
    rcp r1.y, r1.y
    mad r1.z, r0.x, c9.y, -r1.x
    mul r1.y, r1.y, r1.z  // ::refp<0>

#line 145
    mad r1.z, r1.y, -r1.y, c0.z
    mul r1.y, r1.y, r1.y
    mul oC2.w, r1.w, r1.y  // ::inner1<11>
    mul oC0.w, r1.w, r1.z  // ::inner1<3>

#line 138
    mad r1.y, r1.x, c9.y, r0.x
    mad r0.x, r1.x, -c9.y, r0.x
    rcp r1.x, r1.y
    mul r0.x, r0.x, r1.x  // ::refs<0>

#line 145
    mad r1.x, r0.x, -r0.x, c0.z
    mul r0.x, r0.x, r0.x
    mul oC3.w, r2.w, r0.x  // ::inner1<15>
    mul oC1.w, r2.w, r1.x  // ::inner1<7>

#line 131
    mov oC0.xyz, r0.yzww  // ::inner1<0,1,2>
    mov oC2.xyz, r0.yzww  // ::inner1<8,9,10>

// approximately 49 instruction slots used (3 texture, 46 arithmetic)