//DBSZ lens flares CS 1.
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v0.6.198 on Fri Oct 11 18:17:14 2024
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Input
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Output
cs_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer CB0[30], immediateIndexed
dcl_constantbuffer CB1[145], immediateIndexed
dcl_resource_buffer (float,float,float,float) t0
dcl_resource_buffer (float,float,float,float) t1
dcl_resource_buffer (sint,sint,sint,sint) t2
dcl_resource_buffer (uint,uint,uint,uint) t3
dcl_resource_buffer (uint,uint,uint,uint) t4
dcl_uav_structured u0, 16
dcl_uav_structured u1, 16
dcl_uav_structured u2, 16
dcl_input vThreadIDInGroupFlattened
dcl_input vThreadGroupID.xyz
dcl_temps 44
dcl_resource_texture2d (float,float,float,float) t125
dcl_thread_group 64, 1, 1
ld_indexable(texture2d)(float,float,float,float) r35.xyzw, l(0, 0, 0, 0), t125.xyzw
ishl r0.x, vThreadGroupID.z, l(7)
iadd r0.x, r0.x, vThreadGroupID.y
ishl r0.x, r0.x, l(7)
iadd r0.x, r0.x, vThreadGroupID.x
bfi r0.x, l(26), l(6), r0.x, vThreadIDInGroupFlattened.x
imul null, r0.y, l(42), cb0[25].x
imad r0.z, cb0[25].x, l(42), l(1)
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r1.xyz, r0.z, l(0), u0.xyzx
imad r2.xyzw, cb0[25].xxxx, l(42, 42, 42, 42), l(2, 3, 4, 5)
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r3.xyz, r2.x, l(0), u0.xyzx
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r4.xyz, r2.y, l(0), u0.xyzx
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r5.xyz, r2.z, l(0), u0.xyzx
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r2.xyz, r2.w, l(0), u0.xyzx
imad r6.xyzw, cb0[25].xxxx, l(42, 42, 42, 42), l(10, 11, 12, 13)
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r7.xyz, r6.x, l(0), u0.xyzx
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r8.xyz, r6.y, l(0), u0.xyzx
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r9.xyz, r6.z, l(0), u0.xyzx
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r6.xyz, r6.w, l(0), u0.xyzx
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r0.y, r0.y, l(4), u0.xxxx
imad r0.w, cb0[25].x, l(42), l(18)
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r10.xyz, r0.w, l(0), u0.xyzx
uge r0.w, r0.x, cb0[25].y
if_nz r0.w
  ret
endif
iadd r0.y, r0.x, r0.y
ine r0.w, l(-1), cb0[26].x
if_nz r0.w
  ld_indexable(buffer)(uint,uint,uint,uint) r0.w, cb0[26].xxxx, t4.yzwx
  uge r0.w, r0.x, r0.w
  if_nz r0.w
    movc r0.w, cb0[29].z, l(1.910178180E-38), l(0x004fffff)
    store_structured u1.x, r0.y, l(0), r0.w
    ret
  endif
endif
ine r0.w, l(-1), cb0[6].z
if_nz r0.w
  iadd r0.w, r0.x, cb0[6].z
  ld_indexable(buffer)(uint,uint,uint,uint) r11.x, r0.wwww, t3.xyzw
else
  mov r11.x, r0.x
endif
ieq r0.w, l(-1), cb0[26].z
if_nz r0.w
  mov r1.w, l(0)
endif
if_z r0.w
  imad r0.w, cb0[26].z, cb0[5].w, r11.x
  ld_indexable(buffer)(sint,sint,sint,sint) r1.w, r0.wwww, t2.yzwx
endif
ine r0.w, r1.w, cb0[26].y
ieq r1.w, l(-1), cb0[27].x
if_nz r1.w
  mov r2.w, cb0[26].w
endif
if_z r1.w
  imad r1.w, cb0[27].x, cb0[5].w, r11.x
  ld_indexable(buffer)(sint,sint,sint,sint) r2.w, r1.wwww, t2.yzwx
endif
ine r1.w, r2.w, cb0[26].w
or r0.w, r0.w, r1.w
if_nz r0.w
  movc r0.w, cb0[29].z, l(1.910178180E-38), l(0x004fffff)
  store_structured u1.x, r0.y, l(0), r0.w
  ret
endif
ine r0.w, l(0), cb0[7].w
ieq r12.xyzw, l(-1, -1, -1, -1), cb0[14].wzyx
if_nz r12.x
  mov r13.xyz, cb0[20].xyzx
endif
if_z r12.x
  and r11.zw, l(0, 0, 0x80000000, 0x7fffffff), cb0[14].wwww
  if_nz r11.z
    imad r1.w, r11.w, cb0[5].z, r11.x
    ld_indexable(buffer)(float,float,float,float) r13.x, r1.wwww, t1.xyzw
    iadd r14.xy, r11.wwww, l(1, 2, 0, 0)
    imad r14.xy, r14.xyxx, cb0[5].zzzz, r11.xxxx
    ld_indexable(buffer)(float,float,float,float) r13.y, r14.xxxx, t1.yxzw
    ld_indexable(buffer)(float,float,float,float) r13.z, r14.yyyy, t1.yzxw
  else
    imad r1.w, r11.w, cb0[5].z, r11.x
    ld_indexable(buffer)(float,float,float,float) r13.x, r1.wwww, t0.xyzw
    iadd r11.zw, r11.wwww, l(0, 0, 1, 2)
    imad r11.zw, r11.zzzw, cb0[5].zzzz, r11.xxxx
    ld_indexable(buffer)(float,float,float,float) r13.y, r11.zzzz, t0.yxzw
    ld_indexable(buffer)(float,float,float,float) r13.z, r11.wwww, t0.yzxw
  endif
endif
ieq r11.zw, l(0, 0, -1, -1), cb0[16].xxxy
if_nz r11.z
  mov r14.xyz, cb0[24].xyzx
endif
if_z r11.z
  and r15.xy, l(0x80000000, 0x7fffffff, 0, 0), cb0[16].xxxx
  if_nz r15.x
    imad r1.w, r15.y, cb0[5].z, r11.x
    ld_indexable(buffer)(float,float,float,float) r14.x, r1.wwww, t1.xyzw
    iadd r15.xz, r15.yyyy, l(1, 0, 2, 0)
    imad r15.xz, r15.xxzx, cb0[5].zzzz, r11.xxxx
    ld_indexable(buffer)(float,float,float,float) r14.y, r15.xxxx, t1.yxzw
    ld_indexable(buffer)(float,float,float,float) r14.z, r15.zzzz, t1.yzxw
  else
    imad r1.w, r15.y, cb0[5].z, r11.x
    ld_indexable(buffer)(float,float,float,float) r14.x, r1.wwww, t0.xyzw
    iadd r15.xy, r15.yyyy, l(1, 2, 0, 0)
    imad r15.xy, r15.xyxx, cb0[5].zzzz, r11.xxxx
    ld_indexable(buffer)(float,float,float,float) r14.y, r15.xxxx, t0.yxzw
    ld_indexable(buffer)(float,float,float,float) r14.z, r15.yyyy, t0.yzxw
  endif
endif
if_nz r12.y
  mov r15.xyz, cb0[19].xyzx
endif
if_z r12.y
  and r12.xy, l(0x80000000, 0x7fffffff, 0, 0), cb0[14].zzzz
  if_nz r12.x
    imad r1.w, r12.y, cb0[5].z, r11.x
    ld_indexable(buffer)(float,float,float,float) r15.x, r1.wwww, t1.xyzw
    iadd r16.xy, r12.yyyy, l(1, 2, 0, 0)
    imad r16.xy, r16.xyxx, cb0[5].zzzz, r11.xxxx
    ld_indexable(buffer)(float,float,float,float) r15.y, r16.xxxx, t1.yxzw
    ld_indexable(buffer)(float,float,float,float) r15.z, r16.yyyy, t1.yzxw
  else
    imad r1.w, r12.y, cb0[5].z, r11.x
    ld_indexable(buffer)(float,float,float,float) r15.x, r1.wwww, t0.xyzw
    iadd r12.xy, r12.yyyy, l(1, 2, 0, 0)
    imad r12.xy, r12.xyxx, cb0[5].zzzz, r11.xxxx
    ld_indexable(buffer)(float,float,float,float) r15.y, r12.xxxx, t0.yxzw
    ld_indexable(buffer)(float,float,float,float) r15.z, r12.yyyy, t0.yzxw
  endif
endif
if_nz r12.z
  mov r16.xyzw, cb0[18].xyzw
endif
if_z r12.z
  and r12.xy, l(0x80000000, 0x7fffffff, 0, 0), cb0[14].yyyy
  if_nz r12.x
    imad r1.w, r12.y, cb0[5].z, r11.x
    ld_indexable(buffer)(float,float,float,float) r16.x, r1.wwww, t1.xyzw
    iadd r17.xyz, r12.yyyy, l(1, 2, 3, 0)
    imad r17.xyz, r17.xyzx, cb0[5].zzzz, r11.xxxx
    ld_indexable(buffer)(float,float,float,float) r16.y, r17.xxxx, t1.yxzw
    ld_indexable(buffer)(float,float,float,float) r16.z, r17.yyyy, t1.yzxw
    ld_indexable(buffer)(float,float,float,float) r16.w, r17.zzzz, t1.yzwx
  else
    imad r1.w, r12.y, cb0[5].z, r11.x
    ld_indexable(buffer)(float,float,float,float) r16.x, r1.wwww, t0.xyzw
    iadd r12.xyz, r12.yyyy, l(1, 2, 3, 0)
    imad r12.xyz, r12.xyzx, cb0[5].zzzz, r11.xxxx
    ld_indexable(buffer)(float,float,float,float) r16.y, r12.xxxx, t0.yxzw
    ld_indexable(buffer)(float,float,float,float) r16.z, r12.yyyy, t0.yzxw
    ld_indexable(buffer)(float,float,float,float) r16.w, r12.zzzz, t0.yzwx
  endif
endif
if_nz r12.w
  mov r12.xyz, cb0[17].xyzx
endif
if_z r12.w
  and r17.xy, l(0x80000000, 0x7fffffff, 0, 0), cb0[14].xxxx
  if_nz r17.x
    imad r1.w, r17.y, cb0[5].z, r11.x
    ld_indexable(buffer)(float,float,float,float) r12.x, r1.wwww, t1.xyzw
    iadd r17.xz, r17.yyyy, l(1, 0, 2, 0)
    imad r17.xz, r17.xxzx, cb0[5].zzzz, r11.xxxx
    ld_indexable(buffer)(float,float,float,float) r12.y, r17.xxxx, t1.yxzw
    ld_indexable(buffer)(float,float,float,float) r12.z, r17.zzzz, t1.yzxw
  else
    imad r1.w, r17.y, cb0[5].z, r11.x
    ld_indexable(buffer)(float,float,float,float) r12.x, r1.wwww, t0.xyzw
    iadd r17.xy, r17.yyyy, l(1, 2, 0, 0)
    imad r17.xy, r17.xyxx, cb0[5].zzzz, r11.xxxx
    ld_indexable(buffer)(float,float,float,float) r12.y, r17.xxxx, t0.yxzw
    ld_indexable(buffer)(float,float,float,float) r12.z, r17.yyyy, t0.yzxw
  endif
endif
movc r17.xyz, cb0[7].wwww, l(0,0,0,0), cb0[7].xyzx
mul r18.xyz, r12.xyzx, cb0[9].xyzx
dp4 r1.w, r16.xyzw, r16.xyzw
rsq r1.w, r1.w
mul r16.xyzw, r1.wwww, r16.xyzw

//mad r16.x, r35.x, l(-1.0), r16.x

mul r19.xyz, r16.wwww, cb0[11].xyzx
mad r19.xyz, r16.yzxy, cb0[11].wwww, r19.yzxy
mul r20.xyz, r16.xyzx, cb0[11].zxyz
mad r20.xyz, r16.zxyz, cb0[11].xyzx, -r20.xyzx
add r19.xyz, r19.xyzx, r20.xyzx
dp3 r1.w, r16.xyzx, cb0[11].xyzx
mad r1.w, cb0[11].w, r16.w, -r1.w
add r16.xyz, r19.xyzx, r19.xyzx
mul r20.xy, r16.zxzz, r19.zxzz
mul r2.w, r16.y, r19.y
mul r21.xyz, r1.wwww, r16.xyzx
mad r16.zw, r19.xxxz, r16.xxxz, r2.wwww

//mad r16.z, r35.x, l(4.75), r16.z

