//Black shroud
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
//   sampler2D Base;
//   sampler2D Base2;
//   sampler2D Base3;
//   sampler2D Base4;
//   sampler2D Base5;
//   sampler2D Base6;
//   sampler2D Base7;
//   sampler2D Base8;
//   float4 FOWWeights;
//   float Region;
//   float2 ShroudTextureDimensions;
//   float4 TexelSizes;
//   float4 TextureDimensions;
//   float2 WorldPositionOffset;
//   float4 global_ViewPos;
//
//
// Registers:
//
//   Name                    Reg   Size
//   ----------------------- ----- ----
//   WorldPositionOffset     c0       1
//   ShroudTextureDimensions c1       1
//   TextureDimensions       c2       1
//   FOWWeights              c3       1
//   TexelSizes              c4       1
//   Region                  c5       1
//   global_ViewPos          c214     1
//   Base                    s0       1
//   Base2                   s1       1
//   Base3                   s2       1
//   Base4                   s3       1
//   Base5                   s4       1
//   Base6                   s5       1
//   Base7                   s6       1
//   Base8                   s7       1
//

    ps_3_0
    def c6, -1, 255, 1, 0
    def c7, 0.75, 0.800000012, 0, 1
    def c8, 0, 0.111111112, 0.333333343, 0.300000012
    defi i0, 3, 0, 0, 0
def c220, 1, 0, 0.0625, 0.5
dcl_2d s13
    dcl_texcoord v0.xy  // In<4,5>
    dcl_texcoord2 v1.xz  // In<6,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

#line 39 "c:\Develop\LSProjects\build\shared\EyesOfAChild\Code\EoCApp\build\memory"
    texld r0, v0, s0  // ::scene<0,1,2,3>
    texld r1, v0, s1  // ::depth<0>
    add r1.y, r1.x, c6.x
    mad r1.xz, r1.x, v1, c214  // ::worldPos<0,2>
	
mov r20.xyz, r1.xyz
mov r20.w, c220.x
	
dp4 r21.x, r20, c184
dp4 r21.y, r20, c185
dp4 r21.z, r20, c186
dp4 r21.w, r20, c187

texldl r24, c220.z, s13
add r24.y, r21.w, -r24.y
mul r24.x, r24.x, r24.y
add r21.x, r21.x, -r24.x

dp4 r20.x, r21, c180
dp4 r20.y, r21, c181
dp4 r20.z, r21, c182
dp4 r20.w, r21, c183

rcp r21.w, r20.w
mul r20, r20, r21.w

mov r1.xyz, r20.xyz

    add r1.xz, r1, -c0.xyyw
    rcp r1.w, c4.x
    mul r2.xy, r1.w, r1.xzzw
    rcp r3.x, c1.x
    rcp r3.y, c1.y
    mul r2.xy, r2, r3  // ::uvShroud<0,1>
    rcp r1.w, c4.y
    mul r2.zw, r1.w, r1.xyxz
    rcp r3.x, c2.x
    rcp r3.y, c2.y
    mul r2.zw, r2, r3.xyxy  // ::uvFog<0,1>
    rcp r1.w, c4.z
    mul r1.xz, r1.w, r1
    rcp r3.x, c2.z
    rcp r3.y, c2.w

#line 50
    texld r4, r2, s2  // ::shroud<0>
    texld r5, r2.zwzw, s3
    texld r6, r2.zwzw, s4
    mul r1.w, r6.x, c3.y  // ::fow2<0>
    texld r6, r2.zwzw, s5
    mad r1.w, r5.x, c3.x, r1.w
    mad_sat r1.w, r6.x, c3.z, r1.w  // ::fow<0>
    texld r2, r2.zwzw, s7
    mov r2.y, c6.y
    mad r2.x, r2.x, r2.y, -c5.x
    frc r2.y, r2_abs.x
    add_sat r2.x, -r2.y, r2_abs.x
    add r2.x, -r2.x, c6.z  // ::regionMask<0>

#line 65
    mov r2.y, c8.x  // ::sneak<0>
    mov r5.x, c8.x  // ::i<0>
    rep i0
      add r5.xy, r5.x, c6.zxzw  // ::i<0>
      mov r6.x, r2.y  // ::sneak<0>
      mov r6.y, c8.x  // ::j<0>
      rep i0
        add r5.zw, r6.y, c6.xyxz  // ::j<0>
        mul r2.zw, r3.xyxy, r5.xyyz
        mad r2.zw, r1.xyxz, r3.xyxy, r2
        texld r7, r2.zwzw, s6
        add r6.x, r6.x, r7.x  // ::sneak<0>
        mov r6.y, r5.w
      endrep
      mov r2.y, r6.x  // ::sneak<0>
    endrep

#line 73
    mul r1.x, r2.y, c8.y
    mov r3.x, c8.x
    cmp r1.x, -c3.w, r3.x, r1.x  // ::sneak<0>
    add r1.z, r0.y, r0.x
    add r1.z, r0.z, r1.z
    mad r2.yzw, r1.z, c8.z, -r0.xxyz
    mad r2.yzw, r2, c8.w, r0.xxyz
    mul r3.xyz, r2.yzww, c7.x  // ::fowScene<0,1,2>
    mad r2.yzw, r2, -c7.x, r0.xxyz
    mad r2.yzw, r1.w, r2, r3.xxyz  // ::postFOW<0,1,2>
    mul r2.yzw, r4.x, r2  // ::postShroud<0,1,2>
    mul r3.xyz, r2.x, r2.yzww  // ::postRegion<0,1,2>
    add r1.z, r3.y, r3.x
    mad r1.z, r2.w, r2.x, r1.z
    mad r4.xyz, r1.z, c8.z, -r3
    mad r3.xyz, r4, c7.y, r3
    mul r3.xyz, r3, c7.x  // ::sneakScene<0,1,2>
    add r1.x, r1.x, -c3.w
    add_sat r1.x, r1.x, c6.z
    mad r2.xyz, r2.yzww, r2.x, -r3
    mad r2.xyz, r1.x, r2, r3  // ::postSneak<0,1,2>

#line 90
    add r3, -r0, c7.zzzw
    mad r3, c4.w, r3, r0  // ::Out<0,1,2,3>

#line 42
    mov r2.w, r0.w
    cmp oC0, r1.y, r3, r2  // ::main<0,1,2,3>

// approximately 79 instruction slots used (8 texture, 71 arithmetic)
 