//Volumetric lighting CS 2.
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.16 on Sun May 23 09:42:20 2021
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Input
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Output
cs_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[5], immediateIndexed
dcl_constantbuffer cb1[52], immediateIndexed
dcl_constantbuffer cb2[45], immediateIndexed
dcl_constantbuffer cb3[60], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, mode_default
dcl_sampler s3, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_texture2d (float,float,float,float) t2
dcl_resource_texture2darray (float,float,float,float) t3
dcl_resource_texture2d (float,float,float,float) t4
dcl_resource_texture2d (float,float,float,float) t5
dcl_resource_texture3d (float,float,float,float) t6
dcl_resource_texture3d (float,float,float,float) t7
dcl_uav_typed_texture3d (float,float,float,float) u0
dcl_input vThreadID.xyz
dcl_temps 40
dcl_resource_texture2d (float,float,float,float) t125
dcl_thread_group 8, 8, 1
ld_indexable(texture2d)(float,float,float,float) r0.x, vThreadID.xyzz, t4.xyzw

ld_indexable(texture2d)(float,float,float,float) r25.xyzw, l(0, 0, 0, 0), t125.xyzw

max r0.x, r0.x, cb0[4].z
mad r0.y, r0.x, cb1[51].z, -cb1[51].w
div r0.y, l(1.000000, 1.000000, 1.000000, 1.000000), r0.y
utof r0.zw, vThreadID.xxxy
add r0.zw, r0.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000)
mul r1.xy, r0.zwzz, cb0[0].xyxx
mad r0.zw, r1.xxxy, l(0.000000, 0.000000, 2.000000, -2.000000), l(0.000000, 0.000000, -1.000000, 1.000000)

mul r22.xyzw, r0.wwww, cb1[33].xyzw
mad r22.xyzw, r0.zzzz, cb1[32].xyzw, r22.xyzw
mad r22.xyzw, r0.xxxx, cb1[34].xyzw, r22.xyzw
add r22.xyzw, r22.xyzw, cb1[35].xyzw

add r0.z, -r25.x, r0.z

mul r32.xyzw, r0.wwww, cb1[33].xyzw
mad r32.xyzw, r0.zzzz, cb1[32].xyzw, r32.xyzw
mad r32.xyzw, r0.xxxx, cb1[34].xyzw, r32.xyzw
add r32.xyzw, r32.xyzw, cb1[35].xyzw

mul r25.w, r22.w, r25.y
mad r0.z, r25.x, r25.w, r0.z

mul r2.xyzw, r0.wwww, cb1[33].xyzw
mad r2.xyzw, r0.zzzz, cb1[32].xyzw, r2.xyzw
mad r2.xyzw, r0.xxxx, cb1[34].xyzw, r2.xyzw
add r2.xyzw, r2.xyzw, cb1[35].xyzw
div r0.xzw, r2.xxyz, r2.wwww
dp3 r1.w, r0.xzwx, r0.xzwx
sqrt r1.w, r1.w
div r0.xzw, r0.xxzw, r1.wwww
div r0.y, r1.w, r0.y
mul r0.y, r0.y, cb0[4].y
bfi r2.x, l(1), l(2), vThreadID.y, l(0)
bfi r2.x, l(1), l(1), vThreadID.x, r2.x
bfi r2.y, l(2), l(3), cb3[12].y, l(0)
iadd r2.x, r2.x, r2.y
ushr r2.x, l(0x8739d26c), r2.x
and r2.x, r2.x, l(3)
utof r2.x, r2.x
div_sat r2.y, r1.w, r0.y
dp3 r2.z, r0.xzwx, cb2[32].xyzx
add r2.xw, r2.xxxz, l(0.500000, 0.000000, 0.000000, 1.250000)
log r2.w, r2.w
mul r2.w, r2.w, l(-1.500000)
exp r2.w, r2.w
mul r2.w, r2.w, l(0.238732412)
add r3.xyz, -cb0[1].xyzx, cb0[2].xyzx
mad r3.xyz, -r2.zzzz, r3.xyzx, cb0[1].xyzx
mul r3.xyz, r2.wwww, r3.xyzx
mul r3.xyz, r3.xyzx, cb2[33].xyzx
mul r3.xyz, r3.xyzx, cb2[43].yyyy
min r0.y, r0.y, r1.w
mul r4.xyz, r0.yyyy, r0.xzwx
mul r5.xyz, r4.yyyy, cb2[29].xyzx
mad r5.xyz, r4.xxxx, cb2[28].xyzx, r5.xyzx
mad r5.xyz, r4.zzzz, cb2[30].xyzx, r5.xyzx
div r1.w, l(1.000000, 1.000000, 1.000000, 1.000000), cb2[19].w
mad r6.xyz, cb2[21].xyzx, r1.wwww, cb2[22].xyzx
mad r6.xyz, r6.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
dp3 r7.x, r4.xyzx, cb2[18].xyzx
dp3 r7.y, r4.xyzx, cb2[19].xyzx
dp3 r7.z, r4.xyzx, cb2[20].xyzx
add r4.xyz, r7.xyzx, cb2[21].xyzx
mad r4.xyz, r4.xyzx, r1.wwww, cb2[22].xyzx
mad r4.xyz, r4.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
add r4.xyz, -r6.xyzx, r4.xyzx
add r1.w, r0.y, l(-5000.000000)
mul r7.xyz, r0.xzwx, l(5000.000000, 5000.000000, 5000.000000, 0.000000)
dp3 r2.z, r7.xyzx, r7.xyzx
sqrt r2.z, r2.z
add r1.w, r1.w, r2.z
mad r1.w, r1.w, l(0.000010), -cb2[44].x
mul r2.w, r1.w, cb3[47].x
ge r3.w, l(0.000000), r2.w
if_nz r3.w
  mov r8.xyz, l(0,0,0,0)
  mov r4.w, l(1.000000)
