// DO NOT FIX THIS ONE - SHADOWS ON WATER
// Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
//
// Parameters:
//
//   float3 ambient_cube_fb[2];
//   float3 ambient_cube_lr[2];
//   float3 ambient_cube_tb[2];
//   float3 camera_position;
//   sampler2D colour_overlay_texture_sampler;
//   sampler2D combined_foam_texture_sampler;
//   sampler2D detail_normal_sampler;
//   float4x4 g_amHardSplit[4];
//   float3 g_deep_water_colour;
//   float g_detail_normal_uv_scale1;
//   float g_detail_normal_uv_scale2;
//   float g_detail_normal_uv_speed1;
//   float g_detail_normal_uv_speed2;
//   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_refraction_light_scatter;
//   float g_sample_bias;
//   float4 g_screen_size;
//   float3 g_sea_bed_light_scatter;
//   float3 g_shadow_light_direction;
//   float4 g_vSplitDepth;
//   float3 g_volume_fog_colour;
//   float g_vpos_texel_offset;
//   sampler2D gbuffer_channel_4_sampler;
//   float4x4 inv_view_projection;
//   sampler2D reflection_texture_sampler;
//   sampler2D refraction_texture_sampler;
//   sampler2D sHardShadowBuffer;
//   samplerCUBE s_sky;
//   sampler2D sea_surface_sampler;
//   float3 sun_colour;
//   float3 sun_direction;
//   sampler2D swell_surface_sampler;
//   float time_in_sec;
//   sampler2D ui_colour_overlay_texture_sampler;
//
//
// Registers:
//
//   Name                              Reg   Size
//   --------------------------------- ----- ----
//   g_amHardSplit                     c0      16
//   inv_view_projection               c16      4
//   ambient_cube_lr                   c20      2
//   ambient_cube_tb                   c22      2
//   ambient_cube_fb                   c24      2
//   camera_position                   c26      1
//   time_in_sec                       c27      1
//   g_screen_size                     c28      1
//   g_vpos_texel_offset               c29      1
//   g_iSplitCount                     c30      1
//   g_vSplitDepth                     c31      1
//   g_fFadeRange                      c32      1
//   g_sample_bias                     c33      1
//   g_shadow_light_direction          c34      1
//   sun_direction                     c35      1
//   sun_colour                        c36      1
//   g_deep_water_colour               c37      1
//   g_sea_bed_light_scatter           c38      1
//   g_refraction_light_scatter        c39      1
//   g_hdr_on                          c40      1
//   g_volume_fog_colour               c41      1
//   g_fog_distance_start              c42      1
//   g_fog_distance_strength           c43      1
//   g_fog_distance_scale              c44      1
//   g_fog_height_bottom               c45      1
//   g_fog_height_top                  c46      1
//   g_fog_height_strength             c47      1
//   g_fog_colour_blend                c48      1
//   g_fog_clear_distance              c49      1
//   g_detail_normal_uv_scale1         c50      1
//   g_detail_normal_uv_scale2         c51      1
//   g_detail_normal_uv_speed1         c52      1
//   g_detail_normal_uv_speed2         c53      1
//   s_sky                             s0       1
//   sHardShadowBuffer                 s1       1
//   gbuffer_channel_4_sampler         s2       1
//   sea_surface_sampler               s3       1
//   swell_surface_sampler             s4       1
//   combined_foam_texture_sampler     s5       1
//   reflection_texture_sampler        s6       1
//   refraction_texture_sampler        s7       1
//   colour_overlay_texture_sampler    s8       1
//   ui_colour_overlay_texture_sampler s9       1
//   detail_normal_sampler             s10      1
//

    ps_3_0
    def c54, 0, 2, -1, 6.28318548
    def c55, 0.212599993, 0.715200007, 0.0722000003, 1.5
    def c56, 0.5, -0.00139173458, -0.00990268029, 0.00196078443
    def c57, -0.00694658188, -0.00719339959, 2, -1
    def c58, -2, 2, 1, -1
    def c59, 0.159154937, 0.25, 0.5, -0.00138883968
    def c60, 6.28318548, -3.14159274, -2.52398507e-007, 2.47609005e-005
    def c61, 0.0416666418, 1, 4, 9.99999975e-005
    def c62, 1, 360, 0.00400000019, 0.222222224
    def c63, 0.850000024, 0.150000006, 0.0799999982, 0.0199999996
    def c64, -0, -1, -2, -3
    def c65, -0.0187292993, 0.0742610022, -0.212114394, 1.57072878
    def c66, -2, 3.14159274, -2.25000008e-006, 0.0224077497
    def c67, 0.346573591, 4.54688501, 1.41421354, 0.0174532924
    def c68, 0.707106769, 0.140012279, 1.27323949, 1
    def c69, 0.0174532924, -9.99999975e-005, -0.0174532924, 10000
    def c70, 0.850000024, 0.800000012, 0.150000006, 0.200000003
    def c71, 0.0500000007, 7.5, 1.66666663, 1000
    def c72, 5.77078009, -0.600000024, 0.5, 1
    def c73, 8, -4, 0, 0
    def c74, 1.44269502, 0.972369909, 1, 60
    def c75, 0.400000006, 0.5, 0.600000024, 0.00100000005
    def c76, 0, -1, -2, 3
    def c77, 0.228776455, 0.0199999996, -4.22500016e-005, 0.420767754
    def c78, 1, 0.999000013, -9.96578407, 4.95061684
    def c79, 0.522498548, 1, 0.835587382, 0.0199999996
