size_t get_raw_packet(void *param_1,int param_2)   //possible issue identified - semgrep

{
  ssize_t sVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  undefined4 local_258;
  undefined4 local_254;
  undefined4 local_250;
  short local_242;
  ushort local_240;
  ushort local_23e;
  undefined1 auStack_23c [548];
  
  memset(&local_258,0,0x240)   //possible issue identified - semgrep
  sVar1 = read(param_2,&local_258,0x240)   //possible issue identified - semgrep
  if (sVar1 < 0) {
    usleep(500000);
    return 0xffffffff;
  }
  if (0x1b < sVar1) {
    uVar4 = (local_258._2_2_ & 0xff) << 8 | (uint)(local_258._2_2_ >> 8);
    if (sVar1 < (int)uVar4) {
      return 0xfffffffe;
    }
    if (local_250._1_1_ != '\x11') {
      return 0xfffffffe;
    }
    if ((char)local_258 != 'E') {
      return 0xfffffffe;
    }
    if (local_242 != 0x4400) {
      return 0xfffffffe;
    }
    if (0x240 < uVar4) {
      return 0xfffffffe;
    }
    if (((local_240 & 0xff) << 8 | (uint)(local_240 >> 8)) != (uVar4 - 0x14 & 0xffff)) {
      return 0xfffffffe;
    }
    uVar3 = local_250 >> 0x10;
    local_250 = local_250 & 0xffff;
    uVar2 = checksum(&local_258,0x14);
    if (uVar2 != uVar3) {
      return 0xffffffff;
    }
    uVar3 = (uint)local_23e;
    local_258 = (uint)local_240 << 0x10;
    local_250 = 0x1100;
    local_23e = 0;
    local_254 = 0;
    if ((uVar3 != 0) && (uVar2 = checksum(&local_258,uVar4), uVar2 != uVar3)) {
      return 0xfffffffe;
    }
    memcpy(param_1,auStack_23c,uVar4 - 0x1c)   //possible issue identified - semgrep
    uVar3 = *(uint *)((int)param_1 + 0xec);
    if ((uVar3 << 0x18 | uVar3 >> 0x18 | uVar3 >> 8 & 0xff00 | (uVar3 & 0xff00) << 8) == 0x63825363)
    {
      return uVar4 - 0x1c;
    }
  }
  return 0xfffffffe;
}