// MANUALLY DUMPED [ShaderRegex\ShaderFixes\ShaderRegEx_UE4_UNIVERSAL2_C44.ini\_32_Objects01SSR] Triangle Strategy. Manual transparency fix. Sidequest 1.
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.16 on Sat Dec 10 11:25:46 2022
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position              0   xyzw        0      POS   float   xyz
// TEXCOORD                 0   xyzw        1     NONE   float   xy
// PRIMITIVE_ID             0   x           2     NONE    uint   x
// TEXCOORD                 7   xyz         3     NONE   float   xyz
// SV_IsFrontFace           0   x           4    FFACE    uint
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
// SV_Coverage              0    N/A    oMask COVERAGE    uint    YES
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[144], immediateIndexed
dcl_constantbuffer cb1[18], immediateIndexed
dcl_sampler s0, mode_default
dcl_resource_structured t0, 16
dcl_resource_texture2d (float,float,float,float) t1
dcl_input_ps_siv linear noperspective v0.xyz, position
dcl_input_ps linear v1.xy
dcl_input_ps constant v2.x
dcl_input_ps linear v3.xyz
dcl_output o0.xyzw
dcl_output oMask
dcl_temps 37
dcl_indexableTemp x0[16], 4
dcl_resource_texture2d (float,float,float,float) t125
ld_indexable(texture2d)(float,float,float,float) r3.xyzw, l(0, 0, 0, 0), t125.xyzw
mov x0[0].x, l(0.658823550)
mov x0[1].x, l(0.282352954)
mov x0[2].x, l(0.533333361)
mov x0[3].x, l(0.407843143)
mov x0[4].x, l(0)
mov x0[5].x, l(0.784313738)
mov x0[6].x, l(0.156862751)
mov x0[7].x, l(0.909803927)
mov x0[8].x, l(0.596078455)
mov x0[9].x, l(0.470588237)
mov x0[10].x, l(0.721568644)
mov x0[11].x, l(0.345098048)
mov x0[12].x, l(0.219607845)
mov x0[13].x, l(0.972549)
mov x0[14].x, l(0.0941176489)
mov x0[15].x, l(0.847058833)
add r0.xyz, v3.xyzx, -cb0[70].xyzx
mov r0.w, l(1.000000)
imad r1.xyzw, v2.xxxx, l(36, 36, 36, 36), l(6, 7, 8, 9)
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r2.x, r1.x, l(8), t0.xxxx
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r2.y, r1.y, l(8), t0.xxxx
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r2.z, r1.z, l(8), t0.xxxx
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r2.w, r1.w, l(8), t0.xxxx
dp4 r0.x, r0.xyzw, r2.xyzw
imad r0.yz, v2.xxxx, l(0, 36, 36, 0), l(0, 23, 24, 0)
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r0.y, r0.y, l(8), t0.xxxx
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r0.z, r0.z, l(8), t0.xxxx
add r0.xz, -r0.yyyy, r0.xxzx
div r0.x, r0.x, r0.z
mul_sat r0.x, r0.x, cb1[16].w
log r0.y, r0.x
ge r0.x, l(0.000000), r0.x
mul r0.y, r0.y, cb1[17].x
exp r0.y, r0.y
movc r0.x, r0.x, l(0), r0.y

mul r21.xyzw, v0.yyyy, cb0[45].xyzw
mad r21.xyzw, v0.xxxx, cb0[44].xyzw, r21.xyzw
mad r21.xyzw, v0.zzzz, cb0[46].xyzw, r21.xyzw
add r21.xyzw, r21.xyzw, cb0[47].xyzw

mov r20.xyz, v0.xyzx
mad r22.x, r3.y, r21.w, l(-1.0)
mul r22.x, r22.x, cb0[130].x
mul r22.x, r22.x, l(0.5)
mad r20.x, r3.x, r22.x, r20.x

add r0.yz, r20.xxyx, -cb0[129].xxyx
mad r1.xy, r0.yzyy, cb0[130].zwzz, l(-0.500000, -0.500000, 0.000000, 0.000000)

mad r0.y, -r3.x, r22.x, r0.y

ftou r0.yz, r0.yyzy
dp2 r0.w, r1.xyxx, r1.xyxx
sqrt r0.w, r0.w
div r0.w, r0.w, cb1[15].x
add r0.w, -r0.w, l(1.000000)
mul r1.x, r0.w, cb1[15].y
mul r1.x, r1.x, r1.x
mul r1.x, r1.x, l(1.44269514)
exp r1.x, r1.x
div r1.x, l(1.000000, 1.000000, 1.000000, 1.000000), r1.x
add r1.x, -r1.x, l(1.000000)
mul_sat r1.x, r1.x, cb1[15].z
add r1.x, -r1.x, l(1.000000)
ge r1.y, r0.w, l(0.000000)
lt r0.w, l(0.000010), |r0.w|
movc r1.x, r1.y, r1.x, l(1.000000)
movc r0.w, r0.w, r1.x, l(1.000000)

