//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
//   sampler2D DepthBuffer;
//   sampler2D NormalsBuffer;
//   float4 ScreenDimensions;
//   float3 gCameraPos;
//   float4x4 gInvViewProj;
//   bool gLightCastShadows[4];
//   float4 gLightColor[4];
//   float4 gSpotLightDirection;
//   float4 gSunAtlasShift[2];
//   float4x4 gSunMatrixSplits[4];
//   sampler2D gSunSampler;
//   float4 gSunSplitValues;
//   float4 gTime;
//   float4x4 gViewProj;
//   float4 gViewport;
//
//
// Registers:
//
//   Name                Reg   Size
//   ------------------- ----- ----
//   gLightCastShadows   b10      1
//   ScreenDimensions    c0       1
//   gViewport           c50      1
//   gTime               c51      1
//   gCameraPos          c52      1
//   gViewProj           c66      3
//   gInvViewProj        c70      4
//   gSpotLightDirection c104     1
//   gLightColor         c107     1
//   gSunAtlasShift      c142     2
//   gSunSplitValues     c144     1
//   gSunMatrixSplits    c145    16
//   NormalsBuffer       s0       1
//   DepthBuffer         s1       1
//   gSunSampler         s8       1
//

    ps_3_0
    def c1, 0.5, -0.5, 0.500488281, 0.00048828125
    def c2, 0.666666687, 1, 0.75, 0.5
    def c3, -0, -1, -2, -3
    def c4, 0.5, 2, -1, 1
    def c5, 0.0625, 255, 0, 0
    def c6, 4, 1, 0, 2
    def c7, 1, 0, -1, -2
	def c201, 1.0, 0.006, 0.0625, 0.0
    dcl vPos.xy
    dcl_2d s0
    dcl_2d s1
    dcl_2d s8
	dcl_2d s13
    add r0.xy, c4.x, vPos
    mul r0.zw, r0.xyxy, c0
    texld_pp r1, r0.zwzw, s0
    mad_pp r1.xyz, r1, c4.y, c4.z
    nrm_pp r2.xyz, r1
    mov r3.zw, c0
    mad r0.xy, r0, r3.zwzw, c51.yzzw
    texld r3, r0, s1
    rcp_pp r0.x, c50.z
    rcp_pp r0.y, c50.w
    mad r0.xy, r0.zwzw, r0, c50
    mad r0.x, r0.x, c4.y, c4.z
    add r0.y, -r0.y, c4.w
    mad r0.y, r0.y, c4.y, c4.z
	mov r10.xy, r0.xy
	mov r10.z, r3.x
	mov r10.w, c201.x
    mul r4, r0.y, c71
    mad r0, c70, r0.x, r4
    mad r0, c72, r3.x, r0
    add r0, r0, c73
    //rcp r0.w, r0.w
	
	
	texldl r12, c201.z, s13
	
	
	
	if_ne r12.x, c201.w
	rcp r0.w, r0.w
		mul r13.xyz, r0, r0.w  // ::worldSpacePos<0,1,2>
		//mov r13.w, r0.w
		//mov r13, r0
		mov r13.w, c201.x
		//mov r13.w, r0.w
	
	dp4 r10.z, r13, c68
    dp4 r10.x, r13, c66
    dp4 r10.y, r13, c67
    dp4 r10.w, r13, c69
	
	 //   mul r13, r10.y, c182
    //mad r13, c180, r10.x, r13
    //mad r13, c181, r10.z, r13
	//mad r13, c183, r10.w, r13
   
		
			//rcp r13.w, r13.w
		//mul r13.xyz, r13, r13.w  // ::worldSpacePos<0,1,2>
		//mov r13.w, c201.x
		
		//mul r11, r13.y, c181
		//mad r11, c180, r13.x, r11
		//mad r11, c182, r13.z, r11
		//mad r11, c183, r13.w, r11
		
		//mul r11, r13.y, c185
		//mad r11, c184, r13.x, r11
		//mad r11, c186, r13.z, r11
		//mad r11, c187, r13.w, r11
		
	//dp4 r0.z, r10, c186
    //dp4 r0.x, r10, c184
    //dp4 r0.y, r10, c185
    //dp4 r0.w, r10, c187
   
   
    //mul r11, r13.y, c185
    //mad r11, c184, r13.x, r11
    //mad r11, c186, r13.z, r11
	//mad r11, c187, r13.w, r11
		
		//add r11, r11, c183

	
