//++++++++++++++++++++++++++++++++++++
// QuantV 3.0.0 shader
// Original code by Rockstar Games
//++++++++++++++++++++++++++++++++++++
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer CB2[13], immediateIndexed
dcl_constantbuffer CB3[50], immediateIndexed
dcl_constantbuffer CB5[4], immediateIndexed
dcl_constantbuffer CB11[4], immediateIndexed
dcl_constantbuffer CB9[7], immediateIndexed
dcl_constantbuffer CB4[6], immediateIndexed
dcl_sampler s3, mode_default
dcl_sampler s5, mode_default
dcl_sampler s6, mode_default
dcl_sampler s7, mode_default
dcl_sampler s8, mode_default
dcl_resource_texture2d (float,float,float,float) t3
dcl_resource_texture2d (float,float,float,float) t5
dcl_resource_texture2d (float,float,float,float) t6
dcl_resource_texture2d (float,float,float,float) t7
dcl_resource_texture2d (float,float,float,float) t8
dcl_input_ps linear v1.xy
dcl_input_ps linear v1.zw
dcl_input_ps linear v2.xyz
dcl_input_ps linear v3.xzw
dcl_input_ps linear v5.xyz
dcl_input_ps linear v6.xyz
dcl_output o0.xyzw
dcl_output o1.xyzw
dcl_output o2.xyzw
dcl_output o3.xyzw
dcl_temps 9
add r0.xy, -cb9[3].xyxx, cb9[3].zwzz
div r0.xy, l(8.000000, 1.000000, 0.000000, 0.000000), r0.xyxx
add_sat r0.zw, v1.xxxy, -cb9[3].xxxy
mul r1.xy, r0.xyxx, r0.zwzz
round_z r1.xy, r1.xyxx
mad r0.xy, r0.zwzz, r0.xyxx, -r1.xyxx
ftoi r0.z, r1.x
ieq r1.xyzw, r0.zzzz, l(0, 1, 2, 3)
ieq r2.xyzw, r0.zzzz, l(4, 5, 6, 7)
and r2.xyzw, r2.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000)
dp4 r0.z, cb9[1].xyzw, r2.xyzw
and r1.xyzw, r1.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000)
dp4 r0.w, cb9[0].xyzw, r1.xyzw
add r0.z, r0.z, r0.w
round_z r0.z, r0.z
div r0.z, r0.z, cb9[2].z
round_z r0.w, r0.z
add r1.x, -r0.w, r0.z
div r1.y, r0.w, cb9[2].w
mad r0.xy, r0.xyxx, cb9[2].xyxx, r1.xyxx
deriv_rtx_coarse r0.zw, v1.xxxy
mul r0.zw, r0.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000)
deriv_rty_coarse r1.xy, v1.xyxx
mul r1.xy, r1.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
sample_d_indexable(texture2d)(float,float,float,float) r1.z, r0.xyxx, t7.yzxw, s7, r0.zwzz, r1.xyxx
sample_d_indexable(texture2d)(float,float,float,float) r0.xy, r0.xyxx, t8.xyzw, s8, r0.zwzz, r1.xyxx
max r0.zw, |r0.zzzw|, |r1.xxxy|
max r0.z, r0.w, r0.z
mul r0.zw, r0.zzzz, cb9[6].xxxy
max r0.zw, r0.zzzw, cb9[6].zzzw
lt r1.xy, v1.xyxx, cb9[3].xyxx
and r1.xy, r1.xyxx, l(0x3f800000, 0x3f800000, 0, 0)
lt r2.xy, cb9[3].zwzz, v1.xyxx
and r2.xy, r2.xyxx, l(0x3f800000, 0x3f800000, 0, 0)
ne r3.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r1.xyxx
ne r3.zw, l(0.000000, 0.000000, 0.000000, 0.000000), r2.xxxy
and r2.xyzw, r3.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000)
dp4 r1.x, r2.xyzw, r2.xyzw
min r1.x, r1.x, l(1.000000)
mad r1.y, r1.x, -r1.z, r1.z
mad r0.xy, r1.xxxx, -r0.xyxx, r0.xyxx
add r0.xy, r0.xyxx, l(-0.500000, -0.500000, 0.000000, 0.000000)
mul r0.xy, r0.xyxx, cb9[5].xxxx
add r0.z, -r0.z, cb9[5].y
add r0.w, r0.w, cb9[5].y
add r0.w, -r0.z, r0.w
add r0.z, -r0.z, r1.y
div r0.w, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w
mul_sat r0.z, r0.w, r0.z
mad r0.w, r0.z, l(-2.000000), l(3.000000)
mul r0.z, r0.z, r0.z
mul r0.z, r0.z, r0.w
sample_indexable(texture2d)(float,float,float,float) r1.xyzw, v1.xyxx, t5.xyzw, s5
mad r2.xyz, cb9[4].wwww, cb9[4].xyzx, -r1.xyzx
mad r2.xyz, r0.zzzz, r2.xyzx, r1.xyzx
mul r1.xyz, r2.xyzx, cb11[0].xyzx
mul r1.xyzw, r1.xyzw, v3.xxxw
mul r2.xyz, cb11[2].yyyy, cb11[3].xyzx
mad r2.xyz, r2.xyzx, l(1.075583, 0.994183, 0.930234, 0.000000), -r1.xyzx
mul r0.w, cb5[3].z, cb11[2].z
add r3.xy, l(1.000000, 2.000000, 0.000000, 0.000000), -cb11[2].zzzz
mul r3.yz, r3.yyyy, v1.zzwz
sample_indexable(texture2d)(float,float,float,float) r4.xyz, r3.yzyy, t3.xyzw, s3
ld_indexable(texture2d)(float,float,float,float) r2.w, l(0, 0, 0, 0), t3.xyzw
lt r3.w, l(0.490000), r2.w
lt r2.w, r2.w, l(0.510000)
and r2.w, r2.w, r3.w
mad_sat r3.w, cb11[2].y, l(2.500000), l(-1.500000)
mul r4.w, r3.w, r4.x
mul r5.y, r4.w, l(1.300000)
mov r5.z, r4.y
movc r5.yz, r2.wwww, r5.yyzy, r4.yyzy
add r4.y, -r4.x, r5.z
mad r5.x, r0.w, r4.y, r4.x
mul r4.xy, r5.xyxx, cb11[2].xxxx
mul r0.w, r3.x, v3.z
mad r4.z, v3.z, r3.x, l(-1.000000)
mad r3.x, r3.x, r4.z, l(1.000000)
mul r0.w, r0.w, cb11[2].x
mul r4.x, r4.x, r3.x
mad r3.x, -r4.y, r3.x, l(1.000000)
mad r1.xyz, r4.xxxx, r2.xyzx, r1.xyzx
mul o0.w, r1.w, cb2[11].x
add r2.xyz, -r1.xyzx, r5.zzzz
mad r1.xyz, r0.wwww, r2.xyzx, r1.xyzx
sample_indexable(texture2d)(float,float,float,float) r2.xy, v1.xyxx, t6.xyzw, s6
mad r0.xy, r0.xyxx, r0.zzzz, r2.xyxx
mad r0.xy, r0.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000)
dp2 r0.z, r0.xyxx, r0.xyxx
add r0.z, -r0.z, l(1.000000)
sqrt r0.z, |r0.z|
max r0.w, l(0.001000), cb11[3].w
mul r0.xy, r0.wwww, r0.xyxx
mul r4.xyzw, r0.yyyy, v6.zxyz
mad r4.xyzw, r0.xxxx, v5.zxyz, r4.xyzw
mad r0.xyzw, r0.zzzz, v2.zxyz, r4.xyzw
dp3 r1.w, r0.yzwy, r0.yzwy
rsq r1.w, r1.w
mul r0.yzw, r0.yyzw, r1.wwww
mad r0.x, r0.x, r1.w, l(-0.350000)
mad r0.yzw, r0.yyzw, l(0.000000, 0.500000, 0.500000, 0.500000), l(0.000000, 0.500000, 0.500000, 0.500000)
lt r1.w, cb11[2].y, l(1.000000)
and r1.w, r1.w, r2.w
if_nz r1.w
  mul r2.xy, r3.yzyy, l(0.380000, 0.380000, 0.000000, 0.000000)
  lt r2.zw, r3.yyyz, l(0.000000, 0.000000, 1.052632, 1.710526)
  and r1.w, r2.w, r2.z
  movc r1.w, r1.w, l(-1.000000), l(1.000000)
  mul r1.w, r1.w, cb4[5].x
  mad r2.xy, -r1.wwww, l(-0.002700, -0.002700, 0.000000, 0.000000), r2.xyxx
  mul r2.xy, r2.xyxx, l(7.700000, 7.700000, 0.000000, 0.000000)
  sample_indexable(texture2d)(float,float,float,float) r2.xy, r2.xyxx, t3.zwxy, s3
  dp2 r1.w, r2.xyxx, r2.xyxx
  min r1.w, r1.w, l(1.000000)
  add r2.z, -r1.w, l(1.000000)
  dp3 r1.w, r2.xyzx, r2.xyzx
  sqrt r1.w, r1.w
  mul r2.xyz, r0.yzwy, r1.wwww
  mul r4.xyz, r2.xyzx, l(1.097000, 1.097000, 1.097000, 0.000000)
  mad r5.xy, r3.yzyy, l(0.760000, 0.760000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000)
  mul r6.xyz, r5.yxyy, l(3.200000, 38.400002, -76.800003, 0.000000)
  mul r1.w, l(-0.600000), cb4[5].x
  mad r2.w, cb4[5].x, l(-0.600000), -r6.x
  round_ni r3.y, r6.y
  mul r3.y, r3.y, l(12345.564453)
  sincos r3.y, null, r3.y
  mul r3.y, r3.y, l(7658.759766)
  frc r3.y, r3.y
  add r5.z, r2.w, r3.y
  mul r6.xyw, r5.xzxz, l(38.400002, 2.000000, 0.000000, 2.000000)
  round_ni r3.yz, r6.xxwx
  dp2 r2.w, r3.yzyy, l(35.200001, 2376.100098, 0.000000, 0.000000)
  mul r7.xyz, r2.wwww, l(0.103100, 0.113690, 0.137870, 0.000000)
  frc r7.xyz, r7.xyzx
  add r8.xyz, r7.yzxy, l(19.190001, 19.190001, 19.190001, 0.000000)
  dp3 r2.w, r7.xyzx, r8.xyzx
  add r7.xyz, r2.wwww, r7.xyzx
  add r3.yz, r7.yyzy, r7.xxyx
  mul r3.yz, r7.zzxz, r3.yyzy
  frc r3.yz, r3.yyzy
  frc r6.xyw, r6.xyxw
  add r7.xy, r3.yzyy, l(-0.500000, -0.500000, 0.000000, 0.000000)
  sincos r2.w, null, r6.z
  add r3.y, -|r7.x|, l(0.500000)
  mul r2.w, r2.w, r3.y
  mad r2.w, r2.w, r7.y, r7.x
  mad r3.y, cb4[5].x, l(-0.800000), r3.z
  frc r3.y, r3.y
  mul r3.z, r3.y, l(1.176471)
  min r3.z, r3.z, l(1.000000)
  mad r4.w, r3.z, l(-2.000000), l(3.000000)
  mul r3.z, r3.z, r3.z
  mul r3.z, r3.z, r4.w
  add r3.y, r3.y, l(-1.000000)
  mul r3.y, r3.y, l(-6.666668)
  min r3.y, r3.y, l(1.000000)
  mad r4.w, r3.y, l(-2.000000), l(3.000000)
  mul r3.y, r3.y, r3.y
  mul r3.y, r3.y, r4.w
  mad r3.y, r3.z, r3.y, l(-0.500000)
  mad r3.yz, r3.yyyy, l(0.000000, 0.900000, 0.900000, 0.000000), l(0.000000, 0.500000, -0.500000, 0.000000)
  add r6.xyz, r6.xywx, l(-0.500000, -0.000000, -1.000000, 0.000000)
  div r3.z, l(1.000000, 1.000000, 1.000000, 1.000000), r3.z
  mul_sat r3.z, r3.z, r6.z
  mad r4.w, r3.z, l(-2.000000), l(3.000000)
  mul r3.z, r3.z, r3.z
  mul r3.z, r3.z, r4.w
  sqrt r3.z, r3.z
  add r4.w, r3.y, r3.y
  div r4.w, l(1.000000, 1.000000, 1.000000, 1.000000), r4.w
  mul r4.w, r4.w, r6.y
  min r4.w, r4.w, l(1.000000)
  mad r5.z, r4.w, l(-2.000000), l(3.000000)
  mul r4.w, r4.w, r4.w
  mul r4.w, r4.w, r5.z
  sqrt r4.w, r4.w
  mul r3.z, r3.z, r4.w
  mul r4.w, r3.z, l(0.380000)
  mul r5.z, r3.z, r3.z
  mad r2.w, -r2.w, l(0.700000), r6.x
  mad r4.w, r5.z, l(0.150000), -r4.w
  mad r2.w, -r3.z, l(0.380000), |r2.w|
  div r3.z, l(1.000000, 1.000000, 1.000000, 1.000000), r4.w
  mul_sat r2.w, r2.w, r3.z
  mad r3.z, r2.w, l(-2.000000), l(3.000000)
  mul r2.w, r2.w, r2.w
  mul r2.w, r2.w, r3.z
  add r3.y, -r3.y, r6.y
  add r3.y, r3.y, l(1.000000)
  mul_sat r3.y, r3.y, l(0.980392)
  mad r3.z, r3.y, l(-2.000000), l(3.000000)
  mul r3.y, r3.y, r3.y
  mul r3.y, r3.y, r3.z
  mul r2.w, r2.w, r3.y
  mad r1.w, r5.y, l(-5.920000), r1.w
  mul r3.yz, r5.xxyx, l(0.000000, 71.040001, -142.080002, 0.000000)
  round_ni r3.y, r3.y
  mul r3.y, r3.y, l(12345.564453)
  sincos r3.y, null, r3.y
  mul r3.y, r3.y, l(7658.759766)
  frc r3.y, r3.y
  add r5.w, r1.w, r3.y
  mul r5.xyz, r5.xwwx, l(71.040001, 2.000000, 2.000000, 0.000000)
  round_ni r6.xy, r5.xzxx
  dp2 r1.w, r6.xyxx, l(35.200001, 2376.100098, 0.000000, 0.000000)
  mul r6.xyz, r1.wwww, l(0.103100, 0.113690, 0.137870, 0.000000)
  frc r6.xyz, r6.xyzx
  add r7.xyz, r6.yzxy, l(19.190001, 19.190001, 19.190001, 0.000000)
  dp3 r1.w, r6.xyzx, r7.xyzx
  add r6.xyz, r1.wwww, r6.xyzx
  add r6.yw, r6.yyyz, r6.xxxy
  mul r6.xy, r6.zxzz, r6.ywyy
  frc r6.xy, r6.xyxx
  frc r5.xyz, r5.xyzx
  add r6.xz, r6.xxyx, l(-0.500000, 0.000000, -0.500000, 0.000000)
  sincos r1.w, null, r3.z
  add r3.y, -|r6.x|, l(0.500000)
  mul r1.w, r1.w, r3.y
  mad r1.w, r1.w, r6.z, r6.x
  mad r3.y, cb4[5].x, l(-0.800000), r6.y
  frc r3.y, r3.y
  mul r3.z, r3.y, l(1.176471)
  min r3.z, r3.z, l(1.000000)
  mad r4.w, r3.z, l(-2.000000), l(3.000000)
  mul r3.z, r3.z, r3.z
  mul r3.z, r3.z, r4.w
  add r3.y, r3.y, l(-1.000000)
  mul r3.y, r3.y, l(-6.666668)
  min r3.y, r3.y, l(1.000000)
  mad r4.w, r3.y, l(-2.000000), l(3.000000)
  mul r3.y, r3.y, r3.y
  mul r3.y, r3.y, r4.w
  mad r3.y, r3.z, r3.y, l(-0.500000)
  mad r3.yz, r3.yyyy, l(0.000000, 0.900000, 0.900000, 0.000000), l(0.000000, 0.500000, -0.500000, 0.000000)
  add r5.xyz, r5.xyzx, l(-0.500000, -0.000000, -1.000000, 0.000000)
  div r3.z, l(1.000000, 1.000000, 1.000000, 1.000000), r3.z
  mul_sat r3.z, r3.z, r5.z
  mad r4.w, r3.z, l(-2.000000), l(3.000000)
  mul r3.z, r3.z, r3.z
  mul r3.z, r3.z, r4.w
  sqrt r3.z, r3.z
  add r4.w, r3.y, r3.y
  div r4.w, l(1.000000, 1.000000, 1.000000, 1.000000), r4.w
  mul r4.w, r4.w, r5.y
  min r4.w, r4.w, l(1.000000)
  mad r5.z, r4.w, l(-2.000000), l(3.000000)
  mul r4.w, r4.w, r4.w
  mul r4.w, r4.w, r5.z
  sqrt r4.w, r4.w
  mul r3.z, r3.z, r4.w
  mul r4.w, r3.z, l(0.380000)
  mul r5.z, r3.z, r3.z
  mad r1.w, -r1.w, l(0.700000), r5.x
  mad r4.w, r5.z, l(0.150000), -r4.w
  mad r1.w, -r3.z, l(0.380000), |r1.w|
  div r3.z, l(1.000000, 1.000000, 1.000000, 1.000000), r4.w
  mul_sat r1.w, r1.w, r3.z
  mad r3.z, r1.w, l(-2.000000), l(3.000000)
  mul r1.w, r1.w, r1.w
  mul r1.w, r1.w, r3.z
  add r3.y, -r3.y, r5.y
  add r3.y, r3.y, l(1.000000)
  mul_sat r3.y, r3.y, l(0.980392)
  mad r3.z, r3.y, l(-2.000000), l(3.000000)
  mul r3.y, r3.y, r3.y
  mul r3.y, r3.y, r3.z
  mul r1.w, r1.w, r3.y
  max r1.w, r1.w, r2.w
  min r1.w, r1.w, l(1.000000)
  mad r2.xyz, -r2.xyzx, l(1.097000, 1.097000, 1.097000, 0.000000), r0.yzwy
  mad r2.xyz, r1.wwww, r2.xyzx, r4.xyzx
  add r4.xyz, r0.yzwy, -r2.xyzx
  mad r0.yzw, r3.wwww, r4.xxyz, r2.xxyz
