//++++++++++++++++++++++++++++++++++++
// QuantV 3.0.0 shader
// Original code by Rockstar Games
//++++++++++++++++++++++++++++++++++++
vs_5_0
dcl_constantbuffer cb1[16], immediateIndexed
dcl_constantbuffer cb3[59], immediateIndexed
dcl_constantbuffer cb12[26], immediateIndexed
dcl_input v0.xyzw
dcl_input v1.xy
dcl_input v2.xy
dcl_output_siv o0.xyzw, position
dcl_output o1.xyzw
dcl_output o2.xyzw
dcl_output o3.xyzw
dcl_output o4.xyzw
dcl_output o5.xyzw
dcl_output o6.xyzw
dcl_output o7.xyzw
dcl_temps 6
mul r0.xyzw, v0.yyyy, cb1[9].xyzw
mad r0.xyzw, v0.xxxx, cb1[8].xyzw, r0.xyzw
mad r0.xyzw, v0.zzzz, cb1[10].xyzw, r0.xyzw
mad o0.xyzw, v0.wwww, cb1[11].xyzw, r0.xyzw
mad r0.xy, v1.xyxx, l(2.000000e+000, 2.000000e+000, 0.000000e+000, 0.000000e+000), l(-1.000000e+000, -1.000000e+000, 0.000000e+000, 0.000000e+000)
dp2 r0.x, r0.xyxx, r0.xyxx
add r0.x, -r0.x, l(1.000000e+000)
mul r0.y, l(1.000000e-001), cb12[19].y
mul r1.xyz, v0.yyyy, cb1[1].xyzx
mad r1.xyz, v0.xxxx, cb1[0].xyzx, r1.xyzx
mad r1.xyz, v0.zzzz, cb1[2].xyzx, r1.xyzx
mad r1.xyz, v0.wwww, cb1[3].xyzx, r1.xyzx
add r2.z, r1.z, -cb12[23].x
add r2.xy, r1.xyxx, -cb1[15].xyxx
dp3 r0.z, r2.xyzx, r2.xyzx
rsq r0.z, r0.z
mad r2.yw, -r2.xxxy, r0.zzzz, cb12[12].xxxy
mul r0.zw, r0.zzzz, r2.xxxz
mul r2.xy, r0.yyyy, r2.ywyy
mad o1.zw, -r2.xxxy, r0.xxxx, v1.xxxy
mov o1.xy, v1.xyxx
dp3 r0.x, r1.xyzx, r1.xyzx
rsq r0.x, r0.x
mul_sat r0.x, r0.x, r1.z
mul r0.x, r0.x, l(5.000000e+000)
min o2.w, r0.x, l(1.000000e+000)
mov o2.xyz, r1.xyzx
add r1.xyz, r1.xyzx, -cb1[15].xyzx
add r0.x, |r0.w|, -cb12[5].x
add r0.y, l(1.000000e+000), -cb12[5].x
div_sat r0.x, r0.x, r0.y
div_sat r0.x, r0.x, cb12[5].w
mad r0.y, r0.z, l(-5.000000e-001), l(5.000000e-001)
sqrt r0.y, r0.y
add r0.z, r0.y, -cb12[2].w
add r1.w, l(1.000000e+000), -cb12[2].w
div r0.z, r0.z, r1.w
add r2.xyz, cb12[1].xyzx, -cb12[2].xyzx
mad r2.xyz, r0.zzzz, r2.xyzx, cb12[2].xyzx
div r0.z, r0.y, cb12[2].w
add r3.xyz, -cb12[0].xyzx, cb12[2].xyzx
mad r3.xyz, r0.zzzz, r3.xyzx, cb12[0].xyzx
lt r0.z, r0.y, cb12[2].w
movc r2.xyz, r0.zzzz, r3.xyzx, r2.xyzx
add r3.xyz, -r2.xyzx, cb12[4].xyzx
add r0.z, -cb12[5].y, cb12[5].z
mad r0.y, r0.y, r0.z, cb12[5].y
mad r4.xyz, r0.yyyy, r3.xyzx, r2.xyzx
mul r3.xyz, r3.xyzx, r0.yyyy
add r5.xyz, -r4.xyzx, cb12[3].xyzx
mad r0.xyz, r0.xxxx, r5.xyzx, r4.xyzx
div r1.w, |r0.w|, cb12[5].x
lt r0.w, |r0.w|, cb12[5].x
mad r2.xyz, r1.wwww, r3.xyzx, r2.xyzx
movc r0.xyz, r0.wwww, r2.xyzx, r0.xyzx
mul o3.xyz, r0.xyzx, cb12[8].xxxx
dp2 r0.x, v2.xyxx, l(1.298980e+001, 7.823300e+001, 0.000000e+000, 0.000000e+000)
sincos r0.x, null, r0.x
mul r0.x, r0.x, l(4.375855e+004)
frc r0.x, r0.x
mad r0.x, r0.x, l(3.141593e+000), l(5.888438e+000)
sincos r0.x, null, r0.x
add r0.x, |r0.x|, l(-1.000000e+000)
max r0.y, -cb12[25].y, -cb12[25].x
add r0.y, r0.y, l(1.350000e+004)
max r0.z, -cb12[24].z, -cb12[24].y
mul r0.z, r0.z, l(2.000000e+004)
max r0.y, r0.z, r0.y
max r0.y, r0.y, l(4.000000e+003)
min r2.z, r0.y, l(2.000000e+004)
mov r2.xy, l(0,0,0,0)
mul r0.yzw, r2.yyzy, v0.yyyy
mad r0.yzw, v0.xxxx, r2.zzyy, r0.yyzw
mad r2.xyz, v0.zzzz, r2.xyzx, r0.yzwy
add r0.yz, r2.zzzz, l(0.000000e+000, 1.000000e+003, 1.100000e+003, 0.000000e+000)
mul_sat r0.y, r0.y, l(4.170000e-005)
mov o6.w, r0.z
add r0.y, -r0.y, l(1.000000e+000)
mul r0.y, r0.y, r0.y
mad o3.w, r0.y, r0.x, l(1.000000e+000)
add r0.xy, v1.xyxx, l(-5.000000e-001, -5.000000e-001, 0.000000e+000, 0.000000e+000)
add r3.xyzw, r0.xyyx, cb12[23].wwzz
add r0.xy, r0.xyxx, cb12[23].yyyy
mul o5.zw, r0.xxxy, cb12[20].xxxx
mul o4.xyzw, r3.xyzw, cb12[17].yyww
add r2.w, r2.z, l(1.000000e+003)
dp3 r0.x, r2.xywx, r2.xywx
rsq r0.x, r0.x
mul r0.xyz, r0.xxxx, r2.xywx
mul r2.xyz, r0.yyyy, l(-7.129249e-001, 9.529420e-002, -6.947351e-001, 0.000000e+000)
mad r0.xyw, r0.xxxx, l(-5.027945e-001, -7.600642e-001, 0.000000e+000, 4.117038e-001), r2.xyxz
mad r0.xyz, r0.zzzz, l(4.888104e-001, -6.428230e-001, -5.897821e-001, 0.000000e+000), r0.xywx
mov o5.xy, r0.xyxx
mov o6.z, r0.z
mul o6.xy, v2.xyxx, l(1.200000e+001, 1.200000e+001, 0.000000e+000, 0.000000e+000)
dp3 r0.x, r1.xyzx, r1.xyzx
sqrt r0.y, r0.x
rsq r0.x, r0.x
mul r0.xzw, r0.xxxx, r1.xxyz
add r1.x, r0.y, -cb3[50].x
max r1.x, r1.x, l(0.000000e+000)
div r0.y, r1.x, r0.y
mul r0.y, r0.y, r1.z
mul r1.y, r0.y, cb3[52].z
lt r0.y, l(1.000000e-002), |r0.y|
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.y, r0.y, r1.y, l(1.000000)
mul r1.y, r1.x, cb3[51].w
mul r1.x, r1.x, -cb3[51].z
mul r1.x, r1.x, l(1.442695e+000)
exp r1.x, r1.x
add r1.x, -r1.x, l(1.000000e+000)
mul r0.y, r0.y, r1.y
min r0.y, r0.y, l(1.000000e+000)
mul r0.y, r0.y, l(1.442695e+000)
exp r0.y, r0.y
min r0.y, r0.y, l(1.000000e+000)
add r0.y, -r0.y, l(1.000000e+000)
mul_sat o7.w, r0.y, cb3[52].y
dp3_sat r0.y, r0.xzwx, cb3[53].xyzx
dp3_sat r0.x, r0.xzwx, cb3[54].xyzx
log r0.x, r0.x
mul r0.x, r0.x, cb3[54].w
exp r0.x, r0.x
log r0.y, r0.y
mul r0.y, r0.y, cb3[53].w
exp r0.y, r0.y
add r1.yzw, -cb3[56].xxyz, cb3[58].xxyz
mad r0.xzw, r0.xxxx, r1.yyzw, cb3[56].xxyz
add r1.yzw, -r0.xxzw, cb3[55].xxyz
mad r0.xyz, r0.yyyy, r1.yzwy, r0.xzwx
add r0.xyz, r0.xyzx, -cb3[57].xyzx
mad o7.xyz, r1.xxxx, r0.xyzx, cb3[57].xyzx
ret