void osl_interface_open(undefined4 *param_1,sockaddr *param_2,undefined4 param_3)

{
  undefined4 uVar1;
  int iVar2;
  int *piVar3;
  char *pcVar4;
  char *pcVar5;
  sockaddr *__addr;
  undefined4 uVar6;
  sockaddr local_50;
  undefined4 local_40;
  char acStack_3c [16];
  char local_2c [20];
  
  iVar2 = socket(0x11,3,0xd988);
  param_1[2] = iVar2;
  if (iVar2 < 0) {
    piVar3 = __errno_location();
    pcVar4 = strerror(*piVar3);
    pcVar5 = "osl_interface_open: open %s failed: %s\n";
  }
  else {
    local_50.sa_family = 0x11;
    *param_1 = param_2;
    local_50.sa_data[0] = -0x78;
    local_50.sa_data[1] = -0x27;
    local_50.sa_data[2] = '\0';
    local_50.sa_data[3] = '\0';
    local_50.sa_data[4] = '\0';
    local_50.sa_data[5] = '\0';
    local_50.sa_data[6] = '\0';
    local_50.sa_data[7] = '\0';
    local_50.sa_data[8] = '\0';
    local_50.sa_data[9] = '\0';
    local_50.sa_data[10] = '\0';
    local_50.sa_data[0xb] = '\0';
    local_50.sa_data[0xc] = '\0';
    local_50.sa_data[0xd] = '\0';
    local_40 = 0;
    memset(acStack_3c,0,0x20)   //possible issue identified - semgrep
    strncpy(acStack_3c,(char *)param_2,0x10)   //possible issue identified - semgrep
    iVar2 = ioctl(iVar2,0x8933,acStack_3c);
    __addr = &local_50;
    if (iVar2 == 0) goto LAB_00403ce8;
    piVar3 = __errno_location();
    pcVar4 = strerror(*piVar3);
    pcVar5 = "if_get_index: for interface %s: %s\n";
  }
  die(pcVar5,param_2,pcVar4);
  __addr = param_2;
LAB_00403ce8:
  local_50.sa_data[2] = local_2c[0];
  local_50.sa_data[3] = local_2c[1];
  local_50.sa_data[4] = local_2c[2];
  local_50.sa_data[5] = local_2c[3];
  iVar2 = bind(param_1[2],__addr,0x14);
  if (iVar2 != 0) {
    uVar6 = *param_1;
    piVar3 = __errno_location();
    uVar1 = local_50.sa_data._2_4_;
    pcVar4 = strerror(*piVar3);
    die("osl_interface_open: binding to interface %s (index %d): %s\n",uVar6,uVar1,pcVar4);
  }
  event_add_io(param_1[2],packetio_recv_handler,param_3);
  return;
}