// ---- Created with 3Dmigoto v1.2.35 on Tue Apr 26 22:31:23 2016

cbuffer buffer2 : register(b2)
{
  bool FC_isDitherAlpha : packoffset(c0);
  float FC_TranslucencyScale : packoffset(c1);
  float4 FC_EmissiveColor : packoffset(c2);
  float4 FC_BlendMaskParam : packoffset(c3);
  float FC_PomHeightScale : packoffset(c4);
  float FC_PomHeightBias : packoffset(c4.y);
  float FC_PomMinSamples : packoffset(c4.z);
  float FC_PomMaxSamples : packoffset(c4.w);
  float FC_PomShadowSoftening : packoffset(c5);
  bool FC_bPomDisplayShadows : packoffset(c5.y);
  float4 FC_ParallaxParam : packoffset(c6);
  float FC_Pom2HeightScale : packoffset(c7);
  float FC_Pom2HeightBias : packoffset(c7.y);
  float FC_Pom2MinSamples : packoffset(c7.z);
  float FC_Pom2MaxSamples : packoffset(c7.w);
  bool VC_isEnableCloth : packoffset(c8);
  float FC_EnvMapDolBlendRate : packoffset(c9);
  float4 FC_SnowMaskParam : packoffset(c10);
  float FC_FROZEN_THRESHOLD : packoffset(c11);
  float FC_FROZEN_POW : packoffset(c11.y);
  float FC_BlendRate : packoffset(c12);
  float4 FC_FlowMapUvTiling : packoffset(c13);
  float4 FC_FlowMapIntencity : packoffset(c14);
  float4 FC_WaterNormalUvScrollSpeed : packoffset(c15);
  float4 FC_WaterDiffuseUvScrollSpeed : packoffset(c16);
  float4 FC_WaterMiddleUvScrollSpeed : packoffset(c17);
  float4 FC_WaterFogParam0 : packoffset(c18);
  float4 FC_WaterFogParam1 : packoffset(c19);
  float4 FC_WaterFresnel : packoffset(c20);
  float4 FC_WaterFadeParam : packoffset(c21);
  float4 FC_SAT_DUMMMY_P3_2 : packoffset(c22);
  float4 FC_SAT_DUMMMY_P3_3 : packoffset(c23);
  float4 FC_SAT_DUMMMY_P3_4 : packoffset(c24);
  float4 FC_SAT_DUMMMY_P3_5 : packoffset(c25);
  float4 FC_SAT_DUMMMY_P3_6 : packoffset(c26);
  float4 FC_SAT_DUMMMY_P3_7 : packoffset(c27);
  float4 FC_SAT_DUMMMY_P3_8 : packoffset(c28);
  float MultiBlend4_et1_p_snp_0_float_0_0 : packoffset(c29);
  float MultiBlend4_et1_p_snp_0_float_1_0 : packoffset(c29.y);
  float MultiBlend4_et1_p_snp_0_float_2_0 : packoffset(c29.z);
  float MultiBlend4_et1_p_snp_0_float_3_0 : packoffset(c29.w);
}

cbuffer buffer3 : register(b3)
{
  float4 FC_DifMapMulCol : packoffset(c0);
  float4 FC_SpcMapMulCol : packoffset(c1);
  float4 FC_SpcParam : packoffset(c2);
  float4 FC_SSAOParam : packoffset(c3);
  float3 FC_CDRFParam : packoffset(c4);
  float3 FC_AlphaRef : packoffset(c5);
  float FC_BloodAmount : packoffset(c6);
  float4 old_FC_ParallaxParam : packoffset(c7);
  float FC_IOR : packoffset(c8);
  float4 FC_GlowScale : packoffset(c9);
  float4 FC_GhostEdgeColor : packoffset(c10);
  float4 FC_GhostEdgeParam : packoffset(c11);
  float4 FC_BmpBlendParam0 : packoffset(c12);
  float4 FC_BmpBlendParam1 : packoffset(c13);
  float FC_SSS_ID : packoffset(c14);
  float4 FC_SAT_DUMMMY_P7_2 : packoffset(c15);
  float4 FC_SAT_DUMMMY_P7_3 : packoffset(c16);
  float4 FC_SAT_DUMMMY_P7_4 : packoffset(c17);
  float4 FC_SAT_DUMMMY_P7_5 : packoffset(c18);
  float4 FC_SAT_DUMMMY_P7_6 : packoffset(c19);
  float4 FC_SAT_DUMMMY_P7_6_1 : packoffset(c20);
  float4 FC_SAT_DUMMMY_P7_6_2 : packoffset(c21);
  float4 FC_SAT_DUMMMY_P7_6_3 : packoffset(c22);
  float4 FC_SAT_DUMMMY_P7_7 : packoffset(c23);
  float4 FC_SAT_DUMMMY_P7_8 : packoffset(c24);
  float4 FC_SAT_DUMMMY_P7_9 : packoffset(c25);
  float4 FC_SAT_DUMMMY_P7_10 : packoffset(c26);
}

