//little flames
// Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
//
// Parameters:
//
//   float3 ambient_cube_tb[2];
//   float g_hdr_on;
//   float4 g_viewport_offset_scale;
//   sampler2D gbuffer_channel_4_sampler;
//   float4x4 inv_projection;
//   sampler2D s_diffuse1;
//   sampler2D s_diffuse2;
//   sampler2D s_diffuse3;
//   sampler2D s_diffuse4;
//   float3 sun_colour;
//   float4x4 view;
//   float4x4 view_projection;
//
//
// Registers:
//
//   Name                      Reg   Size
//   ------------------------- ----- ----
//   view_projection           c0       4
//   inv_projection            c4       4
//   view                      c8       3
//   sun_colour                c11      1
//   ambient_cube_tb           c12      1
//   g_hdr_on                  c13      1
//   g_viewport_offset_scale   c14      1
//   gbuffer_channel_4_sampler s0       1
//   s_diffuse1                s1       1
//   s_diffuse2                s2       1
//   s_diffuse3                s3       1
//   s_diffuse4                s4       1
//

    ps_3_0
    def c15, 0.100000001, -1, 1, 0
    def c16, 2, -2, -1, 1
    def c17, 1, 0.00400000019, 360, 0
    def c18, 2, 3, 0.5, -0.5
def c220, 0, 0, 0.0625, 0.5
dcl_2d s13
    dcl_color v0
    dcl_texcoord v1.xy
    dcl_texcoord1 v2.xyz
    dcl_texcoord2 v3.zw
    dcl_texcoord4 v4.xy
    dcl_texcoord7 v5.xyz
    dcl_2d s0
    dcl_2d s1
    dcl_2d s2
    dcl_2d s3
    dcl_2d s4
    add r0.xy, c15.x, v4
    frc r0.zw, r0.xyxy
    add r1.xy, -r0.zwzw, r0
    add r1.z, r1.x, c15.y
    cmp r1.xz, -r1_abs, c15.z, c15.w
    add r1.x, r1.z, r1.x
    if_lt -r1.x, c15.w
      if_eq r0.y, r0.w
        texld r2, v1, s1
      else
        if_eq r1.y, c15.z
          texld r2, v1, s2
        else
          if_eq r1.y, c18.x
            texld r2, v1, s3
          else
            if_eq r1.y, c18.y
              texld r2, v1, s4
            else
              mov r2, c15.w
            endif
          endif
        endif
      endif
      if_ne v5.x, -v5.x
        if_eq r0.y, r0.w
          texld r3, v5, s1
          lrp r4, v5.z, r3, r2
          mov r2, r4
        else
          if_eq r1.y, c15.z
            texld r3, v5, s2
            lrp r4, v5.z, r3, r2
            mov r2, r4
          else
            if_eq r1.y, c18.x
              texld r3, v5, s3
              lrp r4, v5.z, r3, r2
              mov r2, r4
            else
              if_eq r1.y, c18.y
                texld r3, v5, s4
                lrp r4, v5.z, r3, r2
                mov r2, r4
              endif
            endif
          endif
        endif
      endif
      mul r2, r2, v0
      mul r2.xyz, r2, v0.w
    else
      mov r2, v0
    endif
    mul r1.yzw, r1.x, r2.xxyz
    mul r3.xyz, r1.yzww, c11
    mov r4.xyz, c17
    cmp r0.yw, -c13.x, r4.x, r4.xyzz
    mul r4.xyz, r0.w, c12
    mul r1.yzw, r1, r4.xxyz
    mul r1.yzw, r0.y, r1
    mad r1.yzw, r3.xxyz, r0.y, r1
    mul r3.xyz, r1.yzww, v3.z
    mul r0.y, r2.w, v3.w
    cmp r3.w, -r1.x, r2.w, r0.y
    cmp r1, -r1.x, r2, r3
    if_eq r0.x, r0.z
      mad r0, v2.xyzx, c15.zzzw, c15.wwwz
      dp4 r2.x, r0, c0
      dp4 r2.y, r0, c1
      dp4 r2.z, r0, c3

texldl r24, c220.z, s13		//v2 (r3 derives from v2) gets transformed here, so need to shift it
add r24.y, r2.z, -r24.y
mul r24.x, r24.x, r24.y
add r2.x, r2.x, r24.x	  

      rcp r2.z, r2.z
      mul r2.xy, r2.z, r2
      mad r2.xy, r2, c18.zwzw, c18.z
      mad r2.xy, r2, c14.zwzw, c14
      mov r2.zw, c15.w
      texldl r3, r2, s0
      mad r2.xy, r2, c16, c16.zwzw
      mad r2.zw, r3.x, c15, c15.xywz
      dp4 r3.x, r2, c6
      dp4 r2.x, r2, c7
      rcp r2.x, r2.x
      dp4 r0.x, r0, c10
      mad_sat r0.x, r3.x, r2.x, -r0.x
      mul oC0, r0.x, r1
    else
      mov oC0, r1
    endif

// approximately 111 instruction slots used (10 texture, 101 arithmetic)
 