//Shadows CS from cache.
//
// Generated by Microsoft (R) HLSL Shader Compiler 10.0.10011.16384
//
//   using 3Dmigoto v1.3.16 on Fri Jan 14 20:06:33 2022
//
//
// Buffer Definitions:
//
// cbuffer ConstBuf__drawTextureData
// {
//
//   struct DrawTextureData
//   {
//
//       float2 texDimensions;          // Index:    0
//       float farPlane;                // Index:    0.z
//       int texType;                   // Index:    0.w
//       int drawMode;                  // Index:    1
//       int slice;                     // Index:    1.y
//       uint bestPerformance;          // Index:    1.z
//       uint worstPerformance;         // Index:    1.w
//       float isNeoHDR;                // Index:    2
//       float4 scale;                  // Index:    3
//       float4 offset;                 // Index:    4
//       int environmentFlags;          // Index:    5
//
//   } resourceTables__drawTextureData; // Index:    0-5.x            Components:    21
                                        // Textures:  t0-t5
//
// }
//
// cbuffer ConstBuf__gbuffers
// {
//
//   struct GBufferStruct
//   {
//
//       float4x4 invViewProjNoZReproj; // Index:    0
//       float4x4 directionProjMatrix;  // Index:    4
//       float2 viewportScale;          // Index:    8
//       float2 viewportBias;           // Index:    8.z
//       float2 invViewportSize;        // Index:    9
//       float2 viewportSize;           // Index:    9.z
//       uint2 viewportSizeUint;        // Index:   10
//       float3 eyePos;                 // Index:   11
//
//   } resourceTables__gbuffers;        // Index:    0-11.z           Components:    47
                                        // Textures:  t6-t15
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// resourceTables__drawTextureData__smpLinearClamp    sampler      NA          NA    0        1
// resourceTables__gbuffers__samplerLinearClamp    sampler      NA          NA    2        1
// resourceTables__drawTextureData.tex2D    texture  float4          2d    0        1
// resourceTables__drawTextureData.tex2Darray    texture  float4     2darray    1        1
// resourceTables__drawTextureData.tex3D    texture  float4          3d    2        1
// resourceTables__drawTextureData.tex2Duint    texture    uint          2d    4        1
// resourceTables__drawTextureData.profileColor    texture  float4          1d    5        1
// resourceTables__gbuffers.linearDepthTexture    texture   float          2d    6        1
// resourceTables__gbuffers.baseColorTexture    texture  float4          2d    7        1
// resourceTables__gbuffers.normalTexture    texture  float4          2d    8        1
// resourceTables__gbuffers.propertiesTexture    texture  float4          2d    9        1
// resourceTables__gbuffers.ambientTexture    texture  float3          2d   10        1
// resourceTables__gbuffers.scatteringEmissiveTexture    texture  float4          2d   11        1
// resourceTables__gbuffers.bilateralVectorsTex    texture  float2          2d   13        1
// resourceTables__gbuffers.ssaoTex    texture  float4          2d   14        1
// resourceTables__gbuffers.reflectionMap    texture  float3          2d   15        1
// ConstBuf__drawTextureData         cbuffer      NA          NA    0        1
// ConstBuf__gbuffers                cbuffer      NA          NA    1        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION              0   xyzw        0      POS   float
// TEXCOORD                 0   xy          1     NONE   float   xy
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[6], immediateIndexed
dcl_constantbuffer cb1[12], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s2, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2darray (float,float,float,float) t1
dcl_resource_texture3d (float,float,float,float) t2
dcl_resource_texture2d (uint,uint,uint,uint) t4
dcl_resource_texture1d (float,float,float,float) t5
dcl_resource_texture2d (float,float,float,float) t6
dcl_resource_texture2d (float,float,float,float) t7
dcl_resource_texture2d (float,float,float,float) t8
dcl_resource_texture2d (float,float,float,float) t9
dcl_resource_texture2d (float,float,float,float) t10
dcl_resource_texture2d (float,float,float,float) t11
dcl_resource_texture2d (float,float,float,float) t13
dcl_resource_texture2d (float,float,float,float) t14
dcl_resource_texture2d (float,float,float,float) t15
dcl_input_ps linear v1.xy
dcl_output o0.xyzw
dcl_temps 45
dcl_resource_texture2d (float,float,float,float) t125
ld_indexable(texture2d)(float,float,float,float) r40.xyzw, l(0, 0, 0, 0), t125.xyzw
resinfo_indexable(texture2d)(float,float,float,float)_uint r0.xy, l(0), t6.xyzw
utof r0.xy, r0.xyxx
mul r0.xy, r0.xyxx, v1.xyxx
ftoi r1.xy, r0.xyxx
mov r1.zw, l(0,0,0,0)
ld_indexable(texture2d)(float,float,float,float) r2.z, r1.xyww, t6.yzxw
ld_indexable(texture2d)(float,float,float,float) r3.xyz, r1.xyww, t8.xyzw
mad r3.xyz, r3.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
dp3 r0.z, r3.xyzx, r3.xyzx
rsq r0.z, r0.z
mul r4.xyz, r0.zzzz, r3.xyzx
ld_indexable(texture2d)(float,float,float,float) r5.xyzw, r1.xyww, t7.xyzw
ld_indexable(texture2d)(float,float,float,float) r6.xyz, r1.xyww, t9.yzwx
mul r0.w, r6.z, l(255.000000)
ftou r0.w, r0.w
ubfe r3.w, l(3), l(5), r0.w
and r4.w, r0.w, l(4)
ult r6.z, r3.w, l(5)
and r6.z, r3.w, r6.z
ieq r7.xy, r3.wwww, l(6, 5, 0, 0)
ld_indexable(texture2d)(float,float,float,float) r8.xyzw, r1.xyww, t11.xyzw
iadd r9.xyzw, r1.xyxy, l(-1, 0, 0, -1)
mov r10.xy, r9.zwzz
mov r10.zw, l(0,0,0,0)
ld_indexable(texture2d)(float,float,float,float) r7.zw, r10.xyzw, t7.zwxy
mov r9.zw, l(0,0,0,0)
ld_indexable(texture2d)(float,float,float,float) r9.xy, r9.xyzw, t7.xyzw
iadd r10.xyzw, r1.xyxy, l(0, 1, 1, 0)
mov r11.xy, r10.zwzz
mov r11.zw, l(0,0,0,0)
ld_indexable(texture2d)(float,float,float,float) r9.zw, r11.xyzw, t7.zwxy
mov r10.zw, l(0,0,0,0)
ld_indexable(texture2d)(float,float,float,float) r10.xy, r10.xyzw, t7.xyzw
mov r11.x, r7.z
mov r11.yz, r9.xxzx
mov r11.w, r10.x
add r11.xyzw, r5.xxxx, -r11.xyzw
mul r11.xyzw, |r11.xyzw|, l(50.000000, 50.000000, 50.000000, 50.000000)
min r11.xyzw, r11.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000)
add r11.xyzw, -r11.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000)
ult r9.xz, l(0, 0, 0, 0), r1.yyxy
and r10.xz, r9.xxzx, l(0x3f800000, 0, 0x3f800000, 0)
mul r12.xy, r10.xzxx, r11.xyxx
iadd r10.xz, l(-1, 0, -1, 0), cb1[10].xxyx
ult r10.xz, r1.xxyx, r10.xxzx
and r10.xz, r10.xxzx, l(0x3f800000, 0, 0x3f800000, 0)
mul r12.zw, r10.xxxz, r11.zzzw
add r6.w, r12.y, r12.x
mad r6.w, r11.z, r10.x, r6.w
mad r6.w, r11.w, r10.z, r6.w
ge r7.z, l(0.010000), r6.w
movc r11.xyzw, r9.xxxx, l(1.000000,0,0,0), l(0,0,0,1.000000)
movc r11.xyzw, r7.zzzz, r11.xyzw, r12.xyzw
mul r9.x, r9.y, r11.y
mad r7.w, r7.w, r11.x, r9.x
mad r7.w, r9.w, r11.z, r7.w
mad r7.w, r10.y, r11.w, r7.w
rcp r6.w, r6.w
movc r6.w, r7.z, l(1.000000), r6.w
mul r9.z, r6.w, r7.w
and r7.zw, r1.xxxy, l(0, 0, 1, 1)
ine r6.w, r7.w, r7.z
mov r9.xy, r5.xyxx
movc r9.yz, r6.wwww, r9.yyzy, r9.zzyz
add r9.xyz, r9.xyzx, l(0.000000, -0.498039216, -0.498039216, 0.000000)
add r10.yz, r9.yyzy, r9.xxxx
add r10.x, -r9.z, r10.y
add r5.x, -r9.y, r9.x
add r10.w, -r9.z, r5.x
mul r9.xyz, r10.xzwx, r10.xzwx
min r9.xyz, r9.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
mul r5.x, r5.w, r5.w
mul r5.xy, r5.xxxx, l(8.000000, 0.160000, 0.000000, 0.000000)
min r5.y, r5.y, l(0.160000)
mov_sat r5.x, r5.x
mad r10.xyz, r9.xyzx, r5.xxxx, -r5.yyyy
mad r10.xyz, r5.zzzz, r10.xyzx, r5.yyyy
mad r9.xyz, r5.zzzz, -r9.xyzx, r9.xyzx
or r5.y, r7.x, r7.y
ld_indexable(texture2d)(float,float,float,float) r7.yz, r1.xyww, t13.zxyw
mul r7.yz, r7.yyzy, cb1[9].xxyx
mul r7.yz, r7.yyzy, l(0.000000, 8.000000, 8.000000, 0.000000)
mad r7.yz, r0.xxyx, cb1[9].xxyx, r7.yyzy
sample_l_indexable(texture2d)(float,float,float,float) r11.xyzw, r7.yzyy, t14.xyzw, s2, l(0.000000)
and r7.yz, l(0, 1, 0x80000000, 0), cb0[5].xxxx
mad r12.yzw, r11.yyzw, l(0.000000, 2.000000, 2.000000, 2.000000), l(0.000000, -1.000000, -1.000000, -1.000000)
dp3 r5.w, r12.yzwy, r12.yzwy
sqrt r12.x, r5.w
mov r13.x, r11.y
mov r13.yzw, l(0,0,0,0)
movc r12.xyzw, r7.yyyy, r12.xyzw, r13.xyzw
if_nz r6.z
  mov r11.yzw, l(0,1.000000,0,0)
  mov r13.xyz, l(0,0,0,0)
  mov r10.w, l(0)
