Reversed from Halo CE 1.08 using OllyDbg, IDA Pro, Hexrays, and msdn.

Returns the size of a vertex for a flexible vertex format (FVF).
Code:
//----- (0058751A) --------------------------------------------------------
DWORD GetFVFVertexSize(DWORD fvf)
{
 DWORD Size;
 
 switch(fvf & D3DFVF_POSITION_MASK)
 {
   case D3DFVF_XYZ:
     Size = 12;
     break;
   case D3DFVF_XYZRHW:
   case D3DFVF_XYZB1:
     Size = 16;
     break;
   case D3DFVF_XYZB2:
     Size = 20;
     break;
   case D3DFVF_XYZB3:
     Size = 24;
     break;
   case D3DFVF_XYZB4:
     Size = 28;
     break;
   case D3DFVF_XYZB5:
     Size = 32;
     break;
   default:
     Size = 0;
     break;
 }
 
 if(fvf & D3DFVF_NORMAL)
   Size += 12;
 if(fvf & D3DFVF_PSIZE)
   Size += 4;
 if(fvf & D3DFVF_DIFFUSE)
   Size += 4;
 if(fvf < 0)
   Size += 4;
 
 DWORD TexCount = (fvf & D3DFVF_TEXCOUNT_MASK) >> D3DFVF_TEXCOUNT_SHIFT;
 DWORD TexCoords = (fvf >> D3DFVF_TEXCOUNT_SHIFT) >> D3DFVF_TEXCOUNT_SHIFT;
 
 if(TexCoords)
 {
   if(TexCount >= 0)
   {
     for(TexCoords; TexCoords > 0; TexCoords--)
     {
       switch(TexCoords & 3)
       { 
         case D3DFVF_TEXTUREFORMAT1:
           Size += 4;
           break;
         case D3DFVF_TEXTUREFORMAT2:
           Size += 8;
           break;
         case D3DFVF_TEXTUREFORMAT3:
           Size += 12;
           break;
         case D3DFVF_TEXTUREFORMAT4:
           Size += 16;
           break;
       }
 
       TexCoords = TexCoords >> 2;
     }
   }
 }
 else
   Size += TexCount * 8;
 
 return Size;
}