//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
//   float4 LghtColor0;
//   float4 LghtDir0;
//   sampler3D LightVolume0;
//   sampler3D LightVolume1;
//   sampler3D LightVolume2;
//   float4 LightVolumeInvSize;
//   float4x4 LightVolumeInvWorld;
//   float4 LightVolumeSettings;
//   sampler2D PSSGShadowPSSMapDepthMap0;
//   sampler2D PSSGShadowPSSMapDepthMap1;
//   sampler2D PSSGShadowPSSMapDepthMap2;
//   sampler2D PSSGShadowPSSMapDepthMap3;
//   float4 PSSGShadowPSSMapDepthSplits;
//   float4x4 PSSGShadowPSSMapLightTextureMatrix0;
//   float4x4 PSSGShadowPSSMapLightTextureMatrix1;
//   float4x4 PSSGShadowPSSMapLightTextureMatrix2;
//   float4x4 PSSGShadowPSSMapLightTextureMatrix3;
//   float ShadowOpacity;
//   float cameraFar;
//   float cameraFarMinusNear;
//   float cameraNearFar;
//   float3 eyePositionWS;
//   sampler2D g_GBufferDepth;
//   sampler2D g_GBufferDiffuse;
//   sampler2D g_GBufferNormal;
//   sampler2D g_GBufferSpecular;
//   float g_RenderRatio;
//   float4 g_ShadowMapSizeAndDuDv;
//
//
// Registers:
//
//   Name                                Reg   Size
//   ----------------------------------- ----- ----
//   PSSGShadowPSSMapLightTextureMatrix0 c0       4
//   PSSGShadowPSSMapLightTextureMatrix1 c4       4
//   PSSGShadowPSSMapLightTextureMatrix2 c8       4
//   PSSGShadowPSSMapLightTextureMatrix3 c12      4
//   LightVolumeInvWorld                 c16      4
//   eyePositionWS                       c20      1
//   cameraFar                           c21      1
//   cameraNearFar                       c22      1
//   cameraFarMinusNear                  c23      1
//   g_RenderRatio                       c24      1
//   LghtColor0                          c25      1
//   LghtDir0                            c26      1
//   PSSGShadowPSSMapDepthSplits         c27      1
//   ShadowOpacity                       c28      1
//   g_ShadowMapSizeAndDuDv              c29      1
//   LightVolumeInvSize                  c30      1
//   LightVolumeSettings                 c31      1
//   g_GBufferDiffuse                    s0       1
//   g_GBufferNormal                     s1       1
//   g_GBufferSpecular                   s2       1
//   g_GBufferDepth                      s3       1
//   PSSGShadowPSSMapDepthMap0           s4       1
//   PSSGShadowPSSMapDepthMap1           s5       1
//   PSSGShadowPSSMapDepthMap2           s6       1
//   PSSGShadowPSSMapDepthMap3           s7       1
//   LightVolume0                        s8       1
//   LightVolume1                        s9       1
//   LightVolume2                        s10      1
//

    ps_3_0
    def c32, 1024, 0.5, 0, 8
    def c33, 80, 0.100000001, 40, 1
    def c34, 0.5, -0.5, 1.44269502, -115.415604
    def c35, 0.0397887453, 0.001953125, -1, 3
    def c36, 0.0666666701, 0, 0, 0
    def c37, 2, -1, 2.20000005, 4
    defi i0, 3, 0, 0, 0
def c220, 1, 0.5, 0.0625, 0.83
dcl_2d s14
dcl vPos.xy
    dcl_texcoord v0.xy  // IN<4,5>
    dcl_texcoord1 v1.xyz  // IN<6,7,8>
    dcl_2d s0
    dcl_2d s1
    dcl_2d s2
    dcl_2d s3
    dcl_2d s4
    dcl_2d s5
    dcl_2d s6
    dcl_2d s7
    dcl_volume s8
    dcl_volume s9
    dcl_volume s10

