//Geometry culling CS 1.
//
// Generated by Microsoft (R) HLSL Shader Compiler 10.1
//
//   using 3Dmigoto v0.6.163 on Thu Aug 21 22:08:25 2025
//
//
// Buffer Definitions:
//
// cbuffer cb_scene
// {
//
//   float4x4 view_g;                   // Index:    0 1 2 3          Components:    16
//   float4x4 viewInv_g;                // Index:    4 5 6 7          Components:    16
//   float4x4 proj_g;                   // Index:    8 9 10 11        Components:    16 [unused]
//   float4x4 projInv_g;                // Index:   12 13 14 15       Components:    16 [unused]
//   float4x4 viewProj_g;               // Index:   16 17 18 19       Components:    16
//   float4x4 viewProjInv_g;            // Index:   20 21 22 23       Components:    16 [unused]
//   float2 vpSize_g;                   // Index:   24.xy             Components:     2 [unused]
//   float2 invVPSize_g;                // Index:   24.zw             Components:     2 [unused]
//   float3 lightColor_g;               // Index:   25.xyz            Components:     3 [unused]
//   float disableMapObjNearFade_g;     // Index:   25.w              Components:     1
//   float3 lightDirection_g;           // Index:   26.xyz            Components:     3 [unused]
//   float gameTime_g;                  // Index:   26.w              Components:     1 [unused]
//   float3 sceneShadowColor_g;         // Index:   27.xyz            Components:     3 [unused]
//   int shadowmapCascadeCount_g;       // Index:   27.w              Components:     1 [unused]
//   float3 windDirection_g;            // Index:   28.xyz            Components:     3 [unused]
//   float sceneTime_g;                 // Index:   28.w              Components:     1 [unused]
//   float2 lightTileSizeInv_g;         // Index:   29.xy             Components:     2 [unused]
//   float fogNearDistance_g;           // Index:   29.z              Components:     1 [unused]
//   float fogFadeRangeInv_g;           // Index:   29.w              Components:     1 [unused]
//   float3 fogColor_g;                 // Index:   30.xyz            Components:     3 [unused]
//   float fogIntensity_g;              // Index:   30.w              Components:     1 [unused]
//   float fogHeight_g;                 // Index:   31.x              Components:     1 [unused]
//   float fogHeightRangeInv_g;         // Index:   31.y              Components:     1 [unused]
//   float windWaveTime_g;              // Index:   31.z              Components:     1 [unused]
//   float windWaveFrequency_g;         // Index:   31.w              Components:     1 [unused]
//   uint localLightProbeCount_g;       // Index:   32.x              Components:     1 [unused]
//   float lightSpecularGlossiness_g;   // Index:   32.y              Components:     1 [unused]
//   float lightSpecularIntensity_g;    // Index:   32.z              Components:     1 [unused]
//   float localShadowResolutionInv_g;  // Index:   32.w              Components:     1 [unused]
//   float4x4 ditherMtx_g;              // Index:   33 34 35 36       Components:    16 [unused]
//   float4 lightProbe_g[9];            // Index:   37-45             Components:    36 [unused]
//   float3 chrLightDir_g;              // Index:   46.xyz            Components:     3
//   float windForce_g;                 // Index:   46.w              Components:     1 [unused]
//   float4 mapColor_g;                 // Index:   47.xyzw           Components:     4 [unused]
//   float4 clipPlane_g;                // Index:   48.xyzw           Components:     4 [unused]
//   float2 resolutionScaling_g;        // Index:   49.xy             Components:     2 [unused]
//   float2 invShadowSize_g;            // Index:   49.zw             Components:     2 [unused]
//   float3 chrShadowColor_g;           // Index:   50.xyz            Components:     3 [unused]
//   float shadowFadeNear_g;            // Index:   50.w              Components:     1 [unused]
//   float4 frustumPlanes_g[6];         // Index:   51-56             Components:    24 [unused]
//   float3 shadowSplitDistance_g;      // Index:   57.xyz            Components:     3 [unused]
//   float shadowFadeRangeInv_g;        // Index:   57.w              Components:     1 [unused]
//   float4x4 shadowMtx_g[4];           // Index:   58-73             Components:    64 [unused]
//
// }
//
// cbuffer cb_instance_cull
// {
//
//   struct Frustum
//   {
//
//       float4 planes[6];              // Index:    0
//
//   } frustum_g;                       // Index:    0-5              Components:    24
//   float4x4 prevViewProj_g;           // Index:    6 7 8 9          Components:    16
//   uint instanceCount_g;              // Index:   10.x              Components:     1
//   uint disableLODClip_g;             // Index:   10.y              Components:     1
//   float clipFadeSpeed_g;             // Index:   10.z              Components:     1
//   float lodDistanceScale_g;          // Index:   10.w              Components:     1
//   float3 translate_g;                // Index:   11.xyz            Components:     3
//   uint enableCull_g;                 // Index:   11.w              Components:     1
//   int2 hizResolution_g;              // Index:   12.xy             Components:     2
//   int hizMipMaxLevel_g;              // Index:   12.z              Components:     1
//   uint colliderCount_g;              // Index:   12.w              Components:     1
//   float farClipScale_g;              // Index:   13.x              Components:     1
//
// }
//
// Resource bind info for srcInstances_g
// {
//
//   struct InstanceParam
//   {
//
//       float4x4 world;                // Index:    0
//       float4 color;                  // Index:    4
//       float4 uv;                     // Index:    5
//       float4 param;                  // Index:    6
//       uint boneAddress;              // Index:    7
//       float3 param2;                 // Index:    7.y
//
//   } $Element;                        // Index:    0-7              Components:    32
//
// }
//
// Resource bind info for colliders_g
// {
//
//   struct PlantCollider
//   {
//
//       float3 pos;                    // Index:    0
//       float radius;                  // Index:    0.w
//       float pushStrength;            // Index:    1
//       float waveTime;                // Index:    1.y
//       float pad[2];                  // Index:    1.z
//
//   } $Element;                        // Index:    0 1              Components:     8
//
// }
//
// Resource bind info for destInstances_g
// {
//
//   struct InstanceParam
//   {
//
//       float4x4 world;                // Index:    0
//       float4 color;                  // Index:    4
//       float4 uv;                     // Index:    5
//       float4 param;                  // Index:    6
//       uint boneAddress;              // Index:    7
//       float3 param2;                 // Index:    7.y
//
//   } $Element;                        // Index:    0-7              Components:    32
//
// }
//
// Resource bind info for instanceInfos_g
// {
//
//   struct InstanceInfo
//   {
//
//       uint bufferOffset;             // Index:    0
//       uint instanceID;               // Index:    0.y
//       uint flags;                    // Index:    0.z
//       float collisionStrength;       // Index:    0.w
//       float3 aabbMin;                // Index:    1
//       uint instanceCount;            // Index:    1.w
//       float3 aabbMax;                // Index:    2
//       float reserve;                 // Index:    2.w
//       float radius;                  // Index:    3
//       float nearClipDistance;        // Index:    3.y
//       float farClipDistance;         // Index:    3.z
//       float fadeTimer;               // Index:    3.w
//       float3 basePos;                // Index:    4
//       float collisionRadius;         // Index:    4.w
//
//   } $Element;                        // Index:    0-4              Components:    20
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// srcInstances_g                    texture  struct         r/o    4        1
// colliders_g                       texture  struct         r/o    5        1
// hiz_texture                       texture  float4          2d    6        1
// destInstances_g                       UAV  struct         r/w    0        1
// indirectArg_g                         UAV    byte         r/w    1        1
// instanceInfos_g                       UAV  struct         r/w    2        1
// collisionFeedbackBuffer_g             UAV    byte         r/w    3        1
// cb_scene                          cbuffer      NA          NA    0        1
// cb_instance_cull                  cbuffer      NA          NA    2        1
//
//
//
// 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[47], immediateIndexed
dcl_constantbuffer CB2[14], dynamicIndexed
dcl_resource_structured t4, 128
dcl_resource_structured t5, 32
dcl_resource_texture2d (float,float,float,float) t6
dcl_uav_structured u0, 128
dcl_uav_raw u1
dcl_uav_structured u2, 80
dcl_uav_raw u3
dcl_input vThreadID.x
dcl_temps 35
dcl_resource_texture2d (float,float,float,float) t125
dcl_thread_group 1024, 1, 1
ld_indexable(texture2d)(float,float,float,float) r25.xyzw, l(0, 0, 0, 0), t125.xyzw
uge r0.x, vThreadID.x, cb2[10].x
if_nz r0.x
  ret
