//
// Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
//
// Parameters:
//
//   float3 ambient_cube_tb[2];
//   float3 camera_position;
//   float4x4 g_amHardSplit[4];
//   float3 g_camera_aligned_z_axis;
//   float2 g_fFadeRange;
//   float g_fog_clear_distance;
//   float g_fog_colour_blend;
//   float g_fog_distance_scale;
//   float g_fog_distance_start;
//   float g_fog_distance_strength;
//   float g_fog_height_bottom;
//   float g_fog_height_strength;
//   float g_fog_height_top;
//   float g_hdr_on;
//   float g_iSplitCount;
//   float g_sample_bias;
//   float3 g_shadow_light_direction;
//   float4 g_vSplitDepth;
//   float4 g_viewport_offset_scale;
//   float3 g_volume_fog_colour;
//   sampler2D gbuffer_channel_4_sampler;
//   float4x4 inv_projection;
//   sampler2D sHardShadowBuffer;
//   sampler2D s_diffuse1;
//   samplerCUBE s_sky;
//   float3 sun_colour;
//   float3 sun_direction;
//   float4x4 view;
//   float4x4 view_projection;
//
//
// Registers:
//
//   Name                      Reg   Size
//   ------------------------- ----- ----
//   g_amHardSplit             c0      16
//   view_projection           c16      4
//   inv_projection            c20      4
//   view                      c24      3
//   g_iSplitCount             c27      1
//   g_vSplitDepth             c28      1
//   g_fFadeRange              c29      1
//   g_sample_bias             c30      1
//   g_shadow_light_direction  c31      1
//   camera_position           c32      1
//   sun_direction             c33      1
//   sun_colour                c34      1
//   ambient_cube_tb           c35      1
//   g_hdr_on                  c36      1
//   g_volume_fog_colour       c37      1
//   g_fog_distance_start      c38      1
//   g_fog_distance_strength   c39      1
//   g_fog_distance_scale      c40      1
//   g_fog_height_bottom       c41      1
//   g_fog_height_top          c42      1
//   g_fog_height_strength     c43      1
//   g_fog_colour_blend        c44      1
//   g_fog_clear_distance      c45      1
//   g_camera_aligned_z_axis   c46      1
//   g_viewport_offset_scale   c47      1
//   s_sky                     s0       1
//   sHardShadowBuffer         s1       1
//   gbuffer_channel_4_sampler s2       1
//   s_diffuse1                s3       1
//

    ps_3_0
    def c48, 0.100000001, 0, 0.00583333336, -1
    def c49, -0, -1, -2, -3
    def c50, 0, -2, 3, 0.0833333358
    def c51, 1, 0.00400000019, 360, 1.44269502
    def c52, 0.5, -0.5, 1.33333337, 1000
    def c53, 8, -4, 1.5, 0
    def c54, 1, 0, -0, 0.00100000005
    def c55, 2, -2, -1, 1
    defi i0, 12, 0, 0, 0
def c220, 0, 0, 0.0625, 0
dcl_2d s13
    dcl_color v0
    dcl_texcoord v1.xy
    dcl_texcoord1 v2.xyz
    dcl_texcoord2 v3
    dcl_texcoord4 v4.xy
    dcl_cube s0
    dcl_2d s1
    dcl_2d s2
    dcl_2d s3
    add r0.xy, c48.x, v4
    frc r0.zw, r0.xyxy
    add r1.x, -r0.z, r0.x
    if_eq r0.x, r0.z
      if_eq r0.y, r0.w
        texld r2, v1, s3
      else
        mov r2, c48.y
      endif
      mul r2, r2, v0
      mul r2.xyz, r2, v0.w
    else
      mov r2, v0
    endif
    add r1.yzw, c32.xxyz, -v2.xxyz
    nrm r3.xyz, r1.yzww
    min r0.y, v3.y, v3.x
    mul r0.y, r0.y, c48.z
    mov r1.yw, c48
    add r0.w, r1.w, c27.x
    frc r1.z, c27.x
    add r0.w, r0.w, -r1.z
    add r4, r0.w, c49
    cmp r4, -r4_abs, c48_abs.w, c48_abs.y
    dp4 r0.w, c28, r4
    add r1.z, r0.w, -c29.y
    add r0.w, r0.w, -r1.z
    rcp r0.w, r0.w
    mov r4.w, -c48.w
    mov r5.w, -c48.w
    mov r6.xy, c48.y
    rep i0
      mul r3.w, r0.y, r6.y
      mad r4.xyz, r3.w, -r3, v2
      dp4 r3.w, r4, c19
      mov r7.xyz, c31
      mad r5.xyz, r7, -c30.x, r4
      add r7, r3.w, -c28
      cmp r7, r7, c48_abs.w, c48_abs.y
      dp4 r4.x, r7, r7
      add r4.y, r4.x, -c27.x
      add r7, r4.x, c49
      cmp r8, -r7_abs.x, c0, r1.y
      cmp r9, -r7_abs.x, c1, r1.y
      cmp r10, -r7_abs.x, c2, r1.y
      cmp r11, -r7_abs.x, c3, r1.y
      cmp r8, -r7_abs.y, c4, r8
      cmp r9, -r7_abs.y, c5, r9
      cmp r10, -r7_abs.y, c6, r10
      cmp r11, -r7_abs.y, c7, r11
      cmp r8, -r7_abs.z, c8, r8
      cmp r9, -r7_abs.z, c9, r9
      cmp r10, -r7_abs.z, c10, r10
      cmp r11, -r7_abs.z, c11, r11
      cmp r8, -r7_abs.w, c12, r8
      cmp r9, -r7_abs.w, c13, r9
      cmp r10, -r7_abs.w, c14, r10
      cmp r7, -r7_abs.w, c15, r11
	  