#line 702 "pp_def_omni.cgfx"
    mul r0.xy, c24.x, v0  // FetchGeom::uv<0,1>

    mov r11.xy, vPos.xy
    rcp r11.z, c210.x
    rcp r11.w, c210.y
    mul r11.xy, r11.xy, r11.zw
    mul r11.zw, r11.zw, c220.yy
    add r0.xy, r11.xy, r11.zw
	
#line 706
    texld r1, r0, s3  // getDepth::depthSample<0>

#line 231 "incCommon.cgfx"
    mov r2.x, c23.x  // ::cameraFarMinusNear<0>
    mad r0.z, r1.x, r2.x, -c21.x
    rcp r0.z, r0.z
    mul r0.w, r0.z, c22.x  // ::viewSpaceZ<0>

#line 709 "pp_def_omni.cgfx"
    mul r1.xyz, r0.w, v1  // ::eyeToPos<0,1,2>
    mad r2.xyz, r0.w, v1, c20  // ::geom<0,1,2>
	
//Mike_ar69: Stereo Correct
mov r21.xyz, r2.xyz
mov r21.w, c220.x

mul r22, r21.y, c205
mad r22, c204, r21.x, r22
mad r22, c206, r21.z, r22
add r22, c207, r22
	
texldl r24, c220.z, s14
add r24.y, -r22.z, -r24.y
mul r24.x, r24.x, r24.y
rcp r25.x, c100.x
mul r24.x, r24.x, r25.x //c100.x //c220.w
add r22.x, r22.x, -r24.x

rcp r25.w, r22.w
mul r22, r22, r25.w

mul r21, r22.y, c201
mad r21, c200, r22.x, r21
mad r21, c202, r22.z, r21
add r21, c203, r21

rcp r25.w, r21.w
mul r21.xyz, r21.xyz, r25.w

mov r2.xyz, r21.xyz

    dp3 r0.w, -r1, -r1
    rsq r0.w, r0.w
    mul r3.xyz, r0.w, -r1  // ::geom<5,6,7>
    texld_pp r4, r0, s1  // ::n<0,1,2>

#line 717
    mad r4.xyz, r4, c37.x, c37.y
    nrm_pp r5.xyz, r4  // ::geom<9,10,11>

#line 740
    texld_pp r4, r0, s2  // ::s<0,1,2,3>
    texld_pp r6, r0, s0  // ::d<0,1,2,3>

#line 730
    log_pp r7.x, r6.x
    log_pp r7.y, r6.y
    log_pp r7.z, r6.z
    mul_pp r6.xyz, r7, c37.z
    exp_pp r7.x, r6.x  // ::gammaToLinear<0>
    exp_pp r7.y, r6.y  // ::gammaToLinear<1>
    exp_pp r7.z, r6.z  // ::gammaToLinear<2>

#line 746
    mul_pp r0.x, r6.w, c37.w  // ::material<3>
    mul_pp r0.y, r4.w, c32.x
    max_pp r1.w, r0.y, -c37.y  // ::material<7>

#line 806
    mul r6.xyz, r2.y, c17
    mad r6.xyz, c16, r2.x, r6
    mad r6.xyz, c18, r2.z, r6
    add r6.xyz, r6, c19  // ::worldPos<0,1,2>
    mul_pp r8.xyz, r6, c30  // ::uvw<0,1,2>
    mov r0.y, c37.y
    mad r2.w, r6.z, -c30.z, -r0.y
    mov_sat_pp r3.w, r8.z  // ::uvw<2>

#line 815
    add r3.w, r3.w, -c30.z
    mul_pp r6.z, r3.w, c32.y  // ::uvwPos<2>
    mad_pp r8.w, r3.w, c32.y, c32.y  // ::uvwNeg<2>