endif
ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r0.x, vThreadID.x, l(8), u2.xxxx
and r0.x, r0.x, l(0x10000820)
if_nz r0.x
  ret
endif
ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r0.x, vThreadID.x, l(8), u2.xxxx
and r0.yz, r0.xxxx, l(0, 128, 8, 0)
mov r1.x, cb0[4].w
mov r1.y, cb0[5].w
mov r1.z, cb0[6].w
add r2.xyz, r1.xyzx, cb2[11].xyzx
movc r2.xyz, r0.yyyy, r2.xyzx, cb2[11].xyzx
ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r3.xyz, vThreadID.x, l(64), u2.xyzx
add r3.xyz, r2.xyzx, r3.xyzx
add r1.xyz, -r1.xyzx, r3.xyzx
dp3 r0.y, r1.xyzx, r1.xyzx
sqrt r0.y, r0.y
if_nz r0.z
  and r0.x, r0.x, l(16)
  ieq r0.x, r0.x, l(0)
  ieq r0.z, l(0), cb2[10].y
  or r0.x, r0.z, r0.x
  ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r0.z, vThreadID.x, l(52), u2.xxxx
  mul r0.z, r0.z, cb2[10].w
  lt r0.z, r0.y, r0.z
  movc r0.z, r0.z, l(-1.000000), l(1.000000)
  movc r0.x, r0.x, r0.z, l(1.000000)
