// AUTOMATICALLY CONVERTED FROM SHADER FIXES 
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v0.6.63 on Sun Oct  9 13:48:43 2022
//
//
// Note: shader requires additional functionality:
//       64 UAV slots
//
//
// 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[658], dynamicIndexed
dcl_constantbuffer CB1[10], immediateIndexed
dcl_constantbuffer CB2[2], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_comparison
dcl_sampler s7, mode_default
dcl_resource_buffer (uint,uint,uint,uint) t0
dcl_resource_structured t2, 4
dcl_resource_texture2d (float,float,float,float) t8
dcl_resource_texture2d (float,float,float,float) t16
dcl_resource_texture2d (float,float,float,float) t18
dcl_resource_texture2d (float,float,float,float) t19
dcl_resource_texture2d (float,float,float,float) t21
dcl_resource_texture2darray (float,float,float,float) t27
dcl_uav_typed_texture2darray (float,float,float,float) u8
dcl_input vThreadIDInGroupFlattened
dcl_input vThreadGroupID.x
dcl_temps 50
dcl_thread_group 64, 1, 1
dcl_constantbuffer CB12[3], immediateIndexed
iadd r0.x, vThreadGroupID.x, cb2[0].w
ld_indexable(buffer)(uint,uint,uint,uint) r0.y, l(51, 51, 51, 51), t0.yxzw
iadd r0.x, r0.x, r0.y
ishl r0.y, r0.x, l(2)
ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r0.y, r0.y, l(0), t2.xxxx
and r0.z, r0.y, l(0x00100000)
if_z r0.z
  iadd r0.z, vThreadIDInGroupFlattened.x, cb2[0].w
  bfi r0.x, l(30), l(2), r0.x, l(1)
  ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r0.x, r0.x, l(0), t2.xxxx
  and r1.x, r0.y, l(1023)
  ubfe r1.y, l(10), l(10), r0.y
  and r0.x, r0.x, l(4095)
  ushr r0.yw, r0.zzzz, l(0, 2, 0, 3)
  and r0.yw, r0.yyyw, l(0, 4, 0, 4)
  xor r0.w, r0.y, r0.w
  ishl r0.z, r0.z, l(1)
  ushr r1.zw, l(0, 0, 0xebfa5014, 0xfa4141af), r0.zzzz
  bfi r2.xy, l(2, 2, 0, 0), l(0, 0, 0, 0), r1.zwzz, r0.wyww
  imad r1.xy, r1.xyxx, l(8, 8, 0, 0), r2.xyxx
  utof r0.yz, r1.xxyx
  add r0.yz, r0.yyzy, l(0.000000, 0.500000, 0.500000, 0.000000)
  and r2.xy, r1.xyxx, l(63, 63, 0, 0)
  and r2.z, l(7), cb2[0].y
  mov r2.w, l(0)
  ld_indexable(texture2darray)(float,float,float,float) r2.xyz, r2.xyzw, t27.xyzw
  mul r0.w, r2.y, l(6.28318548)
  mad r2.x, r2.x, l(0.00390625000), l(-0.00196078443)
  ftoi r3.xy, r0.yzyy
  mad r4.xy, r0.yzyy, cb1[8].xyxx, cb1[8].zwzz
  mul r5.xy, r0.yzyy, cb1[9].xyxx
  mov r3.zw, l(0,0,0,0)
  ld_indexable(texture2d)(float,float,float,float) r2.w, r3.xyww, t16.yzwx
  mul r4.xy, r2.wwww, r4.xyxx
  mov r4.z, r2.w
  mov r4.w, l(1.000000)
  add r40.w, r4.z, -cb12[0].y
  mad r4.x, -cb12[0].x, r40.w, r4.x
  dp4 r6.x, r4.xyzw, cb1[0].xyzw
  dp4 r6.y, r4.xyzw, cb1[1].xyzw
  dp4 r6.z, r4.xyzw, cb1[2].xyzw
  ld_indexable(texture2d)(float,float,float,float) r7.xyz, r3.xyww, t18.xyzw
  mad r7.xyz, r7.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
  dp3 r7.w, r7.xyzx, r7.xyzx
  rsq r7.w, r7.w
  mul r7.xyz, r7.wwww, r7.xyzx
  ld_indexable(texture2d)(float,float,float,float) r7.w, r3.xyww, t19.xyzw
  mul r7.w, r7.w, l(255.000000)
  ftou r7.w, r7.w
  ubfe r8.x, l(3), l(5), r7.w
  and r7.w, r7.w, l(8)
  ine r7.w, r7.w, l(0)
  ult r8.y, r8.x, l(5)
  and r8.x, r8.x, r8.y
  if_nz cb0[20].x
    if_nz r8.x
      ld_indexable(texture2d)(float,float,float,float) r3.x, r3.xyzw, t21.wxyz
      ieq r3.y, r8.x, l(3)
      mov r6.w, l(1.000000)
      dp4 r9.z, r6.xyzw, cb0[45].xyzw
      lt r3.z, r9.z, l(0.000000)
      lt r3.w, l(1.000000), r9.z
      or r3.z, r3.w, r3.z
      if_z r3.z
        dp4 r9.x, r6.xyzw, cb0[43].xyzw
        dp4 r9.y, r6.xyzw, cb0[44].xyzw
        mad r3.w, -cb0[656].y, l(6.000000), l(1.000000)
        mov r10.x, cb0[47].x
        mov r10.z, l(1.000000)
        mad r8.yzw, r9.xxyz, r10.xxxz, cb0[47].yyzw
        mov r10.x, cb0[48].x
        mov r10.z, l(1.000000)
        mad r10.xyz, r9.xyzx, r10.xxzx, cb0[48].yzwy
        mov r11.x, cb0[49].x
        mov r11.z, l(1.000000)
        mad r11.xyz, r9.xyzx, r11.xxzx, cb0[49].yzwy
        lt r12.xy, |r9.xyxx|, r3.wwww
        and r9.w, r12.y, r12.x
        lt r12.xy, |r8.yzyy|, r3.wwww
        and r10.w, r12.y, r12.x
        lt r12.xy, |r10.xyxx|, r3.wwww
        and r11.w, r12.y, r12.x
        lt r12.xy, |r11.xyxx|, r3.wwww
        and r3.w, r12.y, r12.x
        mov r12.xy, cb0[53].xyxx
        mov r12.z, l(1.000000)
        mov r13.xy, cb0[53].zwzz
        mov r13.z, l(0)
        mad r11.xyz, r11.xyzx, r12.xyzx, r13.xyzx
        mov r12.xy, cb0[52].xyxx
        mov r12.z, l(1.000000)
        mov r13.xy, cb0[52].zwzz
        mov r13.z, l(0)
        mad r10.xyz, r10.xyzx, r12.xyzx, r13.xyzx
        movc r10.xyz, r11.wwww, r10.xyzx, r11.xyzx
        mov r11.xy, cb0[51].xyxx
        mov r11.z, l(1.000000)
        mov r12.xy, cb0[51].zwzz
        mov r12.z, l(0)
        mad r8.yzw, r8.yyzw, r11.xxyz, r12.xxyz
        movc r8.yzw, r10.wwww, r8.yyzw, r10.xxyz
        mov r10.xy, cb0[50].xyxx
        mov r10.z, l(1.000000)
        mov r11.xy, cb0[50].zwzz
        mov r11.z, l(0)
        mad r9.xyz, r9.xyzx, r10.xyzx, r11.xyzx
        movc r8.yzw, r9.wwww, r9.xxyz, r8.yyzw
        movc r3.w, r3.w, l(3), l(-1)
        movc r3.w, r11.w, l(2), r3.w
        movc r3.w, r10.w, l(1), r3.w
        movc r3.w, r9.w, l(0), r3.w
      else
        mov r8.yzw, l(0,0,0,0)
        mov r3.w, l(0)
      endif
      ige r3.w, r3.w, l(0)
      movc r3.z, r3.z, l(0), r3.w
      if_nz r3.z
        mul r3.z, r2.y, l(6.28318548)
        sincos r9.x, r10.x, r3.z
        mul r10.x, r10.x, cb0[657].x
        mul r10.y, r9.x, cb0[657].y
        mad r3.zw, r10.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), r8.yyyz
        mad r8.yz, -r10.xxyx, l(0.000000, 2.000000, 2.000000, 0.000000), r8.yyzy
        sample_l_aoffimmi_indexable(0,0,0)(texture2d)(float,float,float,float) r3.z, r3.zwzz, t8.zwxy, s0, l(0.000000)
        sample_l_aoffimmi_indexable(0,0,0)(texture2d)(float,float,float,float) r3.w, r8.yzyy, t8.zwyx, s0, l(0.000000)
        mul r8.y, r8.w, cb0[54].y
        mad r3.zw, r3.zzzw, cb0[54].yyyy, -r8.yyyy
        max r3.zw, r3.zzzw, l(0.000000, 0.000000, 0.000000, 0.000000)
        add r3.z, r3.w, r3.z
        mul r3.z, r3.z, l(0.500000)
      else
        mov r3.z, l(0)
      endif
      movc r3.x, r3.y, r3.x, l(1.000000)
      mul r3.x, r3.x, r3.z
      mul_sat r3.x, r3.x, l(0.250000)
      sqrt r3.x, r3.x
      add r3.x, -r3.x, l(1.000000)
    else
      dp3 r3.y, r7.xyzx, cb0[45].xyzx
      dp3 r3.z, cb0[45].xyzx, cb0[45].xyzx
      ishr r3.w, r3.z, l(1)
      iadd r3.w, -r3.w, l(0x5f341a43)
      mul r3.y, r3.w, r3.y
      mov r6.w, l(1.000000)
      dp4 r9.z, r6.xyzw, cb0[45].xyzw
      lt r3.w, r9.z, l(0.000000)
      lt r8.y, l(1.000000), r9.z
      or r3.w, r3.w, r8.y
      if_z r3.w
        dp4 r9.x, r6.xyzw, cb0[43].xyzw
        dp4 r9.y, r6.xyzw, cb0[44].xyzw
        add r8.y, l(1.000000), cb0[55].x
        dp2 r8.y, cb0[656].yyyy, r8.yyyy
        add r8.y, -r8.y, l(1.000000)
        mov r10.x, cb0[47].x
        mov r10.z, l(1.000000)
        mad r10.xyz, r9.xyzx, r10.xxzx, cb0[47].yzwy
        mov r11.x, cb0[48].x
        mov r11.z, l(1.000000)
        mad r11.xyz, r9.xyzx, r11.xxzx, cb0[48].yzwy
        mov r12.x, cb0[49].x
        mov r12.z, l(1.000000)
        mad r12.xyz, r9.xyzx, r12.xxzx, cb0[49].yzwy
        lt r8.zw, |r9.xxxy|, r8.yyyy
        and r8.z, r8.w, r8.z
        lt r13.xy, |r10.xyxx|, r8.yyyy
        and r8.w, r13.y, r13.x
        lt r13.xy, |r11.xyxx|, r8.yyyy
        and r9.w, r13.y, r13.x
        lt r13.xy, |r12.xyxx|, r8.yyyy
        and r8.y, r13.y, r13.x
        mov r13.xy, cb0[53].xyxx
        mov r13.z, l(1.000000)
        mov r14.xy, cb0[53].zwzz
        mov r14.z, l(0)
        mad r12.xyz, r12.xyzx, r13.xyzx, r14.xyzx
        mov r13.xy, cb0[52].xyxx
        mov r13.z, l(1.000000)
        mov r14.xy, cb0[52].zwzz
        mov r14.z, l(0)
        mad r11.xyz, r11.xyzx, r13.xyzx, r14.xyzx
        movc r11.xyz, r9.wwww, r11.xyzx, r12.xyzx
        mov r12.xy, cb0[51].xyxx
        mov r12.z, l(1.000000)
        mov r13.xy, cb0[51].zwzz
        mov r13.z, l(0)
        mad r10.xyz, r10.xyzx, r12.xyzx, r13.xyzx
        movc r10.xyz, r8.wwww, r10.xyzx, r11.xyzx
        mov r11.xy, cb0[50].xyxx
        mov r11.z, l(1.000000)
        mov r12.xy, cb0[50].zwzz
        mov r12.z, l(0)
        mad r9.xyz, r9.xyzx, r11.xyzx, r12.xyzx
        movc r9.xyz, r8.zzzz, r9.xyzx, r10.xyzx
        movc r8.y, r8.y, l(3), l(-1)
        movc r8.y, r9.w, l(2), r8.y
        movc r8.y, r8.w, l(1), r8.y
        movc r8.y, r8.z, l(0), r8.y
      else
        mov r9.xyz, l(0,0,0,0)
        mov r8.y, l(0)
      endif
      ige r8.y, r8.y, l(0)
      movc r3.w, r3.w, l(0), r8.y
      if_nz r3.w
        mul r3.w, r2.y, l(6.28318548)
        sincos r10.x, r11.x, r3.w
        mul r8.yz, cb0[55].xxxx, cb0[657].xxyx
        mov r11.z, r11.x
        mov r11.x, r10.x
        mul r12.xyzw, r8.yzyz, r11.zxzx
        mad r13.xyzw, r12.zwzw, l(-0.550705791, -0.550705791, 0.924529552, 0.924529552), r9.xyxy
        mov r11.y, l(0.495261461)
        mul r10.yz, r8.yyzy, r11.yyzy
        mov r11.x, -r10.x
        mov r11.y, l(0.495261461)
        mad r10.xy, r10.yzyy, r11.xyxx, r13.xyxx
        mov_sat r9.z, r9.z
        sample_c_lz_aoffimmi_indexable(0,0,0)(texture2d)(float,float,float,float) r3.w, r10.xyxx, t8.xxxx, s1, r9.z
        mul r8.yz, r8.yyzy, r11.xxzx
        mad r10.xy, r8.yzyy, l(-0.131719455, -0.131719455, 0.000000, 0.000000), r13.zwzz
        sample_c_lz_aoffimmi_indexable(0,0,0)(texture2d)(float,float,float,float) r8.w, r10.xyxx, t8.xxxx, s1, r9.z
        add r3.w, r3.w, r8.w
        mad r10.xyzw, r12.zwzw, l(0.389092624, 0.389092624, -0.182296202, -0.182296202), r9.xyxy
        mad r10.xy, r8.yzyy, l(0.862155199, 0.862155199, 0.000000, 0.000000), r10.xyxx
        sample_c_lz_aoffimmi_indexable(0,0,0)(texture2d)(float,float,float,float) r8.w, r10.xyxx, t8.xxxx, s1, r9.z
        add r3.w, r3.w, r8.w
        mad r10.xy, r8.yzyy, l(-0.714493573, -0.714493573, 0.000000, 0.000000), r10.zwzz
        sample_c_lz_aoffimmi_indexable(0,0,0)(texture2d)(float,float,float,float) r8.w, r10.xyxx, t8.xxxx, s1, r9.z
        add r3.w, r3.w, r8.w
        mad r10.xyzw, r12.zwzw, l(-0.00643500872, -0.00643500872, -0.432008445, -0.432008445), r9.xyxy
        mad r10.xy, r8.yzyy, l(0.191590905, 0.191590905, 0.000000, 0.000000), r10.xyxx
        sample_c_lz_aoffimmi_indexable(0,0,0)(texture2d)(float,float,float,float) r8.w, r10.xyxx, t8.xxxx, s1, r9.z
        add r3.w, r3.w, r8.w
        mad r10.xy, r8.yzyy, l(-0.168338627, -0.168338627, 0.000000, 0.000000), r10.zwzz
        sample_c_lz_aoffimmi_indexable(0,0,0)(texture2d)(float,float,float,float) r8.w, r10.xyxx, t8.xxxx, s1, r9.z
        add r3.w, r3.w, r8.w
        mad r10.xyzw, r12.xyzw, l(0.382709473, 0.382709473, -0.956976473, -0.956976473), r9.xyxy
        mad r9.xy, r8.yzyy, l(-0.343997300, -0.343997300, 0.000000, 0.000000), r10.xyxx
        sample_c_lz_aoffimmi_indexable(0,0,0)(texture2d)(float,float,float,float) r8.w, r9.xyxx, t8.xxxx, s1, r9.z
        add r3.w, r3.w, r8.w
        mad r8.yz, r8.yyzy, l(0.000000, -0.0294494852, -0.0294494852, 0.000000), r10.zzwz
        sample_c_lz_aoffimmi_indexable(0,0,0)(texture2d)(float,float,float,float) r8.y, r8.yzyy, t8.xxxx, s1, r9.z
        add r3.w, r3.w, r8.y
        mul r3.w, r3.w, l(0.125000)
      else
        mov r3.w, l(1.000000)
      endif
      add_sat r3.x, r3.w, cb0[55].y
      ine r3.w, l(0), cb2[0].z
      and r3.w, r7.w, r3.w
      lt r8.y, l(0.010000), r3.x
      and r3.w, r3.w, r8.y
      lt r8.y, l(0.010000), r3.y
      and r3.w, r3.w, r8.y
      if_nz r3.w
        mul r8.yz, cb1[9].zzwz, cb2[1].xxyx
        rsq r3.z, r3.z
        mul r9.xyz, r3.zzzz, cb0[45].xyzx
        mov r10.z, -r9.x
        ge r3.z, r9.z, l(0.000000)
        movc r3.zw, r3.zzzz, l(0,0,1.000000,-1.000000), l(0,0,-1.000000,1.000000)
        add r8.w, |r9.z|, l(1.000000)
        div r8.w, r9.y, r8.w
        mul r9.w, r8.w, r9.y
        mul r11.x, r8.w, r10.z
        mad r10.x, r3.z, r9.w, r9.z
        mul r10.y, r3.z, r11.x
        mad r11.y, -r9.y, r8.w, l(1.000000)
        mul r11.z, r9.y, r3.w
        mul_sat r3.y, r3.y, l(8.000000)
        mul r3.z, r3.y, l(0.150000)
        mul r3.z, r2.z, r3.z
        mad r3.y, -r3.y, l(0.150000), l(1.000000)
        mul r3.w, r2.y, l(6.28318548)
        sincos r12.x, r13.x, r3.w
        mul r3.w, r3.z, r12.x
        mul r10.xyz, r10.xyzx, r3.wwww
        mad r9.xyz, r9.xyzx, r3.yyyy, r10.xyzx
        mul r3.y, r3.z, r13.x
        mad r3.yzw, r3.yyyy, r11.xxyz, r9.xxyz
        dp3 r8.w, r3.yzwy, r3.yzwy
        rsq r8.w, r8.w
        mul r3.yzw, r3.yyzw, r8.wwww
        mad r9.xy, r0.yzyy, cb1[9].xyxx, l(-0.500000, -0.500000, 0.000000, 0.000000)
        mad r9.x, cb12[0].x, l(-0.500000), r9.x
        max r8.w, |r9.y|, |r9.x|
        add r8.w, r8.w, l(0.002000)
        mad r8.w, -r8.w, l(2.000000), l(1.000000)
        mul_sat r8.w, r8.w, l(249.999985)
        add r8.w, -r8.w, l(1.000000)
        min r9.zw, r5.xxxy, l(0.000000, 0.000000, 0.998000, 0.998000)
        max r10.xy, r9.zwzz, l(0.002000, 0.002000, 0.000000, 0.000000)
        min r9.z, r2.w, l(75.000000)
        max r10.z, r9.z, l(0.100000)
        mov r5.z, r4.z
        ne r10.xyz, r5.xyzx, r10.xyzx
        or r5.z, r10.y, r10.x
        or r5.z, r10.z, r5.z
        if_z r5.z
          dp3 r10.x, r3.yzwy, cb1[4].xyzx
          dp3 r10.y, r3.yzwy, cb1[5].xyzx
          dp3 r11.z, r3.yzwy, cb1[6].xyzx
          mad r3.yz, r9.xxyx, r11.zzzz, r10.xxyx
          mul r11.xy, r2.wwww, r3.yzyy
          mul r3.yz, r8.yyzy, r11.xxyx
          max r3.y, |r3.z|, |r3.y|
          rcp r3.y, r3.y
          mul r9.xyz, r3.yyyy, r11.xyzx
          rcp r5.w, r2.w
          mad r3.yzw, r11.xxyz, r3.yyyy, r5.xxyw
          add r10.xyz, r9.xyzx, r9.xyzx
          mad r3.yzw, r10.xxyz, r2.yyyy, r3.yyzw
          mov r10.xyz, r3.yzwy
          mov r5.zw, l(0,0,0,2)
          loop
            breakc_z r5.w
            iadd r5.w, r5.w, l(-1)
            sample_l_indexable(texture2d)(float,float,float,float) r8.y, r10.xyxx, t16.yxzw, s7, l(0.000000)
            mul r8.z, r10.z, r8.y
            mad r9.w, -r10.z, l(0.100000), l(1.000000)
            min r10.w, r9.w, l(0.999000)
            max r9.w, r9.w, l(0.999000)
            min r9.w, r8.z, r9.w
            max r9.w, r9.w, r10.w
            eq r8.z, r8.z, r9.w
            and r8.y, r8.y, l(1)
            ine r8.y, r8.y, l(0)
            and r8.y, r8.y, r8.z
            not r8.z, r5.z
            and r8.y, r8.z, r8.y
            or r8.y, r5.z, r8.y
            mad r11.xy, r9.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), r10.xyxx
            sample_l_indexable(texture2d)(float,float,float,float) r8.z, r11.xyxx, t16.yzxw, s7, l(0.000000)
            mad r9.w, r9.z, l(2.000000), r10.z
            mul r10.w, r8.z, r9.w
            mad r9.w, -r9.w, l(0.100000), l(1.000000)
            min r11.x, r9.w, l(0.999000)
            max r9.w, r9.w, l(0.999000)
            min r9.w, r10.w, r9.w
            max r9.w, r9.w, r11.x
            eq r9.w, r10.w, r9.w
            and r8.z, r8.z, l(1)
            ine r8.z, r8.z, l(0)
            and r8.z, r8.z, r9.w
            not r9.w, r8.y
            and r8.z, r8.z, r9.w
            or r8.y, r8.y, r8.z
            mad r11.xy, r9.xyxx, l(4.000000, 4.000000, 0.000000, 0.000000), r10.xyxx
            sample_l_indexable(texture2d)(float,float,float,float) r8.z, r11.xyxx, t16.yzxw, s7, l(0.000000)
            mad r11.xy, r9.zzzz, l(4.000000, 6.000000, 0.000000, 0.000000), r10.zzzz
            mul r9.w, r8.z, r11.x
            mad r11.xz, -r11.xxyx, l(0.100000, 0.000000, 0.100000, 0.000000), l(1.000000, 0.000000, 1.000000, 0.000000)
            min r12.xy, r11.xzxx, l(0.999000, 0.999000, 0.000000, 0.000000)
            max r11.xz, r11.xxzx, l(0.999000, 0.000000, 0.999000, 0.000000)
            min r10.w, r9.w, r11.x
            max r10.w, r10.w, r12.x
            eq r9.w, r9.w, r10.w
            and r8.z, r8.z, l(1)
            ine r8.z, r8.z, l(0)
            and r8.z, r8.z, r9.w
            not r9.w, r8.y
            and r8.z, r8.z, r9.w
            or r8.y, r8.y, r8.z
            mad r11.xw, r9.xxxy, l(6.000000, 0.000000, 0.000000, 6.000000), r10.xxxy
            sample_l_indexable(texture2d)(float,float,float,float) r8.z, r11.xwxx, t16.yzxw, s7, l(0.000000)
            mul r9.w, r11.y, r8.z
            min r10.w, r9.w, r11.z
            max r10.w, r10.w, r12.y
            eq r9.w, r9.w, r10.w
            and r8.z, r8.z, l(1)
            ine r8.z, r8.z, l(0)
            and r8.z, r8.z, r9.w
            not r9.w, r8.y
            and r8.z, r8.z, r9.w
            or r8.y, r8.y, r8.z
            if_nz r8.y
              mov r5.z, l(-1)
              break
            endif
            mad r10.xyz, r9.xyzx, l(8.000000, 8.000000, 8.000000, 0.000000), r10.xyzx
            mov r5.z, r8.y
          endloop
        else
          mov r5.z, l(0)
        endif
        movc r3.y, r5.z, l(0), l(1.000000)
        add r3.y, r3.y, r8.w
        min r3.y, r3.y, l(1.000000)
        add_sat r3.y, r3.y, cb0[55].y
        mul r3.x, r3.y, r3.x
      endif
    endif
    ine r3.y, l(-1), cb0[54].x
    if_nz r3.y
      ieq r3.y, r8.x, l(1)
      if_nz r3.y
        imul null, r3.y, l(13), cb0[54].x
        mov r6.w, l(1.000000)
        dp4 r3.z, r6.xyzw, cb0[r3.y + 580].xyzw
        lt r3.w, r3.z, l(0.000000)
        lt r5.z, l(1.000000), r3.z
        or r3.w, r3.w, r5.z
        if_z r3.w
          dp4 r9.x, r6.xyzw, cb0[r3.y + 578].xyzw
          dp4 r9.y, r6.xyzw, cb0[r3.y + 579].xyzw
          mad r5.zw, r9.xxxy, cb0[r3.y + 585].xxxy, cb0[r3.y + 585].zzzw
          lt r8.yz, l(0.000000, 1.000000, 1.000000, 0.000000), |r9.xxyx|
          or r8.y, r8.z, r8.y
        else
          mov r5.zw, l(0,0,0,0)
          mov r3.z, l(0)
          mov r8.y, l(0)
        endif
        ige r8.y, r8.y, l(0)
        movc r3.w, r3.w, l(0), r8.y
        if_nz r3.w
          mul r3.w, r2.y, l(6.28318548)
          sincos r9.x, r10.x, r3.w
          mul r10.x, r10.x, cb0[657].x
          mul r10.y, r9.x, cb0[657].y
          mad r8.yz, r10.xxyx, l(0.000000, 2.000000, 2.000000, 0.000000), r5.zzwz
          mad r5.zw, -r10.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), r5.zzzw
          sample_l_aoffimmi_indexable(0,0,0)(texture2d)(float,float,float,float) r8.y, r8.yzyy, t8.zxyw, s0, l(0.000000)
          sample_l_aoffimmi_indexable(0,0,0)(texture2d)(float,float,float,float) r8.z, r5.zwzz, t8.zyxw, s0, l(0.000000)
          mul r3.z, r3.z, cb0[r3.y + 589].y
          mad r3.yz, r8.yyzy, cb0[r3.y + 589].yyyy, -r3.zzzz
          max r3.yz, r3.yyzy, l(0.000000, 0.000000, 0.000000, 0.000000)
          add r3.y, r3.z, r3.y
          mul r3.y, r3.y, l(0.500000)
        else
          mov r3.y, l(0)
        endif
        mul r3.y, r3.y, l(0.250000)
        min r3.y, r3.y, l(1.000000)
        sqrt r3.y, r3.y
        add r3.y, -r3.y, l(1.000000)
      else
        imul null, r3.z, l(13), cb0[54].x
        mov r6.w, l(1.000000)
        dp4 r3.w, r6.xyzw, cb0[r3.z + 580].xyzw
        lt r5.z, r3.w, l(0.000000)
        lt r5.w, l(1.000000), r3.w
        or r5.z, r5.w, r5.z
        if_z r5.z
          dp4 r9.x, r6.xyzw, cb0[r3.z + 578].xyzw
          dp4 r9.y, r6.xyzw, cb0[r3.z + 579].xyzw
          mad r8.yz, r9.xxyx, cb0[r3.z + 585].xxyx, cb0[r3.z + 585].zzwz
          lt r9.xy, l(1.000000, 1.000000, 0.000000, 0.000000), |r9.xyxx|
          or r5.w, r9.y, r9.x
        else
          mov r8.yz, l(0,0,0,0)
          mov r3.w, l(0)
          mov r5.w, l(0)
        endif
        ige r5.w, r5.w, l(0)
        movc r5.z, r5.z, l(0), r5.w
        if_nz r5.z
          mul r5.z, r2.y, l(6.28318548)
          sincos r9.x, r10.x, r5.z
          mul r5.zw, cb0[r3.z + 590].xxxx, cb0[657].xxxy
          mov r10.z, r10.x
          mov r10.x, r9.x
          mul r11.xyzw, r5.zwzw, r10.zxzx
          mad r12.xyzw, r11.zwzw, l(-0.550705791, -0.550705791, 0.924529552, 0.924529552), r8.yzyz
          mov r10.y, l(0.495261461)
          mul r9.yz, r5.zzwz, r10.yyzy
          mov r10.x, -r9.x
          mov r10.y, l(0.495261461)
          mad r9.xy, r9.yzyy, r10.xyxx, r12.xyxx
          mov_sat r3.w, r3.w
          sample_c_lz_aoffimmi_indexable(0,0,0)(texture2d)(float,float,float,float) r8.w, r9.xyxx, t8.xxxx, s1, r3.w
          mul r5.zw, r5.zzzw, r10.xxxz
          mad r9.xy, r5.zwzz, l(-0.131719455, -0.131719455, 0.000000, 0.000000), r12.zwzz
          sample_c_lz_aoffimmi_indexable(0,0,0)(texture2d)(float,float,float,float) r9.x, r9.xyxx, t8.xxxx, s1, r3.w
          add r8.w, r8.w, r9.x
          mad r9.xyzw, r11.zwzw, l(0.389092624, 0.389092624, -0.182296202, -0.182296202), r8.yzyz
          mad r9.xy, r5.zwzz, l(0.862155199, 0.862155199, 0.000000, 0.000000), r9.xyxx
          sample_c_lz_aoffimmi_indexable(0,0,0)(texture2d)(float,float,float,float) r9.x, r9.xyxx, t8.xxxx, s1, r3.w
          add r8.w, r8.w, r9.x
          mad r9.xy, r5.zwzz, l(-0.714493573, -0.714493573, 0.000000, 0.000000), r9.zwzz
          sample_c_lz_aoffimmi_indexable(0,0,0)(texture2d)(float,float,float,float) r9.x, r9.xyxx, t8.xxxx, s1, r3.w
          add r8.w, r8.w, r9.x
          mad r9.xyzw, r11.zwzw, l(-0.00643500872, -0.00643500872, -0.432008445, -0.432008445), r8.yzyz
          mad r9.xy, r5.zwzz, l(0.191590905, 0.191590905, 0.000000, 0.000000), r9.xyxx
          sample_c_lz_aoffimmi_indexable(0,0,0)(texture2d)(float,float,float,float) r9.x, r9.xyxx, t8.xxxx, s1, r3.w
          add r8.w, r8.w, r9.x
          mad r9.xy, r5.zwzz, l(-0.168338627, -0.168338627, 0.000000, 0.000000), r9.zwzz
          sample_c_lz_aoffimmi_indexable(0,0,0)(texture2d)(float,float,float,float) r9.x, r9.xyxx, t8.xxxx, s1, r3.w
          add r8.w, r8.w, r9.x
          mad r9.xyzw, r11.xyzw, l(0.382709473, 0.382709473, -0.956976473, -0.956976473), r8.yzyz
          mad r8.yz, r5.zzwz, l(0.000000, -0.343997300, -0.343997300, 0.000000), r9.xxyx
          sample_c_lz_aoffimmi_indexable(0,0,0)(texture2d)(float,float,float,float) r8.y, r8.yzyy, t8.xxxx, s1, r3.w
          add r8.y, r8.y, r8.w
          mad r5.zw, r5.zzzw, l(0.000000, 0.000000, -0.0294494852, -0.0294494852), r9.zzzw
          sample_c_lz_aoffimmi_indexable(0,0,0)(texture2d)(float,float,float,float) r3.w, r5.zwzz, t8.xxxx, s1, r3.w
          add r3.w, r3.w, r8.y
          mul r3.w, r3.w, l(0.125000)
        else
          mov r3.w, l(1.000000)
        endif
        add_sat r3.y, r3.w, cb0[r3.z + 590].y
      endif
      min r3.x, r3.x, r3.y
    endif
    add r3.x, r2.x, r3.x
    mov r1.z, l(0)
    store_uav_typed u8.xyzw, r1.xyzz, r3.xxxx
    mov r1.z, l(1)
  else
    mov r1.z, l(0)
  endif
  ine r3.x, l(0), cb2[0].z
  and r3.x, r7.w, r3.x
  sincos r9.x, r10.x, r0.w
  mul r11.x, r10.x, cb0[657].x
  mul r11.y, r9.x, cb0[657].y
  mov r12.x, -r9.x
  ieq r3.yz, r8.xxxx, l(0, 1, 0, 0)
  or r0.w, r3.z, r3.y
  and r0.w, r0.w, r3.x
  mul r3.xy, cb1[9].zwzz, cb2[1].xyxx
  mad r13.xyzw, r0.yzyz, cb1[9].xyxy, l(-0.500000, -0.500000, -0.500000, -0.500000)
  mad r13.x, cb12[0].x, l(-0.500000), r13.x
  mad r13.z, cb12[0].x, l(-0.500000), r13.z
  max r0.y, |r13.y|, |r13.x|
  add r0.y, r0.y, l(0.002000)
  mad r0.y, -r0.y, l(2.000000), l(1.000000)
  mul_sat r0.y, r0.y, l(249.999985)
  add r0.y, -r0.y, l(1.000000)
  min r3.zw, r5.xxxy, l(0.000000, 0.000000, 0.998000, 0.998000)
  max r14.xy, r3.zwzz, l(0.002000, 0.002000, 0.000000, 0.000000)
  min r0.z, r2.w, l(75.000000)
  max r14.z, r0.z, l(0.100000)
  mov r4.xy, r5.xyxx
  ne r5.xyz, r4.xyzx, r14.xyzx
  or r0.z, r5.y, r5.x
  or r0.z, r5.z, r0.z
  rcp r4.w, r2.w
  mov r6.w, l(1.000000)
  mov r5.xyz, r6.xyzx
  mov r5.w, l(1.000000)
  mov r12.y, r10.x
  mov r12.z, r9.x
  mov r3.z, r0.x
  mov r1.w, r1.z
  loop
    firstbit_lo r3.w, r3.z
    uge r4.z, r3.w, cb0[19].x
    breakc_nz r4.z
    ishl r4.z, l(1), r3.w
    not r4.z, r4.z
    and r3.z, r3.z, r4.z
    imul null, r8.yz, r3.wwww, l(0, 6, 13, 0)
    add r9.yzw, -r6.xxyz, cb0[r8.y + 261].xxyz
    dp3 r3.w, r9.yzwy, r9.yzwy
    rsq r3.w, r3.w
    mul r9.yzw, r3.wwww, r9.yyzw
    dp3 r3.w, r7.xyzx, r9.yzwy
    if_nz r8.x
      dp4 r14.x, r6.xyzw, cb0[r8.z + 357].xyzw
      dp4 r14.y, r6.xyzw, cb0[r8.z + 358].xyzw
      dp4 r4.z, r6.xyzw, cb0[r8.z + 360].xyzw
      lt r8.yw, r4.zzzz, |r14.xxxy|
      or r7.w, r8.w, r8.y
      lt r8.y, r4.z, l(0.000000)
      or r7.w, r7.w, r8.y
      if_nz r7.w
        mov r8.yw, l(0,0,0,0)
        mov r10.y, l(0)
      else
        dp4 r14.z, r6.xyzw, cb0[r8.z + 359].xyzw
        div r10.yzw, r14.zzxy, r4.zzzz
        mad r8.yw, r10.zzzw, cb0[r8.z + 364].xxxy, cb0[r8.z + 364].zzzw
      endif
      ige r4.z, r7.w, l(0)
      if_nz r4.z
        mad r10.zw, r11.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), r8.yyyw
        mad r8.yw, -r11.xxxy, l(0.000000, 2.000000, 0.000000, 2.000000), r8.yyyw
        sample_l_aoffimmi_indexable(0,0,0)(texture2d)(float,float,float,float) r10.z, r10.zwzz, t8.zwxy, s0, l(0.000000)
        sample_l_aoffimmi_indexable(0,0,0)(texture2d)(float,float,float,float) r10.w, r8.ywyy, t8.zwyx, s0, l(0.000000)
        mad r8.yw, r10.zzzw, cb0[r8.z + 368].zzzz, cb0[r8.z + 368].wwww
        rcp r8.yw, r8.yyyw
        mad r4.z, r10.y, cb0[r8.z + 368].z, cb0[r8.z + 368].w
        rcp r4.z, r4.z
        add r8.yw, -r4.zzzz, r8.yyyw
        max r8.yw, r8.yyyw, l(0.000000, 0.000000, 0.000000, 0.000000)
        add r4.z, r8.w, r8.y
        mul r4.z, r4.z, l(0.500000)
      else
        mov r4.z, l(0)
      endif
      mul r4.z, r4.z, l(0.250000)
      min r4.z, r4.z, l(1.000000)
      sqrt r4.z, r4.z
      add r4.z, -r4.z, l(1.000000)
      mov r7.w, l(3)
    else
      dp4 r14.x, r5.xyzw, cb0[r8.z + 357].xyzw
      dp4 r14.y, r5.xyzw, cb0[r8.z + 358].xyzw
      dp4 r8.y, r5.xyzw, cb0[r8.z + 360].xyzw
      lt r10.yz, r8.yyyy, |r14.xxyx|
      or r8.w, r10.z, r10.y
      lt r10.y, r8.y, l(0.000000)
      or r8.w, r8.w, r10.y
      if_nz r8.w
        mov r10.yz, l(0,0,0,0)
        mov r15.x, l(0)
      else
        dp4 r14.z, r5.xyzw, cb0[r8.z + 359].xyzw
        div r15.xyz, r14.zxyz, r8.yyyy
        mad r10.yz, r15.yyzy, cb0[r8.z + 364].xxyx, cb0[r8.z + 364].zzwz
      endif
      ige r8.y, r8.w, l(0)
      if_nz r8.y
        mul r14.xyzw, cb0[r8.z + 369].xxxx, cb0[657].xyxy
        mul r16.xyzw, r12.yzyz, r14.zwzw
        mad r17.xyzw, r16.zwzw, l(-0.550705791, -0.550705791, 0.924529552, 0.924529552), r10.yzyz
        mul r14.xyzw, r12.xyxy, r14.xyzw
        mad r17.xyzw, r14.zwzw, l(0.495261461, 0.495261461, -0.131719455, -0.131719455), r17.xyzw
        mov_sat r15.x, r15.x
        sample_c_lz_aoffimmi_indexable(0,0,0)(texture2d)(float,float,float,float) r8.y, r17.xyxx, t8.xxxx, s1, r15.x
        sample_c_lz_aoffimmi_indexable(0,0,0)(texture2d)(float,float,float,float) r8.w, r17.zwzz, t8.xxxx, s1, r15.x
        add r8.y, r8.w, r8.y
        mad r17.xyzw, r16.zwzw, l(0.389092624, 0.389092624, -0.182296202, -0.182296202), r10.yzyz
        mad r17.xyzw, r14.zwzw, l(0.862155199, 0.862155199, -0.714493573, -0.714493573), r17.xyzw
        sample_c_lz_aoffimmi_indexable(0,0,0)(texture2d)(float,float,float,float) r8.w, r17.xyxx, t8.xxxx, s1, r15.x
        add r8.y, r8.w, r8.y
        sample_c_lz_aoffimmi_indexable(0,0,0)(texture2d)(float,float,float,float) r8.w, r17.zwzz, t8.xxxx, s1, r15.x
        add r8.y, r8.w, r8.y
        mad r17.xyzw, r16.zwzw, l(-0.00643500872, -0.00643500872, -0.432008445, -0.432008445), r10.yzyz
        mad r17.xyzw, r14.zwzw, l(0.191590905, 0.191590905, -0.168338627, -0.168338627), r17.xyzw
        sample_c_lz_aoffimmi_indexable(0,0,0)(texture2d)(float,float,float,float) r8.w, r17.xyxx, t8.xxxx, s1, r15.x
        add r8.y, r8.w, r8.y
        sample_c_lz_aoffimmi_indexable(0,0,0)(texture2d)(float,float,float,float) r8.w, r17.zwzz, t8.xxxx, s1, r15.x
        add r8.y, r8.w, r8.y
        mad r16.xyzw, r16.xyzw, l(0.382709473, 0.382709473, -0.956976473, -0.956976473), r10.yzyz
        mad r14.xyzw, r14.xyzw, l(-0.343997300, -0.343997300, -0.0294494852, -0.0294494852), r16.xyzw
        sample_c_lz_aoffimmi_indexable(0,0,0)(texture2d)(float,float,float,float) r8.w, r14.xyxx, t8.xxxx, s1, r15.x
        add r8.y, r8.w, r8.y
        sample_c_lz_aoffimmi_indexable(0,0,0)(texture2d)(float,float,float,float) r8.w, r14.zwzz, t8.xxxx, s1, r15.x
        add r8.y, r8.w, r8.y
        mul r8.y, r8.y, l(0.125000)
      else
        mov r8.y, l(1.000000)
      endif
      add_sat r4.z, r8.y, cb0[r8.z + 369].y
      mov r7.w, l(4)
    endif
    lt r8.y, l(0.010000), r4.z
    and r8.y, r0.w, r8.y
    lt r8.w, l(0.010000), r3.w
    and r8.y, r8.w, r8.y
    if_nz r8.y
      mov r14.z, -r9.y
      ge r8.y, r9.w, l(0.000000)
      movc r8.yw, r8.yyyy, l(0,1.000000,0,-1.000000), l(0,-1.000000,0,1.000000)
      add r10.y, |r9.w|, l(1.000000)
      div r10.y, r9.z, r10.y
      mul r10.z, r9.z, r10.y
      mul r15.x, r10.y, r14.z
      mad r14.x, r8.y, r10.z, r9.w
      mul r14.y, r8.y, r15.x
      mad r15.y, -r9.z, r10.y, l(1.000000)
      mul r15.z, r9.z, r8.w
      mul_sat r3.w, r3.w, l(8.000000)
      mul r8.y, r3.w, l(0.150000)
      mul r8.y, r2.z, r8.y
      mad r3.w, -r3.w, l(0.150000), l(1.000000)
      mul r8.w, r9.x, r8.y
      mul r10.yzw, r14.xxyz, r8.wwww
      mad r9.yzw, r9.yyzw, r3.wwww, r10.yyzw
      mul r3.w, r10.x, r8.y
      mad r9.yzw, r3.wwww, r15.xxyz, r9.yyzw
      dp3 r3.w, r9.yzwy, r9.yzwy
      rsq r3.w, r3.w
      mul r9.yzw, r3.wwww, r9.yyzw
      if_z r0.z
        dp3 r13.x, r9.yzwy, cb1[4].xyzx
        dp3 r13.y, r9.yzwy, cb1[5].xyzx
        dp3 r14.z, r9.yzwy, cb1[6].xyzx
        mad r8.yw, r13.zzzw, r14.zzzz, r13.xxxy
        mul r14.xy, r2.wwww, r8.ywyy
        mul r8.yw, r3.xxxy, r14.xxxy
        max r3.w, |r8.w|, |r8.y|
        rcp r3.w, r3.w
        mul r9.yzw, r3.wwww, r14.xxyz
        mad r10.yzw, r14.xxyz, r3.wwww, r4.xxyw
        add r14.xyz, r9.yzwy, r9.yzwy
        mad r10.yzw, r14.xxyz, r2.yyyy, r10.yyzw
        mov r3.w, l(0)
        mov r14.xyz, r10.yzwy
        mov r8.y, l(2)
        loop
          breakc_z r8.y
          iadd r8.y, r8.y, l(-1)
          sample_l_indexable(texture2d)(float,float,float,float) r8.w, r14.xyxx, t16.yzwx, s7, l(0.000000)
          mul r11.z, r14.z, r8.w
          mad r11.w, -r14.z, l(0.100000), l(1.000000)
          min r12.w, r11.w, l(0.999000)
          max r11.w, r11.w, l(0.999000)
          min r11.w, r11.z, r11.w
          max r11.w, r11.w, r12.w
          eq r11.z, r11.z, r11.w
          and r8.w, r8.w, l(1)
          ine r8.w, r8.w, l(0)
          and r8.w, r8.w, r11.z
          not r11.z, r3.w
          and r8.w, r8.w, r11.z
          or r8.w, r3.w, r8.w
          mad r11.zw, r9.yyyz, l(0.000000, 0.000000, 2.000000, 2.000000), r14.xxxy
          sample_l_indexable(texture2d)(float,float,float,float) r11.z, r11.zwzz, t16.yzxw, s7, l(0.000000)
          mad r11.w, r9.w, l(2.000000), r14.z
          mul r12.w, r11.w, r11.z
          mad r11.w, -r11.w, l(0.100000), l(1.000000)
          min r13.x, r11.w, l(0.999000)
          max r11.w, r11.w, l(0.999000)
          min r11.w, r12.w, r11.w
          max r11.w, r11.w, r13.x
          eq r11.w, r12.w, r11.w
          and r11.z, r11.z, l(1)
          ine r11.z, r11.z, l(0)
          and r11.z, r11.z, r11.w
          not r11.w, r8.w
          and r11.z, r11.w, r11.z
          or r8.w, r8.w, r11.z
          mad r11.zw, r9.yyyz, l(0.000000, 0.000000, 4.000000, 4.000000), r14.xxxy
          sample_l_indexable(texture2d)(float,float,float,float) r11.z, r11.zwzz, t16.yzxw, s7, l(0.000000)
          mad r13.xy, r9.wwww, l(4.000000, 6.000000, 0.000000, 0.000000), r14.zzzz
          mul r11.w, r11.z, r13.x
          mad r15.xy, -r13.xyxx, l(0.100000, 0.100000, 0.000000, 0.000000), l(1.000000, 1.000000, 0.000000, 0.000000)
          min r15.zw, r15.xxxy, l(0.000000, 0.000000, 0.999000, 0.999000)
          max r15.xy, r15.xyxx, l(0.999000, 0.999000, 0.000000, 0.000000)
          min r12.w, r11.w, r15.x
          max r12.w, r12.w, r15.z
          eq r11.w, r11.w, r12.w
          and r11.z, r11.z, l(1)
          ine r11.z, r11.z, l(0)
          and r11.z, r11.z, r11.w
          not r11.w, r8.w
          and r11.z, r11.w, r11.z
          or r8.w, r8.w, r11.z
          mad r11.zw, r9.yyyz, l(0.000000, 0.000000, 6.000000, 6.000000), r14.xxxy
          sample_l_indexable(texture2d)(float,float,float,float) r11.z, r11.zwzz, t16.yzxw, s7, l(0.000000)
          mul r11.w, r13.y, r11.z
          min r12.w, r11.w, r15.y
          max r12.w, r12.w, r15.w
          eq r11.w, r11.w, r12.w
          and r11.z, r11.z, l(1)
          ine r11.z, r11.z, l(0)
          and r11.z, r11.z, r11.w
          not r11.w, r8.w
          and r11.z, r11.w, r11.z
          or r8.w, r8.w, r11.z
          if_nz r8.w
            mov r3.w, l(-1)
            break
          endif
          mad r14.xyz, r9.yzwy, l(8.000000, 8.000000, 8.000000, 0.000000), r14.xyzx
          mov r3.w, r8.w
        endloop
      else
        mov r3.w, l(0)
      endif
      movc r8.y, r3.w, l(0), l(1.000000)
      add r8.y, r0.y, r8.y
      min r8.y, r8.y, l(1.000000)
      ine r7.w, r7.w, l(3)
      add_sat r8.z, r8.y, cb0[r8.z + 369].y
      movc r7.w, r7.w, r8.z, r8.y
      mul r4.z, r4.z, r7.w
    endif
    iadd r7.w, r1.w, l(1)
    add r4.z, r2.x, r4.z
    store_uav_typed u8.xyzw, r1.xyww, r4.zzzz
    mov r1.w, r7.w
  endloop
endif
ret
// Approximately 0 instruction slots used