mad r22.xy, r19.zzzz, r16.yxyy, -r21.xyxx
add r23.xy, -r16.zwzz, l(1.000000, 1.000000, 0.000000, 0.000000)
mad r22.z, r19.x, r16.y, r21.z
mad r24.xy, r19.zzzz, r16.xyxx, r21.yxyy
mad r24.w, r19.x, r16.y, -r21.z
add r1.w, r20.y, r20.x
add r24.z, -r1.w, l(1.000000)
if_nz cb0[8].z
  switch cb0[8].z
    case l(1)
    dp3 r1.w, r13.xyzx, r13.xyzx
    sqrt r1.w, r1.w
    lt r2.w, l(0.000000), r1.w
    div r13.xyz, r13.xyzx, r1.wwww
    and r13.xyz, r2.wwww, r13.xyzx
    mul r19.x, r3.z, r10.x
    mul r19.y, r4.z, r10.y
    mul r19.z, r5.z, r10.z
    movc r19.xyz, cb0[7].wwww, r19.xyzx, l(0,0,1.000000,0)
    movc r16.xyz, r2.wwww, r13.zxyz, r19.zxyz
    break
    case l(2)
    if_nz cb0[7].w
      mad r13.xyz, r17.xyzx, l(2097152.000000, 2097152.000000, 2097152.000000, 0.000000), r15.xyzx
      mul r19.xyz, r4.xyzx, r13.yyyy
      mad r13.xyw, r13.xxxx, r3.xyxz, r19.xyxz
      mad r13.xyz, r13.zzzz, r5.xyzx, r13.xywx
      add r13.xyz, r2.xyzx, r13.xyzx
      mov r19.xyz, r1.xyzx
    endif
    movc r19.xyz, cb0[7].wwww, r19.xyzx, cb0[7].xyzx
    movc r13.xyz, cb0[7].wwww, r13.xyzx, r15.xyzx
    add r19.xyz, -r19.xyzx, cb1[64].xyzx
    add r13.xyz, -r13.xyzx, cb1[73].xyzx
    mul r20.xyz, r13.xyzx, r13.xyzx
    mad r21.xyz, r13.xyzx, l(9.536743164E-07, 9.536743164E-07, 9.536743164E-07, 0.000000), r19.xyzx
    mul r21.xy, r19.xyxx, r21.xyxx
    mul r20.xy, r20.xyxx, l(4.768371582E-07, 4.768371582E-07, 0.000000, 0.000000)
    add r1.w, r21.y, r21.x
    add r2.w, r20.y, r20.x
    mad r1.w, r19.z, r21.z, r1.w
    mad r2.w, r20.z, l(4.768371582E-07), r2.w
    mad r1.w, r2.w, l(4.768371582E-07), r1.w
    rsq r1.w, r1.w
    mul r1.w, r1.w, l(4.768371582E-07)
    mul r19.xyz, r1.wwww, r19.xyzx
    mul r13.xyz, r1.wwww, r13.xyzx
    mad r13.xyz, r19.xyzx, l(2097152.000000, 2097152.000000, 2097152.000000, 0.000000), r13.xyzx
    mul r19.xyz, r3.xyzx, r10.xxxx
    mul r20.xyz, r4.xyzx, r10.yyyy
    mul r21.xyz, r5.xyzx, r10.zzzz
    dp3 r19.x, r13.xyzx, r19.xyzx
    dp3 r19.y, r13.xyzx, r20.xyzx
    dp3 r19.z, r13.xyzx, r21.xyzx
    movc r16.xyz, cb0[7].wwww, r19.zxyz, r13.zxyz
    break
    default
    mul r13.xyz, r3.xyzx, r10.xxxx
    mul r19.xyz, r4.xyzx, r10.yyyy
    mul r20.xyz, r5.xyzx, r10.zzzz
    dp3 r13.x, -cb1[66].xyzx, r13.xyzx
    dp3 r13.y, -cb1[66].xyzx, r19.xyzx
    dp3 r13.z, -cb1[66].xyzx, r20.xyzx
    movc r16.xyz, cb0[7].wwww, r13.zxyz, -cb1[66].zxyz
    break
  endswitch
  if_nz cb0[12].y
    ieq r13.xy, l(1, 0, 0, 0), cb0[13].wwww
    not r1.w, r0.w
    and r2.w, r1.w, r13.y
    or r2.w, r2.w, r13.x
    and r3.w, r0.w, r2.w
    mul r13.xyz, r3.yzxy, r10.xxxx
    mul r19.xyz, r4.yzxy, r10.yyyy
    mul r20.xyz, r5.yzxy, r10.zzzz
    dp3 r21.z, cb0[13].yzxy, r13.xyzx
    dp3 r21.x, cb0[13].yzxy, r19.xyzx
    dp3 r21.y, cb0[13].yzxy, r20.xyzx
    not r2.w, r2.w
    and r1.w, r1.w, r2.w
    mul r19.xyz, r19.xyzx, cb0[13].yyyy
    mad r13.xyz, r13.xyzx, cb0[13].xxxx, r19.xyzx
    mad r13.xyz, r20.xyzx, cb0[13].zzzz, r13.xyzx
    movc r13.xyz, r1.wwww, r13.xyzx, cb0[13].yzxy
    movc r13.xyz, r3.wwww, r21.xzyx, r13.xzyx
	
	//mad r13.x, r35.x, l(4000.75), r13.x
	
    dp3 r1.w, r16.zyxz, r13.xyzx
    lt r1.w, l(0.990000), |r1.w|
    lt r2.w, l(0.990000), |r13.z|
    movc r19.xyz, r2.wwww, l(1.000000,0,0,0), l(0,0,1.000000,0)
    movc r19.xyz, r1.wwww, r19.xyzx, r16.yzxy
    mul r20.xyz, r13.xzyx, r19.xyzx
    mad r19.xyz, r13.yxzy, r19.yzxy, -r20.xyzx
    dp3 r1.w, r19.xyzx, r19.xyzx
    rsq r1.w, r1.w
    mul r19.xyz, r1.wwww, r19.xyzx
    mul r20.xyz, r13.xzyx, r19.xyzx
    mad r20.xyz, r19.zxyz, r13.zyxz, -r20.xyzx
    mov r21.x, r20.x
    mov r21.y, r19.y
    mov r21.z, r13.y
    mov r25.x, r20.y
    mov r25.y, r19.z
    mov r25.z, r13.x
    mov r13.x, r20.z
    mov r13.y, r19.x
  else
    ieq r1.w, l(3), cb0[8].z
    lt r2.w, l(0.990000), |r16.x|
    lt r3.w, l(0.000000), r16.x
    lt r4.w, r16.x, l(0.000000)
    iadd r3.w, r3.w, -r4.w
    itof r3.w, r3.w
    mul r19.xyz, r3.wwww, l(1.000000, 0.000000, 0.000000, 0.000000)
    movc r19.xyz, r2.wwww, r19.xyzx, l(0,0,1.000000,0)
    movc r19.xyz, r1.wwww, cb1[67].xyzx, r19.xyzx
    mul r20.xyz, r3.xyzx, r10.xxxx
    mul r26.xyz, r4.xyzx, r10.yyyy
    mul r27.xyz, r5.xyzx, r10.zzzz
    dp3 r20.x, r19.xyzx, r20.xyzx
    dp3 r20.y, r19.xyzx, r26.xyzx
    dp3 r20.z, r19.xyzx, r27.xyzx
    movc r19.xyz, cb0[7].wwww, r20.xyzx, r19.xyzx
    mul r20.xyz, r16.xyzx, r19.xyzx
    mad r19.xyz, r19.zxyz, r16.yzxy, -r20.xyzx
    dp3 r1.w, r19.xyzx, r19.xyzx
    rsq r1.w, r1.w
    mul r19.xyz, r1.wwww, r19.xyzx
    mul r20.xyz, r16.xyzx, r19.xyzx
    mad r13.xyz, r16.zxyz, r19.yzxy, -r20.xyzx
    mov r21.x, r16.y
    mov r21.y, r19.z
    mov r21.z, r13.x
    mov r25.x, r16.z
    mov r25.y, r19.x
    mov r25.z, r13.y
    mov r13.x, r16.x
    mov r13.y, r19.y
  endif
  mov r23.z, r24.x
  mov r23.w, r22.x
  dp3 r16.x, r23.xzwx, r21.xyzx
  dp3 r19.x, r23.xzwx, r25.xyzx
  dp3 r20.x, r23.xzwx, r13.xyzx
  mov r22.w, r23.y
  dp3 r16.y, r22.ywzy, r21.xyzx
  dp3 r19.y, r22.ywzy, r25.xyzx
  dp3 r20.y, r22.ywzy, r13.xyzx
  dp3 r16.z, r24.ywzy, r21.xyzx
  dp3 r19.z, r24.ywzy, r25.xyzx
  dp3 r20.z, r24.ywzy, r13.xyzx
  mov r23.xyz, r19.xyzx
  mov r24.xyz, r20.xyzx
else
  mov r16.x, r23.x
  mov r16.y, r22.y
  mov r16.z, r24.y
  mov r23.xz, r24.xxwx
  mov r24.xy, r22.xzxx
endif
if_nz cb0[7].w
  mad r13.xyz, r17.xyzx, l(2097152.000000, 2097152.000000, 2097152.000000, 0.000000), r15.xyzx
  mul r19.xyz, r4.xyzx, r13.yyyy
  mad r13.xyw, r13.xxxx, r3.xyxz, r19.xyxz
  mad r13.xyz, r13.zzzz, r5.xyzx, r13.xywx
  add r13.xyz, r2.xyzx, r13.xyzx
  mov r19.xyz, r1.xyzx
endif
movc r19.xyz, cb0[7].wwww, r19.xyzx, cb0[7].xyzx
movc r13.xyz, cb0[7].wwww, r13.xyzx, r15.xyzx
ieq r20.xyzw, l(-1, -1, -1, -1), cb0[15].xwzy
if_nz r20.x
  mov r1.w, cb0[20].w
endif
if_z r20.x
  and r21.xy, l(0x80000000, 0x7fffffff, 0, 0), cb0[15].xxxx
  if_nz r21.x
    imad r2.w, r21.y, cb0[5].z, r11.x
    ld_indexable(buffer)(float,float,float,float) r1.w, r2.wwww, t1.yzwx
  else
    imad r2.w, r21.y, cb0[5].z, r11.x
    ld_indexable(buffer)(float,float,float,float) r1.w, r2.wwww, t0.yzwx
  endif
endif
add r19.xyz, -r19.xyzx, cb1[64].xyzx
add r13.xyz, -r13.xyzx, cb1[73].xyzx
mul r21.xyz, r13.xyzx, r13.xyzx
mad r22.xyz, r13.xyzx, l(9.536743164E-07, 9.536743164E-07, 9.536743164E-07, 0.000000), r19.xyzx
mul r22.xy, r19.xyxx, r22.xyxx
mul r21.xy, r21.xyxx, l(4.768371582E-07, 4.768371582E-07, 0.000000, 0.000000)
add r2.w, r22.y, r22.x
add r3.w, r21.y, r21.x
mad r2.w, r19.z, r22.z, r2.w
mad r3.w, r21.z, l(4.768371582E-07), r3.w
mad r2.w, r3.w, l(4.768371582E-07), r2.w
rsq r2.w, r2.w
mul r2.w, r2.w, l(4.768371582E-07)
mul r19.xyz, r2.wwww, r19.xyzx
mul r13.xyz, r2.wwww, r13.xyzx
mad r13.xyz, r19.xyzx, l(2097152.000000, 2097152.000000, 2097152.000000, 0.000000), r13.xyzx
mul r19.xyz, r3.xyzx, r10.xxxx
mul r21.xyz, r4.xyzx, r10.yyyy
mul r22.xyz, r5.xyzx, r10.zzzz
dp3 r25.x, r13.xyzx, r19.xyzx
dp3 r25.y, r13.xyzx, r21.xyzx
dp3 r25.z, r13.xyzx, r22.xyzx
movc r13.xyz, cb0[7].wwww, r25.xyzx, r13.xyzx
mad r13.xyz, r13.xyzx, r1.wwww, r15.xyzx
dp3 r15.x, cb0[10].xyzx, r19.xyzx
dp3 r15.y, cb0[10].xyzx, r21.xyzx
dp3 r15.z, cb0[10].xyzx, r22.xyzx
movc r15.xyz, cb0[7].wwww, r15.xyzx, cb0[10].xyzx
add r15.xyz, r13.xyzx, r15.xyzx
mul r12.xyz, r12.xyzx, cb0[10].xyzx

//Position here.
//mad r12.x, r35.x, l(4.75), r12.x


dp3 r19.x, r12.xyzx, r16.xyzx
dp3 r19.y, r12.xyzx, r23.xyzx
dp3 r19.z, r12.xyzx, r24.xyzx
add r12.xyz, r13.xyzx, r19.xyzx
movc r12.xyz, cb0[12].xxxx, r15.xyzx, r12.xyzx
//mad r12.x, r35.x, l(4.75), r12.x

if_nz r20.y
  mov r13.xyz, cb0[23].xyzx
endif
if_z r20.y
  and r15.xy, l(0x80000000, 0x7fffffff, 0, 0), cb0[15].wwww
  if_nz r15.x
    imad r1.w, r15.y, cb0[5].z, r11.x
    ld_indexable(buffer)(float,float,float,float) r13.x, r1.wwww, t1.xyzw
    iadd r15.xz, r15.yyyy, l(1, 0, 2, 0)
    imad r15.xz, r15.xxzx, cb0[5].zzzz, r11.xxxx
    ld_indexable(buffer)(float,float,float,float) r13.y, r15.xxxx, t1.yxzw
    ld_indexable(buffer)(float,float,float,float) r13.z, r15.zzzz, t1.yzxw
  else
    imad r1.w, r15.y, cb0[5].z, r11.x
    ld_indexable(buffer)(float,float,float,float) r13.x, r1.wwww, t0.xyzw
    iadd r15.xy, r15.yyyy, l(1, 2, 0, 0)
    imad r15.xy, r15.xyxx, cb0[5].zzzz, r11.xxxx
    ld_indexable(buffer)(float,float,float,float) r13.y, r15.xxxx, t0.yxzw
    ld_indexable(buffer)(float,float,float,float) r13.z, r15.yyyy, t0.yzxw
  endif
endif
if_nz r20.z
  mov r15.xyzw, cb0[22].xyzw
endif
if_z r20.z
  and r19.xy, l(0x80000000, 0x7fffffff, 0, 0), cb0[15].zzzz
  if_nz r19.x
    imad r1.w, r19.y, cb0[5].z, r11.x
    ld_indexable(buffer)(float,float,float,float) r15.x, r1.wwww, t1.xyzw
    iadd r19.xzw, r19.yyyy, l(1, 0, 2, 3)
    imad r19.xzw, r19.xxzw, cb0[5].zzzz, r11.xxxx
    ld_indexable(buffer)(float,float,float,float) r15.y, r19.xxxx, t1.yxzw
    ld_indexable(buffer)(float,float,float,float) r15.z, r19.zzzz, t1.yzxw
    ld_indexable(buffer)(float,float,float,float) r15.w, r19.wwww, t1.yzwx
  else
    imad r1.w, r19.y, cb0[5].z, r11.x
    ld_indexable(buffer)(float,float,float,float) r15.x, r1.wwww, t0.xyzw
    iadd r19.xyz, r19.yyyy, l(1, 2, 3, 0)
    imad r19.xyz, r19.xyzx, cb0[5].zzzz, r11.xxxx
    ld_indexable(buffer)(float,float,float,float) r15.y, r19.xxxx, t0.yxzw
    ld_indexable(buffer)(float,float,float,float) r15.z, r19.yyyy, t0.yzxw
    ld_indexable(buffer)(float,float,float,float) r15.w, r19.zzzz, t0.yzwx
  endif
endif
if_nz r20.w
  mov r19.xyz, cb0[21].xyzx
endif
if_z r20.w
  and r20.xy, l(0x80000000, 0x7fffffff, 0, 0), cb0[15].yyyy
  if_nz r20.x
    imad r1.w, r20.y, cb0[5].z, r11.x
    ld_indexable(buffer)(float,float,float,float) r19.x, r1.wwww, t1.xyzw
    iadd r20.xz, r20.yyyy, l(1, 0, 2, 0)
    imad r20.xz, r20.xxzx, cb0[5].zzzz, r11.xxxx
    ld_indexable(buffer)(float,float,float,float) r19.y, r20.xxxx, t1.yxzw
    ld_indexable(buffer)(float,float,float,float) r19.z, r20.zzzz, t1.yzxw
  else
    imad r1.w, r20.y, cb0[5].z, r11.x
    ld_indexable(buffer)(float,float,float,float) r19.x, r1.wwww, t0.xyzw
    iadd r20.xy, r20.yyyy, l(1, 2, 0, 0)
    imad r20.xy, r20.xyxx, cb0[5].zzzz, r11.xxxx
    ld_indexable(buffer)(float,float,float,float) r19.y, r20.xxxx, t0.yxzw
    ld_indexable(buffer)(float,float,float,float) r19.z, r20.yyyy, t0.yzxw
  endif
