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;
}