/**********************************************************************
This file is part of Crack dot Com's free source code release of Golgotha.
for information about compiling & licensing issues visit this URL
 If that doesn't help, contact Jonathan Clark at 
  golgotha_source@usa.net (Subject should have "GOLG" in it) 
***********************************************************************/

#include "arch.hh"

w32 i4_check_sum32(void *buf, w32 buf_len)
{
  w8 c1=0,c2=0,c3=0,c4=0;
  while (buf_len)
  {
    c1+=*((w8 *)buf);
    c2+=c1;
    buf=(void *)(((w8 *)buf)+1);
    c3+=c2;
    c4+=c3;
    buf_len--;
  }
  return (c1|(c2<<8)|(c3<<16)|(c4<<24));
}

w16 i4_check_sum16(void *buf, w32 buf_len)
{
  w8 c1=0,c2=0;

  while (buf_len)
  {
    c1+=*((w8 *)buf);
    buf=(void *)(((w8 *)buf)+1);
    c2+=c1;
  }
  return (c1|(c2<<8));
}