//NEED TO CHECK THIS ONE...
mov r20, r5

dp4 r21.x, r20, c204
dp4 r21.y, r20, c205
dp4 r21.z, r20, c206
dp4 r21.w, r20, c207

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, c200
dp4 r20.y, r21, c201
dp4 r20.z, r21, c202
dp4 r20.w, r21, c203

mov r5, r20

      dp4 r8.x, r5, r8
      dp4 r8.y, r5, r9
      dp4 r8.z, r5, r10
      dp4 r8.w, r5, r7
      texldp r7, r8, s1
      cmp r4.x, r4.y, -c48.w, r7.x
      add r3.w, -r1.z, r3.w
      mul_sat r3.w, r0.w, r3.w
      mad r4.y, r3.w, c50.y, c50.z
      mul r3.w, r3.w, r3.w
      mad_sat r3.w, r4.y, r3.w, r4.x
      add r6.x, r3.w, r6.x
      add r6.y, r6.y, -c48.w
    endrep
    mul r0.y, r6.x, c50.w
    cmp r0.y, -r1_abs.x, r0.y, -c48.w
    nrm r3.xyz, -c33
    dp3 r0.w, r3, -c46
    add r1.z, r0.w, c48.w
    mul r1.z, r1.z, c52.x
    cmp r0.w, r0.w, r1.z, c52.y
    mad r0.w, v3.w, r0.w, -c48.w
    mul r3.xyz, r0.w, r2
    mul r3.xyz, r3, c34
    mov r4.xyz, c51
    cmp r4.xy, -c36.x, r4.x, r4.yzzw
    mul r3.xyz, r3, r4.x
    mul r4.yzw, r4.y, c35.xxyz
    mul r4.yzw, r2.xxyz, r4
    mul r4.yzw, r4.x, r4
    mad r3.xyz, r0.y, r3, r4.yzww
    mul r3.xyz, r3, v3.z
    mov r3.w, r2.w
    cmp r2, -r1_abs.x, r3, r2
    if_eq r0.x, r0.z
      mad r0, v2.xyzx, c54.xxxy, c54.zzzx
      dp4 r3.x, r0, c16
      dp4 r3.y, r0, c17
      dp4 r1.z, r0, c19
      rcp r1.z, r1.z
      mul r3.xy, r1.z, r3
      mad r3.xy, r3, c52, c52.x
      mad r3.xy, r3, c47.zwzw, c47
      mov r3.zw, c48.y
      texldl r5, r3, s2
      mad r3.xy, r3, c55, c55.zwzw
      mad r3.zw, r5.x, c54.xyxy, c54.xyzx
      dp4 r1.z, r3, c22
      dp4 r3.x, r3, c23
      rcp r3.x, r3.x
      dp4 r0.x, r0, c26
      mad r0.x, r1.z, r3.x, -r0.x
      mul_sat r0.x, r0.x, c52.z
      mul r2, r0.x, r2
    endif
    add r0.xyz, -c32, v2
    dp3 r1.z, r0, r0
    rsq r1.z, r1.z
    rcp r1.z, r1.z
    add r3.x, -r1.w, -c38.x
    mad r3.x, r3.x, c53.x, c53.y
    add r1.w, -r1.w, -c39.x
    mul r1.w, r1.w, c52.w
    rcp r1.w, r1.w
    mad r1.w, r1.z, r1.w, r3.x
    mul r1.w, r1.w, c51.w
    exp r1.w, r1.w
    rcp r1.w, r1.w
    mad_sat r1.w, c40.x, -r1.w, c40.x
    add r3.x, c42.x, -v2.y
    mov r5.x, c42.x
    add r3.y, r5.x, -c41.x
    add r3.x, r3.x, -c41.x
    rcp r3.y, r3.y
    mul_sat r3.x, r3.y, r3.x
    mad r3.y, r3.x, c50.y, c50.z
    mul r3.x, r3.x, r3.x
    mul r3.x, r3.x, r3.y
    mov r3.w, c54.w
    add r3.y, r3.w, -c45.x
    rcp r3.z, c45.x
    cmp r3.y, r3.y, c52.w, r3.z
    mul_sat r1.z, r1.z, r3.y
    mad r3.y, r1.z, c50.y, c50.z
    mul r1.z, r1.z, r1.z
    mul r1.z, r1.z, r3.y
    mov r5.xyz, c34
    mul r3.yzw, r5.xxyz, c37.xxyz
    mul r3.yzw, r3, c53.z
    abs r4.y, c33.y
    mul r3.yzw, r3, r4.y
    mul r4.yzw, r4.x, r3
    max r0.w, r0.y, c48.y
    texld r0, r0.xwzw, s0
    dp2add_sat r0.w, r1.w, c44.x, r1.y
    mad r0.xyz, r3.yzww, -r4.x, r0
    mad r0.xyz, r0.w, r0, r4.yzww
    mad r0.w, c43.x, r3.x, r1.w
    mul_sat r0.w, r0.w, r1.z
    mad r0.xyz, r0, r2.w, -r2
    mad r0.xyz, r0.w, r0, r2
    cmp r2.xyz, -r1_abs.x, r0, r2
    mov oC0, r2

// approximately 176 instruction slots used (5 texture, 171 arithmetic)
 