else
  and r0.w, r0.w, l(2)
  ieq r3.w, r3.w, l(7)
  mad r14.xyz, r8.zxyz, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
  dp3 r5.w, r14.xyzx, r14.xyzx
  rsq r5.w, r5.w
  mul r14.xyz, r5.wwww, r14.xyzx
  mul r15.xyz, r4.yzxy, r14.xyzx
  mad r14.xyz, r14.zxyz, r4.zxyz, -r15.xyzx
  dp3 r5.w, r14.xyzx, r14.xyzx
  rsq r5.w, r5.w
  mul r14.xyz, r5.wwww, r14.xyzx
  max r5.w, r9.z, r9.y
  max r5.w, r5.w, r9.x
  max r5.w, r5.w, l(0.000010)
  div r15.xyz, r9.xyzx, r5.wwww
  mul r15.xyz, r10.xyzx, r15.xyzx
  movc r15.yzw, r7.xxxx, r15.xxyz, r10.xxyz
  mul r7.xyw, r8.xyxz, r10.xyxz
  lt r5.w, r8.z, l(0.000000)
  movc r16.xyz, r0.wwww, r8.xyzx, l(0,0,0,0)
  or r0.w, r3.w, r5.w
  movc r17.yzw, r3.wwww, r7.xxyw, r10.xxyz
  movc r11.yzw, r5.yyyy, r14.xxyz, l(0,1.000000,0,0)
  or r0.w, r5.y, r0.w
  movc r13.xyz, r0.wwww, l(0,0,0,0), r16.xyzx
  mov r15.x, r8.w
  mov r17.x, l(0)
  movc r10.xyzw, r5.yyyy, r15.yzwx, r17.yzwx
  mov r8.xyz, l(0,0,0,0)
