// CRC32: 8AE075C9 | 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 1/3 {
//       Name "FORWARD"
//       Tags { "LIGHTMODE"="ForwardBase" "SHADOWSUPPORT"="true" "RenderType"="Opaque" }
//       GpuProgramID 30851
//       Program "vp" {
//         SubProgram "d3d9 " {
//           Keywords { "DIRECTIONAL" "DIRLIGHTMAP_OFF" "DYNAMICLIGHTMAP_OFF" "LIGHTMAP_OFF" "SHADOWS_SCREEN" "VERTEXLIGHT_ON" }
//           Bind "vertex" Vertex
//           Bind "normal" Normal
//           Bind "texcoord" TexCoord0
//           Bind "texcoord1" TexCoord1
//           Matrix 8 [_Object2World] 3
//           Matrix 11 [_World2Object] 3
//           Matrix 4 [glstate_matrix_mvp]
//           Vector 33 [_EdgeTex_ST]
//           Vector 32 [_MainTex_ST]
//           Vector 28 [_OriginalPosition]
//           Vector 29 [_OriginalPositionOffset]
//           Float 30 [_OriginalRotation]
//           Vector 14 [_ProjectionParams]
//           Vector 15 [_ScreenParams]
//           Float 27 [_StretchDownwardUV]
//           Float 31 [_ZI_LevelBottomBound]
//           Vector 19 [unity_4LightAtten0]
//           Vector 16 [unity_4LightPosX0]
//           Vector 17 [unity_4LightPosY0]
//           Vector 18 [unity_4LightPosZ0]
//           Vector 0 [unity_LightColor0]
//           Vector 1 [unity_LightColor1]
//           Vector 2 [unity_LightColor2]
//           Vector 3 [unity_LightColor3]
//           Vector 22 [unity_SHAb]
//           Vector 21 [unity_SHAg]
//           Vector 20 [unity_SHAr]
//           Vector 25 [unity_SHBb]
//           Vector 24 [unity_SHBg]
//           Vector 23 [unity_SHBr]
//           Vector 26 [unity_SHC]
//         }
//       }
//     }
//   }
// }
// 
// 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 c34, 0, 30, 0.159154937, 0.5
    def c35, 6.28318548, -3.14159274, 1, 0
    dcl_position v0
    dcl_normal v1
    dcl_texcoord v2
    dcl_texcoord1 v3
    dcl_position o0
    dcl_texcoord o1
    dcl_texcoord1 o2.xyz
    dcl_texcoord2 o3.xyz
    dcl_texcoord3 o4.xyz
    dcl_texcoord4 o5.xyz
    dcl_texcoord5 o6
    dcl_texcoord6 o7

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

    mad o1.xy, v2, c32, c32.zwzw
    mad o1.zw, v3.xyxy, c33.xyxy, c33
    mul r0.xyz, c12, v1.y
    mad r0.xyz, c11, v1.x, r0
    mad r0.xyz, c13, v1.z, r0
    nrm r1.xyz, r0
    mul r0.x, r1.y, r1.y
    mad r0.x, r1.x, r1.x, -r0.x
    mul r2, r1.yzzx, r1.xyzz
    dp4 r3.x, c23, r2
    dp4 r3.y, c24, r2
    dp4 r3.z, c25, r2
    mad r0.xyz, c26, r0.x, r3
    mov r1.w, c35.z
    dp4 r2.x, c20, r1
    dp4 r2.y, c21, r1
    dp4 r2.z, c22, r1
    add r0.xyz, r0, r2
    add r0.w, c31.x, -v0.y
    slt r1.w, c34.x, r0.w
    mov r2.yzw, c34
    mad r0.w, r0.w, -r2.y, c31.x
    lrp r3.y, r1.w, r0.w, v0.y
    mov r3.xzw, v0
    dp4 r4.y, c9, r3
    add r5, -r4.y, c17
    mul r6, r1.y, r5
    mul r5, r5, r5
    dp4 r4.x, c8, r3
    add r7, -r4.x, c16
    mad r6, r7, r1.x, r6
    mad r5, r7, r7, r5
    dp4 r4.z, c10, r3
    add r7, -r4.z, c18
    mov o3.xyz, r4
    mad r4, r7, r1.z, r6
    mov o2.xyz, r1
    mad r1, r7, r7, r5
    rsq r5.x, r1.x
    rsq r5.y, r1.y
    rsq r5.z, r1.z
    rsq r5.w, r1.w
    mov r6.z, c35.z
    mad r1, r1, c19, r6.z
    mul r4, r4, r5
    max r4, r4, c34.x
    rcp r5.x, r1.x
    rcp r5.y, r1.y
    rcp r5.z, r1.z
    rcp r5.w, r1.w
    mul r1, r4, r5
    mul r4.xyz, r1.y, c1
    mad r4.xyz, c0, r1.x, r4
    mad r1.xyz, c2, r1.z, r4
    mad r1.xyz, c3, r1.w, r1
    add o5.xyz, r0, r1
    dp4 r0.x, c4, r3
    dp4 r0.w, c7, r3

mov o0, r0 // Relocated from line 146 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/8AE075C9.txt
texldl r31, c220.z, s0
add r31.w, r0.w, -r31.y
mad r0.x, r31.w, r31.x, r0.x

    mul r1.xz, r0.xyww, c34.w
    dp4 r0.y, c5, r3
    dp4 r0.z, c6, r3
    mul r1.y, r0.y, c14.x

//     mov o0, r0 // Relocated to line 142 with shadertool.py
mov o0.yz, r0 // Inserted by shadertool.py

    mov o6.zw, r0
    mul r1.w, r1.y, c34.w
    mad o6.xy, r1.z, c15.zwzw, r1.xwzw
    mad r0.x, c30.x, r2.z, r2.w
    frc r0.x, r0.x
    mad r0.x, r0.x, c35.x, c35.y
    sincos r1.xy, r0.x
    mul r0.xyz, r1.yxyw, v0.zxxw
    mad r3.z, v0.z, r1.x, -r0.z
    add r3.x, r0.y, r0.x
    mov r0.xyz, c28
    add r0.xyz, r0, c29
    add r0.xyz, r3, r0
    add r1.x, -r0.y, c31.x
    pow r2.x, r1.x, c27.x
    slt r1.x, c34.x, r1.x
    add r1.y, -r2.x, c31.x
    add r1.y, -r0.y, r1.y
    mad r0.w, r1.x, r1.y, r0.y
    mov o4.xyz, r0.xwzw
    mov o7, c34.x