endif
mul r20.xyz, r19.xyzx, cb0[9].xyzx
dp4 r1.w, r15.xyzw, r15.xyzw
rsq r1.w, r1.w
mul r15.xyzw, r1.wwww, r15.xyzw
mul r21.xyz, r15.wwww, cb0[11].xyzx
mad r21.xyz, r15.yzxy, cb0[11].wwww, r21.yzxy
mul r22.xyz, r15.xyzx, cb0[11].zxyz
mad r22.xyz, r15.zxyz, cb0[11].xyzx, -r22.xyzx
add r21.xyz, r21.xyzx, r22.xyzx
dp3 r1.w, r15.xyzx, cb0[11].xyzx
mad r1.w, cb0[11].w, r15.w, -r1.w
add r15.xyz, r21.xyzx, r21.xyzx
mul r22.xy, r15.zxzz, r21.zxzz
mul r2.w, r15.y, r21.y
mul r25.xyz, r1.wwww, r15.xyzx
mad r15.zw, r21.xxxz, r15.xxxz, r2.wwww
mad r26.xy, r21.zzzz, r15.yxyy, -r25.xyxx
add r27.xy, -r15.zwzz, l(1.000000, 1.000000, 0.000000, 0.000000)
mad r26.z, r21.x, r15.y, r25.z
mad r28.xy, r21.zzzz, r15.xyxx, r25.yxyy
mad r28.w, r21.x, r15.y, -r25.z
add r1.w, r22.y, r22.x
add r28.z, -r1.w, l(1.000000)
if_nz cb0[8].z
  switch cb0[8].z
    case l(1)
    dp3 r1.w, r14.xyzx, r14.xyzx
    sqrt r1.w, r1.w
    lt r2.w, l(0.000000), r1.w
    div r14.xyz, r14.xyzx, r1.wwww
    and r14.xyz, r2.wwww, r14.xyzx
    mul r21.x, r7.z, r10.x
    mul r21.y, r8.z, r10.y
    mul r21.z, r9.z, r10.z
    movc r21.xyz, cb0[7].wwww, r21.xyzx, l(0,0,1.000000,0)
    movc r15.xyz, r2.wwww, r14.zxyz, r21.zxyz
    break
    case l(2)
    if_nz cb0[7].w
      mad r14.xyz, r17.xyzx, l(2097152.000000, 2097152.000000, 2097152.000000, 0.000000), r13.xyzx
      mul r21.xyz, r8.xyzx, r14.yyyy
      mad r14.xyw, r14.xxxx, r7.xyxz, r21.xyxz
      mad r14.xyz, r14.zzzz, r9.xyzx, r14.xywx
      add r14.xyz, r6.xyzx, r14.xyzx
      mov r21.xyz, r1.xyzx
    endif
    movc r21.xyz, cb0[7].wwww, r21.xyzx, cb0[7].xyzx
    movc r14.xyz, cb0[7].wwww, r14.xyzx, r13.xyzx
    add r21.xyz, -r21.xyzx, cb1[64].xyzx
    add r14.xyz, -r14.xyzx, cb1[106].xyzx
    mul r22.xyz, r14.xyzx, r14.xyzx
    mad r25.xyz, r14.xyzx, l(9.536743164E-07, 9.536743164E-07, 9.536743164E-07, 0.000000), r21.xyzx
    mul r25.xy, r21.xyxx, r25.xyxx
    mul r22.xy, r22.xyxx, l(4.768371582E-07, 4.768371582E-07, 0.000000, 0.000000)
    add r1.w, r25.y, r25.x
    add r2.w, r22.y, r22.x
    mad r1.w, r21.z, r25.z, r1.w
    mad r2.w, r22.z, l(4.768371582E-07), r2.w
    mad r1.w, r2.w, l(4.768371582E-07), r1.w
    rsq r1.w, r1.w
    mul r1.w, r1.w, l(4.768371582E-07)
    mul r21.xyz, r1.wwww, r21.xyzx
    mul r14.xyz, r1.wwww, r14.xyzx
    mad r14.xyz, r21.xyzx, l(2097152.000000, 2097152.000000, 2097152.000000, 0.000000), r14.xyzx
    mul r21.xyz, r7.xyzx, r10.xxxx
    mul r22.xyz, r8.xyzx, r10.yyyy
    mul r25.xyz, r9.xyzx, r10.zzzz
    dp3 r21.x, r14.xyzx, r21.xyzx
    dp3 r21.y, r14.xyzx, r22.xyzx
    dp3 r21.z, r14.xyzx, r25.xyzx
    movc r15.xyz, cb0[7].wwww, r21.zxyz, r14.zxyz
    break
    default
    mul r14.xyz, r7.xyzx, r10.xxxx
    mul r21.xyz, r8.xyzx, r10.yyyy
    mul r22.xyz, r9.xyzx, r10.zzzz
    dp3 r14.x, -cb1[95].xyzx, r14.xyzx
    dp3 r14.y, -cb1[95].xyzx, r21.xyzx
    dp3 r14.z, -cb1[95].xyzx, r22.xyzx
    movc r15.xyz, cb0[7].wwww, r14.zxyz, -cb1[95].zxyz
    break
  endswitch
  if_nz cb0[12].y
    ieq r14.xy, l(1, 0, 0, 0), cb0[13].wwww
    not r1.w, r0.w
    and r2.w, r1.w, r14.y
    or r2.w, r2.w, r14.x
    and r0.w, r0.w, r2.w
    mul r14.xyz, r7.yzxy, r10.xxxx
    mul r21.xyz, r8.yzxy, r10.yyyy
    mul r22.xyz, r9.yzxy, r10.zzzz
    dp3 r25.z, cb0[13].yzxy, r14.xyzx
    dp3 r25.x, cb0[13].yzxy, r21.xyzx
    dp3 r25.y, cb0[13].yzxy, r22.xyzx
    not r2.w, r2.w
    and r1.w, r1.w, r2.w
    mul r21.xyz, r21.xyzx, cb0[13].yyyy
    mad r14.xyz, r14.xyzx, cb0[13].xxxx, r21.xyzx
    mad r14.xyz, r22.xyzx, cb0[13].zzzz, r14.xyzx
    movc r14.xyz, r1.wwww, r14.xyzx, cb0[13].yzxy
    movc r14.xyz, r0.wwww, r25.xzyx, r14.xzyx
    dp3 r0.w, r15.zyxz, r14.xyzx
    lt r0.w, l(0.990000), |r0.w|
    lt r1.w, l(0.990000), |r14.z|
    movc r21.xyz, r1.wwww, l(1.000000,0,0,0), l(0,0,1.000000,0)
    movc r21.xyz, r0.wwww, r21.xyzx, r15.yzxy
    mul r22.xyz, r14.xzyx, r21.xyzx
    mad r21.xyz, r14.yxzy, r21.yzxy, -r22.xyzx
    dp3 r0.w, r21.xyzx, r21.xyzx
    rsq r0.w, r0.w
    mul r21.xyz, r0.wwww, r21.xyzx
    mul r22.xyz, r14.xzyx, r21.xyzx
    mad r22.xyz, r21.zxyz, r14.zyxz, -r22.xyzx
    mov r25.x, r22.x
    mov r25.y, r21.y
    mov r25.z, r14.y
    mov r29.x, r22.y
    mov r29.y, r21.z
    mov r29.z, r14.x
    mov r14.x, r22.z
    mov r14.y, r21.x
  else
    ieq r0.w, l(3), cb0[8].z
    lt r1.w, l(0.990000), |r15.x|
    lt r2.w, l(0.000000), r15.x
    lt r3.w, r15.x, l(0.000000)
    iadd r2.w, r2.w, -r3.w
    itof r2.w, r2.w
    mul r21.xyz, r2.wwww, l(1.000000, 0.000000, 0.000000, 0.000000)
    movc r21.xyz, r1.wwww, r21.xyzx, l(0,0,1.000000,0)
    movc r21.xyz, r0.wwww, cb1[94].xyzx, r21.xyzx
    mul r22.xyz, r7.xyzx, r10.xxxx
    mul r30.xyz, r8.xyzx, r10.yyyy
    mul r31.xyz, r9.xyzx, r10.zzzz
    dp3 r22.x, r21.xyzx, r22.xyzx
    dp3 r22.y, r21.xyzx, r30.xyzx
    dp3 r22.z, r21.xyzx, r31.xyzx
    movc r21.xyz, cb0[7].wwww, r22.xyzx, r21.xyzx
    mul r22.xyz, r15.xyzx, r21.xyzx
    mad r21.xyz, r21.zxyz, r15.yzxy, -r22.xyzx
    dp3 r0.w, r21.xyzx, r21.xyzx
    rsq r0.w, r0.w
    mul r21.xyz, r0.wwww, r21.xyzx
    mul r22.xyz, r15.xyzx, r21.xyzx
    mad r14.xyz, r15.zxyz, r21.yzxy, -r22.xyzx
    mov r25.x, r15.y
    mov r25.y, r21.z
    mov r25.z, r14.x
    mov r29.x, r15.z
    mov r29.y, r21.x
    mov r29.z, r14.y
    mov r14.x, r15.x
    mov r14.y, r21.y
  endif
  mov r27.z, r28.x
  mov r27.w, r26.x
  dp3 r15.x, r27.xzwx, r25.xyzx
  dp3 r21.x, r27.xzwx, r29.xyzx
  dp3 r22.x, r27.xzwx, r14.xyzx
  mov r26.w, r27.y
  dp3 r15.y, r26.ywzy, r25.xyzx
  dp3 r21.y, r26.ywzy, r29.xyzx
  dp3 r22.y, r26.ywzy, r14.xyzx
  dp3 r15.z, r28.ywzy, r25.xyzx
  dp3 r21.z, r28.ywzy, r29.xyzx
  dp3 r22.z, r28.ywzy, r14.xyzx
  mov r27.xyz, r21.xyzx
  mov r28.xyz, r22.xyzx
else
  mov r15.x, r27.x
  mov r15.y, r26.y
  mov r15.z, r28.y
  mov r27.xz, r28.xxwx
  mov r28.xy, r26.xzxx
endif
if_nz cb0[7].w
  mad r14.xyz, r17.xyzx, l(2097152.000000, 2097152.000000, 2097152.000000, 0.000000), r13.xyzx
  mul r21.xyz, r8.xyzx, r14.yyyy
  mad r14.xyw, r14.xxxx, r7.xyxz, r21.xyxz
  mad r14.xyz, r14.zzzz, r9.xyzx, r14.xywx
  add r14.xyz, r6.xyzx, r14.xyzx
  mov r21.xyz, r1.xyzx
endif
movc r21.xyz, cb0[7].wwww, r21.xyzx, cb0[7].xyzx
movc r14.xyz, cb0[7].wwww, r14.xyzx, r13.xyzx
if_nz r11.w
  mov r0.w, cb0[24].w
endif
if_z r11.w
  and r11.zw, l(0, 0, 0x80000000, 0x7fffffff), cb0[16].yyyy
  if_nz r11.z
    imad r1.w, r11.w, cb0[5].z, r11.x
    ld_indexable(buffer)(float,float,float,float) r0.w, r1.wwww, t1.yzwx
  else
    imad r1.w, r11.w, cb0[5].z, r11.x
    ld_indexable(buffer)(float,float,float,float) r0.w, r1.wwww, t0.yzwx
  endif
endif
add r21.xyz, -r21.xyzx, cb1[64].xyzx
add r14.xyz, -r14.xyzx, cb1[106].xyzx
mul r22.xyz, r14.xyzx, r14.xyzx
mad r25.xyz, r14.xyzx, l(9.536743164E-07, 9.536743164E-07, 9.536743164E-07, 0.000000), r21.xyzx
mul r11.zw, r21.xxxy, r25.xxxy
mul r22.xy, r22.xyxx, l(4.768371582E-07, 4.768371582E-07, 0.000000, 0.000000)
add r1.w, r11.w, r11.z
add r2.w, r22.y, r22.x
mad r1.w, r21.z, r25.z, r1.w
mad r2.w, r22.z, l(4.768371582E-07), r2.w
mad r1.w, r2.w, l(4.768371582E-07), r1.w
rsq r1.w, r1.w
mul r1.w, r1.w, l(4.768371582E-07)
mul r21.xyz, r1.wwww, r21.xyzx
mul r14.xyz, r1.wwww, r14.xyzx
mad r14.xyz, r21.xyzx, l(2097152.000000, 2097152.000000, 2097152.000000, 0.000000), r14.xyzx
mul r21.xyz, r7.xyzx, r10.xxxx
mul r10.xyw, r8.xyxz, r10.yyyy
mul r22.xyz, r9.xyzx, r10.zzzz
dp3 r25.x, r14.xyzx, r21.xyzx
dp3 r25.y, r14.xyzx, r10.xywx
dp3 r25.z, r14.xyzx, r22.xyzx
movc r14.xyz, cb0[7].wwww, r25.xyzx, r14.xyzx
mad r13.xyz, r14.xyzx, r0.wwww, r13.xyzx
dp3 r14.x, cb0[10].xyzx, r21.xyzx
dp3 r14.y, cb0[10].xyzx, r10.xywx
dp3 r14.z, cb0[10].xyzx, r22.xyzx
movc r10.xyz, cb0[7].wwww, r14.xyzx, cb0[10].xyzx
add r10.xyz, r10.xyzx, r13.xyzx
mul r14.xyz, r19.xyzx, cb0[10].xyzx

//mad r14.x, r35.x, l(-4000.75), r14.x

dp3 r19.x, r14.xyzx, r15.xyzx
dp3 r19.y, r14.xyzx, r27.xyzx
dp3 r19.z, r14.xyzx, r28.xyzx
add r13.xyz, r13.xyzx, r19.xyzx
movc r10.xyz, cb0[12].xxxx, r10.xyzx, r13.xyzx
mul r13.xyz, r16.xyzx, r18.xyzx
mul r14.xyz, r18.xzyx, r23.xzyx
mul r16.xyz, r18.xyzx, r24.xyzx
mul r15.xyz, r15.xyzx, r20.xyzx
mul r18.xyz, r20.xzyx, r27.xzyx
mul r19.xyz, r20.xyzx, r28.xyzx
if_nz cb0[7].w
  mad r20.xyz, r17.xyzx, l(2097152.000000, 2097152.000000, 2097152.000000, 0.000000), r12.xyzx
  mov r21.x, r13.x
  mov r21.y, r14.x
  mov r21.z, r16.x
  mov r22.x, r3.x
  mov r22.y, r4.x
  mov r22.z, r5.x
  dp3 r23.x, r21.xyzx, r22.xyzx
  mov r24.x, r3.y
  mov r24.y, r4.y
  mov r24.z, r5.y
  dp3 r23.y, r21.xyzx, r24.xyzx
  mov r5.x, r3.z
  mov r5.y, r4.z
  dp3 r23.z, r21.xyzx, r5.xyzx
  mov r3.x, r13.y
  mov r3.y, r14.z
  mov r3.z, r16.y
  dp3 r4.x, r3.xyzx, r22.xyzx
  dp3 r4.y, r3.xyzx, r24.xyzx
  dp3 r4.z, r3.xyzx, r5.xyzx
  mov r14.x, r13.z
  mov r14.z, r16.z
  dp3 r16.x, r14.xyzx, r22.xyzx
  dp3 r16.y, r14.xyzx, r24.xyzx
  dp3 r16.z, r14.xyzx, r5.xyzx
  mov r20.w, l(1.000000)
  mov r22.w, r2.x
  dp4 r12.x, r20.xyzw, r22.xyzw
  mov r24.w, r2.y
  dp4 r12.y, r20.xyzw, r24.xyzw
  mov r5.w, r2.z
  dp4 r12.z, r20.xyzw, r5.xyzw
  mad r2.xyz, r17.xyzx, l(2097152.000000, 2097152.000000, 2097152.000000, 0.000000), r10.xyzx
  mov r3.x, r15.x
  mov r3.y, r18.x
  mov r3.z, r19.x
  mov r5.x, r7.x
  mov r5.y, r8.x
  mov r5.z, r9.x
  dp3 r20.x, r3.xyzx, r5.xyzx
  mov r21.x, r7.y
  mov r21.y, r8.y
  mov r21.z, r9.y
  dp3 r20.y, r3.xyzx, r21.xyzx
  mov r9.x, r7.z
  mov r9.y, r8.z
  dp3 r20.z, r3.xyzx, r9.xyzx
  mov r3.x, r15.y
  mov r3.y, r18.z
  mov r3.z, r19.y
  dp3 r7.x, r3.xyzx, r5.xyzx
  dp3 r7.y, r3.xyzx, r21.xyzx
  dp3 r7.z, r3.xyzx, r9.xyzx
  mov r18.x, r15.z
  mov r18.z, r19.z
  dp3 r19.x, r18.xyzx, r5.xyzx
  dp3 r19.y, r18.xyzx, r21.xyzx
  dp3 r19.z, r18.xyzx, r9.xyzx
  mov r2.w, l(1.000000)
  mov r5.w, r6.x
  dp4 r10.x, r2.xyzw, r5.xyzw
  mov r21.w, r6.y
  dp4 r10.y, r2.xyzw, r21.xyzw
  mov r9.w, r6.z
  dp4 r10.z, r2.xyzw, r9.xyzw
  mov r17.xyz, r1.xyzx
