// MOON
// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.20546
//
//   using 3Dmigoto v1.3.14 on Fri Mar 22 22:15:16 2019
//
//
// Buffer Definitions:
//
// cbuffer cbSceneParam
// {
//
//   float4 FC_FarClipInfo;             // Offset:    0 Size:    16 [unused]
//   float4 FC_ScreenSize;              // Offset:   16 Size:    16 [unused]
//   float4 FC_DepthComputeParam;       // Offset:   32 Size:    16 [unused]
//   float4 SC_CameraPos;               // Offset:   48 Size:    16
//   float4 VC_ClipPlane;               // Offset:   64 Size:    16 [unused]
//   float4x3 FC_MatrixView;            // Offset:   80 Size:    48 [unused]
//   float4x4 FC_MatrixInvViewProj;     // Offset:  128 Size:    64 [unused]
//   float4x4 FC_MatrixInvProj;         // Offset:  192 Size:    64 [unused]
//   float4x4 FC_MatrixProj;            // Offset:  256 Size:    64 [unused]
//   float4x4 FC_MatrixInvView;         // Offset:  320 Size:    64 [unused]
//   float4x4 VC_MatrixViewProj;        // Offset:  384 Size:    64
//   float4 FC_ShadowMapParam;          // Offset:  448 Size:    16 [unused]
//   float4 FC_ShadowColor;             // Offset:  464 Size:    16 [unused]
//   float4 FC_ShadowDir;               // Offset:  480 Size:    16 [unused]
//   float4x4 VC_ShadowMapMatrix;       // Offset:  496 Size:    64 [unused]
//   float FC_ShadowDepthRate;          // Offset:  560 Size:     4 [unused]
//   float FC_ShadowDepthScale;         // Offset:  564 Size:     4 [unused]
//   float FC_ShadowKernelScale;        // Offset:  568 Size:     4 [unused]
//   float FC_ShadowRandTexInvScale;    // Offset:  572 Size:     4 [unused]
//   float FC_ShadowTexInvScaleX;       // Offset:  576 Size:     4 [unused]
//   float FC_ShadowTexInvScaleY;       // Offset:  580 Size:     4 [unused]
//   float FC_ShadowDepthOffsetScale;   // Offset:  584 Size:     4 [unused]
//   float4 FC_ShadowViewKernelScale;   // Offset:  592 Size:    16 [unused]
//   float4x4 FC_ProjSpaceToShadowMatrix[4];// Offset:  608 Size:   256 [unused]
//   float4 FC_CascadeSelectDist;       // Offset:  864 Size:    16 [unused]
//   float FC_FrustumNear;              // Offset:  880 Size:     4 [unused]
//   float FC_FrustumSliceScale;        // Offset:  884 Size:     4 [unused]
//   float FC_FrustumSliceBias;         // Offset:  888 Size:     4 [unused]
//   uint FC_LightTile_Width;           // Offset:  896 Size:     4 [unused]
//   uint FC_LightTile_NumCellX;        // Offset:  900 Size:     4 [unused]
//   float4 FC_CloudShadowParam0;       // Offset:  912 Size:    16 [unused]
//   float4 FC_CloudShadowParam1;       // Offset:  928 Size:    16 [unused]
//   float FC_ShadowScale0;             // Offset:  944 Size:     4 [unused]
//   float FC_ShadowScale1;             // Offset:  948 Size:     4 [unused]
//   bool FC_InsideWaterMode;           // Offset:  952 Size:     4 [unused]
//   bool FC_CameraFadeEnable;          // Offset:  956 Size:     4 [unused]
//   float4 FC_VelocityEncodeParam;     // Offset:  960 Size:    16 [unused]
//   float4 SC_RenderCameraPos;         // Offset:  976 Size:    16 [unused]
//   float SC_ScreenResolutionScale;    // Offset:  992 Size:     4 [unused]
//   float SC_ViewFrustumEpsilon;       // Offset:  996 Size:     4 [unused]
//   float SC_PreExposure;              // Offset: 1000 Size:     4 [unused]
//   float SC_InvPreExposure;           // Offset: 1004 Size:     4 [unused]
//   float4 SC_ViewFrustumPlanes[4];    // Offset: 1008 Size:    64 [unused]
//   float4 FC_VolumeFogParam[4];       // Offset: 1072 Size:    64 [unused]
//
// }
//
// cbuffer cbInstanceData
// {
//
//   struct PerInstanceData
//   {
//
//       float4x3 mWorld;               // Offset:    0
//       float4 userClipPlane;          // Offset:   48
//       uint4 matricesData;            // Offset:   64
//       uint envData;                  // Offset:   80
//       bool dynamicLightDisable;      // Offset:   84
//       uint2 envPad;                  // Offset:   88
//       float4 mulCol;                 // Offset:   96
//       float4 aSh[3];                 // Offset:  112
//       float4 ShLightMask;            // Offset:  160
//       float ditherFadeAlpha;         // Offset:  176
//       float ditherFadePad1;          // Offset:  180
//       float2 ditherFadePad2;         // Offset:  184
//       float4 recursiveResolveArea;   // Offset:  192
//       float4 aColor[4];              // Offset:  208
//
//   } VC_InstanceData[2];              // Offset:    0 Size:   544
//
// }
//
// cbuffer cbObjMatrix
// {
//
//   float4x3 VC_aObjMatrix[2];         // Offset:    0 Size:    96
//
// }
//
// cbuffer cbInstanceIdxParam
// {
//
//   int VC_InstanceIdxOffset;          // Offset:    0 Size:     4
//
// }
//
// cbuffer cbTexScroll
// {
//
//   float4 VC_TexScroll_0;             // Offset:    0 Size:    16
//   float4 VC_TexScroll_1;             // Offset:   16 Size:    16 [unused]
//   float4 VC_TexScroll_2;             // Offset:   32 Size:    16 [unused]
//   float4 VC_TexScroll_3;             // Offset:   48 Size:    16 [unused]
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// g_InstanceIndexBuffer             texture    byte         r/o   20        1
// cbInstanceData                    cbuffer      NA          NA    4        1
// cbObjMatrix                       cbuffer      NA          NA    5        1
// cbSceneParam                      cbuffer      NA          NA    8        1
// cbInstanceIdxParam                cbuffer      NA          NA   10        1
// cbTexScroll                       cbuffer      NA          NA   11        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION                 0   xyz         0     NONE   float   xyz
// NORMAL                   0   xyzw        1     NONE    uint   xyzw
// TANGENT                  0   xyzw        2     NONE    uint   xyzw
// COLOR                    1   xyzw        3     NONE   float   x
// TEXCOORD                 0   xy          4     NONE     int   xy
// SV_INSTANCEID            0   x           5   INSTID    uint   x
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION              0   xyzw        0      POS   float   xyzw
// POSITION                 1   xyzw        1     NONE   float   xyzw
// NORMAL                   0   xyzw        2     NONE   float   xyzw
// TANGENT                  0   xyzw        3     NONE   float   xyzw
// TEXCOORD                 0   xyz         4     NONE   float   xyz
//
vs_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb8[28], immediateIndexed
dcl_constantbuffer cb4[34], dynamicIndexed
dcl_constantbuffer cb5[6], dynamicIndexed
dcl_constantbuffer cb10[1], immediateIndexed
dcl_constantbuffer cb11[1], immediateIndexed
dcl_resource_raw t20
dcl_input v0.xyz
dcl_input v1.xyzw
dcl_input v2.xyzw
dcl_input v3.x
dcl_input v4.xy
dcl_input_sgv v5.x, instance_id
dcl_output_siv o0.xyzw, position
dcl_output o1.xyzw
dcl_output o2.xyzw
dcl_output o3.xyzw
dcl_output o4.xyz

