//blood splatter
//nedd to define the CB for screen sizue inst of 1080
//
// Generated by Microsoft (R) HLSL Shader Compiler 10.0.10011.16384
//
//   using 3Dmigoto v1.3.11 on Sun Nov 18 19:06:49 2018
//
//
// Buffer Definitions:
//
// cbuffer $Globals
// {
//
//   float4 gFullScreenRenderTargetDimensionsCS;// Offset:    0 Size:    16 [unused]
//   float4 gCSTestParam;               // Offset:   16 Size:    16 [unused]
//   float4 gLPVGridInfo[2];            // Offset:   32 Size:    32 [unused]
//   float4 gDeferredFogParams;         // Offset:   64 Size:    16 [unused]
//   float4 gLocalizedFogParams[5];     // Offset:   80 Size:    80 [unused]
//   row_major float4x4 gWaterRippleParams;// Offset:  160 Size:    64 [unused]
//   float4 gWaterRippleFilterParams[3];// Offset:  224 Size:    48 [unused]
//   float4 gHBAOCSParams[6];           // Offset:  272 Size:    96 [unused]
//   float4 gEdgeDetectParams[3];       // Offset:  368 Size:    48 [unused]
//   row_major float4x4 gMainSceneViewProj;// Offset:  416 Size:    64 [unused]
//   row_major float4x4 gMainSceneProj; // Offset:  480 Size:    64 [unused]
//   row_major float4x4 gMainSceneInvProj;// Offset:  544 Size:    64 [unused]
//   row_major float4x4 gMainSceneInvTransInvView;// Offset:  608 Size:    64 [unused]
//   float4 gSceenResClipDistances;     // Offset:  672 Size:    16 [unused]
//   row_major float4x4 gMainSceneInvViewProj;// Offset:  688 Size:    64 [unused]
//   float4 gTiledDeferredShadowMapTexelSize;// Offset:  752 Size:    16 [unused]
//   float4 gTiledDeferredMergeParams;  // Offset:  768 Size:    16 [unused]
//   float4 gPointInSpaceLightParams;   // Offset:  784 Size:    16 [unused]
//   row_major float4x4 gLumHistComputeParams;// Offset:  800 Size:    64 [unused]
//   float4 gLuminanceToExposureCS;     // Offset:  864 Size:    16 [unused]
//   float4 gHistogramToExposure;       // Offset:  880 Size:    16 [unused]
//   row_major float4x4 gToneMapOptionsCS;// Offset:  896 Size:    64 [unused]
//   float4 gCameraPositionCS;          // Offset:  960 Size:    16 [unused]
//   float4 gWriteColour;               // Offset:  976 Size:    16 [unused]
//   float4 gLightShadowStrengthCS;     // Offset:  992 Size:    16 [unused]
//   float4 gLightShadowParamsCS;       // Offset: 1008 Size:    16 [unused]
//   row_major float4x4 gInverseViewProjShadowCS;// Offset: 1024 Size:    64 [unused]
//   row_major float4x4 gShadowMapPackedParamsCS;// Offset: 1088 Size:    64 [unused]
//   row_major float4x4 gCascadeMinMaxDepthCS;// Offset: 1152 Size:    64 [unused]
//   float4 gCameraParametersCS[2];     // Offset: 1216 Size:    32 [unused]
//   float4 gPCFKernelScaleCS;          // Offset: 1248 Size:    16 [unused]
//   float4 gCascadedShadowLightMatricesCS[16];// Offset: 1264 Size:   256 [unused]
//   float4 gLightingExperimentCS[3];   // Offset: 1520 Size:    48 [unused]
//   float4 gFinalGatherCS[5];          // Offset: 1568 Size:    80 [unused]
//   row_major float4x4 gMainSceneView; // Offset: 1648 Size:    64 [unused]
//   float4 gViewportInfoCS;            // Offset: 1712 Size:    16 [unused]
//   float4 gAOParamsCS;                // Offset: 1728 Size:    16 [unused]
//   float4 gLightComponentTogglerCS[3];// Offset: 1744 Size:    48 [unused]
//   float4 gDirectLightingExtraParamsCS;// Offset: 1792 Size:    16 [unused]
//   row_major float4x4 gViewMatrixCS;  // Offset: 1808 Size:    64 [unused]
//   row_major float4x4 gClusteredLightingParamsCS;// Offset: 1872 Size:    64 [unused]
//   float4 gTiledDecalParams[2];       // Offset: 1936 Size:    32
//   float4 gAOStrengthParams;          // Offset: 1968 Size:    16 [unused]
//   float4 gSkinSsaoColourParams;      // Offset: 1984 Size:    16 [unused]
//   float4 gHairSsaoColourParams;      // Offset: 2000 Size:    16 [unused]
//   float4 gFoliageSsaoColourParams;   // Offset: 2016 Size:    16 [unused]
//   row_major float4x4 gKeyLightParametersCS;// Offset: 2032 Size:    64 [unused]
//   row_major float4x4 gVolumetricKeyLightParams;// Offset: 2096 Size:    64 [unused]
//   float4 gAnisoParamsCS;             // Offset: 2160 Size:    16 [unused]
//   float4 gTranslucencyLightingDebugParamsCS;// Offset: 2176 Size:    16 [unused]
//
// }
//
// cbuffer TiledLightConstData_CB
// {
//
//   struct tTiledLightingConstantData
//   {
//
//       row_major float4x4 mInvViewProj;// Offset:    0
//       row_major float4x4 mProj;      // Offset:   64
//       row_major float4x4 mView;      // Offset:  128
//       int mNumberOfTiles;            // Offset:  192
//       float3 mPadding;               // Offset:  196
//
//   } TiledLightConstData;             // Offset:    0 Size:   208
//
// }
//
// cbuffer DecalInfoBuffer_CB
// {
//
//   struct tDecalInfo
//   {
//
//       float4 mColorMapInfo;          // Offset:    0
//       float4 mNormalMapInfo;         // Offset:   16
//       float4 mColor;                 // Offset:   32
//       float2 mRevealOffset;          // Offset:   48
//       float2 mRevealDistance_Fade;   // Offset:   56
//       float3 mPosition;              // Offset:   64
//       float mNormalWorldToUVScale;   // Offset:   76
//       float mNormalWorldToUVScaleInv;// Offset:   80
//       float mNormalMapScale;         // Offset:   84
//       float mRoughness;              // Offset:   88
//       float mMetalness;              // Offset:   92
//       uint mFlags_CompactObjectId;   // Offset:   96
//       uint mPad0;                    // Offset:  100
//       uint mPad1;                    // Offset:  104
//       uint mPad2;                    // Offset:  108
//
//   } DecalInfoBuffer[512];            // Offset:    0 Size: 57344
//
// }
//
// cbuffer DecalOBBBuffer_CB
// {
//
//   struct tOBBInfo
//   {
//
//       float3 mOBBCenter;             // Offset:    0
//       float mPad0;                   // Offset:   12
//       float3 mOBBXAxis;              // Offset:   16
//       float mPad1;                   // Offset:   28
//       float3 mOBBYAxis;              // Offset:   32
//       float mPad2;                   // Offset:   44
//       float3 mOBBZAxis;              // Offset:   48
//       float mPad3;                   // Offset:   60
//       float3 mOBBExtents;            // Offset:   64
//       float mPad4;                   // Offset:   76
//
//   } DecalOBBBuffer[512];             // Offset:    0 Size: 40960
//
// }
//
// Resource bind info for input_decals_per_tile
// {
//
//   uint $Element;                     // Offset:    0 Size:     4
//
// }
//
// Resource bind info for input_num_decals_per_tile
// {
//
//   uint $Element;                     // Offset:    0 Size:     4
//
// }
//
// Resource bind info for tiles_to_execute
// {
//
//   struct tTileLocation
//   {
//
//       uint x_y_packed;               // Offset:    0
//
//   } $Element;                        // Offset:    0 Size:     4
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// DefaultSamp                       sampler      NA          NA    0        1
// DepthBuffer                       texture  float4          2d    0        1
// BaseTex                           texture  float4          2d    1        1
// NormalTex                         texture  float4          2d    2        1
// input_decals_per_tile             texture  struct         r/o    3        1
// input_num_decals_per_tile         texture  struct         r/o    4        1
// tiles_to_execute                  texture  struct         r/o    5        1
// GBuffer0TexInput                  texture   uint4          2d    6        1
// GBuffer1TexInput                  texture   uint4          2d    7        1
// GBuffer0Tex                           UAV   uint4          2d    0        1
// GBuffer1Tex                           UAV   uint4          2d    1        1
// $Globals                          cbuffer      NA          NA    0        1
// TiledLightConstData_CB            cbuffer      NA          NA    1        1
// DecalInfoBuffer_CB                cbuffer      NA          NA    2        1
// DecalOBBBuffer_CB                 cbuffer      NA          NA    3        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[123], immediateIndexed
dcl_constantbuffer cb1[4], immediateIndexed
dcl_constantbuffer cb2[3584], dynamicIndexed
dcl_constantbuffer cb3[2560], dynamicIndexed
dcl_sampler s0, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_texture2d (float,float,float,float) t2
dcl_resource_structured t3, 4
dcl_resource_structured t4, 4
dcl_resource_structured t5, 4
dcl_resource_texture2d (uint,uint,uint,uint) t6
dcl_resource_texture2d (uint,uint,uint,uint) t7
dcl_uav_typed_texture2d (uint,uint,uint,uint) u0
dcl_uav_typed_texture2d (uint,uint,uint,uint) u1
dcl_input vThreadGroupID.xyz
dcl_input vThreadIDInGroup.xy
dcl_temps 30
dcl_thread_group 8, 8, 1
dcl_resource_texture2d (float,float,float,float) t80
ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r0.x, vThreadGroupID.x, l(0), t5.xxxx
ushr r1.x, r0.x, l(16)
and r1.y, r0.x, l(0x0000ffff)
ishl r0.xy, r1.xyxx, l(4, 4, 0, 0)
ishl r0.zw, vThreadGroupID.yyyz, l(0, 0, 3, 3)
iadd r0.xy, r0.zwzz, r0.xyxx
iadd r0.xy, r0.xyxx, vThreadIDInGroup.xyxx
mov r0.zw, l(0,0,0,0)
ld_indexable(texture2d)(uint,uint,uint,uint) r2.xyzw, r0.xyww, t6.xyzw
ld_indexable(texture2d)(uint,uint,uint,uint) r3.xyzw, r0.xyww, t7.xyzw
ftou r1.z, cb0[122].x
utof r1.z, r1.z
add r1.z, r1.z, l(15.000000)
mul r1.z, r1.z, l(0.062500)
round_z r1.z, r1.z
ftou r1.z, r1.z
imad r1.x, r1.y, r1.z, r1.x
ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r1.y, r1.x, l(0), t4.xxxx
umin r1.y, r1.y, l(256)
ld_indexable(texture2d)(float,float,float,float) r4.z, r0.xyzw, t0.yzxw
utof r4.xy, r0.xyxx