endif
if_z r3.w
  div r3.w, r7.z, r2.z
  mul r2.z, r2.z, l(0.000010)
  mad r5.w, r0.w, l(0.050000), cb3[52].z
  add r5.w, r5.w, -cb3[46].z
  mul r6.w, r5.w, cb3[47].y
  mad r5.w, r5.w, cb3[47].y, -cb3[52].x
  lt r5.w, l(0.000010), |r5.w|
  add r7.z, cb3[52].x, l(0.000010)
  movc r5.w, r5.w, r6.w, r7.z
  exp r6.w, -r5.w
  add r5.w, r5.w, -cb3[52].x
  add r6.w, -r6.w, cb3[52].y
  div r5.w, |r6.w|, |r5.w|
  mul r2.w, r2.w, r2.w
  mad r1.w, r1.w, cb3[47].x, -r2.w
  mad r1.w, cb3[51].w, r1.w, r2.w
  mul r2.w, r5.w, -r1.w
  exp r5.w, r2.w
  mul r1.w, -r1.w, cb3[48].x
  exp r1.w, r1.w
  min r6.w, |r7.y|, |r7.x|
  max r7.z, |r7.y|, |r7.x|
  div r7.z, l(1.000000, 1.000000, 1.000000, 1.000000), r7.z
  mul r6.w, r6.w, r7.z
  mul r7.z, r6.w, r6.w
  mad r7.w, r7.z, l(0.0208350997), l(-0.085133)
  mad r7.w, r7.z, r7.w, l(0.180141)
  mad r7.w, r7.z, r7.w, l(-0.330299497)
  mad r7.z, r7.z, r7.w, l(0.999866)
  mul r7.w, r6.w, r7.z
  lt r8.w, |r7.y|, |r7.x|
  mad r7.w, r7.w, l(-2.000000), l(1.57079637)
  and r7.w, r8.w, r7.w
  mad r6.w, r6.w, r7.z, r7.w
  lt r7.z, -r7.y, r7.y
  and r7.z, r7.z, l(0xc0490fdb)
  add r6.w, r6.w, r7.z
  min r7.z, -r7.y, r7.x
  max r7.x, -r7.y, r7.x
  lt r7.y, r7.z, -r7.z
  ge r7.x, r7.x, -r7.x
  and r7.x, r7.x, r7.y
  movc r6.w, r7.x, -r6.w, r6.w
  mad r7.x, r6.w, l(-0.159154937), l(0.500000)
  add r6.w, -|r3.w|, l(1.000000)
  sqrt r6.w, r6.w
  mad r7.z, |r3.w|, l(-0.0187292993), l(0.074261)
  mad r7.z, r7.z, |r3.w|, l(-0.212114394)
  mad r7.z, r7.z, |r3.w|, l(1.57072878)
  mul r7.w, r6.w, r7.z
  mad r7.w, r7.w, l(-2.000000), l(3.14159274)
  lt r3.w, -r3.w, r3.w
  and r3.w, r3.w, r7.w
  mad r3.w, r7.z, r6.w, r3.w
  add r3.w, -r3.w, l(1.57079637)
  mad r7.y, r3.w, l(0.318309873), l(0.500000)
  mul r2.z, r2.z, -cb3[52].w
  exp r2.z, r2.z
  mad r2.z, r2.z, cb3[59].y, cb3[59].x
  sample_l_indexable(texture2d)(float,float,float,float) r7.xyz, r7.xyxx, t1.xyzw, s3, r2.z
  add r2.z, -r1.w, l(1.000000)
  mul r2.z, r5.w, r2.z
  mul r9.x, r2.z, cb3[31].w
  mul r9.y, r2.z, cb3[32].w
  mul r9.z, r2.z, cb3[33].w
  mad r7.xyz, r7.xyzx, cb2[43].wwww, r9.xyzx
  mul r4.w, r1.w, r5.w
  mul r9.xyz, r2.wwww, cb3[51].xyzx
  exp r9.xyz, r9.xyzx
  mul r8.xyz, r7.xyzx, r9.xyzx
