// AUTOMATICALLY CONVERTED FROM SHADER FIXES 
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v0.6.63 on Sun Oct  9 13:48:44 2022
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_VertexID              0   x           0   VERTID    uint   x
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION              0   xyzw        0      POS   float   xyzw
// POSITION                 0   xyz         1     NONE   float   xyz
// NORMAL                   0   xyz         2     NONE   float   xyz
// TEXCOORD                 0   xy          3     NONE   float   xy
// TEXCOORD                 1   xyz         4     NONE   float   xyz
// COLOR                    0   xyzw        5     NONE   float   xyzw
// COLOR                    1   xyzw        6     NONE   float   xyzw
// TEXCOORD                 2   xyzw        7     NONE   float   xyzw
// TEXCOORD                 3   x           8     NONE    uint   x
// TEXCOORD                 7   xyz         9     NONE   float   xyz
// TEXCOORD                 8   xyz        10     NONE   float   xyz
// TEXCOORD                 9   xyz        11     NONE   float   xyz
// TEXCOORD                10   xyz        12     NONE   float   xyz
// P                        0   x          13  RTINDEX    uint   x
//
vs_5_0
dcl_output_siv o13.x, rendertarget_array_index
dcl_globalFlags refactoringAllowed
dcl_constantbuffer CB0[847], immediateIndexed
dcl_constantbuffer CB2[1], immediateIndexed
dcl_constantbuffer CB3[12], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s6, mode_default
dcl_resource_structured t4, 4
dcl_resource_structured t6, 4
dcl_resource_structured t7, 1100
dcl_resource_structured t8, 52
dcl_resource_structured t10, 8
dcl_resource_buffer (uint,uint,uint,uint) t12
dcl_resource_structured t13, 8
dcl_resource_texture2d (float,float,float,float) t15
dcl_resource_texture3d (float,float,float,float) t25
dcl_resource_texture3d (float,float,float,float) t26
dcl_resource_texture3d (float,float,float,float) t27
dcl_input_sgv v0.x, vertex_id
dcl_output_siv o0.xyzw, position
dcl_output o1.xyz
dcl_output o2.xyz
dcl_output o3.xy
dcl_output o4.xyz
dcl_output o5.xyzw
dcl_output o6.xyzw
dcl_output o7.xyzw
dcl_output o8.x
dcl_output o9.xyz
dcl_output o10.xyz
dcl_output o11.xyz
dcl_output o12.xyz
dcl_temps 53
dcl_resource_buffer (float,float,float,float) t125
ld_indexable(buffer)(float,float,float,float) r52.xyzw, l(0, 0, 0, 0), t125.xyzw
mov o13.x, r52.z
ld_indexable(buffer)(float,float,float,float) r40.xyzw, l(0, 0, 0, 0), t125.xyzw
ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r0.xyzw, cb2[0].x, l(268), t7.xyzw
ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r1.xyz, cb2[0].x, l(284), t7.xyzx
ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r2.xyz, cb2[0].x, l(300), t7.xyzx
ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r3.xyz, cb2[0].x, l(316), t7.xyzx
ieq r3.zw, r3.zzzz, l(0, 0, 5, 6)
or r1.w, r3.w, r3.z
and r4.xyzw, r2.xxxx, l(4096, 8192, 0x00004000, 0x08000000)
and r1.w, r1.w, l(1)
movc r2.w, r4.x, l(1), l(2)
movc r2.w, r4.y, l(2), r2.w
movc r2.w, r4.z, l(3), r2.w
ushr r2.w, v0.x, r2.w
iadd r1.w, r1.w, r2.w
iadd r3.zw, r1.wwww, cb2[0].zzzy
ld_structured_indexable(structured_buffer, stride=8)(mixed,mixed,mixed,mixed) r1.w, r3.z, l(4), t10.xxxx
movc r1.w, r4.w, r1.w, r3.w
ld_structured_indexable(structured_buffer, stride=52)(mixed,mixed,mixed,mixed) r5.xyzw, r1.w, l(0), t8.xyzw
ld_structured_indexable(structured_buffer, stride=52)(mixed,mixed,mixed,mixed) r6.xyzw, r1.w, l(16), t8.xyzw
ld_structured_indexable(structured_buffer, stride=52)(mixed,mixed,mixed,mixed) r7.xyzw, r1.w, l(32), t8.xyzw
ld_structured_indexable(structured_buffer, stride=52)(mixed,mixed,mixed,mixed) r2.w, r1.w, l(48), t8.xxxx
ubfe r3.z, l(8), l(16), r6.x
and r3.w, r6.x, l(0x0000ffff)
utof r3.w, r3.w
mul o5.z, r3.w, l(0.0000152590219)
ushr r8.xyzw, r7.xwyz, l(16, 16, 16, 16)
ushr r9.xyzw, r6.xyzw, l(24, 16, 16, 16)
f16tof32 o6.y, r9.y
f16tof32 o6.xz, r6.yyzy
f16tof32 r6.z, r6.w
f16tof32 r6.xy, r9.zwzz
f16tof32 r7.xy, r7.xyxx
f16tof32 r10.xyz, r8.xyzx
f16tof32 o2.xz, r7.zzwz
f16tof32 o2.y, r8.w
f16tof32 r2.w, r2.w
mov r6.w, r7.x
mov r10.w, r7.y
mul r7.xyz, r6.wzyw, r10.wzxw
mad r7.xyz, r6.ywzy, r10.zxwz, -r7.xyzx
dp3 r3.w, r7.xyzx, r7.xyzx
sqrt r3.w, r3.w
div r2.w, r2.w, r3.w
mul r7.xyz, r2.wwww, r7.xyzx
movc r7.xyz, r4.zzzz, r7.xyzx, l(0,0,1.000000,0)
xor r2.w, r5.w, l(61)
ushr r3.w, r5.w, l(16)
xor r2.w, r2.w, r3.w
imul null, r2.w, r2.w, l(9)
ushr r3.w, r2.w, l(4)
xor r2.w, r2.w, r3.w
imul null, r2.w, r2.w, l(0x27d4eb2d)
ushr r3.w, r2.w, l(15)
xor r2.w, r2.w, r3.w
movc r2.w, r4.x, r3.y, r2.w
and r8.xyzw, r2.xxxx, l(0x00010000, 0x00080000, 48, 16)
ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r3.y, r5.w, l(0), t4.xxxx
lt r3.w, l(0.000000), r2.z
mul r2.z, r2.z, r2.y
utof r4.w, r2.w
mad r4.w, r4.w, l(4.656612873E-10), l(-1.000000)
mad r2.z, r2.z, r4.w, r2.y
movc r2.y, r3.w, r2.z, r2.y
movc r2.y, r8.x, r3.y, r2.y
div_sat r11.w, r10.y, r2.y
if_nz r8.y
  ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r2.y, cb2[0].x, l(1020), t7.xxxx
  ieq r3.yw, r2.yyyy, l(0, -2, 0, -3)
  or r2.z, r3.w, r3.y
  if_z r2.z
    ld_structured_indexable(structured_buffer, stride=8)(mixed,mixed,mixed,mixed) r8.xy, r2.y, l(0), t13.xyxx
    utof r2.y, r2.y
    add r2.y, r2.y, l(0.500000)
    mul r11.x, r2.y, l(0.000244140625)
    sample_l_indexable(texture2d)(float,float,float,float) r2.y, r11.wxww, t15.yxzw, s0, l(0.000000)
    mad r11.y, r8.x, r2.y, r8.y
  else
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r2.y, cb2[0].x, l(1068), t7.xxxx
    f16tof32 r2.z, r2.y
    ushr r2.y, r2.y, l(16)
    f16tof32 r2.y, r2.y
    add r2.y, -r2.z, r2.y
    mad r2.y, r11.w, r2.y, r2.z
    movc r11.y, r3.y, r2.z, r2.y
  endif