else
  mov r1.xyz, r17.xyzx
  mov r20.x, r15.x
  mov r20.y, r18.x
  mov r20.z, r19.x
  mov r7.x, r15.y
  mov r7.y, r18.z
  mov r7.z, r19.y
  mov r19.x, r15.z
  mov r19.y, r18.y
  mov r23.x, r13.x
  mov r23.y, r14.x
  mov r23.z, r16.x
  mov r4.x, r13.y
  mov r4.y, r14.z
  mov r4.z, r16.y
  mov r16.x, r13.z
  mov r16.y, r14.y
endif
mul r2.xyz, r4.xyzx, cb0[28].yyyy
mad r2.xyz, cb0[28].xxxx, r23.xyzx, r2.xyzx
mad r2.xyz, cb0[28].zzzz, r16.xyzx, r2.xyzx
add r2.xyz, r12.xyzx, r2.xyzx
add r3.xyz, r1.xyzx, -cb1[64].xyzx
add r2.xyz, r2.xyzx, -cb1[73].xyzx
mad r2.xyz, r3.xyzx, l(2097152.000000, 2097152.000000, 2097152.000000, 0.000000), r2.xyzx
dp3 r0.w, r2.xyzx, r2.xyzx
lt r1.w, r0.w, cb0[29].x
lt r0.w, cb0[29].y, r0.w
or r0.w, r0.w, r1.w
if_nz r0.w
  movc r0.w, cb0[29].z, l(1.910178180E-38), l(0x004fffff)
  store_structured u1.x, r0.y, l(0), r0.w
  ret
endif
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r2.xyz, r0.z, l(0), u0.xyzx

//mad r2.x, r35.x, r2.z, r2.x

add r1.xyz, r1.xyzx, -r2.xyzx
mad r1.xyz, r1.xyzx, l(2097152.000000, 2097152.000000, 2097152.000000, 0.000000), r12.xyzx
mov r3.z, r4.y
mov r3.x, r16.y
mov r3.y, r23.y
mov r5.y, r16.z
mov r5.z, r23.z
mov r5.x, r4.z
mul r6.xyz, r3.xyzx, r5.xyzx
mad r3.xyz, r3.zxyz, r5.yzxy, -r6.xyzx
mov r5.x, r23.x
mov r5.y, r4.x
mov r5.z, r16.x
dp3 r0.z, r3.xyzx, r5.xyzx
lt r0.z, r0.z, l(0.000000)
movc r3.xy, cb0[29].zzzz, l(12,13,0,0), l(4,5,0,0)
movc r0.z, r0.z, r3.y, r3.x
bfi r3.x, l(12), l(20), r0.z, cb0[25].x
bfi r3.y, l(24), l(0), r0.x, l(0x01000000)
mov r3.z, cb1[144].w
mov r3.w, l(0)
store_structured u1.xyzw, r0.y, l(0), r3.xyzw
dp3 r0.z, r23.xyzx, r23.xyzx
dp3 r0.w, r4.xyzx, r4.xyzx
sqrt r0.zw, r0.zzzw
dp3 r2.w, r16.xyzx, r16.xyzx
sqrt r3.w, r2.w
div r5.xyz, r23.yzxy, r0.zzzz
div r4.xyz, r4.xyzx, r0.wwww
div r3.xyz, r16.xyzx, r3.wwww
lt r2.w, r3.z, l(0.000000)
movc r3.xyzw, r2.wwww, -r3.xyzw, r3.xyzw
mov r6.xy, -r3.xyxx
dp3 r2.w, l(1.000000, 1.000000, 1.000000, 0.000000), |r3.xyzx|
div r8.xy, r3.xyxx, r2.wwww
add r2.w, r8.y, r8.x
add r4.w, -r8.y, r8.x
add r5.w, r3.z, l(1.000000)
div r5.w, l(1.000000, 1.000000, 1.000000, 1.000000), r5.w
mul r7.w, r3.y, r6.x
mul r8.z, r5.w, r7.w
mul r9.xy, r3.xyxx, r3.xyxx
mad r8.xy, -r9.xyxx, r5.wwww, l(1.000000, 1.000000, 0.000000, 0.000000)
mov r8.w, r6.x
dp3 r5.w, r5.zxyz, r8.xzwx
mov r6.zw, r8.zzzy
dp3 r6.x, r5.yzxy, r6.yzwy
lt r6.y, |r5.w|, |r6.x|
swapc r6.x, r8.x, r6.y, r5.w, r6.x
lt r5.w, r6.x, l(0.000000)
movc r6.xz, r5.wwww, l(-1.000000,0,1.000000,0), l(1.000000,0,-1.000000,0)
mul r0.z, r0.z, r6.x
mul r5.w, r6.x, r8.x
mul r8.xyz, r5.xyzx, r3.zxyz
mad r3.xyz, r3.yzxy, r5.yzxy, -r8.xyzx
dp3 r3.x, r4.xyzx, r3.xyzx
lt r3.x, r3.x, l(0.000000)
movc r3.x, r3.x, r6.z, r6.x
mul r0.w, r0.w, r3.x
mul r2.w, r2.w, l(32767.000000)
round_ne r2.w, r2.w
ftoi r2.w, r2.w
iadd r2.w, r2.w, l(0x00008000)
mul r3.x, r4.w, l(32767.000000)
round_ne r3.x, r3.x
ftoi r3.x, r3.x
ishl r3.x, r3.x, l(16)
iadd r3.x, r3.x, l(0x80000000)
bfi r4.x, l(16), l(0), r2.w, r3.x
mul r2.w, r5.w, l(23169.060547)
round_ne r2.w, r2.w
ftoi r2.w, r2.w
iadd r2.w, r2.w, l(0x00004000)
and r3.x, r6.y, l(0x00008000)
or r4.y, r2.w, r3.x
max r2.w, |r3.w|, |r0.w|
max r2.w, |r0.z|, r2.w
ubfe r3.x, l(8), l(23), r2.w
iadd r5.xy, r3.xxxx, l(1, 2, 0, 0)
ishl r3.x, r5.x, l(23)
iadd r3.x, -r3.x, l(0x86800000)
and r5.w, r3.x, l(0x7f800000)
mul r2.w, r2.w, r5.w
round_ne r2.w, r2.w
ftou r2.w, r2.w
ieq r2.w, r2.w, l(0x00008000)
mul r5.z, r5.w, l(0.500000)
movc r3.xy, r2.wwww, r5.yzyy, r5.xwxx
mul r0.zw, r0.zzzw, r3.yyyy
round_ne r0.zw, r0.zzzw
ftoi r0.zw, r0.zzzw
ishl r0.w, r0.w, l(16)
iadd r0.zw, r0.zzzw, l(0, 0, 0x00008000, 0x80000000)
bfi r4.z, l(16), l(0), r0.z, r0.w
mul r0.z, r3.y, r3.w
round_ne r0.z, r0.z
ftoi r0.z, r0.z
iadd r0.z, r0.z, l(0x00008000)
bfi r4.w, l(16), l(16), r3.x, r0.z
iadd r0.z, r0.y, cb0[2].z
store_structured u1.xyzw, r0.z, l(0), r4.xyzw
ishl r0.z, cb0[2].z, l(1)
iadd r0.y, r0.y, r0.z
mov r1.w, l(0)
store_structured u1.xyzw, r0.y, l(0), r1.xyzw
imad r0.yz, cb0[25].xxxx, l(0, 42, 42, 0), l(0, 27, 28, 0)
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r0.y, r0.y, l(12), u0.xxxx
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r0.z, r0.z, l(12), u0.xxxx
imad r0.y, r0.x, r0.z, r0.y
iadd r0.x, r0.y, l(2)
mov r0.z, l(-1)
movc r0.xy, cb0[29].zzzz, r0.yxyy, r0.zyzz
ine r0.zw, r0.xxxy, l(0, 0, -1, -1)
if_nz r0.z
  add r1.xyz, -r2.xyzx, r17.xyzx
  mad r1.xyz, r1.xyzx, l(2097152.000000, 2097152.000000, 2097152.000000, 0.000000), r10.xyzx
  dp3 r0.z, r20.xyzx, r20.xyzx
  sqrt r0.z, r0.z
  dp3 r2.x, r7.xyzx, r7.xyzx
  sqrt r2.x, r2.x
  dp3 r2.y, r19.xyzx, r19.xyzx
  sqrt r3.w, r2.y
  div r2.yzw, r20.yyzx, r0.zzzz
  div r4.xyz, r7.xyzx, r2.xxxx
  div r3.xyz, r19.xyzx, r3.wwww
  lt r4.w, r3.z, l(0.000000)
  movc r3.xyzw, r4.wwww, -r3.xyzw, r3.xyzw
  mov r5.xy, -r3.xyxx
  dp3 r4.w, l(1.000000, 1.000000, 1.000000, 0.000000), |r3.xyzx|
  div r6.xy, r3.xyxx, r4.wwww
  add r4.w, r6.y, r6.x
  add r6.x, -r6.y, r6.x
  add r6.y, r3.z, l(1.000000)
  div r6.y, l(1.000000, 1.000000, 1.000000, 1.000000), r6.y
  mul r6.z, r3.y, r5.x
  mul r7.z, r6.y, r6.z
  mul r6.zw, r3.xxxy, r3.xxxy
  mad r7.xy, -r6.zwzz, r6.yyyy, l(1.000000, 1.000000, 0.000000, 0.000000)
  mov r7.w, r5.x
  dp3 r5.x, r2.wyzw, r7.xzwx
  mov r5.zw, r7.zzzy
  dp3 r5.y, r2.zwyz, r5.yzwy
  lt r5.z, |r5.x|, |r5.y|
  swapc r5.x, r7.x, r5.z, r5.x, r5.y
  lt r5.x, r5.x, l(0.000000)
  movc r5.xy, r5.xxxx, l(-1.000000,1.000000,0,0), l(1.000000,-1.000000,0,0)
  mul r0.z, r0.z, r5.x
  mul r5.w, r5.x, r7.x
  mul r6.yzw, r2.yyzw, r3.zzxy
  mad r2.yzw, r3.yyzx, r2.zzwy, -r6.yyzw
  dp3 r2.y, r4.xyzx, r2.yzwy
  lt r2.y, r2.y, l(0.000000)
  movc r2.y, r2.y, r5.y, r5.x
  mul r2.x, r2.y, r2.x
  mul r2.y, r4.w, l(32767.000000)
  round_ne r2.y, r2.y
  ftoi r2.y, r2.y
  mul r2.z, r6.x, l(32767.000000)
  round_ne r2.z, r2.z
  ftoi r2.z, r2.z
  ishl r2.z, r2.z, l(16)
  iadd r2.yz, r2.yyzy, l(0, 0x00008000, 0x80000000, 0)
  bfi r4.x, l(16), l(0), r2.y, r2.z
  mul r2.y, r5.w, l(23169.060547)
  round_ne r2.y, r2.y
  ftoi r2.y, r2.y
  iadd r2.y, r2.y, l(0x00004000)
  and r2.z, r5.z, l(0x00008000)
  or r4.y, r2.z, r2.y
  max r2.y, |r3.w|, |r2.x|
  max r2.y, |r0.z|, r2.y
  ubfe r2.z, l(8), l(23), r2.y
  iadd r5.xy, r2.zzzz, l(1, 2, 0, 0)
  ishl r2.z, r5.x, l(23)
  iadd r2.z, -r2.z, l(0x86800000)
  and r5.w, r2.z, l(0x7f800000)
  mul r2.y, r2.y, r5.w
  round_ne r2.y, r2.y
  ftou r2.y, r2.y
  ieq r2.y, r2.y, l(0x00008000)
  mul r5.z, r5.w, l(0.500000)
  movc r2.yz, r2.yyyy, r5.yyzy, r5.xxwx
  mul r0.z, r0.z, r2.z
  round_ne r0.z, r0.z
  ftoi r0.z, r0.z
  iadd r0.z, r0.z, l(0x00008000)
  mul r2.x, r2.z, r2.x
  round_ne r2.x, r2.x
  ftoi r2.x, r2.x
  ishl r2.x, r2.x, l(16)
  iadd r2.x, r2.x, l(0x80000000)
  bfi r4.z, l(16), l(0), r0.z, r2.x
  mul r0.z, r2.z, r3.w
  round_ne r0.z, r0.z
  ftoi r0.z, r0.z
  iadd r0.z, r0.z, l(0x00008000)
  bfi r4.w, l(16), l(16), r2.y, r0.z
  store_structured u2.xyzw, r0.x, l(0), r4.xyzw
  iadd r0.z, r0.x, l(1)
  mov r1.w, l(0)
  store_structured u2.xyzw, r0.z, l(0), r1.xyzw
endif
if_nz r0.w
  mov r11.y, l(0)
  store_structured u2.xyzw, r0.y, l(0), r11.xyyy
endif
ret
// Approximately 0 instruction slots used