endif
mul r1.w, cb2[44].x, l(100000.000000)
div_sat r1.w, r1.w, r0.y
mul r2.z, r1.w, l(32.000000)
lt r2.w, r1.w, l(1.000000)
add r1.w, -r1.w, l(1.000000)
div r1.w, l(1.000000, 1.000000, 1.000000, 1.000000), r1.w
and r1.w, r1.w, r2.w
log r2.w, r4.w
mul r1.w, r1.w, r2.w
mul r1.w, r1.w, l(0.031250)
exp r1.w, r1.w
add r1.w, -r1.w, l(1.000000)
mul r2.w, cb2[43].y, l(0.500000)
mul r7.xyz, r2.wwww, r8.xyzx
mul r2.w, r2.x, l(-0.00390625000)
add r3.w, -cb3[59].z, l(1.000000)
mul r4.w, cb2[34].z, cb2[34].z
mov r8.xy, vThreadID.xyxx
mov r9.w, l(1.000000)
mov r10.xyzw, l(0,0,0,0)
mov r5.w, r2.w
mov r6.w, l(0)
mov r7.w, l(0)
loop
  ige r11.x, r7.w, l(32)
  breakc_nz r11.x
  mad r11.x, r2.x, l(0.00390625000), r5.w
  mul r11.x, r0.y, r11.x
  mul r11.yz, r0.xxzx, r11.xxxx
  mad r11.yz, r11.yyzy, cb2[0].xxyx, -cb2[1].xxyx
  sample_l_indexable(texture2d)(float,float,float,float) r12.xyzw, r11.yzyy, t5.xyzw, s0, l(0.000000)
  mad r11.y, -r0.w, r11.x, cb2[1].z
  mad r11.y, r12.z, cb2[0].z, r11.y
  mul_sat r11.y, r11.y, l(0.000976562500)
  mul r11.z, r12.w, r12.w
  mad r11.y, r11.y, r12.y, r11.z
  mul r11.y, r11.y, l(0.000976562500)
  mad r11.x, r11.x, cb3[59].w, l(1.000000)
  div r11.x, cb3[59].z, r11.x
  add_sat r11.x, r3.w, r11.x
  mov r13.xyzw, r10.xyzw
  mov r11.z, r5.w
  mov r11.w, r6.w
  mov r12.yz, l(0,0,0,0)
  loop
    ige r12.w, r12.z, l(2)
    breakc_nz r12.w
    add r11.z, r11.z, l(0.015625)
    mul r12.w, r0.y, r11.z
    mad r14.xyz, r5.xyzx, r11.zzzz, cb2[31].xyzx
    mad r9.xyz, r4.xyzx, r11.zzzz, r6.xyzx
    mul r15.xy, r0.xzxx, r12.wwww
    mad r15.xy, r15.xyxx, cb2[0].xyxx, -cb2[1].xyxx
    sample_l_indexable(texture2d)(float,float,float,float) r15.xyzw, r15.xyxx, t0.xyzw, s0, l(0.000000)
    mad r15.xy, r15.yxyy, cb2[0].zzzz, cb2[1].zzzz
    mad r15.xy, r0.wwww, r12.wwww, -r15.xyxx
    mad_sat r14.w, r15.y, cb2[0].w, l(1.000000)
    mad_sat r15.y, |r15.x|, l(0.000156249997), r15.w
    mul r14.w, r15.z, r14.w
    mad r15.x, r15.x, cb0[3].z, cb0[3].y
    exp r15.x, r15.x
    min r15.x, r15.x, l(1.000000)
    mad r15.z, -r2.y, r11.z, l(1.000000)
    mad r1.z, -r15.z, |r15.z|, l(1.000000)
    sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r1.xyzx, t6.xyzw, s0, l(0.000000)
    sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r1.xyzx, t7.xyzw, s1, l(0.000000)
    mad r17.xyzw, r17.xyzw, l(2.007874, 2.007874, 2.007874, 2.007874), l(-1.000000, -1.000000, -1.000000, -1.000000)
    lt r1.z, r17.w, l(0.000000)
    mul r15.z, r17.w, r17.w
    dp3 r15.w, r17.xyzx, r0.xzwx
    add r15.w, r15.w, l(1.000000)
    mad r15.w, r15.w, r15.w, l(-1.000000)
    dp3 r16.w, r17.xyzx, r17.xyzx
    min r16.w, r16.w, l(1.000000)
    mad r16.w, -r16.w, l(0.500000), l(1.000000)
    mul r16.w, r16.w, r16.w
    mul r16.w, r16.w, cb2[43].y
    mul r16.xyz, r16.wwww, r16.xyzx
    mad r17.xyz, cb0[2].xyzx, r15.wwww, cb0[1].xyzx
    and r1.z, r14.w, r1.z
    mov_sat r18.xy, r14.xyxx
    eq r18.xy, r14.xyxx, r18.xyxx
    and r14.w, r18.y, r18.x
    add r18.xy, r14.xyxx, -cb2[34].xyxx
    add r18.zw, r14.xxxy, -cb2[35].xxxy
    max r15.w, |r18.y|, |r18.x|
    max r16.w, |r18.w|, |r18.z|
    mad r18.xy, r18.xyxx, cb2[34].zzzz, l(1.500000, 0.500000, 0.000000, 0.000000)
    mad r18.zw, r18.zzzw, r4.wwww, l(0.000000, 0.000000, 2.500000, 0.500000)
    lt r15.w, r15.w, cb2[34].w
    movc r14.xy, r15.wwww, r18.xyxx, r14.xyxx
    lt r15.w, r16.w, cb2[35].w
    movc r18.yz, r15.wwww, r18.zzwz, r14.xxyx
    mul r18.x, r18.y, cb2[35].z
    sample_l_indexable(texture2d)(float,float,float,float) r14.x, r18.xzxx, t2.xyzw, s2, l(0.000000)
    add r14.x, -r14.z, r14.x
    mul_sat r14.x, r14.x, l(128.000000)
    lt r14.y, r14.z, l(1.000000)
    and r14.y, r14.y, r14.w
    movc r14.x, r14.y, r14.x, l(1.000000)
    mul r1.z, r1.z, r14.x
    sample_l_indexable(texture2darray)(float,float,float,float) r14.xyzw, r9.xywx, t3.xyzw, s2, l(0.000000)
    add r9.xy, -r9.zzzz, r14.xyxx
    mul_sat r9.xy, r9.xyxx, l(256.000000, 16.000000, 0.000000, 0.000000)
    mad r9.x, -r9.x, r14.z, l(1.000000)
    add r9.z, -r14.w, l(1.000000)
    add r9.z, -r9.x, r9.z
    mad r9.x, r9.y, r9.z, r9.x
    mul r1.z, r1.z, r9.x
    mul r9.xyz, r1.zzzz, r3.xyzx
    mad r9.xyz, r16.xyzx, r17.xyzx, r9.xyzx
    add r1.z, -r15.y, l(1.000000)
    mul r1.z, r1.z, cb0[3].w
    mad r1.z, r15.x, cb0[3].x, r1.z
    mul_sat r14.x, r12.w, cb0[4].x
    mul r1.z, r1.z, r14.x
    mad r12.y, r15.z, r11.x, r12.y
    mad r14.x, -r0.y, r11.z, r11.w
    mad r1.z, r1.z, r12.x, r11.y
    mul r1.z, r1.z, r14.x
    exp r1.z, r1.z
    add r14.w, -r1.z, l(1.000000)
    mul r1.z, r11.x, r14.w
    mul r14.xyz, r1.zzzz, r9.xyzx
    add r1.z, -r13.w, l(1.000000)
    mad r13.xyzw, r14.xyzw, r1.zzzz, r13.xyzw
    iadd r12.z, r12.z, l(1)
    mov r11.w, r12.w
  endloop
  mov r5.w, r11.z
  mov r6.w, r11.w
  mad_sat r1.z, r5.w, l(32.000000), -r2.z
  add r9.x, -r13.w, l(1.000000)
  mul r9.x, r1.w, r9.x
  mul r14.w, r1.z, r9.x
  mul r1.z, r12.y, r14.w
  mul r14.xyz, r1.zzzz, r7.xyzx
  add r10.xyzw, r13.xyzw, r14.xyzw
  mov r8.zw, r7.wwww
  store_uav_typed u0.xyzw, r8.xyzw, r10.xyzw
  iadd r7.w, r7.w, l(1)