def c220, 0, 0, 0.0625, 0
dcl_2d s13
    dcl_texcoord v0
    dcl_texcoord1 v1.xyw
    dcl_texcoord2 v2.xyw
    dcl_texcoord4 v3
    dcl vPos.xy
    dcl_cube s0
    dcl_2d s1
    dcl_2d s2
    dcl_2d s3
    dcl_2d s4
    dcl_2d s5
    dcl_2d s6
    dcl_2d s7
    dcl_2d s8
    dcl_2d s9
    dcl_2d s10
    add r0.xyz, c26, -v0
    nrm r1.xyz, r0
    add r0.xy, c29.x, vPos
    mul r2.xy, r0, c28.zwzw
    rcp r0.z, v1.w
    mad r0.zw, v1.xyxy, r0.z, c56.x
    rcp r1.w, v2.w
    mad r3.xy, v2, r1.w, c56.x
    mov r4.x, c27.x
    mul r1.w, r4.x, c52.x
    mul r3.zw, r1.w, c56.xyyz
    mad r3.zw, v3.xyxy, c50.x, r3
    mul r1.w, r4.x, c53.x
    mul r4.yz, r1.w, c57.xxyw
    mad r4.yz, v3.xxyw, c51.x, r4
    texld r5, r3.zwzw, s10
    add r3.zw, r5.xywy, c56.w
    mad r5.xz, r3.zyww, c57.z, c57.w
    dp2add r1.w, r5.xzzw, -r5.xzzw, -c57.w
    max r3.z, r1.w, c54.x
    rsq r1.w, r3.z
    rcp r5.y, r1.w
    mad r5.xyz, r5, c56.x, c56.x
    texld r6, r4.yzzw, s10
    add r3.zw, r6.xywy, c56.w
    mad r6.xz, r3.zyww, c57.z, c57.w
    dp2add r1.w, r6.xzzw, -r6.xzzw, -c57.w
    max r3.z, r1.w, c54.x
    rsq r1.w, r3.z
    rcp r6.y, r1.w
    mad r4.yzw, r6.xxyz, c56.x, c56.x
    mad r5.xyz, r5, c54.y, c54.zxzw
    mad r4.yzw, r4, c58.xxyx, c58.xzwz
    dp3 r1.w, r5, r4.yzww
    mul r4.yzw, r5.y, r4
    mad r4.yzw, r5.xxyz, r1.w, -r4
    dp3 r1.w, r4.yzww, r4.yzww
    rsq r1.w, r1.w
    mul r4.yzw, r1.w, r4
    texld r5, v3, s3
    add r5, r5.xyxy, -c56.x
    texld r6, v3.zwzw, s4
    add r6, r6.xyxy, -c56.x
    mul r6, r6, c54.w
    mad r5, r5, c54.w, r6
    mad r5, r5, c59.x, c59.yyzz
    frc r5, r5
    mad r5, r5, c60.x, c60.y
    mul r5, r5, r5
    mad r6, r5, c60.z, c60.w
    mad r6, r5, r6, c59.w
    mad r6, r5, r6, c61.x
    mad r6, r5, r6, -c56.x
    mad r5, r5.xzyw, r6.xzyw, -c57.w
    mul r5.y, r5.w, r5.y
    nrm r6.xyz, r5
    mad r5.xyz, r6, c56.x, c56.x
    mad r4.yzw, r4, c56.x, c56.x
    mad r5.xyz, r5, c54.y, c54.zxzw
    mad r4.yzw, r4, c58.xxyx, c58.xzwz
    dp3 r1.w, r5, r4.yzww
    mul r4.yzw, r5.y, r4
    mad r4.yzw, r5.xxyz, r1.w, -r4
    dp3 r1.w, r4.yzww, r4.yzww
    rsq r1.w, r1.w
    mul r4.yzw, r1.w, r4
    mul r5.xyz, r4.yzww, c61.yzyw
    nrm r6.xyz, r5
    mov r5.xyz, c20
    cmp r5.xyz, r6.x, r5, c21
    mov r7.xyz, c22
    cmp r7.xyz, r6.y, r7, c23
    mov r8.xyz, c24
    cmp r8.xyz, r6.z, r8, c25
    mul r6.xyz, r6, r6
    mul r7.xyz, r7, r6.y
    mad r5.xyz, r6.x, r5, r7
    mad r5.xyz, r6.z, r8, r5
    mov r6.xyz, c62
    cmp r3.zw, -c40.x, r6.x, r6.xyyz
    mul r5.xyz, r3.z, r5
    dp3 r1.w, r4.yzww, -c35
    max r3.z, r1.w, c54.x
    dp3 r5.w, -r1, r4.yzww
    add r5.w, r5.w, r5.w
    mad r6.xyz, r4.yzww, -r5.w, -r1
    dp3 r4.z, r6, -r1
    max r5.w, c61.w, r4.z
    mul r4.z, r5.w, r5.w
    mul r4.z, r4.z, r4.z
    mul r4.z, r4.z, r5.w
    mad r4.z, r4.z, c63.x, c63.y
    mul r5.w, r4.z, c56.x
    mov r2.zw, c54.x
    texldl r7, r2, s2
    mad r8.xy, r2, c58.yxzw, c58.wzzw
    mad r8.zw, r7.x, c54_abs.xyzx, c54_abs.xyxz
    dp4 r7.x, r8, c16
    dp4 r7.y, r8, c17
    dp4 r7.z, r8, c18
    dp4 r2.z, r8, c19
    rcp r2.z, r2.z
    mad r2.w, r7.y, -r2.z, v0.y
    max r6.w, r2.w, c54.x
    mad r7.xyz, r7, r2.z, -v0
    dp3 r2.z, r7, r7
    rsq r2.z, r2.z
    rcp r2.z, r2.z
    mul r7, r4.ywyw, c63.zzww
    mad r8.xy, r0, c28.zwzw, r7
    add r8.z, -r8.y, -c57.w
    texld r8, r8.xzzw, s6
    mul r8.xyz, r5.w, r8
    mov_sat r0.x, r2.z
    mul_sat r0.y, r2.z, c62.w
    mul r9.y, r0.y, v0.y
    mov r9.xz, v0
    mov r10.xyz, c34
    mad r9.xyz, r10, -c33.x, r9
    add r10, -c31, v0.w
    cmp r10, r10, c54_abs.z, c54_abs.x
    dp4 r0.y, r10, r10
    add r2.w, r0.y, -c30.x
    add r10, r0.y, c64
    cmp r11, -r10_abs, c54_abs.z, c54_abs.x
    mov r7.x, c54.x
    cmp r12, -r10_abs.x, c0, r7.x
    cmp r13, -r10_abs.x, c1, r7.x
    cmp r14, -r10_abs.x, c2, r7.x
    cmp r15, -r10_abs.x, c3, r7.x
    cmp r12, -r10_abs.y, c4, r12
    cmp r13, -r10_abs.y, c5, r13
    cmp r14, -r10_abs.y, c6, r14
    cmp r15, -r10_abs.y, c7, r15
    cmp r12, -r10_abs.z, c8, r12
    cmp r13, -r10_abs.z, c9, r13
    cmp r14, -r10_abs.z, c10, r14
    cmp r15, -r10_abs.z, c11, r15
    cmp r12, -r10_abs.w, c12, r12
    cmp r13, -r10_abs.w, c13, r13
    cmp r14, -r10_abs.w, c14, r14
    cmp r10, -r10_abs.w, c15, r15
    mov r9.w, -c57.w
	