dcl_temps 34
dcl_resource_texture2d (float,float,float,float) t125
dcl_resource_texture1d (float,float,float,float) t120

iadd r0.x, v5.x, cb10[0].x
ishl r0.x, r0.x, l(2)
ld_raw_indexable(raw_buffer)(mixed,mixed,mixed,mixed) r0.x, r0.x, t20.xxxx
imul null, r0.y, r0.x, l(17)
utof o2.w, r0.x
iadd r0.x, v1.w, cb4[r0.y + 4].x
imul null, r0.x, r0.x, l(3)
mov r1.xyz, v0.xyzx
mov r1.w, l(1.000000)
dp4 r2.x, r1.xyzw, cb5[r0.x + 0].xyzw
dp4 r2.y, r1.xyzw, cb5[r0.x + 1].xyzw
dp4 r2.z, r1.xyzw, cb5[r0.x + 2].xyzw
add r1.xyz, r2.xyzx, -cb8[3].xyzx
mov r1.w, l(1.000000)


dp4 r2.x, r1.xyzw, cb8[24].xyzw
dp4 r2.y, r1.xyzw, cb8[25].xyzw
dp4 r2.z, r1.xyzw, cb8[26].xyzw
dp4 r2.w, r1.xyzw, cb8[27].xyzw