#line 819
    mov_pp r6.xy, r8
    cmp_pp r9.xyz, -r5.x, r8.xyww, r6
    texld_pp r9, r9, s8  // ::lv0<0,1,2,3>
    cmp_pp r10.xyz, -r5.y, r8.xyww, r6
    texld_pp r10, r10, s9  // ::lv1<0,1,2,3>
    cmp_pp r6.xyz, -r5.z, r8.xyww, r6
    texld_pp r6, r6, s10  // ::lv2<0,1,2,3>
    mov_sat_pp r8.xyw, r5.xyzz  // ::posDir<0,1,2>
    mov_sat_pp r11.xyz, -r5  // ::negDir<0,1,2>

#line 827
    mul_pp r12.xyz, r9, r8.x
    mul_pp r9.xyz, r9, r11.x
    mul_pp r9.xyz, r9.w, r9
    mad_pp r9.xyz, r12, r9.w, r9  // ::lighting<0,1,2>
    mul_pp r12.xyz, r10, r8.y
    mad_pp r9.xyz, r12, r10.w, r9  // ::lighting<0,1,2>
    mul_pp r10.xyz, r10, r11.y
    mad_pp r9.xyz, r10, r10.w, r9  // ::lighting<0,1,2>
    mul_pp r8.xyw, r6.xyzz, r8.w
    mad_pp r8.xyw, r8, r6.w, r9.xyzz  // ::lighting<0,1,2>
    mul_pp r6.xyz, r6, r11.z
    mad_pp r6.xyz, r6, r6.w, r8.xyww  // ::lighting<0,1,2>
    mov r9.yz, c32
    cmp_pp r3.w, r8.z, c31.y, r9.z
    cmp_pp r2.w, r2.w, r3.w, c32.z  // ::intensity<0>
    mul_pp r8.xyz, r6, r7
    dp3_sat r3.x, r5, r3  // ::ndh<0>

#line 838
    pow_pp r4.w, r3.x, r1.w  // ::specPower<0>
    add r3.x, r1.w, c32.w
    mul r3.y, r3.x, r4.w
    mul_sat_pp r3.y, r3.y, c35.x  // ::specPower<0>
    mul_pp r3.yzw, r3.y, r4.xxyz
    mul_pp r3.yzw, r6.xxyz, r3
    mul_pp r3.yzw, r2.w, r3
    mad_pp r3.yzw, r8.xxyz, r2.w, r3  // ::rgb<0,1,2>

#line 612
    nrm r6.xyz, c26  // ::lightVec<0,1,2>

#line 642
    mul r8, r2.y, c1
    mad r8, c0, r2.x, r8
    mad r8, c2, r2.z, r8
    add r8, r8, c3  // ::uv0<0,1,2,3>
    mul r10, r2.y, c5
    mad r10, c4, r2.x, r10
    mad r10, c6, r2.z, r10
    add r10, r10, c7  // ::uv1<0,1,2,3>
    mul r11, r2.y, c9
    mad r11, c8, r2.x, r11
    mad r11, c10, r2.z, r11
    add r11, r11, c11  // ::uv2<0,1,2,3>
    mul r12, r2.y, c13
    mad r12, c12, r2.x, r12
    mad r2, c14, r2.z, r12
    add r2, r2, c15  // ::uv3<0,1,2,3>

#line 403
    rcp r4.w, r8.w

#line 206
    mul r9.xy, r9.y, c29.zwzw  // ::halfOff<0,1>

#line 411
    mov r12.xzw, c29  // ::g_ShadowMapSizeAndDuDv<0,2,3>
    mad_sat r5.w, r12.x, c35.y, c35.z  // ::factor<0>

#line 414
    mad r9.zw, r5.w, c33.xyxy, c33  // ::esmK<0>, ::esmScale<0>

#line 199
    rcp r13.y, c29.x
    rcp r13.w, c29.y

#line 430
    mad r5.w, r8.z, -r4.w, -c37.y
    rcp r5.w, r5.w

#line 210
    mul r12, r12.zwzw, c34.xyyx

#line 422
    mov r6.w, c32.z  // ::sum<0>
    mov r7.w, c37.y  // ::x<0>
    rep i0

#line 426
      add r8.w, -r7_abs.w, c35.w

