// CRC32: 18B8360F | Unity headers extracted from Terrain Block.shader
// Shader "Custom/Terrain Block" {
//   Properties {
//    _MainTex ("Wall Texture (RGB)", 2D) = "white" { }
//    _GroundTex ("Floor Texture (RGB)", 2D) = "white" { }
//    _CeilingTex ("Ceiling Texture (RGB)", 2D) = "white" { }
//    _EdgeTex ("Edge Texture", 2D) = "" { }
//    _WallGlossinessTex ("Wall Glossiness (R)", 2D) = "black" { }
//    _GroundGlossinessTex ("Floor Glossiness (R)", 2D) = "black" { }
//    _CeilingGlossinessTex ("Ceiling Glossiness (R)", 2D) = "black" { }
//    _EmissiveTex ("Emissive (RGB)", 2D) = "black" { }
//    _SpecularPower ("Specular Power", Float) = 1
//    _Tiling ("Tiling - width of texture in tiles", Float) = 8
//    _StretchDownwardUV ("Downward Texture Stretching", Range(0,1)) = 1
//    _OriginalPosition ("Internal Use Only", Vector) = (0,0,0,0)
//    _OriginalPositionOffset ("Internal Use Only", Vector) = (0,0,0,0)
//    _OriginalRotation ("Internal Use Only", Float) = 0
//   }
//   Fallback Off
//   SubShader 1/1 {
//     Tags { "RenderType"="Opaque" }
//     Pass 3/3 {
//       Name "SHADOWCASTER"
//       Tags { "LIGHTMODE"="SHADOWCASTER" "SHADOWSUPPORT"="true" "RenderType"="Opaque" }
//       GpuProgramID 172645
//       Program "vp" {
//         SubProgram "d3d9 " {
//           Keywords { "SHADOWS_DEPTH" }
//           Bind "vertex" Vertex
//           Bind "normal" Normal
//           Bind "texcoord" TexCoord0
//           Bind "texcoord1" TexCoord1
//           Matrix 8 [_Object2World] 3
//           Matrix 11 [_World2Object] 3
//           Matrix 0 [glstate_matrix_mvp]
//           Matrix 4 [unity_MatrixVP]
//           Vector 22 [_EdgeTex_ST]
//           Vector 21 [_MainTex_ST]
//           Vector 17 [_OriginalPosition]
//           Vector 18 [_OriginalPositionOffset]
//           Float 19 [_OriginalRotation]
//           Float 16 [_StretchDownwardUV]
//           Vector 14 [_WorldSpaceLightPos0]
//           Float 20 [_ZI_LevelBottomBound]
//           Vector 15 [unity_LightShadowBias]
//         }
//       }
//     }
//   }
// }
// 
// Headers extracted with DarkStarSword's extract_unity_shaders.py
// https://raw.githubusercontent.com/DarkStarSword/3d-fixes/master/extract_unity_shaders.py

    vs_3_0
    def c23, 6.28318548, -3.14159274, 1, 0
    def c24, 0, 30, 0.159154937, 0.5
    dcl_position v0
    dcl_normal v1
    dcl_texcoord v2
    dcl_texcoord1 v3
    dcl_texcoord o0
    dcl_position o1
    dcl_texcoord1 o2
    dcl_texcoord2 o3.xyz
    dcl_texcoord3 o4.xyz
    dcl_texcoord4 o5.xyz

def c220, 0, 1, 0.0625, 0.5
dcl_2d s0

    mad o2.xy, v2, c21, c21.zwzw
    mad o2.zw, v3.xyxy, c22.xyxy, c22
    add r0.x, c20.x, -v0.y
    slt r0.y, c24.x, r0.x
    mov r1.yzw, c24
    mad r0.x, r0.x, -r1.y, c20.x
    lrp r2.y, r0.y, r0.x, v0.y
    mov r2.xzw, v0
    dp4 o4.x, c8, r2
    dp4 o4.y, c9, r2
    dp4 o4.z, c10, r2
    mad r0, r2.xyzx, c23.zzzw, c23.wwwz
    abs r1.x, c15.z
    slt r1.x, -r1.x, r1.x
    dp4 r3.x, c8, r0
    dp4 r3.y, c9, r0
    dp4 r3.z, c10, r0
    mad r4.xyz, r3, -c14.w, c14
    nrm r5.xyz, r4
    mul r4.xyz, c12, v1.y
    mad r4.xyz, c11, v1.x, r4
    mad r4.xyz, c13, v1.z, r4
    nrm r6.xyz, r4
    dp3 r1.y, r6, r5
    mad r1.y, r1.y, -r1.y, c23.z
    rsq r1.y, r1.y
    rcp r1.y, r1.y
    mul r1.y, r1.y, c15.z
    mad r3.xyz, r6, -r1.y, r3
    mov o3.xyz, r6
    mov r3.w, c23.z
    dp4 r4.x, c4, r3
    dp4 r4.y, c5, r3
    dp4 r4.z, c6, r3
    dp4 r4.w, c7, r3
    dp4 r3.x, c0, r0
    dp4 r3.y, c1, r0
    dp4 r3.z, c2, r0
    dp4 r3.w, c3, r0
    lrp r0, r1.x, r4, r3

mov o1, r0 // Relocated from line 114 with shadertool.py

// Automatic vertex shader halo fix inserted with DarkStarSword's shadertool.py:
// shadertool.py -I ../.. --fix-unity-reflection --auto-fix-vertex-halo --add-fog-on-sm3-update --only-autofixed --ignore-register-errors Custom_Terrain Block/vp/18B8360F.txt
texldl r31, c220.z, s0
add r31.w, r0.w, -r31.y
mad r0.x, r31.w, r31.x, r0.x

    rcp r1.x, r0.w
    mul_sat r1.x, r1.x, c15.x
    add r1.x, r0.z, r1.x
    max r1.y, r1.x, c24.x
    lrp r0.z, c15.y, r1.y, r1.x
    mov o0, r0

//     mov o1, r0 // Relocated to line 108 with shadertool.py
mov o1.z, r0 // Inserted by shadertool.py

    mad r0.x, c19.x, r1.z, r1.w
    frc r0.x, r0.x
    mad r0.x, r0.x, c23.x, c23.y
    sincos r1.xy, r0.x
    mul r0.xyz, r1.yxyw, v0.zxxw
    mad r2.z, v0.z, r1.x, -r0.z
    add r2.x, r0.y, r0.x
    mov r0.xyz, c17
    add r0.xyz, r0, c18
    add r0.xyz, r2, r0
    add r1.x, -r0.y, c20.x
    pow r2.x, r1.x, c16.x
    slt r1.x, c24.x, r1.x
    add r1.y, -r2.x, c20.x
    add r1.y, -r0.y, r1.y
    mad r0.w, r1.x, r1.y, r0.y
    mov o5.xyz, r0.xwzw
