// 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[178], dynamicIndexed
dcl_sampler s0, mode_default
dcl_resource_structured t0, 1100
dcl_resource_structured t4, 8
dcl_resource_structured t5, 24
dcl_resource_texture2d (float,float,float,float) t6
dcl_resource_texture2d (float,float,float,float) t7
dcl_resource_texture3d (float,float,float,float) t8
dcl_resource_texture2d (float,float,float,float) t9
dcl_resource_texture2d (float,float,float,float) t10
dcl_resource_structured t11, 44
dcl_uav_structured u8, 12
dcl_uav_structured u9, 4
dcl_uav_structured u10, 12
dcl_uav_structured u11, 12
dcl_uav_structured u12, 4
dcl_uav_structured u13, 4
dcl_uav_structured u14, 4
dcl_uav_typed_buffer (uint,uint,uint,uint) u15
dcl_uav_structured u16, 52
dcl_uav_structured u17, 64
dcl_uav_structured u18, 32
dcl_uav_typed_buffer (uint,uint,uint,uint) u19
dcl_uav_structured u21, 8
dcl_uav_structured u25, 28
dcl_uav_structured u26, 28
dcl_input vThreadIDInGroupFlattened
dcl_input vThreadGroupID.x
dcl_temps 100
dcl_indexableTemp x0[64], 4
dcl_tgsm_structured g0, 4, 64
dcl_tgsm_raw g1, 8
dcl_tgsm_raw g2, 4
dcl_tgsm_structured g3, 8, 64
dcl_tgsm_structured g4, 12, 64
dcl_thread_group 64, 1, 1
dcl_constantbuffer CB12[3], immediateIndexed
ld_structured_indexable(structured_buffer, stride=44)(mixed,mixed,mixed,mixed) r0.xyzw, vThreadGroupID.x, l(4), t11.xyzw
ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r1.xyzw, r0.y, l(0), t0.xyzw
ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r2.xyzw, r0.y, l(16), t0.xyzw
ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r3.xyzw, r0.y, l(32), t0.xyzw
ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r4.x, r0.y, l(64), t0.xxxx
ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r5.xyzw, r0.y, l(296), t0.xyzw
ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r6.xyzw, r0.y, l(316), t0.xyzw
ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r7.xyzw, r0.y, l(380), t0.xyzw
ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r8.xyzw, r0.y, l(912), t0.wxyz
ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r9.xyzw, r0.y, l(928), t0.zwxy
ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r4.yzw, r0.y, l(960), t0.xxyz
ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r10.xyz, r0.y, l(972), t0.xyzx
ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r11.xyzw, r0.y, l(984), t0.xyzw
ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r12.xyzw, r0.y, l(1000), t0.xyzw
ieq r10.w, vThreadIDInGroupFlattened.x, l(0)
if_z vThreadIDInGroupFlattened.x
  store_raw g2.x, l(0), l(0)