else
  mov r0.x, l(1.000000)
endif
ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r0.z, vThreadID.x, l(8), u2.xxxx
and r0.z, r0.z, l(1024)
ine r0.z, r0.z, l(0)
ne r0.w, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[25].w
not r0.w, r0.w
and r0.z, r0.w, r0.z
if_nz r0.z
  ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r1.xyz, vThreadID.x, l(64), u2.xyzx
  add r1.xyz, r2.xyzx, r1.xyzx
  mov r1.w, l(1.000000)
  dp4 r0.z, cb0[2].xyzw, r1.xyzw
  ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r0.w, vThreadID.x, l(52), u2.xxxx
  lt r0.z, -r0.z, r0.w
  movc r0.x, r0.z, l(-1.000000), r0.x
endif
ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r0.z, vThreadID.x, l(8), u2.xxxx
and r0.w, r0.z, l(4)
if_nz r0.w
  ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r0.w, vThreadID.x, l(56), u2.xxxx
  mul r0.w, r0.w, cb2[10].w
  ld_structured_indexable(structured_buffer, stride=128)(mixed,mixed,mixed,mixed) r1.x, vThreadID.x, l(76), t4.xxxx
  lt r1.y, l(0.000000), r1.x
  if_nz r1.y
    and r0.z, r0.z, l(8192)
    if_nz r0.z
      mul r0.w, r1.x, cb2[13].x
    else
      mul r0.z, r1.x, cb2[13].x
      min r0.w, r0.z, r0.w
    endif
  endif
  lt r0.y, r0.w, r0.y
  movc r0.x, r0.y, l(-1.000000), r0.x