ld_indexable(texture2d)(float,float,float,float) r33.xyzw, l(0, 0, 0, 0), t125.xyzw
ld_indexable(texture2d)(float,float,float,float) r32.xyzw, l(0, 0, 0, 0), t120.xyzw

add r33.w, r2.w, -r33.y
mul r33.w, r33.w, r33.x
//mul r33.w, r33.w, l(0.5)
mul r33.w, r33.w, r32.z
add r2.x, r2.x, r33.w

mov o0.xyzw, r2.xyzw
mov o1.xyzw, r2.xyzw
utof r0.yzw, v1.xxyz
add r0.yzw, r0.yyzw, l(0.000000, -127.000000, -127.000000, -127.000000)
mul r0.yzw, r0.yyzw, l(0.000000, 0.00787401572, 0.00787401572, 0.00787401572)
dp3 o2.x, r0.yzwy, cb5[r0.x + 0].xyzx
dp3 o2.y, r0.yzwy, cb5[r0.x + 1].xyzx
dp3 o2.z, r0.yzwy, cb5[r0.x + 2].xyzx
utof r1.xyzw, v2.xyzw
add r1.xyzw, r1.xyzw, l(-127.000000, -127.000000, -127.000000, -127.000000)
mul r1.xyzw, r1.xyzw, l(0.00787401572, 0.00787401572, 0.00787401572, 0.00787401572)
dp3 o3.x, r1.xyzx, cb5[r0.x + 0].xyzx
dp3 o3.y, r1.xyzx, cb5[r0.x + 1].xyzx
dp3 o3.z, r1.xyzx, cb5[r0.x + 2].xyzx
mov o3.w, r1.w
itof r0.xy, v4.xyxx
mul r0.xy, r0.xyxx, cb11[0].xyxx
mad o4.xy, r0.xyxx, l(0.000488281250, 0.000488281250, 0.000000, 0.000000), cb11[0].zwzz
mov o4.z, v3.x
ret
// Approximately 38 instruction slots used

