//++++++++++++++++++++++++++++++++++++
// QuantV 3.0.0 shader
// Original code by Rockstar Games
//++++++++++++++++++++++++++++++++++++
vs_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb1[16], immediateIndexed
dcl_constantbuffer cb2[16], immediateIndexed
dcl_constantbuffer cb3[53], immediateIndexed
dcl_constantbuffer cb5[3], immediateIndexed
dcl_sampler s0, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_input v0.xyz
dcl_input v1.xyzw
dcl_input v2.xy
dcl_input v3.xyz
dcl_output_siv o0.xyzw, position
dcl_output o1.xy
dcl_output o2.xyz
dcl_output o3.xyz
dcl_temps 3
add r0.xyz, v0.xyzx, -v3.xyzx
dp3 r0.x, r0.xyzx, r0.xyzx
sqrt r0.x, r0.x
mul r0.x, r0.x, l(7.071068e-001)
add r0.yzw, v3.xxyz, -cb1[15].xxyz
dp3 r1.x, r0.yzwy, r0.yzwy
sqrt r1.x, r1.x
lt r1.y, r1.x, r0.x
dp3 r0.y, cb1[6].xyzx, r0.yzwy
lt r0.z, -r0.x, r0.y
div r0.x, r0.y, r0.x
add r0.x, -r0.x, l(1.000000e+000)
mul_sat r0.x, r0.x, l(5.000000e-001)
movc r0.x, r0.z, r0.x, l(1.000000)
movc r0.x, r1.y, r0.x, l(1.000000)
mul r0.yzw, v3.yyyy, cb1[9].xxyw
mad r0.yzw, v3.xxxx, cb1[8].xxyw, r0.yyzw
mad r0.yzw, v3.zzzz, cb1[10].xxyw, r0.yyzw
add r0.yzw, r0.yyzw, cb1[11].xxyw
div r1.y, l(1.000000e+000, 1.000000e+000, 1.000000e+000, 1.000000e+000), r0.w
mul r0.yz, r0.yyzy, r1.yyyy
mad r1.zw, r0.yyyz, l(0.000000e+000, 0.000000e+000, 5.000000e-001, -5.000000e-001), l(0.000000e+000, 0.000000e+000, 5.000000e-001, 5.000000e-001)
sample_l_indexable(texture2d)(float,float,float,float) r1.z, r1.zwzz, t0.yzxw, s0, l(0.000000e+000)
ge r1.z, r1.z, r0.w
if_nz r1.z
  mul r1.zw, v0.yyyy, cb1[9].xxxy
  mad r1.zw, v0.xxxx, cb1[8].xxxy, r1.zzzw
  mad r1.zw, v0.zzzz, cb1[10].xxxy, r1.zzzw
  add r1.zw, r1.zzzw, cb1[11].xxxy
  mad r1.yz, r1.zzwz, r1.yyyy, -r0.yyzy
  dp2 r1.y, r1.yzyy, r1.yzyy
  sqrt r1.y, r1.y
  mul r1.y, r1.y, cb5[2].x
  dp2 r1.z, cb5[2].yyyy, cb2[15].zzzz
  min r1.y, r1.z, r1.y
  mad r2.xyzw, r1.yyyy, l(7.729676e-001, -2.221565e-001, 5.282406e-001, -8.028475e-001), r0.yzyz
  mad r2.xyzw, r2.xyzw, l(5.000000e-001, -5.000000e-001, 5.000000e-001, -5.000000e-001), l(5.000000e-001, 5.000000e-001, 5.000000e-001, 5.000000e-001)
  sample_l_indexable(texture2d)(float,float,float,float) r1.z, r2.xyxx, t0.yzxw, s0, l(0.000000e+000)
  ge r1.z, r1.z, r0.w
  and r1.z, r1.z, l(0x3f800000)
  sample_l_indexable(texture2d)(float,float,float,float) r1.w, r2.zwzz, t0.yzwx, s0, l(0.000000e+000)
  ge r1.w, r1.w, r0.w
  and r1.w, r1.w, l(0x3f800000)
  add r1.z, r1.w, r1.z
  mad r2.xyzw, r1.yyyy, l(2.629631e-001, -7.523455e-002, 8.237055e-001, -5.561877e-001), r0.yzyz
  mad r2.xyzw, r2.xyzw, l(5.000000e-001, -5.000000e-001, 5.000000e-001, -5.000000e-001), l(5.000000e-001, 5.000000e-001, 5.000000e-001, 5.000000e-001)
  sample_l_indexable(texture2d)(float,float,float,float) r1.w, r2.xyxx, t0.yzwx, s0, l(0.000000e+000)
  ge r1.w, r1.w, r0.w
  and r1.w, r1.w, l(0x3f800000)
  add r1.z, r1.w, r1.z
  sample_l_indexable(texture2d)(float,float,float,float) r1.w, r2.zwzz, t0.yzwx, s0, l(0.000000e+000)
  ge r1.w, r1.w, r0.w
  and r1.w, r1.w, l(0x3f800000)
  add r1.z, r1.w, r1.z
  mad r2.xyzw, r1.yyyy, l(5.696832e-001, 1.210860e-001, 3.988842e-001, -4.114171e-001), r0.yzyz
  mad r2.xyzw, r2.xyzw, l(5.000000e-001, -5.000000e-001, 5.000000e-001, -5.000000e-001), l(5.000000e-001, 5.000000e-001, 5.000000e-001, 5.000000e-001)
  sample_l_indexable(texture2d)(float,float,float,float) r1.w, r2.xyxx, t0.yzwx, s0, l(0.000000e+000)
  ge r1.w, r1.w, r0.w
  and r1.w, r1.w, l(0x3f800000)
  add r1.z, r1.w, r1.z
  sample_l_indexable(texture2d)(float,float,float,float) r1.w, r2.zwzz, t0.yzwx, s0, l(0.000000e+000)
  ge r1.w, r1.w, r0.w
  and r1.w, r1.w, l(0x3f800000)
  add r1.z, r1.w, r1.z
  mad r2.xyzw, r1.yyyy, l(4.400159e-001, 4.879902e-001, -3.464016e-002, 1.763420e-001), r0.yzyz
  mad r2.xyzw, r2.xyzw, l(5.000000e-001, -5.000000e-001, 5.000000e-001, -5.000000e-001), l(5.000000e-001, 5.000000e-001, 5.000000e-001, 5.000000e-001)
  sample_l_indexable(texture2d)(float,float,float,float) r1.w, r2.xyxx, t0.yzwx, s0, l(0.000000e+000)
  ge r1.w, r1.w, r0.w
  and r1.w, r1.w, l(0x3f800000)
  add r1.z, r1.w, r1.z
  sample_l_indexable(texture2d)(float,float,float,float) r1.w, r2.zwzz, t0.yzwx, s0, l(0.000000e+000)
  ge r1.w, r1.w, r0.w
  and r1.w, r1.w, l(0x3f800000)
  add r1.z, r1.w, r1.z
  mad r2.xyzw, r1.yyyy, l(-1.203233e-001, -5.860488e-001, 2.004656e-001, -6.874188e-001), r0.yzyz
  mad r2.xyzw, r2.xyzw, l(5.000000e-001, -5.000000e-001, 5.000000e-001, -5.000000e-001), l(5.000000e-001, 5.000000e-001, 5.000000e-001, 5.000000e-001)
  sample_l_indexable(texture2d)(float,float,float,float) r1.w, r2.xyxx, t0.yzwx, s0, l(0.000000e+000)
  ge r1.w, r1.w, r0.w
  and r1.w, r1.w, l(0x3f800000)
  add r1.z, r1.w, r1.z
  sample_l_indexable(texture2d)(float,float,float,float) r1.w, r2.zwzz, t0.yzwx, s0, l(0.000000e+000)
  ge r1.w, r1.w, r0.w
  and r1.w, r1.w, l(0x3f800000)
  add r1.z, r1.w, r1.z
  mad r2.xyzw, r1.yyyy, l(-2.586140e-001, -1.630804e-001, -6.883209e-001, -6.355559e-001), r0.yzyz
  mad r2.xyzw, r2.xyzw, l(5.000000e-001, -5.000000e-001, 5.000000e-001, -5.000000e-001), l(5.000000e-001, 5.000000e-001, 5.000000e-001, 5.000000e-001)
  sample_l_indexable(texture2d)(float,float,float,float) r1.w, r2.xyxx, t0.yzwx, s0, l(0.000000e+000)
  ge r1.w, r1.w, r0.w
  and r1.w, r1.w, l(0x3f800000)
  add r1.z, r1.w, r1.z
  sample_l_indexable(texture2d)(float,float,float,float) r1.w, r2.zwzz, t0.yzwx, s0, l(0.000000e+000)
  ge r1.w, r1.w, r0.w
  and r1.w, r1.w, l(0x3f800000)
  add r1.z, r1.w, r1.z
  mad r2.xyzw, r1.yyyy, l(-3.450861e-001, -8.480957e-001, -3.628126e-001, 6.144199e-001), r0.yzyz
  mad r2.xyzw, r2.xyzw, l(5.000000e-001, -5.000000e-001, 5.000000e-001, -5.000000e-001), l(5.000000e-001, 5.000000e-001, 5.000000e-001, 5.000000e-001)
  sample_l_indexable(texture2d)(float,float,float,float) r1.w, r2.xyxx, t0.yzwx, s0, l(0.000000e+000)
  ge r1.w, r1.w, r0.w
  and r1.w, r1.w, l(0x3f800000)
  add r1.z, r1.w, r1.z
  sample_l_indexable(texture2d)(float,float,float,float) r1.w, r2.zwzz, t0.yzwx, s0, l(0.000000e+000)
  ge r1.w, r1.w, r0.w
  and r1.w, r1.w, l(0x3f800000)
  add r1.z, r1.w, r1.z
  mad r2.xyzw, r1.yyyy, l(6.174967e-002, 5.069199e-001, 9.773164e-001, 2.086624e-001), r0.yzyz
  mad r2.xyzw, r2.xyzw, l(5.000000e-001, -5.000000e-001, 5.000000e-001, -5.000000e-001), l(5.000000e-001, 5.000000e-001, 5.000000e-001, 5.000000e-001)
  sample_l_indexable(texture2d)(float,float,float,float) r1.w, r2.xyxx, t0.yzwx, s0, l(0.000000e+000)
  ge r1.w, r1.w, r0.w
  and r1.w, r1.w, l(0x3f800000)
  add r1.z, r1.w, r1.z
  sample_l_indexable(texture2d)(float,float,float,float) r1.w, r2.zwzz, t0.yzwx, s0, l(0.000000e+000)
  ge r1.w, r1.w, r0.w
  and r1.w, r1.w, l(0x3f800000)
  add r1.z, r1.w, r1.z
  mad r2.xyzw, r1.yyyy, l(7.894329e-001, 4.902646e-001, -7.023129e-001, -7.146062e-002), r0.yzyz
  mad r2.xyzw, r2.xyzw, l(5.000000e-001, -5.000000e-001, 5.000000e-001, -5.000000e-001), l(5.000000e-001, 5.000000e-001, 5.000000e-001, 5.000000e-001)
  sample_l_indexable(texture2d)(float,float,float,float) r1.w, r2.xyxx, t0.yzwx, s0, l(0.000000e+000)
  ge r1.w, r1.w, r0.w
  and r1.w, r1.w, l(0x3f800000)
  add r1.z, r1.w, r1.z
  sample_l_indexable(texture2d)(float,float,float,float) r1.w, r2.zwzz, t0.yzwx, s0, l(0.000000e+000)
  ge r1.w, r1.w, r0.w
  and r1.w, r1.w, l(0x3f800000)
  add r1.z, r1.w, r1.z
  mad r2.xyzw, r1.yyyy, l(-4.953414e-001, 2.338210e-001, 1.793105e-001, 9.625847e-001), r0.yzyz
  mad r2.xyzw, r2.xyzw, l(5.000000e-001, -5.000000e-001, 5.000000e-001, -5.000000e-001), l(5.000000e-001, 5.000000e-001, 5.000000e-001, 5.000000e-001)
  sample_l_indexable(texture2d)(float,float,float,float) r1.w, r2.xyxx, t0.yzwx, s0, l(0.000000e+000)
  ge r1.w, r1.w, r0.w
  and r1.w, r1.w, l(0x3f800000)
  add r1.z, r1.w, r1.z
  sample_l_indexable(texture2d)(float,float,float,float) r1.w, r2.zwzz, t0.yzwx, s0, l(0.000000e+000)
  ge r1.w, r1.w, r0.w
  and r1.w, r1.w, l(0x3f800000)
  add r1.z, r1.w, r1.z
  mad r2.xyzw, r1.yyyy, l(-9.309751e-001, -3.273970e-001, -9.129849e-001, 2.416974e-001), r0.yzyz
  mad r2.xyzw, r2.xyzw, l(5.000000e-001, -5.000000e-001, 5.000000e-001, -5.000000e-001), l(5.000000e-001, 5.000000e-001, 5.000000e-001, 5.000000e-001)
  sample_l_indexable(texture2d)(float,float,float,float) r1.w, r2.xyxx, t0.yzwx, s0, l(0.000000e+000)
  ge r1.w, r1.w, r0.w
  and r1.w, r1.w, l(0x3f800000)
  add r1.z, r1.w, r1.z
  sample_l_indexable(texture2d)(float,float,float,float) r1.w, r2.zwzz, t0.yzwx, s0, l(0.000000e+000)
  ge r1.w, r1.w, r0.w
  and r1.w, r1.w, l(0x3f800000)
  add r1.z, r1.w, r1.z
  mad r2.xyzw, r1.yyyy, l(-2.172657e-001, 9.727083e-001, -6.971195e-001, 5.296693e-001), r0.yzyz
  mad r2.xyzw, r2.xyzw, l(5.000000e-001, -5.000000e-001, 5.000000e-001, -5.000000e-001), l(5.000000e-001, 5.000000e-001, 5.000000e-001, 5.000000e-001)
  sample_l_indexable(texture2d)(float,float,float,float) r1.y, r2.xyxx, t0.yxzw, s0, l(0.000000e+000)
  ge r1.y, r1.y, r0.w
  and r1.y, r1.y, l(0x3f800000)
  add r1.y, r1.y, r1.z
  sample_l_indexable(texture2d)(float,float,float,float) r1.z, r2.zwzz, t0.yzxw, s0, l(0.000000e+000)
  ge r0.w, r1.z, r0.w
  and r0.w, r0.w, l(0x3f800000)
  add r0.w, r0.w, r1.y