endif
ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r0.y, vThreadID.x, l(60), u2.xxxx
mad_sat r0.w, r0.x, cb2[10].z, r0.y
store_structured u2.x, vThreadID.x, l(60), r0.w
if_nz cb2[11].w
  ge r1.x, l(0.000000), r0.w
  if_nz r1.x
    ret
  endif
  ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r1.xyz, vThreadID.x, l(16), u2.xyzx
  ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r3.xyz, vThreadID.x, l(32), u2.xyzx
  ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r1.w, vThreadID.x, l(8), u2.xxxx
  and r1.w, r1.w, l(1)
  if_nz r1.w
    add r1.xyz, r2.xyzx, r1.xyzx
    add r3.xyz, r2.xyzx, r3.xyzx
    add r4.xyz, -r1.xyzx, r3.xyzx
    mad r4.xyz, r4.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r1.xyzx
    ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r2.w, vThreadID.x, l(48), u2.xxxx
    mov r3.w, l(0)
    mov r4.w, l(0)
    loop
      uge r5.x, r3.w, l(6)
      mov r4.w, l(0)
      breakc_nz r5.x
      dp3 r5.x, r4.xyzx, cb2[r3.w + 0].xyzx
      add r5.x, r5.x, cb2[r3.w + 0].w
      lt r5.x, r5.x, -r2.w
      if_nz r5.x
        mov r4.w, l(-1)
        break
      endif
      iadd r3.w, r3.w, l(1)
      mov r4.w, r5.x
    endloop
    if_nz r4.w
      ret
    endif
    mov r1.w, l(1.000000)
    dp4 r4.x, r1.xyzw, cb2[6].xyzw
    dp4 r4.y, r1.xyzw, cb2[7].xyzw
    dp4 r4.z, r1.xyzw, cb2[8].xyzw
    dp4 r5.w, r1.xyzw, cb2[9].xyzw
	
	add r26.x, r5.w, -r25.y
	mad r4.x, r25.x, r26.x, r4.x
	
    div r4.xyz, r4.xyzx, r5.wwww
    dp4 r6.x, r1.xyzw, cb0[16].xyzw
    dp4 r6.y, r1.xyzw, cb0[17].xyzw
    dp4 r6.z, r1.xyzw, cb0[18].xyzw
    dp4 r7.w, r1.xyzw, cb0[19].xyzw
	
	add r26.x, r7.w, -r25.y
	mad r6.x, r25.x, r26.x, r6.x
	
    div r6.xyz, r6.xyzx, r7.wwww
    mad r5.xyz, r4.xyzx, l(0.500000, -0.500000, 1.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
    mad r7.xyz, r6.xyzx, l(0.500000, -0.500000, 1.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
    add r4.xyzw, -r5.xyzw, r7.xyzw
    mad r6.xyz, -|r4.xywx|, l(20.000000, 20.000000, 1.000000, 0.000000), r5.xywx
    min r6.xyz, r6.xyzx, l(340282346638528859811704183484516925440.000000, 340282346638528859811704183484516925440.000000, 340282346638528859811704183484516925440.000000, 0.000000)
    mad r4.xyzw, |r4.xyzw|, l(20.000000, 20.000000, 20.000000, 1.000000), r5.xyzw
    max r4.xyzw, r4.xyzw, l(-340282346638528859811704183484516925440.000000, -340282346638528859811704183484516925440.000000, -340282346638528859811704183484516925440.000000, -340282346638528859811704183484516925440.000000)
    mov r5.xyw, r1.xyxw
    mov r5.z, r3.z
    dp4 r7.x, r5.xyzw, cb2[6].xyzw
    dp4 r7.y, r5.xyzw, cb2[7].xyzw
    dp4 r7.z, r5.xyzw, cb2[8].xyzw
    dp4 r8.w, r5.xyzw, cb2[9].xyzw
	
	add r26.x, r8.w, -r25.y
	mad r7.x, r25.x, r26.x, r7.x
	
    div r7.xyz, r7.xyzx, r8.wwww
    dp4 r9.x, r5.xyzw, cb0[16].xyzw
    dp4 r9.y, r5.xyzw, cb0[17].xyzw
    dp4 r9.z, r5.xyzw, cb0[18].xyzw
    dp4 r10.w, r5.xyzw, cb0[19].xyzw
	
	add r26.x, r10.w, -r25.y
	mad r9.x, r25.x, r26.x, r9.x
	
    div r9.xyz, r9.xyzx, r10.wwww
    mad r8.xyz, r7.xyzx, l(0.500000, -0.500000, 1.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
    mad r10.xyz, r9.xyzx, l(0.500000, -0.500000, 1.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
    add r7.xyzw, -r8.xyzw, r10.xyzw
    mad r9.xyz, -|r7.xywx|, l(20.000000, 20.000000, 1.000000, 0.000000), r8.xywx
    min r6.xyz, r6.xyzx, r9.xyzx
    mad r7.xyzw, |r7.xyzw|, l(20.000000, 20.000000, 20.000000, 1.000000), r8.xyzw
    max r4.xyzw, r4.xyzw, r7.xyzw
    mov r7.xzw, r1.xxzw
    mov r7.y, r3.y
    dp4 r8.x, r7.xyzw, cb2[6].xyzw
    dp4 r8.y, r7.xyzw, cb2[7].xyzw
    dp4 r8.z, r7.xyzw, cb2[8].xyzw
    dp4 r9.w, r7.xyzw, cb2[9].xyzw
	
	add r26.x, r9.w, -r25.y
	mad r8.x, r25.x, r26.x, r8.x
	
    div r3.yzw, r8.xxyz, r9.wwww
    dp4 r8.x, r7.xyzw, cb0[16].xyzw
    dp4 r8.y, r7.xyzw, cb0[17].xyzw
    dp4 r8.z, r7.xyzw, cb0[18].xyzw
    dp4 r10.w, r7.xyzw, cb0[19].xyzw
	
	add r26.x, r10.w, -r25.y
	mad r8.x, r25.x, r26.x, r8.x
	
    div r8.xyz, r8.xyzx, r10.wwww
    mad r9.xyz, r3.yzwy, l(0.500000, -0.500000, 1.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
    mad r10.xyz, r8.xyzx, l(0.500000, -0.500000, 1.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
    add r8.xyzw, -r9.xyzw, r10.xyzw
    mad r3.yzw, -|r8.xxyw|, l(0.000000, 20.000000, 20.000000, 1.000000), r9.xxyw
    min r3.yzw, r3.yyzw, r6.xxyz
    mad r6.xyzw, |r8.xyzw|, l(20.000000, 20.000000, 20.000000, 1.000000), r9.xyzw
    max r4.xyzw, r4.xyzw, r6.xyzw
    mov r5.xyw, r7.xyxw
    dp4 r6.x, r5.xyzw, cb2[6].xyzw
    dp4 r6.y, r5.xyzw, cb2[7].xyzw
    dp4 r6.z, r5.xyzw, cb2[8].xyzw
    dp4 r7.w, r5.xyzw, cb2[9].xyzw
	
	add r26.x, r7.w, -r25.y
	mad r6.x, r25.x, r26.x, r6.x
	
    div r6.xyz, r6.xyzx, r7.wwww
    dp4 r8.x, r5.xyzw, cb0[16].xyzw
    dp4 r8.y, r5.xyzw, cb0[17].xyzw
    dp4 r8.z, r5.xyzw, cb0[18].xyzw
    dp4 r9.w, r5.xyzw, cb0[19].xyzw
	
	add r26.x, r9.w, -r25.y
	mad r8.x, r25.x, r26.x, r8.x
	
    div r8.xyz, r8.xyzx, r9.wwww
    mad r7.xyz, r6.xyzx, l(0.500000, -0.500000, 1.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
    mad r9.xyz, r8.xyzx, l(0.500000, -0.500000, 1.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
    add r6.xyzw, -r7.xyzw, r9.xyzw
    mad r8.xyz, -|r6.xywx|, l(20.000000, 20.000000, 1.000000, 0.000000), r7.xywx
    min r3.yzw, r3.yyzw, r8.xxyz
    mad r6.xyzw, |r6.xyzw|, l(20.000000, 20.000000, 20.000000, 1.000000), r7.xyzw
    max r4.xyzw, r4.xyzw, r6.xyzw
    mov r1.x, r3.x
    dp4 r6.x, r1.xyzw, cb2[6].xyzw
    dp4 r6.y, r1.xyzw, cb2[7].xyzw
    dp4 r6.z, r1.xyzw, cb2[8].xyzw
    dp4 r7.w, r1.xyzw, cb2[9].xyzw
	
	add r26.x, r7.w, -r25.y
	mad r6.x, r25.x, r26.x, r6.x
	
    div r6.xyz, r6.xyzx, r7.wwww
    dp4 r8.x, r1.xyzw, cb0[16].xyzw
    dp4 r8.y, r1.xyzw, cb0[17].xyzw
    dp4 r8.z, r1.xyzw, cb0[18].xyzw
    dp4 r9.w, r1.xyzw, cb0[19].xyzw
	
	add r26.x, r9.w, -r25.y
	mad r8.x, r25.x, r26.x, r8.x
	
    div r8.xyz, r8.xyzx, r9.wwww
    mad r7.xyz, r6.xyzx, l(0.500000, -0.500000, 1.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
    mad r9.xyz, r8.xyzx, l(0.500000, -0.500000, 1.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
    add r6.xyzw, -r7.xyzw, r9.xyzw
    mad r8.xyz, -|r6.xywx|, l(20.000000, 20.000000, 1.000000, 0.000000), r7.xywx
    min r3.xyz, r3.yzwy, r8.xyzx
    mad r6.xyzw, |r6.xyzw|, l(20.000000, 20.000000, 20.000000, 1.000000), r7.xyzw
    max r4.xyzw, r4.xyzw, r6.xyzw
    mov r6.xyw, r1.xyxw
    mov r6.z, r5.z
    dp4 r7.x, r6.xyzw, cb2[6].xyzw
    dp4 r7.y, r6.xyzw, cb2[7].xyzw
    dp4 r7.z, r6.xyzw, cb2[8].xyzw
    dp4 r8.w, r6.xyzw, cb2[9].xyzw
	
	add r26.x, r8.w, -r25.y
	mad r7.x, r25.x, r26.x, r7.x
	
    div r7.xyz, r7.xyzx, r8.wwww
    dp4 r9.x, r6.xyzw, cb0[16].xyzw
    dp4 r9.y, r6.xyzw, cb0[17].xyzw
    dp4 r9.z, r6.xyzw, cb0[18].xyzw
    dp4 r10.w, r6.xyzw, cb0[19].xyzw
	
	add r26.x, r10.w, -r25.y
	mad r9.x, r25.x, r26.x, r9.x
	
    div r9.xyz, r9.xyzx, r10.wwww
    mad r8.xyz, r7.xyzx, l(0.500000, -0.500000, 1.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
    mad r10.xyz, r9.xyzx, l(0.500000, -0.500000, 1.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
    add r7.xyzw, -r8.xyzw, r10.xyzw
    mad r9.xyz, -|r7.xywx|, l(20.000000, 20.000000, 1.000000, 0.000000), r8.xywx
    min r3.xyz, r3.xyzx, r9.xyzx
    mad r7.xyzw, |r7.xyzw|, l(20.000000, 20.000000, 20.000000, 1.000000), r8.xyzw
    max r4.xyzw, r4.xyzw, r7.xyzw
    mov r5.xzw, r1.xxzw
    dp4 r1.x, r5.xyzw, cb2[6].xyzw
    dp4 r1.y, r5.xyzw, cb2[7].xyzw
    dp4 r1.z, r5.xyzw, cb2[8].xyzw
    dp4 r7.w, r5.xyzw, cb2[9].xyzw
	
	add r26.x, r7.w, -r25.y
	mad r1.x, r25.x, r26.x, r1.x
	
    div r1.xyz, r1.xyzx, r7.wwww
    dp4 r8.x, r5.xyzw, cb0[16].xyzw
    dp4 r8.y, r5.xyzw, cb0[17].xyzw
    dp4 r8.z, r5.xyzw, cb0[18].xyzw
    dp4 r9.w, r5.xyzw, cb0[19].xyzw
	
	add r26.x, r9.w, -r25.y
	mad r8.x, r25.x, r26.x, r8.x
	
    div r8.xyz, r8.xyzx, r9.wwww
    mad r7.xyz, r1.xyzx, l(0.500000, -0.500000, 1.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
    mad r9.xyz, r8.xyzx, l(0.500000, -0.500000, 1.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
    add r1.xyzw, -r7.xyzw, r9.xyzw
    mad r8.xyz, -|r1.xywx|, l(20.000000, 20.000000, 1.000000, 0.000000), r7.xywx
    min r3.xyz, r3.xyzx, r8.xyzx
    mad r1.xyzw, |r1.xyzw|, l(20.000000, 20.000000, 20.000000, 1.000000), r7.xyzw
    max r1.xyzw, r1.xyzw, r4.xyzw
    mov r6.xyw, r5.xyxw
    dp4 r4.x, r6.xyzw, cb2[6].xyzw
    dp4 r4.y, r6.xyzw, cb2[7].xyzw
    dp4 r4.z, r6.xyzw, cb2[8].xyzw
    dp4 r5.w, r6.xyzw, cb2[9].xyzw
	
	add r26.x, r5.w, -r25.y
	mad r4.x, r25.x, r26.x, r4.x
	
    div r4.xyz, r4.xyzx, r5.wwww
    dp4 r7.x, r6.xyzw, cb0[16].xyzw
    dp4 r7.y, r6.xyzw, cb0[17].xyzw
    dp4 r7.z, r6.xyzw, cb0[18].xyzw
    dp4 r6.w, r6.xyzw, cb0[19].xyzw
	
	add r26.x, r6.w, -r25.y
	mad r7.x, r25.x, r26.x, r7.x
	
    div r7.xyz, r7.xyzx, r6.wwww
    mad r5.xyz, r4.xyzx, l(0.500000, -0.500000, 1.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
    mad r6.xyz, r7.xyzx, l(0.500000, -0.500000, 1.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
    add r4.xyzw, -r5.xyzw, r6.xyzw
    mad r6.xyz, -|r4.xywx|, l(20.000000, 20.000000, 1.000000, 0.000000), r5.xywx
    min r3.xyz, r3.xyzx, r6.xyzx
    mad r4.xyzw, |r4.xyzw|, l(20.000000, 20.000000, 20.000000, 1.000000), r5.xyzw
    max r1.xyzw, r1.xyzw, r4.xyzw
    lt r2.w, r3.z, l(0.000000)
    lt r1.w, r1.w, l(0.000000)
    or r1.w, r1.w, r2.w
    if_z r1.w
      itof r4.xyzw, cb2[12].xyxy
      mov r3.zw, r1.xxxy
      mul r1.xy, r4.xyxx, r3.xyxx
      mad r1.xy, r3.zwzz, r4.zwzz, -r1.xyxx
      max r1.x, r1.y, r1.x
      mul r1.x, r1.x, l(0.500000)
      max r1.x, r1.x, l(1.000000)
      log r1.x, r1.x
      round_pi r1.x, r1.x
      ftoi r1.x, r1.x
      imax r1.x, r1.x, l(0)
      imin r4.zw, r1.xxxx, cb2[12].zzzz
      ishr r5.xyzw, cb2[12].xyxy, r4.wwww
      itof r6.xyzw, r5.zwzw
      mul r3.xyzw, r3.xyzw, r6.xyzw
      round_ni r3.xyzw, r3.xyzw
      iadd r5.xyzw, r5.xyzw, l(-1, -1, -1, -1)
      itof r5.xyzw, r5.xyzw
      max r3.xyzw, r3.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
      min r3.xyzw, r5.xyzw, r3.xyzw
      ftoi r1.xy, r3.xyxx
      mov r4.x, r1.x
      mov r1.w, l(0)
      loop
        itof r2.w, r4.x
        lt r2.w, r3.z, r2.w
        mov r1.w, l(0)
        breakc_nz r2.w
        mov r4.y, r1.y
        mov r2.w, l(0)
        loop
          itof r3.x, r4.y
          lt r3.x, r3.w, r3.x
          mov r2.w, l(0)
          breakc_nz r3.x
          ld_indexable(texture2d)(float,float,float,float) r3.x, r4.xyzw, t6.xyzw
          ge r3.x, r1.z, r3.x
          if_nz r3.x
            mov r2.w, l(-1)
            break
          endif
          iadd r4.y, r4.y, l(1)
          mov r2.w, r3.x
        endloop
        mov r1.w, r2.w
        breakc_nz r2.w
        iadd r4.x, r4.x, l(1)
        mov r1.w, r2.w
      endloop
      not r1.x, r1.w
    else
      mov r1.x, l(0)
    endif
    if_nz r1.x
      ret
    endif
  endif
else
  mov r0.w, l(1.000000)
endif
ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r1.xyz, vThreadID.x, l(0), u2.xyzx
imad r1.y, l(20), r1.y, l(4)
imm_atomic_iadd r3.x, u1, r1.y, l(1)
iadd r1.x, r1.x, r3.x
ld_structured_indexable(structured_buffer, stride=128)(mixed,mixed,mixed,mixed) r3.xyzw, vThreadID.x, l(0), t4.xyzw
ld_structured_indexable(structured_buffer, stride=128)(mixed,mixed,mixed,mixed) r4.xyzw, vThreadID.x, l(16), t4.xyzw
ld_structured_indexable(structured_buffer, stride=128)(mixed,mixed,mixed,mixed) r5.xyzw, vThreadID.x, l(32), t4.xywz
ld_structured_indexable(structured_buffer, stride=128)(mixed,mixed,mixed,mixed) r6.xyzw, vThreadID.x, l(48), t4.xyzw
ld_structured_indexable(structured_buffer, stride=128)(mixed,mixed,mixed,mixed) r0.xyz, vThreadID.x, l(64), t4.xyzx
ld_structured_indexable(structured_buffer, stride=128)(mixed,mixed,mixed,mixed) r7.xyzw, vThreadID.x, l(80), t4.xyzw
ld_structured_indexable(structured_buffer, stride=128)(mixed,mixed,mixed,mixed) r8.xyzw, vThreadID.x, l(96), t4.xyzw
ld_structured_indexable(structured_buffer, stride=128)(mixed,mixed,mixed,mixed) r9.xyzw, vThreadID.x, l(112), t4.xyzw
store_structured u0.xyz, r1.x, l(0), r3.xyzx
store_structured u0.xyz, r1.x, l(16), r4.xyzx
store_structured u0.xyz, r1.x, l(32), r5.xywx
store_structured u0.xyzw, r1.x, l(48), r6.xyzw
store_structured u0.xyzw, r1.x, l(80), r7.xyzw
store_structured u0.xyzw, r1.x, l(96), r8.xyzw
store_structured u0.xyzw, r1.x, l(112), r9.xyzw
store_structured u0.xyzw, r1.x, l(64), r0.xyzw
mov r5.x, r3.w
mov r5.y, r4.w
add r0.xyz, r2.xyzx, r5.xyzx
store_structured u0.x, r1.x, l(12), r0.x
store_structured u0.x, r1.x, l(28), r0.y
store_structured u0.x, r1.x, l(44), r0.z
and r0.w, r1.z, l(4096)
if_nz r0.w
  store_structured u0.xyz, r1.x, l(80), cb0[46].xyzx
endif
ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r0.w, vThreadID.x, l(8), u2.xxxx
and r1.y, r0.w, l(2)
if_nz r1.y
  ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r1.y, vThreadID.x, l(76), u2.xxxx
  ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r1.z, vThreadID.x, l(12), u2.xxxx
  mov r1.w, l(0)
  loop
    uge r2.x, r1.w, cb2[12].w
    breakc_nz r2.x
    ld_structured_indexable(structured_buffer, stride=32)(mixed,mixed,mixed,mixed) r2.xyzw, r1.w, l(0), t5.xyzw
    add r2.xyz, r0.xyzx, -r2.xyzx
    dp3 r3.x, r2.xyzx, r2.xyzx
    sqrt r3.y, r3.x
    add r2.w, r1.y, r2.w
    lt r3.z, r3.y, r2.w
    if_nz r3.z
      ishl r3.z, r1.w, l(2)
      atomic_or u3, r3.z, r0.w
      lt r3.z, l(0.000000), r3.y
      if_nz r3.z
        ld_structured_indexable(structured_buffer, stride=32)(mixed,mixed,mixed,mixed) r3.zw, r1.w, l(16), t5.xxxy
        add r3.w, r3.w, r3.y
        mul r3.w, r3.w, l(0.159154937)
        ge r4.x, r3.w, -r3.w
        frc r3.w, |r3.w|
        movc r3.w, r4.x, r3.w, -r3.w
        mul r3.w, r3.w, l(6.28318548)
        sincos r3.w, null, r3.w
        mad r3.w, r3.w, l(0.500000), l(0.500000)
        rsq r3.x, r3.x
        mul r2.xyz, r2.xyzx, r3.xxxx
        mul r2.xyz, r3.wwww, r2.xyzx
        add r2.w, -r3.y, r2.w
        mul r2.xyz, r2.wwww, r2.xyzx
        mul r2.xyz, r1.zzzz, r2.xyzx
        ld_structured_indexable(structured_buffer, stride=128)(mixed,mixed,mixed,mixed) r3.xyw, r1.x, l(116), u0.xyxz
        mad r2.xyz, r2.xyzx, r3.zzzz, r3.xywx
        store_structured u0.xyz, r1.x, l(116), r2.xyzx
      endif
    endif
    iadd r1.w, r1.w, l(1)
  endloop
endif
ret
// Approximately 390 instruction slots used