///////////////////////////////// HLSL Code /////////////////////////////////
// // ---- Created with 3Dmigoto v1.3.14 on Fri Mar 22 22:15:16 2019
//
// cbuffer cbSceneParam : register(b8)
// {
//   float4 FC_FarClipInfo : packoffset(c0);
//   float4 FC_ScreenSize : packoffset(c1);
//   float4 FC_DepthComputeParam : packoffset(c2);
//   float4 SC_CameraPos : packoffset(c3);
//   float4 VC_ClipPlane : packoffset(c4);
//   float4x3 FC_MatrixView : packoffset(c5);
//   float4x4 FC_MatrixInvViewProj : packoffset(c8);
//   float4x4 FC_MatrixInvProj : packoffset(c12);
//   float4x4 FC_MatrixProj : packoffset(c16);
//   float4x4 FC_MatrixInvView : packoffset(c20);
//   float4x4 VC_MatrixViewProj : packoffset(c24);
//   float4 FC_ShadowMapParam : packoffset(c28);
//   float4 FC_ShadowColor : packoffset(c29);
//   float4 FC_ShadowDir : packoffset(c30);
//   float4x4 VC_ShadowMapMatrix : packoffset(c31);
//   float FC_ShadowDepthRate : packoffset(c35);
//   float FC_ShadowDepthScale : packoffset(c35.y);
//   float FC_ShadowKernelScale : packoffset(c35.z);
//   float FC_ShadowRandTexInvScale : packoffset(c35.w);
//   float FC_ShadowTexInvScaleX : packoffset(c36);
//   float FC_ShadowTexInvScaleY : packoffset(c36.y);
//   float FC_ShadowDepthOffsetScale : packoffset(c36.z);
//   float4 FC_ShadowViewKernelScale : packoffset(c37);
//   float4x4 FC_ProjSpaceToShadowMatrix[4] : packoffset(c38);
//   float4 FC_CascadeSelectDist : packoffset(c54);
//   float FC_FrustumNear : packoffset(c55);
//   float FC_FrustumSliceScale : packoffset(c55.y);
//   float FC_FrustumSliceBias : packoffset(c55.z);
//   uint FC_LightTile_Width : packoffset(c56);
//   uint FC_LightTile_NumCellX : packoffset(c56.y);
//   float4 FC_CloudShadowParam0 : packoffset(c57);
//   float4 FC_CloudShadowParam1 : packoffset(c58);
//   float FC_ShadowScale0 : packoffset(c59);
//   float FC_ShadowScale1 : packoffset(c59.y);
//   bool FC_InsideWaterMode : packoffset(c59.z);
//   bool FC_CameraFadeEnable : packoffset(c59.w);
//   float4 FC_VelocityEncodeParam : packoffset(c60);
//   float4 SC_RenderCameraPos : packoffset(c61);
//   float SC_ScreenResolutionScale : packoffset(c62);
//   float SC_ViewFrustumEpsilon : packoffset(c62.y);
//   float SC_PreExposure : packoffset(c62.z);
//   float SC_InvPreExposure : packoffset(c62.w);
//   float4 SC_ViewFrustumPlanes[4] : packoffset(c63);
//   float4 FC_VolumeFogParam[4] : packoffset(c67);
// }
//
// cbuffer cbInstanceData : register(b4)
// {
//
//   struct
//   {
//     float4x3 mWorld;
//     float4 userClipPlane;
//     uint4 matricesData;
//     uint envData;
//     bool dynamicLightDisable;
//     uint2 envPad;
//     float4 mulCol;
//     float4 aSh[3];
//     float4 ShLightMask;
//     float ditherFadeAlpha;
//     float ditherFadePad1;
//     float2 ditherFadePad2;
//     float4 recursiveResolveArea;
//     float4 aColor[4];
//   } VC_InstanceData[2] : packoffset(c0);
//
// }
//
// cbuffer cbObjMatrix : register(b5)
// {
//   float4x3 VC_aObjMatrix[2] : packoffset(c0);
// }
//
// cbuffer cbInstanceIdxParam : register(b10)
// {
//   int VC_InstanceIdxOffset : packoffset(c0);
// }
//
// cbuffer cbTexScroll : register(b11)
// {
//   float4 VC_TexScroll_0 : packoffset(c0);
//   float4 VC_TexScroll_1 : packoffset(c1);
//   float4 VC_TexScroll_2 : packoffset(c2);
//   float4 VC_TexScroll_3 : packoffset(c3);
// }
//
// ByteAddressBuffer g_InstanceIndexBuffer : register(t20);
//
//
// // 3Dmigoto declarations
// #define cmp -
// Texture1D<float4> IniParams : register(t120);
// Texture2D<float4> StereoParams : register(t125);
//
//
// void main(
//   float3 v0 : POSITION0,
//   uint4 v1 : NORMAL0,
//   uint4 v2 : TANGENT0,
//   float4 v3 : COLOR1,
//   int2 v4 : TEXCOORD0,
//   uint v5 : SV_INSTANCEID0,
//   out float4 o0 : SV_POSITION0,
//   out float4 o1 : POSITION1,
//   out float4 o2 : NORMAL0,
//   out float4 o3 : TANGENT0,
//   out float3 o4 : TEXCOORD0)
// {
// // Needs manual fix for instruction:
// // unknown dcl_: dcl_resource_raw t20
// // Needs manual fix for instruction:
// // unknown dcl_: dcl_input_sgv v5.x, instance_id
//   float4 r0,r1,r2;
//   uint4 bitmask, uiDest;
//   float4 fDest;
//
//   r0.x = (int)v5.x + VC_InstanceIdxOffset;
//   r0.x = (uint)r0.x << 2;
// // No code for instruction (needs manual fix):
// ld_raw_indexable(raw_buffer)(mixed,mixed,mixed,mixed) r0.x, r0.x, t20.xxxx
//   r0.y = (int)r0.x * 17;
//   o2.w = (uint)r0.x;
//   r0.x = (int)v1.w + (int)VC_InstanceData[r0.y].matricesData.x;
//   r0.x = (int)r0.x * 3;
//   r1.xyz = v0.xyz;
//   r1.w = 1;
//   r2.x = dot(r1.xyzw, VC_aObjMatrix[r0.x/3]._m00_m10_m20_m30);
//   r2.y = dot(r1.xyzw, VC_aObjMatrix[r0.x/3]._m01_m11_m21_m31);
//   r2.z = dot(r1.xyzw, VC_aObjMatrix[r0.x/3]._m02_m12_m22_m32);
//   r1.xyz = -SC_CameraPos.xyz + r2.xyz;
//   r1.w = 1;
//   r2.x = dot(r1.xyzw, VC_MatrixViewProj._m00_m10_m20_m30);
//   r2.y = dot(r1.xyzw, VC_MatrixViewProj._m01_m11_m21_m31);
//   r2.z = dot(r1.xyzw, VC_MatrixViewProj._m02_m12_m22_m32);
//   r2.w = dot(r1.xyzw, VC_MatrixViewProj._m03_m13_m23_m33);
//   o0.xyzw = r2.xyzw;
//   o1.xyzw = r2.xyzw;
//   r0.yzw = (uint3)v1.xyz;
//   r0.yzw = float3(-127,-127,-127) + r0.yzw;
//   r0.yzw = float3(0.00787401572,0.00787401572,0.00787401572) * r0.yzw;
//   o2.x = dot(r0.yzw, VC_aObjMatrix[r0.x/3]._m00_m10_m20);
//   o2.y = dot(r0.yzw, VC_aObjMatrix[r0.x/3]._m01_m11_m21);
//   o2.z = dot(r0.yzw, VC_aObjMatrix[r0.x/3]._m02_m12_m22);
//   r1.xyzw = (uint4)v2.xyzw;
//   r1.xyzw = float4(-127,-127,-127,-127) + r1.xyzw;
//   r1.xyzw = float4(0.00787401572,0.00787401572,0.00787401572,0.00787401572) * r1.xyzw;
//   o3.x = dot(r1.xyz, VC_aObjMatrix[r0.x/3]._m00_m10_m20);
//   o3.y = dot(r1.xyz, VC_aObjMatrix[r0.x/3]._m01_m11_m21);
//   o3.z = dot(r1.xyz, VC_aObjMatrix[r0.x/3]._m02_m12_m22);
//   o3.w = r1.w;
//   r0.xy = (int2)v4.xy;
//   r0.xy = VC_TexScroll_0.xy * r0.xy;
//   o4.xy = r0.xy * float2(0.00048828125,0.00048828125) + VC_TexScroll_0.zw;
//   o4.z = v3.x;
//   return;
// }
//////////////////////////////// HLSL Errors ////////////////////////////////
// F:\SteamLibrary\steamapps\common\Sekiro\ShaderFixes\3abd642b9cf502e4-vs_replace.txt(125,18-27): error X3004: undeclared identifier 'raw_buffer'
// F:\SteamLibrary\steamapps\common\Sekiro\ShaderFixes\3abd642b9cf502e4-vs_replace.txt(125,1-28): error X3004: undeclared identifier 'ld_raw_indexable'
/////////////////////////////////////////////////////////////////////////////
