def checksum(msg):
    """
   this function is used for the SYN flood checksum.

   it takes an input and returns it checksum.

"""
    s = 0
    for i in range(0, len(msg), 2):
        if i + 1 == len(msg):
            w = ord(msg[i])
            s += w
        else:
            w = ord(msg[i]) + (ord(msg[i + 1]) << 8)
            s += w
    s = (s >> 16) + (s & 65535)
    s = s + (s >> 16)
    s = ~s & 65535
    return s
