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

cbuffer cbTessScene : register(b5)
{
  float4x4 g_f4x4ViewProjection : packoffset(c0);
  float4 g_f4Eye : packoffset(c4);
  float4 g_f4ViewVector : packoffset(c5);
  float4 g_f4GUIParams2 : packoffset(c6);
  float4 g_f4ViewFrustumPlanes[4] : packoffset(c7);
  float g_fGlobalTime : packoffset(c11);
}

cbuffer cbPNTriangles : register(b6)
{
  float4 g_f4TessFactors : packoffset(c0);
  float4 g_f4GUIParams1 : packoffset(c1);
  float2 g_fDetailTessellationHeightParam : packoffset(c2);
}



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


void main( 
  float3 v0 : POSITION0,
  float4 v1 : NORMAL0,
  float4 v2 : TANGENT0,
  float2 v3 : TEXCOORD0,
  float2 w3 : TEXCOORD2,
  float4 v4 : COLOR1,
  float3 v5 : TEXCOORD16,
  out float3 o0 : POSITION0,
  out float4 o1 : NORMAL0,
  out float4 o2 : TANGENT0,
  out float2 o3 : TEXCOORD0,
  out float2 p3 : TEXCOORD2,
  out float4 o4 : COLOR1,
  out float3 o5 : TEXCOORD16)
{
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Original ASM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.20546
//
//
// Buffer Definitions: 
//
// cbuffer cbTessScene
// {
//
//   float4x4 g_f4x4ViewProjection;     // Offset:    0 Size:    64 [unused]
//   float4 g_f4Eye;                    // Offset:   64 Size:    16
//   float4 g_f4ViewVector;             // Offset:   80 Size:    16
//   float4 g_f4GUIParams2;             // Offset:   96 Size:    16
//   float4 g_f4ViewFrustumPlanes[4];   // Offset:  112 Size:    64
//   float g_fGlobalTime;               // Offset:  176 Size:     4 [unused]
//
// }
//
// cbuffer cbPNTriangles
// {
//
//   float4 g_f4TessFactors;            // Offset:    0 Size:    16
//   float4 g_f4GUIParams1;             // Offset:   16 Size:    16
//   float2 g_fDetailTessellationHeightParam;// Offset:   32 Size:     8
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// cbTessScene                       cbuffer      NA          NA    5        1
// cbPNTriangles                     cbuffer      NA          NA    6        1
//
//
//
// Patch Constant signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_TessFactor            0   x           0  TRIEDGE   float   x   
// SV_TessFactor            1   x           1  TRIEDGE   float   x   
// SV_TessFactor            2   x           2  TRIEDGE   float   x   
// SV_InsideTessFactor      0   x           3   TRIINT   float   x   
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION                 0   xyz         0     NONE   float   xyz 
// NORMAL                   0   xyzw        1     NONE   float   xyzw
// TANGENT                  0   xyzw        2     NONE   float   xyzw
// TEXCOORD                 0   xy          3     NONE   float   xy  
// TEXCOORD                 2     zw        3     NONE   float     zw
// COLOR                    1   xyzw        4     NONE   float   xyzw
// TEXCOORD                16   xyz         5     NONE   float   xyz 
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION                 0   xyz         0     NONE   float   xyz 
// NORMAL                   0   xyzw        1     NONE   float   xyzw
// TANGENT                  0   xyzw        2     NONE   float   xyzw
// TEXCOORD                 0   xy          3     NONE   float   xy  
// TEXCOORD                 2     zw        3     NONE   float     zw
// COLOR                    1   xyzw        4     NONE   float   xyzw
// TEXCOORD                16   xyz         5     NONE   float   xyz 
//
// Tessellation Domain   # of control points
// -------------------- --------------------
// Triangle                                3
//
// Tessellation Output Primitive  Partitioning Type 
// ------------------------------ ------------------
// Clockwise Triangles            Odd Fractional    
//
hs_5_0
hs_decls 
dcl_input_control_point_count 3
dcl_output_control_point_count 3
dcl_tessellator_domain domain_tri
dcl_tessellator_partitioning partitioning_fractional_odd
dcl_tessellator_output_primitive output_triangle_cw
dcl_hs_max_tessfactor l(64.000000)
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb5[11], immediateIndexed
dcl_constantbuffer cb6[3], immediateIndexed
hs_fork_phase 
dcl_input vicp[3][0].xyz
dcl_input vicp[3][1].xyz
dcl_output_siv o0.x, finalTriUeq0EdgeTessFactor
dcl_output_siv o1.x, finalTriVeq0EdgeTessFactor
dcl_output_siv o2.x, finalTriWeq0EdgeTessFactor
dcl_output_siv o3.x, finalTriInsideTessFactor
dcl_temps 4
mov r0.xyz, vicp[0][0].xyzx
mov r0.w, l(1.000000)
dp4 r1.x, r0.xyzw, cb5[7].xyzw
lt r1.x, -cb6[2].x, r1.x
mov r2.xyz, vicp[1][0].xyzx
mov r2.w, l(1.000000)
dp4 r1.y, r2.xyzw, cb5[7].xyzw
lt r1.y, -cb6[2].x, r1.y
and r1.xy, r1.xyxx, l(0x3f800000, 0x3f800000, 0, 0)
add r1.x, r1.y, r1.x
mov r3.xyz, vicp[2][0].xyzx
mov r3.w, l(1.000000)
dp4 r1.y, r3.xyzw, cb5[7].xyzw
lt r1.y, -cb6[2].x, r1.y
and r1.y, r1.y, l(0x3f800000)
dp4 r1.z, r0.xyzw, cb5[8].xyzw
lt r1.z, -cb6[2].x, r1.z
dp4 r1.w, r2.xyzw, cb5[8].xyzw
lt r1.w, -cb6[2].x, r1.w
and r1.zw, r1.zzzw, l(0, 0, 0x3f800000, 0x3f800000)
add r1.xz, r1.yywy, r1.xxzx
dp4 r1.w, r3.xyzw, cb5[8].xyzw
lt r1.w, -cb6[2].x, r1.w
and r1.w, r1.w, l(0x3f800000)
add r1.y, r1.w, r1.z
dp4 r1.z, r0.xyzw, cb5[9].xyzw
dp4 r0.x, r0.xyzw, cb5[10].xyzw
lt r0.x, -cb6[2].x, r0.x
lt r0.y, -cb6[2].x, r1.z
dp4 r0.z, r2.xyzw, cb5[9].xyzw
dp4 r0.w, r2.xyzw, cb5[10].xyzw
lt r0.zw, -cb6[2].xxxx, r0.zzzw
and r0.xyzw, r0.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000)
add r0.xy, r0.wzww, r0.xyxx
dp4 r0.z, r3.xyzw, cb5[9].xyzw
dp4 r0.w, r3.xyzw, cb5[10].xyzw
lt r0.w, -cb6[2].x, r0.w
and r0.w, r0.w, l(0x3f800000)
add r2.y, r0.w, r0.x
lt r0.x, -cb6[2].x, r0.z
and r0.x, r0.x, l(0x3f800000)
add r2.x, r0.x, r0.y
mul r0.xy, r1.xyxx, r2.xyxx
mul r0.x, r0.y, r0.x
ne r0.x, r0.x, l(0.000000)
add r0.yzw, vicp[1][1].xxyz, vicp[0][1].xxyz
mul r0.yzw, r0.yyzw, l(0.000000, 0.500000, 0.500000, 0.500000)
dp3 r1.x, r0.yzwy, r0.yzwy
rsq r1.x, r1.x
mul r0.yzw, r0.yyzw, r1.xxxx
dp3 r0.y, r0.yzwy, cb5[5].xyzx
lt r0.z, -cb6[1].x, r0.y
add r0.y, -|r0.y|, -cb6[1].y
add r1.xyz, vicp[2][1].xyzx, vicp[1][1].xyzx
mul r1.xyz, r1.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
dp3 r0.w, r1.xyzx, r1.xyzx
rsq r0.w, r0.w
mul r1.xyz, r0.wwww, r1.xyzx
dp3 r0.w, r1.xyzx, cb5[5].xyzx
lt r1.x, -cb6[1].x, r0.w
add r0.w, -|r0.w|, -cb6[1].y
add r0.yw, r0.yyyw, l(0.000000, 1.000000, 0.000000, 1.000000)
or r0.z, r0.z, r1.x
add r1.xyz, vicp[0][1].xyzx, vicp[2][1].xyzx
mul r1.xyz, r1.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
dp3 r1.w, r1.xyzx, r1.xyzx
rsq r1.w, r1.w
mul r1.xyz, r1.wwww, r1.xyzx
dp3 r1.x, r1.xyzx, cb5[5].xyzx
lt r1.y, -cb6[1].x, r1.x
add r1.x, -|r1.x|, l(1.000000)
add r1.x, r1.x, -cb6[1].y
or r0.z, r0.z, r1.y
and r0.x, r0.z, r0.x
add r1.yzw, vicp[0][0].xxyz, vicp[2][0].xxyz
mad r1.yzw, r1.yyzw, l(0.000000, 0.500000, 0.500000, 0.500000), -cb5[4].xxyz
dp3 r0.z, r1.yzwy, r1.yzwy
sqrt r0.z, r0.z
add r0.z, r0.z, -cb6[0].z
mul r1.y, cb6[0].w, cb6[1].z
div_sat r0.z, r0.z, r1.y
add r2.x, -r0.z, l(1.000000)
add r3.xyz, vicp[1][0].xyzx, vicp[0][0].xyzx
mad r3.xyz, r3.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), -cb5[4].xyzx
dp3 r0.z, r3.xyzx, r3.xyzx
sqrt r0.z, r0.z
add r0.z, r0.z, -cb6[0].z
div_sat r0.z, r0.z, r1.y
add r2.y, -r0.z, l(1.000000)
add r3.xyz, vicp[2][0].xyzx, vicp[1][0].xyzx
mad r3.xyz, r3.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), -cb5[4].xyzx
dp3 r0.z, r3.xyzx, r3.xyzx
sqrt r0.z, r0.z
add r0.z, r0.z, -cb6[0].z
div_sat r0.z, r0.z, r1.y
add r2.z, -r0.z, l(1.000000)
mul r1.yzw, r2.xxyz, cb5[6].xxxx
add r0.z, -cb6[1].y, l(1.000000)
div_sat r1.x, r1.x, r0.z
add r2.x, -cb6[0].y, cb6[0].x
mad r1.x, r1.x, r2.x, cb6[0].y
add r1.x, r1.x, l(-1.000000)
mad r3.x, r1.y, r1.x, l(1.000000)
div_sat r0.y, r0.y, r0.z
div_sat r0.z, r0.w, r0.z
mad r0.z, r0.z, r2.x, cb6[0].y
mad r0.y, r0.y, r2.x, cb6[0].y
add r0.y, r0.y, l(-1.000000)
mad r3.y, r1.z, r0.y, l(1.000000)
add r0.y, r0.z, l(-1.000000)
mad r3.z, r1.w, r0.y, l(1.000000)
and r0.xyz, r0.xxxx, r3.xyzx
add r1.x, r0.y, r0.x
add r1.x, r0.z, r1.x
mul r0.w, r1.x, l(0.333333)
min r0.xyzw, r0.xyzw, l(64.000000, 64.000000, 64.000000, 64.000000)
mov o0.x, r0.x
mov o1.x, r0.y
mov o2.x, r0.z
mov o3.x, r0.w
ret 
// Approximately 121 instruction slots used

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