/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

undefined4 NEAP_BindAdapter(int *param_1,char *param_2)

{
  FILE *__stream;
  int iVar1;
  int *piVar2;
  char *pcVar3;
  int iVar4;
  undefined4 local_80;
  sockaddr local_7c;
  char acStack_6c [32];
  char acStack_4c [16];
  undefined4 local_3c;
  undefined4 local_38;
  
  if (param_1 != (int *)0x0) {
    if (param_2 == (char *)0x0) {
      return 0;
    }
    if (-1 < *param_1) {
      *(undefined2 *)(param_1 + 1) = 0xfc00;
      local_80 = 1;
      local_7c.sa_data[6] = '\0';
      local_7c.sa_data[7] = '\0';
      local_7c.sa_data[8] = '\0';
      local_7c.sa_data[9] = '\0';
      local_7c.sa_data[10] = '\0';
      local_7c.sa_data[0xb] = '\0';
      local_7c.sa_data[0xc] = '\0';
      local_7c.sa_data[0xd] = '\0';
      local_7c.sa_data[0] = -4;
      local_7c.sa_data[1] = '\0';
      local_7c.sa_family = 2;
      local_7c.sa_data[2] = '\0';
      local_7c.sa_data[3] = '\0';
      local_7c.sa_data[4] = '\0';
      local_7c.sa_data[5] = '\0';
      iVar1 = setsockopt(*param_1,0xffff,4,&local_80,4);
      iVar4 = *param_1;
      if (iVar1 == -1) {
        iVar1 = -1;
      }
      else {
        iVar1 = setsockopt(iVar4,0xffff,0x20,&local_80,4);
        if (iVar1 != -1) {
          strncpy(acStack_6c,param_2,0x10)   //possible issue identified - semgrep
          iVar1 = setsockopt(*param_1,0xffff,0x19,acStack_6c,0x20);
          if (iVar1 < 0) {
            close(*param_1);
            *param_1 = -1;
            return 0;
          }
          iVar1 = bind(*param_1,&local_7c,0x10);
          if (iVar1 != -1) {
            memset(acStack_4c,0,0x20)   //possible issue identified - semgrep
            iVar1 = socket(2,3,0xff);
            __stream = _stderr;
            if (iVar1 < 0) {
              piVar2 = __errno_location();
              pcVar3 = strerror(*piVar2);
              fprintf(__stream,"socket failed!: %s",pcVar3);
              return 0;
            }
            local_3c = CONCAT22(local_3c._2_2_,2);
            strcpy(acStack_4c,param_2)   //possible issue identified - semgrep
            iVar4 = ioctl(iVar1,0x8915,acStack_4c);
            if (iVar4 == 0) {
              param_1[2] = local_38 << 0x18 | local_38 >> 0x18 | local_38 >> 8 & 0xff00 |
                           (local_38 & 0xff00) << 8;
              iVar4 = ioctl(iVar1,0x891b,acStack_4c);
              if (iVar4 == 0) {
                param_1[2] = local_38 << 0x18 | local_38 >> 0x18 | local_38 >> 8 & 0xff00 |
                             (local_38 & 0xff00) << 8;
                iVar4 = ioctl(iVar1,0x8933,acStack_4c);
                if (iVar4 == 0) {
                  param_1[8] = local_3c;
                  iVar4 = ioctl(iVar1,0x8927,acStack_4c);
                  if (iVar4 == 0) {
                    *(undefined2 *)(param_1 + 4) = local_3c._2_2_;
                    *(undefined2 *)(param_1 + 5) = local_38._2_2_;
                    *(undefined2 *)((int)param_1 + 0x12) = (undefined2)local_38;
                    close(iVar1);
                    return 1;
                  }
                }
              }
            }
            close(iVar1);
            return 0;
          }
        }
        iVar4 = *param_1;
      }
      close(iVar4);
      *param_1 = iVar1;
    }
  }
  return 0;
}