//rcp r11.w, r11.w
        //rcp r3.x, r3.x
		add r12.y, r10.w, -r12.y
		//mul r12.y, r12.y, c201.y
		mul r12.x, r12.x, r12.y
		//mul r10.x, r10.x, -r12.x
		//mul r12.x, r12.x, c201.w
		add r10.x, r10.x, -r12.x
		
	
	
	
	
		//mul r0, r11.y, c185
		//mad r0, c184, r11.x, r0
		//mad r0, c186, r11.z, r0
		//mad r0, c187, r11.w, r0
		
		//mul r0, r11.y, c181
		//mad r0, c180, r11.x, r0
		//mad r0, c182, r11.z, r0
		//mad r0, c183, r11.w, r0
		
		//dp4 r0.z, r13, c182
    //dp4 r0.x, r13, c180
    //dp4 r0.y, r13, c181
    //dp4 r0.w, r13, c183
		
		mul r4, r10.y, c71
		mad r0, c70, r10.x, r4
		mad r0, c72, r10.z, r0
		mad r0, c73, r10.w, r0
		//add r0, r0, c73
		
		//add r0, r0, c187
		
	endif

		
	rcp r0.w, r0.w
	
		//add r12.y, r0.w, -r12.y
		//mul r12.x, r12.x, r12.y
		//mul r0.x, r0.x, -r12.x
	
    mul r3.xyz, r0.w, r0
	
	
	
    if b10
      mov r3.w, c4.w
      dp4_pp r1.x, r3, c68
	  mov r10.x , r1.x
      add r1.y, -r1.x, c144.w
      mad r3.xyz, r2, c6.x, r3
      add r4.xyz, r1.x, -c144
      cmp_pp r4.xyz, r4, c6.y, c6.z
      dp3_pp r1.x, r4, c4.w
      add r4, r1.x, c3
      mov r1.z, c6.z
      cmp r5, -r4_abs.x, c145, r1.z
      cmp r6, -r4_abs.x, c146, r1.z
      cmp r7, -r4_abs.x, c147, r1.z
      cmp r8, -r4_abs.x, c148, r1.z
      cmp r5, -r4_abs.y, c149, r5
      cmp r6, -r4_abs.y, c150, r6
      cmp r7, -r4_abs.y, c151, r7
      cmp r8, -r4_abs.y, c152, r8
      cmp r5, -r4_abs.z, c153, r5
      cmp r6, -r4_abs.z, c154, r6
      cmp r7, -r4_abs.z, c155, r7
      cmp r8, -r4_abs.z, c156, r8
      cmp r5, -r4_abs.w, c157, r5
      cmp r6, -r4_abs.w, c158, r6
      cmp r7, -r4_abs.w, c159, r7
      cmp r8, -r4_abs.w, c160, r8
      mov r3.w, c4.w
      dp4 r4.x, r3, r5
      dp4 r4.y, r3, r6
      dp4 r1.z, r3, r7
      dp4 r2.w, r3, r8
      rcp r2.w, r2.w
      mul r3.xy, r2.w, r4
      mad r3.xy, r3, c1, c1.z
      cmp_pp r2.w, r4.z, -c6.w, -c6.z
      add_pp r1.x, r1.x, r2.w
      add_pp r2.w, r1.x, r1.x
      mov r5, c143
      cmp r4, r4.z, r5, c142
      add r5, r2.w, c3
      cmp r5, -r5_abs, c6.y, c6.z
      dp4 r3.z, r4, r5
      mad r5.x, r3.x, c4.x, r3.z
      add r6, r2.w, c7
      cmp r6, -r6_abs, c6.y, c6.z
      dp4 r2.w, r4, r6
      mad r5.y, r3.y, c4.x, r2.w
      mad_pp r1.x, r1.x, -c2.x, c2.y
      mad_pp r1.x, r1.x, c2.z, c2.w
      mul r3.x, r1.x, c1.w
      mov r4.x, -r3.x
      mad r4.zw, r1.x, -c1.w, r5.xyxy
      texld r6, r4.zwzw, s8
      add r2.w, r1.z, -r6.x
      cmp r2.w, r2.w, c6.z, c6.y
      mov r4.y, c6.z
      add r4, r4.yxxy, r5.xyxy
      texld r6, r4, s8
      add r4.x, r1.z, -r6.x
      cmp r4.x, r4.x, c6.z, c6.w
      add r2.w, r2.w, r4.x
      mov r3.yw, -r3.x
      add r6, r3.xywx, r5.xyxy
      texld r7, r6, s8
      add r3.y, r1.z, -r7.x
      cmp r3.y, r3.y, c6.z, c6.y
      add r2.w, r2.w, r3.y
      texld r4, r4.zwzw, s8
      add r3.y, r1.z, -r4.x
      cmp r3.y, r3.y, c6.z, c6.w
      add r2.w, r2.w, r3.y
      texld r4, r5, s8
      add r3.y, r1.z, -r4.x
      cmp r3.y, r3.y, c6.z, c6.x
      add r2.w, r2.w, r3.y
      mov r3.z, c6.z
      add r3, r3.xzzx, r5.xyxy
      texld r4, r3, s8
      add r3.x, r1.z, -r4.x
      cmp r3.x, r3.x, c6.z, c6.w
      add r2.w, r2.w, r3.x
      texld r4, r6.zwzw, s8
      add r3.x, r1.z, -r4.x
      cmp r3.x, r3.x, c6.z, c6.y
      add r2.w, r2.w, r3.x
      texld r3, r3.zwzw, s8
      add r3.x, r1.z, -r3.x
      cmp r3.x, r3.x, c6.z, c6.w
      add r2.w, r2.w, r3.x
      mad r3.xy, r1.x, c1.w, r5
      texld r3, r3, s8
      add r1.x, r1.z, -r3.x
      cmp r1.x, r1.x, c6.z, c6.y
      add r1.x, r1.x, r2.w
      mul_pp r1.x, r1.x, c5.x
      cmp_pp r1.x, r1.y, r1.x, c4.w
    else
      mov_pp r1.x, c4.w
    endif
    mul_pp r1.xyz, r1.x, c107
    mul_pp r1.w, r1.w, c5.y
    mad r0.xyz, r0, -r0.w, c52
    dp3 r0.w, r0, r0
    rsq r0.w, r0.w
    mad_pp r0.xyz, r0, r0.w, c104
    nrm_pp r3.xyz, r0
    dp3_pp r0.x, r2, c104
    dp3_pp r0.y, r2, r3
    cmp_pp r0.z, -r0.x, c6.z, c6.y
    mul_pp r0.x, r0.x, r0.z
    cmp_pp r0.z, -r0.y, c6.z, r0.z
    pow_pp r2.x, r0.y, r1.w
    mul_pp r0.y, r0.z, r2.x
    mul_pp oC0.xyz, r1, r0.x
    mul_pp oC1.xyz, r1, r0.y
    mov_pp oC0.w, c4.w
    mov_pp oC1.w, c4.w
	//mov oC0.x, r10.z
	//mov oC1.x, r10.z

// approximately 145 instruction slots used (11 texture, 134 arithmetic)
 