#line 429
      mul r14.y, r7.w, c29.z

#line 424
      mov r15.x, r6.w  // ::sum<0>
      mov r15.y, c37.y  // ::y<0>
      rep i0
        add r13.x, r8.w, -r15_abs.y  // ::weightFilter<0>

#line 429
        mul r14.w, r15.y, c29.w
        mad_sat r14.xz, r8.xyyw, r4.w, r14.yyww  // getDepthAndWeightFilterBilinear::uv<0,1>

#line 199
        mul r15.zw, r14.xyxz, c29.xyxy
        frc r16.xy, r15.zwzw
        add r15.zw, r15, -r16.xyxy

#line 207
        mad r16.xy, r15.zwzw, r13.ywzw, -r9  // ::uvX<0,1>
        mad r16.zw, r15, r13.xyyw, r9.xyxy  // ::uvZ<0,1>
        mad r17, r15.zwzw, r13.ywyw, r12  // ::uvY<0,1>, ::uvW<0,1>
        mad r14.xz, r15.zyww, -r13.yyww, r14
        mul r15.zw, r14.xyxz, c29.xyxy  // ::fracUV<0,1>
        mad r14.xz, r14.zyxw, -c29.yyxw, -r0.y
        mul r18.x, r14.x, r14.z  // getDepthAndWeightFilterBilinear::weights<0>
        mul r18.z, r15.w, r15.z  // getDepthAndWeightFilterBilinear::weights<2>
        mul r18.yw, r14.xxzz, r15.xzzw  // getDepthAndWeightFilterBilinear::weights<1,3>

#line 219
        texld r19, r16, s4  // getDepth::depthSample<0>
        texld r20, r17, s4  // getDepth::depthSample<0>
        texld r16, r16.zwzw, s4  // getDepth::depthSample<0>
        texld r17, r17.zwzw, s4  // getDepth::depthSample<0>

#line 430
        mov r19.y, r20.x
        mov r19.z, r16.x
        mov r19.w, r17.x
        mad r16, r8.z, -r4.w, r19
        mul r16, r5.w, r16
        mul r17, r9.z, r16
        mad r16, r9.z, -r16, -c33.x
        mul r17, r17, c34.z
        cmp r16, r16, c34.w, r17
        exp_sat r17.x, r16.x  // ::shadowExp<0>
        exp_sat r17.y, r16.y  // ::shadowExp<1>
        exp_sat r17.z, r16.z  // ::shadowExp<2>
        exp_sat r17.w, r16.w  // ::shadowExp<3>
        dp4 r13.z, r18, r17  // ::shadow<0>
        add r13.z, -r13.z, -c37.y
        mad_sat r13.z, r9.w, -r13.z, -c37.y  // ::shadow<0>
        mad r15.x, r13.x, r13.z, r15.x  // ::sum<0>

#line 424
        add r15.y, r15.y, -c37.y  // ::y<0>
      endrep
      mov r6.w, r15.x  // ::sum<0>
      add r7.w, r7.w, -c37.y  // ::x<0>
    endrep

#line 439
    mul_pp r4.w, r6.w, c36.x  // ::sampleDepth<0>

#line 529
    rcp r5.w, c27.x

#line 539
    mul r8.xyz, r5.w, c27.yzww  // ::raiotSplit<0>, ::ratioSplit<0,0>

#line 403
    rcp r5.w, r10.w

#line 412
    mul r8.xyz, r8, r9.z  // ::esmK<0,0,0>

#line 430
    mad r6.w, r10.z, -r5.w, -c37.y
    rcp r6.w, r6.w

#line 422
    mov r7.w, c32.z  // ::sum<0>
    mov r8.w, c37.y  // ::x<0>
    rep i0

#line 426
      add r9.z, -r8_abs.w, c35.w

#line 429
      mul r14.y, r8.w, c29.z

#line 424
      mov r15.x, r7.w  // ::sum<0>
      mov r15.y, c37.y  // ::y<0>
      rep i0
        add r10.w, r9.z, -r15_abs.y  // ::weightFilter<0>