else
  mov r11.y, r11.w
endif
mad r12.zw, r1.xxxy, r3.xxxx, r0.zzzw
and r0.zw, r2.wwww, l(0, 0, 4096, 0x00008000)
movc r0.zw, r0.zzzw, l(0,0,1.000000,1.000000), l(0,0,-1.000000,-1.000000)
movc r0.z, r8.w, r0.z, l(1.000000)
mul r1.x, r0.z, r0.x
and r2.xy, r2.xxxx, l(32, 0x40000000, 0, 0)
movc r0.z, r2.x, r0.w, l(1.000000)
mul r1.y, r0.z, r0.y
movc r12.xy, r8.zzzz, r1.xyxx, r0.xyxx
if_nz r4.z
  and r0.xyz, v0.xxxx, l(7, 4, 2, 0)
  ieq r13.xyzw, r0.xxxx, l(0, 3, 4, 7)
  or r0.x, r13.y, r13.x
  or r0.x, r13.z, r0.x
  or r0.x, r13.w, r0.x
  movc r0.xyz, r0.xzyx, l(0.500000,0.500000,0.500000,0), l(-0.500000,-0.500000,-0.500000,0)
  mov r0.xyw, r0.xyxz
  mov o3.xy, r12.xzxx
else
  if_nz r4.x
    and r1.xy, v0.xxxx, l(3, 1, 0, 0)
    utof r1.xy, r1.xyxx
    mul r0.z, r1.x, l(0.333333343)
    movc r0.z, r4.y, r0.z, r1.y
    switch r1.z
      case l(0)
      mov r0.w, r11.w
      break
      case l(1)
      add r0.w, r3.x, -r10.y
      break
      case l(2)
      ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r0.w, r5.w, l(0), t6.xxxx
      break
      default
      mov r0.w, l(0)
      break
    endswitch
    add r0.x, r0.z, l(-0.500000)
    add r1.xy, r12.zwzz, r0.xwxx
    mad o3.xy, r1.xyxx, r12.xyxx, l(0.500000, 0.000000, 0.000000, 0.000000)
    mov r0.w, l(0)
  else
    ubfe r0.z, l(1), l(1), v0.x
    utof r0.z, r0.z
    add r0.x, r0.z, l(-0.500000)
    and r0.z, v0.x, l(1)
    utof r0.z, r0.z
    add r0.w, r0.z, l(-0.500000)
    mad r1.xy, r0.xwxx, r12.xyxx, r12.zwzz
    add o3.xy, r1.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
  endif
  mov r0.y, l(0)