cbuffer cbInstanceData : register(b4)
{

  struct
  {
    float4x3 mWorld;
    float4 atlasUvScaleOffset;
    float4 userClipPlane;
    uint4 matricesData;
    uint4 envData;
    float4 mulCol;
    float envMapInterpRatio;
    float envMapColorScale0;
    float envMapColorScale1;
    float giOcclusionMask;
    float4 aSh[3];
  } VC_InstanceData[2] : packoffset(c0);

}

cbuffer cbModelParam : register(b7)
{
  float4 FC_DifColMul : packoffset(c0);
  float FC_EnvMapInterpRatio : packoffset(c1);
  float FC_EnvMapColorScale0 : packoffset(c1.y);
  float FC_EnvMapColorScale1 : packoffset(c1.z);
  float FC_DitherEnable : packoffset(c2);
  float FC_FROZEN_RATE : packoffset(c2.w);
  float FC_Perlin_Freq : packoffset(c3);
  float FC_Perlin_Amp : packoffset(c3.y);
  float FC_Perlin_Lacunarity : packoffset(c3.z);
  float FC_Perlin_Gain : packoffset(c3.w);
  float FC_SnowRate : packoffset(c4);
  float FC_SnowMinDot : packoffset(c4.y);
  float FC_SnowMaxDot : packoffset(c4.z);
  float FC_SparkleExponent : packoffset(c5);
  float FC_SparkleThreshold : packoffset(c5.y);
  float FC_SparkleMul : packoffset(c5.z);
  float FC_SparkleMaskExponent : packoffset(c5.w);
  float4 FC_SkinMatchColor : packoffset(c6);
  int FC_EnvId : packoffset(c7);
  float4 FC_ParallaxCorrectedCubemapOrigin : packoffset(c8);
  float4 FC_ParallaxCorrectedCubemapAabbMin : packoffset(c9);
  float4 FC_ParallaxCorrectedCubemapAabbMax : packoffset(c10);
}



// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);