#line 429
        mul r14.w, r15.y, c29.w
        mad_sat r13.xz, r10.xyyw, r5.w, r14.yyww  // getDepthAndWeightFilterBilinear::uv<0,1>

#line 199
        mul r14.xz, r13, c29.xyyw
        frc r15.zw, r14.xyxz
        add r14.xz, r14, -r15.zyww

#line 207
        mad r15.zw, r14.xyxz, r13.xyyw, -r9.xyxy  // ::uvX<0,1>
        mad r16.xy, r14.xzzw, r13.ywzw, r9  // ::uvZ<0,1>
        mad r17, r14.xzxz, r13.ywyw, r12  // ::uvY<0,1>, ::uvW<0,1>
        mad r13.xz, r14, -r13.yyww, r13
        mul r14.xz, r13, c29.xyyw  // ::fracUV<0,1>
        mad r13.xz, r13.zyxw, -c29.yyxw, -r0.y
        mul r18.x, r13.x, r13.z  // getDepthAndWeightFilterBilinear::weights<0>
        mul r18.z, r14.z, r14.x  // getDepthAndWeightFilterBilinear::weights<2>
        mul r18.yw, r13.xxzz, r14.xxzz  // getDepthAndWeightFilterBilinear::weights<1,3>

#line 219
        texld r19, r15.zwzw, s5  // getDepth::depthSample<0>
        texld r20, r17, s5  // getDepth::depthSample<0>
        texld r16, r16, s5  // getDepth::depthSample<0>
        texld r17, r17.zwzw, s5  // getDepth::depthSample<0>

#line 430
        mov r19.y, r20.x
        mov r19.z, r16.x
        mov r19.w, r17.x
        mad r16, r10.z, -r5.w, r19
        mul r16, r6.w, r16
        mul r17, r8.x, r16
        mad r16, r8.x, -r16, -c33.x
        mul r17, r17, c34.z
        cmp r16, r16, c34.w, r17
        exp_sat r17.x, r16.x  // ::shadowExp<0>
        exp_sat r17.y, r16.y  // ::shadowExp<1>
        exp_sat r17.z, r16.z  // ::shadowExp<2>
        exp_sat r17.w, r16.w  // ::shadowExp<3>
        dp4 r13.x, r18, r17  // ::shadow<0>
        add r13.x, -r13.x, -c37.y
        mad_sat r13.x, r9.w, -r13.x, -c37.y  // ::shadow<0>
        mad r15.x, r10.w, r13.x, r15.x  // ::sum<0>

#line 424
        add r15.y, r15.y, -c37.y  // ::y<0>
      endrep
      mov r7.w, r15.x  // ::sum<0>
      add r8.w, r8.w, -c37.y  // ::x<0>
    endrep

#line 439
    mul_pp r5.w, r7.w, c36.x  // ::sampleDepth<0>

#line 403
    rcp r6.w, r11.w

#line 430
    mad r7.w, r11.z, -r6.w, -c37.y
    rcp r7.w, r7.w

#line 422
    mov r8.x, c32.z  // ::sum<0>
    mov r8.w, c37.y  // ::x<0>
    rep i0

#line 426
      add r9.z, -r8_abs.w, c35.w

#line 429
      mul r10.y, r8.w, c29.z

#line 424
      mov r14.x, r8.x  // ::sum<0>
      mov r14.y, c37.y  // ::y<0>
      rep i0
        add r10.x, r9.z, -r14_abs.y  // ::weightFilter<0>

#line 429
        mul r10.w, r14.y, c29.w
        mad_sat r10.zw, r11.xyxy, r6.w, r10.xyyw  // getDepthAndWeightFilterBilinear::uv<0,1>

#line 199
        mul r13.xz, r10.zyww, c29.xyyw
        frc r14.zw, r13.xyxz
        add r13.xz, r13, -r14.zyww

