UINT16 __stdcall RtlComputeLfnChecksum(_UNICODE_STRING *Name){
wchar_t *Buffer;
unsigned __int16 v2;
unsigned __int64 v3;
unsigned __int64 v4;
Buffer = Name->Buffer;
v2 = 0;
v3 = 0i64;
v4 = (unsigned __int64)Name->Length >> 1;
if( Buffer > &Buffer[v4] )
v4 = 0i64;
if( v4 )
{
do
{
++v3;
v2 = *Buffer++ + 37 * v2;
}
while( v3 < v4 );
}
return(int)abs32(314159269 * v2) % 1000000007;
}