endloop
ret
// Approximately 0 instruction slots used

///////////////////////////////// HLSL Code /////////////////////////////////
// // ---- Created with 3Dmigoto v1.3.16 on Sun May 23 09:42:20 2021
// Texture3D<float4> t7 : register(t7);
//
// Texture3D<float4> t6 : register(t6);
//
// Texture2D<float4> t5 : register(t5);
//
// Texture2D<float4> t4 : register(t4);
//
// Texture2DArray<float4> t3 : register(t3);
//
// Texture2D<float4> t2 : register(t2);
//
// Texture2D<float4> t1 : register(t1);
//
// Texture2D<float4> t0 : register(t0);
//
// SamplerState s3_s : register(s3);
//
// SamplerState s2_s : register(s2);
//
// SamplerState s1_s : register(s1);
//
// SamplerState s0_s : register(s0);
//
// cbuffer cb3 : register(b3)
// {
//   float4 cb3[60];
// }
//
// cbuffer cb2 : register(b2)
// {
//   float4 cb2[45];
// }
//
// cbuffer cb1 : register(b1)
// {
//   float4 cb1[52];
// }
//
// cbuffer cb0 : register(b0)
// {
//   float4 cb0[5];
// }
//
//
//
//
// // 3Dmigoto declarations
// #define cmp -
// Texture1D<float4> IniParams : register(t120);
// Texture2D<float4> StereoParams : register(t125);
//
//
// void main)
// {
// // Needs manual fix for instruction:
// // unknown dcl_: dcl_uav_typed_texture3d (float,float,float,float) u0
//   float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16,r17,r18;
//   uint4 bitmask, uiDest;
//   float4 fDest;
//
// // Needs manual fix for instruction:
// // unknown dcl_: dcl_thread_group 8, 8, 1
//   r0.x = t4.Load(vThreadID.xyz).x;
//   r0.x = max(cb0[4].z, r0.x);
//   r0.y = r0.x * cb1[51].z + -cb1[51].w;
//   r0.y = 1 / r0.y;
//   r0.zw = (uint2)vThreadID.xy;
//   r0.zw = float2(0.5,0.5) + r0.zw;
//   r1.xy = cb0[0].xy * r0.zw;
//   r0.zw = r1.xy * float2(2,-2) + float2(-1,1);
//   r2.xyzw = cb1[33].xyzw * r0.wwww;
//   r2.xyzw = r0.zzzz * cb1[32].xyzw + r2.xyzw;
//   r2.xyzw = r0.xxxx * cb1[34].xyzw + r2.xyzw;
//   r2.xyzw = cb1[35].xyzw + r2.xyzw;
//   r0.xzw = r2.xyz / r2.www;
//   r1.w = dot(r0.xzw, r0.xzw);
//   r1.w = sqrt(r1.w);
//   r0.xzw = r0.xzw / r1.www;
//   r0.y = r1.w / r0.y;
//   r0.y = cb0[4].y * r0.y;
//   bitmask.x = ((~(-1 << 1)) << 2) & 0xffffffff;  r2.x = (((uint)vThreadID.y << 2) & bitmask.x) | ((uint)0 & ~bitmask.x);
//   bitmask.x = ((~(-1 << 1)) << 1) & 0xffffffff;  r2.x = (((uint)vThreadID.x << 1) & bitmask.x) | ((uint)r2.x & ~bitmask.x);
//   bitmask.y = ((~(-1 << 2)) << 3) & 0xffffffff;  r2.y = (((uint)cb3[12].y << 3) & bitmask.y) | ((uint)0 & ~bitmask.y);
//   r2.x = (int)r2.x + (int)r2.y;
//   r2.x = 0x8739d26c >> (uint)r2.x;
//   r2.x = (int)r2.x & 3;
//   r2.x = (uint)r2.x;
//   r2.y = saturate(r1.w / r0.y);
//   r2.z = dot(r0.xzw, cb2[32].xyz);
//   r2.xw = float2(0.5,1.25) + r2.xz;
//   r2.w = log2(r2.w);
//   r2.w = -1.5 * r2.w;
//   r2.w = exp2(r2.w);
//   r2.w = 0.238732412 * r2.w;
//   r3.xyz = cb0[2].xyz + -cb0[1].xyz;
//   r3.xyz = -r2.zzz * r3.xyz + cb0[1].xyz;
//   r3.xyz = r3.xyz * r2.www;
//   r3.xyz = cb2[33].xyz * r3.xyz;
//   r3.xyz = cb2[43].yyy * r3.xyz;
//   r0.y = min(r1.w, r0.y);
//   r4.xyz = r0.xzw * r0.yyy;
//   r5.xyz = cb2[29].xyz * r4.yyy;
//   r5.xyz = r4.xxx * cb2[28].xyz + r5.xyz;
//   r5.xyz = r4.zzz * cb2[30].xyz + r5.xyz;
//   r1.w = 1 / cb2[19].w;
//   r6.xyz = cb2[21].xyz * r1.www + cb2[22].xyz;
//   r6.xyz = r6.xyz * float3(0.5,0.5,0.5) + float3(0.5,0.5,0.5);
//   r7.x = dot(r4.xyz, cb2[18].xyz);
//   r7.y = dot(r4.xyz, cb2[19].xyz);
//   r7.z = dot(r4.xyz, cb2[20].xyz);
//   r4.xyz = cb2[21].xyz + r7.xyz;
//   r4.xyz = r4.xyz * r1.www + cb2[22].xyz;
//   r4.xyz = r4.xyz * float3(0.5,0.5,0.5) + float3(0.5,0.5,0.5);
//   r4.xyz = r4.xyz + -r6.xyz;
//   r1.w = -5000 + r0.y;
//   r7.xyz = float3(5000,5000,5000) * r0.xzw;
//   r2.z = dot(r7.xyz, r7.xyz);
//   r2.z = sqrt(r2.z);
//   r1.w = r2.z + r1.w;
//   r1.w = r1.w * 9.99999975e-006 + -cb2[44].x;
//   r2.w = cb3[47].x * r1.w;
//   r3.w = cmp(0 >= r2.w);
//   if (r3.w != 0) {
//     r8.xyz = float3(0,0,0);
//     r4.w = 1;
//   }
//   if (r3.w == 0) {
//     r3.w = r7.z / r2.z;
//     r2.z = 9.99999975e-006 * r2.z;
//     r5.w = r0.w * 0.0500000007 + cb3[52].z;
//     r5.w = -cb3[46].z + r5.w;
//     r6.w = cb3[47].y * r5.w;
//     r5.w = r5.w * cb3[47].y + -cb3[52].x;
//     r5.w = cmp(9.99999975e-006 < abs(r5.w));
//     r7.z = 9.99999975e-006 + cb3[52].x;
//     r5.w = r5.w ? r6.w : r7.z;
//     r6.w = exp2(-r5.w);
//     r5.w = -cb3[52].x + r5.w;
//     r6.w = cb3[52].y + -r6.w;
//     r5.w = abs(r6.w) / abs(r5.w);
//     r2.w = r2.w * r2.w;
//     r1.w = r1.w * cb3[47].x + -r2.w;
//     r1.w = cb3[51].w * r1.w + r2.w;
//     r2.w = -r1.w * r5.w;
//     r5.w = exp2(r2.w);
//     r1.w = cb3[48].x * -r1.w;
//     r1.w = exp2(r1.w);
//     r6.w = min(abs(r7.x), abs(r7.y));
//     r7.z = max(abs(r7.x), abs(r7.y));
//     r7.z = 1 / r7.z;
//     r6.w = r7.z * r6.w;
//     r7.z = r6.w * r6.w;
//     r7.w = r7.z * 0.0208350997 + -0.0851330012;
//     r7.w = r7.z * r7.w + 0.180141002;
//     r7.w = r7.z * r7.w + -0.330299497;
//     r7.z = r7.z * r7.w + 0.999866009;
//     r7.w = r7.z * r6.w;
//     r8.w = cmp(abs(r7.y) < abs(r7.x));
//     r7.w = r7.w * -2 + 1.57079637;
//     r7.w = r8.w ? r7.w : 0;
//     r6.w = r6.w * r7.z + r7.w;
//     r7.z = cmp(-r7.y < r7.y);
//     r7.z = r7.z ? -3.141593 : 0;
//     r6.w = r7.z + r6.w;
//     r7.z = min(r7.x, -r7.y);
//     r7.x = max(r7.x, -r7.y);
//     r7.y = cmp(r7.z < -r7.z);
//     r7.x = cmp(r7.x >= -r7.x);
//     r7.x = r7.x ? r7.y : 0;
//     r6.w = r7.x ? -r6.w : r6.w;
//     r7.x = r6.w * -0.159154937 + 0.5;
//     r6.w = 1 + -abs(r3.w);
//     r6.w = sqrt(r6.w);
//     r7.z = abs(r3.w) * -0.0187292993 + 0.0742610022;
//     r7.z = r7.z * abs(r3.w) + -0.212114394;
//     r7.z = r7.z * abs(r3.w) + 1.57072878;
//     r7.w = r7.z * r6.w;
//     r7.w = r7.w * -2 + 3.14159274;
//     r3.w = cmp(-r3.w < r3.w);
//     r3.w = r3.w ? r7.w : 0;
//     r3.w = r7.z * r6.w + r3.w;
//     r3.w = 1.57079637 + -r3.w;
//     r7.y = r3.w * 0.318309873 + 0.5;
//     r2.z = -cb3[52].w * r2.z;
//     r2.z = exp2(r2.z);
//     r2.z = r2.z * cb3[59].y + cb3[59].x;
//     r7.xyz = t1.SampleLevel(s3_s, r7.xy, r2.z).xyz;
//     r2.z = 1 + -r1.w;
//     r2.z = r2.z * r5.w;
//     r9.x = cb3[31].w * r2.z;
//     r9.y = cb3[32].w * r2.z;
//     r9.z = cb3[33].w * r2.z;
//     r7.xyz = r7.xyz * cb2[43].www + r9.xyz;
//     r4.w = r5.w * r1.w;
//     r9.xyz = cb3[51].xyz * r2.www;
//     r9.xyz = exp2(r9.xyz);
//     r8.xyz = r9.xyz * r7.xyz;
//   }
//   r1.w = 100000 * cb2[44].x;
//   r1.w = saturate(r1.w / r0.y);
//   r2.z = 32 * r1.w;
//   r2.w = cmp(r1.w < 1);
//   r1.w = 1 + -r1.w;
//   r1.w = 1 / r1.w;
//   r1.w = r2.w ? r1.w : 0;
//   r2.w = log2(r4.w);
//   r1.w = r2.w * r1.w;
//   r1.w = 0.03125 * r1.w;
//   r1.w = exp2(r1.w);
//   r1.w = 1 + -r1.w;
//   r2.w = 0.5 * cb2[43].y;
//   r7.xyz = r8.xyz * r2.www;
//   r2.w = -0.00390625 * r2.x;
//   r3.w = 1 + -cb3[59].z;
//   r4.w = cb2[34].z * cb2[34].z;
//   r8.xy = vThreadID.xy;
//   r9.w = 1;
//   r10.xyzw = float4(0,0,0,0);
//   r5.w = r2.w;
//   r6.w = 0;
//   r7.w = 0;
//   while (true) {
//     r11.x = cmp((int)r7.w >= 32);
//     if (r11.x != 0) break;
//     r11.x = r2.x * 0.00390625 + r5.w;
//     r11.x = r11.x * r0.y;
//     r11.yz = r11.xx * r0.xz;
//     r11.yz = r11.yz * cb2[0].xy + -cb2[1].xy;
//     r12.xyzw = t5.SampleLevel(s0_s, r11.yz, 0).xyzw;
//     r11.y = -r0.w * r11.x + cb2[1].z;
//     r11.y = r12.z * cb2[0].z + r11.y;
//     r11.y = saturate(0.0009765625 * r11.y);
//     r11.z = r12.w * r12.w;
//     r11.y = r11.y * r12.y + r11.z;
//     r11.y = 0.0009765625 * r11.y;
//     r11.x = r11.x * cb3[59].w + 1;
//     r11.x = cb3[59].z / r11.x;
//     r11.x = saturate(r11.x + r3.w);
//     r13.xyzw = r10.xyzw;
//     r11.z = r5.w;
//     r11.w = r6.w;
//     r12.yz = float2(0,0);
//     while (true) {
//       r12.w = cmp((int)r12.z >= 2);
//       if (r12.w != 0) break;
//       r11.z = 0.015625 + r11.z;
//       r12.w = r11.z * r0.y;
//       r14.xyz = r5.xyz * r11.zzz + cb2[31].xyz;
//       r9.xyz = r4.xyz * r11.zzz + r6.xyz;
//       r15.xy = r12.ww * r0.xz;
//       r15.xy = r15.xy * cb2[0].xy + -cb2[1].xy;
//       r15.xyzw = t0.SampleLevel(s0_s, r15.xy, 0).xyzw;
//       r15.xy = r15.yx * cb2[0].zz + cb2[1].zz;
//       r15.xy = r0.ww * r12.ww + -r15.xy;
//       r14.w = saturate(r15.y * cb2[0].w + 1);
//       r15.y = saturate(abs(r15.x) * 0.000156249997 + r15.w);
//       r14.w = r14.w * r15.z;
//       r15.x = r15.x * cb0[3].z + cb0[3].y;
//       r15.x = exp2(r15.x);
//       r15.x = min(1, r15.x);
//       r15.z = -r2.y * r11.z + 1;
//       r1.z = -r15.z * abs(r15.z) + 1;
//       r16.xyz = t6.SampleLevel(s0_s, r1.xyz, 0).xyz;
//       r17.xyzw = t7.SampleLevel(s1_s, r1.xyz, 0).xyzw;
//       r17.xyzw = r17.xyzw * float4(2.00787401,2.00787401,2.00787401,2.00787401) + float4(-1,-1,-1,-1);
//       r1.z = cmp(r17.w < 0);
//       r15.z = r17.w * r17.w;
//       r15.w = dot(r17.xyz, r0.xzw);
//       r15.w = 1 + r15.w;
//       r15.w = r15.w * r15.w + -1;
//       r16.w = dot(r17.xyz, r17.xyz);
//       r16.w = min(1, r16.w);
//       r16.w = -r16.w * 0.5 + 1;
//       r16.w = r16.w * r16.w;
//       r16.w = cb2[43].y * r16.w;
//       r16.xyz = r16.xyz * r16.www;
//       r17.xyz = cb0[2].xyz * r15.www + cb0[1].xyz;
//       r1.z = r1.z ? r14.w : 0;
//       r18.xy = saturate(r14.xy);
//       r18.xy = cmp(r14.xy == r18.xy);
//       r14.w = r18.y ? r18.x : 0;
//       r18.xy = -cb2[34].xy + r14.xy;
//       r18.zw = -cb2[35].xy + r14.xy;
//       r15.w = max(abs(r18.x), abs(r18.y));
//       r16.w = max(abs(r18.z), abs(r18.w));
//       r18.xy = r18.xy * cb2[34].zz + float2(1.5,0.5);
//       r18.zw = r18.zw * r4.ww + float2(2.5,0.5);
//       r15.w = cmp(r15.w < cb2[34].w);
//       r14.xy = r15.ww ? r18.xy : r14.xy;
//       r15.w = cmp(r16.w < cb2[35].w);
//       r18.yz = r15.ww ? r18.zw : r14.xy;
//       r18.x = cb2[35].z * r18.y;
//       r14.x = t2.SampleLevel(s2_s, r18.xz, 0).x;
//       r14.x = r14.x + -r14.z;
//       r14.x = saturate(128 * r14.x);
//       r14.y = cmp(r14.z < 1);
//       r14.y = r14.y ? r14.w : 0;
//       r14.x = r14.y ? r14.x : 1;
//       r1.z = r14.x * r1.z;
//       r14.xyzw = t3.SampleLevel(s2_s, r9.xyw, 0).xyzw;
//       r9.xy = r14.xy + -r9.zz;
//       r9.xy = saturate(float2(256,16) * r9.xy);
//       r9.x = -r9.x * r14.z + 1;
//       r9.z = 1 + -r14.w;
//       r9.z = r9.z + -r9.x;
//       r9.x = r9.y * r9.z + r9.x;
//       r1.z = r9.x * r1.z;
//       r9.xyz = r3.xyz * r1.zzz;
//       r9.xyz = r16.xyz * r17.xyz + r9.xyz;
//       r1.z = 1 + -r15.y;
//       r1.z = cb0[3].w * r1.z;
//       r1.z = r15.x * cb0[3].x + r1.z;
//       r14.x = saturate(cb0[4].x * r12.w);
//       r1.z = r14.x * r1.z;
//       r12.y = r15.z * r11.x + r12.y;
//       r14.x = -r0.y * r11.z + r11.w;
//       r1.z = r1.z * r12.x + r11.y;
//       r1.z = r14.x * r1.z;
//       r1.z = exp2(r1.z);
//       r14.w = 1 + -r1.z;
//       r1.z = r14.w * r11.x;
//       r14.xyz = r9.xyz * r1.zzz;
//       r1.z = 1 + -r13.w;
//       r13.xyzw = r14.xyzw * r1.zzzz + r13.xyzw;
//       r12.z = (int)r12.z + 1;
//       r11.w = r12.w;
//     }
//     r5.w = r11.z;
//     r6.w = r11.w;
//     r1.z = saturate(r5.w * 32 + -r2.z);
//     r9.x = 1 + -r13.w;
//     r9.x = r9.x * r1.w;
//     r14.w = r9.x * r1.z;
//     r1.z = r14.w * r12.y;
//     r14.xyz = r7.xyz * r1.zzz;
//     r10.xyzw = r14.xyzw + r13.xyzw;
//     r8.zw = r7.ww;
//   // No code for instruction (needs manual fix):
//     store_uav_typed u0.xyzw, r8.xyzw, r10.xyzw
//     r7.w = (int)r7.w + 1;
//   }
//   return;
// }
//////////////////////////////// HLSL Errors ////////////////////////////////
// F:\SteamLibrary\steamapps\common\Days Gone\BendGame\Binaries\Win64\ShaderFixes\5b5bac8d299d5a54-cs_replace.txt(55,10): error X3000: syntax error: unexpected token ')'
/////////////////////////////////////////////////////////////////////////////