mov r4.w, l(1.000000)


ld_indexable(texture2d)(float,float,float,float) r25.xyzw, l(0, 0, 0, 0), t80.xyzw
dp4 r26.x, cb1[3].xyzw, r4.xyzw
mul r26.w, r26.x, r25.y
add r26.w, r26.w, l(-1.000000)
mul r26.w, r26.w, l(1080.0)
mul r26.w, r26.w, l(0.89000)
mad r4.x, r25.x, r26.w, r4.x

dp4 r5.x, cb1[0].xyzw, r4.xyzw
dp4 r5.y, cb1[1].xyzw, r4.xyzw
dp4 r5.z, cb1[2].xyzw, r4.xyzw
dp4 r0.z, cb1[3].xyzw, r4.xyzw




div r4.xyz, r5.xyzx, r0.zzzz
ushr r0.zw, r3.xxxy, l(0, 0, 8, 8)
and r1.zw, r3.xxxw, l(0, 0, 255, 15)
utof r5.xz, r0.zzwz
utof r5.y, r1.z
mul r5.xyz, r5.xyzx, l(0.00392156886, 0.00392156886, 0.00392156886, 0.000000)
ubfe r0.z, l(1), l(7), r2.w
utof r6.xy, r2.xyxx
mad r6.xy, r6.xyxx, l(0.0000305185094, 0.0000305185094, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000)
dp2 r0.w, r6.xyxx, r6.xyxx
add r0.w, -r0.w, l(1.000000)
max r0.w, r0.w, l(0.000000)
sqrt r6.z, r0.w
if_nz r0.z
  mov r6.z, -r6.z