endif
mad r1.xyz, r0.xxxx, r6.zywz, r5.xyzx
mad r0.xzw, r0.wwww, r10.xxwz, r1.xxyz
mad r1.xyz, r0.yyyy, r7.xyzx, r0.xzwx
movc r0.xyz, r4.zzzz, r1.xyzx, r0.xzwx
if_nz r2.y
  ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r1.x, cb2[0].x, l(68), t7.xxxx
  ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r5.xyzw, cb2[0].x, l(448), t7.xyzw
  ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r1.y, cb2[0].x, l(464), t7.xxxx
  ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r1.z, cb2[0].x, l(1004), t7.xxxx
  movc r2.xyz, r4.yyyy, l(0.0555555560,4.000000,-4,0), l(0.166666672,2.000000,-2,0)
  imul null, r1.x, r1.x, l(5)
  ld_indexable(buffer)(uint,uint,uint,uint) r1.x, r1.xxxx, t12.xyzw
  utof r1.x, r1.x
  mul r1.x, r2.x, r1.x
  mul r1.x, r2.y, r1.x
  and r2.x, r2.z, v0.x
  utof r2.x, r2.x
  div r1.x, r2.x, r1.x
  min r1.x, r1.x, l(1.000000)
  add r2.x, -r1.x, l(1.000000)
  lt r1.x, l(0.000000), r1.y
  ishl r2.z, r2.w, l(13)
  xor r2.z, r2.z, r2.w
  ushr r3.x, r2.z, l(17)
  xor r2.z, r2.z, r3.x
  ishl r3.x, r2.z, l(5)
  xor r2.z, r2.z, r3.x
  movc r2.z, r8.z, r2.z, r2.w
  utof r2.z, r2.z
  mad r2.z, r2.z, l(4.656612873E-10), l(-1.000000)
  and r2.z, r1.x, r2.z
  switch r5.z
    case l(0)
    mov r3.x, l(0)
    break
    case l(1)
    mov r3.x, r2.x
    break
    case l(2)
    lt r3.y, l(0.000010), |r5.w|
    lt r3.w, l(0.000000), r5.w
    lt r4.x, r5.w, l(0.000000)
    iadd r3.w, -r3.w, r4.x
    itof r3.w, r3.w
    mul r3.w, r3.w, l(0.000100)
    movc r3.y, r3.y, r5.w, r3.w
    mul r3.w, r2.x, r3.y
    exp r3.w, r3.w
    exp r3.y, r3.y
    add r3.yw, r3.yyyw, l(0.000000, -1.000000, 0.000000, -1.000000)
    div r3.y, l(1.000000, 1.000000, 1.000000, 1.000000), r3.y
    mul r3.y, r3.y, r3.w
    max r3.x, r3.y, l(0.000000)
    break
    case l(3)
    add r3.y, |r5.w|, l(6.000000)
    add r3.w, -r2.x, l(0.500000)
    mul r3.y, r3.w, r3.y
    exp r3.y, r3.y
    add r3.y, r3.y, l(1.000000)
    div r3.x, l(1.000000, 1.000000, 1.000000, 1.000000), r3.y
    break
    default
    mov r3.x, l(0)
    break
  endswitch
  add r3.y, -r5.x, r5.y
  mad r3.x, r3.x, r3.y, r5.x
  mul r1.y, r1.y, r3.x
  mad r1.y, r1.y, r2.z, r3.x
  movc_sat r1.x, r1.x, r1.y, r3.x
  ieq r3.xy, r1.zzzz, l(-2, -3, 0, 0)
  or r1.y, r3.y, r3.x
  if_z r1.y
    ld_structured_indexable(structured_buffer, stride=8)(mixed,mixed,mixed,mixed) r3.yw, r1.z, l(0), t13.xxxy
    utof r1.y, r1.z
    add r1.y, r1.y, l(0.500000)
    mul r2.y, r1.y, l(0.000244140625)
    sample_l_indexable(texture2d)(float,float,float,float) r1.y, r2.xyxx, t15.yxzw, s0, l(0.000000)
    mad r1.y, r3.y, r1.y, r3.w
  else
    ld_structured_indexable(structured_buffer, stride=1100)(mixed,mixed,mixed,mixed) r1.z, cb2[0].x, l(1052), t7.xxxx
    f16tof32 r2.y, r1.z
    ushr r1.z, r1.z, l(16)
    f16tof32 r1.z, r1.z
    add r1.z, -r2.y, r1.z
    mad r1.z, r2.x, r1.z, r2.y
    movc r1.y, r3.x, r2.y, r1.z
  endif
  mul r1.z, r1.y, r1.x
  lt r2.x, r1.z, l(0.040450)
  mad r1.x, r1.x, r1.y, l(0.055000)
  mul r1.xz, r1.xxzx, l(0.947867334, 0.000000, 0.0773993805, 0.000000)
  log r1.x, r1.x
  mul r1.x, r1.x, l(2.400000)
  exp r1.x, r1.x
  movc r1.x, r2.x, r1.z, r1.x