endif
ld_structured_indexable(structured_buffer, stride=44)(mixed,mixed,mixed,mixed) r13.xyz, vThreadGroupID.x, l(32), t11.xyzx
ult r0.w, vThreadIDInGroupFlattened.x, r0.w
if_nz r0.w
  and r14.xy, r5.yyyy, l(4096, 0x00010000, 0, 0)
  bfi r15.w, l(26), l(6), r0.x, vThreadIDInGroupFlattened.x
  xor r0.w, r15.w, l(61)
  ubfe r0.x, l(16), l(10), r0.x
  xor r0.x, r0.x, r0.w
  imul null, r0.x, r0.x, l(9)
  ushr r0.w, r0.x, l(4)
  xor r0.x, r0.w, r0.x
  imul null, r0.x, r0.x, l(0x27d4eb2d)
  ushr r0.w, r0.x, l(15)
  xor r0.x, r0.w, r0.x
  movc r0.x, r14.x, r6.y, r0.x
  ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r0.w, r15.w, l(0), u9.xxxx
  add r0.z, -r0.w, r0.z
  ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r0.w, r15.w, l(0), u12.xxxx
  lt r14.x, l(0.000000), r5.w
  mul r5.w, r5.w, r5.z
  utof r14.z, r0.x
  mad r14.w, r14.z, l(4.656612873E-10), l(-1.000000)
  mad r5.w, r5.w, r14.w, r5.z
  movc r5.z, r14.x, r5.w, r5.z
  movc r0.w, r14.y, r0.w, r5.z
  div_sat r16.x, r0.z, r0.w
  lt r0.w, r16.x, l(1.000000)
  if_nz r0.w
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r17.xyzw, r0.y, l(568), t0.xyzw
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r18.xyzw, r0.y, l(584), t0.xyzw
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r19.xyzw, r0.y, l(600), t0.xyzw
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r20.xyzw, r0.y, l(616), t0.xyzw
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r21.xyzw, r0.y, l(632), t0.xyzw
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r22.xyzw, r0.y, l(648), t0.zwxy
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r23.xyzw, r0.y, l(696), t0.xyzw
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r24.xyzw, r0.y, l(712), t0.xyzw
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r14.xyw, r0.y, l(728), t0.yzxx
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r25.xyzw, r0.y, l(752), t0.xyzw
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r5.zw, r0.y, l(780), t0.xxxy
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r26.xyzw, r0.y, l(800), t0.xyzw
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r27.xyzw, r0.y, l(816), t0.xyzw
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r28.x, r0.y, l(832), t0.xxxx
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r29.xyzw, r0.y, l(848), t0.xyzw
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r30.xyzw, r0.y, l(864), t0.xyzw
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r28.y, r0.y, l(880), t0.xxxx
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r31.xyzw, r0.y, l(896), t0.xyzw
    ld_structured_indexable(structured_buffer, stride=12)(mixed,mixed,mixed,mixed) r32.xyz, r15.w, l(0), u8.xyzx
    ld_structured_indexable(structured_buffer, stride=12)(mixed,mixed,mixed,mixed) r33.xyz, r15.w, l(0), u10.xyzx
    ld_structured_indexable(structured_buffer, stride=12)(mixed,mixed,mixed,mixed) r34.xyz, r15.w, l(0), u11.xyzx
    min r5.x, r0.z, r5.x
    and r35.xyzw, r5.yyyy, l(1024, 1, 0x00200000, 2)
    if_nz r35.x
      mul r14.z, r14.z, l(2.328306437E-10)
      lt r12.x, r14.z, r12.x
      if_nz r12.x
        imm_atomic_iadd r36.x, g2, l(0), l(1)
        iadd r14.z, r13.y, r36.x
        store_structured u25.xyz, r14.z, l(0), r32.xyzx
        store_structured u25.x, r14.z, l(24), l(1)
      else
        mov r36.x, l(0)
      endif
    else
      mov r36.x, l(0)
      mov r12.x, l(0)
    endif
    lt r14.z, l(0.000000), r19.x
    ishl r28.z, r0.x, l(13)
    xor r28.z, r0.x, r28.z
    ushr r28.w, r28.z, l(17)
    xor r28.z, r28.w, r28.z
    ishl r28.w, r28.z, l(5)
    xor r28.z, r28.w, r28.z
    movc r28.z, r35.x, r28.z, r0.x
    utof r28.z, r28.z
    mad r28.z, r28.z, l(4.656612873E-10), l(-1.000000)
    and r28.w, r14.z, r28.z
    switch r18.z
      case l(0)
      mov r18.z, l(0)
      break
      case l(1)
      mov r18.z, r16.x
      break
      case l(2)
      lt r32.w, l(0.000010), |r18.w|
      lt r33.w, l(0.000000), r18.w
      lt r34.w, r18.w, l(0.000000)
      iadd r33.w, -r33.w, r34.w
      itof r33.w, r33.w
      mul r33.w, r33.w, l(0.000100)
      movc r32.w, r32.w, r18.w, r33.w
      mul r33.w, r16.x, r32.w
      exp r33.w, r33.w
      add r33.w, r33.w, l(-1.000000)
      exp r32.w, r32.w
      add r32.w, r32.w, l(-1.000000)
      div r32.w, l(1.000000, 1.000000, 1.000000, 1.000000), r32.w
      mul r32.w, r32.w, r33.w
      max r18.z, r32.w, l(0.000000)
      break
      case l(3)
      add r18.w, |r18.w|, l(6.000000)
      add r32.w, -r16.x, l(0.500000)
      mul r18.w, r18.w, r32.w
      exp r18.w, r18.w
      add r18.w, r18.w, l(1.000000)
      div r18.z, l(1.000000, 1.000000, 1.000000, 1.000000), r18.w
      break
      default
      mov r18.z, l(0)
      break
    endswitch
    add r18.y, -r18.x, r18.y
    mad r18.x, r18.z, r18.y, r18.x
    mul r18.y, r19.x, r18.x
    mad r18.y, r18.y, r28.w, r18.x
    movc r14.z, r14.z, r18.y, r18.x
    mul r17.yzw, r14.zzzz, r17.yyzw
    lt r14.z, l(0.000000), r5.x
    if_nz r14.z
      ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r18.xyzw, r0.y, l(552), t0.xyzw
      lt r19.x, l(0.000000), r17.x
      and r28.w, r28.z, r19.x
      switch r18.z
        case l(0)
        mov r18.z, l(0)
        break
        case l(1)
        mov r18.z, r16.x
        break
        case l(2)
        lt r32.w, l(0.000010), |r18.w|
        lt r33.w, l(0.000000), r18.w
        lt r34.w, r18.w, l(0.000000)
        iadd r33.w, -r33.w, r34.w
        itof r33.w, r33.w
        mul r33.w, r33.w, l(0.000100)
        movc r32.w, r32.w, r18.w, r33.w
        mul r33.w, r16.x, r32.w
        exp r33.w, r33.w
        add r33.w, r33.w, l(-1.000000)
        exp r32.w, r32.w
        add r32.w, r32.w, l(-1.000000)
        div r32.w, l(1.000000, 1.000000, 1.000000, 1.000000), r32.w
        mul r32.w, r32.w, r33.w
        max r18.z, r32.w, l(0.000000)
        break
        case l(3)
        add r18.w, |r18.w|, l(6.000000)
        add r32.w, -r16.x, l(0.500000)
        mul r18.w, r18.w, r32.w
        exp r18.w, r18.w
        add r18.w, r18.w, l(1.000000)
        div r18.z, l(1.000000, 1.000000, 1.000000, 1.000000), r18.w
        break
        default
        mov r18.z, l(0)
        break
      endswitch
      add r18.y, -r18.x, r18.y
      mad r18.x, r18.z, r18.y, r18.x
      mul r17.x, r17.x, r18.x
      mad r17.x, r17.x, r28.w, r18.x
      movc r17.x, r19.x, r17.x, r18.x
      div r18.x, l(1.000000, 1.000000, 1.000000, 1.000000), r5.x
      min r17.x, r17.x, r18.x
      mad r17.yzw, -r17.xxxx, r33.xxyz, r17.yyzw
    endif
    and r18.xyzw, r23.yyyy, l(4, 1, 2, 8)
    add r26.xyz, r26.xyzx, -r32.xyzx
    dp3 r17.x, r26.xyzx, r26.xyzx
    sqrt r17.x, r17.x
    ge r19.x, l(0.000000), r27.w
    ge r23.y, r27.w, r17.x
    or r19.x, r19.x, r23.y
    mul r17.x, r17.x, -r26.w
    mul r17.x, r17.x, l(1.442695)
    exp r17.x, r17.x
    mul r17.x, r28.x, r17.x
    mad r26.xyz, r27.xyzx, r17.xxxx, r17.yzwy
    movc r26.xyz, r19.xxxx, r26.xyzx, r17.yzwy
    movc r17.xyz, r18.xxxx, r26.xyzx, r17.yzwy
    ine r17.w, r18.y, l(0)
    and r17.w, r14.z, r17.w
    mov r26.xy, r23.zwzz
    mov r26.z, r24.x
    add r23.yzw, -r32.xxyz, r26.xxyz
    dp3 r18.x, r23.yzwy, r23.yzwy
    sqrt r18.x, r18.x
    ge r18.y, l(0.000000), r14.x
    ge r19.x, r14.x, r18.x
    or r18.y, r18.y, r19.x
    mul r18.x, r18.x, -r24.y
    mul r18.x, r18.x, l(1.442695)
    exp r18.x, r18.x
    mul r18.x, r14.y, r18.x
    div r19.x, l(1.000000, 1.000000, 1.000000, 1.000000), r5.x
    min r18.x, |r18.x|, r19.x
    mov r14.xy, r24.zwzz
    dp3 r19.x, r33.xyzx, r14.xywx
    mul r19.x, r18.x, r19.x
    mad r14.xyw, -r19.xxxx, r14.xyxw, r17.xyxz
    mad r23.yzw, -r18.xxxx, r33.xxyz, r17.xxyz
    movc r14.xyw, r35.yyyy, r14.xyxw, r23.yzyw
    movc r14.xyw, r18.yyyy, r14.xyxw, r17.xyxz
    movc r14.xyw, r17.wwww, r14.xyxw, r17.xyxz
    add r17.xyz, r25.xyzx, -r32.xyzx
    dp3 r17.w, r17.xyzx, r17.xyzx
    sqrt r17.w, r17.w
    ge r18.x, l(0.000000), r5.z
    ge r5.z, r5.z, r17.w
    or r5.z, r5.z, r18.x
    lt r18.x, r31.x, r17.w
    and r5.z, r5.z, r18.x
    lt r18.x, l(0.000010), r17.w
    and r5.z, r5.z, r18.x
    mul r18.x, r17.w, -r25.w
    mul r18.x, r18.x, l(1.442695)
    exp r18.x, r18.x
    mul r5.w, r5.w, r18.x
    div r5.w, r5.w, r17.w
    mad r17.xyz, r17.xyzx, r5.wwww, r14.xywx
    movc r17.xyz, r5.zzzz, r17.xyzx, r14.xywx
    movc r14.xyw, r18.zzzz, r17.xyxz, r14.xyxw
    add r17.xyz, -r29.zxyz, r32.zxyz
    dp3 r5.z, r30.zxyz, r17.xyzx
    mad r17.xyz, r30.zxyz, r5.zzzz, r17.xyzx
    dp3 r5.z, r17.xyzx, r17.xyzx
    sqrt r5.z, r5.z
    ge r5.w, l(0.000000), r30.w
    ge r17.w, r30.w, r5.z
    or r5.w, r5.w, r17.w
    lt r17.w, l(0.000010), r5.z
    and r5.w, r5.w, r17.w
    mul r18.xyz, r30.yzxy, r17.xyzx
    mad r17.xyz, r17.zxyz, r30.zxyz, -r18.xyzx
    dp3 r17.w, r17.xyzx, r17.xyzx
    max r17.w, r17.w, l(0.000010)
    rsq r17.w, r17.w
    mul r17.xyz, r17.wwww, r17.xyzx
    mul r5.z, r5.z, -r29.w
    mul r5.z, r5.z, l(1.442695)
    exp r5.z, r5.z
    mul r5.z, r28.y, r5.z
    mad r17.xyz, r17.xyzx, r5.zzzz, r14.xywx
    movc r17.xyz, r5.wwww, r17.xyzx, r14.xywx
    movc r14.xyw, r18.wwww, r17.xyxz, r14.xyxw
    lt r5.z, l(0.000000), r20.y
    and r5.w, r28.z, r5.z
    switch r19.w
      case l(0)
      mov r17.x, l(0)
      break
      case l(1)
      mov r17.x, r16.x
      break
      case l(2)
      lt r17.y, l(0.000010), |r20.x|
      lt r17.z, l(0.000000), r20.x
      lt r17.w, r20.x, l(0.000000)
      iadd r17.z, -r17.z, r17.w
      itof r17.z, r17.z
      mul r17.z, r17.z, l(0.000100)
      movc r17.y, r17.y, r20.x, r17.z
      mul r17.z, r16.x, r17.y
      exp r17.z, r17.z
      exp r17.y, r17.y
      add r17.yz, r17.yyzy, l(0.000000, -1.000000, -1.000000, 0.000000)
      div r17.y, l(1.000000, 1.000000, 1.000000, 1.000000), r17.y
      mul r17.y, r17.y, r17.z
      max r17.x, r17.y, l(0.000000)
      break
      case l(3)
      add r17.y, |r20.x|, l(6.000000)
      add r17.z, -r16.x, l(0.500000)
      mul r17.y, r17.z, r17.y
      exp r17.y, r17.y
      add r17.y, r17.y, l(1.000000)
      div r17.x, l(1.000000, 1.000000, 1.000000, 1.000000), r17.y
      break
      default
      mov r17.x, l(0)
      break
    endswitch
    add r17.y, -r19.y, r19.z
    mad r17.x, r17.x, r17.y, r19.y
    mul r17.y, r20.y, r17.x
    mad r5.w, r17.y, r5.w, r17.x
    movc_sat r5.z, r5.z, r5.w, r17.x
    ne r5.w, r5.z, l(0.000000)
    and r5.w, r14.z, r5.w
    if_nz r5.w
      and r5.w, l(1), cb0[156].w
      if_nz r5.w
        mad r17.xyz, r32.xzyx, cb0[155].xzyx, cb0[154].xzyx
        sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t8.xyzw, s0, l(0.000000)
        add r17.xyz, r17.xyzx, cb0[156].xyzx
      else
        mov r17.xyz, cb0[156].xyzx
      endif
      add r17.xyz, -r33.xyzx, r17.xyzx
      div r17.xyz, r17.xyzx, r5.xxxx
      mad r14.xyw, r17.xyxz, r5.zzzz, r14.xyxw
    endif
    mov r17.x, r21.w
    mov r17.yz, r22.zzwz
    dp3 r5.z, r17.xyzx, r17.xyzx
    lt r5.z, l(0.000000), r5.z
    if_nz r5.z
      ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r18.xyzw, r0.y, l(664), t0.xyzw
      ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r19.xyzw, r0.y, l(680), t0.xyzw
      lt r5.z, l(0.000000), r23.x
      and r5.w, r28.z, r5.z
      switch r19.z
        case l(0)
        mov r17.w, l(0)
        break
        case l(1)
        mov r17.w, r16.x
        break
        case l(2)
        lt r19.z, l(0.000010), |r19.w|
        lt r20.x, l(0.000000), r19.w
        lt r20.y, r19.w, l(0.000000)
        iadd r20.x, -r20.x, r20.y
        itof r20.x, r20.x
        mul r20.x, r20.x, l(0.000100)
        movc r19.z, r19.z, r19.w, r20.x
        mul r20.x, r16.x, r19.z
        exp r20.x, r20.x
        add r20.x, r20.x, l(-1.000000)
        exp r19.z, r19.z
        add r19.z, r19.z, l(-1.000000)
        div r19.z, l(1.000000, 1.000000, 1.000000, 1.000000), r19.z
        mul r19.z, r19.z, r20.x
        max r17.w, r19.z, l(0.000000)
        break
        case l(3)
        add r19.z, |r19.w|, l(6.000000)
        add r19.w, -r16.x, l(0.500000)
        mul r19.z, r19.w, r19.z
        exp r19.z, r19.z
        add r19.z, r19.z, l(1.000000)
        div r17.w, l(1.000000, 1.000000, 1.000000, 1.000000), r19.z
        break
        default
        mov r17.w, l(0)
        break
      endswitch
      add r19.y, -r19.x, r19.y
      mad r17.w, r17.w, r19.y, r19.x
      mul r19.x, r23.x, r17.w
      mad r5.w, r19.x, r5.w, r17.w
      movc r5.z, r5.z, r5.w, r17.w
      mov r22.z, r18.x
      mad r19.xyz, r32.xyzx, r21.xyzx, r22.xyzx
      mad r18.xyz, r18.yzwy, r6.xxxx, r19.xyzx
      mul r17.xyz, r17.xyzx, r5.zzzz
      dp3 r5.z, r18.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000)
      add r19.xyz, r5.zzzz, r18.xyzx
      round_ni r19.xyz, r19.xyzx
      add r21.xyz, r18.xyzx, -r19.xyzx
      dp3 r5.z, r19.xyzx, l(0.166666672, 0.166666672, 0.166666672, 0.000000)
      add r21.xyz, r5.zzzz, r21.xyzx
      ge r22.xyz, r21.zxyz, r21.xyzx
      and r23.xyz, r22.yzxy, l(0x3f800000, 0x3f800000, 0x3f800000, 0)
      movc r22.xyz, r22.xyzx, l(0,0,0,0), l(1.000000,1.000000,1.000000,0)
      min r24.xyz, r22.xyzx, r23.xyzx
      max r22.xyz, r22.yzxy, r23.yzxy
      add r23.xyz, r21.xyzx, -r24.xyzx
      add r23.xyz, r23.xyzx, l(0.166666672, 0.166666672, 0.166666672, 0.000000)
      add r25.xyz, r21.xyzx, -r22.zxyz
      add r25.xyz, r25.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000)
      add r26.xyz, r21.xyzx, l(-0.500000, -0.500000, -0.500000, 0.000000)
      mul r27.xyz, r19.xyzx, l(0.00346020772, 0.00346020772, 0.00346020772, 0.000000)
      round_ni r27.xyz, r27.xyzx
      mad r19.xyz, -r27.xyzx, l(289.000000, 289.000000, 289.000000, 0.000000), r19.xyzx
      mov r27.xw, l(0,0,0,1.000000)
      mov r27.y, r24.z
      mov r27.z, r22.y
      add r27.xyzw, r19.zzzz, r27.xyzw
      mad r29.xyzw, r27.xyzw, l(34.000000, 34.000000, 34.000000, 34.000000), l(1.000000, 1.000000, 1.000000, 1.000000)
      mul r27.xyzw, r27.xyzw, r29.xyzw
      mul r29.xyzw, r27.xyzw, l(0.00346020772, 0.00346020772, 0.00346020772, 0.00346020772)
      round_ni r29.xyzw, r29.xyzw
      mad r27.xyzw, -r29.xyzw, l(289.000000, 289.000000, 289.000000, 289.000000), r27.xyzw
      add r27.xyzw, r19.yyyy, r27.xyzw
      mov r29.xw, l(0,0,0,1.000000)
      mov r29.y, r24.y
      mov r29.z, r22.x
      add r27.xyzw, r27.xyzw, r29.xyzw
      mad r29.xyzw, r27.xyzw, l(34.000000, 34.000000, 34.000000, 34.000000), l(1.000000, 1.000000, 1.000000, 1.000000)
      mul r27.xyzw, r27.xyzw, r29.xyzw
      mul r29.xyzw, r27.xyzw, l(0.00346020772, 0.00346020772, 0.00346020772, 0.00346020772)
      round_ni r29.xyzw, r29.xyzw
      mad r27.xyzw, -r29.xyzw, l(289.000000, 289.000000, 289.000000, 289.000000), r27.xyzw
      add r19.xyzw, r19.xxxx, r27.xyzw
      mov r22.xw, l(0,0,0,1.000000)
      mov r22.y, r24.x
      add r19.xyzw, r19.xyzw, r22.xyzw
      mad r22.xyzw, r19.xyzw, l(34.000000, 34.000000, 34.000000, 34.000000), l(1.000000, 1.000000, 1.000000, 1.000000)
      mul r19.xyzw, r19.xyzw, r22.xyzw
      mul r22.xyzw, r19.xyzw, l(0.00346020772, 0.00346020772, 0.00346020772, 0.00346020772)
      round_ni r22.xyzw, r22.xyzw
      mad r19.xyzw, -r22.xyzw, l(289.000000, 289.000000, 289.000000, 289.000000), r19.xyzw
      mul r22.xyzw, r19.xyzw, l(0.0204081647, 0.0204081647, 0.0204081647, 0.0204081647)
      round_ni r22.xyzw, r22.xyzw
      mad r19.xyzw, -r22.xyzw, l(49.000000, 49.000000, 49.000000, 49.000000), r19.xyzw
      mul r22.xyzw, r19.xyzw, l(0.142857149, 0.142857149, 0.142857149, 0.142857149)
      round_ni r22.xyzw, r22.xyzw
      mad r19.xyzw, -r22.xyzw, l(7.000000, 7.000000, 7.000000, 7.000000), r19.xyzw
      mad r22.xyzw, r22.xyzw, l(0.285714298, 0.285714298, 0.285714298, 0.285714298), l(-0.928571403, -0.928571403, -0.928571403, -0.928571403)
      mad r19.xyzw, r19.xzyw, l(0.285714298, 0.285714298, 0.285714298, 0.285714298), l(-0.928571403, -0.928571403, -0.928571403, -0.928571403)
      add r24.xyzw, -|r22.xyzw|, l(1.000000, 1.000000, 1.000000, 1.000000)
      add r24.xyzw, -|r19.xzwy|, r24.xywz
      round_ni r27.xz, r22.xxyx
      round_ni r27.yw, r19.xxxz
      mad r27.xyzw, r27.xyzw, l(2.000000, 2.000000, 2.000000, 2.000000), l(1.000000, 1.000000, 1.000000, 1.000000)
      round_ni r29.xz, r22.zzwz
      round_ni r29.yw, r19.yyyw
      mad r29.xyzw, r29.xyzw, l(2.000000, 2.000000, 2.000000, 2.000000), l(1.000000, 1.000000, 1.000000, 1.000000)
      ge r30.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000), r24.xywz
      movc r30.xyzw, r30.xyzw, l(-1.000000,-1.000000,-1.000000,-1.000000), l(-0.000000,-0.000000,-0.000000,-0.000000)
      mov r37.xz, r22.xxyx
      mov r37.yw, r19.xxxz
      mad r27.xyzw, r27.zwxy, r30.yyxx, r37.zwxy
      mov r19.xz, r22.zzwz
      mad r19.xyzw, r29.xyzw, r30.zzww, r19.xyzw
      mov r22.xy, r27.zwzz
      mov r22.z, r24.x
      dp3 r29.x, r22.xyzx, r22.xyzx
      mov r27.z, r24.y
      dp3 r29.y, r27.xyzx, r27.xyzx
      mov r30.xy, r19.xyxx
      mov r30.z, r24.w
      dp3 r29.z, r30.xyzx, r30.xyzx
      mov r24.xy, r19.zwzz
      dp3 r29.w, r24.xyzx, r24.xyzx
      mad r19.xyzw, -r29.xyzw, l(0.853734732, 0.853734732, 0.853734732, 0.853734732), l(1.79284286, 1.79284286, 1.79284286, 1.79284286)
      mul r22.xyz, r19.xxxx, r22.xyzx
      mul r27.xyz, r19.yyyy, r27.xyzx
      mul r19.xyz, r19.zzzz, r30.xyzx
      mul r24.xyz, r19.wwww, r24.xyzx
      dp3 r29.x, r21.xyzx, r21.xyzx
      dp3 r29.y, r23.xyzx, r23.xyzx
      dp3 r29.z, r25.xyzx, r25.xyzx
      dp3 r29.w, r26.xyzx, r26.xyzx
      add r29.xyzw, -r29.xyzw, l(0.600000, 0.600000, 0.600000, 0.600000)
      max r29.xyzw, r29.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
      mul r30.xyzw, r29.xyzw, r29.xyzw
      mul r29.xyzw, r29.xyzw, r30.xyzw
      mul r30.xyzw, r30.xyzw, r30.xyzw
      mul r29.xyzw, r29.xyzw, l(-8.000000, -8.000000, -8.000000, -8.000000)
      dp3 r5.z, r22.xyzx, r21.xyzx
      dp3 r5.w, r27.xyzx, r23.xyzx
      dp3 r17.w, r19.xyzx, r25.xyzx
      dp3 r18.w, r24.xyzx, r26.xyzx
      mul r19.xw, r21.yyyz, r29.xxxx
      mul r20.xy, r22.yzyy, r30.xxxx
      mad r19.xw, r19.xxxw, r5.zzzz, r20.xxxy
      mul r20.xy, r23.yzyy, r29.yyyy
      mul r21.xy, r27.yzyy, r30.yyyy
      mad r5.zw, r20.xxxy, r5.wwww, r21.xxxy
      add r5.zw, r5.zzzw, r19.xxxw
      mul r19.xw, r25.yyyz, r29.zzzz
      mul r19.yz, r19.yyzy, r30.zzzz
      mad r19.xy, r19.xwxx, r17.wwww, r19.yzyy
      add r5.zw, r5.zzzw, r19.xxxy
      mul r19.xy, r26.yzyy, r29.wwww
      mul r19.zw, r24.yyyz, r30.wwww
      mad r19.xy, r19.xyxx, r18.wwww, r19.zwzz
      add r5.zw, r5.zzzw, r19.xxxy
      mul r5.z, r5.z, l(42.000000)
      add r19.xyz, r18.xyzx, l(920.718689, 125.506699, 523.453003, 0.000000)
      dp3 r17.w, r19.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000)
      add r21.xyz, r17.wwww, r19.xyzx
      round_ni r21.xyz, r21.xyzx
      add r19.xyz, r19.xyzx, -r21.xyzx
      dp3 r17.w, r21.xyzx, l(0.166666672, 0.166666672, 0.166666672, 0.000000)
      add r19.xyz, r17.wwww, r19.xyzx
      ge r22.xyz, r19.zxyz, r19.xyzx
      and r23.xyz, r22.yzxy, l(0x3f800000, 0x3f800000, 0x3f800000, 0)
      movc r22.xyz, r22.xyzx, l(0,0,0,0), l(1.000000,1.000000,1.000000,0)
      min r24.xyz, r22.xyzx, r23.xyzx
      max r22.xyz, r22.yzxy, r23.yzxy
      add r23.xyz, r19.xyzx, -r24.xyzx
      add r23.xyz, r23.xyzx, l(0.166666672, 0.166666672, 0.166666672, 0.000000)
      add r25.xyz, r19.xyzx, -r22.zxyz
      add r25.xyz, r25.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000)
      add r26.xyz, r19.xyzx, l(-0.500000, -0.500000, -0.500000, 0.000000)
      mul r27.xyz, r21.xyzx, l(0.00346020772, 0.00346020772, 0.00346020772, 0.000000)
      round_ni r27.xyz, r27.xyzx
      mad r21.xyz, -r27.xyzx, l(289.000000, 289.000000, 289.000000, 0.000000), r21.xyzx
      mov r27.xw, l(0,0,0,1.000000)
      mov r27.y, r24.z
      mov r27.z, r22.y
      add r27.xyzw, r21.zzzz, r27.xyzw
      mad r29.xyzw, r27.xyzw, l(34.000000, 34.000000, 34.000000, 34.000000), l(1.000000, 1.000000, 1.000000, 1.000000)
      mul r27.xyzw, r27.xyzw, r29.xyzw
      mul r29.xyzw, r27.xyzw, l(0.00346020772, 0.00346020772, 0.00346020772, 0.00346020772)
      round_ni r29.xyzw, r29.xyzw
      mad r27.xyzw, -r29.xyzw, l(289.000000, 289.000000, 289.000000, 289.000000), r27.xyzw
      add r27.xyzw, r21.yyyy, r27.xyzw
      mov r29.xw, l(0,0,0,1.000000)
      mov r29.y, r24.y
      mov r29.z, r22.x
      add r27.xyzw, r27.xyzw, r29.xyzw
      mad r29.xyzw, r27.xyzw, l(34.000000, 34.000000, 34.000000, 34.000000), l(1.000000, 1.000000, 1.000000, 1.000000)
      mul r27.xyzw, r27.xyzw, r29.xyzw
      mul r29.xyzw, r27.xyzw, l(0.00346020772, 0.00346020772, 0.00346020772, 0.00346020772)
      round_ni r29.xyzw, r29.xyzw
      mad r27.xyzw, -r29.xyzw, l(289.000000, 289.000000, 289.000000, 289.000000), r27.xyzw
      add r21.xyzw, r21.xxxx, r27.xyzw
      mov r22.xw, l(0,0,0,1.000000)
      mov r22.y, r24.x
      add r21.xyzw, r21.xyzw, r22.xyzw
      mad r22.xyzw, r21.xyzw, l(34.000000, 34.000000, 34.000000, 34.000000), l(1.000000, 1.000000, 1.000000, 1.000000)
      mul r21.xyzw, r21.xyzw, r22.xyzw
      mul r22.xyzw, r21.xyzw, l(0.00346020772, 0.00346020772, 0.00346020772, 0.00346020772)
      round_ni r22.xyzw, r22.xyzw
      mad r21.xyzw, -r22.xyzw, l(289.000000, 289.000000, 289.000000, 289.000000), r21.xyzw
      mul r22.xyzw, r21.xyzw, l(0.0204081647, 0.0204081647, 0.0204081647, 0.0204081647)
      round_ni r22.xyzw, r22.xyzw
      mad r21.xyzw, -r22.xyzw, l(49.000000, 49.000000, 49.000000, 49.000000), r21.xyzw
      mul r22.xyzw, r21.xyzw, l(0.142857149, 0.142857149, 0.142857149, 0.142857149)
      round_ni r22.xyzw, r22.xyzw
      mad r21.xyzw, -r22.xyzw, l(7.000000, 7.000000, 7.000000, 7.000000), r21.xyzw
      mad r22.xyzw, r22.xyzw, l(0.285714298, 0.285714298, 0.285714298, 0.285714298), l(-0.928571403, -0.928571403, -0.928571403, -0.928571403)
      mad r21.xyzw, r21.xzyw, l(0.285714298, 0.285714298, 0.285714298, 0.285714298), l(-0.928571403, -0.928571403, -0.928571403, -0.928571403)
      add r24.xyzw, -|r22.xyzw|, l(1.000000, 1.000000, 1.000000, 1.000000)
      add r24.xyzw, -|r21.xzwy|, r24.xywz
      round_ni r27.xz, r22.xxyx
      round_ni r27.yw, r21.xxxz
      mad r27.xyzw, r27.xyzw, l(2.000000, 2.000000, 2.000000, 2.000000), l(1.000000, 1.000000, 1.000000, 1.000000)
      round_ni r29.xz, r22.zzwz
      round_ni r29.yw, r21.yyyw
      mad r29.xyzw, r29.xyzw, l(2.000000, 2.000000, 2.000000, 2.000000), l(1.000000, 1.000000, 1.000000, 1.000000)
      ge r30.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000), r24.xywz
      movc r30.xyzw, r30.xyzw, l(-1.000000,-1.000000,-1.000000,-1.000000), l(-0.000000,-0.000000,-0.000000,-0.000000)
      mov r37.xz, r22.xxyx
      mov r37.yw, r21.xxxz
      mad r27.xyzw, r27.zwxy, r30.yyxx, r37.zwxy
      mov r21.xz, r22.zzwz
      mad r21.xyzw, r29.xyzw, r30.zzww, r21.xyzw
      mov r22.xy, r27.zwzz
      mov r22.z, r24.x
      dp3 r29.x, r22.xyzx, r22.xyzx
      mov r27.z, r24.y
      dp3 r29.y, r27.xyzx, r27.xyzx
      mov r30.xy, r21.xyxx
      mov r30.z, r24.w
      dp3 r29.z, r30.xyzx, r30.xyzx
      mov r24.xy, r21.zwzz
      dp3 r29.w, r24.xyzx, r24.xyzx
      mad r21.xyzw, -r29.xyzw, l(0.853734732, 0.853734732, 0.853734732, 0.853734732), l(1.79284286, 1.79284286, 1.79284286, 1.79284286)
      mul r22.xyz, r21.xxxx, r22.xyzx
      mul r27.xyz, r21.yyyy, r27.xyzx
      mul r21.xyz, r21.zzzz, r30.xyzx
      mul r24.xyz, r21.wwww, r24.xyzx
      dp3 r29.x, r19.xyzx, r19.xyzx
      dp3 r29.y, r23.xyzx, r23.xyzx
      dp3 r29.z, r25.xyzx, r25.xyzx
      dp3 r29.w, r26.xyzx, r26.xyzx
      add r29.xyzw, -r29.xyzw, l(0.600000, 0.600000, 0.600000, 0.600000)
      max r29.xyzw, r29.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
      mul r30.xyzw, r29.xyzw, r29.xyzw
      mul r29.xyzw, r29.xyzw, r30.xyzw
      mul r30.xyzw, r30.xyzw, r30.xyzw
      mul r29.xyzw, r29.xyzw, l(-8.000000, -8.000000, -8.000000, -8.000000)
      dp3 r17.w, r22.xyzx, r19.xyzx
      dp3 r18.w, r27.xyzx, r23.xyzx
      dp3 r19.y, r21.xyzx, r25.xyzx
      dp3 r19.w, r24.xyzx, r26.xyzx
      mul r19.xz, r19.xxzx, r29.xxxx
      mul r20.xy, r22.xzxx, r30.xxxx
      mad r19.xz, r19.xxzx, r17.wwww, r20.xxyx
      mul r20.xy, r23.xzxx, r29.yyyy
      mul r21.yw, r27.xxxz, r30.yyyy
      mad r20.xy, r20.xyxx, r18.wwww, r21.ywyy
      add r19.xz, r19.xxzx, r20.xxyx
      mul r20.xy, r25.xzxx, r29.zzzz
      mul r21.xy, r21.xzxx, r30.zzzz
      mad r20.xy, r20.xyxx, r19.yyyy, r21.xyxx
      add r19.xy, r19.xzxx, r20.xyxx
      mul r20.xy, r26.xzxx, r29.wwww
      mul r21.xy, r24.xzxx, r30.wwww
      mad r19.zw, r20.xxxy, r19.wwww, r21.xxxy
      add r19.xy, r19.zwzz, r19.xyxx
      mul r17.w, r19.y, l(42.000000)
      add r18.xyz, r18.xyzx, l(328.609802, -515.140930, 343.312012, 0.000000)
      dp3 r18.w, r18.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000)
      add r19.yzw, r18.wwww, r18.xxyz
      round_ni r19.yzw, r19.yyzw
      add r18.xyz, r18.xyzx, -r19.yzwy
      dp3 r18.w, r19.yzwy, l(0.166666672, 0.166666672, 0.166666672, 0.000000)
      add r18.xyz, r18.wwww, r18.xyzx
      ge r21.xyz, r18.zxyz, r18.xyzx
      and r22.xyz, r21.yzxy, l(0x3f800000, 0x3f800000, 0x3f800000, 0)
      movc r21.xyz, r21.xyzx, l(0,0,0,0), l(1.000000,1.000000,1.000000,0)
      min r23.xyz, r21.xyzx, r22.xyzx
      max r21.xyz, r21.yzxy, r22.yzxy
      add r22.xyz, r18.xyzx, -r23.xyzx
      add r22.xyz, r22.xyzx, l(0.166666672, 0.166666672, 0.166666672, 0.000000)
      add r24.xyz, r18.xyzx, -r21.zxyz
      add r24.xyz, r24.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000)
      add r25.xyz, r18.xyzx, l(-0.500000, -0.500000, -0.500000, 0.000000)
      mul r26.xyz, r19.yzwy, l(0.00346020772, 0.00346020772, 0.00346020772, 0.000000)
      round_ni r26.xyz, r26.xyzx
      mad r19.yzw, -r26.xxyz, l(0.000000, 289.000000, 289.000000, 289.000000), r19.yyzw
      mov r26.xw, l(0,0,0,1.000000)
      mov r26.y, r23.z
      mov r26.z, r21.y
      add r26.xyzw, r19.wwww, r26.xyzw
      mad r27.xyzw, r26.xyzw, l(34.000000, 34.000000, 34.000000, 34.000000), l(1.000000, 1.000000, 1.000000, 1.000000)
      mul r26.xyzw, r26.xyzw, r27.xyzw
      mul r27.xyzw, r26.xyzw, l(0.00346020772, 0.00346020772, 0.00346020772, 0.00346020772)
      round_ni r27.xyzw, r27.xyzw
      mad r26.xyzw, -r27.xyzw, l(289.000000, 289.000000, 289.000000, 289.000000), r26.xyzw
      add r26.xyzw, r19.zzzz, r26.xyzw
      mov r27.xw, l(0,0,0,1.000000)
      mov r27.y, r23.y
      mov r27.z, r21.x
      add r26.xyzw, r26.xyzw, r27.xyzw
      mad r27.xyzw, r26.xyzw, l(34.000000, 34.000000, 34.000000, 34.000000), l(1.000000, 1.000000, 1.000000, 1.000000)
      mul r26.xyzw, r26.xyzw, r27.xyzw
      mul r27.xyzw, r26.xyzw, l(0.00346020772, 0.00346020772, 0.00346020772, 0.00346020772)
      round_ni r27.xyzw, r27.xyzw
      mad r26.xyzw, -r27.xyzw, l(289.000000, 289.000000, 289.000000, 289.000000), r26.xyzw
      add r26.xyzw, r19.yyyy, r26.xyzw
      mov r21.xw, l(0,0,0,1.000000)
      mov r21.y, r23.x
      add r21.xyzw, r21.xyzw, r26.xyzw
      mad r23.xyzw, r21.xyzw, l(34.000000, 34.000000, 34.000000, 34.000000), l(1.000000, 1.000000, 1.000000, 1.000000)
      mul r21.xyzw, r21.xyzw, r23.xyzw
      mul r23.xyzw, r21.xyzw, l(0.00346020772, 0.00346020772, 0.00346020772, 0.00346020772)
      round_ni r23.xyzw, r23.xyzw
      mad r21.xyzw, -r23.xyzw, l(289.000000, 289.000000, 289.000000, 289.000000), r21.xyzw
      mul r23.xyzw, r21.xyzw, l(0.0204081647, 0.0204081647, 0.0204081647, 0.0204081647)
      round_ni r23.xyzw, r23.xyzw
      mad r21.xyzw, -r23.xyzw, l(49.000000, 49.000000, 49.000000, 49.000000), r21.xyzw
      mul r23.xyzw, r21.xyzw, l(0.142857149, 0.142857149, 0.142857149, 0.142857149)
      round_ni r23.xyzw, r23.xyzw
      mad r21.xyzw, -r23.xyzw, l(7.000000, 7.000000, 7.000000, 7.000000), r21.xyzw
      mad r23.xyzw, r23.xyzw, l(0.285714298, 0.285714298, 0.285714298, 0.285714298), l(-0.928571403, -0.928571403, -0.928571403, -0.928571403)
      mad r21.xyzw, r21.xzyw, l(0.285714298, 0.285714298, 0.285714298, 0.285714298), l(-0.928571403, -0.928571403, -0.928571403, -0.928571403)
      add r26.xyzw, -|r23.xyzw|, l(1.000000, 1.000000, 1.000000, 1.000000)
      add r26.xyzw, -|r21.xzwy|, r26.xywz
      round_ni r27.xz, r23.xxyx
      round_ni r27.yw, r21.xxxz
      mad r27.xyzw, r27.xyzw, l(2.000000, 2.000000, 2.000000, 2.000000), l(1.000000, 1.000000, 1.000000, 1.000000)
      round_ni r29.xz, r23.zzwz
      round_ni r29.yw, r21.yyyw
      mad r29.xyzw, r29.xyzw, l(2.000000, 2.000000, 2.000000, 2.000000), l(1.000000, 1.000000, 1.000000, 1.000000)
      ge r30.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000), r26.xywz
      movc r30.xyzw, r30.xyzw, l(-1.000000,-1.000000,-1.000000,-1.000000), l(-0.000000,-0.000000,-0.000000,-0.000000)
      mov r37.xz, r23.xxyx
      mov r37.yw, r21.xxxz
      mad r27.xyzw, r27.zwxy, r30.yyxx, r37.zwxy
      mov r21.xz, r23.zzwz
      mad r21.xyzw, r29.xyzw, r30.zzww, r21.xyzw
      mov r23.xy, r27.zwzz
      mov r23.z, r26.x
      dp3 r29.x, r23.xyzx, r23.xyzx
      mov r27.z, r26.y
      dp3 r29.y, r27.xyzx, r27.xyzx
      mov r30.xy, r21.xyxx
      mov r30.z, r26.w
      dp3 r29.z, r30.xyzx, r30.xyzx
      mov r26.xy, r21.zwzz
      dp3 r29.w, r26.xyzx, r26.xyzx
      mad r21.xyzw, -r29.xyzw, l(0.853734732, 0.853734732, 0.853734732, 0.853734732), l(1.79284286, 1.79284286, 1.79284286, 1.79284286)
      mul r19.yzw, r21.xxxx, r23.xxyz
      mul r23.xyz, r21.yyyy, r27.xyzx
      mul r21.xyz, r21.zzzz, r30.xyzx
      mul r26.xyz, r21.wwww, r26.xyzx
      dp3 r27.x, r18.xyzx, r18.xyzx
      dp3 r27.y, r22.xyzx, r22.xyzx
      dp3 r27.z, r24.xyzx, r24.xyzx
      dp3 r27.w, r25.xyzx, r25.xyzx
      add r27.xyzw, -r27.xyzw, l(0.600000, 0.600000, 0.600000, 0.600000)
      max r27.xyzw, r27.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
      mul r29.xyzw, r27.xyzw, r27.xyzw
      mul r27.xyzw, r27.xyzw, r29.xyzw
      mul r29.xyzw, r29.xyzw, r29.xyzw
      mul r27.xyzw, r27.xyzw, l(-8.000000, -8.000000, -8.000000, -8.000000)
      dp3 r18.z, r19.yzwy, r18.xyzx
      dp3 r18.w, r23.xyzx, r22.xyzx
      dp3 r19.w, r21.xyzx, r24.xyzx
      dp3 r20.x, r26.xyzx, r25.xyzx
      mul r18.xy, r18.xyxx, r27.xxxx
      mul r19.yz, r19.yyzy, r29.xxxx
      mad r18.xy, r18.xyxx, r18.zzzz, r19.yzyy
      mul r19.yz, r22.xxyx, r27.yyyy
      mul r21.zw, r23.xxxy, r29.yyyy
      mad r18.zw, r19.yyyz, r18.wwww, r21.zzzw
      add r18.xy, r18.zwzz, r18.xyxx
      mul r18.zw, r24.xxxy, r27.zzzz
      mul r19.yz, r21.xxyx, r29.zzzz
      mad r18.zw, r18.zzzw, r19.wwww, r19.yyyz
      add r18.xy, r18.zwzz, r18.xyxx
      mul r18.zw, r25.xxxy, r27.wwww
      mul r19.yz, r26.xxyx, r29.wwww
      mad r18.zw, r18.zzzw, r20.xxxx, r19.yyyz
      add r18.xy, r18.zwzz, r18.xyxx
      mul r18.x, r18.x, l(42.000000)
      mad r21.x, r18.y, l(42.000000), -r17.w
      mad r21.y, r5.w, l(42.000000), -r18.x
      mad r21.z, r19.x, l(42.000000), -r5.z
      mad r14.xyw, r17.xyxz, r21.xyxz, r14.xyxw
    endif
    mad r17.xyz, r33.xyzx, r5.xxxx, r32.xyzx
    mul r18.xyz, r5.xxxx, r14.xywx
    mul r18.xyz, r5.xxxx, r18.xyzx
    mad r17.xyz, r18.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r17.xyzx
    mad r5.xzw, r5.xxxx, r14.xxyw, r33.xxyz
    ieq r18.xy, r35.zxzz, l(0, 0, 0, 0)
    ge r14.x, r8.y, l(1.000000)
    and r14.x, r14.x, r18.x
    if_z r14.x
      lt r14.x, l(0.000000), r31.z
      mul r14.y, r31.z, r31.y
      mad r14.y, r14.y, r28.z, r31.y
      max r14.y, r14.y, l(0.000000)
      movc r14.x, r14.x, r14.y, r31.y
      add r14.y, r2.w, r8.w
      add r14.y, r31.w, r14.y
      add r14.y, -r32.y, r14.y
      add r14.w, -r32.y, r17.y
      div r14.y, r14.y, r14.w
      ge r14.w, r14.y, l(0.000000)
      ge r14.y, l(1.000000), r14.y
      and r14.y, r14.y, r14.w
      mad r19.xyz, r5.zzzz, l(-0.000000, -2.000000, -0.000000, 0.000000), r5.xzwx
      mul r19.xyz, r14.xxxx, r19.xyzx
      dp3 r14.w, r19.xyzx, r19.xyzx
      lt r14.w, r14.w, l(0.160000)
      movc r19.xyz, r14.wwww, l(0,0,0,0), r19.xyzx
      movc r21.xyz, r14.yyyy, r32.xyzx, r17.xyzx
      movc r19.xyz, r14.yyyy, r19.xyzx, r5.xzwx
      movc r17.xyz, r35.zzzz, r21.xyzx, r17.xyzx
      movc r5.xzw, r35.zzzz, r19.xxyz, r5.xxzw
      if_z r35.z
        ge r14.y, r16.x, r8.y
        if_nz r14.y
          mov r17.w, l(1.000000)
          dp4 r14.y, r17.xyzw, cb0[159].xyzw
          dp4 r19.x, r17.xyzw, cb0[161].xyzw
          dp4 r19.y, r17.xyzw, cb0[162].xyzw
          dp4 r14.w, r17.xyzw, cb0[164].xyzw
          add r95.w, r14.w, -cb12[0].y
          mad r19.x, cb12[0].x, r95.w, r19.x
          div r14.w, l(1.000000, 1.000000, 1.000000, 1.000000), r14.w
          mul r19.xy, r14.wwww, r19.xyxx
          mad r19.xy, r19.xyxx, l(0.500000, -0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
          sample_l_indexable(texture2d)(float,float,float,float) r14.w, r19.xyxx, t9.yzwx, s0, l(0.000000)
          add r14.y, -r14.w, -r14.y
          add r14.w, r31.w, r14.y
          lt r14.w, l(0.000000), r14.w
          add r14.y, -r31.w, r14.y
          lt r14.y, r14.y, r8.z
          and r14.y, r14.y, r14.w
          if_nz r14.y
            dp3 r14.y, r5.xzwx, r5.xzwx
            mul r14.w, r14.x, r14.x
            mul r14.y, r14.y, r14.w
            ge r14.y, l(0.160000), r14.y
            if_nz r14.y
              mov r5.xzw, l(0,0,0,0)
            else
              sample_l_indexable(texture2d)(float,float,float,float) r19.xyz, r19.xyxx, t10.xyzw, s0, l(0.000000)
              mad r19.xyz, r19.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
              dp3 r14.y, r5.xzwx, r19.xyzx
              add r14.y, r14.y, r14.y
              mad r19.xyz, r19.xyzx, -r14.yyyy, r5.xzwx
              mul r5.xzw, r14.xxxx, r19.xxyz
            endif
            mov r17.xyz, r32.xyzx
          endif
        endif
      endif
    endif
    mov r19.x, r1.w
    mov r19.y, r2.w
    mov r19.z, r3.w
    add r14.xyw, r17.xyxz, -r19.xyxz
    dp3 r17.w, r14.xywx, r14.xywx
    sqrt r17.w, r17.w
    lt r18.w, l(0.000010), r17.w
    max r19.w, r20.z, r17.w
    min r19.w, r20.w, r19.w
    div r17.w, r19.w, r17.w
    mad r14.xyw, r14.xyxw, r17.wwww, r19.xyxz
    movc r14.xyw, r18.wwww, r14.xyxw, r17.xyxz
    movc r14.xyw, r35.wwww, r14.xyxw, r17.xyxz
    and r17.xyzw, r5.yyyy, l(0x00800000, 0x01000000, 0x02000000, 0x20000000)
    movc r14.xyw, r17.xyxz, r32.xyxz, r14.xyxw
    mov r17.x, r4.y
    mov r17.y, r10.y
    mov r17.z, r11.z
    add r19.xyz, r17.xyzx, r17.xyzx
    mov r8.yz, r9.zzwz
    add r20.xyz, -r8.xyzx, r14.xywx
    add r20.xyz, r17.xyzx, r20.xyzx
    ge r21.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xyzx
    and r21.xyz, r21.xyzx, l(0x3f800000, 0x3f800000, 0x3f800000, 0)
    div r20.xyz, |r20.xyzx|, r19.xyzx
    ge r22.xyz, r20.xyzx, -r20.xyzx
    frc r20.xyz, |r20.xyzx|
    movc r20.xyz, r22.xyzx, r20.xyzx, -r20.xyzx
    mad r17.xyz, r20.xyzx, r19.xyzx, -r17.xyzx
    mul r19.xyz, r21.xyzx, r17.xyzx
    mad r17.xyz, r19.xyzx, l(-2.000000, -2.000000, -2.000000, 0.000000), r17.xyzx
    add r17.xyz, r8.xyzx, r17.xyzx
    movc r17.xyz, r17.wwww, r17.xyzx, r14.xywx
    if_nz r12.x
      iadd r12.x, r13.y, r36.x
      store_structured u25.xyz, r12.x, l(12), r17.xyzx
    endif
    if_nz r14.z
      store_structured u8.xyz, r15.w, l(0), r17.xyzx
      store_structured u10.xyz, r15.w, l(0), r5.xzwx
    endif
    and r12.x, r5.y, l(2048)
    mov r17.w, l(1.000000)
    dp4 r14.x, r17.xyzw, r1.xyzw
    dp4 r14.y, r17.xyzw, r2.xyzw
    dp4 r14.z, r17.xyzw, r3.xyzw
    dp3 r19.x, r5.xzwx, r1.xyzx
    dp3 r19.y, r5.xzwx, r2.xyzx
    dp3 r19.z, r5.xzwx, r3.xyzx
    movc r14.xyz, r12.xxxx, r14.xyzx, r17.xyzx
    movc r17.xyz, r12.xxxx, r19.xyzx, r5.xzwx
    mov r18.x, r0.x
  else
    mov r18.xy, l(0,0,0,0)
    mov r0.z, l(0)
    mov r16.x, l(0)
    mov r14.xyz, l(0,0,0,0)
    mov r17.xyz, l(0,0,0,0)
    mov r34.xyz, l(0,0,0,0)
    mov r15.w, l(0)
  endif
else
  mov r18.xy, l(0,0,0,0)
  mov r16.x, l(0)
  mov r14.xyz, l(0,0,0,0)
  mov r17.xyz, l(0,0,0,0)
  mov r34.xyz, l(0,0,0,0)
  mov r15.w, l(0)
  mov r0.zw, l(0,0,0,0)
endif
imul null, r0.x, r4.x, l(14)
dp3 r4.x, r14.xyzx, cb0[r0.x + 8].xyzx
add r4.x, r4.x, cb0[r0.x + 8].w
lt r4.x, -r7.x, r4.x
dp3 r5.x, r14.xyzx, cb0[r0.x + 9].xyzx
add r5.x, r5.x, cb0[r0.x + 9].w
lt r5.x, -r7.x, r5.x
and r4.x, r4.x, r5.x
dp3 r5.x, r14.xyzx, cb0[r0.x + 10].xyzx
add r5.x, r5.x, cb0[r0.x + 10].w
lt r5.x, -r7.x, r5.x
and r4.x, r4.x, r5.x
dp3 r5.x, r14.xyzx, cb0[r0.x + 11].xyzx
add r5.x, r5.x, cb0[r0.x + 11].w
lt r5.x, -r7.x, r5.x
and r4.x, r4.x, r5.x
dp3 r5.x, r14.xyzx, cb0[r0.x + 12].xyzx
add r5.x, r5.x, cb0[r0.x + 12].w
lt r5.x, -r7.x, r5.x
and r4.x, r4.x, r5.x
bfi r5.x, l(1), vThreadIDInGroupFlattened.x, r4.x, l(0)
ult r5.z, vThreadIDInGroupFlattened.x, l(32)
movc r5.w, r5.z, l(0), r5.x
and r5.x, r5.x, r5.z
if_z vThreadIDInGroupFlattened.x
  store_raw g1.xy, l(0), l(0,0,0,0)
endif
sync_g_t
atomic_or g1, l(0), r5.x
atomic_or g1, l(4), r5.w
sync_g_t
ld_raw r5.xw, l(0), g1.xxxy
and r19.xyzw, r5.yyyy, l(0x00100000, 4096, 0x00004000, 0x04000000)
ine r12.x, r19.x, l(0)
and r12.x, r0.w, r12.x
if_nz r12.x
  and r12.x, r5.y, l(4096)
  iadd r20.xy, vThreadIDInGroupFlattened.xxxx, l(1, -1, 0, 0)
  ishl r20.yz, l(0, 1, 1, 0), r20.xxyx
  and r21.xy, r5.zzzz, r20.yzyy
  movc r20.yz, r5.zzzz, l(0,0,0,0), r20.yyzy
  and r21.xy, r5.xxxx, r21.xyxx
  and r5.xw, r5.wwww, r20.yyyz
  or r5.xw, r5.xxxw, r21.xxxy
  ine r5.xw, r5.xxxw, l(0, 0, 0, 0)
  ld_structured_indexable(structured_buffer, stride=44)(mixed,mixed,mixed,mixed) r13.y, vThreadGroupID.x, l(16), t11.xxxx
  ieq r13.y, r13.y, r20.x
  or r5.x, r4.x, r5.x
  or r5.x, r5.w, r5.x
  or r5.x, r10.w, r5.x
  or r5.x, r13.y, r5.x
  movc r4.x, r12.x, r5.x, r4.x
else
  mov r4.x, r0.w
endif
bfi r5.x, l(1), vThreadIDInGroupFlattened.x, r0.w, l(0)
movc r5.w, r5.z, l(0), r5.x
and r5.x, r5.x, r5.z
if_z vThreadIDInGroupFlattened.x
  store_raw g1.xy, l(0), l(0,0,0,0)
endif
sync_g_t
atomic_or g1, l(0), r5.x
atomic_or g1, l(4), r5.w
sync_g_t
ld_raw r5.xw, l(0), g1.xxxy
movc r20.xyz, r0.wwww, r14.xyzx, l(340282346638528859811704183484516925440.000000,340282346638528859811704183484516925440.000000,340282346638528859811704183484516925440.000000,0)
movc r21.xyz, r0.wwww, r14.xyzx, l(-340282346638528859811704183484516925440.000000,-340282346638528859811704183484516925440.000000,-340282346638528859811704183484516925440.000000,0)
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r20.x
sync_g_t
xor r22.xyzw, vThreadIDInGroupFlattened.xxxx, l(1, 2, 4, 8)
ld_structured r0.w, r22.x, l(0), g0.xxxx
min r0.w, r0.w, r20.x
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r0.w
sync_g_t
ld_structured r10.w, r22.y, l(0), g0.xxxx
min r0.w, r0.w, r10.w
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r0.w
sync_g_t
ld_structured r10.w, r22.z, l(0), g0.xxxx
min r0.w, r0.w, r10.w
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r0.w
sync_g_t
ld_structured r10.w, r22.w, l(0), g0.xxxx
min r0.w, r0.w, r10.w
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r0.w
sync_g_t
xor r10.w, vThreadIDInGroupFlattened.x, l(16)
ld_structured r12.x, r10.w, l(0), g0.xxxx
min r0.w, r0.w, r12.x
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r0.w
sync_g_t
ld_structured r12.x, l(32), l(0), g0.xxxx
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r20.y
sync_g_t
ld_structured r13.y, r22.x, l(0), g0.xxxx
min r13.y, r13.y, r20.y
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r13.y
sync_g_t
ld_structured r18.w, r22.y, l(0), g0.xxxx
min r13.y, r13.y, r18.w
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r13.y
sync_g_t
ld_structured r18.w, r22.z, l(0), g0.xxxx
min r13.y, r13.y, r18.w
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r13.y
sync_g_t
ld_structured r18.w, r22.w, l(0), g0.xxxx
min r13.y, r13.y, r18.w
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r13.y
sync_g_t
ld_structured r18.w, r10.w, l(0), g0.xxxx
min r13.y, r13.y, r18.w
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r13.y
sync_g_t
ld_structured r18.w, l(32), l(0), g0.xxxx
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r20.z
sync_g_t
ld_structured r19.x, r22.x, l(0), g0.xxxx
min r19.x, r19.x, r20.z
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r19.x
sync_g_t
ld_structured r20.x, r22.y, l(0), g0.xxxx
min r19.x, r19.x, r20.x
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r19.x
sync_g_t
ld_structured r20.x, r22.z, l(0), g0.xxxx
min r19.x, r19.x, r20.x
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r19.x
sync_g_t
ld_structured r20.x, r22.w, l(0), g0.xxxx
min r19.x, r19.x, r20.x
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r19.x
sync_g_t
ld_structured r20.x, r10.w, l(0), g0.xxxx
min r19.x, r19.x, r20.x
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r19.x
sync_g_t
ld_structured r20.x, l(32), l(0), g0.xxxx
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r21.x
sync_g_t
ld_structured r20.y, r22.x, l(0), g0.xxxx
max r20.y, r20.y, r21.x
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r20.y
sync_g_t
ld_structured r20.z, r22.y, l(0), g0.xxxx
max r20.y, r20.z, r20.y
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r20.y
sync_g_t
ld_structured r20.z, r22.z, l(0), g0.xxxx
max r20.y, r20.z, r20.y
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r20.y
sync_g_t
ld_structured r20.z, r22.w, l(0), g0.xxxx
max r20.y, r20.z, r20.y
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r20.y
sync_g_t
ld_structured r20.z, r10.w, l(0), g0.xxxx
max r20.y, r20.z, r20.y
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r20.y
sync_g_t
ld_structured r20.z, l(32), l(0), g0.xxxx
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r21.y
sync_g_t
ld_structured r20.w, r22.x, l(0), g0.xxxx
max r20.w, r20.w, r21.y
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r20.w
sync_g_t
ld_structured r21.x, r22.y, l(0), g0.xxxx
max r20.w, r20.w, r21.x
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r20.w
sync_g_t
ld_structured r21.x, r22.z, l(0), g0.xxxx
max r20.w, r20.w, r21.x
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r20.w
sync_g_t
ld_structured r21.x, r22.w, l(0), g0.xxxx
max r20.w, r20.w, r21.x
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r20.w
sync_g_t
ld_structured r21.x, r10.w, l(0), g0.xxxx
max r20.w, r20.w, r21.x
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r20.w
sync_g_t
ld_structured r21.x, l(32), l(0), g0.xxxx
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r21.z
sync_g_t
ld_structured r21.y, r22.x, l(0), g0.xxxx
max r21.y, r21.y, r21.z
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r21.y
sync_g_t
ld_structured r21.z, r22.y, l(0), g0.xxxx
max r21.y, r21.z, r21.y
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r21.y
sync_g_t
ld_structured r21.z, r22.z, l(0), g0.xxxx
max r21.y, r21.z, r21.y
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r21.y
sync_g_t
ld_structured r21.z, r22.w, l(0), g0.xxxx
max r21.y, r21.z, r21.y
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r21.y
sync_g_t
ld_structured r10.w, r10.w, l(0), g0.xxxx
max r10.w, r10.w, r21.y
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r10.w
sync_g_t
ld_structured r21.y, l(32), l(0), g0.xxxx
if_z vThreadIDInGroupFlattened.x
  countbits r5.xw, r5.xxxw
  iadd r22.x, r5.w, r5.x
  min r23.y, r0.w, r12.x
  min r23.z, r13.y, r18.w
  min r23.w, r19.x, r20.x
  max r20.x, r20.z, r20.y
  max r20.y, r20.w, r21.x
  max r20.z, r10.w, r21.y
  ld_structured_indexable(structured_buffer, stride=44)(mixed,mixed,mixed,mixed) r0.w, vThreadGroupID.x, l(4), t11.xxxx
  mov r21.x, r1.w
  mov r21.y, r2.w
  mov r21.z, r3.w
  movc r23.xyz, r22.xxxx, r23.yzwy, r21.xyzx
  movc r20.xyz, r22.xxxx, r20.xyzx, r21.xyzx
  add r22.yzw, -r7.xxxx, r23.xxyz
  store_structured u26.xyzw, r0.w, l(0), r22.xyzw
  add r20.xyz, r7.xxxx, r20.xyzx
  store_structured u26.xyz, r0.w, l(16), r20.xyzx
endif
ld_structured_indexable(structured_buffer, stride=44)(mixed,mixed,mixed,mixed) r5.xw, vThreadGroupID.x, l(0), t11.xxxy
ld_structured_indexable(structured_buffer, stride=44)(mixed,mixed,mixed,mixed) r20.xyzw, vThreadGroupID.x, l(16), t11.xyzw
and r0.w, r5.x, l(2)
ine r7.x, r0.w, l(0)
ieq r21.xy, r6.zzzz, l(5, 6, 0, 0)
or r10.w, r21.y, r21.x
if_nz r19.y
  ieq r12.x, r20.x, vThreadIDInGroupFlattened.x
  and r12.x, r7.x, r12.x
  if_nz r12.x
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r17.xyzw, r0.y, l(944), t0.yzwx
    ishl r5.w, r5.w, l(6)
    iadd r15.w, r20.x, r5.w
    xor r5.w, r15.w, l(61)
    ushr r12.x, r15.w, l(16)
    xor r5.w, r5.w, r12.x
    imul null, r5.w, r5.w, l(9)
    ushr r12.x, r5.w, l(4)
    xor r5.w, r5.w, r12.x
    imul null, r5.w, r5.w, l(0x27d4eb2d)
    ushr r12.x, r5.w, l(15)
    xor r5.w, r5.w, r12.x
    movc r5.w, r19.y, r6.y, r5.w
    xor r6.y, r5.w, l(61)
    ushr r5.w, r5.w, l(16)
    xor r5.w, r5.w, r6.y
    imul null, r5.w, r5.w, l(9)
    ushr r6.y, r5.w, l(4)
    xor r5.w, r5.w, r6.y
    imul null, r5.w, r5.w, l(0x27d4eb2d)
    ushr r6.y, r5.w, l(15)
    xor r18.x, r5.w, r6.y
    and r21.xy, r5.yyyy, l(2048, 0x00040000, 0, 0)
    mov r8.yz, r9.zzwz
    mov r8.w, l(1.000000)
    dp4 r1.x, r8.xyzw, r1.xyzw
    dp4 r1.y, r8.xyzw, r2.xyzw
    dp4 r1.z, r8.xyzw, r3.xyzw
    movc r14.xyz, r21.xxxx, r1.xyzx, r8.xyzx
    switch r6.w
      case l(5)
      mov r9.x, r4.y
      mov r9.y, r10.x
      mov r9.z, r11.x
      break
      case l(6)
      mov r9.x, r4.z
      mov r9.y, r10.y
      mov r9.z, r11.y
      break
      case l(7)
      mov r9.x, r4.w
      mov r9.y, r10.z
      mov r9.z, r11.z
      break
      case l(8)
      mov r9.z, r17.w
      break
      default
      mov r9.xyz, l(0,0,0,0)
      break
    endswitch
    dp3 r1.x, r9.xyzx, r9.xyzx
    rsq r1.x, r1.x
    mul r34.xyz, r1.xxxx, r9.xyzx
    if_nz r21.y
      store_structured u14.x, r15.w, l(0), r11.w
    endif
    mov r18.y, l(-1)
    mov r0.z, l(0)
    mov r16.x, l(0)
    mov r4.x, l(-1)
  else
    and r1.x, r5.x, l(1)
    and r1.y, r10.w, l(1)
    movc r1.z, r10.w, l(2), l(1)
    movc r1.x, r1.x, r1.y, r1.z
    ult r1.x, vThreadIDInGroupFlattened.x, r1.x
    not r1.y, r7.x
    and r1.y, r1.y, r10.w
    iadd r1.z, r20.x, l(-1)
    ieq r1.z, r1.z, vThreadIDInGroupFlattened.x
    and r1.y, r1.z, r1.y
    or r1.x, r1.y, r1.x
    movc r4.x, r1.x, l(0), r4.x
  endif
  if_nz r10.w
    store_structured g4.xyz, vThreadIDInGroupFlattened.x, l(0), r14.xyzx
    sync_g_t
  endif
endif
bfi r1.x, l(1), vThreadIDInGroupFlattened.x, r4.x, l(0)
movc r1.y, r5.z, l(0), r1.x
and r1.x, r1.x, r5.z
if_z vThreadIDInGroupFlattened.x
  store_raw g1.xy, l(0), l(0,0,0,0)
endif
sync_g_t
atomic_or g1, l(0), r1.x
atomic_or g1, l(4), r1.y
sync_g_t
ld_raw r1.xy, l(0), g1.xyxx
countbits r1.zw, r1.xxxy
iadd r2.x, r1.w, r1.z
if_z vThreadIDInGroupFlattened.x
  and r1.zw, r5.yyyy, l(0, 0, 8192, 0x08000000)
  movc r1.z, r1.z, l(18), l(6)
  movc r1.z, r19.z, l(36), r1.z
  imul null, r3.x, r1.z, r2.x
  movc r3.yz, r10.wwww, l(0,2,-2,0), l(0,1,-1,0)
  ult r3.y, r3.y, r2.x
  iadd r3.z, r2.x, r3.z
  and r3.y, r3.z, r3.y
  movc r3.y, r19.y, r3.y, r2.x
  imul null, r1.z, r1.z, r3.y
  movc r0.w, r0.w, r1.z, r3.x
  imul null, r1.z, r20.y, l(5)
  atomic_iadd u15, r1.z, r0.w
  imm_atomic_iadd r2.z, u19, r20.y, r2.x
  movc r2.y, r1.w, r13.x, l(-1)
  mov r2.w, r20.z
  store_structured u18.xyzw, vThreadGroupID.x, l(0), r2.xwyz
  mov r13.w, l(0)
  store_structured u18.xyzw, vThreadGroupID.x, l(16), r13.zwww
  mov r0.w, r2.z
else
  mov r0.w, l(0)
endif
if_z r19.w
  and r1.z, r5.x, l(4)
  if_nz r1.z
    if_nz r4.x
      mov r3.x, cb0[r0.x + 4].w
      mov r3.y, cb0[r0.x + 5].w
      mov r3.z, cb0[r0.x + 6].w
      add r2.yzw, -r3.xxyz, r14.xxyz
      dp3 r3.x, r2.yzwy, r2.yzwy
      mov r3.y, vThreadIDInGroupFlattened.x
    else
      mov r3.xy, l(-340282346638528859811704183484516925440.000000,-1,0,0)
    endif
    store_structured g3.xy, vThreadIDInGroupFlattened.x, l(0), r3.xyxx
    mov r1.z, l(0)
    loop
      uge r1.w, r1.z, l(6)
      breakc_nz r1.w
      ishl r1.w, l(2), r1.z
      and r1.w, r1.w, vThreadIDInGroupFlattened.x
      ieq r2.y, r1.w, l(0)
      ine r1.w, r1.w, l(0)
      mov r2.z, l(0)
      loop
        ult r2.w, r1.z, r2.z
        breakc_nz r2.w
        sync_g_t
        iadd r2.w, r1.z, -r2.z
        ishl r2.w, l(1), r2.w
        and r3.x, r2.w, vThreadIDInGroupFlattened.x
        if_z r3.x
          ld_structured r3.xy, vThreadIDInGroupFlattened.x, l(0), g3.xyxx
          iadd r2.w, r2.w, vThreadIDInGroupFlattened.x
          ld_structured r3.zw, r2.w, l(0), g3.xxxy
          lt r4.yz, r3.xxzx, r3.zzxz
          and r4.y, r2.y, r4.y
          and r4.z, r1.w, r4.z
          or r4.y, r4.z, r4.y
          if_nz r4.y
            store_structured g3.xy, vThreadIDInGroupFlattened.x, l(0), r3.zwzz
            store_structured g3.xy, r2.w, l(0), r3.xyxx
          endif
        endif
        iadd r2.z, r2.z, l(1)
      endloop
      iadd r1.z, r1.z, l(1)
    endloop
    sync_g_t
    ld_structured r1.z, vThreadIDInGroupFlattened.x, l(4), g3.xxxx
    sync_g_t
    store_structured g3.x, r1.z, l(4), vThreadIDInGroupFlattened.x
    sync_g_t
    ld_structured r1.z, vThreadIDInGroupFlattened.x, l(4), g3.xxxx
  else
    ishl r1.w, l(1), vThreadIDInGroupFlattened.x
    iadd r1.w, r1.w, l(-1)
    movc r3.y, r5.z, l(0), r1.w
    movc r3.x, r5.z, r1.w, l(-1)
    and r1.xy, r1.xyxx, r3.xyxx
    countbits r1.xy, r1.xyxx
    iadd r1.x, r1.y, r1.x
    iadd r1.y, -r1.x, r2.x
    iadd r1.y, r1.y, l(-1)
    movc r1.z, r19.y, r1.x, r1.y
  endif
  store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r0.w
  sync_g_t
  if_nz r4.x
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r2.xyzw, r0.y, l(232), t0.xyzw
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r3.xyzw, r0.y, l(248), t0.zxyw
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r4.z, r0.y, l(264), t0.xxxx
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r0.w, r0.y, l(336), t0.xxxx
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r8.xyzw, r0.y, l(348), t0.wxyz
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r9.xyzw, r0.y, l(364), t0.zxyw
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r10.xyzw, r0.y, l(448), t0.xyzw
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r1.x, r0.y, l(464), t0.xxxx
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r11.xyzw, r0.y, l(488), t0.xyzw
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r13.yzw, r0.y, l(504), t0.xxyz
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r21.xyzw, r0.y, l(520), t0.xyzw
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r22.xyzw, r0.y, l(536), t0.xyzw
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r1.yw, r0.y, l(1016), t0.xxxy
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r23.xyzw, r0.y, l(1052), t0.xyzw
    ine r4.w, r19.y, l(0)
    and r5.x, r5.x, l(8)
    ine r5.x, r5.x, l(0)
    and r4.w, r4.w, r5.x
    ld_structured r5.x, l(0), l(0), g0.xxxx
    mov r14.w, l(1.000000)
    dp4 r24.x, r14.xyzw, cb0[r0.x + 0].xyzw
    dp4 r24.y, r14.xyzw, cb0[r0.x + 1].xyzw
    dp4 r24.z, r14.xyzw, cb0[r0.x + 2].xyzw
    dp3 r25.x, r17.xyzx, cb0[r0.x + 0].xyzx
    dp3 r25.y, r17.xyzx, cb0[r0.x + 1].xyzx
    dp3 r25.z, r17.xyzx, cb0[r0.x + 2].xyzx
    and r17.xyzw, r5.yyyy, l(8, 256, 0x10000000, 512)
    ne r26.xyz, r9.zxyz, l(0.000000, 0.000000, 0.000000, 0.000000)
    movc r5.z, r26.x, r9.z, l(3.14159250)
    ishl r5.w, r18.x, l(13)
    xor r5.w, r5.w, r18.x
    ushr r6.y, r5.w, l(17)
    xor r5.w, r5.w, r6.y
    ishl r6.y, r5.w, l(5)
    xor r5.w, r5.w, r6.y
    movc r27.x, r18.y, r18.x, r5.w
    utof r5.w, r27.x
    mad r6.y, r5.w, l(4.656612873E-10), l(-1.000000)
    mul r27.z, r5.z, r6.y
    mov r27.y, l(0)
    mov r18.z, r9.z
    movc r18.xyz, r17.xxxx, r27.xyzx, r18.xyzx
    if_nz r26.y
      switch r9.w
        case l(0)
        ishl r5.z, r18.x, l(13)
        xor r5.z, r5.z, r18.x
        ushr r9.z, r5.z, l(17)
        xor r5.z, r5.z, r9.z
        ishl r9.z, r5.z, l(5)
        xor r5.z, r5.z, r9.z
        movc r18.x, r18.y, r18.x, r5.z
        utof r5.z, r18.x
        mad r5.z, r5.z, l(4.656612873E-10), l(-1.000000)
        mul r9.x, r5.z, r9.x
        mov r18.y, l(0)
        break
        case l(1)
        ishl r5.z, r18.x, l(13)
        xor r5.z, r5.z, r18.x
        ushr r9.z, r5.z, l(17)
        xor r5.z, r5.z, r9.z
        ishl r9.z, r5.z, l(5)
        xor r5.z, r5.z, r9.z
        movc r18.x, r18.y, r18.x, r5.z
        utof r5.z, r18.x
        mul r5.z, r9.x, r5.z
        mul r9.x, r5.z, l(2.328306437E-10)
        mov r18.y, l(0)
        break
        case l(2)
        ishl r5.z, r18.x, l(13)
        xor r5.z, r5.z, r18.x
        ushr r9.z, r5.z, l(17)
        xor r5.z, r5.z, r9.z
        ishl r9.z, r5.z, l(5)
        xor r5.z, r5.z, r9.z
        movc r18.x, r18.y, r18.x, r5.z
        utof r5.z, r18.x
        mul r5.z, r5.z, l(2.328306437E-10)
        mul r9.x, -r5.z, r9.x
        mov r18.y, l(0)
        break
        case l(3)
        case l(4)
        ishl r5.z, r18.x, l(13)
        xor r5.z, r5.z, r18.x
        ushr r9.z, r5.z, l(17)
        xor r5.z, r5.z, r9.z
        ishl r9.z, r5.z, l(5)
        xor r5.z, r5.z, r9.z
        movc r18.x, r18.y, r18.x, r5.z
        utof r5.z, r18.x
        mul r5.z, r9.x, r5.z
        mul r5.z, r5.z, l(2.328306437E-10)
        ieq r9.z, r9.w, l(4)
        lt r9.w, l(0.000000), r25.x
        lt r12.x, r25.x, l(0.000000)
        iadd r14.w, -r9.w, r12.x
        itof r14.w, r14.w
        mul r14.w, r5.z, r14.w
        iadd r9.w, r9.w, -r12.x
        itof r9.w, r9.w
        mul r5.z, r5.z, r9.w
        movc r9.x, r9.z, r14.w, r5.z
        mov r18.y, l(0)
        break
        default
        break
      endswitch
      ine r5.z, r12.w, l(-2)
      if_nz r5.z
        ieq r9.zw, r12.wwww, l(0, 0, -2, -3)
        or r5.z, r9.w, r9.z
        if_z r5.z
          ld_structured_indexable(structured_buffer, stride=8)(mixed,mixed,mixed,mixed) r19.xw, r12.w, l(0), t4.xxxy
          utof r5.z, r12.w
          add r5.z, r5.z, l(0.500000)
          mul r16.y, r5.z, l(0.000244140625)
          sample_l_indexable(texture2d)(float,float,float,float) r5.z, r16.xyxx, t6.yzxw, s0, l(0.000000)
          mad r5.z, r19.x, r5.z, r19.w
        else
          f16tof32 r9.w, r23.z
          ushr r12.x, r23.z, l(16)
          f16tof32 r12.x, r12.x
          add r12.x, -r9.w, r12.x
          mad r12.x, r16.x, r12.x, r9.w
          movc r5.z, r9.z, r9.w, r12.x
        endif
        mad r18.z, r9.x, r5.z, r18.z
      else
        mad r18.z, r9.x, r0.z, r18.z
      endif
    endif
    ieq r9.xz, r6.zzwz, l(0, 0, 0, 0)
    and r5.z, r9.z, r9.x
    if_nz r5.z
      add r8.x, r8.x, r18.z
      mov r9.xzw, l(1.000000,0,0,0)
      mov r26.xyw, l(0,1.000000,0,0)
      mov r27.yzw, l(0,0,0,1.000000)
    else
      ld_structured r28.xyz, l(0), l(0), g4.xyzx
      ld_structured r29.xyz, l(1), l(0), g4.xyzx
      ld_structured r30.xyz, l(2), l(0), g4.xyzx
      ld_structured r31.xyz, l(3), l(0), g4.xyzx
      ld_structured r32.xyz, l(4), l(0), g4.xyzx
      ld_structured r33.xyz, l(5), l(0), g4.xyzx
      ld_structured r35.xyz, l(6), l(0), g4.xyzx
      ld_structured r36.xyz, l(7), l(0), g4.xyzx
      ld_structured r37.xyz, l(8), l(0), g4.xyzx
      ld_structured r38.xyz, l(9), l(0), g4.xyzx
      ld_structured r39.xyz, l(10), l(0), g4.xyzx
      ld_structured r40.xyz, l(11), l(0), g4.xyzx
      ld_structured r41.xyz, l(12), l(0), g4.xyzx
      ld_structured r42.xyz, l(13), l(0), g4.xyzx
      ld_structured r43.xyz, l(14), l(0), g4.xyzx
      ld_structured r44.xyz, l(15), l(0), g4.xyzx
      ld_structured r45.xyz, l(16), l(0), g4.xyzx
      ld_structured r46.xyz, l(17), l(0), g4.xyzx
      ld_structured r47.xyz, l(18), l(0), g4.xyzx
      ld_structured r48.xyz, l(19), l(0), g4.xyzx
      ld_structured r49.xyz, l(20), l(0), g4.xyzx
      ld_structured r50.xyz, l(21), l(0), g4.xyzx
      ld_structured r51.xyz, l(22), l(0), g4.xyzx
      ld_structured r52.xyz, l(23), l(0), g4.xyzx
      ld_structured r53.xyz, l(24), l(0), g4.xyzx
      ld_structured r54.xyz, l(25), l(0), g4.xyzx
      ld_structured r55.xyz, l(26), l(0), g4.xyzx
      ld_structured r56.xyz, l(27), l(0), g4.xyzx
      ld_structured r57.xyz, l(28), l(0), g4.xyzx
      ld_structured r58.xyz, l(29), l(0), g4.xyzx
      ld_structured r59.xyz, l(30), l(0), g4.xyzx
      ld_structured r60.xyz, l(31), l(0), g4.xyzx
      ld_structured r61.xyz, l(32), l(0), g4.xyzx
      ld_structured r62.xyz, l(33), l(0), g4.xyzx
      ld_structured r63.xyz, l(34), l(0), g4.xyzx
      ld_structured r64.xyz, l(35), l(0), g4.xyzx
      ld_structured r65.xyz, l(36), l(0), g4.xyzx
      ld_structured r66.xyz, l(37), l(0), g4.xyzx
      ld_structured r67.xyz, l(38), l(0), g4.xyzx
      ld_structured r68.xyz, l(39), l(0), g4.xyzx
      ld_structured r69.xyz, l(40), l(0), g4.xyzx
      ld_structured r70.xyz, l(41), l(0), g4.xyzx
      ld_structured r71.xyz, l(42), l(0), g4.xyzx
      ld_structured r72.xyz, l(43), l(0), g4.xyzx
      ld_structured r73.xyz, l(44), l(0), g4.xyzx
      ld_structured r74.xyz, l(45), l(0), g4.xyzx
      ld_structured r75.xyz, l(46), l(0), g4.xyzx
      ld_structured r76.xyz, l(47), l(0), g4.xyzx
      ld_structured r77.xyz, l(48), l(0), g4.xyzx
      ld_structured r78.xyz, l(49), l(0), g4.xyzx
      ld_structured r79.xyz, l(50), l(0), g4.xyzx
      ld_structured r80.xyz, l(51), l(0), g4.xyzx
      ld_structured r81.xyz, l(52), l(0), g4.xyzx
      ld_structured r82.xyz, l(53), l(0), g4.xyzx
      ld_structured r83.xyz, l(54), l(0), g4.xyzx
      ld_structured r84.xyz, l(55), l(0), g4.xyzx
      ld_structured r85.xyz, l(56), l(0), g4.xyzx
      ld_structured r86.xyz, l(57), l(0), g4.xyzx
      ld_structured r87.xyz, l(58), l(0), g4.xyzx
      ld_structured r88.xyz, l(59), l(0), g4.xyzx
      ld_structured r89.xyz, l(60), l(0), g4.xyzx
      ld_structured r90.xyz, l(61), l(0), g4.xyzx
      ld_structured r91.xyz, l(62), l(0), g4.xyzx
      ld_structured r92.xyz, l(63), l(0), g4.xyzx
      mov x0[0].xyz, r28.xyzx
      mov x0[1].xyz, r29.xyzx
      mov x0[2].xyz, r30.xyzx
      mov x0[3].xyz, r31.xyzx
      mov x0[4].xyz, r32.xyzx
      mov x0[5].xyz, r33.xyzx
      mov x0[6].xyz, r35.xyzx
      mov x0[7].xyz, r36.xyzx
      mov x0[8].xyz, r37.xyzx
      mov x0[9].xyz, r38.xyzx
      mov x0[10].xyz, r39.xyzx
      mov x0[11].xyz, r40.xyzx
      mov x0[12].xyz, r41.xyzx
      mov x0[13].xyz, r42.xyzx
      mov x0[14].xyz, r43.xyzx
      mov x0[15].xyz, r44.xyzx
      mov x0[16].xyz, r45.xyzx
      mov x0[17].xyz, r46.xyzx
      mov x0[18].xyz, r47.xyzx
      mov x0[19].xyz, r48.xyzx
      mov x0[20].xyz, r49.xyzx
      mov x0[21].xyz, r50.xyzx
      mov x0[22].xyz, r51.xyzx
      mov x0[23].xyz, r52.xyzx
      mov x0[24].xyz, r53.xyzx
      mov x0[25].xyz, r54.xyzx
      mov x0[26].xyz, r55.xyzx
      mov x0[27].xyz, r56.xyzx
      mov x0[28].xyz, r57.xyzx
      mov x0[29].xyz, r58.xyzx
      mov x0[30].xyz, r59.xyzx
      mov x0[31].xyz, r60.xyzx
      mov x0[32].xyz, r61.xyzx
      mov x0[33].xyz, r62.xyzx
      mov x0[34].xyz, r63.xyzx
      mov x0[35].xyz, r64.xyzx
      mov x0[36].xyz, r65.xyzx
      mov x0[37].xyz, r66.xyzx
      mov x0[38].xyz, r67.xyzx
      mov x0[39].xyz, r68.xyzx
      mov x0[40].xyz, r69.xyzx
      mov x0[41].xyz, r70.xyzx
      mov x0[42].xyz, r71.xyzx
      mov x0[43].xyz, r72.xyzx
      mov x0[44].xyz, r73.xyzx
      mov x0[45].xyz, r74.xyzx
      mov x0[46].xyz, r75.xyzx
      mov x0[47].xyz, r76.xyzx
      mov x0[48].xyz, r77.xyzx
      mov x0[49].xyz, r78.xyzx
      mov x0[50].xyz, r79.xyzx
      mov x0[51].xyz, r80.xyzx
      mov x0[52].xyz, r81.xyzx
      mov x0[53].xyz, r82.xyzx
      mov x0[54].xyz, r83.xyzx
      mov x0[55].xyz, r84.xyzx
      mov x0[56].xyz, r85.xyzx
      mov x0[57].xyz, r86.xyzx
      mov x0[58].xyz, r87.xyzx
      mov x0[59].xyz, r88.xyzx
      mov x0[60].xyz, r89.xyzx
      mov x0[61].xyz, r90.xyzx
      mov x0[62].xyz, r91.xyzx
      mov x0[63].xyz, r92.xyzx
      switch r6.z
        case l(0)
        mov r28.xyz, l(0,0,1.000000,0)
        mov r5.z, l(-1)
        break
        case l(2)
        case l(1)
        mov r28.x, cb0[r0.x + 0].y
        mov r28.y, cb0[r0.x + 1].y
        mov r28.z, cb0[r0.x + 2].y
        mov r5.z, l(-1)
        break
        case l(4)
        case l(3)
        dp3 r12.x, r25.xyzx, r25.xyzx
        lt r12.w, l(1.000000013E-10), r12.x
        rsq r12.x, r12.x
        mul r29.xyz, r12.xxxx, r25.xyzx
        movc r28.xyz, r12.wwww, r29.xyzx, l(0,1.000000,0,0)
        mov r5.z, l(-1)
        break
        case l(5)
        case l(6)
        iadd r12.x, vThreadIDInGroupFlattened.x, l(-1)
        mov r29.xyz, x0[r12.x + 0].xyzx
        ult r12.x, vThreadIDInGroupFlattened.x, r20.x
        mov r12.w, vThreadIDInGroupFlattened.x
        mov r30.xyz, x0[r12.w + 1].xyzx
        movc r30.xyz, r12.xxxx, r30.xyzx, r14.xyzx
        add r29.xyz, -r29.xyzx, r30.xyzx
        dp3 r12.x, r29.xyzx, r29.xyzx
        rsq r12.x, r12.x
        mul r29.xyz, r12.xxxx, r29.xyzx
        dp3 r28.x, r29.xyzx, cb0[r0.x + 0].xyzx
        dp3 r28.y, r29.xyzx, cb0[r0.x + 1].xyzx
        dp3 r28.z, r29.xyzx, cb0[r0.x + 2].xyzx
        mov r5.z, l(-1)
        break
        default
        mov r5.z, l(0)
        break
      endswitch
      and r26.xyw, r28.xyxz, r5.zzzz
      switch r6.w
        case l(0)
        mov r28.xyz, -r24.zxyz
        mov r29.xyz, l(0,0,0,0)
        mov r5.z, l(-1)
        break
        case l(1)
        dp3 r6.w, r25.xyzx, r25.xyzx
        lt r12.x, l(1.000000013E-10), r6.w
        rsq r6.w, r6.w
        mul r30.xyz, r6.wwww, r25.xyzx
        movc r29.xyz, r12.xxxx, r30.zxyz, l(0,0,1.000000,0)
        mov r5.z, l(0)
        break
        case l(2)
        mov r29.y, cb0[r0.x + 0].x
        mov r29.z, cb0[r0.x + 1].x
        mov r29.x, cb0[r0.x + 2].x
        mov r5.z, l(0)
        break
        case l(3)
        mov r29.y, cb0[r0.x + 0].y
        mov r29.z, cb0[r0.x + 1].y
        mov r29.x, cb0[r0.x + 2].y
        mov r5.z, l(0)
        break
        case l(4)
        mov r29.y, cb0[r0.x + 0].z
        mov r29.z, cb0[r0.x + 1].z
        mov r29.x, cb0[r0.x + 2].z
        mov r5.z, l(0)
        break
        case l(5)
        case l(6)
        case l(7)
        case l(8)
        dp3 r29.y, r34.xyzx, cb0[r0.x + 0].xyzx
        dp3 r29.z, r34.xyzx, cb0[r0.x + 1].xyzx
        dp3 r29.x, r34.xyzx, cb0[r0.x + 2].xyzx
        mov r5.z, l(0)
        break
        default
        mov r29.xyz, l(0,0,0,0)
        mov r5.z, l(0)
        break
      endswitch
      ne r6.w, r18.z, l(0.000000)
      sincos r12.x, r17.x, r18.z
      mul r30.xyz, r26.ywxy, r29.yzxy
      mad r30.xyz, r26.xywx, r29.zxyz, -r30.xyzx
      mul r30.xyz, r12.xxxx, r30.xyzx
      mad r30.xyz, r29.xyzx, r17.xxxx, r30.xyzx
      dp3 r12.x, r26.wxyw, r29.xyzx
      mul r31.xyz, r12.xxxx, r26.wxyw
      add r12.x, -r17.x, l(1.000000)
      mad r30.xyz, r31.xyzx, r12.xxxx, r30.xyzx
      movc r29.xyz, r6.wwww, r30.xyzx, r29.xyzx
      movc r28.xyz, r5.zzzz, r28.xyzx, r29.xyzx
      mul r29.xyz, r26.ywxy, r28.xyzx
      mad r28.xyz, r28.zxyz, r26.wxyw, -r29.xyzx
      dp3 r5.z, r28.xyzx, r28.xyzx
      rsq r5.z, r5.z
      mul r27.yzw, r5.zzzz, r28.xxyz
      mul r28.xyz, r26.wxyw, r27.zwyz
      mad r9.xzw, r26.yywx, r27.wwyz, -r28.xxyz
      switch r6.z
        case l(0)
        case l(2)
        case l(4)
        mov r28.xyz, r27.yzwy
        mov r29.xyz, r9.xzwx
        mov r27.yzw, r26.xxyw
        mov r9.xzw, r28.xxyz
        mov r26.xyw, r29.xyxz
        break
        case l(1)
        case l(3)
        case l(5)
        mov r28.xyz, -r27.yzwy
        mov r27.yzw, r9.xxzw
        mov r9.xzw, r28.xxyz
        break
        case l(6)
        break
        default
        mov r9.xzw, l(1.000000,0,0,0)
        mov r26.xyw, l(0,1.000000,0,0)
        mov r27.yzw, l(0,0,0,1.000000)
        break
      endswitch
    endif
    if_nz r17.y
      dp3 r28.x, r27.yzwy, cb0[r0.x + 4].xyzx
      dp3 r28.y, r27.yzwy, cb0[r0.x + 5].xyzx
      dp3 r28.z, r27.yzwy, cb0[r0.x + 6].xyzx
    else
      mov r28.xyz, l(0,0,1.000000,0)
    endif
    lt r5.z, l(0.000000), r13.y
    ishl r6.w, r18.x, l(13)
    xor r6.w, r6.w, r18.x
    ushr r12.x, r6.w, l(17)
    xor r6.w, r6.w, r12.x
    ishl r12.x, r6.w, l(5)
    xor r6.w, r6.w, r12.x
    movc r6.w, r18.y, r18.x, r6.w
    utof r12.x, r6.w
    mad r12.x, r12.x, l(4.656612873E-10), l(-1.000000)
    and r12.x, r5.z, r12.x
    switch r11.z
      case l(0)
      mov r11.z, l(0)
      break
      case l(1)
      mov r11.z, r16.x
      break
      case l(2)
      lt r12.w, l(0.000010), |r11.w|
      lt r14.w, l(0.000000), r11.w
      lt r17.x, r11.w, l(0.000000)
      iadd r14.w, -r14.w, r17.x
      itof r14.w, r14.w
      mul r14.w, r14.w, l(0.000100)
      movc r12.w, r12.w, r11.w, r14.w
      mul r14.w, r12.w, r16.x
      exp r14.w, r14.w
      add r14.w, r14.w, l(-1.000000)
      exp r12.w, r12.w
      add r12.w, r12.w, l(-1.000000)
      div r12.w, l(1.000000, 1.000000, 1.000000, 1.000000), r12.w
      mul r12.w, r12.w, r14.w
      max r11.z, r12.w, l(0.000000)
      break
      case l(3)
      add r11.w, |r11.w|, l(6.000000)
      add r12.w, -r16.x, l(0.500000)
      mul r11.w, r11.w, r12.w
      exp r11.w, r11.w
      add r11.w, r11.w, l(1.000000)
      div r11.z, l(1.000000, 1.000000, 1.000000, 1.000000), r11.w
      break
      default
      mov r11.z, l(0)
      break
    endswitch
    add r11.y, -r11.x, r11.y
    mad r11.x, r11.z, r11.y, r11.x
    mul r11.y, r13.y, r11.x
    mad r11.y, r11.y, r12.x, r11.x
    movc r5.z, r5.z, r11.y, r11.x
    ine r11.x, r17.z, l(0)
    lt r11.y, r24.z, l(0.000000)
    and r11.x, r11.y, r11.x
    dp3 r11.y, r24.xyzx, r24.xyzx
    sqrt r11.y, r11.y
    add r11.y, -r13.z, r11.y
    mul_sat r11.y, r21.y, r11.y
    add r11.z, -r13.w, r21.x
    mad r11.y, r11.y, r11.z, r13.w
    mul r11.y, r5.z, r11.y
    movc r5.z, r11.x, r11.y, r5.z
    mul r5.z, r8.w, r5.z
    ieq r11.xyzw, r12.zzyy, l(-2, -3, -2, -3)
    or r11.yw, r11.yyyw, r11.xxxz
    if_z r11.y
      ld_structured_indexable(structured_buffer, stride=8)(mixed,mixed,mixed,mixed) r12.xw, r12.z, l(0), t4.xxxy
      utof r8.w, r12.z
      add r8.w, r8.w, l(0.500000)
      mul r16.z, r8.w, l(0.000244140625)
      sample_l_indexable(texture2d)(float,float,float,float) r8.w, r16.xzxx, t6.yzwx, s0, l(0.000000)
      mad r8.w, r12.x, r8.w, r12.w
    else
      f16tof32 r11.y, r23.y
      ushr r12.x, r23.y, l(16)
      f16tof32 r12.x, r12.x
      add r12.x, -r11.y, r12.x
      mad r12.x, r16.x, r12.x, r11.y
      movc r8.w, r11.x, r11.y, r12.x
    endif
    mul r5.z, r5.z, r8.w
    lt r8.w, l(0.000010), |r5.z|
    lt r11.x, l(0.000000), r5.z
    lt r11.y, r5.z, l(0.000000)
    iadd r11.x, -r11.x, r11.y
    itof r11.x, r11.x
    mul r11.x, r11.x, l(0.000100)
    movc r5.z, r8.w, r5.z, r11.x
    mul r18.xyz, r5.zzzz, r9.wxzw
    mul r9.xzw, r5.zzzz, r26.xxyw
    mul r12.xzw, r5.zzzz, r27.yyzw
    ieq r8.w, r19.z, l(0)
    lt r11.x, l(0.000000), r8.y
    and r8.w, r8.w, r11.x
    if_nz r8.w
      dp3 r8.w, r25.xyzx, r25.xyzx
      lt r11.x, l(0.000000), r8.w
      if_nz r11.x
        rsq r11.x, r8.w
        mul r8.w, r8.w, r11.x
        mul r13.yzw, r11.xxxx, r25.xxyz
        lt r11.x, l(0.000000), r8.z
        if_nz r11.x
          min r8.w, r8.z, r8.w
          ine r11.x, r1.y, l(-2)
          if_nz r11.x
            div r8.z, l(1.000000, 1.000000, 1.000000, 1.000000), r8.z
            mul r11.x, r8.z, r8.w
            ieq r17.xy, r1.yyyy, l(-2, -3, 0, 0)
            or r8.z, r17.y, r17.x
            if_z r8.z
              ld_structured_indexable(structured_buffer, stride=8)(mixed,mixed,mixed,mixed) r17.yz, r1.y, l(0), t4.xxyx
              utof r1.y, r1.y
              add r1.y, r1.y, l(0.500000)
              mul r11.y, r1.y, l(0.000244140625)
              sample_l_indexable(texture2d)(float,float,float,float) r1.y, r11.xyxx, t6.yxzw, s0, l(0.000000)
              mad r1.y, r17.y, r1.y, r17.z
            else
              f16tof32 r8.z, r23.w
              ushr r11.y, r23.w, l(16)
              f16tof32 r11.y, r11.y
              mov_sat r11.x, r11.x
              add r11.y, -r8.z, r11.y
              mad r11.x, r11.x, r11.y, r8.z
              movc r1.y, r17.x, r8.z, r11.x
            endif
            mul r8.w, r1.y, r8.w
          endif
        endif
        mul r1.y, r8.y, r8.w
        mul r8.yzw, r13.yyzw, r1.yyyy
        mad r17.xyz, r8.yyyy, r13.yzwy, l(1.000000, 0.000000, 0.000000, 0.000000)
        mad r23.yzw, r8.zzzz, r13.yyzw, l(0.000000, 0.000000, 1.000000, 0.000000)
        mad r25.xyz, r8.wwww, r13.yzwy, l(0.000000, 0.000000, 1.000000, 0.000000)
        dp3 r8.y, r24.xyzx, r13.yzwy
        mul r1.y, -r1.y, r8.y
        mul r8.yzw, r13.yyzw, r1.yyyy
        mov r29.x, r17.x
        mov r29.y, r23.y
        mov r29.z, r25.x
        dp3 r30.x, r18.yzxy, r29.xyzx
        mov r31.x, r17.y
        mov r31.y, r23.z
        mov r31.z, r25.y
        dp3 r32.x, r18.yzxy, r31.xyzx
        mov r25.x, r17.z
        mov r25.y, r23.w
        dp3 r18.x, r18.yzxy, r25.xyzx
        dp3 r30.y, r9.xzwx, r29.xyzx
        dp3 r32.y, r9.xzwx, r31.xyzx
        dp3 r18.y, r9.xzwx, r25.xyzx
        dp3 r30.z, r12.xzwx, r29.xyzx
        dp3 r32.z, r12.xzwx, r31.xyzx
        dp3 r18.z, r12.xzwx, r25.xyzx
        mov r24.w, l(1.000000)
        mov r29.w, r8.y
        dp4 r30.w, r24.xyzw, r29.xyzw
        mov r31.w, r8.z
        dp4 r32.w, r24.xyzw, r31.xyzw
        mov r25.w, r8.w
        dp4 r18.w, r24.xyzw, r25.xyzw
      else
        mov r30.x, r18.y
        mov r32.x, r18.z
        mov r30.y, r9.x
        mov r32.y, r9.z
        mov r18.y, r9.w
        mov r30.z, r12.x
        mov r32.z, r12.z
        mov r18.z, r12.w
        mov r30.w, r24.x
        mov r32.w, r24.y
        mov r18.w, r24.z
      endif
    else
      mov r30.x, r18.y
      mov r32.x, r18.z
      mov r30.y, r9.x
      mov r32.y, r9.z
      mov r18.y, r9.w
      mov r30.z, r12.x
      mov r32.z, r12.z
      mov r18.z, r12.w
      mov r30.w, r24.x
      mov r32.w, r24.y
      mov r18.w, r24.z
    endif
    mov r4.xy, r3.xwxx
    lt r8.yzw, l(0.000000, 0.000000, 0.000000, 0.000000), r4.xxyz
    or r1.y, r8.z, r8.y
    or r1.y, r8.w, r1.y
    and r3.w, r6.w, l(255)
    utof r3.w, r3.w
    mad r17.x, r3.w, l(0.00784313772), l(-1.000000)
    ubfe r8.yz, l(0, 8, 8, 0), l(0, 8, 16, 0), r6.wwww
    utof r8.yz, r8.yyzy
    mad r17.yz, r8.yyzy, l(0.000000, 0.00784313772, 0.00784313772, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000)
    mov r3.x, r2.w
    mul r8.yzw, r3.xxyz, r17.xxyz
    mad r4.xyz, r8.yzwy, r4.xyzx, r3.xyzx
    movc r3.xyz, r1.yyyy, r4.xyzx, r3.xyzx
    ne r4.xyz, r2.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
    or r1.y, r4.y, r4.x
    or r1.y, r4.z, r1.y
    ne r4.xyz, r3.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
    or r2.w, r4.y, r4.x
    or r2.w, r4.z, r2.w
    ne r4.x, r8.x, l(0.000000)
    or r2.w, r1.y, r2.w
    or r2.w, r4.x, r2.w
    sincos r8.x, r9.x, r8.x
    mov r17.x, -r8.x
    mov r17.y, r9.x
    mul r4.yz, r3.xxxx, r17.yyxy
    mov r17.z, r8.x
    mul r8.xy, r3.yyyy, r17.zyzz
    mov r3.w, l(0)
    movc r24.xy, r4.xxxx, r4.yzyy, r3.xwxx
    movc r24.zw, r4.xxxx, r8.xxxy, r3.wwwy
    add r2.xyz, -r2.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
    dp2 r8.x, r2.xyxx, r24.xzxx
    dp2 r8.y, r2.xyxx, r24.ywyy
    mul r8.z, r3.z, r2.z
    mov r8.w, l(1.000000)
    movc r8.xyzw, r1.yyyy, r8.xyzw, l(0,0,0,1.000000)
    dp2 r2.x, r24.xyxx, r30.xyxx
    dp2 r2.y, r24.xyxx, r32.xyxx
    dp2 r2.z, r24.xyxx, r18.xyxx
    dp2 r4.x, r24.zwzz, r30.xyxx
    dp2 r4.y, r24.zwzz, r32.xyxx
    dp2 r4.z, r24.zwzz, r18.xyxx
    mul r17.x, r30.z, r3.z
    mul r17.y, r32.z, r3.z
    mul r17.z, r18.z, r3.z
    dp4 r24.x, r8.xyzw, r30.xyzw
    dp4 r24.y, r8.xyzw, r32.xyzw
    dp4 r24.z, r8.xyzw, r18.xyzw
    mov r8.x, r30.x
    mov r8.y, r32.x
    mov r8.z, r18.x
    movc r2.xyz, r2.wwww, r2.xyzx, r8.xyzx
    mov r8.x, r30.y
    mov r8.y, r32.y
    mov r8.z, r18.y
    movc r4.xyz, r2.wwww, r4.xyzx, r8.xyzx
    mov r18.x, r30.z
    mov r18.y, r32.z
    movc r8.xyz, r2.wwww, r17.xyzx, r18.xyzx
    mov r18.x, r30.w
    mov r18.y, r32.w
    movc r9.xzw, r2.wwww, r24.xxyz, r18.xxyw
    dp3 r1.y, r9.xzwx, r9.xzwx
    sqrt r1.y, r1.y
    div r1.y, r9.y, r1.y
    mad r12.xzw, -r9.xxzw, r1.yyyy, r9.xxzw
    movc r15.xyz, r26.zzzz, r12.xzwx, r9.xzwx
    if_z r17.w
      ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r1.y, r0.y, l(1036), t0.xxxx
      ine r2.w, r1.y, l(-2)
      if_nz r2.w
        ld_structured_indexable(structured_buffer, stride=24)(mixed,mixed,mixed,mixed) r9.xyzw, r1.y, l(0), t5.xyzw
        ld_structured_indexable(structured_buffer, stride=24)(mixed,mixed,mixed,mixed) r17.xy, r1.y, l(16), t5.xyxx
        utof r1.y, r1.y
        add r1.y, r1.y, l(0.500000)
        mul r16.w, r1.y, l(0.000976562500)
        sample_l_indexable(texture2d)(float,float,float,float) r12.xzw, r16.xwxx, t7.xwyz, s0, l(0.000000)
        mov r17.z, r9.w
        mad r9.xyz, r9.xyzx, r12.xzwx, r17.zxyz
      else
        ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r9.xyz, r0.y, l(1084), t0.xyzx
      endif
    else
      mov r9.xyz, l(1.000000,1.000000,1.000000,0)
    endif
    and r17.xyzw, r5.yyyy, l(0x00020000, 0x40000000, 4, 0x08000000)
    if_nz r17.x
      ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r18.xyzw, r0.y, l(396), t0.xyzw
      ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r1.y, r15.w, l(0), u13.xxxx
      ubfe r11.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), r1.yyyy
      utof r11.xy, r11.xyxx
      mul r24.xy, r11.xyxx, l(0.00392156886, 0.00392156886, 0.000000, 0.000000)
      and r1.y, r1.y, l(255)
      utof r1.y, r1.y
      mul r24.z, r1.y, l(0.00392156886)
      lt r1.y, l(0.000000), r18.w
      and r2.w, r6.y, r1.y
      switch r18.y
        case l(0)
        mov r3.w, l(0)
        break
        case l(1)
        mov r3.w, r16.x
        break
        case l(2)
        lt r6.w, l(0.000010), |r18.z|
        lt r8.w, l(0.000000), r18.z
        lt r9.w, r18.z, l(0.000000)
        iadd r8.w, -r8.w, r9.w
        itof r8.w, r8.w
        mul r8.w, r8.w, l(0.000100)
        movc r6.w, r6.w, r18.z, r8.w
        mul r8.w, r6.w, r16.x
        exp r8.w, r8.w
        add r8.w, r8.w, l(-1.000000)
        exp r6.w, r6.w
        add r6.w, r6.w, l(-1.000000)
        div r6.w, l(1.000000, 1.000000, 1.000000, 1.000000), r6.w
        mul r6.w, r6.w, r8.w
        max r3.w, r6.w, l(0.000000)
        break
        case l(3)
        add r6.w, |r18.z|, l(6.000000)
        add r8.w, -r16.x, l(0.500000)
        mul r6.w, r6.w, r8.w
        exp r6.w, r6.w
        add r6.w, r6.w, l(1.000000)
        div r3.w, l(1.000000, 1.000000, 1.000000, 1.000000), r6.w
        break
        default
        mov r3.w, l(0)
        break
      endswitch
      add r6.w, -r7.w, r18.x
      mad r3.w, r3.w, r6.w, r7.w
      mul r6.w, r18.w, r3.w
      mad r2.w, r6.w, r2.w, r3.w
      movc_sat r1.y, r1.y, r2.w, r3.w
      add r12.xzw, r9.xxyz, -r24.xxyz
      mad r9.xyz, r1.yyyy, r12.xzwx, r24.xyzx
    endif
    mul_sat r9.xyz, r7.yyyy, r9.xyzx
    ne r1.y, r7.z, l(0.000000)
    and r2.w, r27.x, l(255)
    utof r2.w, r2.w
    mad r18.x, r2.w, l(0.00784313772), l(-1.000000)
    ubfe r7.yw, l(0, 8, 0, 8), l(0, 8, 0, 16), r27.xxxx
    utof r7.yw, r7.yyyw
    mad r18.yz, r7.yywy, l(0.000000, 0.00784313772, 0.00784313772, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000)
    mad_sat r7.yzw, r7.zzzz, r18.xxyz, r9.xxyz
    movc r7.yzw, r1.yyyy, r7.yyzw, r9.xxyz
    lt r1.y, l(0.000000), r1.x
    and r2.w, r6.y, r1.y
    switch r10.z
      case l(0)
      mov r3.w, l(0)
      break
      case l(1)
      mov r3.w, r16.x
      break
      case l(2)
      lt r6.y, l(0.000010), |r10.w|
      lt r6.w, l(0.000000), r10.w
      lt r8.w, r10.w, l(0.000000)
      iadd r6.w, -r6.w, r8.w
      itof r6.w, r6.w
      mul r6.w, r6.w, l(0.000100)
      movc r6.y, r6.y, r10.w, r6.w
      mul r6.w, r6.y, r16.x
      exp r6.w, r6.w
      exp r6.y, r6.y
      add r6.yw, r6.yyyw, l(0.000000, -1.000000, 0.000000, -1.000000)
      div r6.y, l(1.000000, 1.000000, 1.000000, 1.000000), r6.y
      mul r6.y, r6.y, r6.w
      max r3.w, r6.y, l(0.000000)
      break
      case l(3)
      add r6.y, |r10.w|, l(6.000000)
      add r6.w, -r16.x, l(0.500000)
      mul r6.y, r6.w, r6.y
      exp r6.y, r6.y
      add r6.y, r6.y, l(1.000000)
      div r3.w, l(1.000000, 1.000000, 1.000000, 1.000000), r6.y
      break
      default
      mov r3.w, l(0)
      break
    endswitch
    add r6.y, -r10.x, r10.y
    mad r3.w, r3.w, r6.y, r10.x
    mul r1.x, r1.x, r3.w
    mad r1.x, r1.x, r2.w, r3.w
    movc_sat r1.x, r1.y, r1.x, r3.w
    if_z r11.w
      ld_structured_indexable(structured_buffer, stride=8)(mixed,mixed,mixed,mixed) r6.yw, r12.y, l(0), t4.xxxy
      utof r1.y, r12.y
      add r1.y, r1.y, l(0.500000)
      mul r16.y, r1.y, l(0.000244140625)
      sample_l_indexable(texture2d)(float,float,float,float) r1.y, r16.xyxx, t6.yxzw, s0, l(0.000000)
      mad r1.y, r6.y, r1.y, r6.w
    else
      f16tof32 r2.w, r23.x
      ushr r3.w, r23.x, l(16)
      f16tof32 r3.w, r3.w
      add r3.w, -r2.w, r3.w
      mad r3.w, r16.x, r3.w, r2.w
      movc r1.y, r11.z, r2.w, r3.w
    endif
    mul r1.x, r1.y, r1.x
    movc r1.x, r17.y, l(1.000000), r1.x
    ine r1.y, r17.z, l(0)
    ine r2.w, r6.z, l(0)
    and r1.y, r1.y, r2.w
    dp3 r2.w, r8.xyzx, r15.xyzx
    dp3 r3.w, r8.xyzx, r8.xyzx
    sqrt r3.w, r3.w
    dp3 r6.y, r15.xyzx, r15.xyzx
    sqrt r6.y, r6.y
    mul r6.y, r3.w, r6.y
    div r2.w, r2.w, r6.y
    min r2.w, |r2.w|, l(1.000000)
    ne r6.y, r0.w, l(0.000000)
    mul r6.z, r0.w, r2.w
    exp r6.z, r6.z
    add r6.z, r6.z, l(-1.000000)
    exp r0.w, r0.w
    add r0.w, r0.w, l(-1.000000)
    div r0.w, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w
    mul r0.w, r0.w, r6.z
    max r0.w, r0.w, l(0.000000)
    movc r0.w, r6.y, r0.w, r2.w
    mul r0.w, r0.w, r1.x
    movc r0.w, r1.y, r0.w, r1.x
    lt r1.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r22.zwzz
    div r6.yz, l(1.000000, 1.000000, 1.000000, 1.000000), r22.zzwz
    lt r9.xy, r22.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000)
    movc r9.xy, r9.xyxx, cb0[r0.x + 13].xyxx, r22.xyxx
    add r2.w, -r9.x, -r15.z
    mul_sat r2.w, r6.y, r2.w
    movc r1.x, r1.x, r2.w, l(1.000000)
    add r2.w, r15.z, r9.y
    mul_sat r2.w, r6.z, r2.w
    mul r2.w, r1.x, r2.w
    movc r1.x, r1.y, r2.w, r1.x
    mul r1.y, r0.w, r1.x
    lt r2.w, r1.y, l(0.040450)
    mul r1.y, r1.y, l(0.0773993805)
    mad r0.w, r0.w, r1.x, l(0.055000)
    mul r0.w, r0.w, l(0.947867334)
    log r0.w, r0.w
    mul r0.w, r0.w, l(2.400000)
    exp r0.w, r0.w
    movc r0.w, r2.w, r1.y, r0.w
    and r1.x, r7.x, r4.w
    ult r1.y, l(0), r20.x
    iadd r2.w, r20.x, l(-1)
    ieq r2.w, r2.w, vThreadIDInGroupFlattened.x
    and r1.y, r1.y, r2.w
    ieq r2.w, r20.x, vThreadIDInGroupFlattened.x
    or r1.y, r1.y, r2.w
    movc r1.y, r1.y, l(0), r0.w
    movc r0.w, r1.x, r1.y, r0.w
    ine r1.x, r21.z, l(1)
    if_nz r1.x
      ne r1.x, r21.w, l(0.000000)
      if_nz r1.x
        ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r0.y, r0.y, l(1068), t0.xxxx
        utof r1.x, r21.z
        mul r1.y, |r21.w|, r1.x
        if_nz r19.y
          and r2.w, r5.y, l(0x00080000)
          if_nz r2.w
            mul r2.w, r6.x, r21.w
            ge r2.w, r2.w, -r2.w
            movc r2.w, r2.w, r21.w, -r21.w
            div r4.w, l(1.000000, 1.000000, 1.000000, 1.000000), r2.w
            mul r4.w, r4.w, r6.x
            frc r4.w, r4.w
            mul r6.y, r2.w, r4.w
            ieq r9.xy, r1.wwww, l(-2, -3, 0, 0)
            or r2.w, r9.y, r9.x
            if_z r2.w
              ld_structured_indexable(structured_buffer, stride=8)(mixed,mixed,mixed,mixed) r9.yz, r1.w, l(0), t4.xxyx
              utof r2.w, r1.w
              add r2.w, r2.w, l(0.500000)
              mul r6.z, r2.w, l(0.000244140625)
              sample_l_indexable(texture2d)(float,float,float,float) r2.w, r6.yzyy, t6.yzwx, s0, l(0.000000)
              mad r6.x, r9.y, r2.w, r9.z
            else
              f16tof32 r2.w, r0.y
              ushr r4.w, r0.y, l(16)
              f16tof32 r4.w, r4.w
              mov_sat r6.y, r6.y
              add r4.w, -r2.w, r4.w
              mad r4.w, r6.y, r4.w, r2.w
              movc r6.x, r9.x, r2.w, r4.w
            endif
          endif
          mul r2.w, r1.y, r6.x
        else
          and r6.xy, r5.yyyy, l(128, 0x00080000, 0, 0)
          mad r1.x, r1.x, |r21.w|, l(-1.000000)
          max r1.x, r1.x, l(0.000000)
          movc r1.y, r6.x, r1.x, r1.y
          if_nz r6.y
            ieq r6.xy, r1.wwww, l(-2, -3, 0, 0)
            or r1.x, r6.y, r6.x
            if_z r1.x
              ld_structured_indexable(structured_buffer, stride=8)(mixed,mixed,mixed,mixed) r6.yz, r1.w, l(0), t4.xxyx
              utof r1.x, r1.w
              add r1.x, r1.x, l(0.500000)
              mul r16.y, r1.x, l(0.000244140625)
              sample_l_indexable(texture2d)(float,float,float,float) r1.x, r16.xyxx, t6.xyzw, s0, l(0.000000)
              mad r16.x, r6.y, r1.x, r6.z
            else
              f16tof32 r1.x, r0.y
              ushr r0.y, r0.y, l(16)
              f16tof32 r0.y, r0.y
              add r0.y, -r1.x, r0.y
              mad r0.y, r16.x, r0.y, r1.x
              movc r16.x, r6.x, r1.x, r0.y
            endif
          endif
          mul r2.w, r1.y, r16.x
        endif
        and r0.y, r5.y, l(64)
        mul r1.x, r1.y, r5.w
        mad r1.x, r1.x, l(2.328306437E-10), r2.w
        movc r0.y, r0.y, r1.x, r2.w
      else
        and r1.x, r5.y, l(64)
        utof r1.y, r21.z
        mul r1.y, r1.y, r5.w
        mul r1.y, r1.y, l(2.328306437E-10)
        movc r0.y, r1.x, r1.y, l(0)
      endif
      ftoi r1.x, r0.y
      udiv null, r1.x, r1.x, r21.z
      iadd r1.w, r1.x, l(1)
      udiv null, r1.y, r1.w, r21.z
      frc r0.y, r0.y
      lt r1.w, r21.w, l(0.000000)
      iadd r5.yw, -r1.xxxy, r21.zzzz
      iadd r5.yw, r5.yyyw, l(0, -1, 0, -1)
      movc r1.xy, r1.wwww, r5.ywyy, r1.xyxx
    else
      mov r1.xy, l(0,0,0,0)
      mov r0.y, l(0)
    endif
    iadd r1.z, r1.z, r5.x
    iadd r5.y, r1.z, r20.z
    bfi r1.y, l(8), l(16), r1.y, l(0)
    bfi r1.x, l(8), l(24), r1.x, r1.y
    mul r0.y, r0.y, l(65535.000000)
    ftou r0.y, r0.y
    iadd r6.x, r1.x, r0.y
    f32tof16 r1.xyw, r7.yzyw
    imad r6.y, r1.y, l(0x00010000), r1.x
    f32tof16 r0.y, r0.w
    imad r6.z, r0.y, l(0x00010000), r1.w
    f32tof16 r1.xyw, r2.xyxz
    imad r6.w, r1.y, l(0x00010000), r1.x
    f32tof16 r7.xyz, r4.xyzx
    imad r9.x, r7.x, l(0x00010000), r1.w
    imad r9.y, r7.z, l(0x00010000), r7.y
    f32tof16 r1.xyw, r28.xyxz
    imad r9.z, r1.y, l(0x00010000), r1.x
    f32tof16 r0.y, r0.z
    imad r9.w, r0.y, l(0x00010000), r1.w
    f32tof16 r0.y, r3.w
    movc r0.y, r19.z, r0.y, l(0)
    store_structured u16.xyzw, r5.y, l(0), r15.xyzw
    store_structured u16.xyzw, r5.y, l(16), r6.xyzw
    store_structured u16.xyzw, r5.y, l(32), r9.xyzw
    store_structured u16.x, r5.y, l(48), r0.y
    if_nz r19.z
      mul r0.yzw, r5.zzzz, r3.xxyz
      dp3 r1.x, r2.xyzx, cb0[r0.x + 4].xyzx
      dp3 r1.y, r2.xyzx, cb0[r0.x + 5].xyzx
      dp3 r1.w, r2.xyzx, cb0[r0.x + 6].xyzx
      dp3 r2.x, r4.xyzx, cb0[r0.x + 4].xyzx
      dp3 r2.y, r4.xyzx, cb0[r0.x + 5].xyzx
      dp3 r2.z, r4.xyzx, cb0[r0.x + 6].xyzx
      dp3 r2.w, r8.xyzx, cb0[r0.x + 4].xyzx
      dp3 r3.x, r8.xyzx, cb0[r0.x + 5].xyzx
      dp3 r3.y, r8.xyzx, cb0[r0.x + 6].xyzx
      mov r15.w, l(1.000000)
      dp4 r4.x, r15.xyzw, cb0[r0.x + 4].xyzw
      dp4 r4.y, r15.xyzw, cb0[r0.x + 5].xyzw
      dp4 r4.z, r15.xyzw, cb0[r0.x + 6].xyzw
      mul r0.yzw, r0.yyzw, r0.yyzw
      div r0.yzw, l(1.000000, 1.000000, 1.000000, 1.000000), r0.yyzw
      mul r6.xyz, r1.xywx, r0.yyyy
      mul r7.x, r2.w, -r0.w
      mul r7.yz, r3.xxyx, -r0.wwww
      mul r3.xyz, r2.xyzx, r0.zzzz
      dp3 r6.w, r4.xyzx, r6.xyzx
      dp3 r7.w, r4.xyzx, r7.xyzx
      dp3 r3.w, r4.xyzx, r3.xyzx
      iadd r0.y, r1.z, r20.w
      mov r6.w, -r6.w
      store_structured u17.xyzw, r0.y, l(0), r6.xyzw
      mov r7.w, -r7.w
      store_structured u17.xyzw, r0.y, l(16), r7.xyzw
      mov r3.w, -r3.w
      store_structured u17.xyzw, r0.y, l(32), r3.xyzw
      store_structured u17.xyzw, r0.y, l(48), l(0,0,0,1.000000)
    endif
    if_nz r17.w
      mov r2.x, cb0[r0.x + 4].w
      mov r2.y, cb0[r0.x + 5].w
      mov r2.z, cb0[r0.x + 6].w
      add r0.xyz, -r2.xyzx, r14.xyzx
      dp3 r5.x, r0.xyzx, r0.xyzx
      iadd r0.x, r1.z, r13.x
      store_structured u21.xy, r0.x, l(0), r5.xyxx
    endif
  endif
endif
ret
// Approximately 0 instruction slots used