else 
  mov r0.w, l(0)
endif 
mul r2.y, r0.w, l(4.166667e-002)
add r0.w, l(1.000100e+000), -cb5[1].x
div r0.w, l(1.000000e+000, 1.000000e+000, 1.000000e+000, 1.000000e+000), r0.w
add_sat r0.yz, |r0.yyzy|, -cb5[1].xxxx
max r0.y, r0.z, r0.y
mul_sat r0.y, r0.w, r0.y
add r2.x, -r0.y, l(1.000000e+000)
mul r0.yz, r2.xxyx, r2.xxyx
mul r0.y, r0.y, r0.z
lt r0.z, l(0.000000e+000), r0.y
movc r1.yzw, r0.zzzz, v0.xxyz, v3.xxyz
mul r2.xyzw, r1.zzzz, cb1[9].xyzw
mad r2.xyzw, r1.yyyy, cb1[8].xyzw, r2.xyzw
mad r2.xyzw, r1.wwww, cb1[10].xyzw, r2.xyzw
add o0.xyzw, r2.xyzw, cb1[11].xyzw
lt r0.z, v1.y, v1.x
mul r2.xyzw, v1.yzyz, l(2.865200e+000, 2.959100e+000, 5.600000e+000, 5.090000e+001)
lt r0.w, v1.x, r2.x
and r0.z, r0.w, r0.z
lt r1.yzw, r2.yyzw, v1.yyxx
and r0.z, r0.z, r1.y
movc r2.xyz, r0.zzzz, v1.yyyy, v1.xyzx
mul r0.yzw, r0.yyyy, r2.xxyz
mul r0.xyz, r0.xxxx, r0.yzwy
lt r0.w, v2.y, l(5.400000e-001)
add r1.y, v2.y, v2.y
min r1.y, r1.y, l(5.400000e-001)
movc r0.w, r0.w, r1.y, v2.y
mul r0.xyz, r0.xyzx, r0.wwww
and r0.w, r1.w, r1.z
mul r2.xyzw, v1.yyxy, l(1.700000e+001, 1.700000e+001, 1.700000e+001, 8.500000e+001)
lt r2.xyzw, r2.xyzw, v1.xzzx
eq r1.y, v1.z, l(0.000000e+000)
and r1.z, r2.z, r2.y
and r1.yw, r1.yyyy, r2.xxxw
not r2.xy, r1.ywyy
and r0.w, r0.w, r2.x
and r0.w, r2.y, r0.w
and r1.w, r1.y, l(0x3f800000)
mul r1.x, r1.x, l(1.000000e-002)
min r1.x, r1.x, l(1.000000e+000)
movc r2.x, r1.y, l(-0.300000), l(0.700000)
mad r1.x, r1.x, r2.x, r1.w
mul r2.xzw, r0.xxyz, r1.xxxx
movc r0.xyz, r0.wwww, r2.xzwx, r0.xyzx
or r0.w, r1.z, r1.y
and r0.w, r2.y, r0.w
add r1.xyz, r0.xyzx, r0.xyzx
movc r0.xyz, r0.wwww, r1.xyzx, r0.xyzx
add r1.xyz, v0.xyzx, -cb1[15].xyzx
dp3 r0.w, r1.xyzx, r1.xyzx
sqrt r0.w, r0.w
add r1.x, r0.w, -cb3[50].x
max r1.x, r1.x, l(0.000000e+000)
div r0.w, r1.x, r0.w
mul r0.w, r0.w, r1.z
mul r1.y, r0.w, cb3[52].z
lt r0.w, l(1.000000e-002), |r0.w|
mul r1.z, r1.y, l(-1.442695e+000)
exp r1.z, r1.z
add r1.z, -r1.z, l(1.000000e+000)
div r1.y, r1.z, r1.y
movc r0.w, r0.w, r1.y, l(1.000000)
mul r1.y, r1.x, cb3[51].w
mul r0.w, r0.w, r1.y
min r0.w, r0.w, l(1.000000e+000)
mul r0.w, r0.w, l(1.442695e+000)
exp r0.w, r0.w
min r0.w, r0.w, l(1.000000e+000)
add r0.w, -r0.w, l(1.000000e+000)
mul r1.y, r0.w, cb3[52].y
mad r0.w, -r0.w, cb3[52].y, l(1.000000e+000)
mul r0.w, r0.w, cb3[51].y
add r1.x, r1.x, -cb3[52].x
max r1.x, r1.x, l(0.000000e+000)
mul r1.x, r1.x, cb3[51].x
mul r1.x, r1.x, l(1.442695e+000)
exp r1.x, r1.x
add r1.x, -r1.x, l(1.000000e+000)
mad_sat r0.w, r0.w, r1.x, r1.y
add r0.w, -r0.w, l(1.000000e+000)
mul o2.xyz, r0.wwww, r0.xyzx
mov o3.xyz, v3.xyzx
mov o1.x, v2.x
mov o1.y, v1.w
ret