endif
ieq r0.zw, r1.wwww, l(0, 0, 8, 3)
not r1.z, r0.z
ishl r1.x, r1.x, l(8)
mov r7.x, l(0)
mov r8.y, l(0)
mov r9.z, l(0)
mov r10.xyz, l(0,0,0,0)
mov r11.xyz, l(0,0,0,0)
mov r12.xy, l(0,0,0,0)
mov r1.w, l(0)
mov r4.w, l(0)
loop
  uge r5.w, r4.w, r1.y
  breakc_nz r5.w
  lt r5.w, r1.w, l(1.000000)
  if_nz r5.w
    iadd r5.w, r1.x, r4.w
    ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r5.w, r5.w, l(0), t3.xxxx
    imul null, r6.w, r5.w, l(7)
    ushr r7.w, cb2[r6.w + 6].x, l(16)
    and r8.w, l(0x0000ffff), cb2[r6.w + 6].x
    and r12.zw, r7.wwww, l(0, 0, 4, 2)
    ine r13.xy, r12.zwzz, l(0, 0, 0, 0)
    and r9.w, r0.z, r13.x
    ine r10.w, r8.w, l(0x0000ffff)
    ieq r8.w, r2.z, r8.w
    and r8.w, r8.w, r10.w
    ubfe r10.w, l(1), l(16), cb2[r6.w + 6].x
    ine r10.w, r10.w, l(0)
    and r10.w, r0.w, r10.w
    and r11.w, r1.z, r13.y
    or r10.w, r10.w, r11.w
    and r8.w, r8.w, r10.w
    or r8.w, r8.w, r9.w
    if_nz r8.w
      imul null, r5.w, r5.w, l(5)
      and r8.w, r7.w, l(32)
      movc r8.w, r8.w, l(0.500000), l(1.000000)
      mul r13.xy, r8.wwww, cb3[r5.w + 4].zxzz
      add r14.xyz, r4.xyzx, -cb2[r6.w + 4].xyzx
      dp3 r9.w, r14.xyzx, cb3[r5.w + 2].xyzx
      dp3 r15.x, r14.xyzx, cb3[r5.w + 3].xyzx
      dp3 r15.y, r14.xyzx, -cb3[r5.w + 1].xyzx
      dp3 r14.x, -r6.xyzx, cb3[r5.w + 3].xyzx
      dp3 r14.y, -r6.xyzx, -cb3[r5.w + 1].xyzx
      mul r13.zw, r9.wwww, r14.xxxy
      mul r13.zw, r13.zzzw, l(0.000000, 0.000000, 0.200000, 0.200000)
      mad r14.xy, r8.wwww, r15.xyxx, r13.zwzz
      ge r13.yz, r13.xxyx, |r14.xxyx|
      and r10.w, r13.z, r13.y
      if_nz r10.w
        and r13.yzw, r7.wwww, l(0, 256, 64, 128)
        movc r13.yzw, r13.yyzw, l(0,-1.000000,0.500000,0.500000), l(0,1.000000,0,0)
        mul r14.z, r13.y, r14.y
        mad r14.zw, cb3[r5.w + 4].zzzx, r8.wwww, r14.xxxz
        add r15.xy, cb3[r5.w + 4].zxzz, cb3[r5.w + 4].zxzz
        div r14.zw, r14.zzzw, r15.xxxy
        add r13.yz, r13.zzwz, r14.zzwz
        lt r14.zw, l(0.000000, 0.000000, 0.000000, 0.000000), cb2[r6.w + 0].zzzw
        and r8.w, r14.w, r14.z
        if_nz r8.w
          mul r15.xyzw, cb0[121].xyxy, cb2[r6.w + 0].xyzw
          mad r14.zw, r13.yyyz, r15.zzzw, r15.xxxy
          sample_l_indexable(texture2d)(float,float,float,float) r15.xyzw, r14.zwzz, t1.wxyz, s0, l(0.000000)
          mov r16.xyz, r15.yzwy
        else
          mov r16.xyz, l(0,0,0,0)
          mov r15.x, l(0)
        endif
        lt r8.w, l(0.020000), r15.x
        if_nz r8.w
          add r14.xy, r14.xyxx, -cb2[r6.w + 3].xyxx
          dp2 r8.w, r14.xyxx, r14.xyxx
          sqrt r8.w, r8.w
          mad r8.w, cb2[r6.w + 3].z, r13.x, -r8.w
          div_sat r8.w, r8.w, cb2[r6.w + 3].w
          mul r8.w, r8.w, r8.w
          if_nz r12.z
            lt r10.w, r9.w, l(0.000000)
            mul r12.zw, r9.wwww, l(0.000000, 0.000000, -2.500000, 0.625000)
            movc r10.w, r10.w, r12.z, r12.w
          else
            lt r11.w, r9.w, l(0.000000)
            movc r10.w, r11.w, -r9.w, r9.w
          endif
          div r9.w, r10.w, cb3[r5.w + 4].y
          add r9.w, r9.w, l(-0.500000)
          add r9.w, r9.w, r9.w
          max r9.w, r9.w, l(0.000000)
          mad r9.w, -r9.w, r9.w, l(1.000000)
          mul r9.w, r9.w, cb2[r6.w + 2].w
          mul r15.y, r8.w, r9.w
        else
          mov r15.y, l(0)
        endif
      else
        mov r16.xyz, l(0,0,0,0)
        mov r15.xy, l(0,0,0,0)
        mov r13.yz, l(0,0,0,0)
      endif
      add r8.w, -r1.w, l(1.000000)
      mul r8.w, r8.w, r15.y
      mul r9.w, r15.x, r8.w
      lt r10.w, l(0.000000), r9.w
      if_nz r10.w
        and r12.zw, r7.wwww, l(0, 0, 16, 8)
        if_nz r12.z
          mad r10.xyz, r5.xyzx, r9.wwww, r10.xyzx
        else
          mul r14.xyz, r16.xyzx, cb2[r6.w + 2].xyzx
          mad r10.xyz, r14.xyzx, r9.wwww, r10.xyzx
        endif
        if_nz r12.w
          mad r10.w, r8.w, r15.x, l(-0.250000)
          mul r10.w, r10.w, l(1.33333337)
        else
          mov r10.w, r9.w
        endif
        lt r11.w, l(0.000000), r10.w
        if_nz r11.w
          lt r12.zw, l(0.000000, 0.000000, 0.000000, 0.000000), cb2[r6.w + 1].zzzw
          and r11.w, r12.w, r12.z
          if_nz r11.w
            mul r14.xyzw, cb0[121].zwzw, cb2[r6.w + 1].xyzw
            div r12.zw, r13.yyyz, cb2[r6.w + 4].wwww
            ge r13.xy, r12.zwzz, -r12.zwzz
            frc r12.zw, |r12.zzzw|
            movc r12.zw, r13.xxxy, r12.zzzw, -r12.zzzw
            mul r12.zw, r12.zzzw, cb2[r6.w + 4].wwww
            mul r12.zw, r14.zzzw, r12.zzzw
            mad r12.zw, r12.zzzw, cb2[r6.w + 5].xxxx, r14.xxxy
            sample_l_indexable(texture2d)(float,float,float,float) r13.xyz, r12.zwzz, t2.xywz, s0, l(0.000000)
            mad r13.yzw, r13.xxyz, l(0.000000, 2.000000, 2.000000, 2.000000), l(0.000000, -1.000000, -1.000000, -1.000000)
            mul r13.x, r13.w, r13.y
            dp2 r11.w, r13.xzxx, r13.xzxx
            add r11.w, -r11.w, l(1.000000)
            max r11.w, r11.w, l(0.000000)
            sqrt r14.z, r11.w
            mul r11.w, r10.w, cb2[r6.w + 5].y
            mul r14.xy, r11.wwww, r13.xzxx
            dp3 r11.w, r6.xyzx, cb3[r5.w + 2].xyzx
            lt r12.z, l(0.000000), r11.w
            movc r12.z, r12.z, l(1.000000), l(-1.000000)
            mul r11.w, r11.w, r12.z
            mad r11.w, r11.w, l(0.200000), l(0.800000)
            and r7.w, r7.w, l(256)
            movc r7.w, r7.w, l(-1.000000), l(1.000000)
            dp3 r12.w, r14.xyzx, r14.xyzx
            rsq r12.w, r12.w
            mul r13.xyz, r12.wwww, r14.xyzx
            mul r13.xyz, r12.zzzz, r13.xyzx
            mul r14.xyz, r7.wwww, cb3[r5.w + 1].xyzx
            mul r14.xyz, r13.yyyy, r14.xyzx
            mad r13.xyw, cb3[r5.w + 3].xyxz, r13.xxxx, r14.xyxz
            mad r13.xyz, cb3[r5.w + 2].xyzx, r13.zzzz, r13.xywx
            dp3 r7.w, r13.xyzx, r13.xyzx
            rsq r7.w, r7.w
            mul r14.xyz, r7.wwww, r13.xyzx
            mul r15.yzw, r6.yyzx, cb3[r5.w + 2].zzxy
            mad r15.yzw, cb3[r5.w + 2].yyzx, r6.zzxy, -r15.yyzw
            add r5.w, r15.z, r15.y
            add r5.w, r15.w, r5.w
            eq r5.w, r5.w, l(0.000000)
            mul r7.yz, r15.wwzw, l(0.000000, 1.000000, -1.000000, 0.000000)
            mul r8.x, r14.y, -r15.w
            mul r8.z, r14.y, r15.y
            mad r16.xyz, r7.xyzx, r14.xxxx, r8.xyzx
            mul r9.x, r14.z, r15.z
            mul r9.y, r14.z, -r15.y
            add r15.yzw, r9.xxyz, r16.xxyz
            dp3 r7.y, r15.yzwy, r15.yzwy
            rsq r7.y, r7.y
            mul r15.yzw, r7.yyyy, r15.yyzw
            movc r14.xyz, r5.wwww, r14.xyzx, r15.yzwy
            mad r7.yzw, r13.xxyz, r7.wwww, -r14.xxyz
            mad r7.yzw, r11.wwww, r7.yyzw, r14.xxyz
            mad r11.xyz, r7.yzwy, r10.wwww, r11.xyzx
          endif
        endif
        mad r12.xy, cb2[r6.w + 5].zwzz, r9.wwww, r12.xyxx
        mad r1.w, r8.w, r15.x, r1.w
      endif
    endif
  endif
  iadd r4.w, r4.w, l(1)
