code: def dispatch_hook(cls, _pkt=None, *args, **kargs):
          
          if _pkt and len(_pkt) >= 2:
              byte0 = orb(_pkt[0])
              byte1 = orb(_pkt[1])
              if (byte0 not in _tls_type) or (byte1 != 3):
                  from scapy.layers.tls.record_sslv2 import SSLv2
                  return SSLv2
              else:
                  s = kargs.get("tls_session", None)
                  if s and _tls_version_check(s.tls_version, 0x0304):
                      if s.rcs and not isinstance(s.rcs.cipher, Cipher_NULL):
                          from scapy.layers.tls.record_tls13 import TLS13
                          return TLS13
          if _pkt and len(_pkt) < 5:
              # Layer detected as TLS but too small to be a real packet (len<5).
              # Those packets are usually customly implemented
              # Scapy should not try to decode them
              return conf.raw_layer
          return TLS
docs: If the TLS class was called on raw SSLv2 data, we want to return an
          SSLv2 record instance. We acknowledge the risk of SSLv2 packets with a
          msglen of 0x1403, 0x1503, 0x1603 or 0x1703 which will never be casted
          as SSLv2 records but TLS ones instead, but hey, we can't be held
          responsible for low-minded extensibility choices.