// MANUALLY DUMPED [ShaderRegex\ShaderFixes\regex.ini\_Directional_or_Point_Lighting_and_Specular]
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.16 on Fri Dec 13 01:08:13 2019
//
//
// Note: shader requires additional functionality:
//       Early depth-stencil
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION              0   xyzw        0      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 | forceEarlyDepthStencil
dcl_constantbuffer cb0[37], dynamicIndexed
dcl_constantbuffer cb1[141], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, mode_default
dcl_sampler s3, 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_resource_texture2d (float,float,float,float) t3
dcl_input_ps_siv linear noperspective v0.xy, position
dcl_output o0.xyzw
dcl_temps 21
dcl_resource_texture2d (float,float,float,float) t125
dcl_resource_texture1d (float,float,float,float) t120
mul r0.xy, v0.xyxx, cb1[140].zwzz
sample_l_indexable(texture2d)(float,float,float,float) r0.z, r0.xyxx, t0.yzxw, s0, l(0.000000)
ieq r0.w, cb0[26].w, l(1)
lt r1.x, r0.z, l(0.875000)
and r0.w, r0.w, r1.x
if_nz r0.w
  mov o0.xyzw, l(1.000000,1.000000,1.000000,1.000000)
else
  ge r0.w, r0.z, l(0.875000)
  mad r1.x, r0.z, l(8.000000), l(-7.000000)
  movc r0.z, r0.w, r1.x, r0.z
  mad r0.w, r0.z, cb1[65].x, cb1[65].y
  mad r0.z, r0.z, cb1[65].z, -cb1[65].w
  div r0.z, l(1.000000, 1.000000, 1.000000, 1.000000), r0.z
  add r0.z, r0.z, r0.w
  mad r1.xy, v0.xyxx, cb1[140].zwzz, -cb1[67].wzww
  div r1.xy, r1.xyxx, cb1[67].xyxx
  // DJ-RK - Directional_or_Point_Lighting_and_Specular Fix
// Directional_or_Point_Lighting_and_Specular - stereo correction to r1
mul r1.xy, r0.zzzz, r1.xyxx
  ishl r0.w, cb0[26].w, l(2)
