// 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                11     zw        3     NONE   float     zw
// 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[28], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s6, mode_default
dcl_resource_structured t2, 12
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 o3.zw
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_indexable(buffer)(float,float,float,float) r41.xyzw, l(2, 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.xyzw, cb2[0].x, l(284), t7.xyzw
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 r2.w, r3.w, r3.z
and r4.xyzw, r2.xxxx, l(4096, 8192, 0x00004000, 0x08000000)
and r2.w, r2.w, l(1)
movc r3.z, r4.x, l(1), l(2)
movc r3.z, r4.y, l(2), r3.z
movc r3.z, r4.z, l(3), r3.z
ushr r3.z, v0.x, r3.z
iadd r2.w, r2.w, r3.z
iadd r3.zw, r2.wwww, cb2[0].zzzy
ld_structured_indexable(structured_buffer, stride=8)(mixed,mixed,mixed,mixed) r2.w, r3.z, l(4), t10.xxxx
movc r2.w, r4.w, r2.w, r3.w
ld_structured_indexable(structured_buffer, stride=52)(mixed,mixed,mixed,mixed) r5.xyzw, r2.w, l(0), t8.xyzw
ld_structured_indexable(structured_buffer, stride=52)(mixed,mixed,mixed,mixed) r6.xyzw, r2.w, l(16), t8.xyzw
ld_structured_indexable(structured_buffer, stride=52)(mixed,mixed,mixed,mixed) r7.xyzw, r2.w, l(32), t8.xyzw
ld_structured_indexable(structured_buffer, stride=52)(mixed,mixed,mixed,mixed) r3.z, r2.w, l(48), t8.xxxx
ubfe r3.w, l(8), l(16), r6.x
and r4.w, r6.x, l(0x0000ffff)
utof r4.w, r4.w
mul o5.z, r4.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 r3.z, r3.z
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 r4.w, r7.xyzx, r7.xyzx
sqrt r4.w, r4.w
div r3.z, r3.z, r4.w
mul r7.xyz, r3.zzzz, r7.xyzx
movc r7.xyz, r4.zzzz, r7.xyzx, l(0,0,1.000000,0)
xor r3.z, r5.w, l(61)
ushr r4.w, r5.w, l(16)
xor r3.z, r3.z, r4.w
imul null, r3.z, r3.z, l(9)
ushr r4.w, r3.z, l(4)
xor r3.z, r3.z, r4.w
imul null, r3.z, r3.z, l(0x27d4eb2d)
ushr r4.w, r3.z, l(15)
xor r3.z, r3.z, r4.w
movc r3.y, r4.x, r3.y, r3.z
and r8.xyzw, r2.xxxx, l(0x00010000, 0x00080000, 48, 16)
ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r3.z, r5.w, l(0), t4.xxxx
lt r4.w, l(0.000000), r2.z
mul r2.z, r2.z, r2.y
utof r7.w, r3.y
mad r7.w, r7.w, l(4.656612873E-10), l(-1.000000)
mad r2.z, r2.z, r7.w, r2.y
movc r2.y, r4.w, r2.z, r2.y
movc r2.y, r8.x, r3.z, 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 r8.xy, r2.yyyy, l(-2, -3, 0, 0)
  or r2.z, r8.y, r8.x
  if_z r2.z
    ld_structured_indexable(structured_buffer, stride=8)(mixed,mixed,mixed,mixed) r9.yz, r2.y, l(0), t13.xxyx
    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, r9.y, r2.y, r9.z
  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, r8.x, r2.z, r2.y
  endif
else
  mov r11.y, r11.w
endif
mad r12.zw, r1.xxxy, r3.xxxx, r0.zzzw
and r0.zw, r3.yyyy, 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) r7.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, r3.y, l(13)
  xor r2.z, r2.z, r3.y
  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, r3.y
  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 r7.z
    case l(0)
    mov r3.x, l(0)
    break
    case l(1)
    mov r3.x, r2.x
    break
    case l(2)
    lt r3.z, l(0.000010), |r7.w|
    lt r4.x, l(0.000000), r7.w
    lt r4.y, r7.w, l(0.000000)
    iadd r4.x, -r4.x, r4.y
    itof r4.x, r4.x
    mul r4.x, r4.x, l(0.000100)
    movc r3.z, r3.z, r7.w, r4.x
    mul r4.x, r2.x, r3.z
    exp r4.x, r4.x
    add r4.x, r4.x, l(-1.000000)
    exp r3.z, r3.z
    add r3.z, r3.z, l(-1.000000)
    div r3.z, l(1.000000, 1.000000, 1.000000, 1.000000), r3.z
    mul r3.z, r3.z, r4.x
    max r3.x, r3.z, l(0.000000)
    break
    case l(3)
    add r3.z, |r7.w|, l(6.000000)
    add r4.x, -r2.x, l(0.500000)
    mul r3.z, r3.z, r4.x
    exp r3.z, r3.z
    add r3.z, r3.z, l(1.000000)
    div r3.x, l(1.000000, 1.000000, 1.000000, 1.000000), r3.z
    break
    default
    mov r3.x, l(0)
    break
  endswitch
  add r3.z, -r7.x, r7.y
  mad r3.x, r3.x, r3.z, r7.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.xz, r1.zzzz, l(-2, 0, -3, 0)
  or r1.y, r3.z, r3.x
  if_z r1.y
    ld_structured_indexable(structured_buffer, stride=8)(mixed,mixed,mixed,mixed) r4.xy, r1.z, l(0), t13.xyxx
    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, r4.x, r1.y, r4.y
  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
