ssize_t get_packet(char *param_1,int param_2)

{
  char *pcVar1;
  ssize_t sVar2;
  char *__s1;
  size_t sVar3;
  int iVar4;
  uint uVar5;
  char *__s;
  
  memset(param_1,0,0x224)   //possible issue identified - semgrep
  sVar2 = read(param_2,param_1,0x224)   //possible issue identified - semgrep
  if (sVar2 < 0) {
    sVar2 = -1;
  }
  else {
    uVar5 = *(uint *)(param_1 + 0xec);
    if ((uVar5 << 0x18 | uVar5 >> 0x18 | uVar5 >> 8 & 0xff00 | (uVar5 & 0xff00) << 8) == 0x63825363)
    {
      if ((*param_1 == '\x01') && (__s1 = (char *)get_option(param_1,0x3c), __s1 != (char *)0x0)) {
        __s = "MSFT 98";
        do {
          sVar3 = strlen(__s);
          if (((uint)(byte)__s1[-1] == (sVar3 & 0xff)) &&
             (iVar4 = strncmp(__s1,__s,(uint)(byte)__s1[-1]), iVar4 == 0)) {
            *(ushort *)(param_1 + 10) = *(ushort *)(param_1 + 10) | 0x80;
          }
          pcVar1 = __s + 8;
          __s = __s + 8;
        } while (*pcVar1 != '\0');
      }
    }
    else {
      sVar2 = -2;
    }
  }
  return sVar2;
}