///////////////////////////////// HLSL Code /////////////////////////////////
// // ---- Created with geo-11 v0.6.198 on Fri Oct 11 18:17:14 2024
// struct u2_t {
//   float val[4];
// };
// RWStructuredBuffer<u2_t> u2 : register(u2);
//
// struct u1_t {
//   float val[4];
// };
// RWStructuredBuffer<u1_t> u1 : register(u1);
//
// struct u0_t {
//   float val[4];
// };
// RWStructuredBuffer<u0_t> u0 : register(u0);
//
// Buffer<uint4> t4 : register(t4);
//
// Buffer<uint4> t3 : register(t3);
//
// Buffer<sint4> t2 : register(t2);
//
// Buffer<float4> t1 : register(t1);
//
// Buffer<float4> t0 : register(t0);
//
// cbuffer cb1 : register(b1)
// {
//   float4 cb1[145];
// }
//
// cbuffer cb0 : register(b0)
// {
//   float4 cb0[30];
// }
//
//
//
//
// // 3Dmigoto declarations
// #define cmp -
// Texture1D<float4> IniParams : register(t120);
// Texture2D<float4> StereoParams : register(t125);
//
//
// void main)
// {
//   float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16,r17,r18,r19,r20,r21,r22,r23,r24,r25,r26,r27,r28,r29,r30,r31;
//   uint4 bitmask, uiDest;
//   float4 fDest;
//
// // Needs manual fix for instruction:
// // unknown dcl_: dcl_thread_group 64, 1, 1
//   r0.x = (uint)vThreadGroupID.z << 7;
//   r0.x = (int)r0.x + (int)vThreadGroupID.y;
//   r0.x = (uint)r0.x << 7;
//   r0.x = (int)r0.x + (int)vThreadGroupID.x;
//   bitmask.x = ((~(-1 << 26)) << 6) & 0xffffffff;  r0.x = (((uint)r0.x << 6) & bitmask.x) | ((uint)vThreadIDInGroupFlattened.x & ~bitmask.x);
//   r0.y = 42 * asint(cb0[25].x);
//   r0.z = mad(asint(cb0[25].x), 42, 1);
//   r1.x = u0[r0.z].val[0/4];
//   r1.y = u0[r0.z].val[0/4+1];
//   r1.z = u0[r0.z].val[0/4+2];
//   r2.xyzw = mad(asint(cb0[25].xxxx), int4(42,42,42,42), int4(2,3,4,5));
//   r3.x = u0[r2.x].val[0/4];
//   r3.y = u0[r2.x].val[0/4+1];
//   r3.z = u0[r2.x].val[0/4+2];
//   r4.x = u0[r2.y].val[0/4];
//   r4.y = u0[r2.y].val[0/4+1];
//   r4.z = u0[r2.y].val[0/4+2];
//   r5.x = u0[r2.z].val[0/4];
//   r5.y = u0[r2.z].val[0/4+1];
//   r5.z = u0[r2.z].val[0/4+2];
//   r2.x = u0[r2.w].val[0/4];
//   r2.y = u0[r2.w].val[0/4+1];
//   r2.z = u0[r2.w].val[0/4+2];
//   r6.xyzw = mad(asint(cb0[25].xxxx), int4(42,42,42,42), int4(10,11,12,13));
//   r7.x = u0[r6.x].val[0/4];
//   r7.y = u0[r6.x].val[0/4+1];
//   r7.z = u0[r6.x].val[0/4+2];
//   r8.x = u0[r6.y].val[0/4];
//   r8.y = u0[r6.y].val[0/4+1];
//   r8.z = u0[r6.y].val[0/4+2];
//   r9.x = u0[r6.z].val[0/4];
//   r9.y = u0[r6.z].val[0/4+1];
//   r9.z = u0[r6.z].val[0/4+2];
//   r6.x = u0[r6.w].val[0/4];
//   r6.y = u0[r6.w].val[0/4+1];
//   r6.z = u0[r6.w].val[0/4+2];
//   r0.y = u0[r0.y].val[4/4];
//   r0.w = mad(asint(cb0[25].x), 42, 18);
//   r10.x = u0[r0.w].val[0/4];
//   r10.y = u0[r0.w].val[0/4+1];
//   r10.z = u0[r0.w].val[0/4+2];
//   r0.w = cmp((uint)r0.x >= asuint(cb0[25].y));
//   if (r0.w != 0) {
//     return;
//   }
//   r0.y = (int)r0.x + (int)r0.y;
//   r0.w = cmp(-1 != asint(cb0[26].x));
//   if (r0.w != 0) {
//     r0.w = t4.Load(cb0[26].x).x;
//     r0.w = cmp((uint)r0.x >= (uint)r0.w);
//     if (r0.w != 0) {
//       r0.w = cb0[29].z ? 1.91017818e-38 : 0x004fffff;
//       u1[r0.y].val[0/4] = r0.w;
//       return;
//     }
//   }
//   r0.w = cmp(-1 != asint(cb0[6].z));
//   if (r0.w != 0) {
//     r0.w = (int)r0.x + asint(cb0[6].z);
//     r11.x = t3.Load(r0.w).x;
//   } else {
//     r11.x = r0.x;
//   }
//   r0.w = cmp(-1 == asint(cb0[26].z));
//   if (r0.w != 0) {
//     r1.w = 0;
//   }
//   if (r0.w == 0) {
//     r0.w = mad(asint(cb0[26].z), asint(cb0[5].w), (int)r11.x);
//     r1.w = t2.Load(r0.w).x;
//   }
//   r0.w = cmp((int)r1.w != asint(cb0[26].y));
//   r1.w = cmp(-1 == asint(cb0[27].x));
//   if (r1.w != 0) {
//     r2.w = cb0[26].w;
//   }
//   if (r1.w == 0) {
//     r1.w = mad(asint(cb0[27].x), asint(cb0[5].w), (int)r11.x);
//     r2.w = t2.Load(r1.w).x;
//   }
//   r1.w = cmp((int)r2.w != asint(cb0[26].w));
//   r0.w = (int)r0.w | (int)r1.w;
//   if (r0.w != 0) {
//     r0.w = cb0[29].z ? 1.91017818e-38 : 0x004fffff;
//     u1[r0.y].val[0/4] = r0.w;
//     return;
//   }
//   r0.w = cmp(0 != asint(cb0[7].w));
//   r12.xyzw = cmp(int4(-1,-1,-1,-1) == asint(cb0[14].wzyx));
//   if (r12.x != 0) {
//     r13.xyz = cb0[20].xyz;
//   }
//   if (r12.x == 0) {
//     r11.zw = int2(0x80000000,0x7fffffff) & asint(cb0[14].ww);
//     if (r11.z != 0) {
//       r1.w = mad((int)r11.w, asint(cb0[5].z), (int)r11.x);
//       r13.x = t1.Load(r1.w).x;
//       r14.xy = (int2)r11.ww + int2(1,2);
//       r14.xy = mad((int2)r14.xy, asint(cb0[5].zz), (int2)r11.xx);
//       r13.y = t1.Load(r14.x).x;
//       r13.z = t1.Load(r14.y).x;
//     } else {
//       r1.w = mad((int)r11.w, asint(cb0[5].z), (int)r11.x);
//       r13.x = t0.Load(r1.w).x;
//       r11.zw = (int2)r11.ww + int2(1,2);
//       r11.zw = mad((int2)r11.zw, asint(cb0[5].zz), (int2)r11.xx);
//       r13.y = t0.Load(r11.z).x;
//       r13.z = t0.Load(r11.w).x;
//     }
//   }
//   r11.zw = cmp(int2(-1,-1) == asint(cb0[16].xy));
//   if (r11.z != 0) {
//     r14.xyz = cb0[24].xyz;
//   }
//   if (r11.z == 0) {
//     r15.xy = int2(0x80000000,0x7fffffff) & asint(cb0[16].xx);
//     if (r15.x != 0) {
//       r1.w = mad((int)r15.y, asint(cb0[5].z), (int)r11.x);
//       r14.x = t1.Load(r1.w).x;
//       r15.xz = (int2)r15.yy + int2(1,2);
//       r15.xz = mad((int2)r15.xz, asint(cb0[5].zz), (int2)r11.xx);
//       r14.y = t1.Load(r15.x).x;
//       r14.z = t1.Load(r15.z).x;
//     } else {
//       r1.w = mad((int)r15.y, asint(cb0[5].z), (int)r11.x);
//       r14.x = t0.Load(r1.w).x;
//       r15.xy = (int2)r15.yy + int2(1,2);
//       r15.xy = mad((int2)r15.xy, asint(cb0[5].zz), (int2)r11.xx);
//       r14.y = t0.Load(r15.x).x;
//       r14.z = t0.Load(r15.y).x;
//     }
//   }
//   if (r12.y != 0) {
//     r15.xyz = cb0[19].xyz;
//   }
//   if (r12.y == 0) {
//     r12.xy = int2(0x80000000,0x7fffffff) & asint(cb0[14].zz);
//     if (r12.x != 0) {
//       r1.w = mad((int)r12.y, asint(cb0[5].z), (int)r11.x);
//       r15.x = t1.Load(r1.w).x;
//       r16.xy = (int2)r12.yy + int2(1,2);
//       r16.xy = mad((int2)r16.xy, asint(cb0[5].zz), (int2)r11.xx);
//       r15.y = t1.Load(r16.x).x;
//       r15.z = t1.Load(r16.y).x;
//     } else {
//       r1.w = mad((int)r12.y, asint(cb0[5].z), (int)r11.x);
//       r15.x = t0.Load(r1.w).x;
//       r12.xy = (int2)r12.yy + int2(1,2);
//       r12.xy = mad((int2)r12.xy, asint(cb0[5].zz), (int2)r11.xx);
//       r15.y = t0.Load(r12.x).x;
//       r15.z = t0.Load(r12.y).x;
//     }
//   }
//   if (r12.z != 0) {
//     r16.xyzw = cb0[18].xyzw;
//   }
//   if (r12.z == 0) {
//     r12.xy = int2(0x80000000,0x7fffffff) & asint(cb0[14].yy);
//     if (r12.x != 0) {
//       r1.w = mad((int)r12.y, asint(cb0[5].z), (int)r11.x);
//       r16.x = t1.Load(r1.w).x;
//       r17.xyz = (int3)r12.yyy + int3(1,2,3);
//       r17.xyz = mad((int3)r17.xyz, asint(cb0[5].zzz), (int3)r11.xxx);
//       r16.y = t1.Load(r17.x).x;
//       r16.z = t1.Load(r17.y).x;
//       r16.w = t1.Load(r17.z).x;
//     } else {
//       r1.w = mad((int)r12.y, asint(cb0[5].z), (int)r11.x);
//       r16.x = t0.Load(r1.w).x;
//       r12.xyz = (int3)r12.yyy + int3(1,2,3);
//       r12.xyz = mad((int3)r12.xyz, asint(cb0[5].zzz), (int3)r11.xxx);
//       r16.y = t0.Load(r12.x).x;
//       r16.z = t0.Load(r12.y).x;
//       r16.w = t0.Load(r12.z).x;
//     }
//   }
//   if (r12.w != 0) {
//     r12.xyz = cb0[17].xyz;
//   }
//   if (r12.w == 0) {
//     r17.xy = int2(0x80000000,0x7fffffff) & asint(cb0[14].xx);
//     if (r17.x != 0) {
//       r1.w = mad((int)r17.y, asint(cb0[5].z), (int)r11.x);
//       r12.x = t1.Load(r1.w).x;
//       r17.xz = (int2)r17.yy + int2(1,2);
//       r17.xz = mad((int2)r17.xz, asint(cb0[5].zz), (int2)r11.xx);
//       r12.y = t1.Load(r17.x).x;
//       r12.z = t1.Load(r17.z).x;
//     } else {
//       r1.w = mad((int)r17.y, asint(cb0[5].z), (int)r11.x);
//       r12.x = t0.Load(r1.w).x;
//       r17.xy = (int2)r17.yy + int2(1,2);
//       r17.xy = mad((int2)r17.xy, asint(cb0[5].zz), (int2)r11.xx);
//       r12.y = t0.Load(r17.x).x;
//       r12.z = t0.Load(r17.y).x;
//     }
//   }
//   r17.xyz = cb0[7].www ? float3(0,0,0) : cb0[7].xyz;
//   r18.xyz = cb0[9].xyz * r12.xyz;
//   r1.w = dot(r16.xyzw, r16.xyzw);
//   r1.w = rsqrt(r1.w);
//   r16.xyzw = r16.xyzw * r1.wwww;
//   r19.xyz = cb0[11].xyz * r16.www;
//   r19.xyz = r16.yzx * cb0[11].www + r19.yzx;
//   r20.xyz = cb0[11].zxy * r16.xyz;
//   r20.xyz = r16.zxy * cb0[11].xyz + -r20.xyz;
//   r19.xyz = r20.xyz + r19.xyz;
//   r1.w = dot(r16.xyz, cb0[11].xyz);
//   r1.w = cb0[11].w * r16.w + -r1.w;
//   r16.xyz = r19.xyz + r19.xyz;
//   r20.xy = r19.zx * r16.zx;
//   r2.w = r19.y * r16.y;
//   r21.xyz = r16.xyz * r1.www;
//   r16.zw = r19.xz * r16.xz + r2.ww;
//   r22.xy = r19.zz * r16.yx + -r21.xy;
//   r23.xy = float2(1,1) + -r16.zw;
//   r22.z = r19.x * r16.y + r21.z;
//   r24.xy = r19.zz * r16.xy + r21.yx;
//   r24.w = r19.x * r16.y + -r21.z;
//   r1.w = r20.x + r20.y;
//   r24.z = 1 + -r1.w;
//   if (cb0[8].z != 0) {
//     switch (cb0[8].z) {
//       case 1 :      r1.w = dot(r13.xyz, r13.xyz);
//       r1.w = sqrt(r1.w);
//       r2.w = cmp(0 < r1.w);
//       r13.xyz = r13.xyz / r1.www;
//       r13.xyz = r2.www ? r13.xyz : 0;
//       r19.x = r10.x * r3.z;
//       r19.y = r10.y * r4.z;
//       r19.z = r10.z * r5.z;
//       r19.xyz = cb0[7].www ? r19.xyz : float3(0,0,1);
//       r16.xyz = r2.www ? r13.zxy : r19.zxy;
//       break;
//       case 2 :      if (cb0[7].w != 0) {
//         r13.xyz = r17.xyz * float3(2097152,2097152,2097152) + r15.xyz;
//         r19.xyz = r13.yyy * r4.xyz;
//         r13.xyw = r13.xxx * r3.xyz + r19.xyz;
//         r13.xyz = r13.zzz * r5.xyz + r13.xyw;
//         r13.xyz = r13.xyz + r2.xyz;
//         r19.xyz = r1.xyz;
//       }
//       r19.xyz = cb0[7].www ? r19.xyz : cb0[7].xyz;
//       r13.xyz = cb0[7].www ? r13.xyz : r15.xyz;
//       r19.xyz = cb1[64].xyz + -r19.xyz;
//       r13.xyz = cb1[73].xyz + -r13.xyz;
//       r20.xyz = r13.xyz * r13.xyz;
//       r21.xyz = r13.xyz * float3(9.53674316e-07,9.53674316e-07,9.53674316e-07) + r19.xyz;
//       r21.xy = r21.xy * r19.xy;
//       r20.xy = float2(4.76837158e-07,4.76837158e-07) * r20.xy;
//       r1.w = r21.x + r21.y;
//       r2.w = r20.x + r20.y;
//       r1.w = r19.z * r21.z + r1.w;
//       r2.w = r20.z * 4.76837158e-07 + r2.w;
//       r1.w = r2.w * 4.76837158e-07 + r1.w;
//       r1.w = rsqrt(r1.w);
//       r1.w = 4.76837158e-07 * r1.w;
//       r19.xyz = r19.xyz * r1.www;
//       r13.xyz = r13.xyz * r1.www;
//       r13.xyz = r19.xyz * float3(2097152,2097152,2097152) + r13.xyz;
//       r19.xyz = r10.xxx * r3.xyz;
//       r20.xyz = r10.yyy * r4.xyz;
//       r21.xyz = r10.zzz * r5.xyz;
//       r19.x = dot(r13.xyz, r19.xyz);
//       r19.y = dot(r13.xyz, r20.xyz);
//       r19.z = dot(r13.xyz, r21.xyz);
//       r16.xyz = cb0[7].www ? r19.zxy : r13.zxy;
//       break;
//       default :
//       r13.xyz = r10.xxx * r3.xyz;
//       r19.xyz = r10.yyy * r4.xyz;
//       r20.xyz = r10.zzz * r5.xyz;
//       r13.x = dot(-cb1[66].xyz, r13.xyz);
//       r13.y = dot(-cb1[66].xyz, r19.xyz);
//       r13.z = dot(-cb1[66].xyz, r20.xyz);
//       r16.xyz = cb0[7].www ? r13.zxy : -cb1[66].zxy;
//       break;
//     }
//     if (cb0[12].y != 0) {
//       r13.xy = cmp(int2(1,0) == asint(cb0[13].ww));
//       r1.w = ~(int)r0.w;
//       r2.w = r13.y ? r1.w : 0;
//       r2.w = (int)r2.w | (int)r13.x;
//       r3.w = r0.w ? r2.w : 0;
//       r13.xyz = r10.xxx * r3.yzx;
//       r19.xyz = r10.yyy * r4.yzx;
//       r20.xyz = r10.zzz * r5.yzx;
//       r21.z = dot(cb0[13].yzx, r13.xyz);
//       r21.x = dot(cb0[13].yzx, r19.xyz);
//       r21.y = dot(cb0[13].yzx, r20.xyz);
//       r2.w = ~(int)r2.w;
//       r1.w = (int)r1.w & (int)r2.w;
//       r19.xyz = cb0[13].yyy * r19.xyz;
//       r13.xyz = r13.xyz * cb0[13].xxx + r19.xyz;
//       r13.xyz = r20.xyz * cb0[13].zzz + r13.xyz;
//       r13.xyz = r1.www ? r13.xyz : cb0[13].yzx;
//       r13.xyz = r3.www ? r21.xzy : r13.xzy;
//       r1.w = dot(r16.zyx, r13.xyz);
//       r1.w = cmp(0.99000001 < abs(r1.w));
//       r2.w = cmp(0.99000001 < abs(r13.z));
//       r19.xyz = r2.www ? float3(1,0,0) : float3(0,0,1);
//       r19.xyz = r1.www ? r19.xyz : r16.yzx;
//       r20.xyz = r19.xyz * r13.xzy;
//       r19.xyz = r13.yxz * r19.yzx + -r20.xyz;
//       r1.w = dot(r19.xyz, r19.xyz);
//       r1.w = rsqrt(r1.w);
//       r19.xyz = r19.xyz * r1.www;
//       r20.xyz = r19.xyz * r13.xzy;
//       r20.xyz = r19.zxy * r13.zyx + -r20.xyz;
//       r21.x = r20.x;
//       r21.y = r19.y;
//       r21.z = r13.y;
//       r25.x = r20.y;
//       r25.y = r19.z;
//       r25.z = r13.x;
//       r13.x = r20.z;
//       r13.y = r19.x;
//     } else {
//       r1.w = cmp(3 == asint(cb0[8].z));
//       r2.w = cmp(0.99000001 < abs(r16.x));
//       r3.w = cmp(0 < r16.x);
//       r4.w = cmp(r16.x < 0);
//       r3.w = (int)r3.w + (int)-r4.w;
//       r3.w = (int)r3.w;
//       r19.xyz = float3(1,0,0) * r3.www;
//       r19.xyz = r2.www ? r19.xyz : float3(0,0,1);
//       r19.xyz = r1.www ? cb1[67].xyz : r19.xyz;
//       r20.xyz = r10.xxx * r3.xyz;
//       r26.xyz = r10.yyy * r4.xyz;
//       r27.xyz = r10.zzz * r5.xyz;
//       r20.x = dot(r19.xyz, r20.xyz);
//       r20.y = dot(r19.xyz, r26.xyz);
//       r20.z = dot(r19.xyz, r27.xyz);
//       r19.xyz = cb0[7].www ? r20.xyz : r19.xyz;
//       r20.xyz = r19.xyz * r16.xyz;
//       r19.xyz = r19.zxy * r16.yzx + -r20.xyz;
//       r1.w = dot(r19.xyz, r19.xyz);
//       r1.w = rsqrt(r1.w);
//       r19.xyz = r19.xyz * r1.www;
//       r20.xyz = r19.xyz * r16.xyz;
//       r13.xyz = r16.zxy * r19.yzx + -r20.xyz;
//       r21.x = r16.y;
//       r21.y = r19.z;
//       r21.z = r13.x;
//       r25.x = r16.z;
//       r25.y = r19.x;
//       r25.z = r13.y;
//       r13.x = r16.x;
//       r13.y = r19.y;
//     }
//     r23.z = r24.x;
//     r23.w = r22.x;
//     r16.x = dot(r23.xzw, r21.xyz);
//     r19.x = dot(r23.xzw, r25.xyz);
//     r20.x = dot(r23.xzw, r13.xyz);
//     r22.w = r23.y;
//     r16.y = dot(r22.ywz, r21.xyz);
//     r19.y = dot(r22.ywz, r25.xyz);
//     r20.y = dot(r22.ywz, r13.xyz);
//     r16.z = dot(r24.ywz, r21.xyz);
//     r19.z = dot(r24.ywz, r25.xyz);
//     r20.z = dot(r24.ywz, r13.xyz);
//     r23.xyz = r19.xyz;
//     r24.xyz = r20.xyz;
//   } else {
//     r16.x = r23.x;
//     r16.y = r22.y;
//     r16.z = r24.y;
//     r23.xz = r24.xw;
//     r24.xy = r22.xz;
//   }
//   if (cb0[7].w != 0) {
//     r13.xyz = r17.xyz * float3(2097152,2097152,2097152) + r15.xyz;
//     r19.xyz = r13.yyy * r4.xyz;
//     r13.xyw = r13.xxx * r3.xyz + r19.xyz;
//     r13.xyz = r13.zzz * r5.xyz + r13.xyw;
//     r13.xyz = r13.xyz + r2.xyz;
//     r19.xyz = r1.xyz;
//   }
//   r19.xyz = cb0[7].www ? r19.xyz : cb0[7].xyz;
//   r13.xyz = cb0[7].www ? r13.xyz : r15.xyz;
//   r20.xyzw = cmp(int4(-1,-1,-1,-1) == asint(cb0[15].xwzy));
//   if (r20.x != 0) {
//     r1.w = cb0[20].w;
//   }
//   if (r20.x == 0) {
//     r21.xy = int2(0x80000000,0x7fffffff) & asint(cb0[15].xx);
//     if (r21.x != 0) {
//       r2.w = mad((int)r21.y, asint(cb0[5].z), (int)r11.x);
//       r1.w = t1.Load(r2.w).x;
//     } else {
//       r2.w = mad((int)r21.y, asint(cb0[5].z), (int)r11.x);
//       r1.w = t0.Load(r2.w).x;
//     }
//   }
//   r19.xyz = cb1[64].xyz + -r19.xyz;
//   r13.xyz = cb1[73].xyz + -r13.xyz;
//   r21.xyz = r13.xyz * r13.xyz;
//   r22.xyz = r13.xyz * float3(9.53674316e-07,9.53674316e-07,9.53674316e-07) + r19.xyz;
//   r22.xy = r22.xy * r19.xy;
//   r21.xy = float2(4.76837158e-07,4.76837158e-07) * r21.xy;
//   r2.w = r22.x + r22.y;
//   r3.w = r21.x + r21.y;
//   r2.w = r19.z * r22.z + r2.w;
//   r3.w = r21.z * 4.76837158e-07 + r3.w;
//   r2.w = r3.w * 4.76837158e-07 + r2.w;
//   r2.w = rsqrt(r2.w);
//   r2.w = 4.76837158e-07 * r2.w;
//   r19.xyz = r19.xyz * r2.www;
//   r13.xyz = r13.xyz * r2.www;
//   r13.xyz = r19.xyz * float3(2097152,2097152,2097152) + r13.xyz;
//   r19.xyz = r10.xxx * r3.xyz;
//   r21.xyz = r10.yyy * r4.xyz;
//   r22.xyz = r10.zzz * r5.xyz;
//   r25.x = dot(r13.xyz, r19.xyz);
//   r25.y = dot(r13.xyz, r21.xyz);
//   r25.z = dot(r13.xyz, r22.xyz);
//   r13.xyz = cb0[7].www ? r25.xyz : r13.xyz;
//   r13.xyz = r13.xyz * r1.www + r15.xyz;
//   r15.x = dot(cb0[10].xyz, r19.xyz);
//   r15.y = dot(cb0[10].xyz, r21.xyz);
//   r15.z = dot(cb0[10].xyz, r22.xyz);
//   r15.xyz = cb0[7].www ? r15.xyz : cb0[10].xyz;
//   r15.xyz = r15.xyz + r13.xyz;
//   r12.xyz = cb0[10].xyz * r12.xyz;
//   r19.x = dot(r12.xyz, r16.xyz);
//   r19.y = dot(r12.xyz, r23.xyz);
//   r19.z = dot(r12.xyz, r24.xyz);
//   r12.xyz = r19.xyz + r13.xyz;
//   r12.xyz = cb0[12].xxx ? r15.xyz : r12.xyz;
//   if (r20.y != 0) {
//     r13.xyz = cb0[23].xyz;
//   }
//   if (r20.y == 0) {
//     r15.xy = int2(0x80000000,0x7fffffff) & asint(cb0[15].ww);
//     if (r15.x != 0) {
//       r1.w = mad((int)r15.y, asint(cb0[5].z), (int)r11.x);
//       r13.x = t1.Load(r1.w).x;
//       r15.xz = (int2)r15.yy + int2(1,2);
//       r15.xz = mad((int2)r15.xz, asint(cb0[5].zz), (int2)r11.xx);
//       r13.y = t1.Load(r15.x).x;
//       r13.z = t1.Load(r15.z).x;
//     } else {
//       r1.w = mad((int)r15.y, asint(cb0[5].z), (int)r11.x);
//       r13.x = t0.Load(r1.w).x;
//       r15.xy = (int2)r15.yy + int2(1,2);
//       r15.xy = mad((int2)r15.xy, asint(cb0[5].zz), (int2)r11.xx);
//       r13.y = t0.Load(r15.x).x;
//       r13.z = t0.Load(r15.y).x;
//     }
//   }
//   if (r20.z != 0) {
//     r15.xyzw = cb0[22].xyzw;
//   }
//   if (r20.z == 0) {
//     r19.xy = int2(0x80000000,0x7fffffff) & asint(cb0[15].zz);
//     if (r19.x != 0) {
//       r1.w = mad((int)r19.y, asint(cb0[5].z), (int)r11.x);
//       r15.x = t1.Load(r1.w).x;
//       r19.xzw = (int3)r19.yyy + int3(1,2,3);
//       r19.xzw = mad((int3)r19.xzw, asint(cb0[5].zzz), (int3)r11.xxx);
//       r15.y = t1.Load(r19.x).x;
//       r15.z = t1.Load(r19.z).x;
//       r15.w = t1.Load(r19.w).x;
//     } else {
//       r1.w = mad((int)r19.y, asint(cb0[5].z), (int)r11.x);
//       r15.x = t0.Load(r1.w).x;
//       r19.xyz = (int3)r19.yyy + int3(1,2,3);
//       r19.xyz = mad((int3)r19.xyz, asint(cb0[5].zzz), (int3)r11.xxx);
//       r15.y = t0.Load(r19.x).x;
//       r15.z = t0.Load(r19.y).x;
//       r15.w = t0.Load(r19.z).x;
//     }
//   }
//   if (r20.w != 0) {
//     r19.xyz = cb0[21].xyz;
//   }
//   if (r20.w == 0) {
//     r20.xy = int2(0x80000000,0x7fffffff) & asint(cb0[15].yy);
//     if (r20.x != 0) {
//       r1.w = mad((int)r20.y, asint(cb0[5].z), (int)r11.x);
//       r19.x = t1.Load(r1.w).x;
//       r20.xz = (int2)r20.yy + int2(1,2);
//       r20.xz = mad((int2)r20.xz, asint(cb0[5].zz), (int2)r11.xx);
//       r19.y = t1.Load(r20.x).x;
//       r19.z = t1.Load(r20.z).x;
//     } else {
//       r1.w = mad((int)r20.y, asint(cb0[5].z), (int)r11.x);
//       r19.x = t0.Load(r1.w).x;
//       r20.xy = (int2)r20.yy + int2(1,2);
//       r20.xy = mad((int2)r20.xy, asint(cb0[5].zz), (int2)r11.xx);
//       r19.y = t0.Load(r20.x).x;
//       r19.z = t0.Load(r20.y).x;
//     }
//   }
//   r20.xyz = cb0[9].xyz * r19.xyz;
//   r1.w = dot(r15.xyzw, r15.xyzw);
//   r1.w = rsqrt(r1.w);
//   r15.xyzw = r15.xyzw * r1.wwww;
//   r21.xyz = cb0[11].xyz * r15.www;
//   r21.xyz = r15.yzx * cb0[11].www + r21.yzx;
//   r22.xyz = cb0[11].zxy * r15.xyz;
//   r22.xyz = r15.zxy * cb0[11].xyz + -r22.xyz;
//   r21.xyz = r22.xyz + r21.xyz;
//   r1.w = dot(r15.xyz, cb0[11].xyz);
//   r1.w = cb0[11].w * r15.w + -r1.w;
//   r15.xyz = r21.xyz + r21.xyz;
//   r22.xy = r21.zx * r15.zx;
//   r2.w = r21.y * r15.y;
//   r25.xyz = r15.xyz * r1.www;
//   r15.zw = r21.xz * r15.xz + r2.ww;
//   r26.xy = r21.zz * r15.yx + -r25.xy;
//   r27.xy = float2(1,1) + -r15.zw;
//   r26.z = r21.x * r15.y + r25.z;
//   r28.xy = r21.zz * r15.xy + r25.yx;
//   r28.w = r21.x * r15.y + -r25.z;
//   r1.w = r22.x + r22.y;
//   r28.z = 1 + -r1.w;
//   if (cb0[8].z != 0) {
//     switch (cb0[8].z) {
//       case 1 :      r1.w = dot(r14.xyz, r14.xyz);
//       r1.w = sqrt(r1.w);
//       r2.w = cmp(0 < r1.w);
//       r14.xyz = r14.xyz / r1.www;
//       r14.xyz = r2.www ? r14.xyz : 0;
//       r21.x = r10.x * r7.z;
//       r21.y = r10.y * r8.z;
//       r21.z = r10.z * r9.z;
//       r21.xyz = cb0[7].www ? r21.xyz : float3(0,0,1);
//       r15.xyz = r2.www ? r14.zxy : r21.zxy;
//       break;
//       case 2 :      if (cb0[7].w != 0) {
//         r14.xyz = r17.xyz * float3(2097152,2097152,2097152) + r13.xyz;
//         r21.xyz = r14.yyy * r8.xyz;
//         r14.xyw = r14.xxx * r7.xyz + r21.xyz;
//         r14.xyz = r14.zzz * r9.xyz + r14.xyw;
//         r14.xyz = r14.xyz + r6.xyz;
//         r21.xyz = r1.xyz;
//       }
//       r21.xyz = cb0[7].www ? r21.xyz : cb0[7].xyz;
//       r14.xyz = cb0[7].www ? r14.xyz : r13.xyz;
//       r21.xyz = cb1[64].xyz + -r21.xyz;
//       r14.xyz = cb1[106].xyz + -r14.xyz;
//       r22.xyz = r14.xyz * r14.xyz;
//       r25.xyz = r14.xyz * float3(9.53674316e-07,9.53674316e-07,9.53674316e-07) + r21.xyz;
//       r25.xy = r25.xy * r21.xy;
//       r22.xy = float2(4.76837158e-07,4.76837158e-07) * r22.xy;
//       r1.w = r25.x + r25.y;
//       r2.w = r22.x + r22.y;
//       r1.w = r21.z * r25.z + r1.w;
//       r2.w = r22.z * 4.76837158e-07 + r2.w;
//       r1.w = r2.w * 4.76837158e-07 + r1.w;
//       r1.w = rsqrt(r1.w);
//       r1.w = 4.76837158e-07 * r1.w;
//       r21.xyz = r21.xyz * r1.www;
//       r14.xyz = r14.xyz * r1.www;
//       r14.xyz = r21.xyz * float3(2097152,2097152,2097152) + r14.xyz;
//       r21.xyz = r10.xxx * r7.xyz;
//       r22.xyz = r10.yyy * r8.xyz;
//       r25.xyz = r10.zzz * r9.xyz;
//       r21.x = dot(r14.xyz, r21.xyz);
//       r21.y = dot(r14.xyz, r22.xyz);
//       r21.z = dot(r14.xyz, r25.xyz);
//       r15.xyz = cb0[7].www ? r21.zxy : r14.zxy;
//       break;
//       default :
//       r14.xyz = r10.xxx * r7.xyz;
//       r21.xyz = r10.yyy * r8.xyz;
//       r22.xyz = r10.zzz * r9.xyz;
//       r14.x = dot(-cb1[95].xyz, r14.xyz);
//       r14.y = dot(-cb1[95].xyz, r21.xyz);
//       r14.z = dot(-cb1[95].xyz, r22.xyz);
//       r15.xyz = cb0[7].www ? r14.zxy : -cb1[95].zxy;
//       break;
//     }
//     if (cb0[12].y != 0) {
//       r14.xy = cmp(int2(1,0) == asint(cb0[13].ww));
//       r1.w = ~(int)r0.w;
//       r2.w = r14.y ? r1.w : 0;
//       r2.w = (int)r2.w | (int)r14.x;
//       r0.w = r0.w ? r2.w : 0;
//       r14.xyz = r10.xxx * r7.yzx;
//       r21.xyz = r10.yyy * r8.yzx;
//       r22.xyz = r10.zzz * r9.yzx;
//       r25.z = dot(cb0[13].yzx, r14.xyz);
//       r25.x = dot(cb0[13].yzx, r21.xyz);
//       r25.y = dot(cb0[13].yzx, r22.xyz);
//       r2.w = ~(int)r2.w;
//       r1.w = (int)r1.w & (int)r2.w;
//       r21.xyz = cb0[13].yyy * r21.xyz;
//       r14.xyz = r14.xyz * cb0[13].xxx + r21.xyz;
//       r14.xyz = r22.xyz * cb0[13].zzz + r14.xyz;
//       r14.xyz = r1.www ? r14.xyz : cb0[13].yzx;
//       r14.xyz = r0.www ? r25.xzy : r14.xzy;
//       r0.w = dot(r15.zyx, r14.xyz);
//       r0.w = cmp(0.99000001 < abs(r0.w));
//       r1.w = cmp(0.99000001 < abs(r14.z));
//       r21.xyz = r1.www ? float3(1,0,0) : float3(0,0,1);
//       r21.xyz = r0.www ? r21.xyz : r15.yzx;
//       r22.xyz = r21.xyz * r14.xzy;
//       r21.xyz = r14.yxz * r21.yzx + -r22.xyz;
//       r0.w = dot(r21.xyz, r21.xyz);
//       r0.w = rsqrt(r0.w);
//       r21.xyz = r21.xyz * r0.www;
//       r22.xyz = r21.xyz * r14.xzy;
//       r22.xyz = r21.zxy * r14.zyx + -r22.xyz;
//       r25.x = r22.x;
//       r25.y = r21.y;
//       r25.z = r14.y;
//       r29.x = r22.y;
//       r29.y = r21.z;
//       r29.z = r14.x;
//       r14.x = r22.z;
//       r14.y = r21.x;
//     } else {
//       r0.w = cmp(3 == asint(cb0[8].z));
//       r1.w = cmp(0.99000001 < abs(r15.x));
//       r2.w = cmp(0 < r15.x);
//       r3.w = cmp(r15.x < 0);
//       r2.w = (int)r2.w + (int)-r3.w;
//       r2.w = (int)r2.w;
//       r21.xyz = float3(1,0,0) * r2.www;
//       r21.xyz = r1.www ? r21.xyz : float3(0,0,1);
//       r21.xyz = r0.www ? cb1[94].xyz : r21.xyz;
//       r22.xyz = r10.xxx * r7.xyz;
//       r30.xyz = r10.yyy * r8.xyz;
//       r31.xyz = r10.zzz * r9.xyz;
//       r22.x = dot(r21.xyz, r22.xyz);
//       r22.y = dot(r21.xyz, r30.xyz);
//       r22.z = dot(r21.xyz, r31.xyz);
//       r21.xyz = cb0[7].www ? r22.xyz : r21.xyz;
//       r22.xyz = r21.xyz * r15.xyz;
//       r21.xyz = r21.zxy * r15.yzx + -r22.xyz;
//       r0.w = dot(r21.xyz, r21.xyz);
//       r0.w = rsqrt(r0.w);
//       r21.xyz = r21.xyz * r0.www;
//       r22.xyz = r21.xyz * r15.xyz;
//       r14.xyz = r15.zxy * r21.yzx + -r22.xyz;
//       r25.x = r15.y;
//       r25.y = r21.z;
//       r25.z = r14.x;
//       r29.x = r15.z;
//       r29.y = r21.x;
//       r29.z = r14.y;
//       r14.x = r15.x;
//       r14.y = r21.y;
//     }
//     r27.z = r28.x;
//     r27.w = r26.x;
//     r15.x = dot(r27.xzw, r25.xyz);
//     r21.x = dot(r27.xzw, r29.xyz);
//     r22.x = dot(r27.xzw, r14.xyz);
//     r26.w = r27.y;
//     r15.y = dot(r26.ywz, r25.xyz);
//     r21.y = dot(r26.ywz, r29.xyz);
//     r22.y = dot(r26.ywz, r14.xyz);
//     r15.z = dot(r28.ywz, r25.xyz);
//     r21.z = dot(r28.ywz, r29.xyz);
//     r22.z = dot(r28.ywz, r14.xyz);
//     r27.xyz = r21.xyz;
//     r28.xyz = r22.xyz;
//   } else {
//     r15.x = r27.x;
//     r15.y = r26.y;
//     r15.z = r28.y;
//     r27.xz = r28.xw;
//     r28.xy = r26.xz;
//   }
//   if (cb0[7].w != 0) {
//     r14.xyz = r17.xyz * float3(2097152,2097152,2097152) + r13.xyz;
//     r21.xyz = r14.yyy * r8.xyz;
//     r14.xyw = r14.xxx * r7.xyz + r21.xyz;
//     r14.xyz = r14.zzz * r9.xyz + r14.xyw;
//     r14.xyz = r14.xyz + r6.xyz;
//     r21.xyz = r1.xyz;
//   }
//   r21.xyz = cb0[7].www ? r21.xyz : cb0[7].xyz;
//   r14.xyz = cb0[7].www ? r14.xyz : r13.xyz;
//   if (r11.w != 0) {
//     r0.w = cb0[24].w;
//   }
//   if (r11.w == 0) {
//     r11.zw = int2(0x80000000,0x7fffffff) & asint(cb0[16].yy);
//     if (r11.z != 0) {
//       r1.w = mad((int)r11.w, asint(cb0[5].z), (int)r11.x);
//       r0.w = t1.Load(r1.w).x;
//     } else {
//       r1.w = mad((int)r11.w, asint(cb0[5].z), (int)r11.x);
//       r0.w = t0.Load(r1.w).x;
//     }
//   }
//   r21.xyz = cb1[64].xyz + -r21.xyz;
//   r14.xyz = cb1[106].xyz + -r14.xyz;
//   r22.xyz = r14.xyz * r14.xyz;
//   r25.xyz = r14.xyz * float3(9.53674316e-07,9.53674316e-07,9.53674316e-07) + r21.xyz;
//   r11.zw = r25.xy * r21.xy;
//   r22.xy = float2(4.76837158e-07,4.76837158e-07) * r22.xy;
//   r1.w = r11.z + r11.w;
//   r2.w = r22.x + r22.y;
//   r1.w = r21.z * r25.z + r1.w;
//   r2.w = r22.z * 4.76837158e-07 + r2.w;
//   r1.w = r2.w * 4.76837158e-07 + r1.w;
//   r1.w = rsqrt(r1.w);
//   r1.w = 4.76837158e-07 * r1.w;
//   r21.xyz = r21.xyz * r1.www;
//   r14.xyz = r14.xyz * r1.www;
//   r14.xyz = r21.xyz * float3(2097152,2097152,2097152) + r14.xyz;
//   r21.xyz = r10.xxx * r7.xyz;
//   r10.xyw = r10.yyy * r8.xyz;
//   r22.xyz = r10.zzz * r9.xyz;
//   r25.x = dot(r14.xyz, r21.xyz);
//   r25.y = dot(r14.xyz, r10.xyw);
//   r25.z = dot(r14.xyz, r22.xyz);
//   r14.xyz = cb0[7].www ? r25.xyz : r14.xyz;
//   r13.xyz = r14.xyz * r0.www + r13.xyz;
//   r14.x = dot(cb0[10].xyz, r21.xyz);
//   r14.y = dot(cb0[10].xyz, r10.xyw);
//   r14.z = dot(cb0[10].xyz, r22.xyz);
//   r10.xyz = cb0[7].www ? r14.xyz : cb0[10].xyz;
//   r10.xyz = r13.xyz + r10.xyz;
//   r14.xyz = cb0[10].xyz * r19.xyz;
//   r19.x = dot(r14.xyz, r15.xyz);
//   r19.y = dot(r14.xyz, r27.xyz);
//   r19.z = dot(r14.xyz, r28.xyz);
//   r13.xyz = r19.xyz + r13.xyz;
//   r10.xyz = cb0[12].xxx ? r10.xyz : r13.xyz;
//   r13.xyz = r18.xyz * r16.xyz;
//   r14.xyz = r23.xzy * r18.xzy;
//   r16.xyz = r24.xyz * r18.xyz;
//   r15.xyz = r20.xyz * r15.xyz;
//   r18.xyz = r27.xzy * r20.xzy;
//   r19.xyz = r28.xyz * r20.xyz;
//   if (cb0[7].w != 0) {
//     r20.xyz = r17.xyz * float3(2097152,2097152,2097152) + r12.xyz;
//     r21.x = r13.x;
//     r21.y = r14.x;
//     r21.z = r16.x;
//     r22.x = r3.x;
//     r22.y = r4.x;
//     r22.z = r5.x;
//     r23.x = dot(r21.xyz, r22.xyz);
//     r24.x = r3.y;
//     r24.y = r4.y;
//     r24.z = r5.y;
//     r23.y = dot(r21.xyz, r24.xyz);
//     r5.x = r3.z;
//     r5.y = r4.z;
//     r23.z = dot(r21.xyz, r5.xyz);
//     r3.x = r13.y;
//     r3.y = r14.z;
//     r3.z = r16.y;
//     r4.x = dot(r3.xyz, r22.xyz);
//     r4.y = dot(r3.xyz, r24.xyz);
//     r4.z = dot(r3.xyz, r5.xyz);
//     r14.x = r13.z;
//     r14.z = r16.z;
//     r16.x = dot(r14.xyz, r22.xyz);
//     r16.y = dot(r14.xyz, r24.xyz);
//     r16.z = dot(r14.xyz, r5.xyz);
//     r20.w = 1;
//     r22.w = r2.x;
//     r12.x = dot(r20.xyzw, r22.xyzw);
//     r24.w = r2.y;
//     r12.y = dot(r20.xyzw, r24.xyzw);
//     r5.w = r2.z;
//     r12.z = dot(r20.xyzw, r5.xyzw);
//     r2.xyz = r17.xyz * float3(2097152,2097152,2097152) + r10.xyz;
//     r3.x = r15.x;
//     r3.y = r18.x;
//     r3.z = r19.x;
//     r5.x = r7.x;
//     r5.y = r8.x;
//     r5.z = r9.x;
//     r20.x = dot(r3.xyz, r5.xyz);
//     r21.x = r7.y;
//     r21.y = r8.y;
//     r21.z = r9.y;
//     r20.y = dot(r3.xyz, r21.xyz);
//     r9.x = r7.z;
//     r9.y = r8.z;
//     r20.z = dot(r3.xyz, r9.xyz);
//     r3.x = r15.y;
//     r3.y = r18.z;
//     r3.z = r19.y;
//     r7.x = dot(r3.xyz, r5.xyz);
//     r7.y = dot(r3.xyz, r21.xyz);
//     r7.z = dot(r3.xyz, r9.xyz);
//     r18.x = r15.z;
//     r18.z = r19.z;
//     r19.x = dot(r18.xyz, r5.xyz);
//     r19.y = dot(r18.xyz, r21.xyz);
//     r19.z = dot(r18.xyz, r9.xyz);
//     r2.w = 1;
//     r5.w = r6.x;
//     r10.x = dot(r2.xyzw, r5.xyzw);
//     r21.w = r6.y;
//     r10.y = dot(r2.xyzw, r21.xyzw);
//     r9.w = r6.z;
//     r10.z = dot(r2.xyzw, r9.xyzw);
//     r17.xyz = r1.xyz;
//   } else {
//     r1.xyz = r17.xyz;
//     r20.x = r15.x;
//     r20.y = r18.x;
//     r20.z = r19.x;
//     r7.x = r15.y;
//     r7.y = r18.z;
//     r7.z = r19.y;
//     r19.x = r15.z;
//     r19.y = r18.y;
//     r23.x = r13.x;
//     r23.y = r14.x;
//     r23.z = r16.x;
//     r4.x = r13.y;
//     r4.y = r14.z;
//     r4.z = r16.y;
//     r16.x = r13.z;
//     r16.y = r14.y;
//   }
//   r2.xyz = cb0[28].yyy * r4.xyz;
//   r2.xyz = cb0[28].xxx * r23.xyz + r2.xyz;
//   r2.xyz = cb0[28].zzz * r16.xyz + r2.xyz;
//   r2.xyz = r2.xyz + r12.xyz;
//   r3.xyz = -cb1[64].xyz + r1.xyz;
//   r2.xyz = -cb1[73].xyz + r2.xyz;
//   r2.xyz = r3.xyz * float3(2097152,2097152,2097152) + r2.xyz;
//   r0.w = dot(r2.xyz, r2.xyz);
//   r1.w = cmp(r0.w < cb0[29].x);
//   r0.w = cmp(cb0[29].y < r0.w);
//   r0.w = (int)r0.w | (int)r1.w;
//   if (r0.w != 0) {
//     r0.w = cb0[29].z ? 1.91017818e-38 : 0x004fffff;
//     u1[r0.y].val[0/4] = r0.w;
//     return;
//   }
//   r2.x = u0[r0.z].val[0/4];
//   r2.y = u0[r0.z].val[0/4+1];
//   r2.z = u0[r0.z].val[0/4+2];
//   r1.xyz = -r2.xyz + r1.xyz;
//   r1.xyz = r1.xyz * float3(2097152,2097152,2097152) + r12.xyz;
//   r3.z = r4.y;
//   r3.x = r16.y;
//   r3.y = r23.y;
//   r5.y = r16.z;
//   r5.z = r23.z;
//   r5.x = r4.z;
//   r6.xyz = r5.xyz * r3.xyz;
//   r3.xyz = r3.zxy * r5.yzx + -r6.xyz;
//   r5.x = r23.x;
//   r5.y = r4.x;
//   r5.z = r16.x;
//   r0.z = dot(r3.xyz, r5.xyz);
//   r0.z = cmp(r0.z < 0);
//   r3.xy = cb0[29].zz ? float2(12,13) : float2(4,5);
//   r0.z = r0.z ? r3.y : r3.x;
//   bitmask.x = ((~(-1 << 12)) << 20) & 0xffffffff;  r3.x = (((uint)r0.z << 20) & bitmask.x) | ((uint)cb0[25].x & ~bitmask.x);
//   bitmask.y = ((~(-1 << 24)) << 0) & 0xffffffff;  r3.y = (((uint)r0.x << 0) & bitmask.y) | ((uint)0x01000000 & ~bitmask.y);
//   r3.z = cb1[144].w;
//   r3.w = 0;
//   u1[r0.y].val[0/4] = r3.x;
//   u1[r0.y].val[0/4+1] = r3.y;
//   u1[r0.y].val[0/4+2] = r3.z;
//   u1[r0.y].val[0/4+3] = r3.w;
//   r0.z = dot(r23.xyz, r23.xyz);
//   r0.w = dot(r4.xyz, r4.xyz);
//   r0.zw = sqrt(r0.zw);
//   r2.w = dot(r16.xyz, r16.xyz);
//   r3.w = sqrt(r2.w);
//   r5.xyz = r23.yzx / r0.zzz;
//   r4.xyz = r4.xyz / r0.www;
//   r3.xyz = r16.xyz / r3.www;
//   r2.w = cmp(r3.z < 0);
//   r3.xyzw = r2.wwww ? -r3.xyzw : r3.xyzw;
//   r6.xy = -r3.xy;
//   r2.w = dot(float3(1,1,1), abs(r3.xyz));
//   r8.xy = r3.xy / r2.ww;
//   r2.w = r8.x + r8.y;
//   r4.w = r8.x + -r8.y;
//   r5.w = 1 + r3.z;
//   r5.w = 1 / r5.w;
//   r7.w = r6.x * r3.y;
//   r8.z = r7.w * r5.w;
//   r9.xy = r3.xy * r3.xy;
//   r8.xy = -r9.xy * r5.ww + float2(1,1);
//   r8.w = r6.x;
//   r5.w = dot(r5.zxy, r8.xzw);
//   r6.zw = r8.zy;
//   r6.x = dot(r5.yzx, r6.yzw);
//   r6.y = cmp(abs(r5.w) < abs(r6.x));
//   r6.x = (int)r6.y ? r6.x : r5.w; r8.x = (int)r6.y ? r5.w : r6.x;
//   r5.w = cmp(r6.x < 0);
//   r6.xz = r5.ww ? float2(-1,1) : float2(1,-1);
//   r0.z = r6.x * r0.z;
//   r5.w = r8.x * r6.x;
//   r8.xyz = r3.zxy * r5.xyz;
//   r3.xyz = r3.yzx * r5.yzx + -r8.xyz;
//   r3.x = dot(r4.xyz, r3.xyz);
//   r3.x = cmp(r3.x < 0);
//   r3.x = r3.x ? r6.z : r6.x;
//   r0.w = r3.x * r0.w;
//   r2.w = 32767 * r2.w;
//   r2.w = round(r2.w);
//   r2.w = (int)r2.w;
//   r2.w = (int)r2.w + 0x00008000;
//   r3.x = 32767 * r4.w;
//   r3.x = round(r3.x);
//   r3.x = (int)r3.x;
//   r3.x = (uint)r3.x << 16;
//   r3.x = (int)r3.x + 0x80000000;
//   bitmask.x = ((~(-1 << 16)) << 0) & 0xffffffff;  r4.x = (((uint)r2.w << 0) & bitmask.x) | ((uint)r3.x & ~bitmask.x);
//   r2.w = 23169.0605 * r5.w;
//   r2.w = round(r2.w);
//   r2.w = (int)r2.w;
//   r2.w = (int)r2.w + 0x00004000;
//   r3.x = r6.y ? 0.000000 : 0;
//   r4.y = (int)r2.w | (int)r3.x;
//   r2.w = max(abs(r0.w), abs(r3.w));
//   r2.w = max(r2.w, abs(r0.z));
//   if (8 == 0) r3.x = 0; else if (8+23 < 32) {   r3.x = (uint)r2.w << (32-(8 + 23)); r3.x = (uint)r3.x >> (32-8);  } else r3.x = (uint)r2.w >> 23;
//   r5.xy = (int2)r3.xx + int2(1,2);
//   r3.x = (uint)r5.x << 23;
//   r3.x = (int)-r3.x + 0x86800000;
//   r5.w = (int)r3.x & 0x7f800000;
//   r2.w = r5.w * r2.w;
//   r2.w = round(r2.w);
//   r2.w = (uint)r2.w;
//   r2.w = cmp((int)r2.w == 0x00008000);
//   r5.z = 0.5 * r5.w;
//   r3.xy = r2.ww ? r5.yz : r5.xw;
//   r0.zw = r3.yy * r0.zw;
//   r0.zw = round(r0.zw);
//   r0.zw = (int2)r0.zw;
//   r0.w = (uint)r0.w << 16;
//   r0.zw = (int2)r0.zw + int2(0x8000,0x80000000);
//   bitmask.z = ((~(-1 << 16)) << 0) & 0xffffffff;  r4.z = (((uint)r0.z << 0) & bitmask.z) | ((uint)r0.w & ~bitmask.z);
//   r0.z = r3.w * r3.y;
//   r0.z = round(r0.z);
//   r0.z = (int)r0.z;
//   r0.z = (int)r0.z + 0x00008000;
//   bitmask.w = ((~(-1 << 16)) << 16) & 0xffffffff;  r4.w = (((uint)r3.x << 16) & bitmask.w) | ((uint)r0.z & ~bitmask.w);
//   r0.z = (int)r0.y + asint(cb0[2].z);
//   u1[r0.z].val[0/4] = r4.x;
//   u1[r0.z].val[0/4+1] = r4.y;
//   u1[r0.z].val[0/4+2] = r4.z;
//   u1[r0.z].val[0/4+3] = r4.w;
//   r0.z = asuint(cb0[2].z) << 1;
//   r0.y = (int)r0.y + (int)r0.z;
//   r1.w = 0;
//   u1[r0.y].val[0/4] = r1.x;
//   u1[r0.y].val[0/4+1] = r1.y;
//   u1[r0.y].val[0/4+2] = r1.z;
//   u1[r0.y].val[0/4+3] = r1.w;
//   r0.yz = mad(asint(cb0[25].xx), int2(42,42), int2(27,28));
//   r0.y = u0[r0.y].val[12/4];
//   r0.z = u0[r0.z].val[12/4];
//   r0.y = mad((int)r0.x, (int)r0.z, (int)r0.y);
//   r0.x = (int)r0.y + 2;
//   r0.z = -1;
//   r0.xy = cb0[29].zz ? r0.yx : r0.zy;
//   r0.zw = cmp((int2)r0.xy != int2(-1,-1));
//   if (r0.z != 0) {
//     r1.xyz = r17.xyz + -r2.xyz;
//     r1.xyz = r1.xyz * float3(2097152,2097152,2097152) + r10.xyz;
//     r0.z = dot(r20.xyz, r20.xyz);
//     r0.z = sqrt(r0.z);
//     r2.x = dot(r7.xyz, r7.xyz);
//     r2.x = sqrt(r2.x);
//     r2.y = dot(r19.xyz, r19.xyz);
//     r3.w = sqrt(r2.y);
//     r2.yzw = r20.yzx / r0.zzz;
//     r4.xyz = r7.xyz / r2.xxx;
//     r3.xyz = r19.xyz / r3.www;
//     r4.w = cmp(r3.z < 0);
//     r3.xyzw = r4.wwww ? -r3.xyzw : r3.xyzw;
//     r5.xy = -r3.xy;
//     r4.w = dot(float3(1,1,1), abs(r3.xyz));
//     r6.xy = r3.xy / r4.ww;
//     r4.w = r6.x + r6.y;
//     r6.x = r6.x + -r6.y;
//     r6.y = 1 + r3.z;
//     r6.y = 1 / r6.y;
//     r6.z = r5.x * r3.y;
//     r7.z = r6.z * r6.y;
//     r6.zw = r3.xy * r3.xy;
//     r7.xy = -r6.zw * r6.yy + float2(1,1);
//     r7.w = r5.x;
//     r5.x = dot(r2.wyz, r7.xzw);
//     r5.zw = r7.zy;
//     r5.y = dot(r2.zwy, r5.yzw);
//     r5.z = cmp(abs(r5.x) < abs(r5.y));
//     r5.x = (int)r5.z ? r5.y : r5.x; r7.x = (int)r5.z ? r5.x : r5.y;
//     r5.x = cmp(r5.x < 0);
//     r5.xy = r5.xx ? float2(-1,1) : float2(1,-1);
//     r0.z = r5.x * r0.z;
//     r5.w = r7.x * r5.x;
//     r6.yzw = r3.zxy * r2.yzw;
//     r2.yzw = r3.yzx * r2.zwy + -r6.yzw;
//     r2.y = dot(r4.xyz, r2.yzw);
//     r2.y = cmp(r2.y < 0);
//     r2.y = r2.y ? r5.y : r5.x;
//     r2.x = r2.x * r2.y;
//     r2.y = 32767 * r4.w;
//     r2.y = round(r2.y);
//     r2.y = (int)r2.y;
//     r2.z = 32767 * r6.x;
//     r2.z = round(r2.z);
//     r2.z = (int)r2.z;
//     r2.z = (uint)r2.z << 16;
//     r2.yz = (int2)r2.yz + int2(0x8000,0x80000000);
//     bitmask.x = ((~(-1 << 16)) << 0) & 0xffffffff;  r4.x = (((uint)r2.y << 0) & bitmask.x) | ((uint)r2.z & ~bitmask.x);
//     r2.y = 23169.0605 * r5.w;
//     r2.y = round(r2.y);
//     r2.y = (int)r2.y;
//     r2.y = (int)r2.y + 0x00004000;
//     r2.z = r5.z ? 0.000000 : 0;
//     r4.y = (int)r2.z | (int)r2.y;
//     r2.y = max(abs(r2.x), abs(r3.w));
//     r2.y = max(r2.y, abs(r0.z));
//     if (8 == 0) r2.z = 0; else if (8+23 < 32) {     r2.z = (uint)r2.y << (32-(8 + 23)); r2.z = (uint)r2.z >> (32-8);    } else r2.z = (uint)r2.y >> 23;
//     r5.xy = (int2)r2.zz + int2(1,2);
//     r2.z = (uint)r5.x << 23;
//     r2.z = (int)-r2.z + 0x86800000;
//     r5.w = (int)r2.z & 0x7f800000;
//     r2.y = r5.w * r2.y;
//     r2.y = round(r2.y);
//     r2.y = (uint)r2.y;
//     r2.y = cmp((int)r2.y == 0x00008000);
//     r5.z = 0.5 * r5.w;
//     r2.yz = r2.yy ? r5.yz : r5.xw;
//     r0.z = r2.z * r0.z;
//     r0.z = round(r0.z);
//     r0.z = (int)r0.z;
//     r0.z = (int)r0.z + 0x00008000;
//     r2.x = r2.x * r2.z;
//     r2.x = round(r2.x);
//     r2.x = (int)r2.x;
//     r2.x = (uint)r2.x << 16;
//     r2.x = (int)r2.x + 0x80000000;
//     bitmask.z = ((~(-1 << 16)) << 0) & 0xffffffff;  r4.z = (((uint)r0.z << 0) & bitmask.z) | ((uint)r2.x & ~bitmask.z);
//     r0.z = r3.w * r2.z;
//     r0.z = round(r0.z);
//     r0.z = (int)r0.z;
//     r0.z = (int)r0.z + 0x00008000;
//     bitmask.w = ((~(-1 << 16)) << 16) & 0xffffffff;  r4.w = (((uint)r2.y << 16) & bitmask.w) | ((uint)r0.z & ~bitmask.w);
//     u2[r0.x].val[0/4] = r4.x;
//     u2[r0.x].val[0/4+1] = r4.y;
//     u2[r0.x].val[0/4+2] = r4.z;
//     u2[r0.x].val[0/4+3] = r4.w;
//     r0.z = (int)r0.x + 1;
//     r1.w = 0;
//     u2[r0.z].val[0/4] = r1.x;
//     u2[r0.z].val[0/4+1] = r1.y;
//     u2[r0.z].val[0/4+2] = r1.z;
//     u2[r0.z].val[0/4+3] = r1.w;
//   }
//   if (r0.w != 0) {
//     r11.y = 0;
//     u2[r0.y].val[0/4] = r11.x;
//     u2[r0.y].val[0/4+1] = r11.y;
//     u2[r0.y].val[0/4+2] = r11.y;
//     u2[r0.y].val[0/4+3] = r11.y;
//   }
//   return;
// }
//////////////////////////////// HLSL Errors ////////////////////////////////
// E:\SteamLibrary\steamapps\common\DRAGON BALL Sparking! ZERO\SparkingZERO\Binaries\Win64\ShaderFixes\573412f26f247ea6-cs_replace.txt(21,8-12): error X3000: syntax error: unexpected token 'sint4'
/////////////////////////////////////////////////////////////////////////////