endif 
mul_sat r0.x, r0.x, l(1.538462)
mul r0.x, r0.x, cb5[3].z
add r1.w, l(1.000000), -cb2[12].z
mul r0.x, r0.x, r1.w
mul r2.xy, v3.xxxx, cb2[11].zyzz
mul r0.x, r0.x, r2.x
mul r1.w, r3.x, v3.x
mul r2.x, r1.w, l(0.200000)
mad r3.xy, r1.wwww, l(0.200000, -0.100000, 0.000000, 0.000000), l(0.400000, 1.000000, 0.000000, 0.000000)
mov_sat r3.x, r3.x
mul r1.w, r0.x, r3.y
mad r1.w, r1.w, l(-0.500000), l(1.000000)
mul o0.xyz, r1.xyzx, r1.wwww
mov r2.z, l(0.976563)
mad r1.xy, r3.xxxx, l(0.500000, 0.488281, 0.000000, 0.000000), -r2.xzxx
max r1.xy, r1.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000)
mad r1.xy, r1.xyxx, r0.xxxx, r2.xzxx
sqrt o2.xy, r1.xyxx
add_sat r0.x, cb2[12].z, cb3[49].w
mul r1.y, r0.x, r2.y
mad r1.x, cb2[11].z, v3.x, cb3[45].w
mul r1.xy, r1.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
sqrt o3.xy, r1.xyxx
mov o1.xyz, r0.yzwy
mov o1.w, l(0)
mov o2.zw, l(0,0,0.980000,1.000000)
mov o3.zw, l(0,0,0,1.001884)
ret