mul r1.xyzw, v0.yyyy, cb0[45].xyzw
mad r1.xyzw, r20.xxxx, cb0[44].xyzw, r1.xyzw
//PS
mad r1.xyzw, v0.zzzz, cb0[46].xyzw, r1.xyzw
add r1.xyzw, r1.xyzw, cb0[47].xyzw

//PS
div r1.xyz, r1.xyzx, r1.wwww

//mov r5.w, r1.w
//ld_indexable(texture2d)(float,float,float,float) r3.xyzw, l(0, 0, 0, 0), t125.xyzw
//mov r6.x, l(44)
//iadd r6.x, r6.x, l(-4)
//mul r4.xyzw, r1.yyyy, cb0[1].xyzw
//mad r4.xyzw, r1.xxxx, cb0[0].xyzw, r4.xyzw
//mad r4.xyzw, r1.zzzz, cb0[2].xyzw, r4.xyzw
//add r4.xyzw, r4.xyzw, cb0[3].xyzw
//add r3.w, r4.w, -r3.y
//mad r4.x, r3.x, -r3.w, r4.x
//mul r1.xyzw, r4.yyyy, cb0[r6.x + 1].xyzw
//mad r1.xyzw, r4.xxxx, cb0[r6.x + 0].xyzw, r1.xyzw
//mad r1.xyzw, r4.zzzz, cb0[r6.x + 2].xyzw, r1.xyzw
//mad r1.xyzw, r4.wwww, cb0[r6.x + 3].xyzw, r1.xyzw
//mov r1.w, r5.w
////ObjectFixHere - cb0
add r1.xyz, r1.xyzx, -cb0[70].xyzx
add r1.xyz, r1.xyzx, -cb0[67].xyzx
dp3 r1.x, r1.xyzx, r1.xyzx
sqrt r1.x, r1.x
add r1.x, r1.x, -cb1[13].w
max r1.x, r1.x, l(0.000000)
div_sat r1.x, r1.x, cb1[14].y
log r1.y, r1.x
ge r1.x, l(0.000000), r1.x
mul r1.y, r1.y, cb1[14].w
exp r1.y, r1.y
movc r1.x, r1.x, l(0), r1.y
min r1.y, r1.x, l(1.000000)
mad r0.w, r1.y, -r0.w, r0.w
add_sat r0.w, r0.w, r1.x
add r1.x, -cb1[16].z, cb1[16].y
mad r1.x, r0.w, r1.x, cb1[16].z
add r1.y, cb1[15].w, -cb1[16].x
mad r0.w, r0.w, r1.y, cb1[16].x
add r1.x, -r0.w, r1.x
mad r0.x, r0.x, r1.x, r0.w
mul r1.xy, v1.xyxx, cb1[1].xyxx
sample_b_indexable(texture2d)(float,float,float,float) r0.w, r1.xyxx, t1.xyzw, s0, cb0[143].y
mul r1.x, cb1[13].z, cb1[13].y
mad r0.x, r0.w, r1.x, r0.x
ge r0.w, r0.x, cb1[17].y
and r0.w, r0.x, r0.w
add r0.x, r0.x, -cb1[17].y
lt r0.x, l(0.000010), |r0.x|
and r0.x, r0.w, r0.x
bfi r0.z, l(2), l(2), r0.z, l(0)
bfi r0.y, l(2), l(0), r0.y, r0.z
mov r0.y, x0[r0.y + 0].x
add r0.x, -r0.y, r0.x
lt r0.y, l(0.000000), r0.x
lt r0.x, r0.x, l(0.000000)
iadd r0.x, -r0.y, r0.x
itof r0.x, r0.x
mov_sat r0.x, r0.x
add r0.x, r0.x, l(-0.333300)
lt r1.xyzw, l(0.006667, 0.166675, 0.333350, 0.500025), r0.xxxx
and r0.y, r1.x, l(8)
movc r0.y, r1.y, l(9), r0.y
movc r0.y, r1.z, l(13), r0.y
utof r0.z, r0.y
add r0.z, r0.z, l(-0.500000)
lt r0.xz, r0.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000)
movc r0.z, r1.w, l(0), r0.z
ilt r0.w, l(1), cb0[135].x
and r0.z, r0.w, r0.z
not r0.w, r0.w
discard_nz r0.z
and r0.x, r0.w, r0.x
or r0.z, r0.w, r1.w
movc oMask, r0.z, l(15), r0.y
discard_nz r0.x
mov o0.xyzw, l(0,0,0,0)
ret
// Approximately 0 instruction slots used