else
  mov r1.x, l(1.000000)
endif
mov r0.w, l(1.000000)
dp4 r4.x, r0.xyzw, cb3[8].xyzw
dp4 r4.y, r0.xyzw, cb3[9].xyzw
dp4 r4.z, r0.xyzw, cb3[10].xyzw
dp4 r4.w, r0.xyzw, cb3[11].xyzw
dp4 r2.x, r0.xyzw, cb3[4].xyzw
dp4 r2.y, r0.xyzw, cb3[5].xyzw
dp4 r2.z, r0.xyzw, cb3[6].xyzw
mul o6.w, r1.x, r6.x
utof o5.x, r9.x
utof o5.y, r3.z
ishl r0.w, r2.w, l(13)
xor r0.w, r0.w, r2.w
ushr r1.x, r0.w, l(17)
xor r0.w, r0.w, r1.x
ishl r1.x, r0.w, l(5)
xor r0.w, r0.w, r1.x
movc r0.w, r8.z, r0.w, r2.w
utof r0.w, r0.w
mul r11.x, r0.w, l(2.328306437E-10)
mov r34.xyzw, r4.xyzw
add r40.w, r34.w, -r40.y
mad r34.x, r40.x, r40.w, r34.x
div r1.xyz, r34.xyzx, r4.wwww
mad_sat r3.xy, r1.xyxx, l(0.500000, -0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
mad r0.w, r1.z, cb0[836].z, cb0[836].w
rcp r0.w, r0.w
mad r0.w, -r0.w, cb0[845].w, l(1.000000)
log r0.w, r0.w
mul_sat r3.z, r0.w, cb0[845].z
itof r1.xyz, cb0[846].yzwy
mad r5.xyz, r1.xyzx, cb0[846].xxxx, l(-1.000000, -1.000000, -1.000000, 0.000000)
mad r5.xyz, r3.xyzx, r5.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
div r6.xyz, l(1.000000, 1.000000, 1.000000, 1.000000), r1.xyzx
mul r5.xyz, r5.xyzx, r6.xyzx
sample_l_indexable(texture3d)(float,float,float,float) r5.xyzw, r5.xyzx, t25.xyzw, s6, l(0.000000)
exp r0.w, -r5.w
min r0.w, r0.w, l(1.000000)
lt r2.w, l(0.000000), cb0[836].y
if_nz r2.w
  add r7.xyz, r2.xyzx, -cb0[835].xyzx
  dp3 r2.w, r7.xyzx, r7.xyzx
  sqrt r2.w, r2.w
  max r3.w, r2.w, l(0.001000)
  div r7.xzw, r7.xxyz, r3.wwww
  mul r3.w, r7.y, cb0[834].w
  lt r6.w, l(0.010000), |r3.w|
  mul r7.y, r3.w, l(-1.442695)
  exp r7.y, r7.y
  add r7.y, -r7.y, l(1.000000)
  div r3.w, r7.y, r3.w
  mul r3.w, r3.w, cb0[835].w
  movc r3.w, r6.w, r3.w, cb0[835].w
  dp3_sat r6.w, r7.xzwx, cb0[841].xyzx
  log r6.w, r6.w
  mul r6.w, r6.w, cb0[841].w
  exp r6.w, r6.w
  mul r3.w, r3.w, cb0[836].y
  add r2.w, r2.w, -cb0[836].x
  max r2.w, r2.w, l(0.000000)
  mul r7.x, r2.w, r3.w
  exp r7.x, -r7.x
  min r7.x, r7.x, l(1.000000)
  mad r7.yzw, r6.wwww, cb0[842].xxyz, cb0[834].xxyz
  mul r7.yzw, r0.wwww, r7.yyzw
  add r6.w, -r7.x, l(1.000000)
  mad r5.xyz, r7.yzwy, r6.wwww, r5.xyzx
  mad r2.w, r3.w, r2.w, r5.w
  exp r2.w, -r2.w
  min r0.w, r2.w, l(1.000000)
endif
add r1.xyz, r1.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
mad r1.xyz, r3.xyzx, r1.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
mul r1.xyz, r6.xyzx, r1.xyzx
sample_l_indexable(texture3d)(float,float,float,float) r3.xyz, r1.xyzx, t26.xyzw, s6, l(0.000000)
sample_l_indexable(texture3d)(float,float,float,float) r1.xyz, r1.xyzx, t27.xyzw, s6, l(0.000000)
mov r50.xyzw, r4.xyzw
mov o5.w, l(0)
mov r11.z, r10.y
mov o7.xyzw, r11.zwxy
mov o1.xyz, r2.xyzx
mov o4.xyz, r0.xyzx
mov o9.xyz, r0.wwww
mov o10.xyz, r5.xyzx
mov o11.xyz, r3.xyzx
mov o12.xyz, r1.xyzx
mov o8.x, r1.w
add r51.x, -r52.y, r50.w
mul r51.y, r52.x, r52.w
mad r51.x, r51.x, r51.y, r50.x
ne r51.y, l(1.000000), r50.w
movc r50.x, r51.y, r51.x, r50.x
mov o0.xyzw, r50.xyzw
ret
// Approximately 0 instruction slots used