endloop
lt r0.z, l(0.000000), r1.w
if_nz r0.z
  add r0.z, -r1.w, l(1.000000)
  mad r1.xyz, r0.zzzz, r5.xyzx, r10.xyzx
  mad r4.xyz, r0.zzzz, r6.xyzx, r11.xyzx
  ushr r0.w, r3.z, l(8)
  utof r0.w, r0.w
  mul r0.w, r0.z, r0.w
  mad_sat r0.w, r0.w, l(0.00392156886), r12.x
  ubfe r1.w, l(7), l(1), r3.z
  utof r1.w, r1.w
  mul r0.z, r0.z, r1.w
  mad r0.z, r0.z, l(0.00787401572), r12.y
  dp3 r1.w, r4.xyzx, r4.xyzx
  rsq r1.w, r1.w
  mul r4.xyz, r1.wwww, r4.xyzx
  lt r1.w, r4.z, l(0.000000)
  mad_sat r4.xy, r4.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
  mul r4.xy, r4.xyxx, l(65534.000000, 65534.000000, 0.000000, 0.000000)
  ftou r4.xy, r4.xyxx
  and r5.x, r2.w, l(0x0000ff7f)
  bfi r4.w, l(1), l(7), r1.w, r5.x
  mov r4.z, r2.z
  store_uav_typed u0.xyzw, r0.xyyy, r4.xyzw
  mov_sat r1.xy, r1.xyxx
  mul r1.xy, r1.xyxx, l(255.000000, 255.000000, 0.000000, 0.000000)
  ftou r1.xy, r1.xyxx
  imad r4.x, r1.x, l(256), r1.y
  mul r1.x, r1.z, l(255.000000)
  ftou r1.x, r1.x
  bfi r4.y, l(24), l(8), r1.x, r3.y
  mul r0.w, r0.w, l(255.000000)
  mul r0.z, r0.z, l(127.000000)
  ftou r0.zw, r0.zzzw
  bfi r0.z, l(7), l(1), r0.z, l(0)
  imad r4.z, r0.w, l(256), r0.z
  mov r4.w, r3.w
  store_uav_typed u1.xyzw, r0.xyyy, r4.xyzw
  ret
endif
store_uav_typed u0.xyzw, r0.xyyy, r2.xyzw
store_uav_typed u1.xyzw, r0.xyyy, r3.xyzw
ret
// Approximately 271 instruction slots used