// mov r20, r9

// dp4 r21.x, r20, c200
// dp4 r21.y, r20, c201
// dp4 r21.z, r20, c202
// dp4 r21.w, r20, c203

// 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, c204
// dp4 r20.y, r21, c205
// dp4 r20.z, r21, c206
// dp4 r20.w, r21, c207

// mov r9, r20

    dp4 r12.x, r9, r12
    dp4 r12.y, r9, r13
    dp4 r12.z, r9, r14
    dp4 r12.w, r9, r10
    texldp r10, r12, s1
    cmp r4.y, r2.w, -c57.w, r10.x
    dp4 r4.w, c31, r11
    add r4.w, r4.w, -c32.x
    add r4.w, -r4.w, v0.w
    rcp r5.w, c32.x
    mul_sat r4.w, r4.w, r5.w
    add r2.w, r2.w, -c57.w
    add r10.xyz, r0.y, c76
    cmp r11, -r10_abs.x, c4, r7.x
    cmp r12, -r10_abs.x, c5, r7.x
    cmp r13, -r10_abs.x, c6, r7.x
    cmp r14, -r10_abs.x, c7, r7.x
    cmp r11, -r10_abs.y, c8, r11
    cmp r12, -r10_abs.y, c9, r12
    cmp r13, -r10_abs.y, c10, r13
    cmp r14, -r10_abs.y, c11, r14
    cmp r11, -r10_abs.z, c12, r11
    cmp r12, -r10_abs.z, c13, r12
    cmp r13, -r10_abs.z, c14, r13
    cmp r10, -r10_abs.z, c15, r14
    dp4 r11.x, r9, r11
    dp4 r11.y, r9, r12
    dp4 r11.z, r9, r13
    dp4 r11.w, r9, r10
    texldp r9, r11, s1
    cmp r0.y, r2.w, -c57.w, r9.x
    lrp r2.w, r4.w, r0.y, r4.y
    cmp r0.y, -r4.w, r4.y, r2.w
    mov r2.w, c57.w
    add r4.y, r2.w, c30.x
    frc r4.w, c30.x
    add r4.y, r4.y, -r4.w
    add r9, r4.y, c64
    cmp r9, -r9_abs, c54_abs.z, c54_abs.x
    dp4 r4.y, c31, r9
    add r4.w, r4.y, -c32.y
    add r4.y, -r4.w, r4.y
    add r4.w, -r4.w, v0.w
    rcp r4.y, r4.y
    mul_sat r4.y, r4.y, r4.w
    mad r4.w, r4.y, c76.z, c76.w
    mul r4.y, r4.y, r4.y
    mad_sat r0.y, r4.w, r4.y, r0.y
    mad r4.yw, r0.y, c70.xxzy, c70.xzzw
    mov r7.y, c35.y
    mul r9.xyz, -r7.y, c37
    mul r9.xyz, r9, c36
    mul r9.xyz, r3.w, r9
    mul r9.xyz, r4.y, r9
    cmp r9.xyz, c35.y, r7.x, r9
    mul r10.xyz, r5, c37
    mad r9.xyz, r10, r3.w, r9
    mov r10.xyz, c38
    mad r10.xyz, r10, -c39.x, -r2.w
    mul r10.xyz, r2.z, -r10
    mul r10.xyz, r10, c72.x
    exp r11.x, r10.x
    exp r11.y, r10.y
    exp r11.z, r10.z
    add r10.x, r6.w, c72.y
    min r2.z, r6.w, -c64.w
    mad r12.xy, r7.zwzw, r2.z, r2
    mov r12.zw, c54.x
    texldl r13, r12, s2
    mad r14.xy, r12, c58.yxzw, c58.wzzw
    mad r14.zw, r13.x, c54_abs.xyzx, c54_abs.xyxz
    dp4 r13.x, r14, c16
    dp4 r13.y, r14, c17
    dp4 r13.z, r14, c18
    dp4 r2.z, r14, c19
    rcp r2.z, r2.z
    mad r7.yzw, r13.xxyz, r2.z, -c26.xxyz
    dp3 r2.z, r7.yzww, r7.yzww
    rsq r2.z, r2.z
    rcp r2.z, r2.z
    add r13.xyz, -c26, v0
    dp3 r4.y, r13, r13
    rsq r4.y, r4.y
    rcp r4.y, r4.y
    add r2.z, -r2.z, r4.y
    texld r12, r12, s7
    texld r14, r2, s7
    cmp r2.xyz, r2.z, r14, r12
    mad r2.xyz, r2, r11, -r9
    mad r2.xyz, r11, r2, r9
    mad r4.z, r4.z, -c72.z, c72.w
    mul r2.xyz, r2, r4.z
    mad r2.xyz, r8, r0.x, r2
    dp3 r0.x, -c35, r6
    max r4.z, c57.w, r0.x
    min r0.x, r4.z, -c57.w
    add r4.z, -r0_abs.x, -c57.w
    rsq r4.z, r4.z
    rcp r4.z, r4.z
    mad r5.w, r0_abs.x, c65.x, c65.y
    mad r5.w, r5.w, r0_abs.x, c65.z
    mad r5.w, r5.w, r0_abs.x, c65.w
    mul r4.z, r4.z, r5.w
    mad r5.w, r4.z, c66.x, c66.y
    cmp r0.x, r0.x, c54_abs.x, c54_abs.z
    mad r0.x, r5.w, r0.x, r4.z
    if_ge -r1.w, c54.x
      mov r6.xyz, c54.x
    else
      mov r8.x, c40.x
      cmp r4.z, -r8.x, c66.z, c66.w
      add r4.z, r3.w, r4.z
      mad r4.z, r4.z, c56.x, c56.x
      mad r4.z, r4.z, c57.z, c57.w
      mad r7.yz, r4.z, -r4.z, c78.xxyw
      log r4.z, r7.y
      cmp r4.z, r7.z, r4.z, c78.z
      mul r5.w, r4.z, c78.w
      mad r4.z, r4.z, c67.x, c67.y
      mad r5.w, r4.z, r4.z, -r5.w
      rsq r5.w, r5.w
      rcp r5.w, r5.w
      add r4.z, -r4.z, r5.w
      max r5.w, r4.z, c54.x
      rsq r4.z, r5.w
      rcp r4.z, r4.z
      mul r4.z, r4.z, c67.z
      rcp r4.z, r4.z
      mul r5.w, r4.z, c67.w
      mad r4.z, r4.z, c69.x, c69.y
      add r7.yz, r0.x, c69.xzxw
      rcp r5.w, r5.w
      cmp r4.z, r4.z, r5.w, c69.w
      mul r7.yz, r4.z, r7
      mul r7.zw, r7.xyyz, c68.x
      mul r8.xy, r7.zwzw, r7.zwzw
      mad r9, r8.xxyy, c68.y, c68.zwzw
      rcp r4.z, r9.y
      mul r4.z, r4.z, r9.x
      mul r4.z, r4.z, -r8.x
      cmp r7.zw, -r7, c54_abs.x, c54_abs.z
      cmp r5.w, r7.y, -c54_abs.x, -c54_abs.z
      add r5.w, r5.w, r7.z
      mul r4.z, r4.z, c74.x
      exp r4.z, r4.z
      add r4.z, -r4.z, -c57.w
      rsq r4.z, r4.z
      rcp r4.z, r4.z
      mad r4.z, r5.w, r4.z, -c57.w
      mul r4.z, r4.z, c56.x
      rcp r5.w, r9.w
      mul r5.w, r5.w, r9.z
      mul r5.w, r5.w, -r8.y
      mul r5.w, r5.w, c74.x
      exp r5.w, r5.w
      add r5.w, -r5.w, -c57.w
      rsq r5.w, r5.w
      rcp r5.w, r5.w
      mad r5.w, r7.w, r5.w, -c57.w
      mad r4.z, r5.w, c56.x, -r4.z
      mov_sat r5.w, r3.z
      add r5.w, r5.w, c57.w
      mad r5.w, r5.w, c74.y, c74.z
      dp3 r7.y, -c35, -r1
      max r8.x, r7.y, c54.x
      pow r7.y, r8.x, c74.w
      mad r7.y, r7.y, c77.x, c77.y
      mul r4.z, r4.z, r5.w
      mul r6.xyz, r7.y, r4.z
    endif
    mul r6.xyz, r6, c36
    if_ge -r1.w, c54.x
      mov r7.yzw, c54.x
    else
      mov r8.x, c40.x
      cmp r1.w, -r8.x, c77.z, c77.w
      add r1.w, r1.w, r3.w
      mad r1.w, r1.w, c56.x, c56.x
      mad r1.w, r1.w, c57.z, c57.w
      mad r8.xy, r1.w, -r1.w, c78
      log r1.w, r8.x
      cmp r1.w, r8.y, r1.w, c78.z
      mul r4.z, r1.w, c78.w
      mad r1.w, r1.w, c67.x, c67.y
      mad r4.z, r1.w, r1.w, -r4.z
      rsq r4.z, r4.z
      rcp r4.z, r4.z
      add r1.w, -r1.w, r4.z
      max r4.z, r1.w, c54.x
      rsq r1.w, r4.z
      rcp r1.w, r1.w
      mul r1.w, r1.w, c67.z
      rcp r1.w, r1.w
      mul r4.z, r1.w, c67.w
      mad r1.w, r1.w, c69.x, c69.y
      add r8.xy, r0.x, c69.zxzw
      rcp r0.x, r4.z
      cmp r0.x, r1.w, r0.x, c69.w
      mul r8.xy, r0.x, r8
      mul r8.yz, r8.xxyw, c68.x
      mul r9.xy, r8.yzzw, r8.yzzw
      mad r11, r9.xxyy, c68.y, c68.zwzw
      rcp r0.x, r11.y
      mul r0.x, r0.x, r11.x
      mul r0.x, r0.x, -r9.x
      cmp r8.yz, -r8, c54_abs.x, c54_abs.z
      cmp r1.w, r8.x, -c54_abs.x, -c54_abs.z
      add r1.w, r1.w, r8.y
      mul r0.x, r0.x, c74.x
      exp r0.x, r0.x
      add r0.x, -r0.x, -c57.w
      rsq r0.x, r0.x
      rcp r0.x, r0.x
      mad r0.x, r1.w, r0.x, -c57.w
      mul r0.x, r0.x, c56.x
      rcp r1.w, r11.w
      mul r1.w, r1.w, r11.z
      mul r1.w, r1.w, -r9.y
      mul r1.w, r1.w, c74.x
      exp r1.w, r1.w
      add r1.w, -r1.w, -c57.w
      rsq r1.w, r1.w
      rcp r1.w, r1.w
      mad r1.w, r8.z, r1.w, -c57.w
      mad r0.x, r1.w, c56.x, -r0.x
      mov_sat r1.w, r3.z
      add r1.w, r1.w, c57.w
      mad r1.w, r1.w, c79.x, c79.y
      dp3 r1.x, -c35, -r1
      max r4.z, r1.x, c54.x
      pow r1.x, r4.z, c74.w
      mad r1.x, r1.x, c79.z, c79.w
      mul r0.x, r0.x, r1.w
      mul r7.yzw, r1.x, r0.x
    endif
    mul r1.xyz, r7.yzww, c36
    mul r1.xyz, r1, c70.y
    mad r1.xyz, r6, c70.w, r1
    mad r1.xyz, r0.y, r1, r2
    texld r0, r0.zwzw, s8
    mul r1.w, r4.x, c71.x
    mad r2.xy, v3, c71.y, -r1.w
    texld r8, r2, s5
    mad r2.xy, v3, c71.y, r1.w
    texld r9, r2, s5
    mul r1.w, r8.z, r9.y
    rsq r1.w, r1.w
    rcp_sat r1.w, r1.w
    mov_sat r10.x, r10.x
    add r2.x, -r10.x, -c57.w
    mul r1.w, r1.w, r2.x
    mul_sat r2.x, r6.w, c71.z
    mul r6.w, r1.w, r2.x
    mov r6.xyz, c75
    lrp r8, r0.w, r0, r6
    mul r0.xyz, r3.z, r8
    mul r0.xyz, r0, c36
    mul r0.xyz, r3.w, r0
    mul r2.xyz, r5, r8
    mul r2.xyz, r3.w, r2
    mad r0.xyz, r0, r4.w, r2
    lrp r2.xyz, r8.w, r0, r1
    texld r0, r3, s9
    mov r1.xyz, c36
    dp3 r1.w, r1, c55
    mul r1.w, r3.w, r1.w
    mul r1.w, r1.w, c59.y
    mad r0.xyz, r0, r1.w, -r2
    mad r0.xyz, r0.w, r0, r2
    add r0.w, -r2.w, -c42.x
    mad r0.w, r0.w, c73.x, c73.y
    add r1.w, -r2.w, -c43.x
    mul r1.w, r1.w, c71.w
    rcp r1.w, r1.w
    mad r0.w, r4.y, r1.w, r0.w
    mul r0.w, r0.w, c74.x
    exp r0.w, r0.w
    rcp r0.w, r0.w
    mad_sat r0.w, c44.x, -r0.w, c44.x
    add r1.w, c46.x, -v0.y
    mov r2.x, c46.x
    add r2.x, r2.x, -c45.x
    add r1.w, r1.w, -c45.x
    rcp r2.x, r2.x
    mul_sat r1.w, r1.w, r2.x
    mad r2.x, r1.w, c76.z, c76.w
    mul r1.w, r1.w, r1.w
    mul r1.w, r1.w, r2.x
    mov r2.w, c75.w
    add r2.x, r2.w, -c49.x
    rcp r2.y, c49.x
    cmp r2.x, r2.x, c71.w, r2.y
    mul_sat r2.x, r2.x, r4.y
    mad r2.y, r2.x, c76.z, c76.w
    mul r2.x, r2.x, r2.x
    mul r2.x, r2.x, r2.y
    mul r1.xyz, r1, c41
    mul r1.xyz, r1, c55.w
    abs r2.y, c35.y
    mul r1.xyz, r1, r2.y
    mul r2.yzw, r3.w, r1.xxyz
    max r13.w, r13.y, c54.x
    texld r4, r13.xwzw, s0
    dp2add_sat r3.x, r0.w, c48.x, r7.x
    mad r1.xyz, r1, -r3.w, r4
    mad r1.xyz, r3.x, r1, r2.yzww
    mad r0.w, c47.x, r1.w, r0.w
    mul_sat r0.w, r0.w, r2.x
    add r1.xyz, -r0, r1
    mad oC0.xyz, r0.w, r1, r0
    mov oC0.w, -c57.w

// approximately 473 instruction slots used (18 texture, 455 arithmetic)
 