#line 207
        mad r14.zw, r13.xyxz, r13.xyyw, -r9.xyxy  // ::uvX<0,1>
        mad r15.xy, r13.xzzw, r13.ywzw, r9  // ::uvZ<0,1>
        mad r16, r13.xzxz, r13.ywyw, r12  // ::uvY<0,1>, ::uvW<0,1>
        mad r10.zw, r13.xyxz, -r13.xyyw, r10
        mul r13.xz, r10.zyww, c29.xyyw  // ::fracUV<0,1>
        mad r10.zw, r10.xywz, -c29.xyyx, -r0.y
        mul r17.x, r10.z, r10.w  // getDepthAndWeightFilterBilinear::weights<0>
        mul r17.z, r13.z, r13.x  // getDepthAndWeightFilterBilinear::weights<2>
        mul r17.yw, r10.xzzw, r13.xxzz  // getDepthAndWeightFilterBilinear::weights<1,3>

#line 219
        texld r18, r14.zwzw, s6  // getDepth::depthSample<0>
        texld r19, r16, s6  // getDepth::depthSample<0>
        texld r15, r15, s6  // getDepth::depthSample<0>
        texld r16, r16.zwzw, s6  // getDepth::depthSample<0>

#line 430
        mov r18.y, r19.x
        mov r18.z, r15.x
        mov r18.w, r16.x
        mad r15, r11.z, -r6.w, r18
        mul r15, r7.w, r15
        mul r16, r8.y, r15
        mad r15, r8.y, -r15, -c33.x
        mul r16, r16, c34.z
        cmp r15, r15, c34.w, r16
        exp_sat r16.x, r15.x  // ::shadowExp<0>
        exp_sat r16.y, r15.y  // ::shadowExp<1>
        exp_sat r16.z, r15.z  // ::shadowExp<2>
        exp_sat r16.w, r15.w  // ::shadowExp<3>
        dp4 r10.z, r17, r16  // ::shadow<0>
        add r10.z, -r10.z, -c37.y
        mad_sat r10.z, r9.w, -r10.z, -c37.y  // ::shadow<0>
        mad r14.x, r10.x, r10.z, r14.x  // ::sum<0>

#line 424
        add r14.y, r14.y, -c37.y  // ::y<0>
      endrep
      mov r8.x, r14.x  // ::sum<0>
      add r8.w, r8.w, -c37.y  // ::x<0>
    endrep

#line 439
    mul_pp r6.w, r8.x, c36.x  // ::sampleDepth<0>

#line 537
    mov r10, c27  // ::PSSGShadowPSSMapDepthSplits<0,1,2,3>
    mad r10, c22.x, -r0.z, -r10

#line 403
    rcp r0.z, r2.w

#line 430
    mad r2.w, r2.z, -r0.z, -c37.y
    rcp r2.w, r2.w

#line 422
    mov r7.w, c32.z  // ::sum<0>
    mov r8.x, c37.y  // ::x<0>
    rep i0

#line 426
      add r8.y, -r8_abs.x, c35.w

#line 429
      mul r11.y, r8.x, c29.z

#line 424
      mov r14.x, r7.w  // ::sum<0>
      mov r14.y, c37.y  // ::y<0>
      rep i0
        add r8.w, r8.y, -r14_abs.y  // ::weightFilter<0>

#line 429
        mul r11.w, r14.y, c29.w
        mad_sat r11.xz, r2.xyyw, r0.z, r11.yyww  // getDepthAndWeightFilterBilinear::uv<0,1>

#line 199
        mul r13.xz, r11, c29.xyyw
        frc r14.zw, r13.xyxz
        add r13.xz, r13, -r14.zyww

