// MANUALLY DUMPED [ShaderRegex\ShaderFixes\ShaderRegEx_UE4_UNIVERSAL2_C44.ini\_31_SpecialObject1][ShaderRegex\ShaderFixes\ShaderRegEx_UE4_UNIVERSAL2_C44.ini\_32_Objects41] Triangle strategy ambient occlusion false positive. Low.
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.16 on Sat Nov 26 11:25:59 2022
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD                 0   xyzw        0     NONE   float   xyzw
// SV_POSITION              0   xyzw        1      POS   float   xy
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[48], immediateIndexed
dcl_constantbuffer cb1[133], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_texture2d (float,float,float,float) t2
dcl_input_ps linear noperspective v0.xyzw
dcl_input_ps_siv linear noperspective v1.xy, position
dcl_output o0.xyzw
dcl_temps 16
dcl_resource_texture2d (float,float,float,float) t125
add r0.xyzw, v1.xyxy, l(-1.000000, 0.000000, 0.000000, -1.000000)
mul r0.xyzw, r0.xyzw, cb1[132].zwzw
sample_l_indexable(texture2d)(float,float,float,float) r0.x, r0.xyxx, t0.xyzw, s0, l(0.000000)
sample_l_indexable(texture2d)(float,float,float,float) r0.y, r0.zwzz, t0.yxzw, s0, l(0.000000)
mul r0.zw, v1.xxxy, cb1[132].zzzw
sample_l_indexable(texture2d)(float,float,float,float) r0.z, r0.zwzz, t0.yzxw, s0, l(0.000000)
add r0.x, -r0.x, r0.z
add r1.xyzw, v1.xyxy, l(1.000000, 0.000000, 0.000000, 1.000000)
mul r2.xyzw, r1.xyzw, cb1[132].zwzw
sample_l_indexable(texture2d)(float,float,float,float) r0.w, r2.xyxx, t0.yzwx, s0, l(0.000000)
sample_l_indexable(texture2d)(float,float,float,float) r2.x, r2.zwzz, t0.xyzw, s0, l(0.000000)
add r2.x, -r0.z, r2.x
add r0.w, -r0.z, r0.w
lt r2.y, |r0.x|, |r0.w|
movc r0.x, r2.y, r0.x, r0.w
add r0.x, r0.x, r0.z
mul r3.xyzw, r1.yyyy, cb1[45].xyzw
mad r3.xyzw, r1.xxxx, cb1[44].xyzw, r3.xyzw
mad r3.xyzw, r0.xxxx, cb1[46].xyzw, r3.xyzw
add r3.xyzw, r3.xyzw, cb1[47].xyzw
div r2.yzw, r3.zzxy, r3.wwww


mul r3.xyzw, v1.yyyy, cb1[45].xyzw
mad r3.xyzw, v1.xxxx, cb1[44].xyzw, r3.xyzw
//PS
mad r3.xyzw, r0.zzzz, cb1[46].xyzw, r3.xyzw
add r3.xyzw, r3.xyzw, cb1[47].xyzw

ld_indexable(texture2d)(float,float,float,float) r8.xyzw, l(0, 0, 0, 0), t125.xyzw
mov r10.x, l(44)
iadd r10.x, r10.x, l(-4)
div r11.xyz, r3.xyzx, r3.wwww
mov r11.w, l(1.0)
mul r9.xyzw, r11.yyyy, cb1[1].xyzw
mad r9.xyzw, r11.xxxx, cb1[0].xyzw, r9.xyzw
mad r9.xyzw, r11.zzzz, cb1[2].xyzw, r9.xyzw
mad r9.xyzw, r11.xyzw, cb1[3].xyzw, r9.xyzw
add r8.w, r9.w, -r8.y
//mad r9.x, -r8.w, r8.x, r9.x
mul r11.xyzw, r9.yyyy, cb1[r10.x + 1].xyzw
mad r11.xyzw, r9.xxxx, cb1[r10.x + 0].xyzw, r11.xyzw
mad r11.xyzw, r9.zzzz, cb1[r10.x + 2].xyzw, r11.xyzw
mad r11.xyzw, r9.wwww, cb1[r10.x + 3].xyzw, r11.xyzw
mov r3.xyz, r11.yzxy
//ObjectFixHere - cb1
add r2.yzw, r2.yyzw, -r3.yyzx
mul r4.xyzw, r1.wwww, cb1[45].xyzw
mad r1.xyzw, r1.zzzz, cb1[44].xyzw, r4.xyzw
add r0.x, -r0.y, r0.z
lt r0.y, |r0.x|, |r2.x|
movc r0.x, r0.y, r0.x, r2.x
add r0.x, r0.x, r0.z
mad r0.xyzw, r0.xxxx, cb1[46].xyzw, r1.xyzw
add r0.xyzw, r0.xyzw, cb1[47].xyzw
div r0.xyz, r0.yzxy, r0.wwww