void main( 
  float4 v0 : SV_Position0,
  float4 v1 : COLOR0,
  float3 v2 : NORMAL0,
  float3 v3 : TANGENT0,
  float3 v4 : BINORMAL0,
  float4 v5 : POSITION1,
  float4 v6 : POSITION2,
  float4 v7 : TEXCOORD29,
  float2 v8 : TEXCOORD0,
  float2 w8 : TEXCOORD2,
  float3 v9 : TEXCOORD17,
  uint v10 : SV_IsFrontFace0,
  out float4 o0 : SV_Target0)
{
  float4 r0;
  uint4 bitmask, uiDest;
  float4 fDest;

  r0.x = cmp(0 < FC_DitherEnable);
  r0.y = cmp(FC_isDitherAlpha != 0);
  r0.x = r0.y ? r0.x : 0;
  r0.y = -0.5 + VC_InstanceData[0].mulCol.w;
  r0.y = cmp(r0.y < 0.5);
  r0.x = r0.y ? r0.x : 0;
  r0.y = FC_AlphaRef.y * -0.5 + 1;
  r0.y = cmp(r0.y < FC_AlphaRef.x);
  r0.x = (int)r0.y | (int)r0.x;
  if (r0.x != 0) discard;
  o0.w = r0.x ? 0 : 1;
  r0.x = v5.z / v5.w;
  r0.xyz = float3(65025,255,1) * r0.xxx;
  r0.xy = frac(r0.xy);
  o0.yz = -r0.xy * float2(0.00392156886,0.00392156886) + r0.yz;
  o0.x = r0.x;
  return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Original ASM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
//
// Buffer Definitions: 
//
// cbuffer buffer2
// {
//
//   bool FC_isDitherAlpha;             // Offset:    0 Size:     4
//   float FC_TranslucencyScale;        // Offset:   16 Size:     4 [unused]
//   float4 FC_EmissiveColor;           // Offset:   32 Size:    16 [unused]
//   float4 FC_BlendMaskParam;          // Offset:   48 Size:    16 [unused]
//   float FC_PomHeightScale;           // Offset:   64 Size:     4 [unused]
//   float FC_PomHeightBias;            // Offset:   68 Size:     4 [unused]
//   float FC_PomMinSamples;            // Offset:   72 Size:     4 [unused]
//   float FC_PomMaxSamples;            // Offset:   76 Size:     4 [unused]
//   float FC_PomShadowSoftening;       // Offset:   80 Size:     4 [unused]
//   bool FC_bPomDisplayShadows;        // Offset:   84 Size:     4 [unused]
//   float4 FC_ParallaxParam;           // Offset:   96 Size:    16 [unused]
//   float FC_Pom2HeightScale;          // Offset:  112 Size:     4 [unused]
//   float FC_Pom2HeightBias;           // Offset:  116 Size:     4 [unused]
//   float FC_Pom2MinSamples;           // Offset:  120 Size:     4 [unused]
//   float FC_Pom2MaxSamples;           // Offset:  124 Size:     4 [unused]
//   bool VC_isEnableCloth;             // Offset:  128 Size:     4 [unused]
//   float FC_EnvMapDolBlendRate;       // Offset:  144 Size:     4 [unused]
//   float4 FC_SnowMaskParam;           // Offset:  160 Size:    16 [unused]
//   float FC_FROZEN_THRESHOLD;         // Offset:  176 Size:     4 [unused]
//   float FC_FROZEN_POW;               // Offset:  180 Size:     4 [unused]
//   float FC_BlendRate;                // Offset:  192 Size:     4 [unused]
//   float4 FC_FlowMapUvTiling;         // Offset:  208 Size:    16 [unused]
//   float4 FC_FlowMapIntencity;        // Offset:  224 Size:    16 [unused]
//   float4 FC_WaterNormalUvScrollSpeed;// Offset:  240 Size:    16 [unused]
//   float4 FC_WaterDiffuseUvScrollSpeed;// Offset:  256 Size:    16 [unused]
//   float4 FC_WaterMiddleUvScrollSpeed;// Offset:  272 Size:    16 [unused]
//   float4 FC_WaterFogParam0;          // Offset:  288 Size:    16 [unused]
//   float4 FC_WaterFogParam1;          // Offset:  304 Size:    16 [unused]
//   float4 FC_WaterFresnel;            // Offset:  320 Size:    16 [unused]
//   float4 FC_WaterFadeParam;          // Offset:  336 Size:    16 [unused]
//   float4 FC_SAT_DUMMMY_P3_2;         // Offset:  352 Size:    16 [unused]
//   float4 FC_SAT_DUMMMY_P3_3;         // Offset:  368 Size:    16 [unused]
//   float4 FC_SAT_DUMMMY_P3_4;         // Offset:  384 Size:    16 [unused]
//   float4 FC_SAT_DUMMMY_P3_5;         // Offset:  400 Size:    16 [unused]
//   float4 FC_SAT_DUMMMY_P3_6;         // Offset:  416 Size:    16 [unused]
//   float4 FC_SAT_DUMMMY_P3_7;         // Offset:  432 Size:    16 [unused]
//   float4 FC_SAT_DUMMMY_P3_8;         // Offset:  448 Size:    16 [unused]
//   float MultiBlend4_et1_p_snp_0_float_0_0;// Offset:  464 Size:     4 [unused]
//   float MultiBlend4_et1_p_snp_0_float_1_0;// Offset:  468 Size:     4 [unused]
//   float MultiBlend4_et1_p_snp_0_float_2_0;// Offset:  472 Size:     4 [unused]
//   float MultiBlend4_et1_p_snp_0_float_3_0;// Offset:  476 Size:     4 [unused]
//
// }
//
// cbuffer buffer3
// {
//
//   float4 FC_DifMapMulCol;            // Offset:    0 Size:    16 [unused]
//   float4 FC_SpcMapMulCol;            // Offset:   16 Size:    16 [unused]
//   float4 FC_SpcParam;                // Offset:   32 Size:    16 [unused]
//   float4 FC_SSAOParam;               // Offset:   48 Size:    16 [unused]
//   float3 FC_CDRFParam;               // Offset:   64 Size:    12 [unused]
//   float3 FC_AlphaRef;                // Offset:   80 Size:    12
//   float FC_BloodAmount;              // Offset:   96 Size:     4 [unused]
//   float4 old_FC_ParallaxParam;       // Offset:  112 Size:    16 [unused]
//   float FC_IOR;                      // Offset:  128 Size:     4 [unused]
//   float4 FC_GlowScale;               // Offset:  144 Size:    16 [unused]
//   float4 FC_GhostEdgeColor;          // Offset:  160 Size:    16 [unused]
//   float4 FC_GhostEdgeParam;          // Offset:  176 Size:    16 [unused]
//   float4 FC_BmpBlendParam0;          // Offset:  192 Size:    16 [unused]
//   float4 FC_BmpBlendParam1;          // Offset:  208 Size:    16 [unused]
//   float FC_SSS_ID;                   // Offset:  224 Size:     4 [unused]
//   float4 FC_SAT_DUMMMY_P7_2;         // Offset:  240 Size:    16 [unused]
//   float4 FC_SAT_DUMMMY_P7_3;         // Offset:  256 Size:    16 [unused]
//   float4 FC_SAT_DUMMMY_P7_4;         // Offset:  272 Size:    16 [unused]
//   float4 FC_SAT_DUMMMY_P7_5;         // Offset:  288 Size:    16 [unused]
//   float4 FC_SAT_DUMMMY_P7_6;         // Offset:  304 Size:    16 [unused]
//   float4 FC_SAT_DUMMMY_P7_6_1;       // Offset:  320 Size:    16 [unused]
//   float4 FC_SAT_DUMMMY_P7_6_2;       // Offset:  336 Size:    16 [unused]
//   float4 FC_SAT_DUMMMY_P7_6_3;       // Offset:  352 Size:    16 [unused]
//   float4 FC_SAT_DUMMMY_P7_7;         // Offset:  368 Size:    16 [unused]
//   float4 FC_SAT_DUMMMY_P7_8;         // Offset:  384 Size:    16 [unused]
//   float4 FC_SAT_DUMMMY_P7_9;         // Offset:  400 Size:    16 [unused]
//   float4 FC_SAT_DUMMMY_P7_10;        // Offset:  416 Size:    16 [unused]
//
// }
//
// cbuffer cbInstanceData
// {
//
//   struct PerInstanceData
//   {
//       
//       float4x3 mWorld;               // Offset:    0
//       float4 atlasUvScaleOffset;     // Offset:   48
//       float4 userClipPlane;          // Offset:   64
//       uint4 matricesData;            // Offset:   80
//       uint4 envData;                 // Offset:   96
//       float4 mulCol;                 // Offset:  112
//       float envMapInterpRatio;       // Offset:  128
//       float envMapColorScale0;       // Offset:  132
//       float envMapColorScale1;       // Offset:  136
//       float giOcclusionMask;         // Offset:  140
//       float4 aSh[3];                 // Offset:  144
//
//   } VC_InstanceData[2];              // Offset:    0 Size:   384
//
// }
//
// cbuffer cbModelParam
// {
//
//   float4 FC_DifColMul;               // Offset:    0 Size:    16 [unused]
//   float FC_EnvMapInterpRatio;        // Offset:   16 Size:     4 [unused]
//   float FC_EnvMapColorScale0;        // Offset:   20 Size:     4 [unused]
//   float FC_EnvMapColorScale1;        // Offset:   24 Size:     4 [unused]
//   float FC_DitherEnable;             // Offset:   32 Size:     4
//   float FC_FROZEN_RATE;              // Offset:   44 Size:     4 [unused]
//   float FC_Perlin_Freq;              // Offset:   48 Size:     4 [unused]
//   float FC_Perlin_Amp;               // Offset:   52 Size:     4 [unused]
//   float FC_Perlin_Lacunarity;        // Offset:   56 Size:     4 [unused]
//   float FC_Perlin_Gain;              // Offset:   60 Size:     4 [unused]
//   float FC_SnowRate;                 // Offset:   64 Size:     4 [unused]
//   float FC_SnowMinDot;               // Offset:   68 Size:     4 [unused]
//   float FC_SnowMaxDot;               // Offset:   72 Size:     4 [unused]
//   float FC_SparkleExponent;          // Offset:   80 Size:     4 [unused]
//   float FC_SparkleThreshold;         // Offset:   84 Size:     4 [unused]
//   float FC_SparkleMul;               // Offset:   88 Size:     4 [unused]
//   float FC_SparkleMaskExponent;      // Offset:   92 Size:     4 [unused]
//   float4 FC_SkinMatchColor;          // Offset:   96 Size:    16 [unused]
//   int FC_EnvId;                      // Offset:  112 Size:     4 [unused]
//   float4 FC_ParallaxCorrectedCubemapOrigin;// Offset:  128 Size:    16 [unused]
//   float4 FC_ParallaxCorrectedCubemapAabbMin;// Offset:  144 Size:    16 [unused]
//   float4 FC_ParallaxCorrectedCubemapAabbMax;// Offset:  160 Size:    16 [unused]
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// buffer2                           cbuffer      NA          NA    2        1
// buffer3                           cbuffer      NA          NA    3        1
// cbInstanceData                    cbuffer      NA          NA    4        1
// cbModelParam                      cbuffer      NA          NA    7        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position              0   xyzw        0      POS   float       
// COLOR                    0   xyzw        1     NONE   float       
// NORMAL                   0   xyz         2     NONE   float       
// TANGENT                  0   xyz         3     NONE   float       
// BINORMAL                 0   xyz         4     NONE   float       
// POSITION                 1   xyzw        5     NONE   float     zw
// POSITION                 2   xyzw        6     NONE   float       
// TEXCOORD                29   xyz         7     NONE   float       
// TEXCOORD                 0   xy          8     NONE   float       
// TEXCOORD                 2     zw        8     NONE   float       
// TEXCOORD                17   xyz         9     NONE   float       
// SV_IsFrontFace           0   x          10    FFACE    uint       
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb2[1], immediateIndexed
dcl_constantbuffer cb3[6], immediateIndexed
dcl_constantbuffer cb4[8], immediateIndexed
dcl_constantbuffer cb7[3], immediateIndexed
dcl_input_ps linear v5.zw
dcl_output o0.xyzw
dcl_temps 1
lt r0.x, l(0.000000), cb7[2].x
ine r0.y, cb2[0].x, l(0)
and r0.x, r0.y, r0.x
add r0.y, cb4[7].w, l(-0.500000)
lt r0.y, r0.y, l(0.500000)
and r0.x, r0.y, r0.x
mad r0.y, cb3[5].y, l(-0.500000), l(1.000000)
lt r0.y, r0.y, cb3[5].x
or r0.x, r0.y, r0.x
discard_nz r0.x
movc o0.w, r0.x, l(0), l(1.000000)
div r0.x, v5.z, v5.w
mul r0.xyz, r0.xxxx, l(65025.000000, 255.000000, 1.000000, 0.000000)
frc r0.xy, r0.xyxx
mad o0.yz, -r0.xxyx, l(0.000000, 0.003922, 0.003922, 0.000000), r0.yyzy
mov o0.x, r0.x
ret 
// Approximately 17 instruction slots used

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
