// MANUALLY DUMPED [ShaderRegex\ShaderFixes\ShaderRegEx_UE4_UNIVERSAL2_C44.ini\_11_Lights4] Water lighting.
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.16 on Sat Jun 19 20:43:43 2021
//
//
// 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[171], immediateIndexed
dcl_constantbuffer cb1[4], immediateIndexed
dcl_constantbuffer cb2[1023], dynamicIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, mode_default
dcl_sampler s3, mode_default
dcl_sampler s4, 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) 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_resource_texture2d (float,float,float,float) t4
dcl_resource_texture2d (float,float,float,float) t5
dcl_resource_texture2d (float,float,float,float) t6
dcl_resource_buffer (uint,uint,uint,uint) t7
dcl_resource_buffer (uint,uint,uint,uint) t8
dcl_resource_texturecubearray (float,float,float,float) t9
dcl_resource_texture2d (float,float,float,float) t10
dcl_input_ps linear v0.xyzw
dcl_input_ps_siv linear noperspective v1.xy, position
dcl_output o0.xyzw
dcl_temps 26
dcl_resource_texture2d (float,float,float,float) t125
sample_l_indexable(texture2d)(float,float,float,float) r0.xyzw, v0.xyxx, t1.xyzw, s1, l(0.000000)
mul r0.w, r0.w, l(255.000000)
round_ne r0.w, r0.w
ftou r0.w, r0.w
and r1.x, r0.w, l(15)
ine r1.yz, r1.xxxx, l(0, 0, 7, 0)
and r1.y, r1.z, r1.y
if_nz r1.y
  sample_l_indexable(texture2d)(float,float,float,float) r1.yzw, v0.xyxx, t0.wxyz, s0, l(0.000000)
  sample_l_indexable(texture2d)(float,float,float,float) r2.xyzw, v0.xyxx, t2.xyzw, s2, l(0.000000)
  sample_l_indexable(texture2d)(float,float,float,float) r3.xy, v0.xyxx, t3.xyzw, s3, l(0.000000)

  mul r3.zw, v0.xxxy, cb0[119].xxxy

  ftou r3.zw, r3.zzzw
  ftou r4.x, cb0[136].x
  iadd r3.z, r3.w, r3.z
  iadd r3.z, r4.x, r3.z
  and r3.z, r3.z, l(1)
  mad r1.yzw, r1.yyzw, l(0.000000, 2.000000, 2.000000, 2.000000), l(0.000000, -1.000000, -1.000000, -1.000000)
  dp3 r3.w, r1.yzwy, r1.yzwy
  rsq r3.w, r3.w
  mul r4.xyz, r1.yzwy, r3.wwww
  mad r2.w, r2.w, l(16.000000), l(-8.000000)
  exp r2.w, r2.w
  add r2.w, r2.w, l(-0.00390625000)
  and r0.w, r0.w, l(16)
  movc r3.xy, r0.wwww, l(0,0,0,0), r3.xyxx
  mul r0.w, r0.y, l(0.080000)
  mad r2.xyz, -r0.yyyy, l(0.080000, 0.080000, 0.080000, 0.000000), r2.xyzx
  mad r2.xyz, r0.xxxx, r2.xyzx, r0.wwww
  ieq r5.xy, r1.xxxx, l(5, 4, 0, 0)
  lt r0.w, l(0.000000), cb0[140].x
  lt r1.x, l(0.000000), cb0[170].w
  and r0.w, r0.w, r1.x
  movc r1.x, r3.z, l(0), l(1.000000)
  mul r6.xyz, r1.xxxx, r2.xyzx
  movc r6.xyz, r0.wwww, r6.xyzx, r2.xyzx
  movc r2.xyz, r5.xxxx, r6.xyzx, r2.xyzx
  mad r2.xyz, r2.xyzx, cb0[122].wwww, cb0[122].xyzx
  sample_l_indexable(texture2d)(float,float,float,float) r0.w, v0.xyxx, t5.yzwx, s5, l(0.000000)
  sample_l_indexable(texture2d)(float,float,float,float) r1.x, v0.xyxx, t4.xyzw, s4, l(0.000000)
  mad r3.z, r1.x, cb0[53].x, cb0[53].y
  mad r1.x, r1.x, cb0[53].z, -cb0[53].w
  div r1.x, l(1.000000, 1.000000, 1.000000, 1.000000), r1.x
  add r1.x, r1.x, r3.z
  mul r5.xz, r1.xxxx, v0.zzwz