ld_indexable(texture2d)(float,float,float,float) r18.xyzw, l(0, 0, 0, 0), t125.xyzw
ld_indexable(texture1d)(float,float,float,float) r16.xyzw, l(0, 0, 0, 0), t120.xyzw
add r18.w, r0.z, -r18.y
mad r1.x, r18.w, -r18.x, r1.x


  mul r2.xyzw, r1.yyyy, cb0[r0.w + 30].xyzw
  mad r1.xyzw, r1.xxxx, cb0[r0.w + 29].xyzw, r2.xyzw
  mad r1.xyzw, r0.zzzz, cb0[r0.w + 31].xyzw, r1.xyzw
  add r1.xyzw, r1.xyzw, cb0[r0.w + 32].xyzw
  div r0.zw, r1.xxxy, r1.wwww
  min r1.x, r1.z, l(0.999990)
  mad r0.zw, r0.zzzw, cb0[1].xxxy, l(0.000000, 0.000000, -0.500000, -0.500000)
  frc r1.yw, r0.zzzw
  round_ni r0.zw, r0.zzzw
  add r0.zw, r0.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000)
  mul r0.zw, r0.zzzw, cb0[1].zzzw
  gather4_aoffimmi_indexable(-2,-2,0)(texture2d)(float,float,float,float) r2.xyzw, r0.zwzz, t3.xyzw, s3.x
  add r3.xyzw, -r1.xxxx, r2.xyzw
  mad_sat r3.xyzw, r3.xyzw, cb0[0].zzzz, l(1.000000, 1.000000, 1.000000, 1.000000)
  gather4_aoffimmi_indexable(0,-2,0)(texture2d)(float,float,float,float) r4.xyzw, r0.zwzz, t3.xyzw, s3.x
  add r5.xyzw, -r1.xxxx, r4.xyzw
  mad_sat r5.xyzw, r5.xyzw, cb0[0].zzzz, l(1.000000, 1.000000, 1.000000, 1.000000)
  gather4_aoffimmi_indexable(2,-2,0)(texture2d)(float,float,float,float) r6.xyzw, r0.zwzz, t3.xyzw, s3.x
  add r7.xyzw, -r1.xxxx, r6.xyzw
  mad_sat r7.xyzw, r7.xyzw, cb0[0].zzzz, l(1.000000, 1.000000, 1.000000, 1.000000)
  add r8.xy, -r1.ywyy, l(1.000000, 1.000000, 0.000000, 0.000000)
  mad r3.xy, r3.wxww, r8.xxxx, r3.zyzz
  add r3.xy, r5.wxww, r3.xyxx
  add r3.xy, r5.zyzz, r3.xyxx
  add r3.xy, r7.wxww, r3.xyxx
  mad r3.xy, r7.zyzz, r1.yyyy, r3.xyxx
  mad r3.x, r3.x, r8.y, r3.y
  gather4_aoffimmi_indexable(-2,0,0)(texture2d)(float,float,float,float) r5.xyzw, r0.zwzz, t3.xyzw, s3.x
  add r7.xyzw, -r1.xxxx, r5.xyzw
  mad_sat r7.xyzw, r7.xyzw, cb0[0].zzzz, l(1.000000, 1.000000, 1.000000, 1.000000)
  gather4_indexable(texture2d)(float,float,float,float) r9.xyzw, r0.zwzz, t3.xyzw, s3.x
  add r10.xyzw, -r1.xxxx, r9.xyzw
  mad_sat r10.xyzw, r10.xyzw, cb0[0].zzzz, l(1.000000, 1.000000, 1.000000, 1.000000)
  gather4_aoffimmi_indexable(2,0,0)(texture2d)(float,float,float,float) r11.xyzw, r0.zwzz, t3.xyzw, s3.x
  add r12.xyzw, -r1.xxxx, r11.xyzw
  mad_sat r12.xyzw, r12.xyzw, cb0[0].zzzz, l(1.000000, 1.000000, 1.000000, 1.000000)
  mad r3.yz, r7.wwxw, r8.xxxx, r7.zzyz
  add r3.yz, r10.wwxw, r3.yyzy
  add r3.yz, r10.zzyz, r3.yyzy
  add r3.yz, r12.wwxw, r3.yyzy
  mad r3.yz, r12.zzyz, r1.yyyy, r3.yyzy
  add r3.y, r3.z, r3.y
  add r3.x, r3.y, r3.x
  gather4_aoffimmi_indexable(-2,2,0)(texture2d)(float,float,float,float) r7.xyzw, r0.zwzz, t3.xyzw, s3.x
  add r10.xyzw, -r1.xxxx, r7.xyzw
  mad_sat r10.xyzw, r10.xyzw, cb0[0].zzzz, l(1.000000, 1.000000, 1.000000, 1.000000)
  gather4_aoffimmi_indexable(0,2,0)(texture2d)(float,float,float,float) r12.xyzw, r0.zwzz, t3.xyzw, s3.x
  add r13.xyzw, -r1.xxxx, r12.xyzw
  mad_sat r13.xyzw, r13.xyzw, cb0[0].zzzz, l(1.000000, 1.000000, 1.000000, 1.000000)
  gather4_aoffimmi_indexable(2,2,0)(texture2d)(float,float,float,float) r14.xyzw, r0.zwzz, t3.xyzw, s3.x
  add r15.xyzw, -r1.xxxx, r14.xyzw
  mad_sat r15.xyzw, r15.xyzw, cb0[0].zzzz, l(1.000000, 1.000000, 1.000000, 1.000000)
  mad r0.zw, r10.wwwx, r8.xxxx, r10.zzzy
  add r0.zw, r13.wwwx, r0.zzzw
  add r0.zw, r13.zzzy, r0.zzzw
  add r0.zw, r15.wwwx, r0.zzzw
  mad r0.zw, r15.zzzy, r1.yyyy, r0.zzzw
  mad r0.z, r0.w, r1.w, r0.z
  add r0.z, r0.z, r3.x
  sample_l_indexable(texture2d)(float,float,float,float) r0.w, r0.xyxx, t1.xyzw, s1, l(0.000000)
  sample_l_indexable(texture2d)(float,float,float,float) r0.x, r0.xyxx, t2.wxyz, s2, l(0.000000)
  mul r0.y, r0.w, l(255.000000)
  round_ne r0.y, r0.y
  ftou r0.y, r0.y
  and r0.yw, r0.yyyy, l(0, 15, 0, 16)
  ieq r3.xyzw, r0.yyyy, l(2, 3, 5, 6)
  or r1.x, r3.y, r3.x
  or r1.x, r3.z, r1.x
  or r1.x, r3.w, r1.x
  ieq r3.xy, r0.yyyy, l(7, 9, 0, 0)
  or r0.y, r1.x, r3.x
  or r0.y, r3.y, r0.y
  if_nz r0.y
    min r0.x, r0.x, l(0.999000)
    add r0.x, -r0.x, l(1.000000)
    log r0.x, r0.x
    mul r0.x, r0.x, l(-0.0346573591)
    movc r0.x, r0.w, l(-0.000000), r0.x
    or r0.y, r3.y, r3.x
    movc r0.x, r0.y, l(1.000000), r0.x
    add r0.y, r1.z, cb0[28].x
    mul r0.x, r0.x, cb0[28].y
    add r3.xyzw, -r2.xyzw, r0.yyyy
    max r3.xyzw, r3.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
    mul r3.xyzw, r0.xxxx, -r3.xyzw
    mul r3.xyzw, r3.xyzw, l(1.442695, 1.442695, 1.442695, 1.442695)
    exp r3.xyzw, r3.xyzw
    min r3.xyzw, r3.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000)
    lt r2.xyzw, l(0.990000, 0.990000, 0.990000, 0.990000), r2.xyzw
    movc r2.xyzw, r2.xyzw, l(1.000000,1.000000,1.000000,1.000000), r3.xyzw
    add r3.xyzw, -r4.xyzw, r0.yyyy
    max r3.xyzw, r3.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
    mul r3.xyzw, r0.xxxx, -r3.xyzw
    mul r3.xyzw, r3.xyzw, l(1.442695, 1.442695, 1.442695, 1.442695)
    exp r3.xyzw, r3.xyzw
    min r3.xyzw, r3.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000)
    lt r4.xyzw, l(0.990000, 0.990000, 0.990000, 0.990000), r4.xyzw
    movc r3.xyzw, r4.xyzw, l(1.000000,1.000000,1.000000,1.000000), r3.xyzw
    add r4.xyzw, -r6.xyzw, r0.yyyy
    max r4.xyzw, r4.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
    mul r4.xyzw, r0.xxxx, -r4.xyzw
    mul r4.xyzw, r4.xyzw, l(1.442695, 1.442695, 1.442695, 1.442695)
    exp r4.xyzw, r4.xyzw
    min r4.xyzw, r4.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000)
    lt r6.xyzw, l(0.990000, 0.990000, 0.990000, 0.990000), r6.xyzw
    movc r4.xyzw, r6.xyzw, l(1.000000,1.000000,1.000000,1.000000), r4.xyzw
    mad r1.xz, r2.wwxw, r8.xxxx, r2.zzyz
    add r1.xz, r3.wwxw, r1.xxzx
    add r1.xz, r3.zzyz, r1.xxzx
    add r1.xz, r4.wwxw, r1.xxzx
    mad r1.xz, r4.zzyz, r1.yyyy, r1.xxzx
    mad r0.w, r1.x, r8.y, r1.z
    add r2.xyzw, -r5.xyzw, r0.yyyy
    max r2.xyzw, r2.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
    mul r2.xyzw, r0.xxxx, -r2.xyzw
    mul r2.xyzw, r2.xyzw, l(1.442695, 1.442695, 1.442695, 1.442695)
    exp r2.xyzw, r2.xyzw
    min r2.xyzw, r2.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000)
    lt r3.xyzw, l(0.990000, 0.990000, 0.990000, 0.990000), r5.xyzw
    movc r2.xyzw, r3.xyzw, l(1.000000,1.000000,1.000000,1.000000), r2.xyzw
    add r3.xyzw, -r9.xyzw, r0.yyyy
    max r3.xyzw, r3.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
    mul r3.xyzw, r0.xxxx, -r3.xyzw
    mul r3.xyzw, r3.xyzw, l(1.442695, 1.442695, 1.442695, 1.442695)
    exp r3.xyzw, r3.xyzw
    min r3.xyzw, r3.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000)
    lt r4.xyzw, l(0.990000, 0.990000, 0.990000, 0.990000), r9.xyzw
    movc r3.xyzw, r4.xyzw, l(1.000000,1.000000,1.000000,1.000000), r3.xyzw
    add r4.xyzw, -r11.xyzw, r0.yyyy
    max r4.xyzw, r4.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
    mul r4.xyzw, r0.xxxx, -r4.xyzw
    mul r4.xyzw, r4.xyzw, l(1.442695, 1.442695, 1.442695, 1.442695)
    exp r4.xyzw, r4.xyzw
    min r4.xyzw, r4.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000)
    lt r5.xyzw, l(0.990000, 0.990000, 0.990000, 0.990000), r11.xyzw
    movc r4.xyzw, r5.xyzw, l(1.000000,1.000000,1.000000,1.000000), r4.xyzw
    mad r1.xz, r2.wwxw, r8.xxxx, r2.zzyz
    add r1.xz, r3.wwxw, r1.xxzx
    add r1.xz, r3.zzyz, r1.xxzx
    add r1.xz, r4.wwxw, r1.xxzx
    mad r1.xz, r4.zzyz, r1.yyyy, r1.xxzx
    add r1.x, r1.z, r1.x
    add r0.w, r0.w, r1.x
    add r2.xyzw, -r7.xyzw, r0.yyyy
    max r2.xyzw, r2.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
    mul r2.xyzw, r0.xxxx, -r2.xyzw
    mul r2.xyzw, r2.xyzw, l(1.442695, 1.442695, 1.442695, 1.442695)
    exp r2.xyzw, r2.xyzw
    min r2.xyzw, r2.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000)
    lt r3.xyzw, l(0.990000, 0.990000, 0.990000, 0.990000), r7.xyzw
    movc r2.xyzw, r3.xyzw, l(1.000000,1.000000,1.000000,1.000000), r2.xyzw
    add r3.xyzw, -r12.xyzw, r0.yyyy
    max r3.xyzw, r3.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
    mul r3.xyzw, r0.xxxx, -r3.xyzw
    mul r3.xyzw, r3.xyzw, l(1.442695, 1.442695, 1.442695, 1.442695)
    exp r3.xyzw, r3.xyzw
    min r3.xyzw, r3.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000)
    lt r4.xyzw, l(0.990000, 0.990000, 0.990000, 0.990000), r12.xyzw
    movc r3.xyzw, r4.xyzw, l(1.000000,1.000000,1.000000,1.000000), r3.xyzw
    add r4.xyzw, -r14.xyzw, r0.yyyy
    max r4.xyzw, r4.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
    mul r4.xyzw, r0.xxxx, -r4.xyzw
    mul r4.xyzw, r4.xyzw, l(1.442695, 1.442695, 1.442695, 1.442695)
    exp r4.xyzw, r4.xyzw
    min r4.xyzw, r4.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000)
    lt r5.xyzw, l(0.990000, 0.990000, 0.990000, 0.990000), r14.xyzw
    movc r4.xyzw, r5.xyzw, l(1.000000,1.000000,1.000000,1.000000), r4.xyzw
    mad r0.xy, r2.wxww, r8.xxxx, r2.zyzz
    add r0.xy, r3.wxww, r0.xyxx
    add r0.xy, r3.zyzz, r0.xyxx
    add r0.xy, r4.wxww, r0.xyxx
    mad r0.xy, r4.zyzz, r1.yyyy, r0.xyxx
    mad r0.x, r0.y, r1.w, r0.x
    add r0.x, r0.x, r0.w
    mul r0.x, r0.x, l(0.040000)
  else
    mov r0.x, l(1.000000)
  endif
  mad r0.y, r0.z, l(0.040000), l(-0.500000)
  mad_sat r0.y, r0.y, cb0[26].z, l(0.500000)
  mad r0.y, r0.y, r0.y, l(-1.000000)
  mad r0.y, cb0[26].y, r0.y, l(1.000000)
  mad r0.x, r0.x, r0.x, l(-1.000000)
  mad r0.x, cb0[26].y, r0.x, l(1.000000)
  sqrt o0.xyzw, r0.yxyx
endif
ret
// Approximately 0 instruction slots used
