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

undefined4 main(int param_1,char **param_2)

{
  char *pcVar1;
  int iVar2;
  int iVar3;
  undefined4 uVar4;
  char *pcVar5;
  uint uVar6;
  uint uVar7;
  code *pcVar8;
  undefined4 local_50 [2];
  undefined4 local_48;
  undefined1 local_44;
  undefined4 *local_38;
  
  pcVar5 = *param_2;
  pcVar1 = strrchr(pcVar5,0x2f);
  if (pcVar1 != (char *)0x0) {
    pcVar5 = pcVar1 + 1;
  }
  iVar2 = strcmp(pcVar5,"ctest");
  if (iVar2 == 0) {
    return 0;
  }
  iVar2 = strcmp(pcVar5,"psts");
  if (iVar2 == 0) {
    uVar6 = 0xffffffff;
    while (iVar2 = getopt(param_1,param_2,"i:vh"), 0 < iVar2) {   //possible issue identified - semgrep
      if (iVar2 == 0x69) {
        uVar6 = atoi(_optarg);
      }
      else {
        puts("psts -i {port#}");
      }
    }
    if (4 < uVar6) {
      pcVar1 = "%s: invalid port range (%d)!\n";
      pcVar5 = "portstatus";
      goto LAB_00400edc;
    }
    iVar2 = socket(2,1,0);
    if (iVar2 < 0) {
      perror("socket");
    }
    else {
      local_50[0] = 0x80;
      local_38 = local_50;
      local_48 = 0x32687465;
      local_44 = 0;
      iVar3 = ioctl(iVar2,0x89f1);
      if (iVar3 != -1) {
        close(iVar2);
                    /* WARNING: Could not recover jumptable at 0x00400c6c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        uVar4 = (*(code *)(&_gp + *(int *)(&UNK_00401610 + uVar6 * 4)))();
        return uVar4;
      }
      perror("ioctl");
      close(iVar2);
    }
    pcVar8 = putchar;
    pcVar1 = (char *)0xa;
  }
  else {
    iVar2 = strcmp(pcVar5,"slinktype");
    if (iVar2 == 0) {
      uVar6 = 0xffffffff;
      uVar7 = 0xffffffff;
      while (iVar2 = getopt(param_1,param_2,"i:d:vh"), pcVar1 = _optarg, 0 < iVar2) {   //possible issue identified - semgrep
        if (iVar2 == 100) {
          iVar2 = strcmp(_optarg,"AUTO");
          if (iVar2 == 0) {
            uVar6 = 0;
          }
          else {
            iVar2 = strcmp(pcVar1,"100F");
            if (iVar2 == 0) {
              uVar6 = 1;
            }
            else {
              iVar2 = strcmp(pcVar1,"100H");
              if (iVar2 == 0) {
                uVar6 = 2;
              }
              else {
                iVar2 = strcmp(pcVar1,"10F");
                if (iVar2 == 0) {
                  uVar6 = 3;
                }
                else {
                  iVar2 = strcmp(pcVar1,"10H");
                  if (iVar2 == 0) {
                    uVar6 = 4;
                  }
                }
              }
            }
          }
        }
        else {
          if (iVar2 != 0x69) {
            pcVar8 = puts;
            pcVar1 = 
            "slinktype -i {port#} -d {link type}\n   port#: 0 ~ 4\n   link type:\n      AUTO: auto-negotiation\n      100F: 100Mbps Full-Duplex\n      100H: 100Mbps Half-Duplex\n      10F:  10Mbps Full-Duplex\n      10H:  10Mbps Half-Duplex"
            ;
            goto LAB_00400f50;
          }
          uVar7 = atoi(_optarg);
        }
      }
      if (uVar7 < 5) {
        switch(uVar6) {
        case 0:
          uVar4 = 0x9200;
          break;
        case 1:
          uVar4 = 0x2100;
          break;
        case 2:
          uVar4 = 0x2000;
          break;
        case 3:
          uVar4 = 0x100;
          break;
        case 4:
          uVar4 = 0;
          break;
        default:
          pcVar1 = "%s: invalid type (%d) !\n";
          pcVar5 = "setlinktype";
          goto LAB_00400edc;
        }
        FUN_00400954(uVar7 & 0xff,0,uVar4);
        return 0;
      }
      pcVar1 = "%s: invalid port range (%d)!\n";
      pcVar5 = "setlinktype";
      uVar6 = uVar7;
LAB_00400edc:
      fprintf(_stderr,pcVar1,pcVar5,uVar6);
      return 0xffffffff;
    }
    pcVar8 = puts;
    pcVar1 = "Ralink rt3052 switch !";
  }
LAB_00400f50:
  (*pcVar8)(pcVar1);
  return 0;
}