//StartLineForRemove
//Shader Fix 1/1

ld_indexable(texture2d)(float,float,float,float) r13.xyzw, l(0, 0, 0, 0), t125.xyzw

mad r5.x, -r13.x, r1.x, r5.x

  mul r16.xyzw, r5.zzzz, cb0[41].xyzw
  mad r16.xyzw, r5.xxxx, cb0[40].xyzw, r16.xyzw
  mad r16.xyzw, r1.xxxx, cb0[42].xyzw, r16.xyzw
  add r16.xyzw, r16.xyzw, cb0[43].xyzw
  div r15.xzw, r16.xxyz, r16.wwww

mad r5.x, r13.x, r13.y, r5.x
//Shader Fix 1/1

  mul r6.xyzw, r5.zzzz, cb0[41].xyzw
  mad r6.xyzw, r5.xxxx, cb0[40].xyzw, r6.xyzw

//skip this shader be cougth by another RegEx
  mad r6.xyzw, r1.xxxx, cb0[42].xyzw, r6.xyzw
  add r6.xyzw, r6.xyzw, cb0[43].xyzw


  div r5.xzw, r6.xxyz, r6.wwww
  add r6.xyz, r15.xzwx, -cb0[55].xyzx
  dp3 r3.z, r6.xyzx, r6.xyzx
  rsq r3.z, r3.z
  mul r6.xyz, r3.zzzz, r6.xyzx
  dp3 r0.x, -r6.xyzx, r4.xyzx
  add r3.z, r0.x, r0.x
  mad r6.yzw, r3.zzzz, r4.xxyz, r6.xxyz
  mov_sat r0.x, r0.x
  mul r3.z, r0.z, r0.z
  mad r4.w, -r0.z, r0.z, l(1.000000)
  sqrt r7.x, r4.w
  mad r7.x, r0.z, r0.z, r7.x
  mul r4.w, r4.w, r7.x
  mad r1.yzw, -r1.yyzw, r3.wwww, r6.yyzw
  mad r4.yzw, r4.wwww, r1.yyzw, r4.xxyz
  sample_indexable(texture2d)(float,float,float,float) r7.xyzw, v0.xyxx, t10.xyzw, s8
  add r1.y, -r7.w, l(1.000000)
  mad r8.xyzw, r7.xyzw, l(1.000000, 1.000000, 1.000000, -1.000000), l(0.000000, 0.000000, 0.000000, 1.000000)
  add r9.xyzw, -r8.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000)
  mad r9.xyzw, r3.xxxx, r9.xyzw, r8.xyzw
  movc r8.xyzw, r5.yyyy, r9.xyzw, r8.xyzw
  add r1.z, r0.w, r0.x
  log r1.z, r1.z
  mul r1.z, r1.z, r3.z
  exp r1.z, r1.z
  add r0.w, r0.w, r1.z
  add_sat r0.w, r0.w, l(-1.000000)
  mul r1.z, r0.w, r8.w
  add r3.zw, v1.xxxy, -cb0[117].xxxy
  ftou r3.zw, r3.zzzw
  mad r1.x, r1.x, cb1[3].x, cb1[3].y
  log r1.x, r1.x
  mul r1.x, r1.x, cb1[3].z
  max r1.x, r1.x, l(0.000000)
  ftou r1.x, r1.x
  iadd r1.w, cb1[1].z, l(-1)
  umin r1.x, r1.w, r1.x
  ushr r3.zw, r3.zzzw, cb1[2].xxxx
  imad r1.x, r1.x, cb1[1].y, r3.w
  imad r1.x, r1.x, cb1[1].x, r3.z
  iadd r1.x, r1.x, cb1[0].w
  ishl r1.w, r1.x, l(1)
  ld_indexable(buffer)(uint,uint,uint,uint) r1.w, r1.wwww, t7.yzwx
  bfi r1.x, l(31), l(1), r1.x, l(1)
  ld_indexable(buffer)(uint,uint,uint,uint) r1.x, r1.xxxx, t7.xyzw
  log r3.z, r0.z
  mad r3.z, -r3.z, l(1.200000), l(1.000000)
  add r3.w, cb0[159].z, l(-1.000000)
  add r3.z, -r3.z, r3.w
  mov r4.x, l(0)
  mov r7.w, r1.z
  mov r8.w, l(0)
  mov r9.xyzw, l(0,0,0,1.000000)
  mov r10.x, l(0)
  loop
    uge r10.y, r10.x, r1.w
    breakc_nz r10.y
    lt r10.y, r7.w, l(0.001000)
    if_nz r10.y
      break
    endif
    iadd r10.y, r1.x, r10.x
    ld_indexable(buffer)(uint,uint,uint,uint) r10.y, r10.yyyy, t8.yxzw
    add r11.xyz, r5.xzwx, -cb2[r10.y + 0].xyzx
    dp3 r10.z, r11.xyzx, r11.xyzx
    sqrt r10.w, r10.z
    lt r11.w, r10.w, cb2[r10.y + 0].w
    if_nz r11.w
      div_sat r10.w, r10.w, cb2[r10.y + 0].w
      dp3 r11.w, r4.yzwy, r11.xyzx
      mad r10.z, -cb2[r10.y + 0].w, cb2[r10.y + 0].w, r10.z
      mad r10.z, r11.w, r11.w, -r10.z
      ge r12.x, r10.z, l(0.000000)
      sqrt r10.z, r10.z
      add r10.z, -r11.w, r10.z
      mad r11.xyz, r10.zzzz, r4.yzwy, r11.xyzx
      add r11.yzw, r11.xxyz, -cb2[r10.y + 682].xxyz
      mad r10.z, r10.w, l(2.500000), l(-1.500000)
      max r10.z, r10.z, l(0.000000)
      mul r10.w, r10.z, r10.z
      mad r10.z, -r10.z, l(2.000000), l(3.000000)
      mad r11.x, -r10.w, r10.z, l(1.000000)
      movc r11.xyzw, r12.xxxx, r11.xyzw, r4.xyzw
      mov r12.xyz, r11.yzwy
      mov r12.w, cb2[r10.y + 341].y
      sample_l_indexable(texturecubearray)(float,float,float,float) r12.xyzw, r12.xyzw, t9.xyzw, s7, r3.z
      mul r11.yzw, r12.xxyz, cb2[r10.y + 341].xxxx
      mul r11.yzw, r11.xxxx, r11.yyzw
      mad r9.xyz, r11.yzwy, r7.wwww, r9.xyzx
      mad r10.z, -r12.w, r11.x, l(1.000000)
      mul r7.w, r7.w, r10.z
      mul r10.y, r11.x, cb2[r10.y + 682].w
      mad r8.w, r10.y, r9.w, r8.w
      add r10.y, -r11.x, l(1.000000)
      mul r9.w, r9.w, r10.y
    endif
    iadd r10.x, r10.x, l(1)
  endloop
  mul r4.xyz, r9.xyzx, cb0[141].xyzx
  dp3 r1.z, cb0[141].xyzx, l(0.300000, 0.590000, 0.110000, 0.000000)
  mul r3.z, r1.z, r8.w
  mad_sat r4.w, r0.z, cb0[161].x, cb0[161].y
  mad r7.w, r4.w, l(-2.000000), l(3.000000)
  mul r4.w, r4.w, r4.w
  mul r4.w, r4.w, r7.w
  max r3.z, r3.z, l(0.000100)
  div r3.z, r2.w, r3.z
  min r3.z, r3.z, cb0[161].z
  add r3.z, r3.z, l(-1.000000)
  mad r3.z, r4.w, r3.z, l(1.000000)
  mad r4.xyz, r4.xyzx, r3.zzzz, r8.xyzx
  if_nz r5.y
    mov r0.y, r0.z
    sample_l_indexable(texture2d)(float,float,float,float) r8.xy, r0.xyxx, t6.xyzw, s6, l(0.000000)
    mul_sat r0.y, r2.y, l(50.000000)
    mul r0.y, r0.y, r8.y
    add r3.z, -r3.x, l(1.000000)
    mul r0.y, r0.y, r3.z
    mad r8.xyz, r2.xyzx, r8.xxxx, r0.yyyy
    mul r8.xyz, r4.xyzx, r8.xyzx
    add r0.y, -r0.x, l(1.000000)
    mul r3.z, r0.y, r0.y
    mul r3.z, r3.z, r3.z
    mul r4.w, r0.y, r3.z
    mad r0.y, -r3.z, r0.y, l(1.000000)
    mad r0.y, r0.y, l(0.040000), r4.w
    mul r3.z, r3.x, r0.y
    mad r0.y, -r0.y, r3.x, l(1.000000)
    mul r7.xyz, r3.zzzz, r7.xyzx
    mad r7.xyz, r8.xyzx, r0.yyyy, r7.xyzx
    mul r0.y, r1.y, r3.z
    mul r0.y, r0.w, r0.y
    log r0.w, r3.y
    mad r0.w, -r0.w, l(1.200000), l(1.000000)
    add r0.w, -r0.w, r3.w
    mov r6.x, l(0)
    mov r3.xzw, l(0,0,0,0)
    mov r1.y, r0.y
    mov r4.w, l(0)
    mov r5.y, l(1.000000)
    mov r7.w, l(0)
    loop
      uge r8.x, r7.w, r1.w
      breakc_nz r8.x
      lt r8.x, r1.y, l(0.001000)
      if_nz r8.x
        break
      endif
      iadd r8.x, r1.x, r7.w
      ld_indexable(buffer)(uint,uint,uint,uint) r8.x, r8.xxxx, t8.xyzw
      add r8.yzw, r5.xxzw, -cb2[r8.x + 0].xxyz
      dp3 r9.x, r8.yzwy, r8.yzwy
      sqrt r9.y, r9.x
      lt r9.z, r9.y, cb2[r8.x + 0].w
      if_nz r9.z
        div_sat r9.y, r9.y, cb2[r8.x + 0].w
        dp3 r9.z, r6.yzwy, r8.yzwy
        mad r9.x, -cb2[r8.x + 0].w, cb2[r8.x + 0].w, r9.x
        mad r9.x, r9.z, r9.z, -r9.x
        ge r9.w, r9.x, l(0.000000)
        sqrt r9.x, r9.x
        add r9.x, -r9.z, r9.x
        mad r8.yzw, r9.xxxx, r6.yyzw, r8.yyzw
        add r10.yzw, r8.yyzw, -cb2[r8.x + 682].xxyz
        mad r8.y, r9.y, l(2.500000), l(-1.500000)
        max r8.y, r8.y, l(0.000000)
        mul r8.z, r8.y, r8.y
        mad r8.y, -r8.y, l(2.000000), l(3.000000)
        mad r10.x, -r8.z, r8.y, l(1.000000)
        movc r9.xyzw, r9.wwww, r10.xyzw, r6.xyzw
        mov r10.xyz, r9.yzwy
        mov r10.w, cb2[r8.x + 341].y
        sample_l_indexable(texturecubearray)(float,float,float,float) r10.xyzw, r10.xyzw, t9.xyzw, s7, r0.w
        mul r8.yzw, r10.xxyz, cb2[r8.x + 341].xxxx
        mul r8.yzw, r9.xxxx, r8.yyzw
        mad r3.xzw, r8.yyzw, r1.yyyy, r3.xxzw
        mad r8.y, -r10.w, r9.x, l(1.000000)
        mul r1.y, r1.y, r8.y
        mul r8.x, r9.x, cb2[r8.x + 682].w
        mad r4.w, r8.x, r5.y, r4.w
        add r8.x, -r9.x, l(1.000000)
        mul r5.y, r5.y, r8.x
      endif
      iadd r7.w, r7.w, l(1)
    endloop
    mul r1.xyw, r3.xzxw, cb0[141].xyxz
    mul r0.y, r1.z, r4.w
    mad_sat r0.w, r3.y, cb0[161].x, cb0[161].y
    mad r1.z, r0.w, l(-2.000000), l(3.000000)
    mul r0.w, r0.w, r0.w
    mul r0.w, r0.w, r1.z
    max r0.y, r0.y, l(0.000100)
    div r0.y, r2.w, r0.y
    min r0.y, r0.y, cb0[161].z
    add r0.y, r0.y, l(-1.000000)
    mad r0.y, r0.w, r0.y, l(1.000000)
    mad r1.xyz, r1.xywx, r0.yyyy, r7.xyzx
  else
    sample_l_indexable(texture2d)(float,float,float,float) r0.xy, r0.xzxx, t6.xyzw, s6, l(0.000000)
    mul_sat r0.z, r2.y, l(50.000000)
    mul r0.y, r0.y, r0.z
    mad r0.xyz, r2.xyzx, r0.xxxx, r0.yyyy
    mul r1.xyz, r0.xyzx, r4.xyzx
  endif
  min r0.xyz, -r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
  mov r0.xyz, -r0.xyzx
else
  mov r0.xyz, l(0,0,0,0)
endif
mov o0.xyz, r0.xyzx
mov o0.w, l(0)
ret
// Approximately 0 instruction slots used