endif
mov_sat r0.w, -r8.w
mov_sat r3.w, r6.y
movc r7.xyw, r4.wwww, r3.wwww, r6.yyyy
ge r0.w, l(0.000000), r0.w
ine r3.w, r7.z, l(0)
and r0.w, r0.w, r3.w
if_nz r0.w
  mad r0.xy, r0.xyxx, cb1[8].xyxx, cb1[8].zwzz
  mul r2.xy, r2.zzzz, r0.xyxx
  mov r2.w, l(1.000000)
  
  add r40.w, r2.z, -r40.y
  mad r2.x, -r40.x, r40.w, r2.x
  
  dp4 r14.x, r2.xyzw, cb1[0].xyzw
  dp4 r14.y, r2.xyzw, cb1[1].xyzw
  dp4 r14.z, r2.xyzw, cb1[2].xyzw
  add r0.xyw, -r14.xyxz, cb1[11].xyxz
  
  //Specular CS.
  mul r41.x, r40.y, cb1[0].x
  mul r41.y, r40.y, cb1[1].x
  mul r41.z, r40.y, cb1[2].x
  mad r0.x, r40.x, r41.x, r0.x
  mad r0.y, r40.x, r41.y, r0.y
  mad r0.w, r40.x, r41.z, r0.w
  
  dp3 r2.x, r0.xywx, r0.xywx
  rsq r2.x, r2.x
  mul r0.xyw, r0.xyxw, r2.xxxx
  add r2.x, -r7.w, l(1.000000)
  mul r2.y, r2.x, r2.x
  max r2.y, r2.y, l(0.001000)
  mul r14.xyz, r11.wyzw, r0.xywx
  mad r14.xyz, r0.wxyw, r11.yzwy, -r14.xyzx
  mul r15.xyz, r11.wyzw, r14.xyzx
  mad r11.yzw, r11.zzwy, r14.yyzx, -r15.xxyz
  mad r11.yzw, -r3.xxyz, r0.zzzz, r11.yyzw
  mad r11.yzw, r10.wwww, r11.yyzw, r4.xxyz
  dp3 r2.w, r11.yzwy, r11.yzwy
  rsq r2.w, r2.w
  mul r11.yzw, r2.wwww, r11.yyzw
  movc r11.yzw, r5.yyyy, r11.yyzw, r4.xxyz
  mul r2.x, r2.x, r2.y
  dp3 r2.y, -r0.xywx, r11.yzwy
  add r2.y, r2.y, r2.y
  mad r11.yzw, r11.yyzw, -r2.yyyy, -r0.xxyw
  mad r14.xyz, r3.xyzx, r0.zzzz, -r11.yzwy
  mad r11.yzw, r2.xxxx, r14.xxyz, r11.yyzw
  dp3 r2.y, r11.yzwy, r11.yzwy
  rsq r2.y, r2.y
  mul r11.yzw, r2.yyyy, r11.yyzw
  and r2.y, l(2), cb0[5].x
  log r2.w, r12.x
  mul r2.w, r2.w, l(2.750000)
  exp r2.w, r2.w
  mad r3.xyz, r3.xyzx, r0.zzzz, -r0.xywx
  mad r3.xyz, r2.wwww, r3.xyzx, r0.xywx
  dp3 r0.z, r3.xyzx, r3.xyzx
  rsq r0.z, r0.z
  mul r3.xyz, r0.zzzz, r3.xyzx
  mul r3.xyz, r12.xxxx, r3.xyzx
  movc r3.xyz, r2.yyyy, r12.yzwy, r3.xyzx
  dp3 r0.z, r3.xyzx, r3.xyzx
  sqrt r0.z, r0.z
  min r0.z, r0.z, l(1.000000)
  add r2.y, -r0.z, l(1.000000)
  dp3 r2.w, r11.yzwy, r3.xyzx
  div_sat r2.w, r2.w, r0.z
  add r2.y, -r2.w, r2.y
  mul_sat r2.y, r2.y, l(1.#INF0000)
  add r2.y, -r2.y, l(1.000000)
  add r0.z, r0.z, -r2.y
  mad r2.x, r2.x, r0.z, r2.y
  dp3_sat r0.x, r4.xyzx, r0.xywx
  add r0.y, r0.x, l(1.000000)
  log r0.y, r0.y
  mul r0.y, r0.y, r7.w
  exp r0.y, r0.y
  min r0.y, r0.y, l(1.000000)
  add r0.x, -r0.x, l(1.000000)
  mul r0.z, r0.x, r0.x
  mul r0.x, r0.z, r0.x
  add r0.z, -r0.y, l(1.000000)
  mad r2.y, r0.x, r0.z, r0.y
else
  mov r2.xy, l(1.000000,1.000000,0,0)
endif
if_z cb0[0].w
  sample_indexable(texture2d)(float,float,float,float) r0.xyzw, v1.xyxx, t0.xyzw, s0
else
  ieq r2.w, l(4), cb0[0].w
  if_nz r2.w
    itof r3.z, cb0[1].y
    mov r3.xy, v1.xyxx
    sample_indexable(texture2darray)(float,float,float,float) r0.xyzw, r3.xyzx, t1.xyzw, s0
  else
    ieq r2.w, l(1), cb0[0].w
    if_nz r2.w
      resinfo_indexable(texture3d)(float,float,float,float)_uint r3.xy, l(0), t2.xyzw
      utof r3.xy, r3.xyxx
      mul r3.xy, r3.xyxx, v1.xyxx
      ftoi r3.xy, r3.xyxx
      mov r3.z, cb0[1].y
      mov r3.w, l(0)
      ld_indexable(texture3d)(float,float,float,float) r0.xyzw, r3.xyzw, t2.xyzw
    else
      ieq r2.w, l(2), cb0[0].w
      if_nz r2.w
        mov r0.xyzw, l(0,0,0,0)
      else
        ieq r2.w, l(3), cb0[0].w
        if_nz r2.w
          mul r3.xy, v1.xyxx, cb0[0].xyxx
          ftoi r3.xy, r3.xyxx
          mov r3.zw, l(0,0,0,0)
          ld_indexable(texture2d)(uint,uint,uint,uint) r2.w, r3.xyzw, t4.yzwx
          utof r2.w, r2.w
          utof r3.xy, cb0[1].zwzz
          min r3.z, r2.w, r3.x
          max r2.w, r2.w, r3.x
          min r2.w, r3.y, r2.w
          max r2.w, r2.w, r3.z
          ftou r2.w, r2.w
          iadd r2.w, r2.w, -cb0[1].z
          utof r2.w, r2.w
          iadd r3.x, -cb0[1].z, cb0[1].w
          utof r3.x, r3.x
          div r0.xyz, r2.wwww, r3.xxxx
          mov r0.w, l(1.000000)
        else
          mov r0.xyzw, l(0,0,0,0)
        endif
      endif
    endif
  endif
endif
ieq r3.xyzw, l(1, 17, 13, 16), cb0[1].xxxx
if_nz r3.x
  mad r8.xyz, r0.xyzx, cb0[3].xyzx, cb0[4].xyzx
else
  ieq r2.w, l(2), cb0[1].x
  if_nz r2.w
    mad r8.xyz, r0.xxxx, cb0[3].xyzx, cb0[4].xyzx
  else
    ieq r2.w, l(3), cb0[1].x
    if_nz r2.w
      mad r8.xyz, r0.yyyy, cb0[3].xyzx, cb0[4].xyzx
    else
      ieq r2.w, l(4), cb0[1].x
      if_nz r2.w
        mad r8.xyz, r0.zzzz, cb0[3].xyzx, cb0[4].xyzx
      else
        ieq r2.w, l(5), cb0[1].x
        if_nz r2.w
          mad r8.xyz, r0.wwww, cb0[3].xyzx, cb0[4].xyzx
        else
          ieq r0.w, l(6), cb0[1].x
          if_nz r0.w
            dp3 r0.w, r0.xyzx, r0.xyzx
            sqrt r0.w, r0.w
            mad r8.xyz, r0.wwww, cb0[3].xyzx, cb0[4].xyzx
          else
            ieq r0.w, l(7), cb0[1].x
            if_nz r0.w
              mul r14.x, -r0.x, cb0[3].x
              mul r14.y, r0.x, cb0[3].y
              mov r14.z, l(0)
              add r8.xyz, r14.xyzx, cb0[4].xyzx
            else
              ieq r0.w, l(8), cb0[1].x
              if_nz r0.w
                mul r14.x, -r0.y, cb0[3].x
                mul r14.y, r0.y, cb0[3].y
                mov r14.z, l(0)
                add r8.xyz, r14.xyzx, cb0[4].xyzx
              else
                ieq r0.w, l(9), cb0[1].x
                if_nz r0.w
                  mul r14.x, -r0.z, cb0[3].x
                  mul r14.y, r0.z, cb0[3].y
                  mov r14.z, l(0)
                  add r8.xyz, r14.xyzx, cb0[4].xyzx
                else
                  ieq r0.z, l(10), cb0[1].x
                  if_nz r0.z
                    sample_indexable(texture1d)(float,float,float,float) r8.xyz, r0.xxxx, t5.xyzw, s0
                  else
                    ieq r0.z, l(11), cb0[1].x
                    if_nz r0.z
                      mov r8.xyz, r9.xyzx
                    else
                      ieq r0.z, l(12), cb0[1].x
                      if_nz r0.z
                        dp3 r0.z, l(0.300000, 0.600000, 0.114000, 0.000000), r9.xyzx
                        add r11.yzw, r0.zzzz, l(0.000000, -0.0451862067, -0.871367216, -0.871367216)
                        mul r0.w, r11.y, l(91.388535)
                        mov_sat r0.w, r0.w
                        lt r2.w, l(0.000000), r0.z
                        add_sat r3.x, -r5.z, l(0.999000)
                        movc r2.w, r2.w, r3.x, l(1.000000)
                        add r2.w, -r0.w, r2.w
                        mad r0.w, r5.z, r2.w, r0.w
                        mad r14.xyz, r0.wwww, l(0.000000, 1.000000, 0.000000, 0.000000), l(1.000000, 0.000000, 0.000000, 0.000000)
                        ge r0.w, r0.w, l(1.000000)
                        ge r2.w, r0.z, l(0.871367216)
                        mad r11.yzw, r11.zzzw, l(0.000000, 0.000000, 0.000000, 7.774068), l(0.000000, 0.000000, 1.000000, 0.000000)
                        movc r11.yzw, r2.wwww, r11.yyzw, r0.zzzz
                        movc r8.xyz, r0.wwww, r11.yzwy, r14.xyzx
                      else
                        ieq r0.z, l(13), cb0[1].x
                        if_nz r0.z
                          mov r8.xyz, r10.xyzx
                        else
                          ieq r0.z, l(14), cb0[1].x
                          if_nz r0.z
                            mov r8.xyz, r13.xyzx
                          else
                            ieq r0.z, l(15), cb0[1].x
                            if_nz r0.z
                              mad r8.xyz, r4.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
                            else
                              ieq r0.z, l(16), cb0[1].x
                              if_nz r0.z
                                mov r8.xyz, r6.xxxx
                              else
                                ieq r0.z, l(17), cb0[1].x
                                if_nz r0.z
                                  mov r8.xyz, r7.xywx
                                else
                                  ieq r0.z, l(18), cb0[1].x
                                  if_nz r0.z
                                    min r0.z, r11.x, l(1.000000)
                                    min r8.xyz, r0.zzzz, r12.xxxx
                                  else
                                    ieq r0.z, l(19), cb0[1].x
                                    if_nz r0.z
                                      ld_indexable(texture2d)(float,float,float,float) r8.xyz, r1.xyww, t10.xyzw
                                    else
                                      ieq r0.z, l(20), cb0[1].x
                                      if_nz r0.z
                                        mul_sat r8.xy, r2.zzzz, l(0.010000, 0.001000, 0.000000, 0.000000)
                                        mov r8.z, l(0)
                                      else
                                        ieq r0.z, l(21), cb0[1].x
                                        if_nz r0.z
                                          ld_indexable(texture2d)(float,float,float,float) r8.xyz, r1.xyzw, t15.xyzw
                                        else
                                          ieq r0.z, l(22), cb0[1].x
                                          if_nz r0.z
                                            mov r8.xyz, r5.zzzz
                                          else
                                            ieq r0.z, l(23), cb0[1].x
                                            if_nz r0.z
                                              dp3_sat r0.z, r9.xyzx, l(0.300000, 0.600000, 0.100000, 0.000000)
                                              add r0.w, r5.z, l(-0.040000)
                                              mul_sat r0.w, r0.w, l(25.000000)
                                              mad r1.x, r0.w, l(-2.000000), l(3.000000)
                                              mul r0.w, r0.w, r0.w
                                              mul r0.w, r0.w, r1.x
                                              min r0.w, r0.w, l(1.000000)
                                              add r1.x, -r5.z, l(0.960000)
                                              mul_sat r1.x, r1.x, l(25.000000)
                                              mad r1.y, r1.x, l(-2.000000), l(3.000000)
                                              mul r1.x, r1.x, r1.x
                                              mul r1.x, r1.x, r1.y
                                              min r1.x, r1.x, l(1.000000)
                                              mul r0.w, r0.w, r1.x
                                              lt r1.x, l(0.500000), r5.z
                                              movc r1.xyz, r1.xxxx, l(0,1.000000,1.000000,0), l(1.000000,1.000000,0,0)
                                              lt r1.w, r0.w, l(1.000000)
                                              movc r1.xyz, r1.wwww, r1.xyzx, l(1.000000,0,0,0)
                                              add r1.xyz, -r0.zzzz, r1.xyzx
                                              mad r8.xyz, r0.wwww, r1.xyzx, r0.zzzz
                                            else
                                              ieq r0.z, l(24), cb0[1].x
                                              if_z r0.z
                                                ieq r0.z, r6.z, l(3)
                                                or r0.z, r0.z, r5.y
                                                movc r0.z, r0.z, l(0), r8.w
                                                min r0.w, r2.x, r2.y
                                                mov r1.xy, |r0.xyxx|
                                                ieq r4.xyzw, l(25, 26, 27, 31), cb0[1].xxxx
                                                dp3 r0.x, r12.yzwy, r12.yzwy
                                                rsq r0.x, r0.x
                                                mul r2.xyw, r0.xxxx, r12.yzyw
                                                mad r2.xyw, r2.xyxw, l(0.500000, 0.500000, 0.000000, 0.500000), l(0.500000, 0.500000, 0.000000, 0.500000)
                                                ieq r0.xy, l(32, 34, 0, 0), cb0[1].xxxx
                                                movc r5.yzw, r0.yyyy, r0.wwww, l(0,1.000000,0,1.000000)
                                                movc r0.xyw, r0.xxxx, r2.xyxw, r5.yzyw
                                                movc r0.xyw, r4.wwww, r12.xxxx, r0.xyxw
                                                mov r1.z, l(0)
                                                movc r0.xyw, r4.zzzz, r1.xyxz, r0.xyxw
                                                movc r0.xyz, r4.yyyy, r0.zzzz, r0.xywx
                                                movc r8.xyz, r4.xxxx, r5.xxxx, r0.xyzx
                                              endif
                                            endif
                                          endif
                                        endif
                                      endif
                                    endif
                                  endif
                                endif
                              endif
                            endif
                          endif
                        endif
                      endif
                    endif
                  endif
                endif
              endif
            endif
          endif
        endif
      endif
    endif
  endif
endif
or r0.x, r3.z, r3.y
or r0.x, r3.w, r0.x
ieq r1.xyzw, l(18, 26, 25, 34), cb0[1].xxxx
or r0.x, r0.x, r1.x
or r0.x, r1.y, r0.x
or r0.x, r1.z, r0.x
or r0.x, r1.w, r0.x
lt r0.yzw, r8.xxyz, l(0.000000, 0.040450, 0.040450, 0.040450)
mul r1.xyz, r8.xyzx, l(0.0773993805, 0.0773993805, 0.0773993805, 0.000000)
add r2.xyw, r8.xyxz, l(0.055000, 0.055000, 0.000000, 0.055000)
mul r2.xyw, r2.xyxw, l(0.947867334, 0.947867334, 0.000000, 0.947867334)
log r2.xyw, r2.xyxw
mul r2.xyw, r2.xyxw, l(2.400000, 2.400000, 0.000000, 2.400000)
exp r2.xyw, r2.xyxw
movc r0.yzw, r0.yyzw, r1.xxyz, r2.xxyw
movc r0.xyz, r0.xxxx, r0.yzwy, r8.xyzx
ige r0.w, cb0[1].x, l(11)
ige r1.x, l(34), cb0[1].x
and r0.w, r0.w, r1.x
add r1.x, l(-10.000000), cb0[0].z
ge r1.x, r2.z, r1.x
and r0.w, r0.w, r1.x
movc r0.xyz, r0.wwww, l(0,0,0,0), r0.xyzx
ne r0.w, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[2].x
if_nz r0.w
  dp3 r0.w, l(0.627403915, 0.329283029, 0.0433130674, 0.000000), r0.xyzx
  dp3 r1.x, l(0.0690972880, 0.919540405, 0.0113623161, 0.000000), r0.xyzx
  dp3 r1.y, l(0.0163914394, 0.0880133063, 0.895595253, 0.000000), r0.xyzx
  log r2.x, r0.w
  log r2.y, r1.x
  log r2.z, r1.y
  mul r1.xyz, r2.xyzx, l(1.300000, 1.300000, 1.300000, 0.000000)
  exp r1.xyz, r1.xyzx
  mul r2.xyz, r1.xyzx, l(3.000000, 3.000000, 3.000000, 0.000000)
  mad r3.xyz, r1.xyzx, l(1599287.250000, 1599287.250000, 1599287.250000, 0.000000), l(47438308.000000, 47438308.000000, 47438308.000000, 0.000000)
  mad r3.xyz, r2.xyzx, r3.xyzx, l(29063622.000000, 29063622.000000, 29063622.000000, 0.000000)
  mad r3.xyz, r2.xyzx, r3.xyzx, l(575216.750000, 575216.750000, 575216.750000, 0.000000)
  mad r3.xyz, r2.xyzx, r3.xyzx, l(383.091034, 383.091034, 383.091034, 0.000000)
  mad r3.xyz, r2.xyzx, r3.xyzx, l(0.000487781013, 0.000487781013, 0.000487781013, 0.000000)
  mad r1.xyz, r1.xyzx, l(199174064.000000, 199174064.000000, 199174064.000000, 0.000000), l(81884528.000000, 81884528.000000, 81884528.000000, 0.000000)
  mad r1.xyz, r2.xyzx, r1.xyzx, l(4182885.000000, 4182885.000000, 4182885.000000, 0.000000)
  mad r1.xyz, r2.xyzx, r1.xyzx, l(10668.404297, 10668.404297, 10668.404297, 0.000000)
  mad r1.xyz, r2.xyzx, r1.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
  div r1.xyz, r3.xyzx, r1.xyzx
else
  lt r2.xyz, r0.xyzx, l(0.00313080009, 0.00313080009, 0.00313080009, 0.000000)
  mul r3.xyz, r0.xyzx, l(12.920000, 12.920000, 12.920000, 0.000000)
  log r0.xyz, r0.xyzx
  mul r0.xyz, r0.xyzx, l(0.416666657, 0.416666657, 0.416666657, 0.000000)
  exp r0.xyz, r0.xyzx
  mad r0.xyz, r0.xyzx, l(1.055000, 1.055000, 1.055000, 0.000000), l(-0.055000, -0.055000, -0.055000, 0.000000)
  movc r1.xyz, r2.xyzx, r3.xyzx, r0.xyzx
endif
mov o0.xyz, r1.xyzx
mov o0.w, l(1.000000)
ret
// Approximately 488 instruction slots used