mov r34.xyzw, r4.xyzw
add r40.w, r34.w, -r40.y
mad r34.x, r40.x, r40.w, r34.x
mul o6.w, r1.x, r6.x
utof o5.x, r9.x
utof o5.y, r3.w
ishl r0.w, r3.y, l(13)
xor r0.w, r0.w, r3.y
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, r3.y
utof r0.w, r0.w
mul r11.x, r0.w, l(2.328306437E-10)
lt r0.w, l(0.000000), r1.w
ld_structured_indexable(structured_buffer, stride=12)(mixed,mixed,mixed,mixed) r1.xyz, r5.w, l(0), t2.xyzx
mad r1.xyz, -r1.xyzx, r1.wwww, r2.xyzx
mov r1.w, l(1.000000)
dp4 r3.z, r1.xyzw, cb3[24].xyzw
dp4 r3.w, r1.xyzw, cb3[25].xyzw
dp4 r1.x, r1.xyzw, cb3[27].xyzw
max r1.y, |r4.w|, l(0.000001)
mov r24.xyzw, r4.xyzw

add r25.x, r1.y, -r40.y
mad r24.x, r40.x, r25.x, r24.x

add r25.x, r1.y, -r40.y
//mad r4.x, r40.x, r25.x, r4.x

div r1.yz, r24.xxyx, r1.yyyy
max r1.x, |r1.x|, l(0.000001)

add r25.x, r1.x, -r41.y
mad r3.z, r41.x, r25.x, r3.z

div r1.xw, r3.zzzw, r1.xxxx
add r1.xy, -r1.xwxx, r1.yzyy
and o3.zw, r0.wwww, r1.xxxy
div r1.xyz, r34.xyzx, r34.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 r1.w, l(0.000000), cb0[836].y
if_nz r1.w
  add r7.xyz, r2.xyzx, -cb0[835].xyzx
  dp3 r1.w, r7.xyzx, r7.xyzx
  sqrt r1.w, r1.w
  max r3.w, r1.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 r1.w, r1.w, -cb0[836].x
  max r1.w, r1.w, l(0.000000)
  mul r7.x, r1.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 r1.w, r3.w, r1.w, r5.w
  exp r1.w, -r1.w
  min r0.w, r1.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, r2.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