mov r14.w, r0.w
ld_indexable(texture2d)(float,float,float,float) r12.xyzw, l(0, 0, 0, 0), t125.xyzw
mov r15.x, l(44)
iadd r15.x, r15.x, l(-4)
mul r13.xyzw, r0.yyyy, cb1[1].xyzw
mad r13.xyzw, r0.xxxx, cb1[0].xyzw, r13.xyzw
mad r13.xyzw, r0.zzzz, cb1[2].xyzw, r13.xyzw
add r13.xyzw, r13.xyzw, cb1[3].xyzw
add r12.w, r13.w, -r12.y
//mad r13.x, r12.x, -r12.w, r13.x
mul r0.xyzw, r13.yyyy, cb1[r15.x + 1].xyzw
mad r0.xyzw, r13.xxxx, cb1[r15.x + 0].xyzw, r0.xyzw
mad r0.xyzw, r13.zzzz, cb1[r15.x + 2].xyzw, r0.xyzw
mad r0.xyzw, r13.wwww, cb1[r15.x + 3].xyzw, r0.xyzw
mov r0.w, r14.w
//ObjectFixHere - cb1
add r0.xyz, -r3.xyzx, r0.xyzx
mul r1.xyz, r0.xyzx, r2.yzwy
mad r0.xyz, r2.wyzw, r0.yzxy, -r1.xyzx
mul r1.xyz, r0.yyyy, cb1[13].xyzx
mad r0.xyw, r0.xxxx, cb1[12].xyxz, r1.xyxz
mad r0.xyz, r0.zzzz, cb1[14].xyzx, r0.xywx
dp3 r0.w, r0.xyzx, r0.xyzx
rsq r0.w, r0.w
mul r0.yzw, r0.wwww, r0.xxyz
mov r1.z, l(1.000000)
mov r1.x, cb0[30].w
mul r1.y, cb0[28].w, cb0[30].w
mul r2.xyz, r0.yzwy, r1.xyzx
sample_l_indexable(texture2d)(float,float,float,float) r1.z, v0.xyxx, t0.yzxw, s0, l(0.000000)
mad r1.w, r1.z, cb1[65].z, -cb1[65].w
mad r1.z, r1.z, cb1[65].x, cb1[65].y
div r1.w, l(1.000000, 1.000000, 1.000000, 1.000000), r1.w
add r3.z, r1.w, r1.z
mul r1.z, r3.z, cb0[27].y
mul r1.z, r1.z, cb0[29].x
mul r3.xy, r3.zzzz, v0.zwzz
mad r2.xyz, r1.zzzz, r2.xyzx, r3.xyzx
add r1.zw, -r3.zzzz, l(0.000000, 0.000000, 1.000000, 1000.000000)
mad r1.zw, cb0[29].zzzz, r1.zzzw, r3.zzzz
mad_sat r2.w, r3.z, cb0[31].x, cb0[31].y
mul r1.z, r1.z, cb0[28].z
mul r1.w, r1.w, l(0.080000)
mul r3.xyz, r0.yzwy, r1.wwww
mad r4.xy, v0.xyxx, cb0[28].xyxx, cb0[30].xyxx
sample_indexable(texture2d)(float,float,float,float) r4.xy, r4.xyxx, t1.xyzw, s1
mad r4.xyz, r4.xxyx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
mul r4.yzw, r1.zzzz, r4.xxyz
mov r4.x, -r4.w
div r0.w, l(1.000000, 1.000000, 1.000000, 1.000000), r2.z
mul r5.xyzw, r0.wwww, r1.xyxy
div r1.y, l(1.000000, 1.000000, 1.000000, 1.000000), r1.y
mul r4.xyzw, r4.xyzw, r5.xyzw
div r5.xy, r2.xyxx, r2.zzzz
mad r5.zw, r4.xxxy, l(0.000000, 0.000000, -0.430000, -0.430000), r5.xxxy
mad r6.xy, cb0[47].xyxx, r5.zwzz, cb0[47].zwzz
mul r7.xyz, cb0[31].zzzz, l(0.166666672, 0.500000, 0.833333313, 0.000000)
log r7.xyz, r7.xyzx
sample_l_indexable(texture2d)(float,float,float,float) r0.w, r6.xyxx, t2.yzwx, s2, r7.x
mad r1.w, r0.w, cb1[65].z, -cb1[65].w
mad r0.w, r0.w, cb1[65].x, cb1[65].y
div r1.w, l(1.000000, 1.000000, 1.000000, 1.000000), r1.w
add r6.z, r0.w, r1.w
mul r6.xy, r5.zwzz, r6.zzzz
add r6.xyz, -r2.xyzx, r6.xyzx
div r1.x, l(1.000000, 1.000000, 1.000000, 1.000000), cb0[30].w
mov r1.z, l(1.000000)
mul r6.xyz, r1.xyzx, r6.xyzx
dp3 r0.w, r6.xyzx, r6.xyzx
dp3 r1.w, r6.xyzx, r3.xyzx
div_sat r0.w, r1.w, r0.w
add r0.w, -r0.w, l(1.000000)
mad r0.w, r0.w, r0.w, l(0.000100)
mad r5.zw, -r4.xxxy, l(0.000000, 0.000000, -0.430000, -0.430000), r5.xxxy
mad r6.xy, cb0[47].xyxx, r5.zwzz, cb0[47].zwzz
sample_l_indexable(texture2d)(float,float,float,float) r1.w, r6.xyxx, t2.yzwx, s2, r7.x
mad r3.w, r1.w, cb1[65].z, -cb1[65].w
mad r1.w, r1.w, cb1[65].x, cb1[65].y
div r3.w, l(1.000000, 1.000000, 1.000000, 1.000000), r3.w
add r6.z, r1.w, r3.w
mul r6.xy, r5.zwzz, r6.zzzz
add r6.xyz, -r2.xyzx, r6.xyzx
mul r6.xyz, r1.xyzx, r6.xyzx
dp3 r1.w, r6.xyzx, r6.xyzx
dp3 r3.w, r6.xyzx, r3.xyzx
div_sat r1.w, r3.w, r1.w
add r1.w, -r1.w, l(1.000000)
mad r0.w, r1.w, r1.w, r0.w
mul r6.xyzw, r4.xyzw, l(0.569800, 0.569800, -0.580000, -0.580000)
mad r4.zw, r4.zzzw, l(0.000000, 0.000000, 0.406000, 0.406000), r6.xxxy
mad r4.xy, r4.xyxx, l(0.814000, 0.814000, 0.000000, 0.000000), r6.zwzz
add r5.zw, r4.zzzw, r5.xxxy
add r4.zw, -r4.zzzw, r5.xxxy
mad r6.xy, cb0[47].xyxx, r5.zwzz, cb0[47].zwzz
sample_l_indexable(texture2d)(float,float,float,float) r1.w, r6.xyxx, t2.yzwx, s2, r7.y
mad r3.w, r1.w, cb1[65].z, -cb1[65].w
mad r1.w, r1.w, cb1[65].x, cb1[65].y
div r3.w, l(1.000000, 1.000000, 1.000000, 1.000000), r3.w
add r6.z, r1.w, r3.w
mul r6.xy, r5.zwzz, r6.zzzz
add r6.xyz, -r2.xyzx, r6.xyzx
mul r6.xyz, r1.xyzx, r6.xyzx
dp3 r1.w, r6.xyzx, r6.xyzx
dp3 r3.w, r6.xyzx, r3.xyzx
div_sat r1.w, r3.w, r1.w
add r1.w, -r1.w, l(1.000000)
mad r0.w, r1.w, r1.w, r0.w
mad r5.zw, cb0[47].xxxy, r4.zzzw, cb0[47].zzzw
sample_l_indexable(texture2d)(float,float,float,float) r1.w, r5.zwzz, t2.yzwx, s2, r7.y
mad r3.w, r1.w, cb1[65].z, -cb1[65].w
mad r1.w, r1.w, cb1[65].x, cb1[65].y
div r3.w, l(1.000000, 1.000000, 1.000000, 1.000000), r3.w
add r6.z, r1.w, r3.w
mul r6.xy, r4.zwzz, r6.zzzz
add r6.xyz, -r2.xyzx, r6.xyzx
mul r6.xyz, r1.xyzx, r6.xyzx
dp3 r1.w, r6.xyzx, r6.xyzx
dp3 r3.w, r6.xyzx, r3.xyzx
div_sat r1.w, r3.w, r1.w
add r1.w, -r1.w, l(1.000000)
mad r0.w, r1.w, r1.w, r0.w
add r4.zw, r4.xxxy, r5.xxxy
add r4.xy, -r4.xyxx, r5.xyxx
mad r5.xy, cb0[47].xyxx, r4.zwzz, cb0[47].zwzz
sample_l_indexable(texture2d)(float,float,float,float) r1.w, r5.xyxx, t2.yzwx, s2, r7.z
mad r3.w, r1.w, cb1[65].z, -cb1[65].w
mad r1.w, r1.w, cb1[65].x, cb1[65].y
div r3.w, l(1.000000, 1.000000, 1.000000, 1.000000), r3.w
add r5.z, r1.w, r3.w
mul r5.xy, r4.zwzz, r5.zzzz
add r5.xyz, -r2.xyzx, r5.xyzx
mul r5.xyz, r1.xyzx, r5.xyzx
dp3 r1.w, r5.xyzx, r3.xyzx
dp3 r3.w, r5.xyzx, r5.xyzx
div_sat r1.w, r1.w, r3.w
add r1.w, -r1.w, l(1.000000)
mad r0.w, r1.w, r1.w, r0.w
mad r4.zw, cb0[47].xxxy, r4.xxxy, cb0[47].zzzw
sample_l_indexable(texture2d)(float,float,float,float) r1.w, r4.zwzz, t2.yzwx, s2, r7.z
mad r3.w, r1.w, cb1[65].z, -cb1[65].w
mad r1.w, r1.w, cb1[65].x, cb1[65].y
div r3.w, l(1.000000, 1.000000, 1.000000, 1.000000), r3.w
add r5.z, r1.w, r3.w
mul r5.xy, r4.xyxx, r5.zzzz
add r2.xyz, -r2.xyzx, r5.xyzx
mul r1.xyz, r1.xyzx, r2.xyzx
dp3 r1.w, r1.xyzx, r3.xyzx
dp3 r1.x, r1.xyzx, r1.xyzx
div_sat r1.x, r1.w, r1.x
add r1.x, -r1.x, l(1.000000)
mad r0.w, r1.x, r1.x, r0.w
mul r1.x, r0.w, l(0.166663885)
mad r0.w, -r0.w, l(0.166663885), l(1.000000)
mad r0.w, r2.w, r0.w, r1.x
log r0.w, r0.w
mul r0.w, r0.w, cb0[27].x
exp r0.w, r0.w
add r0.w, -r0.w, l(1.000000)
mad r0.x, -r0.w, cb0[27].w, l(1.000000)
deriv_rtx_fine r1.xyz, r0.xyzx
ftou r2.xy, v1.xyxx
bfi r2.xy, l(1, 1, 0, 0), l(1, 1, 0, 0), r2.xyxx, l(0, 0, 0, 0)
iadd r2.xy, r2.xyxx, l(-1, -1, 0, 0)
itof r2.xy, r2.xyxx
mad r1.xyz, -r1.xyzx, r2.xxxx, r0.xyzx
dp2 r0.w, r1.yzyy, r1.yzyy
add r0.w, -r0.w, l(1.000000)
sqrt r1.w, r0.w
dp2 r0.w, r0.yzyy, r0.yzyy
add r0.w, -r0.w, l(1.000000)
sqrt r3.z, r0.w
mov r3.xy, r0.yzyy
dp3_sat r0.w, r3.xyzx, r1.yzwy
mul r0.w, r0.w, r0.w
mul r0.w, r0.w, r0.w
deriv_rty_fine r1.yzw, r0.xxyz
mad r2.xyz, -r1.yzwy, r2.yyyy, r0.xyzx
dp2 r0.y, r2.yzyy, r2.yzyy
add r0.y, -r0.y, l(1.000000)
sqrt r2.w, r0.y
dp3_sat r0.y, r3.xyzx, r2.yzwy
mul r0.y, r0.y, r0.y
mad r0.z, r0.y, r0.y, r0.w
add r0.z, r0.z, l(1.000000)
div r0.z, l(1.000000, 1.000000, 1.000000, 1.000000), r0.z
mul r0.yw, r0.yyyz, r0.yyyw
mul r0.w, r1.x, r0.w
mad r0.x, r0.z, r0.x, r0.w
mul r0.y, r0.z, r0.y
mad o0.xyzw, r0.yyyy, r2.xxxx, r0.xxxx
ret
// Approximately 0 instruction slots used