#line 207
        mad r14.zw, r13.xyxz, r13.xyyw, -r9.xyxy  // ::uvX<0,1>
        mad r15.xy, r13.xzzw, r13.ywzw, r9  // ::uvZ<0,1>
        mad r16, r13.xzxz, r13.ywyw, r12  // ::uvY<0,1>, ::uvW<0,1>
        mad r11.xz, r13, -r13.yyww, r11
        mul r13.xz, r11, c29.xyyw  // ::fracUV<0,1>
        mad r11.xz, r11.zyxw, -c29.yyxw, -r0.y
        mul r17.x, r11.x, r11.z  // getDepthAndWeightFilterBilinear::weights<0>
        mul r17.z, r13.z, r13.x  // getDepthAndWeightFilterBilinear::weights<2>
        mul r17.yw, r11.xxzz, r13.xxzz  // getDepthAndWeightFilterBilinear::weights<1,3>

#line 219
        texld r18, r14.zwzw, s7  // getDepth::depthSample<0>
        texld r19, r16, s7  // getDepth::depthSample<0>
        texld r15, r15, s7  // getDepth::depthSample<0>
        texld r16, r16.zwzw, s7  // getDepth::depthSample<0>

#line 430
        mov r18.y, r19.x
        mov r18.z, r15.x
        mov r18.w, r16.x
        mad r15, r2.z, -r0.z, r18
        mul r15, r2.w, r15
        mul r16, r8.z, r15
        mad r15, r8.z, -r15, -c33.x
        mul r16, r16, c34.z
        cmp r15, r15, c34.w, r16
        exp_sat r16.x, r15.x  // ::shadowExp<0>
        exp_sat r16.y, r15.y  // ::shadowExp<1>
        exp_sat r16.z, r15.z  // ::shadowExp<2>
        exp_sat r16.w, r15.w  // ::shadowExp<3>
        dp4 r9.z, r17, r16  // ::shadow<0>
        add r9.z, -r9.z, -c37.y
        mad_sat r9.z, r9.w, -r9.z, -c37.y  // ::shadow<0>
        mad r14.x, r8.w, r9.z, r14.x  // ::sum<0>

#line 424
        add r14.y, r14.y, -c37.y  // ::y<0>
      endrep
      mov r7.w, r14.x  // ::sum<0>
      add r8.x, r8.x, -c37.y  // ::x<0>
    endrep

#line 439
    mul_pp r0.z, r7.w, c36.x  // ::sampleDepth<0>

#line 537
    cmp_pp r0.z, r10.w, -c37.y, r0.z  // ::shadow<0>

#line 532
    cmp_pp r0.z, r10.z, r0.z, r6.w  // ::shadow<0>

#line 527
    cmp_pp r0.z, r10.y, r0.z, r5.w  // ::shadow<0>

#line 523
    cmp_pp r0.z, r10.x, r0.z, r4.w  // ::shadow<0>

#line 548
    add r0.z, r0.z, c37.y
    mad_pp r0.y, c28.x, r0.z, -r0.y  // ::shadow<0>

#line 676
    mad r1.xyz, -r1, r0.w, r6
    nrm_pp r2.xyz, r1  // ::halfVec<0,1,2>
    dp3_sat r0.z, r5, r6  // ::ndl<0>

#line 681
    dp3_sat_pp r0.w, r5, r2  // ::ndh<0>
    pow_pp r2.x, r0.w, r1.w  // ::specPower<0>
    mul r0.w, r3.x, r2.x
    mul_pp r0.w, r0.w, c35.x  // ::specPower<0>

#line 692
    mul_pp r1.xyz, r0.w, r4
    mul_sat r0.w, r0.z, c37.w
    mul r1.xyz, r0.w, r1
    mad_pp r1.xyz, r7, r0.z, r1  // ::result<0,1,2>
    mul r0.yzw, r0.y, c25.xxyz

#line 1479
    mad_pp r0.yzw, r1.xxyz, r0, r3  // ::rgb<0,1,2>

#line 1485
    mad_pp oC0.xyz, r7, r0.x, r0.yzww  // ::mainFPFullscreenDirVolSelf<0,1,2>
    mov_pp oC0.w, -c37.y  // ::mainFPFullscreenDirVolSelf<3>

// approximately 367 instruction slots used (23 texture, 344 arithmetic)
 