
/* WARNING: Type propagation algorithm not settling */

int cmdline_process_param(char *p,char *value,int need_save,Conf *conf)

{
  char cVar1;
  int iVar2;
  int iVar3;
  char *pcVar4;
  char *pcVar5;
  Filename *pFVar6;
  FILE *__stream;
  long lVar7;
  ulong uVar8;
  byte *pbVar9;
  byte *pbVar10;
  char *pcVar11;
  bool bVar12;
  bool bVar13;
  undefined1 uVar14;
  bool bVar15;
  undefined1 uVar16;
  byte bVar17;
  int local_48;
  int local_3c;
  
  bVar17 = 0;
  bVar12 = &stack0xffffffffffffffd0 < (undefined1 *)0x28;
  bVar15 = &stack0x00000000 == (undefined1 *)0x58;
  lVar7 = 6;
  pbVar9 = (byte *)p;
  pbVar10 = (byte *)"-load";
  do {
    if (lVar7 == 0) break;
    lVar7 = lVar7 + -1;
    bVar12 = *pbVar9 < *pbVar10;
    bVar15 = *pbVar9 == *pbVar10;
    pbVar9 = pbVar9 + 1;
    pbVar10 = pbVar10 + 1;
  } while (bVar15);
  bVar13 = false;
  bVar12 = (!bVar12 && !bVar15) == bVar12;
  if (bVar12) {
    if (value == (char *)0x0) {
      return -2;
    }
    if (-1 < need_save) {
      do_defaults(value,conf);
      loaded_session = 1;
      cmdline_session_name = dupstr(value);
      return 2;
    }
    return 2;
  }
  lVar7 = 5;
  pbVar9 = (byte *)p;
  pbVar10 = &DAT_0013b272;
  do {
    if (lVar7 == 0) break;
    lVar7 = lVar7 + -1;
    bVar13 = *pbVar9 < *pbVar10;
    bVar12 = *pbVar9 == *pbVar10;
    pbVar9 = pbVar9 + 1;
    pbVar10 = pbVar10 + 1;
  } while (bVar12);
  bVar15 = false;
  bVar12 = (!bVar13 && !bVar12) == bVar13;
  if (bVar12) {
    if (need_save < 0) {
      return 1;
    }
    iVar2 = cmdline_check_unavailable(3,p);
    if (iVar2 == 0) {
      if (need_save == 0) {
        default_protocol = 3;
        default_port = 0x16;
        conf_set_int(conf,2,3);
        conf_set_int(conf,1,default_port);
        return 1;
      }
      cmdline_save_param(p,value,0);
      return 1;
    }
    return 1;
  }
  lVar7 = 8;
  pbVar9 = (byte *)p;
  pbVar10 = (byte *)"-telnet";
  do {
    if (lVar7 == 0) break;
    lVar7 = lVar7 + -1;
    bVar15 = *pbVar9 < *pbVar10;
    bVar12 = *pbVar9 == *pbVar10;
    pbVar9 = pbVar9 + 1;
    pbVar10 = pbVar10 + 1;
  } while (bVar12);
  bVar13 = false;
  bVar12 = (!bVar15 && !bVar12) == bVar15;
  if (bVar12) {
    if (need_save < 0) {
      return 1;
    }
    iVar2 = cmdline_check_unavailable(3,p);
    if (iVar2 == 0) {
      if (need_save == 0) {
        default_protocol = 1;
        default_port = 0x17;
        conf_set_int(conf,2,1);
        conf_set_int(conf,1,default_port);
        return 1;
      }
      cmdline_save_param(p,value,0);
      return 1;
    }
    return 1;
  }
  lVar7 = 8;
  pbVar9 = (byte *)p;
  pbVar10 = (byte *)"-rlogin";
  do {
    if (lVar7 == 0) break;
    lVar7 = lVar7 + -1;
    bVar13 = *pbVar9 < *pbVar10;
    bVar12 = *pbVar9 == *pbVar10;
    pbVar9 = pbVar9 + 1;
    pbVar10 = pbVar10 + 1;
  } while (bVar12);
  bVar15 = false;
  bVar12 = (!bVar13 && !bVar12) == bVar13;
  if (bVar12) {
    if (need_save < 0) {
      return 1;
    }
    iVar2 = cmdline_check_unavailable(3,p);
    if (iVar2 == 0) {
      if (need_save == 0) {
        default_protocol = 2;
        default_port = 0x201;
        conf_set_int(conf,2,2);
        conf_set_int(conf,1,default_port);
        return 1;
      }
      cmdline_save_param(p,value,0);
      return 1;
    }
    return 1;
  }
  lVar7 = 5;
  pbVar9 = (byte *)p;
  pbVar10 = &DAT_0013b287;
  do {
    if (lVar7 == 0) break;
    lVar7 = lVar7 + -1;
    bVar15 = *pbVar9 < *pbVar10;
    bVar12 = *pbVar9 == *pbVar10;
    pbVar9 = pbVar9 + 1;
    pbVar10 = pbVar10 + 1;
  } while (bVar12);
  bVar13 = false;
  bVar12 = (!bVar15 && !bVar12) == bVar15;
  if (bVar12) {
    if (need_save < 0) {
      return 1;
    }
    iVar2 = cmdline_check_unavailable(3,p);
    if (iVar2 != 0) {
      return 1;
    }
    uVar14 = 0;
    uVar16 = need_save == 0;
    if (!(bool)uVar16) {
      cmdline_save_param(p,value,0);
      return 1;
    }
    default_protocol = 0;
    conf_set_int(conf,2,0);
    lVar7 = 8;
    pbVar9 = (byte *)p;
    pbVar10 = (byte *)"-serial";
    do {
      if (lVar7 == 0) break;
      lVar7 = lVar7 + -1;
      uVar14 = *pbVar9 < *pbVar10;
      uVar16 = *pbVar9 == *pbVar10;
      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;
      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;
    } while ((bool)uVar16);
    bVar12 = false;
    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;
    if (bVar15) {
      iVar2 = cmdline_check_unavailable(3,p);
      uVar14 = iVar2 == 0;
      if (!(bool)uVar14) {
        return 1;
      }
LAB_0010858a:
      uVar16 = 0;
      default_protocol = 4;
      conf_set_int(conf,2,4);
      pcVar4 = conf_get_str(conf,0);
      conf_set_str(conf,0x39,pcVar4);
      lVar7 = 3;
      pbVar9 = (byte *)p;
      pbVar10 = &DAT_0013b294;
      do {
        if (lVar7 == 0) break;
        lVar7 = lVar7 + -1;
        uVar16 = *pbVar9 < *pbVar10;
        uVar14 = *pbVar9 == *pbVar10;
        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;
        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;
      } while ((bool)uVar14);
      bVar12 = (!(bool)uVar16 && !(bool)uVar14) == (bool)uVar16;
    }
    else {
      lVar7 = 3;
      pbVar9 = (byte *)p;
      pbVar10 = &DAT_0013b294;
      do {
        if (lVar7 == 0) break;
        lVar7 = lVar7 + -1;
        bVar12 = *pbVar9 < *pbVar10;
        bVar15 = *pbVar9 == *pbVar10;
        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;
        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;
      } while (bVar15);
      bVar12 = (!bVar12 && !bVar15) == bVar12;
    }
    iVar2 = 1;
    if (bVar12) {
LAB_00108687:
      flags = flags | 1;
      bVar12 = flags == 0;
      iVar2 = 1;
    }
  }
  else {
    lVar7 = 8;
    pbVar9 = (byte *)p;
    pbVar10 = (byte *)"-serial";
    do {
      if (lVar7 == 0) break;
      lVar7 = lVar7 + -1;
      bVar13 = *pbVar9 < *pbVar10;
      bVar12 = *pbVar9 == *pbVar10;
      pbVar9 = pbVar9 + 1;
      pbVar10 = pbVar10 + 1;
    } while (bVar12);
    bVar15 = false;
    bVar12 = (!bVar13 && !bVar12) == bVar13;
    if (bVar12) {
      if (need_save < 0) {
        return 1;
      }
      iVar2 = cmdline_check_unavailable(3,p);
      if (iVar2 != 0) {
        return 1;
      }
      uVar14 = need_save == 0;
      if (!(bool)uVar14) {
        cmdline_save_param(p,value,0);
        return 1;
      }
      goto LAB_0010858a;
    }
    lVar7 = 3;
    pbVar9 = (byte *)p;
    pbVar10 = &DAT_0013b294;
    do {
      if (lVar7 == 0) break;
      lVar7 = lVar7 + -1;
      bVar15 = *pbVar9 < *pbVar10;
      bVar12 = *pbVar9 == *pbVar10;
      pbVar9 = pbVar9 + 1;
      pbVar10 = pbVar10 + 1;
    } while (bVar12);
    bVar12 = (!bVar15 && !bVar12) == bVar15;
    if (bVar12) {
      if (need_save < 0) {
        return 1;
      }
      goto LAB_00108687;
    }
    iVar2 = 0;
  }
  bVar15 = false;
  lVar7 = 3;
  pbVar9 = (byte *)p;
  pbVar10 = (byte *)0x1440df;
  do {
    if (lVar7 == 0) break;
    lVar7 = lVar7 + -1;
    bVar15 = *pbVar9 < *pbVar10;
    bVar12 = *pbVar9 == *pbVar10;
    pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;
    pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;
  } while (bVar12);
  bVar13 = false;
  bVar12 = (!bVar15 && !bVar12) == bVar15;
  if (bVar12) {
    if (value == (char *)0x0) {
      return -2;
    }
    if (need_save < 0) {
      return 2;
    }
    iVar2 = cmdline_check_unavailable(2,p);
    if (iVar2 != 0) {
      return 2;
    }
    uVar14 = 0;
    uVar16 = need_save == 0;
    if (!(bool)uVar16) {
      cmdline_save_param(p,value,0);
      return 2;
    }
    conf_set_str(conf,0x34,value);
    lVar7 = 9;
    pbVar9 = (byte *)p;
    pbVar10 = (byte *)"-loghost";
    do {
      if (lVar7 == 0) break;
      lVar7 = lVar7 + -1;
      uVar14 = *pbVar9 < *pbVar10;
      uVar16 = *pbVar9 == *pbVar10;
      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;
      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;
    } while ((bool)uVar16);
    bVar12 = false;
    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;
    if (bVar15) {
      iVar2 = cmdline_check_unavailable(2,p);
      uVar14 = iVar2 == 0;
      if (!(bool)uVar14) {
        return 2;
      }
LAB_0010a0b4:
      uVar16 = 0;
      conf_set_str(conf,9,value);
      lVar7 = 9;
      pbVar9 = (byte *)p;
      pbVar10 = (byte *)"-hostkey";
      do {
        if (lVar7 == 0) break;
        lVar7 = lVar7 + -1;
        uVar16 = *pbVar9 < *pbVar10;
        uVar14 = *pbVar9 == *pbVar10;
        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;
        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;
      } while ((bool)uVar14);
      iVar2 = 2;
      bVar12 = (!(bool)uVar16 && !(bool)uVar14) == (bool)uVar16;
      if (bVar12) {
        iVar2 = cmdline_check_unavailable(2,p);
        if (iVar2 != 0) {
          return 2;
        }
        goto LAB_0010a103;
      }
    }
    else {
      lVar7 = 9;
      pbVar9 = (byte *)p;
      pbVar10 = (byte *)"-hostkey";
      do {
        if (lVar7 == 0) break;
        lVar7 = lVar7 + -1;
        bVar12 = *pbVar9 < *pbVar10;
        bVar15 = *pbVar9 == *pbVar10;
        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;
        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;
      } while (bVar15);
      iVar2 = 2;
      bVar12 = (!bVar12 && !bVar15) == bVar12;
      if (bVar12) goto LAB_00108738;
    }
LAB_0010884b:
    bVar15 = false;
    lVar7 = 3;
    pbVar9 = (byte *)p;
    pbVar10 = &DAT_0013b2a9;
    do {
      if (lVar7 == 0) break;
      lVar7 = lVar7 + -1;
      bVar15 = *pbVar9 < *pbVar10;
      bVar12 = *pbVar9 == *pbVar10;
      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;
      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;
    } while (bVar12);
    bVar12 = (!bVar15 && !bVar12) == bVar15;
    if (!bVar12) goto LAB_00108865;
    goto LAB_0010889d;
  }
  lVar7 = 9;
  pbVar9 = (byte *)p;
  pbVar10 = (byte *)"-loghost";
  do {
    if (lVar7 == 0) break;
    lVar7 = lVar7 + -1;
    bVar13 = *pbVar9 < *pbVar10;
    bVar12 = *pbVar9 == *pbVar10;
    pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;
    pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;
  } while (bVar12);
  bVar15 = false;
  bVar12 = (!bVar13 && !bVar12) == bVar13;
  if (bVar12) {
    if (value == (char *)0x0) {
      return -2;
    }
    if (need_save < 0) {
      return 2;
    }
    iVar2 = cmdline_check_unavailable(2,p);
    if (iVar2 != 0) {
      return 2;
    }
    uVar14 = need_save == 0;
    if (!(bool)uVar14) {
      cmdline_save_param(p,value,0);
      return 2;
    }
    goto LAB_0010a0b4;
  }
  lVar7 = 9;
  pbVar9 = (byte *)p;
  pbVar10 = (byte *)"-hostkey";
  do {
    if (lVar7 == 0) break;
    lVar7 = lVar7 + -1;
    bVar15 = *pbVar9 < *pbVar10;
    bVar12 = *pbVar9 == *pbVar10;
    pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;
    pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;
  } while (bVar12);
  bVar12 = (!bVar15 && !bVar12) == bVar15;
  if (!bVar12) goto LAB_0010884b;
  if (value == (char *)0x0) {
    return -2;
  }
  if (need_save < 0) {
    return 2;
  }
LAB_00108738:
  iVar2 = cmdline_check_unavailable(2,p);
  if (iVar2 != 0) {
    return 2;
  }
  if (need_save != 0) {
    cmdline_save_param(p,value,0);
    return 2;
  }
LAB_0010a103:
  pcVar4 = dupstr(value);
  iVar2 = validate_manual_hostkey(pcVar4);
  uVar14 = 0;
  uVar16 = iVar2 == 0;
  if ((bool)uVar16) {
    cmdline_error("\'%s\' is not a valid format for a manual host key specification",value);
    safefree(pcVar4);
    return 2;
  }
  conf_set_str_str(conf,0xad,pcVar4,"");
  safefree(pcVar4);
  lVar7 = 3;
  pbVar9 = (byte *)p;
  pbVar10 = &DAT_0013b2a9;
  do {
    if (lVar7 == 0) break;
    lVar7 = lVar7 + -1;
    uVar14 = *pbVar9 < *pbVar10;
    uVar16 = *pbVar9 == *pbVar10;
    pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;
    pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;
  } while ((bool)uVar16);
  iVar2 = 2;
  bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;
  if (bVar12) {
    iVar2 = cmdline_check_unavailable(3,p);
    bVar12 = iVar2 == 0;
    if (!bVar12) {
      return 2;
    }
LAB_001088cd:
    bVar15 = false;
    lVar7 = 3;
    pbVar9 = (byte *)p;
    pbVar10 = (byte *)0x1440f1;
    do {
      if (lVar7 == 0) break;
      lVar7 = lVar7 + -1;
      bVar15 = *pbVar9 < *pbVar10;
      bVar12 = *pbVar9 == *pbVar10;
      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;
      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;
    } while (bVar12);
    uVar14 = 0;
    uVar16 = (!bVar15 && !bVar12) == bVar15;
    if ((bool)uVar16) {
      pcVar4 = dupprintf("L%s",value);
      pcVar5 = dupstr("D");
    }
    else {
      cVar1 = p[1];
      pcVar4 = host_strchr(value,0x3a);
      pcVar5 = pcVar4;
      if (pcVar4 == (char *)0x0) {
LAB_00108973:
        cmdline_error("-%c expects at least two colons in its argument",(ulong)(uint)(int)cVar1);
        return 2;
      }
      do {
        pcVar11 = pcVar5;
        pcVar5 = pcVar4;
        pcVar4 = host_strchr(pcVar5 + 1,0x3a);
      } while (pcVar4 != (char *)0x0);
      if (pcVar11 == (char *)0x0) goto LAB_00108973;
      uVar14 = pcVar11 < value;
      uVar16 = (long)pcVar11 - (long)value == 0;
      pcVar4 = dupprintf("%c%.*s",(ulong)(uint)(int)cVar1,(long)pcVar11 - (long)value,value);
      pcVar5 = dupstr(pcVar11 + 1);
    }
    conf_set_str_str(conf,0x9b,pcVar4,pcVar5);
    safefree(pcVar4);
    safefree(pcVar5);
    lVar7 = 4;
    pbVar9 = (byte *)p;
    pbVar10 = &DAT_0013b2ba;
    do {
      if (lVar7 == 0) break;
      lVar7 = lVar7 + -1;
      uVar14 = *pbVar9 < *pbVar10;
      uVar16 = *pbVar9 == *pbVar10;
      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;
      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;
    } while ((bool)uVar16);
    iVar2 = 2;
    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;
    if (!bVar12) goto LAB_00108a01;
    iVar2 = cmdline_check_unavailable(3,p);
    if (iVar2 != 0) {
      return 2;
    }
LAB_00109fa5:
    pcVar4 = host_strchr(value,0x3a);
    if (pcVar4 == (char *)0x0) {
      cmdline_error("-nc expects argument of form \'host:port\'");
      return 2;
    }
    pcVar5 = dupprintf("%.*s",(long)pcVar4 - (long)value,value);
    conf_set_str(conf,0x2e,pcVar5);
    lVar7 = strtol(pcVar4 + 1,(char **)0x0,10);
    conf_set_int(conf,0x2f,(int)lVar7);
    safefree(pcVar5);
    iVar3 = strcmp(p,"-m");
    iVar2 = 2;
    bVar12 = iVar3 == 0;
    if (!bVar12) goto LAB_0010a032;
    iVar2 = cmdline_check_unavailable(3,p);
    if (iVar2 != 0) {
      return 2;
    }
LAB_00109f54:
    __stream = fopen64(value,"r");
    if (__stream == (FILE *)0x0) {
      cmdline_error("unable to open command file \"%s\"",value);
      return 2;
    }
    lVar7 = 0;
    local_3c = 0;
    pcVar4 = (char *)0x0;
    while( true ) {
      iVar3 = (int)lVar7;
      iVar2 = fgetc(__stream);
      if (iVar2 == -1) break;
      local_48._0_1_ = (char)iVar2;
      if (iVar3 < local_3c) {
        pcVar4[lVar7] = (char)local_48;
      }
      else {
        local_3c = iVar3 + 0x200;
        pcVar4 = (char *)saferealloc(pcVar4,(long)local_3c,1);
        pcVar4[lVar7] = (char)local_48;
      }
      lVar7 = lVar7 + 1;
    }
    if (iVar3 < local_3c) {
      pcVar4[iVar3] = '\0';
    }
    else {
      pcVar4 = (char *)saferealloc(pcVar4,(long)(iVar3 + 0x200),1);
      pcVar4[lVar7] = '\0';
    }
    fclose(__stream);
    conf_set_str(conf,0x14,pcVar4);
    conf_set_str(conf,0x15,"");
    conf_set_int(conf,0x16,1);
    safefree(pcVar4);
    iVar3 = strcmp(p,"-P");
    iVar2 = 2;
    if (iVar3 == 0) {
      iVar2 = cmdline_check_unavailable(2,p);
      if (iVar2 != 0) {
        return 2;
      }
      goto LAB_00109749;
    }
LAB_00108afa:
    iVar3 = strcmp(p,"-pw");
    if (iVar3 == 0) {
      if (value == (char *)0x0) {
        return -2;
      }
      if (need_save < 0) {
        return 2;
      }
      iVar2 = cmdline_check_unavailable(2,p);
      if (iVar2 != 0) {
        return 2;
      }
      if (need_save != 0) {
        cmdline_save_param(p,value,1);
        return 2;
      }
      goto LAB_00109ee5;
    }
    iVar3 = strcmp(p,"-agent");
    if (iVar3 != 0) goto LAB_00108ba4;
LAB_00108bce:
    if (need_save < 0) {
      return 1;
    }
LAB_00108bdc:
    iVar2 = cmdline_check_unavailable(2,p);
    if (iVar2 != 0) {
      return 1;
    }
    if (need_save != 0) {
      cmdline_save_param(p,value,0);
      return 1;
    }
LAB_00108bf9:
    conf_set_int(conf,0x1c,1);
    iVar2 = strcmp(p,"-noagent");
    if (iVar2 == 0) {
      iVar2 = cmdline_check_unavailable(2,p);
      if (iVar2 != 0) {
        return 1;
      }
      goto LAB_00108c37;
    }
    iVar3 = strcmp(p,"-nopagent");
    iVar2 = 1;
    if (iVar3 == 0) goto LAB_00109e76;
LAB_00108d1b:
    iVar3 = strcmp(p,"-nopageant");
    if (iVar3 == 0) goto LAB_00108d2e;
    iVar3 = strcmp(p,"-A");
    if (iVar3 != 0) {
      iVar3 = strcmp(p,"-a");
      if (iVar3 != 0) goto LAB_00108c7d;
      if (need_save < 0) {
        return 1;
      }
      goto LAB_00108db9;
    }
    if (need_save < 0) {
      return 1;
    }
    iVar2 = cmdline_check_unavailable(3,p);
    if (iVar2 != 0) {
      return 1;
    }
    if (need_save != 0) {
      cmdline_save_param(p,value,0);
      return 1;
    }
LAB_00109d88:
    conf_set_int(conf,0x1d,1);
    iVar2 = strcmp(p,"-a");
    if (iVar2 == 0) {
      iVar2 = cmdline_check_unavailable(3,p);
      if (iVar2 != 0) {
        return 1;
      }
      goto LAB_00109d25;
    }
    iVar3 = strcmp(p,"-X");
    iVar2 = 1;
    if (iVar3 == 0) {
LAB_00108ca2:
      iVar2 = cmdline_check_unavailable(3,p);
      if (iVar2 != 0) {
        return 1;
      }
      if (need_save != 0) {
        cmdline_save_param(p,value,0);
        return 1;
      }
      goto LAB_00109c0f;
    }
LAB_00109dce:
    iVar3 = strcmp(p,"-x");
    if (iVar3 != 0) goto LAB_00109de5;
    if (need_save < 0) {
      return 1;
    }
LAB_00108dff:
    iVar2 = cmdline_check_unavailable(3,p);
    if (iVar2 != 0) {
      return 1;
    }
    if (need_save != 0) {
      cmdline_save_param(p,value,0);
      return 1;
    }
LAB_00109c49:
    conf_set_int(conf,0x95,0);
    iVar2 = strcmp(p,"-t");
    if (iVar2 == 0) {
      iVar2 = cmdline_check_unavailable(3,p);
      if (iVar2 != 0) {
        return 1;
      }
LAB_00109c87:
      conf_set_int(conf,0x16,0);
      iVar2 = strcmp(p,"-T");
      if (iVar2 == 0) {
        iVar2 = cmdline_check_unavailable(3,p);
        if (iVar2 != 0) {
          return 1;
        }
        goto LAB_00109cc5;
      }
      iVar3 = strcmp(p,"-N");
      iVar2 = 1;
      if (iVar3 == 0) goto LAB_00109ba0;
    }
    else {
      iVar3 = strcmp(p,"-T");
      iVar2 = 1;
      if (iVar3 == 0) goto LAB_00109e21;
LAB_00109b7b:
      iVar3 = strcmp(p,"-N");
      if (iVar3 == 0) {
        if (need_save < 0) {
          return 1;
        }
LAB_00109ba0:
        iVar2 = cmdline_check_unavailable(3,p);
        if (iVar2 != 0) {
          return 1;
        }
        if (need_save != 0) {
          cmdline_save_param(p,value,0);
          return 1;
        }
        goto LAB_00109a6e;
      }
    }
    iVar3 = strcmp(p,"-C");
    if (iVar3 == 0) {
      if (need_save < 0) {
        return 1;
      }
LAB_00108e8b:
      iVar2 = cmdline_check_unavailable(2,p);
      if (iVar2 != 0) {
        return 1;
      }
      if (need_save != 0) {
        cmdline_save_param(p,value,0);
        return 1;
      }
LAB_0010989e:
      conf_set_int(conf,0x17,1);
      iVar2 = strcmp(p,"-1");
      if (iVar2 == 0) {
        iVar2 = cmdline_check_unavailable(2,p);
        if (iVar2 != 0) {
          return 1;
        }
        goto LAB_001098d8;
      }
      iVar3 = strcmp(p,"-2");
      iVar2 = 1;
      if (iVar3 != 0) goto LAB_00109930;
      goto LAB_00109b26;
    }
LAB_00109aea:
    iVar3 = strcmp(p,"-1");
    if (iVar3 != 0) goto LAB_00109b01;
    if (need_save < 0) {
      return 1;
    }
LAB_00108ed1:
    iVar2 = cmdline_check_unavailable(2,p);
    if (iVar2 != 0) {
      return 1;
    }
    if (need_save != 0) {
      cmdline_save_param(p,value,0);
      return 1;
    }
LAB_001098d8:
    conf_set_int(conf,0x21,0);
    iVar3 = strcmp(p,"-2");
    iVar2 = 1;
    if (iVar3 != 0) goto LAB_00109930;
    iVar2 = cmdline_check_unavailable(2,p);
    if (iVar2 != 0) {
      return 1;
    }
LAB_00109918:
    conf_set_int(conf,0x21,3);
    iVar2 = 1;
  }
  else {
LAB_00108865:
    bVar15 = false;
    lVar7 = 3;
    pbVar9 = (byte *)p;
    pbVar10 = &DAT_0013b2ac;
    do {
      if (lVar7 == 0) break;
      lVar7 = lVar7 + -1;
      bVar15 = *pbVar9 < *pbVar10;
      bVar12 = *pbVar9 == *pbVar10;
      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;
      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;
    } while (bVar12);
    bVar13 = false;
    bVar12 = (!bVar15 && !bVar12) == bVar15;
    if (bVar12) {
LAB_0010889d:
      if (value == (char *)0x0) {
        return -2;
      }
      if (need_save < 0) {
        return 2;
      }
      iVar2 = cmdline_check_unavailable(3,p);
      if (iVar2 != 0) {
        return 2;
      }
      bVar12 = need_save == 0;
      if (!bVar12) {
        cmdline_save_param(p,value,0);
        return 2;
      }
      goto LAB_001088cd;
    }
    lVar7 = 3;
    pbVar9 = (byte *)p;
    pbVar10 = (byte *)0x1440f1;
    do {
      if (lVar7 == 0) break;
      lVar7 = lVar7 + -1;
      bVar13 = *pbVar9 < *pbVar10;
      bVar12 = *pbVar9 == *pbVar10;
      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;
      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;
    } while (bVar12);
    if ((!bVar13 && !bVar12) == bVar13) goto LAB_0010889d;
    iVar3 = strcmp(p,"-nc");
    bVar12 = iVar3 == 0;
    if (bVar12) {
      if (value == (char *)0x0) {
        return -2;
      }
      if (need_save < 0) {
        return 2;
      }
      iVar2 = cmdline_check_unavailable(3,p);
      if (iVar2 != 0) {
        return 2;
      }
      if (need_save != 0) {
        cmdline_save_param(p,value,0);
        return 2;
      }
      goto LAB_00109fa5;
    }
LAB_00108a01:
    bVar15 = false;
    lVar7 = 3;
    pbVar9 = (byte *)p;
    pbVar10 = &DAT_0013b2be;
    do {
      if (lVar7 == 0) break;
      lVar7 = lVar7 + -1;
      bVar15 = *pbVar9 < *pbVar10;
      bVar12 = *pbVar9 == *pbVar10;
      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;
      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;
    } while (bVar12);
    bVar12 = (!bVar15 && !bVar12) == bVar15;
    if (bVar12) {
      if (value == (char *)0x0) {
        return -2;
      }
      if (need_save < 0) {
        return 2;
      }
      iVar2 = cmdline_check_unavailable(3,p);
      if (iVar2 != 0) {
        return 2;
      }
      if (need_save != 0) {
        cmdline_save_param(p,value,0);
        return 2;
      }
      goto LAB_00109f54;
    }
LAB_0010a032:
    bVar15 = false;
    lVar7 = 3;
    pbVar9 = (byte *)p;
    pbVar10 = &DAT_0013b2c1;
    do {
      if (lVar7 == 0) break;
      lVar7 = lVar7 + -1;
      bVar15 = *pbVar9 < *pbVar10;
      bVar12 = *pbVar9 == *pbVar10;
      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;
      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;
    } while (bVar12);
    if ((!bVar15 && !bVar12) != bVar15) goto LAB_00108afa;
    if (value == (char *)0x0) {
      return -2;
    }
    if (need_save < 0) {
      return 2;
    }
    iVar2 = cmdline_check_unavailable(2,p);
    if (iVar2 != 0) {
      return 2;
    }
    if (need_save != 0) {
      cmdline_save_param(p,value,1);
      return 2;
    }
LAB_00109749:
    lVar7 = strtol(value,(char **)0x0,10);
    conf_set_int(conf,1,(int)lVar7);
    iVar2 = strcmp(p,"-pw");
    if (iVar2 == 0) {
      iVar2 = cmdline_check_unavailable(2,p);
      if (iVar2 != 0) {
        return 2;
      }
LAB_00109ee5:
      iVar2 = conf_get_int(conf,2);
      if (iVar2 == 3) {
        cmdline_password = dupstr(value);
        uVar8 = 0xffffffffffffffff;
        pcVar4 = value;
        do {
          if (uVar8 == 0) break;
          uVar8 = uVar8 - 1;
          cVar1 = *pcVar4;
          pcVar4 = pcVar4 + (ulong)bVar17 * -2 + 1;
        } while (cVar1 != '\0');
        smemclr(value,~uVar8 - 1);
      }
      else {
        cmdline_error("the -pw option can only be used with the SSH protocol");
      }
      iVar2 = strcmp(p,"-agent");
      if (iVar2 != 0) {
        iVar3 = strcmp(p,"-pagent");
        iVar2 = 2;
        if (iVar3 != 0) goto LAB_00108bb7;
        goto LAB_00108bdc;
      }
      iVar2 = cmdline_check_unavailable(2,p);
      if (iVar2 != 0) {
        return 1;
      }
      goto LAB_00108bf9;
    }
    iVar3 = strcmp(p,"-agent");
    iVar2 = 2;
    if (iVar3 == 0) goto LAB_00108bdc;
LAB_00108ba4:
    iVar3 = strcmp(p,"-pagent");
    if (iVar3 == 0) goto LAB_00108bce;
LAB_00108bb7:
    iVar3 = strcmp(p,"-pageant");
    if (iVar3 == 0) goto LAB_00108bce;
    iVar3 = strcmp(p,"-noagent");
    if ((iVar3 != 0) && (iVar3 = strcmp(p,"-nopagent"), iVar3 != 0)) goto LAB_00108d1b;
LAB_00108d2e:
    if (need_save < 0) {
      return 1;
    }
LAB_00109e76:
    iVar2 = cmdline_check_unavailable(2,p);
    if (iVar2 != 0) {
      return 1;
    }
    if (need_save != 0) {
      cmdline_save_param(p,value,0);
      return 1;
    }
LAB_00108c37:
    conf_set_int(conf,0x1c,0);
    iVar2 = strcmp(p,"-A");
    if (iVar2 == 0) {
      iVar2 = cmdline_check_unavailable(3,p);
      if (iVar2 != 0) {
        return 1;
      }
      goto LAB_00109d88;
    }
    iVar2 = strcmp(p,"-a");
    if (iVar2 != 0) {
      iVar2 = 1;
LAB_00108c7d:
      iVar3 = strcmp(p,"-X");
      if (iVar3 != 0) goto LAB_00109dce;
      if (need_save < 0) {
        return 1;
      }
      goto LAB_00108ca2;
    }
LAB_00108db9:
    iVar2 = cmdline_check_unavailable(3,p);
    if (iVar2 != 0) {
      return 1;
    }
    if (need_save != 0) {
      cmdline_save_param(p,value,0);
      return 1;
    }
LAB_00109d25:
    conf_set_int(conf,0x1d,0);
    iVar2 = strcmp(p,"-X");
    if (iVar2 == 0) {
      iVar2 = cmdline_check_unavailable(3,p);
      if (iVar2 != 0) {
        return 1;
      }
LAB_00109c0f:
      conf_set_int(conf,0x95,1);
      iVar2 = strcmp(p,"-x");
      if (iVar2 == 0) {
        iVar2 = cmdline_check_unavailable(3,p);
        if (iVar2 != 0) {
          return 1;
        }
        goto LAB_00109c49;
      }
      iVar3 = strcmp(p,"-t");
      iVar2 = 1;
      if (iVar3 != 0) goto LAB_00109dfc;
LAB_00108e45:
      iVar2 = cmdline_check_unavailable(3,p);
      if (iVar2 != 0) {
        return 1;
      }
      if (need_save != 0) {
        cmdline_save_param(p,value,1);
        return 1;
      }
      goto LAB_00109c87;
    }
    iVar3 = strcmp(p,"-x");
    iVar2 = 1;
    if (iVar3 == 0) goto LAB_00108dff;
LAB_00109de5:
    iVar3 = strcmp(p,"-t");
    if (iVar3 == 0) {
      if (need_save < 0) {
        return 1;
      }
      goto LAB_00108e45;
    }
LAB_00109dfc:
    iVar3 = strcmp(p,"-T");
    if (iVar3 != 0) goto LAB_00109b7b;
    if (need_save < 0) {
      return 1;
    }
LAB_00109e21:
    iVar2 = cmdline_check_unavailable(3,p);
    if (iVar2 != 0) {
      return 1;
    }
    if (need_save != 0) {
      cmdline_save_param(p,value,1);
      return 1;
    }
LAB_00109cc5:
    conf_set_int(conf,0x16,1);
    iVar2 = strcmp(p,"-N");
    if (iVar2 != 0) {
      iVar3 = strcmp(p,"-C");
      iVar2 = 1;
      if (iVar3 == 0) goto LAB_00108e8b;
      goto LAB_00109aea;
    }
    iVar2 = cmdline_check_unavailable(3,p);
    if (iVar2 != 0) {
      return 1;
    }
LAB_00109a6e:
    conf_set_int(conf,0x2d,1);
    iVar2 = strcmp(p,"-C");
    if (iVar2 == 0) {
      iVar2 = cmdline_check_unavailable(2,p);
      if (iVar2 != 0) {
        return 1;
      }
      goto LAB_0010989e;
    }
    iVar3 = strcmp(p,"-1");
    iVar2 = 1;
    if (iVar3 == 0) goto LAB_00108ed1;
LAB_00109b01:
    iVar3 = strcmp(p,"-2");
    if (iVar3 == 0) {
      if (need_save < 0) {
        return 1;
      }
LAB_00109b26:
      iVar2 = cmdline_check_unavailable(2,p);
      if (iVar2 != 0) {
        return 1;
      }
      if (need_save != 0) {
        cmdline_save_param(p,value,0);
        return 1;
      }
      goto LAB_00109918;
    }
  }
LAB_00109930:
  iVar3 = strcmp(p,"-i");
  if (iVar3 == 0) {
    if (value == (char *)0x0) {
      return -2;
    }
    if (need_save < 0) {
      return 2;
    }
    iVar2 = cmdline_check_unavailable(2,p);
    if (iVar2 != 0) {
      return 2;
    }
    if (need_save != 0) {
      cmdline_save_param(p,value,0);
      return 2;
    }
    pFVar6 = filename_from_str(value);
    conf_set_filename(conf,0x20,pFVar6);
    filename_free(pFVar6);
    iVar2 = strcmp(p,"-4");
    if (iVar2 != 0) {
      iVar3 = strcmp(p,"-ipv4");
      iVar2 = 2;
      if (iVar3 != 0) goto LAB_00109814;
    }
LAB_001099af:
    conf_set_int(conf,3,1);
    iVar3 = strcmp(p,"-6");
    iVar2 = 1;
    if (iVar3 == 0) goto LAB_001099de;
LAB_00109827:
    iVar3 = strcmp(p,"-ipv6");
    if (iVar3 == 0) goto LAB_0010983e;
  }
  else {
    iVar3 = strcmp(p,"-4");
    if ((iVar3 == 0) || (iVar3 = strcmp(p,"-ipv4"), iVar3 == 0)) {
      if (need_save < 0) {
        return 1;
      }
      if (need_save != 0) {
        cmdline_save_param(p,value,1);
        return 1;
      }
      goto LAB_001099af;
    }
LAB_00109814:
    iVar3 = strcmp(p,"-6");
    if (iVar3 != 0) goto LAB_00109827;
LAB_0010983e:
    if (need_save < 0) {
      return 1;
    }
    if (need_save != 0) {
      cmdline_save_param(p,value,1);
      return 1;
    }
LAB_001099de:
    conf_set_int(conf,3,2);
    iVar2 = 1;
  }
  iVar3 = strcmp(p,"-sercfg");
  if (iVar3 == 0) {
    if (value == (char *)0x0) {
      return -2;
    }
    if (need_save < 0) {
      return 2;
    }
    iVar2 = cmdline_check_unavailable(3,p);
    if (iVar2 != 0) {
      return 2;
    }
    if (need_save != 0) {
      cmdline_save_param(p,value,1);
      return 2;
    }
    iVar2 = conf_get_int(conf,2);
    pcVar4 = value;
    if (iVar2 != 4) {
      cmdline_error("the -sercfg option can only be used with the serial protocol");
    }
    for (; *pcVar4 != '\0'; pcVar4 = pcVar4 + (local_48 + iVar2)) {
      pcVar5 = strchr(pcVar4,0x2c);
      if (pcVar5 == (char *)0x0) {
        lVar7 = -1;
        pcVar5 = pcVar4;
        do {
          if (lVar7 == 0) break;
          lVar7 = lVar7 + -1;
          cVar1 = *pcVar5;
          pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;
        } while (cVar1 != '\0');
        iVar2 = ~(uint)lVar7 - 1;
        local_48 = 0;
      }
      else {
        iVar2 = (int)pcVar5 - (int)pcVar4;
        pcVar4[iVar2] = '\0';
        local_48 = 1;
      }
      if (iVar2 == 1) {
        cVar1 = *pcVar4;
        switch(cVar1) {
        case '1':
        case '2':
          conf_set_int(conf,0x3c,cVar1 * 2 + -0x60);
          break;
        default:
          cmdline_error("Unrecognised suboption \"-sercfg %c\"");
          break;
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':
          conf_set_int(conf,0x3b,cVar1 + -0x30);
          break;
        case 'D':
          conf_set_int(conf,0x3e,3);
          break;
        case 'N':
          conf_set_int(conf,0x3e,0);
          break;
        case 'R':
          conf_set_int(conf,0x3e,2);
          break;
        case 'X':
          conf_set_int(conf,0x3e,1);
          break;
        case 'e':
          conf_set_int(conf,0x3d,2);
          break;
        case 'm':
          conf_set_int(conf,0x3d,3);
          break;
        case 'n':
          conf_set_int(conf,0x3d,0);
          break;
        case 'o':
          conf_set_int(conf,0x3d,1);
          break;
        case 's':
          conf_set_int(conf,0x3d,4);
        }
      }
      else if ((iVar2 == 3) && (iVar3 = strncmp(pcVar4,"1.5",3), iVar3 == 0)) {
        conf_set_int(conf,0x3c,3);
      }
      else {
        lVar7 = strtol(pcVar4,(char **)0x0,10);
        if ((int)lVar7 == 0) {
          cmdline_error("Unrecognised suboption \"-sercfg %s\"",pcVar4);
        }
        else {
          conf_set_int(conf,0x3a,(int)lVar7);
        }
      }
    }
    iVar2 = strcmp(p,"-sessionlog");
    if (iVar2 != 0) {
      iVar3 = strcmp(p,"-sshlog");
      iVar2 = 2;
      if (iVar3 != 0) goto LAB_0010921f;
      goto LAB_0010924d;
    }
    iVar2 = cmdline_check_unavailable(1,p);
    if (iVar2 != 0) {
      return 2;
    }
LAB_001095f3:
    pFVar6 = filename_from_str(value);
    conf_set_filename(conf,0x77,pFVar6);
    conf_set_int(conf,0x78,2);
    filename_free(pFVar6);
    iVar3 = strcmp(p,"-sshlog");
    iVar2 = 2;
    if (iVar3 != 0) {
LAB_0010921f:
      iVar3 = strcmp(p,"-sshrawlog");
      if (iVar3 != 0) {
        iVar3 = strcmp(p,"-proxycmd");
        if (iVar3 != 0) {
          return iVar2;
        }
        if (value == (char *)0x0) {
          return -2;
        }
        if (need_save < 0) {
          return 2;
        }
        iVar2 = cmdline_check_unavailable(2,p);
        if (iVar2 != 0) {
          return 2;
        }
        if (need_save != 0) {
          cmdline_save_param(p,value,0);
          return 2;
        }
        goto LAB_001092e3;
      }
      goto LAB_00109236;
    }
    iVar2 = cmdline_check_unavailable(2,p);
    if (iVar2 != 0) {
      return 2;
    }
  }
  else {
    iVar3 = strcmp(p,"-sessionlog");
    if (iVar3 == 0) {
      if (value == (char *)0x0) {
        return -2;
      }
      if (need_save < 0) {
        return 2;
      }
      iVar2 = cmdline_check_unavailable(1,p);
      if (iVar2 != 0) {
        return 2;
      }
      if (need_save != 0) {
        cmdline_save_param(p,value,0);
        return 2;
      }
      goto LAB_001095f3;
    }
    iVar3 = strcmp(p,"-sshlog");
    if (iVar3 != 0) goto LAB_0010921f;
LAB_00109236:
    if (value == (char *)0x0) {
      return -2;
    }
    if (need_save < 0) {
      return 2;
    }
LAB_0010924d:
    iVar2 = cmdline_check_unavailable(2,p);
    if (iVar2 != 0) {
      return 2;
    }
    if (need_save != 0) {
      cmdline_save_param(p,value,0);
      return 2;
    }
  }
  pFVar6 = filename_from_str(value);
  conf_set_filename(conf,0x77,pFVar6);
  iVar2 = strcmp(p,"-sshlog");
  conf_set_int(conf,0x78,4 - (uint)(iVar2 == 0));
  filename_free(pFVar6);
  iVar2 = strcmp(p,"-proxycmd");
  if (iVar2 != 0) {
    return 2;
  }
  iVar2 = cmdline_check_unavailable(2,p);
  if (iVar2 != 0) {
    return 2;
  }
LAB_001092e3:
  conf_set_int(conf,0xd,5);
  conf_set_str(conf,0x12,value);
  return 2;
}



/* WARNING: Type propagation algorithm not settling */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

undefined8 FUN_001082a0(byte *param_1,char *param_2,int param_3,undefined8 param_4)

{
  byte bVar1;
  char cVar2;
  int iVar3;
  int iVar4;
  undefined8 uVar5;
  char *pcVar6;
  undefined8 uVar7;
  char *pcVar8;
  ulong uVar9;
  FILE *__stream;
  long lVar10;
  byte *pbVar11;
  byte *pbVar12;
  long lVar13;
  char *pcVar14;
  bool bVar15;
  bool bVar16;
  undefined1 uVar17;
  bool bVar18;
  undefined1 uVar19;
  byte bVar20;
  int local_48;
  int local_3c;
  
  bVar20 = 0;
  bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x28;
  bVar18 = &stack0x00000000 == (undefined1 *)0x58;
  lVar10 = 6;
  pbVar11 = param_1;
  pbVar12 = (byte *)"-load";
  do {
    if (lVar10 == 0) break;
    lVar10 = lVar10 + -1;
    bVar15 = *pbVar11 < *pbVar12;
    bVar18 = *pbVar11 == *pbVar12;
    pbVar11 = pbVar11 + 1;
    pbVar12 = pbVar12 + 1;
  } while (bVar18);
  bVar16 = false;
  bVar15 = (!bVar15 && !bVar18) == bVar15;
  if (bVar15) {
    if (param_2 == (char *)0x0) {
      return 0xfffffffe;
    }
    if (-1 < param_3) {
      FUN_00116e22(param_2,param_4);
      _DAT_00152558 = 1;
      _DAT_00152560 = FUN_0010bd5d(param_2);
      return 2;
    }
    return 2;
  }
  lVar10 = 5;
  pbVar11 = param_1;
  pbVar12 = &DAT_0013b272;
  do {
    if (lVar10 == 0) break;
    lVar10 = lVar10 + -1;
    bVar16 = *pbVar11 < *pbVar12;
    bVar15 = *pbVar11 == *pbVar12;
    pbVar11 = pbVar11 + 1;
    pbVar12 = pbVar12 + 1;
  } while (bVar15);
  bVar18 = false;
  bVar15 = (!bVar16 && !bVar15) == bVar16;
  if (bVar15) {
    if (param_3 < 0) {
      return 1;
    }
    iVar3 = FUN_00108083(3,param_1);
    if (iVar3 == 0) {
      if (param_3 == 0) {
        DAT_00152538 = 3;
        DAT_00152548 = 0x16;
        FUN_0010ac09(param_4,2,3);
        FUN_0010ac09(param_4,1,DAT_00152548);
        return 1;
      }
      FUN_001080ad(param_1,param_2,0);
      return 1;
    }
    return 1;
  }
  lVar10 = 8;
  pbVar11 = param_1;
  pbVar12 = (byte *)"-telnet";
  do {
    if (lVar10 == 0) break;
    lVar10 = lVar10 + -1;
    bVar18 = *pbVar11 < *pbVar12;
    bVar15 = *pbVar11 == *pbVar12;
    pbVar11 = pbVar11 + 1;
    pbVar12 = pbVar12 + 1;
  } while (bVar15);
  bVar16 = false;
  bVar15 = (!bVar18 && !bVar15) == bVar18;
  if (bVar15) {
    if (param_3 < 0) {
      return 1;
    }
    iVar3 = FUN_00108083(3,param_1);
    if (iVar3 == 0) {
      if (param_3 == 0) {
        DAT_00152538 = 1;
        DAT_00152548 = 0x17;
        FUN_0010ac09(param_4,2,1);
        FUN_0010ac09(param_4,1,DAT_00152548);
        return 1;
      }
      FUN_001080ad(param_1,param_2,0);
      return 1;
    }
    return 1;
  }
  lVar10 = 8;
  pbVar11 = param_1;
  pbVar12 = (byte *)"-rlogin";
  do {
    if (lVar10 == 0) break;
    lVar10 = lVar10 + -1;
    bVar16 = *pbVar11 < *pbVar12;
    bVar15 = *pbVar11 == *pbVar12;
    pbVar11 = pbVar11 + 1;
    pbVar12 = pbVar12 + 1;
  } while (bVar15);
  bVar18 = false;
  bVar15 = (!bVar16 && !bVar15) == bVar16;
  if (bVar15) {
    if (param_3 < 0) {
      return 1;
    }
    iVar3 = FUN_00108083(3,param_1);
    if (iVar3 == 0) {
      if (param_3 == 0) {
        DAT_00152538 = 2;
        DAT_00152548 = 0x201;
        FUN_0010ac09(param_4,2,2);
        FUN_0010ac09(param_4,1,DAT_00152548);
        return 1;
      }
      FUN_001080ad(param_1,param_2,0);
      return 1;
    }
    return 1;
  }
  lVar10 = 5;
  pbVar11 = param_1;
  pbVar12 = &DAT_0013b287;
  do {
    if (lVar10 == 0) break;
    lVar10 = lVar10 + -1;
    bVar18 = *pbVar11 < *pbVar12;
    bVar15 = *pbVar11 == *pbVar12;
    pbVar11 = pbVar11 + 1;
    pbVar12 = pbVar12 + 1;
  } while (bVar15);
  bVar16 = false;
  bVar15 = (!bVar18 && !bVar15) == bVar18;
  if (bVar15) {
    if (param_3 < 0) {
      return 1;
    }
    iVar3 = FUN_00108083(3,param_1);
    if (iVar3 != 0) {
      return 1;
    }
    uVar17 = 0;
    uVar19 = param_3 == 0;
    if (!(bool)uVar19) {
      FUN_001080ad(param_1,param_2,0);
      return 1;
    }
    DAT_00152538 = 0;
    FUN_0010ac09(param_4,2,0);
    lVar10 = 8;
    pbVar11 = param_1;
    pbVar12 = (byte *)"-serial";
    do {
      if (lVar10 == 0) break;
      lVar10 = lVar10 + -1;
      uVar17 = *pbVar11 < *pbVar12;
      uVar19 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
    } while ((bool)uVar19);
    bVar15 = false;
    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;
    if (bVar18) {
      iVar3 = FUN_00108083(3,param_1);
      uVar17 = iVar3 == 0;
      if (!(bool)uVar17) {
        return 1;
      }
LAB_0010858a:
      uVar19 = 0;
      DAT_00152538 = 4;
      FUN_0010ac09(param_4,2,4);
      uVar5 = FUN_0010a6d3(param_4,0);
      FUN_0010ad3a(param_4,0x39,uVar5);
      lVar10 = 3;
      pbVar11 = param_1;
      pbVar12 = &DAT_0013b294;
      do {
        if (lVar10 == 0) break;
        lVar10 = lVar10 + -1;
        uVar19 = *pbVar11 < *pbVar12;
        uVar17 = *pbVar11 == *pbVar12;
        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
      } while ((bool)uVar17);
      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;
    }
    else {
      lVar10 = 3;
      pbVar11 = param_1;
      pbVar12 = &DAT_0013b294;
      do {
        if (lVar10 == 0) break;
        lVar10 = lVar10 + -1;
        bVar15 = *pbVar11 < *pbVar12;
        bVar18 = *pbVar11 == *pbVar12;
        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
      } while (bVar18);
      bVar15 = (!bVar15 && !bVar18) == bVar15;
    }
    uVar5 = 1;
    if (bVar15) {
LAB_00108687:
      DAT_0015254c = DAT_0015254c | 1;
      bVar15 = DAT_0015254c == 0;
      uVar5 = 1;
    }
  }
  else {
    lVar10 = 8;
    pbVar11 = param_1;
    pbVar12 = (byte *)"-serial";
    do {
      if (lVar10 == 0) break;
      lVar10 = lVar10 + -1;
      bVar16 = *pbVar11 < *pbVar12;
      bVar15 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + 1;
      pbVar12 = pbVar12 + 1;
    } while (bVar15);
    bVar18 = false;
    bVar15 = (!bVar16 && !bVar15) == bVar16;
    if (bVar15) {
      if (param_3 < 0) {
        return 1;
      }
      iVar3 = FUN_00108083(3,param_1);
      if (iVar3 != 0) {
        return 1;
      }
      uVar17 = param_3 == 0;
      if (!(bool)uVar17) {
        FUN_001080ad(param_1,param_2,0);
        return 1;
      }
      goto LAB_0010858a;
    }
    lVar10 = 3;
    pbVar11 = param_1;
    pbVar12 = &DAT_0013b294;
    do {
      if (lVar10 == 0) break;
      lVar10 = lVar10 + -1;
      bVar18 = *pbVar11 < *pbVar12;
      bVar15 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + 1;
      pbVar12 = pbVar12 + 1;
    } while (bVar15);
    bVar15 = (!bVar18 && !bVar15) == bVar18;
    if (bVar15) {
      if (param_3 < 0) {
        return 1;
      }
      goto LAB_00108687;
    }
    uVar5 = 0;
  }
  bVar18 = false;
  lVar10 = 3;
  pbVar11 = param_1;
  pbVar12 = (byte *)0x1440df;
  do {
    if (lVar10 == 0) break;
    lVar10 = lVar10 + -1;
    bVar18 = *pbVar11 < *pbVar12;
    bVar15 = *pbVar11 == *pbVar12;
    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
  } while (bVar15);
  bVar16 = false;
  bVar15 = (!bVar18 && !bVar15) == bVar18;
  if (bVar15) {
    if (param_2 == (char *)0x0) {
      return 0xfffffffe;
    }
    if (param_3 < 0) {
      return 2;
    }
    iVar3 = FUN_00108083(2,param_1);
    if (iVar3 != 0) {
      return 2;
    }
    uVar17 = 0;
    uVar19 = param_3 == 0;
    if (!(bool)uVar19) {
      FUN_001080ad(param_1,param_2,0);
      return 2;
    }
    FUN_0010ad3a(param_4,0x34,param_2);
    lVar10 = 9;
    pbVar11 = param_1;
    pbVar12 = (byte *)"-loghost";
    do {
      if (lVar10 == 0) break;
      lVar10 = lVar10 + -1;
      uVar17 = *pbVar11 < *pbVar12;
      uVar19 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
    } while ((bool)uVar19);
    bVar15 = false;
    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;
    if (bVar18) {
      iVar3 = FUN_00108083(2,param_1);
      uVar17 = iVar3 == 0;
      if (!(bool)uVar17) {
        return 2;
      }
LAB_0010a0b4:
      uVar19 = 0;
      FUN_0010ad3a(param_4,9,param_2);
      lVar10 = 9;
      pbVar11 = param_1;
      pbVar12 = (byte *)"-hostkey";
      do {
        if (lVar10 == 0) break;
        lVar10 = lVar10 + -1;
        uVar19 = *pbVar11 < *pbVar12;
        uVar17 = *pbVar11 == *pbVar12;
        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
      } while ((bool)uVar17);
      uVar5 = 2;
      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;
      if (bVar15) {
        iVar3 = FUN_00108083(2,param_1);
        if (iVar3 != 0) {
          return 2;
        }
        goto LAB_0010a103;
      }
    }
    else {
      lVar10 = 9;
      pbVar11 = param_1;
      pbVar12 = (byte *)"-hostkey";
      do {
        if (lVar10 == 0) break;
        lVar10 = lVar10 + -1;
        bVar15 = *pbVar11 < *pbVar12;
        bVar18 = *pbVar11 == *pbVar12;
        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
      } while (bVar18);
      uVar5 = 2;
      bVar15 = (!bVar15 && !bVar18) == bVar15;
      if (bVar15) goto LAB_00108738;
    }
LAB_0010884b:
    bVar18 = false;
    lVar10 = 3;
    pbVar11 = param_1;
    pbVar12 = &DAT_0013b2a9;
    do {
      if (lVar10 == 0) break;
      lVar10 = lVar10 + -1;
      bVar18 = *pbVar11 < *pbVar12;
      bVar15 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
    } while (bVar15);
    bVar15 = (!bVar18 && !bVar15) == bVar18;
    if (!bVar15) goto LAB_00108865;
    goto LAB_0010889d;
  }
  lVar10 = 9;
  pbVar11 = param_1;
  pbVar12 = (byte *)"-loghost";
  do {
    if (lVar10 == 0) break;
    lVar10 = lVar10 + -1;
    bVar16 = *pbVar11 < *pbVar12;
    bVar15 = *pbVar11 == *pbVar12;
    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
  } while (bVar15);
  bVar18 = false;
  bVar15 = (!bVar16 && !bVar15) == bVar16;
  if (bVar15) {
    if (param_2 == (char *)0x0) {
      return 0xfffffffe;
    }
    if (param_3 < 0) {
      return 2;
    }
    iVar3 = FUN_00108083(2,param_1);
    if (iVar3 != 0) {
      return 2;
    }
    uVar17 = param_3 == 0;
    if (!(bool)uVar17) {
      FUN_001080ad(param_1,param_2,0);
      return 2;
    }
    goto LAB_0010a0b4;
  }
  lVar10 = 9;
  pbVar11 = param_1;
  pbVar12 = (byte *)"-hostkey";
  do {
    if (lVar10 == 0) break;
    lVar10 = lVar10 + -1;
    bVar18 = *pbVar11 < *pbVar12;
    bVar15 = *pbVar11 == *pbVar12;
    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
  } while (bVar15);
  bVar15 = (!bVar18 && !bVar15) == bVar18;
  if (!bVar15) goto LAB_0010884b;
  if (param_2 == (char *)0x0) {
    return 0xfffffffe;
  }
  if (param_3 < 0) {
    return 2;
  }
LAB_00108738:
  iVar3 = FUN_00108083(2,param_1);
  if (iVar3 != 0) {
    return 2;
  }
  if (param_3 != 0) {
    FUN_001080ad(param_1,param_2,0);
    return 2;
  }
LAB_0010a103:
  uVar5 = FUN_0010bd5d(param_2);
  iVar3 = FUN_0010c8a8(uVar5);
  uVar17 = 0;
  uVar19 = iVar3 == 0;
  if ((bool)uVar19) {
    FUN_00134fb0("\'%s\' is not a valid format for a manual host key specification",param_2);
    FUN_0010c4d3(uVar5);
    return 2;
  }
  FUN_0010ade1(param_4,0xad,uVar5,&DAT_0013bec9);
  FUN_0010c4d3(uVar5);
  lVar10 = 3;
  pbVar11 = param_1;
  pbVar12 = &DAT_0013b2a9;
  do {
    if (lVar10 == 0) break;
    lVar10 = lVar10 + -1;
    uVar17 = *pbVar11 < *pbVar12;
    uVar19 = *pbVar11 == *pbVar12;
    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
  } while ((bool)uVar19);
  uVar5 = 2;
  bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;
  if (bVar15) {
    iVar3 = FUN_00108083(3,param_1);
    bVar15 = iVar3 == 0;
    if (!bVar15) {
      return 2;
    }
LAB_001088cd:
    bVar18 = false;
    lVar10 = 3;
    pbVar11 = param_1;
    pbVar12 = (byte *)0x1440f1;
    do {
      if (lVar10 == 0) break;
      lVar10 = lVar10 + -1;
      bVar18 = *pbVar11 < *pbVar12;
      bVar15 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
    } while (bVar15);
    uVar17 = 0;
    uVar19 = (!bVar18 && !bVar15) == bVar18;
    if ((bool)uVar19) {
      uVar5 = FUN_0010c2a6(&DAT_0013b2b6,param_2);
      uVar7 = FUN_0010bd5d("D");
    }
    else {
      bVar1 = param_1[1];
      pcVar6 = (char *)FUN_0010b8c9(param_2,0x3a);
      pcVar8 = pcVar6;
      if (pcVar6 == (char *)0x0) {
LAB_00108973:
        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);
        return 2;
      }
      do {
        pcVar14 = pcVar8;
        pcVar8 = pcVar6;
        pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);
      } while (pcVar6 != (char *)0x0);
      if (pcVar14 == (char *)0x0) goto LAB_00108973;
      uVar17 = pcVar14 < param_2;
      uVar19 = (long)pcVar14 - (long)param_2 == 0;
      uVar5 = FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2);
      uVar7 = FUN_0010bd5d(pcVar14 + 1);
    }
    FUN_0010ade1(param_4,0x9b,uVar5,uVar7);
    FUN_0010c4d3(uVar5);
    FUN_0010c4d3(uVar7);
    lVar10 = 4;
    pbVar11 = param_1;
    pbVar12 = &DAT_0013b2ba;
    do {
      if (lVar10 == 0) break;
      lVar10 = lVar10 + -1;
      uVar17 = *pbVar11 < *pbVar12;
      uVar19 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
    } while ((bool)uVar19);
    uVar5 = 2;
    bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;
    if (!bVar15) goto LAB_00108a01;
    iVar3 = FUN_00108083(3,param_1);
    if (iVar3 != 0) {
      return 2;
    }
LAB_00109fa5:
    lVar10 = FUN_0010b8c9(param_2,0x3a);
    if (lVar10 == 0) {
      FUN_00134fb0("-nc expects argument of form \'host:port\'");
      return 2;
    }
    uVar5 = FUN_0010c2a6(&DAT_0013b2b1,lVar10 - (long)param_2,param_2);
    FUN_0010ad3a(param_4,0x2e,uVar5);
    uVar9 = strtol((char *)(lVar10 + 1),(char **)0x0,10);
    FUN_0010ac09(param_4,0x2f,uVar9 & 0xffffffff);
    FUN_0010c4d3(uVar5);
    iVar3 = strcmp((char *)param_1,"-m");
    uVar5 = 2;
    bVar15 = iVar3 == 0;
    if (!bVar15) goto LAB_0010a032;
    iVar3 = FUN_00108083(3,param_1);
    if (iVar3 != 0) {
      return 2;
    }
LAB_00109f54:
    __stream = fopen64(param_2,"r");
    if (__stream == (FILE *)0x0) {
      FUN_00134fb0("unable to open command file \"%s\"",param_2);
      return 2;
    }
    lVar13 = 0;
    local_3c = 0;
    lVar10 = 0;
    while( true ) {
      iVar4 = (int)lVar13;
      iVar3 = fgetc(__stream);
      if (iVar3 == -1) break;
      local_48._0_1_ = (undefined1)iVar3;
      if (iVar4 < local_3c) {
        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;
      }
      else {
        local_3c = iVar4 + 0x200;
        lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);
        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;
      }
      lVar13 = lVar13 + 1;
    }
    if (iVar4 < local_3c) {
      *(undefined1 *)(lVar10 + iVar4) = 0;
    }
    else {
      lVar10 = FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1);
      *(undefined1 *)(lVar10 + lVar13) = 0;
    }
    fclose(__stream);
    FUN_0010ad3a(param_4,0x14,lVar10);
    FUN_0010ad3a(param_4,0x15,&DAT_0013bec9);
    FUN_0010ac09(param_4,0x16,1);
    FUN_0010c4d3(lVar10);
    iVar3 = strcmp((char *)param_1,"-P");
    uVar5 = 2;
    if (iVar3 == 0) {
      iVar3 = FUN_00108083(2,param_1);
      if (iVar3 != 0) {
        return 2;
      }
      goto LAB_00109749;
    }
LAB_00108afa:
    iVar3 = strcmp((char *)param_1,"-pw");
    if (iVar3 == 0) {
      if (param_2 == (char *)0x0) {
        return 0xfffffffe;
      }
      if (param_3 < 0) {
        return 2;
      }
      iVar3 = FUN_00108083(2,param_1);
      if (iVar3 != 0) {
        return 2;
      }
      if (param_3 != 0) {
        FUN_001080ad(param_1,param_2,1);
        return 2;
      }
      goto LAB_00109ee5;
    }
    iVar3 = strcmp((char *)param_1,"-agent");
    if (iVar3 != 0) goto LAB_00108ba4;
LAB_00108bce:
    if (param_3 < 0) {
      return 1;
    }
LAB_00108bdc:
    iVar3 = FUN_00108083(2,param_1);
    if (iVar3 != 0) {
      return 1;
    }
    if (param_3 != 0) {
      FUN_001080ad(param_1,param_2,0);
      return 1;
    }
LAB_00108bf9:
    FUN_0010ac09(param_4,0x1c,1);
    iVar3 = strcmp((char *)param_1,"-noagent");
    if (iVar3 == 0) {
      iVar3 = FUN_00108083(2,param_1);
      if (iVar3 != 0) {
        return 1;
      }
      goto LAB_00108c37;
    }
    iVar3 = strcmp((char *)param_1,"-nopagent");
    uVar5 = 1;
    if (iVar3 == 0) goto LAB_00109e76;
LAB_00108d1b:
    iVar3 = strcmp((char *)param_1,"-nopageant");
    if (iVar3 == 0) goto LAB_00108d2e;
    iVar3 = strcmp((char *)param_1,"-A");
    if (iVar3 != 0) {
      iVar3 = strcmp((char *)param_1,"-a");
      if (iVar3 != 0) goto LAB_00108c7d;
      if (param_3 < 0) {
        return 1;
      }
      goto LAB_00108db9;
    }
    if (param_3 < 0) {
      return 1;
    }
    iVar3 = FUN_00108083(3,param_1);
    if (iVar3 != 0) {
      return 1;
    }
    if (param_3 != 0) {
      FUN_001080ad(param_1,param_2,0);
      return 1;
    }
LAB_00109d88:
    FUN_0010ac09(param_4,0x1d,1);
    iVar3 = strcmp((char *)param_1,"-a");
    if (iVar3 == 0) {
      iVar3 = FUN_00108083(3,param_1);
      if (iVar3 != 0) {
        return 1;
      }
      goto LAB_00109d25;
    }
    iVar3 = strcmp((char *)param_1,"-X");
    uVar5 = 1;
    if (iVar3 == 0) {
LAB_00108ca2:
      iVar3 = FUN_00108083(3,param_1);
      if (iVar3 != 0) {
        return 1;
      }
      if (param_3 != 0) {
        FUN_001080ad(param_1,param_2,0);
        return 1;
      }
      goto LAB_00109c0f;
    }
LAB_00109dce:
    iVar3 = strcmp((char *)param_1,"-x");
    if (iVar3 != 0) goto LAB_00109de5;
    if (param_3 < 0) {
      return 1;
    }
LAB_00108dff:
    iVar3 = FUN_00108083(3,param_1);
    if (iVar3 != 0) {
      return 1;
    }
    if (param_3 != 0) {
      FUN_001080ad(param_1,param_2,0);
      return 1;
    }
LAB_00109c49:
    FUN_0010ac09(param_4,0x95,0);
    iVar3 = strcmp((char *)param_1,"-t");
    if (iVar3 == 0) {
      iVar3 = FUN_00108083(3,param_1);
      if (iVar3 != 0) {
        return 1;
      }
LAB_00109c87:
      FUN_0010ac09(param_4,0x16,0);
      iVar3 = strcmp((char *)param_1,"-T");
      if (iVar3 == 0) {
        iVar3 = FUN_00108083(3,param_1);
        if (iVar3 != 0) {
          return 1;
        }
        goto LAB_00109cc5;
      }
      iVar3 = strcmp((char *)param_1,"-N");
      uVar5 = 1;
      if (iVar3 == 0) goto LAB_00109ba0;
    }
    else {
      iVar3 = strcmp((char *)param_1,"-T");
      uVar5 = 1;
      if (iVar3 == 0) goto LAB_00109e21;
LAB_00109b7b:
      iVar3 = strcmp((char *)param_1,"-N");
      if (iVar3 == 0) {
        if (param_3 < 0) {
          return 1;
        }
LAB_00109ba0:
        iVar3 = FUN_00108083(3,param_1);
        if (iVar3 != 0) {
          return 1;
        }
        if (param_3 != 0) {
          FUN_001080ad(param_1,param_2,0);
          return 1;
        }
        goto LAB_00109a6e;
      }
    }
    iVar3 = strcmp((char *)param_1,"-C");
    if (iVar3 == 0) {
      if (param_3 < 0) {
        return 1;
      }
LAB_00108e8b:
      iVar3 = FUN_00108083(2,param_1);
      if (iVar3 != 0) {
        return 1;
      }
      if (param_3 != 0) {
        FUN_001080ad(param_1,param_2,0);
        return 1;
      }
LAB_0010989e:
      FUN_0010ac09(param_4,0x17,1);
      iVar3 = strcmp((char *)param_1,"-1");
      if (iVar3 == 0) {
        iVar3 = FUN_00108083(2,param_1);
        if (iVar3 != 0) {
          return 1;
        }
        goto LAB_001098d8;
      }
      iVar3 = strcmp((char *)param_1,"-2");
      uVar5 = 1;
      if (iVar3 != 0) goto LAB_00109930;
      goto LAB_00109b26;
    }
LAB_00109aea:
    iVar3 = strcmp((char *)param_1,"-1");
    if (iVar3 != 0) goto LAB_00109b01;
    if (param_3 < 0) {
      return 1;
    }
LAB_00108ed1:
    iVar3 = FUN_00108083(2,param_1);
    if (iVar3 != 0) {
      return 1;
    }
    if (param_3 != 0) {
      FUN_001080ad(param_1,param_2,0);
      return 1;
    }
LAB_001098d8:
    FUN_0010ac09(param_4,0x21,0);
    iVar3 = strcmp((char *)param_1,"-2");
    uVar5 = 1;
    if (iVar3 != 0) goto LAB_00109930;
    iVar3 = FUN_00108083(2,param_1);
    if (iVar3 != 0) {
      return 1;
    }
LAB_00109918:
    FUN_0010ac09(param_4,0x21,3);
    uVar5 = 1;
  }
  else {
LAB_00108865:
    bVar18 = false;
    lVar10 = 3;
    pbVar11 = param_1;
    pbVar12 = &DAT_0013b2ac;
    do {
      if (lVar10 == 0) break;
      lVar10 = lVar10 + -1;
      bVar18 = *pbVar11 < *pbVar12;
      bVar15 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
    } while (bVar15);
    bVar16 = false;
    bVar15 = (!bVar18 && !bVar15) == bVar18;
    if (bVar15) {
LAB_0010889d:
      if (param_2 == (char *)0x0) {
        return 0xfffffffe;
      }
      if (param_3 < 0) {
        return 2;
      }
      iVar3 = FUN_00108083(3,param_1);
      if (iVar3 != 0) {
        return 2;
      }
      bVar15 = param_3 == 0;
      if (!bVar15) {
        FUN_001080ad(param_1,param_2,0);
        return 2;
      }
      goto LAB_001088cd;
    }
    lVar10 = 3;
    pbVar11 = param_1;
    pbVar12 = (byte *)0x1440f1;
    do {
      if (lVar10 == 0) break;
      lVar10 = lVar10 + -1;
      bVar16 = *pbVar11 < *pbVar12;
      bVar15 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
    } while (bVar15);
    if ((!bVar16 && !bVar15) == bVar16) goto LAB_0010889d;
    iVar3 = strcmp((char *)param_1,"-nc");
    bVar15 = iVar3 == 0;
    if (bVar15) {
      if (param_2 == (char *)0x0) {
        return 0xfffffffe;
      }
      if (param_3 < 0) {
        return 2;
      }
      iVar3 = FUN_00108083(3,param_1);
      if (iVar3 != 0) {
        return 2;
      }
      if (param_3 != 0) {
        FUN_001080ad(param_1,param_2,0);
        return 2;
      }
      goto LAB_00109fa5;
    }
LAB_00108a01:
    bVar18 = false;
    lVar10 = 3;
    pbVar11 = param_1;
    pbVar12 = &DAT_0013b2be;
    do {
      if (lVar10 == 0) break;
      lVar10 = lVar10 + -1;
      bVar18 = *pbVar11 < *pbVar12;
      bVar15 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
    } while (bVar15);
    bVar15 = (!bVar18 && !bVar15) == bVar18;
    if (bVar15) {
      if (param_2 == (char *)0x0) {
        return 0xfffffffe;
      }
      if (param_3 < 0) {
        return 2;
      }
      iVar3 = FUN_00108083(3,param_1);
      if (iVar3 != 0) {
        return 2;
      }
      if (param_3 != 0) {
        FUN_001080ad(param_1,param_2,0);
        return 2;
      }
      goto LAB_00109f54;
    }
LAB_0010a032:
    bVar18 = false;
    lVar10 = 3;
    pbVar11 = param_1;
    pbVar12 = &DAT_0013b2c1;
    do {
      if (lVar10 == 0) break;
      lVar10 = lVar10 + -1;
      bVar18 = *pbVar11 < *pbVar12;
      bVar15 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
    } while (bVar15);
    if ((!bVar18 && !bVar15) != bVar18) goto LAB_00108afa;
    if (param_2 == (char *)0x0) {
      return 0xfffffffe;
    }
    if (param_3 < 0) {
      return 2;
    }
    iVar3 = FUN_00108083(2,param_1);
    if (iVar3 != 0) {
      return 2;
    }
    if (param_3 != 0) {
      FUN_001080ad(param_1,param_2,1);
      return 2;
    }
LAB_00109749:
    uVar9 = strtol(param_2,(char **)0x0,10);
    FUN_0010ac09(param_4,1,uVar9 & 0xffffffff);
    iVar3 = strcmp((char *)param_1,"-pw");
    if (iVar3 == 0) {
      iVar3 = FUN_00108083(2,param_1);
      if (iVar3 != 0) {
        return 2;
      }
LAB_00109ee5:
      iVar3 = FUN_0010a543(param_4,2);
      if (iVar3 == 3) {
        DAT_00152128 = FUN_0010bd5d(param_2);
        uVar9 = 0xffffffffffffffff;
        pcVar6 = param_2;
        do {
          if (uVar9 == 0) break;
          uVar9 = uVar9 - 1;
          cVar2 = *pcVar6;
          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;
        } while (cVar2 != '\0');
        FUN_0010c727(param_2,~uVar9 - 1);
      }
      else {
        FUN_00134fb0("the -pw option can only be used with the SSH protocol");
      }
      iVar3 = strcmp((char *)param_1,"-agent");
      if (iVar3 != 0) {
        iVar3 = strcmp((char *)param_1,"-pagent");
        uVar5 = 2;
        if (iVar3 != 0) goto LAB_00108bb7;
        goto LAB_00108bdc;
      }
      iVar3 = FUN_00108083(2,param_1);
      if (iVar3 != 0) {
        return 1;
      }
      goto LAB_00108bf9;
    }
    iVar3 = strcmp((char *)param_1,"-agent");
    uVar5 = 2;
    if (iVar3 == 0) goto LAB_00108bdc;
LAB_00108ba4:
    iVar3 = strcmp((char *)param_1,"-pagent");
    if (iVar3 == 0) goto LAB_00108bce;
LAB_00108bb7:
    iVar3 = strcmp((char *)param_1,"-pageant");
    if (iVar3 == 0) goto LAB_00108bce;
    iVar3 = strcmp((char *)param_1,"-noagent");
    if ((iVar3 != 0) && (iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0))
    goto LAB_00108d1b;
LAB_00108d2e:
    if (param_3 < 0) {
      return 1;
    }
LAB_00109e76:
    iVar3 = FUN_00108083(2,param_1);
    if (iVar3 != 0) {
      return 1;
    }
    if (param_3 != 0) {
      FUN_001080ad(param_1,param_2,0);
      return 1;
    }
LAB_00108c37:
    FUN_0010ac09(param_4,0x1c,0);
    iVar3 = strcmp((char *)param_1,"-A");
    if (iVar3 == 0) {
      iVar3 = FUN_00108083(3,param_1);
      if (iVar3 != 0) {
        return 1;
      }
      goto LAB_00109d88;
    }
    iVar3 = strcmp((char *)param_1,"-a");
    if (iVar3 != 0) {
      uVar5 = 1;
LAB_00108c7d:
      iVar3 = strcmp((char *)param_1,"-X");
      if (iVar3 != 0) goto LAB_00109dce;
      if (param_3 < 0) {
        return 1;
      }
      goto LAB_00108ca2;
    }
LAB_00108db9:
    iVar3 = FUN_00108083(3,param_1);
    if (iVar3 != 0) {
      return 1;
    }
    if (param_3 != 0) {
      FUN_001080ad(param_1,param_2,0);
      return 1;
    }
LAB_00109d25:
    FUN_0010ac09(param_4,0x1d,0);
    iVar3 = strcmp((char *)param_1,"-X");
    if (iVar3 == 0) {
      iVar3 = FUN_00108083(3,param_1);
      if (iVar3 != 0) {
        return 1;
      }
LAB_00109c0f:
      FUN_0010ac09(param_4,0x95,1);
      iVar3 = strcmp((char *)param_1,"-x");
      if (iVar3 == 0) {
        iVar3 = FUN_00108083(3,param_1);
        if (iVar3 != 0) {
          return 1;
        }
        goto LAB_00109c49;
      }
      iVar3 = strcmp((char *)param_1,"-t");
      uVar5 = 1;
      if (iVar3 != 0) goto LAB_00109dfc;
LAB_00108e45:
      iVar3 = FUN_00108083(3,param_1);
      if (iVar3 != 0) {
        return 1;
      }
      if (param_3 != 0) {
        FUN_001080ad(param_1,param_2,1);
        return 1;
      }
      goto LAB_00109c87;
    }
    iVar3 = strcmp((char *)param_1,"-x");
    uVar5 = 1;
    if (iVar3 == 0) goto LAB_00108dff;
LAB_00109de5:
    iVar3 = strcmp((char *)param_1,"-t");
    if (iVar3 == 0) {
      if (param_3 < 0) {
        return 1;
      }
      goto LAB_00108e45;
    }
LAB_00109dfc:
    iVar3 = strcmp((char *)param_1,"-T");
    if (iVar3 != 0) goto LAB_00109b7b;
    if (param_3 < 0) {
      return 1;
    }
LAB_00109e21:
    iVar3 = FUN_00108083(3,param_1);
    if (iVar3 != 0) {
      return 1;
    }
    if (param_3 != 0) {
      FUN_001080ad(param_1,param_2,1);
      return 1;
    }
LAB_00109cc5:
    FUN_0010ac09(param_4,0x16,1);
    iVar3 = strcmp((char *)param_1,"-N");
    if (iVar3 != 0) {
      iVar3 = strcmp((char *)param_1,"-C");
      uVar5 = 1;
      if (iVar3 == 0) goto LAB_00108e8b;
      goto LAB_00109aea;
    }
    iVar3 = FUN_00108083(3,param_1);
    if (iVar3 != 0) {
      return 1;
    }
LAB_00109a6e:
    FUN_0010ac09(param_4,0x2d,1);
    iVar3 = strcmp((char *)param_1,"-C");
    if (iVar3 == 0) {
      iVar3 = FUN_00108083(2,param_1);
      if (iVar3 != 0) {
        return 1;
      }
      goto LAB_0010989e;
    }
    iVar3 = strcmp((char *)param_1,"-1");
    uVar5 = 1;
    if (iVar3 == 0) goto LAB_00108ed1;
LAB_00109b01:
    iVar3 = strcmp((char *)param_1,"-2");
    if (iVar3 == 0) {
      if (param_3 < 0) {
        return 1;
      }
LAB_00109b26:
      iVar3 = FUN_00108083(2,param_1);
      if (iVar3 != 0) {
        return 1;
      }
      if (param_3 != 0) {
        FUN_001080ad(param_1,param_2,0);
        return 1;
      }
      goto LAB_00109918;
    }
  }
LAB_00109930:
  iVar3 = strcmp((char *)param_1,"-i");
  if (iVar3 == 0) {
    if (param_2 == (char *)0x0) {
      return 0xfffffffe;
    }
    if (param_3 < 0) {
      return 2;
    }
    iVar3 = FUN_00108083(2,param_1);
    if (iVar3 != 0) {
      return 2;
    }
    if (param_3 != 0) {
      FUN_001080ad(param_1,param_2,0);
      return 2;
    }
    uVar5 = FUN_001321a4(param_2);
    FUN_0010af59(param_4,0x20,uVar5);
    FUN_00132212(uVar5);
    iVar3 = strcmp((char *)param_1,"-4");
    if (iVar3 != 0) {
      iVar3 = strcmp((char *)param_1,"-ipv4");
      uVar5 = 2;
      if (iVar3 != 0) goto LAB_00109814;
    }
LAB_001099af:
    FUN_0010ac09(param_4,3,1);
    iVar3 = strcmp((char *)param_1,"-6");
    uVar5 = 1;
    if (iVar3 == 0) goto LAB_001099de;
LAB_00109827:
    iVar3 = strcmp((char *)param_1,"-ipv6");
    if (iVar3 == 0) goto LAB_0010983e;
  }
  else {
    iVar3 = strcmp((char *)param_1,"-4");
    if ((iVar3 == 0) || (iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0)) {
      if (param_3 < 0) {
        return 1;
      }
      if (param_3 != 0) {
        FUN_001080ad(param_1,param_2,1);
        return 1;
      }
      goto LAB_001099af;
    }
LAB_00109814:
    iVar3 = strcmp((char *)param_1,"-6");
    if (iVar3 != 0) goto LAB_00109827;
LAB_0010983e:
    if (param_3 < 0) {
      return 1;
    }
    if (param_3 != 0) {
      FUN_001080ad(param_1,param_2,1);
      return 1;
    }
LAB_001099de:
    FUN_0010ac09(param_4,3,2);
    uVar5 = 1;
  }
  iVar3 = strcmp((char *)param_1,"-sercfg");
  if (iVar3 == 0) {
    if (param_2 == (char *)0x0) {
      return 0xfffffffe;
    }
    if (param_3 < 0) {
      return 2;
    }
    iVar3 = FUN_00108083(3,param_1);
    if (iVar3 != 0) {
      return 2;
    }
    if (param_3 != 0) {
      FUN_001080ad(param_1,param_2,1);
      return 2;
    }
    iVar3 = FUN_0010a543(param_4,2);
    pcVar6 = param_2;
    if (iVar3 != 4) {
      FUN_00134fb0("the -sercfg option can only be used with the serial protocol");
    }
    for (; *pcVar6 != '\0'; pcVar6 = pcVar6 + (local_48 + iVar3)) {
      pcVar8 = strchr(pcVar6,0x2c);
      if (pcVar8 == (char *)0x0) {
        lVar10 = -1;
        pcVar8 = pcVar6;
        do {
          if (lVar10 == 0) break;
          lVar10 = lVar10 + -1;
          cVar2 = *pcVar8;
          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;
        } while (cVar2 != '\0');
        iVar3 = ~(uint)lVar10 - 1;
        local_48 = 0;
      }
      else {
        iVar3 = (int)pcVar8 - (int)pcVar6;
        pcVar6[iVar3] = '\0';
        local_48 = 1;
      }
      if (iVar3 == 1) {
        cVar2 = *pcVar6;
        switch(cVar2) {
        case '1':
        case '2':
          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);
          break;
        default:
          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");
          break;
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':
          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);
          break;
        case 'D':
          FUN_0010ac09(param_4,0x3e,3);
          break;
        case 'N':
          FUN_0010ac09(param_4,0x3e,0);
          break;
        case 'R':
          FUN_0010ac09(param_4,0x3e,2);
          break;
        case 'X':
          FUN_0010ac09(param_4,0x3e,1);
          break;
        case 'e':
          FUN_0010ac09(param_4,0x3d,2);
          break;
        case 'm':
          FUN_0010ac09(param_4,0x3d,3);
          break;
        case 'n':
          FUN_0010ac09(param_4,0x3d,0);
          break;
        case 'o':
          FUN_0010ac09(param_4,0x3d,1);
          break;
        case 's':
          FUN_0010ac09(param_4,0x3d,4);
        }
      }
      else if ((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)) {
        FUN_0010ac09(param_4,0x3c,3);
      }
      else {
        uVar9 = strtol(pcVar6,(char **)0x0,10);
        if ((int)uVar9 == 0) {
          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);
        }
        else {
          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);
        }
      }
    }
    iVar3 = strcmp((char *)param_1,"-sessionlog");
    if (iVar3 != 0) {
      iVar3 = strcmp((char *)param_1,"-sshlog");
      uVar5 = 2;
      if (iVar3 != 0) goto LAB_0010921f;
      goto LAB_0010924d;
    }
    iVar3 = FUN_00108083(1,param_1);
    if (iVar3 != 0) {
      return 2;
    }
LAB_001095f3:
    uVar5 = FUN_001321a4(param_2);
    FUN_0010af59(param_4,0x77,uVar5);
    FUN_0010ac09(param_4,0x78,2);
    FUN_00132212(uVar5);
    iVar3 = strcmp((char *)param_1,"-sshlog");
    uVar5 = 2;
    if (iVar3 != 0) {
LAB_0010921f:
      iVar3 = strcmp((char *)param_1,"-sshrawlog");
      if (iVar3 != 0) {
        iVar3 = strcmp((char *)param_1,"-proxycmd");
        if (iVar3 != 0) {
          return uVar5;
        }
        if (param_2 == (char *)0x0) {
          return 0xfffffffe;
        }
        if (param_3 < 0) {
          return 2;
        }
        iVar3 = FUN_00108083(2,param_1);
        if (iVar3 != 0) {
          return 2;
        }
        if (param_3 != 0) {
          FUN_001080ad(param_1,param_2,0);
          return 2;
        }
        goto LAB_001092e3;
      }
      goto LAB_00109236;
    }
    iVar3 = FUN_00108083(2,param_1);
    if (iVar3 != 0) {
      return 2;
    }
  }
  else {
    iVar3 = strcmp((char *)param_1,"-sessionlog");
    if (iVar3 == 0) {
      if (param_2 == (char *)0x0) {
        return 0xfffffffe;
      }
      if (param_3 < 0) {
        return 2;
      }
      iVar3 = FUN_00108083(1,param_1);
      if (iVar3 != 0) {
        return 2;
      }
      if (param_3 != 0) {
        FUN_001080ad(param_1,param_2,0);
        return 2;
      }
      goto LAB_001095f3;
    }
    iVar3 = strcmp((char *)param_1,"-sshlog");
    if (iVar3 != 0) goto LAB_0010921f;
LAB_00109236:
    if (param_2 == (char *)0x0) {
      return 0xfffffffe;
    }
    if (param_3 < 0) {
      return 2;
    }
LAB_0010924d:
    iVar3 = FUN_00108083(2,param_1);
    if (iVar3 != 0) {
      return 2;
    }
    if (param_3 != 0) {
      FUN_001080ad(param_1,param_2,0);
      return 2;
    }
  }
  uVar5 = FUN_001321a4(param_2);
  FUN_0010af59(param_4,0x77,uVar5);
  iVar3 = strcmp((char *)param_1,"-sshlog");
  FUN_0010ac09(param_4,0x78,4 - (uint)(iVar3 == 0));
  FUN_00132212(uVar5);
  iVar3 = strcmp((char *)param_1,"-proxycmd");
  if (iVar3 != 0) {
    return 2;
  }
  iVar3 = FUN_00108083(2,param_1);
  if (iVar3 != 0) {
    return 2;
  }
LAB_001092e3:
  FUN_0010ac09(param_4,0xd,5);
  FUN_0010ad3a(param_4,0x12,param_2);
  return 2;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x28
MOV RBX,RDI
MOV R12,RSI
MOV EBP,EDX
MOV R13,RCX
MOV ECX,0x6
LEA RDI,[0x13b26c]
MOV RSI,RBX
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x0010831e
TEST R12,R12
JZ 0x0010938b
MOV R14D,0x2
TEST EDX,EDX
JNS 0x001082f8
MOV EAX,R14D
ADD RSP,0x28
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RSI,R13
MOV RDI,R12
CALL 0x00116e22
MOV dword ptr [0x00152558],0x1
MOV RDI,R12
CALL 0x0010bd5d
MOV qword ptr [0x00152560],RAX
JMP 0x001082e6
MOV ECX,0x5
LEA RDI,[0x13b272]
MOV RSI,RBX
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x001083b0
MOV R14D,0x1
TEST EDX,EDX
JS 0x001082e6
MOV RSI,RBX
MOV EDI,0x3
CALL 0x00108083
TEST EAX,EAX
JNZ 0x001082e6
TEST EBP,EBP
JZ 0x0010836c
MOV EDX,0x0
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
JMP 0x001082e6
MOV dword ptr [0x00152538],0x3
MOV dword ptr [0x00152548],0x16
MOV EDX,0x3
MOV ESI,0x2
MOV RDI,R13
CALL 0x0010ac09
MOV EDX,dword ptr [0x00152548]
MOV ESI,0x1
MOV RDI,R13
CALL 0x0010ac09
MOV R14D,0x1
JMP 0x001082e6
MOV ECX,0x8
LEA RDI,[0x13b277]
MOV RSI,RBX
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x0010844e
MOV R14D,0x1
TEST EDX,EDX
JS 0x001082e6
MOV RSI,RBX
MOV EDI,0x3
CALL 0x00108083
TEST EAX,EAX
JNZ 0x001082e6
TEST EBP,EBP
JZ 0x0010840a
MOV EDX,0x0
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
JMP 0x001082e6
MOV dword ptr [0x00152538],0x1
MOV dword ptr [0x00152548],0x17
MOV EDX,0x1
MOV ESI,0x2
MOV RDI,R13
CALL 0x0010ac09
MOV EDX,dword ptr [0x00152548]
MOV ESI,0x1
MOV RDI,R13
CALL 0x0010ac09
MOV R14D,0x1
JMP 0x001082e6
MOV ECX,0x8
LEA RDI,[0x13b27f]
MOV RSI,RBX
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x001084ec
MOV R14D,0x1
TEST EDX,EDX
JS 0x001082e6
MOV RSI,RBX
MOV EDI,0x3
CALL 0x00108083
TEST EAX,EAX
JNZ 0x001082e6
TEST EBP,EBP
JZ 0x001084a8
MOV EDX,0x0
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
JMP 0x001082e6
MOV dword ptr [0x00152538],0x2
MOV dword ptr [0x00152548],0x201
MOV EDX,0x2
MOV ESI,0x2
MOV RDI,R13
CALL 0x0010ac09
MOV EDX,dword ptr [0x00152548]
MOV ESI,0x1
MOV RDI,R13
CALL 0x0010ac09
MOV R14D,0x1
JMP 0x001082e6
MOV ECX,0x5
LEA RDI,[0x13b287]
MOV RSI,RBX
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00108601
MOV R14D,0x1
TEST EDX,EDX
JS 0x001082e6
MOV RSI,RBX
MOV EDI,0x3
CALL 0x00108083
TEST EAX,EAX
JNZ 0x001082e6
TEST EBP,EBP
JNZ 0x001085ec
MOV dword ptr [0x00152538],0x0
MOV EDX,0x0
MOV ESI,0x2
MOV RDI,R13
CALL 0x0010ac09
MOV ECX,0x8
LEA RDI,[0x13b28c]
MOV RSI,RBX
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x0010a181
MOV RSI,RBX
MOV EDI,0x3
CALL 0x00108083
MOV R14D,0x1
TEST EAX,EAX
JNZ 0x001082e6
MOV dword ptr [0x00152538],0x4
MOV EDX,0x4
MOV ESI,0x2
MOV RDI,R13
CALL 0x0010ac09
MOV ESI,0x0
MOV RDI,R13
CALL 0x0010a6d3
MOV RDX,RAX
MOV ESI,0x39
MOV RDI,R13
CALL 0x0010ad3a
MOV ECX,0x3
LEA RDI,[0x13b294]
MOV RSI,RBX
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
MOV R14D,0x1
TEST AL,AL
JNZ 0x00108694
JMP 0x00108687
MOV EDX,0x0
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
JMP 0x001082e6
MOV ECX,0x8
LEA RDI,[0x13b28c]
MOV RSI,RBX
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x0010865b
MOV R14D,0x1
TEST EDX,EDX
JS 0x001082e6
MOV RSI,RBX
MOV EDI,0x3
CALL 0x00108083
TEST EAX,EAX
JNZ 0x001082e6
TEST EBP,EBP
JZ 0x0010858a
MOV EDX,0x0
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
JMP 0x001082e6
MOV ECX,0x3
LEA RDI,[0x13b294]
MOV RSI,RBX
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00108770
MOV R14D,0x1
TEST EDX,EDX
JS 0x001082e6
OR dword ptr [0x0015254c],0x1
MOV R14D,0x1
MOV ECX,0x3
LEA RDI,[0x1440df]
MOV RSI,RBX
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00108790
TEST R12,R12
JZ 0x00109396
MOV R14D,0x2
TEST EBP,EBP
JS 0x001082e6
MOV RSI,RBX
MOV EDI,0x2
CALL 0x00108083
TEST EAX,EAX
JNZ 0x001082e6
TEST EBP,EBP
JNZ 0x0010877b
MOV RDX,R12
MOV ESI,0x34
MOV RDI,R13
CALL 0x0010ad3a
MOV ECX,0x9
LEA RDI,[0x13b297]
MOV RSI,RBX
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0010a099
MOV ECX,0x9
LEA RDI,[0x13b2a0]
MOV RSI,RBX
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
MOV R14D,0x2
TEST AL,AL
JNZ 0x0010884b
MOV RSI,RBX
MOV EDI,0x2
CALL 0x00108083
MOV R14D,0x2
TEST EAX,EAX
JNZ 0x001082e6
TEST EBP,EBP
JZ 0x0010a103
MOV EDX,0x0
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
JMP 0x001082e6
MOV R14D,0x0
JMP 0x00108694
MOV EDX,0x0
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
JMP 0x001082e6
MOV ECX,0x9
LEA RDI,[0x13b297]
MOV RSI,RBX
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x001087f3
TEST R12,R12
JZ 0x001093a1
MOV R14D,0x2
TEST EBP,EBP
JS 0x001082e6
MOV RSI,RBX
MOV EDI,0x2
CALL 0x00108083
TEST EAX,EAX
JNZ 0x001082e6
TEST EBP,EBP
JZ 0x0010a0b4
MOV EDX,0x0
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
JMP 0x001082e6
MOV ECX,0x9
LEA RDI,[0x13b2a0]
MOV RSI,RBX
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x0010884b
TEST R12,R12
JZ 0x001093ac
MOV R14D,0x2
TEST EBP,EBP
JS 0x001082e6
JMP 0x00108738
MOV RSI,R12
LEA RDI,[0x13b0e0]
CALL 0x00134fb0
MOV RDI,R14
CALL 0x0010c4d3
MOV R14D,0x2
JMP 0x001082e6
MOV ECX,0x3
LEA RDI,[0x13b2a9]
MOV RSI,RBX
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0010889d
MOV ECX,0x3
LEA RDI,[0x13b2ac]
MOV RSI,RBX
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0010889d
MOV ECX,0x3
LEA RDI,[0x1440f1]
MOV RSI,RBX
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00108a68
TEST R12,R12
JZ 0x001093b7
MOV R14D,0x2
TEST EBP,EBP
JS 0x001082e6
MOV RSI,RBX
MOV EDI,0x3
CALL 0x00108083
TEST EAX,EAX
JNZ 0x001082e6
TEST EBP,EBP
JNZ 0x0010890d
MOV ECX,0x3
LEA RDI,[0x1440f1]
MOV RSI,RBX
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00108994
MOVZX EAX,byte ptr [RBX + 0x1]
MOV byte ptr [RSP + 0x10],AL
MOV ESI,0x3a
MOV RDI,R12
CALL 0x0010b8c9
MOV R15,RAX
TEST RAX,RAX
JZ 0x00108973
MOV R14,RAX
JMP 0x00108925
MOV EDX,0x0
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
JMP 0x001082e6
MOV R15,RDX
LEA RDI,[R14 + 0x1]
MOV ESI,0x3a
CALL 0x0010b8c9
MOV RDX,R14
MOV R14,RAX
TEST RAX,RAX
JNZ 0x00108922
TEST R15,R15
JZ 0x00108973
MOV RDX,R15
SUB RDX,R12
MOVSX ESI,byte ptr [RSP + 0x10]
MOV RCX,R12
LEA RDI,[0x13b2af]
MOV EAX,0x0
CALL 0x0010c2a6
MOV R14,RAX
LEA RDI,[R15 + 0x1]
CALL 0x0010bd5d
MOV R15,RAX
JMP 0x001089ba
MOVSX ESI,byte ptr [RSP + 0x10]
LEA RDI,[0x13b120]
MOV EAX,0x0
CALL 0x00134fb0
MOV R14D,0x2
JMP 0x001082e6
MOV RSI,R12
LEA RDI,[0x13b2b6]
MOV EAX,0x0
CALL 0x0010c2a6
MOV R14,RAX
LEA RDI,[0x1440f2]
CALL 0x0010bd5d
MOV R15,RAX
MOV RCX,R15
MOV RDX,R14
MOV ESI,0x9b
MOV RDI,R13
CALL 0x0010ade1
MOV RDI,R14
CALL 0x0010c4d3
MOV RDI,R15
CALL 0x0010c4d3
MOV ECX,0x4
LEA RDI,[0x13b2ba]
MOV RSI,RBX
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
MOV R14D,0x2
TEST AL,AL
JZ 0x00109f8a
MOV ECX,0x3
LEA RDI,[0x13b2be]
MOV RSI,RBX
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x0010a032
TEST R12,R12
JZ 0x001093d8
MOV R14D,0x2
TEST EBP,EBP
JS 0x001082e6
MOV RSI,RBX
MOV EDI,0x3
CALL 0x00108083
TEST EAX,EAX
JNZ 0x001093e3
TEST EBP,EBP
JZ 0x00109f54
MOV EDX,0x0
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
JMP 0x001082e6
LEA RSI,[0x13b2ba]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JNZ 0x00108a01
TEST R12,R12
JZ 0x001093c2
MOV R14D,0x2
TEST EBP,EBP
JS 0x001082e6
MOV RSI,RBX
MOV EDI,0x3
CALL 0x00108083
TEST EAX,EAX
JNZ 0x001093cd
TEST EBP,EBP
JZ 0x00109fa5
MOV EDX,0x0
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
JMP 0x001082e6
LEA RDI,[0x13b150]
MOV EAX,0x0
CALL 0x00134fb0
MOV R14D,0x2
JMP 0x001082e6
MOV RSI,R12
LEA RDI,[0x13b180]
CALL 0x00134fb0
MOV R14D,0x2
JMP 0x001082e6
LEA RSI,[0x13b2c4]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JNZ 0x00108b91
TEST R12,R12
JZ 0x00109404
MOV R14D,0x2
TEST EBP,EBP
JS 0x001082e6
MOV RSI,RBX
MOV EDI,0x2
CALL 0x00108083
TEST EAX,EAX
JNZ 0x0010940f
TEST EBP,EBP
JZ 0x00109ee5
MOV EDX,0x1
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
JMP 0x001082e6
MOV RDI,R12
CALL 0x0010bd5d
MOV qword ptr [0x00152128],RAX
MOV RCX,-0x1
MOV EAX,0x0
MOV RDI,R12
SCASB.REPNE RDI
MOV RAX,RCX
NOT RAX
LEA RSI,[RAX + -0x1]
MOV RDI,R12
CALL 0x0010c727
JMP 0x00109f0c
LEA RSI,[0x13b2c8]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JZ 0x00108bce
LEA RSI,[0x13b2cf]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JZ 0x00108bce
LEA RSI,[0x13b2d7]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JNZ 0x00108cf5
MOV R14D,0x1
TEST EBP,EBP
JS 0x001082e6
MOV RSI,RBX
MOV EDI,0x2
CALL 0x00108083
TEST EAX,EAX
JNZ 0x0010941a
TEST EBP,EBP
JNZ 0x00108cda
MOV EDX,0x1
MOV ESI,0x1c
MOV RDI,R13
CALL 0x0010ac09
LEA RSI,[0x13b2e0]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JNZ 0x00109e59
MOV RSI,RBX
MOV EDI,0x2
CALL 0x00108083
TEST EAX,EAX
JNZ 0x0010959b
MOV EDX,0x0
MOV ESI,0x1c
MOV RDI,R13
CALL 0x0010ac09
LEA RSI,[0x13b2fe]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JZ 0x00109d6d
LEA RSI,[0x13b301]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JZ 0x00108db9
MOV R14D,0x1
LEA RSI,[0x13b304]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JNZ 0x00109dce
MOV R14D,0x1
TEST EBP,EBP
JS 0x001082e6
MOV RSI,RBX
MOV EDI,0x3
CALL 0x00108083
TEST EAX,EAX
JNZ 0x00109446
TEST EBP,EBP
JZ 0x00109c0f
MOV EDX,0x0
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
MOV R14D,0x1
JMP 0x001082e6
MOV EDX,0x0
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
MOV R14D,0x1
JMP 0x001082e6
LEA RSI,[0x13b2e0]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JZ 0x00108d2e
LEA RSI,[0x13b2e9]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JZ 0x00108d2e
LEA RSI,[0x13b2f3]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JNZ 0x00108d41
MOV R14D,0x1
TEST EBP,EBP
JS 0x001082e6
JMP 0x00109e76
LEA RSI,[0x13b2fe]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JNZ 0x00108d94
MOV R14D,0x1
TEST EBP,EBP
JS 0x001082e6
MOV RSI,RBX
MOV EDI,0x3
CALL 0x00108083
TEST EAX,EAX
JNZ 0x00109430
TEST EBP,EBP
JZ 0x00109d88
MOV EDX,0x0
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
JMP 0x001082e6
LEA RSI,[0x13b301]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JNZ 0x00108c7d
MOV R14D,0x1
TEST EBP,EBP
JS 0x001082e6
MOV RSI,RBX
MOV EDI,0x3
CALL 0x00108083
TEST EAX,EAX
JNZ 0x0010943b
TEST EBP,EBP
JZ 0x00109d25
MOV EDX,0x0
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
MOV R14D,0x1
JMP 0x001082e6
MOV R14D,0x1
TEST EBP,EBP
JS 0x001082e6
MOV RSI,RBX
MOV EDI,0x3
CALL 0x00108083
TEST EAX,EAX
JNZ 0x00109451
TEST EBP,EBP
JZ 0x00109c49
MOV EDX,0x0
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
MOV R14D,0x1
JMP 0x001082e6
MOV R14D,0x1
TEST EBP,EBP
JS 0x001082e6
MOV RSI,RBX
MOV EDI,0x3
CALL 0x00108083
TEST EAX,EAX
JNZ 0x0010945c
TEST EBP,EBP
JZ 0x00109c87
MOV EDX,0x1
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
MOV R14D,0x1
JMP 0x001082e6
MOV R14D,0x1
TEST EBP,EBP
JS 0x001082e6
MOV RSI,RBX
MOV EDI,0x2
CALL 0x00108083
TEST EAX,EAX
JNZ 0x0010947d
TEST EBP,EBP
JZ 0x0010989e
MOV EDX,0x0
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
MOV R14D,0x1
JMP 0x001082e6
MOV R14D,0x1
TEST EBP,EBP
JS 0x001082e6
MOV RSI,RBX
MOV EDI,0x2
CALL 0x00108083
TEST EAX,EAX
JNZ 0x00109488
TEST EBP,EBP
JZ 0x001098d8
MOV EDX,0x0
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
MOV R14D,0x1
JMP 0x001082e6
MOV EDX,0x0
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
MOV R14D,0x2
JMP 0x001082e6
LEA RSI,[0x13b319]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JZ 0x00108f4e
LEA RSI,[0x13b31c]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JNZ 0x00109814
MOV R14D,0x1
TEST EBP,EBP
JS 0x001082e6
JZ 0x001099af
MOV EDX,0x1
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
JMP 0x001082e6
MOV EDX,0x1
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
MOV R14D,0x2
JMP 0x001082e6
LEA RDI,[0x13b1e0]
MOV EAX,0x0
CALL 0x00134fb0
JMP 0x00109a51
MOV RCX,-0x1
MOV RDI,R14
SCASB.REPNE RDI
NOT RCX
LEA R15D,[RCX + -0x1]
MOV dword ptr [RSP + 0x10],EBP
JMP 0x00109154
MOVZX EAX,byte ptr [R14]
MOVSX ESI,AL
SUB EAX,0x31
CMP AL,0x42
JA 0x001090d7
MOVZX EAX,AL
LEA RDX,[0x13b360]
MOVSXD RAX,dword ptr [RDX + RAX*0x4]
ADD RAX,RDX
JMP RAX
LEA EDX,[RSI + RSI*0x1 + -0x60]
MOV ESI,0x3c
MOV RDI,R13
CALL 0x0010ac09
JMP 0x00109113
LEA EDX,[RSI + -0x30]
MOV ESI,0x3b
MOV RDI,R13
CALL 0x0010ac09
JMP 0x00109113
MOV EDX,0x0
MOV ESI,0x3d
MOV RDI,R13
CALL 0x0010ac09
JMP 0x00109113
MOV EDX,0x1
MOV ESI,0x3d
MOV RDI,R13
CALL 0x0010ac09
JMP 0x00109113
MOV EDX,0x2
MOV ESI,0x3d
MOV RDI,R13
CALL 0x0010ac09
JMP 0x00109113
MOV EDX,0x3
MOV ESI,0x3d
MOV RDI,R13
CALL 0x0010ac09
JMP 0x00109113
MOV EDX,0x4
MOV ESI,0x3d
MOV RDI,R13
CALL 0x0010ac09
JMP 0x00109113
MOV EDX,0x0
MOV ESI,0x3e
MOV RDI,R13
CALL 0x0010ac09
JMP 0x00109113
MOV EDX,0x1
MOV ESI,0x3e
MOV RDI,R13
CALL 0x0010ac09
JMP 0x00109113
MOV EDX,0x2
MOV ESI,0x3e
MOV RDI,R13
CALL 0x0010ac09
JMP 0x00109113
MOV EDX,0x3
MOV ESI,0x3e
MOV RDI,R13
CALL 0x0010ac09
JMP 0x00109113
LEA RDI,[0x13b220]
MOV EAX,0x0
CALL 0x00134fb0
JMP 0x00109113
MOV EDX,0xa
MOV ESI,0x0
MOV RDI,R14
CALL 0x00107810
TEST EAX,EAX
JZ 0x00109197
MOV EDX,EAX
MOV ESI,0x3a
MOV RDI,R13
CALL 0x0010ac09
MOV EAX,dword ptr [RSP + 0x10]
ADD EAX,R15D
CDQE
ADD R14,RAX
CMP byte ptr [R14],0x0
JZ 0x001095c7
MOV ESI,0x2c
MOV RDI,R14
CALL 0x00107190
TEST RAX,RAX
JZ 0x00108fa8
SUB RAX,R14
MOV R15D,EAX
CDQE
MOV byte ptr [R14 + RAX*0x1],0x0
MOV dword ptr [RSP + 0x10],0x1
CMP R15D,0x1
JZ 0x00108fc4
CMP R15D,0x3
JNZ 0x001090ea
MOV EDX,0x3
LEA RSI,[0x13b333]
MOV RDI,R14
CALL 0x00107220
TEST EAX,EAX
JNZ 0x001090ea
MOV EDX,0x3
MOV ESI,0x3c
MOV RDI,R13
CALL 0x0010ac09
JMP 0x00109113
MOV RSI,R14
LEA RDI,[0x13b248]
MOV EAX,0x0
CALL 0x00134fb0
JMP 0x00109113
LEA RSI,[0x13b337]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JNZ 0x0010920c
TEST R12,R12
JZ 0x001094e0
MOV R14D,0x2
TEST EBP,EBP
JS 0x001082e6
MOV RSI,RBX
MOV EDI,0x1
CALL 0x00108083
TEST EAX,EAX
JNZ 0x001094eb
TEST EBP,EBP
JZ 0x001095f3
MOV EDX,0x0
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
JMP 0x001082e6
LEA RSI,[0x13b343]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JZ 0x00109236
LEA RSI,[0x13b34b]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JNZ 0x0010932b
TEST R12,R12
JZ 0x001094f6
MOV R14D,0x2
TEST EBP,EBP
JS 0x001082e6
MOV RSI,RBX
MOV EDI,0x2
CALL 0x00108083
TEST EAX,EAX
JNZ 0x00109501
TEST EBP,EBP
JNZ 0x00109310
MOV RDI,R12
CALL 0x001321a4
MOV RBP,RAX
MOV RDX,RAX
MOV ESI,0x77
MOV RDI,R13
CALL 0x0010af59
LEA RSI,[0x13b343]
MOV RDI,RBX
CALL 0x00107800
CMP EAX,0x1
SBB EDX,EDX
ADD EDX,0x4
MOV ESI,0x78
MOV RDI,R13
CALL 0x0010ac09
MOV RDI,RBP
CALL 0x00132212
LEA RSI,[0x13b356]
MOV RDI,RBX
CALL 0x00107800
MOV R14D,0x2
TEST EAX,EAX
JNZ 0x001082e6
MOV RSI,RBX
MOV EDI,0x2
CALL 0x00108083
TEST EAX,EAX
JNZ 0x00109522
MOV EDX,0x5
MOV ESI,0xd
MOV RDI,R13
CALL 0x0010ac09
MOV RDX,R12
MOV ESI,0x12
MOV RDI,R13
CALL 0x0010ad3a
MOV R14D,0x2
JMP 0x001082e6
MOV EDX,0x0
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
MOV R14D,0x2
JMP 0x001082e6
LEA RSI,[0x13b356]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JNZ 0x001082e6
TEST R12,R12
JZ 0x0010950c
MOV R14D,0x2
TEST EBP,EBP
JS 0x001082e6
MOV RSI,RBX
MOV EDI,0x2
CALL 0x00108083
TEST EAX,EAX
JNZ 0x00109517
TEST EBP,EBP
JZ 0x001092e3
MOV EDX,0x0
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
JMP 0x001082e6
MOV R14D,0xfffffffe
JMP 0x001082e6
MOV R14D,0xfffffffe
JMP 0x001082e6
MOV R14D,0xfffffffe
JMP 0x001082e6
MOV R14D,0xfffffffe
JMP 0x001082e6
MOV R14D,0xfffffffe
JMP 0x001082e6
MOV R14D,0xfffffffe
JMP 0x001082e6
MOV R14D,0x2
JMP 0x001082e6
MOV R14D,0xfffffffe
JMP 0x001082e6
MOV R14D,0x2
JMP 0x001082e6
MOV R14D,0xfffffffe
JMP 0x001082e6
MOV R14D,0x2
JMP 0x001082e6
MOV R14D,0xfffffffe
JMP 0x001082e6
MOV R14D,0x2
JMP 0x001082e6
MOV R14D,0x1
JMP 0x001082e6
MOV R14D,0x1
JMP 0x001082e6
MOV R14D,0x1
JMP 0x001082e6
MOV R14D,0x1
JMP 0x001082e6
MOV R14D,0x1
JMP 0x001082e6
MOV R14D,0x1
JMP 0x001082e6
MOV R14D,0x1
JMP 0x001082e6
MOV R14D,0x1
JMP 0x001082e6
MOV R14D,0x1
JMP 0x001082e6
MOV R14D,0x1
JMP 0x001082e6
MOV R14D,0x1
JMP 0x001082e6
MOV R14D,0x1
JMP 0x001082e6
MOV R14D,0xfffffffe
JMP 0x001082e6
MOV R14D,0x2
JMP 0x001082e6
MOV R14D,0x2
JMP 0x001082e6
MOV R14D,0xfffffffe
JMP 0x001082e6
MOV R14D,0x2
JMP 0x001082e6
MOV R14D,0x2
JMP 0x001082e6
MOV R14D,0xfffffffe
JMP 0x001082e6
MOV R14D,0x2
JMP 0x001082e6
MOV R14D,0xfffffffe
JMP 0x001082e6
MOV R14D,0x2
JMP 0x001082e6
MOV R14D,0xfffffffe
JMP 0x001082e6
MOV R14D,0x2
JMP 0x001082e6
MOV R14D,0x2
JMP 0x001082e6
MOV R14D,0x2
JMP 0x001082e6
MOV R14D,0x1
JMP 0x001082e6
MOV R14D,0x1
JMP 0x001082e6
MOV R14D,0x1
JMP 0x001082e6
MOV R14D,0x1
JMP 0x001082e6
MOV R14D,0x1
JMP 0x001082e6
MOV R14D,0x1
JMP 0x001082e6
MOV R14D,0x1
JMP 0x001082e6
MOV R14D,0x1
JMP 0x001082e6
MOV R14D,0x1
JMP 0x001082e6
MOV R14D,0x1
JMP 0x001082e6
MOV R14D,0x2
JMP 0x001082e6
MOV R14D,0x2
JMP 0x001082e6
MOV R14D,0x2
JMP 0x001082e6
LEA RSI,[0x13b337]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JNZ 0x001097d5
MOV RSI,RBX
MOV EDI,0x1
CALL 0x00108083
TEST EAX,EAX
JNZ 0x0010952d
MOV RDI,R12
CALL 0x001321a4
MOV R14,RAX
MOV RDX,RAX
MOV ESI,0x77
MOV RDI,R13
CALL 0x0010af59
MOV EDX,0x2
MOV ESI,0x78
MOV RDI,R13
CALL 0x0010ac09
MOV RDI,R14
CALL 0x00132212
LEA RSI,[0x13b343]
MOV RDI,RBX
CALL 0x00107800
MOV R14D,0x2
TEST EAX,EAX
JNZ 0x0010921f
MOV RSI,RBX
MOV EDI,0x2
CALL 0x00108083
TEST EAX,EAX
JZ 0x0010926a
MOV R14D,0x2
JMP 0x001082e6
MOVZX EAX,byte ptr [RSP + 0x10]
MOV byte ptr [R15 + R14*0x1],AL
ADD R14,0x1
MOV dword ptr [RSP + 0x14],R14D
MOV dword ptr [RSP + 0x18],R14D
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x00107930
MOV dword ptr [RSP + 0x10],EAX
CMP EAX,-0x1
JZ 0x001097a3
CMP dword ptr [RSP + 0x1c],R14D
JG 0x00109665
MOV EAX,dword ptr [RSP + 0x14]
ADD EAX,0x200
MOV dword ptr [RSP + 0x1c],EAX
MOVSXD RSI,EAX
MOV EDX,0x1
MOV RDI,R15
CALL 0x0010c033
MOV R15,RAX
MOVZX EAX,byte ptr [RSP + 0x10]
MOV byte ptr [R15 + R14*0x1],AL
JMP 0x0010966e
MOVSXD RAX,dword ptr [RSP + 0x18]
MOV byte ptr [R15 + RAX*0x1],0x0
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x00107530
MOV RDX,R15
MOV ESI,0x14
MOV RDI,R13
CALL 0x0010ad3a
LEA RDX,[0x13bec9]
MOV ESI,0x15
MOV RDI,R13
CALL 0x0010ad3a
MOV EDX,0x1
MOV ESI,0x16
MOV RDI,R13
CALL 0x0010ac09
MOV RDI,R15
CALL 0x0010c4d3
LEA RSI,[0x13b2c1]
MOV RDI,RBX
CALL 0x00107800
MOV R14D,0x2
TEST EAX,EAX
JNZ 0x00108afa
MOV RSI,RBX
MOV EDI,0x2
CALL 0x00108083
TEST EAX,EAX
JNZ 0x001095b1
MOV EDX,0xa
MOV ESI,0x0
MOV RDI,R12
CALL 0x00107810
MOV EDX,EAX
MOV ESI,0x1
MOV RDI,R13
CALL 0x0010ac09
LEA RSI,[0x13b2c4]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JZ 0x00109ed0
LEA RSI,[0x13b2c8]
MOV RDI,RBX
CALL 0x00107800
MOV R14D,0x2
TEST EAX,EAX
JNZ 0x00108ba4
JMP 0x00108bdc
CMP dword ptr [RSP + 0x1c],R14D
JG 0x001096c5
MOV ESI,dword ptr [RSP + 0x14]
ADD ESI,0x200
MOVSXD RSI,ESI
MOV EDX,0x1
MOV RDI,R15
CALL 0x0010c033
MOV R15,RAX
MOV byte ptr [RAX + R14*0x1],0x0
JMP 0x001096cf
LEA RSI,[0x13b343]
MOV RDI,RBX
CALL 0x00107800
MOV R14D,0x2
TEST EAX,EAX
JNZ 0x0010921f
JMP 0x0010924d
LEA RSI,[0x13b31c]
MOV RDI,RBX
CALL 0x00107800
MOV R14D,0x2
TEST EAX,EAX
JZ 0x001099af
LEA RSI,[0x13b322]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JZ 0x0010983e
LEA RSI,[0x13b325]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JNZ 0x001099f6
MOV R14D,0x1
TEST EBP,EBP
JS 0x001082e6
JZ 0x001099de
MOV EDX,0x1
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
JMP 0x001082e6
LEA RSI,[0x141a0f]
MOV RDI,RBX
CALL 0x00107800
MOV R14D,0x1
TEST EAX,EAX
JNZ 0x00109930
JMP 0x00109b26
MOV RSI,RBX
MOV EDI,0x2
CALL 0x00108083
TEST EAX,EAX
JNZ 0x0010954e
MOV EDX,0x1
MOV ESI,0x17
MOV RDI,R13
CALL 0x0010ac09
LEA RSI,[0x1429d6]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JNZ 0x00109867
MOV RSI,RBX
MOV EDI,0x2
CALL 0x00108083
TEST EAX,EAX
JNZ 0x00109543
MOV EDX,0x0
MOV ESI,0x21
MOV RDI,R13
CALL 0x0010ac09
LEA RSI,[0x141a0f]
MOV RDI,RBX
CALL 0x00107800
MOV R14D,0x1
TEST EAX,EAX
JNZ 0x00109930
MOV RSI,RBX
MOV EDI,0x2
CALL 0x00108083
TEST EAX,EAX
JNZ 0x00109538
MOV EDX,0x3
MOV ESI,0x21
MOV RDI,R13
CALL 0x0010ac09
MOV R14D,0x1
LEA RSI,[0x13b316]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JNZ 0x00108f24
TEST R12,R12
JZ 0x0010949e
TEST EBP,EBP
JS 0x001094a9
MOV RSI,RBX
MOV EDI,0x2
CALL 0x00108083
TEST EAX,EAX
JNZ 0x001094b4
TEST EBP,EBP
JNZ 0x00108f09
MOV RDI,R12
CALL 0x001321a4
MOV R14,RAX
MOV RDX,RAX
MOV ESI,0x20
MOV RDI,R13
CALL 0x0010af59
MOV RDI,R14
CALL 0x00132212
LEA RSI,[0x13b319]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JNZ 0x001097f7
MOV EDX,0x1
MOV ESI,0x3
MOV RDI,R13
CALL 0x0010ac09
LEA RSI,[0x13b322]
MOV RDI,RBX
CALL 0x00107800
MOV R14D,0x1
TEST EAX,EAX
JNZ 0x00109827
MOV EDX,0x2
MOV ESI,0x3
MOV RDI,R13
CALL 0x0010ac09
MOV R14D,0x1
LEA RSI,[0x13b32b]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JNZ 0x001091b0
TEST R12,R12
JZ 0x001094bf
TEST EBP,EBP
JS 0x001094ca
MOV RSI,RBX
MOV EDI,0x3
CALL 0x00108083
TEST EAX,EAX
JNZ 0x001094d5
TEST EBP,EBP
JNZ 0x00108f77
MOV ESI,0x2
MOV RDI,R13
CALL 0x0010a543
CMP EAX,0x4
JNZ 0x00108f92
MOV R14,R12
JMP 0x0010911f
MOV RSI,RBX
MOV EDI,0x3
CALL 0x00108083
TEST EAX,EAX
JNZ 0x00109559
MOV EDX,0x1
MOV ESI,0x2d
MOV RDI,R13
CALL 0x0010ac09
LEA RSI,[0x13b313]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JZ 0x00109889
LEA RSI,[0x1429d6]
MOV RDI,RBX
CALL 0x00107800
MOV R14D,0x1
TEST EAX,EAX
JZ 0x00108ed1
JMP 0x00109b01
LEA RSI,[0x13b310]
MOV RDI,RBX
CALL 0x00107800
MOV R14D,0x1
TEST EAX,EAX
JZ 0x00109ba0
LEA RSI,[0x13b313]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JZ 0x00108e7d
LEA RSI,[0x1429d6]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JZ 0x00108ec3
LEA RSI,[0x141a0f]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JNZ 0x00109930
MOV R14D,0x1
TEST EBP,EBP
JS 0x001082e6
MOV RSI,RBX
MOV EDI,0x2
CALL 0x00108083
TEST EAX,EAX
JNZ 0x00109493
TEST EBP,EBP
JZ 0x00109918
MOV EDX,0x0
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
MOV R14D,0x1
JMP 0x001082e6
LEA RSI,[0x13b30d]
MOV RDI,RBX
CALL 0x00107800
MOV R14D,0x1
TEST EAX,EAX
JZ 0x00109e21
LEA RSI,[0x13b310]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JNZ 0x00109ad3
MOV R14D,0x1
TEST EBP,EBP
JS 0x001082e6
MOV RSI,RBX
MOV EDI,0x3
CALL 0x00108083
TEST EAX,EAX
JNZ 0x00109472
TEST EBP,EBP
JZ 0x00109a6e
MOV EDX,0x0
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
MOV R14D,0x1
JMP 0x001082e6
LEA RSI,[0x13b30a]
MOV RDI,RBX
CALL 0x00107800
MOV R14D,0x1
TEST EAX,EAX
JNZ 0x00109dfc
JMP 0x00108e45
MOV RSI,RBX
MOV EDI,0x3
CALL 0x00108083
TEST EAX,EAX
JNZ 0x00109585
MOV EDX,0x1
MOV ESI,0x95
MOV RDI,R13
CALL 0x0010ac09
LEA RSI,[0x13b307]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JNZ 0x00109bd8
MOV RSI,RBX
MOV EDI,0x3
CALL 0x00108083
TEST EAX,EAX
JNZ 0x0010957a
MOV EDX,0x0
MOV ESI,0x95
MOV RDI,R13
CALL 0x0010ac09
LEA RSI,[0x13b30a]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JNZ 0x00109b5e
MOV RSI,RBX
MOV EDI,0x3
CALL 0x00108083
TEST EAX,EAX
JNZ 0x0010956f
MOV EDX,0x0
MOV ESI,0x16
MOV RDI,R13
CALL 0x0010ac09
LEA RSI,[0x13b30d]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JNZ 0x00109ab6
MOV RSI,RBX
MOV EDI,0x3
CALL 0x00108083
TEST EAX,EAX
JNZ 0x00109564
MOV EDX,0x1
MOV ESI,0x16
MOV RDI,R13
CALL 0x0010ac09
LEA RSI,[0x13b310]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JZ 0x00109a59
LEA RSI,[0x13b313]
MOV RDI,RBX
CALL 0x00107800
MOV R14D,0x1
TEST EAX,EAX
JZ 0x00108e8b
JMP 0x00109aea
MOV RSI,RBX
MOV EDI,0x3
CALL 0x00108083
TEST EAX,EAX
JNZ 0x00109590
MOV EDX,0x0
MOV ESI,0x1d
MOV RDI,R13
CALL 0x0010ac09
LEA RSI,[0x13b304]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JZ 0x00109bfa
LEA RSI,[0x13b307]
MOV RDI,RBX
CALL 0x00107800
MOV R14D,0x1
TEST EAX,EAX
JZ 0x00108dff
JMP 0x00109de5
MOV RSI,RBX
MOV EDI,0x3
CALL 0x00108083
MOV R14D,0x1
TEST EAX,EAX
JNZ 0x001082e6
MOV EDX,0x1
MOV ESI,0x1d
MOV RDI,R13
CALL 0x0010ac09
LEA RSI,[0x13b301]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JZ 0x00109d10
LEA RSI,[0x13b304]
MOV RDI,RBX
CALL 0x00107800
MOV R14D,0x1
TEST EAX,EAX
JZ 0x00108ca2
LEA RSI,[0x13b307]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JZ 0x00108df1
LEA RSI,[0x13b30a]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JZ 0x00108e37
LEA RSI,[0x13b30d]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JNZ 0x00109b7b
MOV R14D,0x1
TEST EBP,EBP
JS 0x001082e6
MOV RSI,RBX
MOV EDI,0x3
CALL 0x00108083
TEST EAX,EAX
JNZ 0x00109467
TEST EBP,EBP
JZ 0x00109cc5
MOV EDX,0x1
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
MOV R14D,0x1
JMP 0x001082e6
LEA RSI,[0x13b2e9]
MOV RDI,RBX
CALL 0x00107800
MOV R14D,0x1
TEST EAX,EAX
JNZ 0x00108d1b
MOV RSI,RBX
MOV EDI,0x2
CALL 0x00108083
TEST EAX,EAX
JNZ 0x00109425
TEST EBP,EBP
JZ 0x00108c37
MOV EDX,0x0
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
MOV R14D,0x1
JMP 0x001082e6
LEA RSI,[0x13b2cf]
MOV RDI,RBX
CALL 0x00107800
MOV R14D,0x2
TEST EAX,EAX
JNZ 0x00108bb7
JMP 0x00108bdc
MOV RSI,RBX
MOV EDI,0x2
CALL 0x00108083
TEST EAX,EAX
JNZ 0x001095a6
MOV ESI,0x2
MOV RDI,R13
CALL 0x0010a543
CMP EAX,0x3
JZ 0x00108b5a
LEA RDI,[0x13b1a8]
MOV EAX,0x0
CALL 0x00134fb0
LEA RSI,[0x13b2c8]
MOV RDI,RBX
CALL 0x00107800
TEST EAX,EAX
JNZ 0x00109eae
MOV RSI,RBX
MOV EDI,0x2
CALL 0x00108083
TEST EAX,EAX
JZ 0x00108bf9
MOV R14D,0x1
JMP 0x001082e6
MOV RSI,RBX
MOV EDI,0x3
CALL 0x00108083
TEST EAX,EAX
JNZ 0x001095bc
LEA RSI,[0x13d6e0]
MOV RDI,R12
CALL 0x00107610
MOV qword ptr [RSP + 0x8],RAX
TEST RAX,RAX
JZ 0x00108ae0
MOV R14D,0x0
MOV dword ptr [RSP + 0x1c],0x0
MOV R15D,0x0
JMP 0x00109672
MOV RSI,RBX
MOV EDI,0x3
CALL 0x00108083
MOV R14D,0x2
TEST EAX,EAX
JNZ 0x001082e6
MOV ESI,0x3a
MOV RDI,R12
CALL 0x0010b8c9
MOV R14,RAX
TEST RAX,RAX
JZ 0x00108ac4
MOV RSI,RAX
SUB RSI,R12
MOV RDX,R12
LEA RDI,[0x13b2b1]
MOV EAX,0x0
CALL 0x0010c2a6
MOV R15,RAX
MOV RDX,RAX
MOV ESI,0x2e
MOV RDI,R13
CALL 0x0010ad3a
LEA RDI,[R14 + 0x1]
MOV EDX,0xa
MOV ESI,0x0
CALL 0x00107810
MOV EDX,EAX
MOV ESI,0x2f
MOV RDI,R13
CALL 0x0010ac09
MOV RDI,R15
CALL 0x0010c4d3
LEA RSI,[0x13b2be]
MOV RDI,RBX
CALL 0x00107800
MOV R14D,0x2
TEST EAX,EAX
JZ 0x00109f3f
MOV ECX,0x3
LEA RDI,[0x13b2c1]
MOV RSI,RBX
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00108afa
TEST R12,R12
JZ 0x001093ee
MOV R14D,0x2
TEST EBP,EBP
JS 0x001082e6
MOV RSI,RBX
MOV EDI,0x2
CALL 0x00108083
TEST EAX,EAX
JNZ 0x001093f9
TEST EBP,EBP
JZ 0x00109749
MOV EDX,0x1
MOV RSI,R12
MOV RDI,RBX
CALL 0x001080ad
JMP 0x001082e6
MOV RSI,RBX
MOV EDI,0x2
CALL 0x00108083
MOV R14D,0x2
TEST EAX,EAX
JNZ 0x001082e6
MOV RDX,R12
MOV ESI,0x9
MOV RDI,R13
CALL 0x0010ad3a
MOV ECX,0x9
LEA RDI,[0x13b2a0]
MOV RSI,RBX
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
MOV R14D,0x2
TEST AL,AL
JNZ 0x0010884b
MOV RSI,RBX
MOV EDI,0x2
CALL 0x00108083
MOV R14D,0x2
TEST EAX,EAX
JNZ 0x001082e6
MOV RDI,R12
CALL 0x0010bd5d
MOV R14,RAX
MOV RDI,RAX
CALL 0x0010c8a8
TEST EAX,EAX
JZ 0x00108829
LEA RCX,[0x13bec9]
MOV RDX,R14
MOV ESI,0xad
MOV RDI,R13
CALL 0x0010ade1
MOV RDI,R14
CALL 0x0010c4d3
MOV ECX,0x3
LEA RDI,[0x13b2a9]
MOV RSI,RBX
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
MOV R14D,0x2
TEST AL,AL
JNZ 0x00108865
MOV RSI,RBX
MOV EDI,0x3
CALL 0x00108083
TEST EAX,EAX
JZ 0x001088cd
MOV R14D,0x2
JMP 0x001082e6
MOV ECX,0x3
LEA RDI,[0x13b294]
MOV RSI,RBX
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
MOV R14D,0x1
TEST AL,AL
JNZ 0x00108694
JMP 0x00108687
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nundefined8 FUN_001082a0(byte *param_1,char *param_2,int param_3,undefined8 param_4)\n\n{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  int iVar4;\n  undefined8 uVar5;\n  char *pcVar6;\n  undefined8 uVar7;\n  char *pcVar8;\n  ulong uVar9;\n  FILE *__stream;\n  long lVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  long lVar13;\n  char *pcVar14;\n  bool bVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  undefined1 uVar19;\n  byte bVar20;\n  int local_48;\n  int local_3c;\n  \n  bVar20 = 0;\n  bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x28;\n  bVar18 = &stack0x00000000 == (undefined1 *)0x58;\n  lVar10 = 6;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-load";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar15 = *pbVar11 < *pbVar12;\n    bVar18 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar18);\n  bVar16 = false;\n  bVar15 = (!bVar15 && !bVar18) == bVar15;\n  if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (-1 < param_3) {\n      FUN_00116e22(param_2,param_4);\n      _DAT_00152558 = 1;\n      _DAT_00152560 = FUN_0010bd5d(param_2);\n      return 2;\n    }\n    return 2;\n  }\n  lVar10 = 5;\n  pbVar11 = param_1;\n  pbVar12 = &DAT_0013b272;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar18 = false;\n  bVar15 = (!bVar16 && !bVar15) == bVar16;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 3;\n        DAT_00152548 = 0x16;\n        FUN_0010ac09(param_4,2,3);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar10 = 8;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-telnet";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar16 = false;\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 1;\n        DAT_00152548 = 0x17;\n        FUN_0010ac09(param_4,2,1);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar10 = 8;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-rlogin";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar18 = false;\n  bVar15 = (!bVar16 && !bVar15) == bVar16;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 2;\n        DAT_00152548 = 0x201;\n        FUN_0010ac09(param_4,2,2);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar10 = 5;\n  pbVar11 = param_1;\n  pbVar12 = &DAT_0013b287;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar16 = false;\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    uVar17 = 0;\n    uVar19 = param_3 == 0;\n    if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    DAT_00152538 = 0;\n    FUN_0010ac09(param_4,2,0);\n    lVar10 = 8;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    bVar15 = false;\n    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (bVar18) {\n      iVar3 = FUN_00108083(3,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 1;\n      }\nLAB_0010858a:\n      uVar19 = 0;\n      DAT_00152538 = 4;\n      FUN_0010ac09(param_4,2,4);\n      uVar5 = FUN_0010a6d3(param_4,0);\n      FUN_0010ad3a(param_4,0x39,uVar5);\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n    }\n    else {\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n    }\n    uVar5 = 1;\n    if (bVar15) {\nLAB_00108687:\n      DAT_0015254c = DAT_0015254c | 1;\n      bVar15 = DAT_0015254c == 0;\n      uVar5 = 1;\n    }\n  }\n  else {\n    lVar10 = 8;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      uVar17 = param_3 == 0;\n      if (!(bool)uVar17) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_0010858a;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b294;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108687;\n    }\n    uVar5 = 0;\n  }\n  bVar18 = false;\n  lVar10 = 3;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)0x1440df;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);\n  bVar16 = false;\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    uVar17 = 0;\n    uVar19 = param_3 == 0;\n    if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    FUN_0010ad3a(param_4,0x34,param_2);\n    lVar10 = 9;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-loghost";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    bVar15 = false;\n    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (bVar18) {\n      iVar3 = FUN_00108083(2,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 2;\n      }\nLAB_0010a0b4:\n      uVar19 = 0;\n      FUN_0010ad3a(param_4,9,param_2);\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      uVar5 = 2;\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n      if (bVar15) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }\n    }\n    else {\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      uVar5 = 2;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (bVar15) goto LAB_00108738;\n    }\nLAB_0010884b:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2a9;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (!bVar15) goto LAB_00108865;\n    goto LAB_0010889d;\n  }\n  lVar10 = 9;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-loghost";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);\n  bVar18 = false;\n  bVar15 = (!bVar16 && !bVar15) == bVar16;\n  if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    uVar17 = param_3 == 0;\n    if (!(bool)uVar17) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    goto LAB_0010a0b4;\n  }\n  lVar10 = 9;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-hostkey";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (!bVar15) goto LAB_0010884b;\n  if (param_2 == (char *)0x0) {\n    return 0xfffffffe;\n  }\n  if (param_3 < 0) {\n    return 2;\n  }\nLAB_00108738:\n  iVar3 = FUN_00108083(2,param_1);\n  if (iVar3 != 0) {\n    return 2;\n  }\n  if (param_3 != 0) {\n    FUN_001080ad(param_1,param_2,0);\n    return 2;\n  }\nLAB_0010a103:\n  uVar5 = FUN_0010bd5d(param_2);\n  iVar3 = FUN_0010c8a8(uVar5);\n  uVar17 = 0;\n  uVar19 = iVar3 == 0;\n  if ((bool)uVar19) {\n    FUN_00134fb0("\'%s\' is not a valid format for a manual host key specification",param_2);\n    FUN_0010c4d3(uVar5);\n    return 2;\n  }\n  FUN_0010ade1(param_4,0xad,uVar5,&DAT_0013bec9);\n  FUN_0010c4d3(uVar5);\n  lVar10 = 3;\n  pbVar11 = param_1;\n  pbVar12 = &DAT_0013b2a9;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    uVar17 = *pbVar11 < *pbVar12;\n    uVar19 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while ((bool)uVar19);\n  uVar5 = 2;\n  bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n  if (bVar15) {\n    iVar3 = FUN_00108083(3,param_1);\n    bVar15 = iVar3 == 0;\n    if (!bVar15) {\n      return 2;\n    }\nLAB_001088cd:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)0x1440f1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    uVar17 = 0;\n    uVar19 = (!bVar18 && !bVar15) == bVar18;\n    if ((bool)uVar19) {\n      uVar5 = FUN_0010c2a6(&DAT_0013b2b6,param_2);\n      uVar7 = FUN_0010bd5d("D");\n    }\n    else {\n      bVar1 = param_1[1];\n      pcVar6 = (char *)FUN_0010b8c9(param_2,0x3a);\n      pcVar8 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\nLAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);\n        return 2;\n      }\n      do {\n        pcVar14 = pcVar8;\n        pcVar8 = pcVar6;\n        pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);\n      } while (pcVar6 != (char *)0x0);\n      if (pcVar14 == (char *)0x0) goto LAB_00108973;\n      uVar17 = pcVar14 < param_2;\n      uVar19 = (long)pcVar14 - (long)param_2 == 0;\n      uVar5 = FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2);\n      uVar7 = FUN_0010bd5d(pcVar14 + 1);\n    }\n    FUN_0010ade1(param_4,0x9b,uVar5,uVar7);\n    FUN_0010c4d3(uVar5);\n    FUN_0010c4d3(uVar7);\n    lVar10 = 4;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2ba;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    uVar5 = 2;\n    bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (!bVar15) goto LAB_00108a01;\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_00109fa5:\n    lVar10 = FUN_0010b8c9(param_2,0x3a);\n    if (lVar10 == 0) {\n      FUN_00134fb0("-nc expects argument of form \'host:port\'");\n      return 2;\n    }\n    uVar5 = FUN_0010c2a6(&DAT_0013b2b1,lVar10 - (long)param_2,param_2);\n    FUN_0010ad3a(param_4,0x2e,uVar5);\n    uVar9 = strtol((char *)(lVar10 + 1),(char **)0x0,10);\n    FUN_0010ac09(param_4,0x2f,uVar9 & 0xffffffff);\n    FUN_0010c4d3(uVar5);\n    iVar3 = strcmp((char *)param_1,"-m");\n    uVar5 = 2;\n    bVar15 = iVar3 == 0;\n    if (!bVar15) goto LAB_0010a032;\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_00109f54:\n    __stream = fopen64(param_2,"r");\n    if (__stream == (FILE *)0x0) {\n      FUN_00134fb0("unable to open command file \"%s\"",param_2);\n      return 2;\n    }\n    lVar13 = 0;\n    local_3c = 0;\n    lVar10 = 0;\n    while( true ) {\n      iVar4 = (int)lVar13;\n      iVar3 = fgetc(__stream);\n      if (iVar3 == -1) break;\n      local_48._0_1_ = (undefined1)iVar3;\n      if (iVar4 < local_3c) {\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      else {\n        local_3c = iVar4 + 0x200;\n        lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      lVar13 = lVar13 + 1;\n    }\n    if (iVar4 < local_3c) {\n      *(undefined1 *)(lVar10 + iVar4) = 0;\n    }\n    else {\n      lVar10 = FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1);\n      *(undefined1 *)(lVar10 + lVar13) = 0;\n    }\n    fclose(__stream);\n    FUN_0010ad3a(param_4,0x14,lVar10);\n    FUN_0010ad3a(param_4,0x15,&DAT_0013bec9);\n    FUN_0010ac09(param_4,0x16,1);\n    FUN_0010c4d3(lVar10);\n    iVar3 = strcmp((char *)param_1,"-P");\n    uVar5 = 2;\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      goto LAB_00109749;\n    }\nLAB_00108afa:\n    iVar3 = strcmp((char *)param_1,"-pw");\n    if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 2;\n      }\n      goto LAB_00109ee5;\n    }\n    iVar3 = strcmp((char *)param_1,"-agent");\n    if (iVar3 != 0) goto LAB_00108ba4;\nLAB_00108bce:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108bdc:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00108bf9:\n    FUN_0010ac09(param_4,0x1c,1);\n    iVar3 = strcmp((char *)param_1,"-noagent");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108c37;\n    }\n    iVar3 = strcmp((char *)param_1,"-nopagent");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00109e76;\nLAB_00108d1b:\n    iVar3 = strcmp((char *)param_1,"-nopageant");\n    if (iVar3 == 0) goto LAB_00108d2e;\n    iVar3 = strcmp((char *)param_1,"-A");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-a");\n      if (iVar3 != 0) goto LAB_00108c7d;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108db9;\n    }\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109d88:\n    FUN_0010ac09(param_4,0x1d,1);\n    iVar3 = strcmp((char *)param_1,"-a");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d25;\n    }\n    iVar3 = strcmp((char *)param_1,"-X");\n    uVar5 = 1;\n    if (iVar3 == 0) {\nLAB_00108ca2:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109c0f;\n    }\nLAB_00109dce:\n    iVar3 = strcmp((char *)param_1,"-x");\n    if (iVar3 != 0) goto LAB_00109de5;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108dff:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109c49:\n    FUN_0010ac09(param_4,0x95,0);\n    iVar3 = strcmp((char *)param_1,"-t");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c87:\n      FUN_0010ac09(param_4,0x16,0);\n      iVar3 = strcmp((char *)param_1,"-T");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }\n      iVar3 = strcmp((char *)param_1,"-N");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109ba0;\n    }\n    else {\n      iVar3 = strcmp((char *)param_1,"-T");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109e21;\nLAB_00109b7b:\n      iVar3 = strcmp((char *)param_1,"-N");\n      if (iVar3 == 0) {\n        if (param_3 < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }\n    }\n    iVar3 = strcmp((char *)param_1,"-C");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00108e8b:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\nLAB_0010989e:\n      FUN_0010ac09(param_4,0x17,1);\n      iVar3 = strcmp((char *)param_1,"-1");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }\n      iVar3 = strcmp((char *)param_1,"-2");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109930;\n      goto LAB_00109b26;\n    }\nLAB_00109aea:\n    iVar3 = strcmp((char *)param_1,"-1");\n    if (iVar3 != 0) goto LAB_00109b01;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108ed1:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_001098d8:\n    FUN_0010ac09(param_4,0x21,0);\n    iVar3 = strcmp((char *)param_1,"-2");\n    uVar5 = 1;\n    if (iVar3 != 0) goto LAB_00109930;\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\nLAB_00109918:\n    FUN_0010ac09(param_4,0x21,3);\n    uVar5 = 1;\n  }\n  else {\nLAB_00108865:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2ac;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\nLAB_0010889d:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      bVar15 = param_3 == 0;\n      if (!bVar15) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001088cd;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)0x1440f1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_0010889d;\n    iVar3 = strcmp((char *)param_1,"-nc");\n    bVar15 = iVar3 == 0;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109fa5;\n    }\nLAB_00108a01:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2be;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109f54;\n    }\nLAB_0010a032:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2c1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar18 && !bVar15) != bVar18) goto LAB_00108afa;\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }\nLAB_00109749:\n    uVar9 = strtol(param_2,(char **)0x0,10);\n    FUN_0010ac09(param_4,1,uVar9 & 0xffffffff);\n    iVar3 = strcmp((char *)param_1,"-pw");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\nLAB_00109ee5:\n      iVar3 = FUN_0010a543(param_4,2);\n      if (iVar3 == 3) {\n        DAT_00152128 = FUN_0010bd5d(param_2);\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = param_2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        FUN_0010c727(param_2,~uVar9 - 1);\n      }\n      else {\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }\n      iVar3 = strcmp((char *)param_1,"-agent");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-pagent");\n        uVar5 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108bf9;\n    }\n    iVar3 = strcmp((char *)param_1,"-agent");\n    uVar5 = 2;\n    if (iVar3 == 0) goto LAB_00108bdc;\nLAB_00108ba4:\n    iVar3 = strcmp((char *)param_1,"-pagent");\n    if (iVar3 == 0) goto LAB_00108bce;\nLAB_00108bb7:\n    iVar3 = strcmp((char *)param_1,"-pageant");\n    if (iVar3 == 0) goto LAB_00108bce;\n    iVar3 = strcmp((char *)param_1,"-noagent");\n    if ((iVar3 != 0) && (iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0))\n    goto LAB_00108d1b;\nLAB_00108d2e:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e76:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00108c37:\n    FUN_0010ac09(param_4,0x1c,0);\n    iVar3 = strcmp((char *)param_1,"-A");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d88;\n    }\n    iVar3 = strcmp((char *)param_1,"-a");\n    if (iVar3 != 0) {\n      uVar5 = 1;\nLAB_00108c7d:\n      iVar3 = strcmp((char *)param_1,"-X");\n      if (iVar3 != 0) goto LAB_00109dce;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108ca2;\n    }\nLAB_00108db9:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109d25:\n    FUN_0010ac09(param_4,0x1d,0);\n    iVar3 = strcmp((char *)param_1,"-X");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c0f:\n      FUN_0010ac09(param_4,0x95,1);\n      iVar3 = strcmp((char *)param_1,"-x");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }\n      iVar3 = strcmp((char *)param_1,"-t");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109dfc;\nLAB_00108e45:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_00109c87;\n    }\n    iVar3 = strcmp((char *)param_1,"-x");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108dff;\nLAB_00109de5:\n    iVar3 = strcmp((char *)param_1,"-t");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108e45;\n    }\nLAB_00109dfc:\n    iVar3 = strcmp((char *)param_1,"-T");\n    if (iVar3 != 0) goto LAB_00109b7b;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e21:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_00109cc5:\n    FUN_0010ac09(param_4,0x16,1);\n    iVar3 = strcmp((char *)param_1,"-N");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-C");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00108e8b;\n      goto LAB_00109aea;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\nLAB_00109a6e:\n    FUN_0010ac09(param_4,0x2d,1);\n    iVar3 = strcmp((char *)param_1,"-C");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_0010989e;\n    }\n    iVar3 = strcmp((char *)param_1,"-1");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108ed1;\nLAB_00109b01:\n    iVar3 = strcmp((char *)param_1,"-2");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00109b26:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109918;\n    }\n  }\nLAB_00109930:\n  iVar3 = strcmp((char *)param_1,"-i");\n  if (iVar3 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    uVar5 = FUN_001321a4(param_2);\n    FUN_0010af59(param_4,0x20,uVar5);\n    FUN_00132212(uVar5);\n    iVar3 = strcmp((char *)param_1,"-4");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-ipv4");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_00109814;\n    }\nLAB_001099af:\n    FUN_0010ac09(param_4,3,1);\n    iVar3 = strcmp((char *)param_1,"-6");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_001099de;\nLAB_00109827:\n    iVar3 = strcmp((char *)param_1,"-ipv6");\n    if (iVar3 == 0) goto LAB_0010983e;\n  }\n  else {\n    iVar3 = strcmp((char *)param_1,"-4");\n    if ((iVar3 == 0) || (iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_001099af;\n    }\nLAB_00109814:\n    iVar3 = strcmp((char *)param_1,"-6");\n    if (iVar3 != 0) goto LAB_00109827;\nLAB_0010983e:\n    if (param_3 < 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_001099de:\n    FUN_0010ac09(param_4,3,2);\n    uVar5 = 1;\n  }\n  iVar3 = strcmp((char *)param_1,"-sercfg");\n  if (iVar3 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }\n    iVar3 = FUN_0010a543(param_4,2);\n    pcVar6 = param_2;\n    if (iVar3 != 4) {\n      FUN_00134fb0("the -sercfg option can only be used with the serial protocol");\n    }\n    for (; *pcVar6 != '\0'; pcVar6 = pcVar6 + (local_48 + iVar3)) {\n      pcVar8 = strchr(pcVar6,0x2c);\n      if (pcVar8 == (char *)0x0) {\n        lVar10 = -1;\n        pcVar8 = pcVar6;\n        do {\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        iVar3 = ~(uint)lVar10 - 1;\n        local_48 = 0;\n      }\n      else {\n        iVar3 = (int)pcVar8 - (int)pcVar6;\n        pcVar6[iVar3] = '\0';\n        local_48 = 1;\n      }\n      if (iVar3 == 1) {\n        cVar2 = *pcVar6;\n        switch(cVar2) {\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }\n      }\n      else if ((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)) {\n        FUN_0010ac09(param_4,0x3c,3);\n      }\n      else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }\n    }\n    iVar3 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-sshlog");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_0010921f;\n      goto LAB_0010924d;\n    }\n    iVar3 = FUN_00108083(1,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_001095f3:\n    uVar5 = FUN_001321a4(param_2);\n    FUN_0010af59(param_4,0x77,uVar5);\n    FUN_0010ac09(param_4,0x78,2);\n    FUN_00132212(uVar5);\n    iVar3 = strcmp((char *)param_1,"-sshlog");\n    uVar5 = 2;\n    if (iVar3 != 0) {\nLAB_0010921f:\n      iVar3 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar3 != 0) {\n          return uVar5;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }\n      goto LAB_00109236;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n  }\n  else {\n    iVar3 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(1,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001095f3;\n    }\n    iVar3 = strcmp((char *)param_1,"-sshlog");\n    if (iVar3 != 0) goto LAB_0010921f;\nLAB_00109236:\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\nLAB_0010924d:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n  }\n  uVar5 = FUN_001321a4(param_2);\n  FUN_0010af59(param_4,0x77,uVar5);\n  iVar3 = strcmp((char *)param_1,"-sshlog");\n  FUN_0010ac09(param_4,0x78,4 - (uint)(iVar3 == 0));\n  FUN_00132212(uVar5);\n  iVar3 = strcmp((char *)param_1,"-proxycmd");\n  if (iVar3 != 0) {\n    return 2;\n  }\n  iVar3 = FUN_00108083(2,param_1);\n  if (iVar3 != 0) {\n    return 2;\n  }\nLAB_001092e3:\n  FUN_0010ac09(param_4,0xd,5);\n  FUN_0010ad3a(param_4,0x12,param_2);\n  return 2;\n}\n\n" comment comment (function_definition "undefined8 FUN_001082a0(byte *param_1,char *param_2,int param_3,undefined8 param_4)\n\n{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  int iVar4;\n  undefined8 uVar5;\n  char *pcVar6;\n  undefined8 uVar7;\n  char *pcVar8;\n  ulong uVar9;\n  FILE *__stream;\n  long lVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  long lVar13;\n  char *pcVar14;\n  bool bVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  undefined1 uVar19;\n  byte bVar20;\n  int local_48;\n  int local_3c;\n  \n  bVar20 = 0;\n  bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x28;\n  bVar18 = &stack0x00000000 == (undefined1 *)0x58;\n  lVar10 = 6;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-load";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar15 = *pbVar11 < *pbVar12;\n    bVar18 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar18);\n  bVar16 = false;\n  bVar15 = (!bVar15 && !bVar18) == bVar15;\n  if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (-1 < param_3) {\n      FUN_00116e22(param_2,param_4);\n      _DAT_00152558 = 1;\n      _DAT_00152560 = FUN_0010bd5d(param_2);\n      return 2;\n    }\n    return 2;\n  }\n  lVar10 = 5;\n  pbVar11 = param_1;\n  pbVar12 = &DAT_0013b272;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar18 = false;\n  bVar15 = (!bVar16 && !bVar15) == bVar16;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 3;\n        DAT_00152548 = 0x16;\n        FUN_0010ac09(param_4,2,3);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar10 = 8;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-telnet";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar16 = false;\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 1;\n        DAT_00152548 = 0x17;\n        FUN_0010ac09(param_4,2,1);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar10 = 8;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-rlogin";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar18 = false;\n  bVar15 = (!bVar16 && !bVar15) == bVar16;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 2;\n        DAT_00152548 = 0x201;\n        FUN_0010ac09(param_4,2,2);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar10 = 5;\n  pbVar11 = param_1;\n  pbVar12 = &DAT_0013b287;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar16 = false;\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    uVar17 = 0;\n    uVar19 = param_3 == 0;\n    if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    DAT_00152538 = 0;\n    FUN_0010ac09(param_4,2,0);\n    lVar10 = 8;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    bVar15 = false;\n    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (bVar18) {\n      iVar3 = FUN_00108083(3,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 1;\n      }\nLAB_0010858a:\n      uVar19 = 0;\n      DAT_00152538 = 4;\n      FUN_0010ac09(param_4,2,4);\n      uVar5 = FUN_0010a6d3(param_4,0);\n      FUN_0010ad3a(param_4,0x39,uVar5);\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n    }\n    else {\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n    }\n    uVar5 = 1;\n    if (bVar15) {\nLAB_00108687:\n      DAT_0015254c = DAT_0015254c | 1;\n      bVar15 = DAT_0015254c == 0;\n      uVar5 = 1;\n    }\n  }\n  else {\n    lVar10 = 8;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      uVar17 = param_3 == 0;\n      if (!(bool)uVar17) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_0010858a;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b294;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108687;\n    }\n    uVar5 = 0;\n  }\n  bVar18 = false;\n  lVar10 = 3;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)0x1440df;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);\n  bVar16 = false;\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    uVar17 = 0;\n    uVar19 = param_3 == 0;\n    if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    FUN_0010ad3a(param_4,0x34,param_2);\n    lVar10 = 9;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-loghost";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    bVar15 = false;\n    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (bVar18) {\n      iVar3 = FUN_00108083(2,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 2;\n      }\nLAB_0010a0b4:\n      uVar19 = 0;\n      FUN_0010ad3a(param_4,9,param_2);\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      uVar5 = 2;\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n      if (bVar15) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }\n    }\n    else {\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      uVar5 = 2;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (bVar15) goto LAB_00108738;\n    }\nLAB_0010884b:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2a9;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (!bVar15) goto LAB_00108865;\n    goto LAB_0010889d;\n  }\n  lVar10 = 9;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-loghost";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);\n  bVar18 = false;\n  bVar15 = (!bVar16 && !bVar15) == bVar16;\n  if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    uVar17 = param_3 == 0;\n    if (!(bool)uVar17) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    goto LAB_0010a0b4;\n  }\n  lVar10 = 9;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-hostkey";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (!bVar15) goto LAB_0010884b;\n  if (param_2 == (char *)0x0) {\n    return 0xfffffffe;\n  }\n  if (param_3 < 0) {\n    return 2;\n  }\nLAB_00108738:\n  iVar3 = FUN_00108083(2,param_1);\n  if (iVar3 != 0) {\n    return 2;\n  }\n  if (param_3 != 0) {\n    FUN_001080ad(param_1,param_2,0);\n    return 2;\n  }\nLAB_0010a103:\n  uVar5 = FUN_0010bd5d(param_2);\n  iVar3 = FUN_0010c8a8(uVar5);\n  uVar17 = 0;\n  uVar19 = iVar3 == 0;\n  if ((bool)uVar19) {\n    FUN_00134fb0("\'%s\' is not a valid format for a manual host key specification",param_2);\n    FUN_0010c4d3(uVar5);\n    return 2;\n  }\n  FUN_0010ade1(param_4,0xad,uVar5,&DAT_0013bec9);\n  FUN_0010c4d3(uVar5);\n  lVar10 = 3;\n  pbVar11 = param_1;\n  pbVar12 = &DAT_0013b2a9;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    uVar17 = *pbVar11 < *pbVar12;\n    uVar19 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while ((bool)uVar19);\n  uVar5 = 2;\n  bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n  if (bVar15) {\n    iVar3 = FUN_00108083(3,param_1);\n    bVar15 = iVar3 == 0;\n    if (!bVar15) {\n      return 2;\n    }\nLAB_001088cd:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)0x1440f1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    uVar17 = 0;\n    uVar19 = (!bVar18 && !bVar15) == bVar18;\n    if ((bool)uVar19) {\n      uVar5 = FUN_0010c2a6(&DAT_0013b2b6,param_2);\n      uVar7 = FUN_0010bd5d("D");\n    }\n    else {\n      bVar1 = param_1[1];\n      pcVar6 = (char *)FUN_0010b8c9(param_2,0x3a);\n      pcVar8 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\nLAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);\n        return 2;\n      }\n      do {\n        pcVar14 = pcVar8;\n        pcVar8 = pcVar6;\n        pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);\n      } while (pcVar6 != (char *)0x0);\n      if (pcVar14 == (char *)0x0) goto LAB_00108973;\n      uVar17 = pcVar14 < param_2;\n      uVar19 = (long)pcVar14 - (long)param_2 == 0;\n      uVar5 = FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2);\n      uVar7 = FUN_0010bd5d(pcVar14 + 1);\n    }\n    FUN_0010ade1(param_4,0x9b,uVar5,uVar7);\n    FUN_0010c4d3(uVar5);\n    FUN_0010c4d3(uVar7);\n    lVar10 = 4;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2ba;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    uVar5 = 2;\n    bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (!bVar15) goto LAB_00108a01;\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_00109fa5:\n    lVar10 = FUN_0010b8c9(param_2,0x3a);\n    if (lVar10 == 0) {\n      FUN_00134fb0("-nc expects argument of form \'host:port\'");\n      return 2;\n    }\n    uVar5 = FUN_0010c2a6(&DAT_0013b2b1,lVar10 - (long)param_2,param_2);\n    FUN_0010ad3a(param_4,0x2e,uVar5);\n    uVar9 = strtol((char *)(lVar10 + 1),(char **)0x0,10);\n    FUN_0010ac09(param_4,0x2f,uVar9 & 0xffffffff);\n    FUN_0010c4d3(uVar5);\n    iVar3 = strcmp((char *)param_1,"-m");\n    uVar5 = 2;\n    bVar15 = iVar3 == 0;\n    if (!bVar15) goto LAB_0010a032;\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_00109f54:\n    __stream = fopen64(param_2,"r");\n    if (__stream == (FILE *)0x0) {\n      FUN_00134fb0("unable to open command file \"%s\"",param_2);\n      return 2;\n    }\n    lVar13 = 0;\n    local_3c = 0;\n    lVar10 = 0;\n    while( true ) {\n      iVar4 = (int)lVar13;\n      iVar3 = fgetc(__stream);\n      if (iVar3 == -1) break;\n      local_48._0_1_ = (undefined1)iVar3;\n      if (iVar4 < local_3c) {\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      else {\n        local_3c = iVar4 + 0x200;\n        lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      lVar13 = lVar13 + 1;\n    }\n    if (iVar4 < local_3c) {\n      *(undefined1 *)(lVar10 + iVar4) = 0;\n    }\n    else {\n      lVar10 = FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1);\n      *(undefined1 *)(lVar10 + lVar13) = 0;\n    }\n    fclose(__stream);\n    FUN_0010ad3a(param_4,0x14,lVar10);\n    FUN_0010ad3a(param_4,0x15,&DAT_0013bec9);\n    FUN_0010ac09(param_4,0x16,1);\n    FUN_0010c4d3(lVar10);\n    iVar3 = strcmp((char *)param_1,"-P");\n    uVar5 = 2;\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      goto LAB_00109749;\n    }\nLAB_00108afa:\n    iVar3 = strcmp((char *)param_1,"-pw");\n    if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 2;\n      }\n      goto LAB_00109ee5;\n    }\n    iVar3 = strcmp((char *)param_1,"-agent");\n    if (iVar3 != 0) goto LAB_00108ba4;\nLAB_00108bce:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108bdc:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00108bf9:\n    FUN_0010ac09(param_4,0x1c,1);\n    iVar3 = strcmp((char *)param_1,"-noagent");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108c37;\n    }\n    iVar3 = strcmp((char *)param_1,"-nopagent");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00109e76;\nLAB_00108d1b:\n    iVar3 = strcmp((char *)param_1,"-nopageant");\n    if (iVar3 == 0) goto LAB_00108d2e;\n    iVar3 = strcmp((char *)param_1,"-A");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-a");\n      if (iVar3 != 0) goto LAB_00108c7d;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108db9;\n    }\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109d88:\n    FUN_0010ac09(param_4,0x1d,1);\n    iVar3 = strcmp((char *)param_1,"-a");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d25;\n    }\n    iVar3 = strcmp((char *)param_1,"-X");\n    uVar5 = 1;\n    if (iVar3 == 0) {\nLAB_00108ca2:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109c0f;\n    }\nLAB_00109dce:\n    iVar3 = strcmp((char *)param_1,"-x");\n    if (iVar3 != 0) goto LAB_00109de5;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108dff:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109c49:\n    FUN_0010ac09(param_4,0x95,0);\n    iVar3 = strcmp((char *)param_1,"-t");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c87:\n      FUN_0010ac09(param_4,0x16,0);\n      iVar3 = strcmp((char *)param_1,"-T");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }\n      iVar3 = strcmp((char *)param_1,"-N");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109ba0;\n    }\n    else {\n      iVar3 = strcmp((char *)param_1,"-T");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109e21;\nLAB_00109b7b:\n      iVar3 = strcmp((char *)param_1,"-N");\n      if (iVar3 == 0) {\n        if (param_3 < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }\n    }\n    iVar3 = strcmp((char *)param_1,"-C");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00108e8b:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\nLAB_0010989e:\n      FUN_0010ac09(param_4,0x17,1);\n      iVar3 = strcmp((char *)param_1,"-1");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }\n      iVar3 = strcmp((char *)param_1,"-2");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109930;\n      goto LAB_00109b26;\n    }\nLAB_00109aea:\n    iVar3 = strcmp((char *)param_1,"-1");\n    if (iVar3 != 0) goto LAB_00109b01;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108ed1:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_001098d8:\n    FUN_0010ac09(param_4,0x21,0);\n    iVar3 = strcmp((char *)param_1,"-2");\n    uVar5 = 1;\n    if (iVar3 != 0) goto LAB_00109930;\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\nLAB_00109918:\n    FUN_0010ac09(param_4,0x21,3);\n    uVar5 = 1;\n  }\n  else {\nLAB_00108865:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2ac;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\nLAB_0010889d:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      bVar15 = param_3 == 0;\n      if (!bVar15) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001088cd;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)0x1440f1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_0010889d;\n    iVar3 = strcmp((char *)param_1,"-nc");\n    bVar15 = iVar3 == 0;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109fa5;\n    }\nLAB_00108a01:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2be;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109f54;\n    }\nLAB_0010a032:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2c1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar18 && !bVar15) != bVar18) goto LAB_00108afa;\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }\nLAB_00109749:\n    uVar9 = strtol(param_2,(char **)0x0,10);\n    FUN_0010ac09(param_4,1,uVar9 & 0xffffffff);\n    iVar3 = strcmp((char *)param_1,"-pw");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\nLAB_00109ee5:\n      iVar3 = FUN_0010a543(param_4,2);\n      if (iVar3 == 3) {\n        DAT_00152128 = FUN_0010bd5d(param_2);\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = param_2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        FUN_0010c727(param_2,~uVar9 - 1);\n      }\n      else {\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }\n      iVar3 = strcmp((char *)param_1,"-agent");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-pagent");\n        uVar5 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108bf9;\n    }\n    iVar3 = strcmp((char *)param_1,"-agent");\n    uVar5 = 2;\n    if (iVar3 == 0) goto LAB_00108bdc;\nLAB_00108ba4:\n    iVar3 = strcmp((char *)param_1,"-pagent");\n    if (iVar3 == 0) goto LAB_00108bce;\nLAB_00108bb7:\n    iVar3 = strcmp((char *)param_1,"-pageant");\n    if (iVar3 == 0) goto LAB_00108bce;\n    iVar3 = strcmp((char *)param_1,"-noagent");\n    if ((iVar3 != 0) && (iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0))\n    goto LAB_00108d1b;\nLAB_00108d2e:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e76:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00108c37:\n    FUN_0010ac09(param_4,0x1c,0);\n    iVar3 = strcmp((char *)param_1,"-A");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d88;\n    }\n    iVar3 = strcmp((char *)param_1,"-a");\n    if (iVar3 != 0) {\n      uVar5 = 1;\nLAB_00108c7d:\n      iVar3 = strcmp((char *)param_1,"-X");\n      if (iVar3 != 0) goto LAB_00109dce;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108ca2;\n    }\nLAB_00108db9:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109d25:\n    FUN_0010ac09(param_4,0x1d,0);\n    iVar3 = strcmp((char *)param_1,"-X");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c0f:\n      FUN_0010ac09(param_4,0x95,1);\n      iVar3 = strcmp((char *)param_1,"-x");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }\n      iVar3 = strcmp((char *)param_1,"-t");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109dfc;\nLAB_00108e45:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_00109c87;\n    }\n    iVar3 = strcmp((char *)param_1,"-x");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108dff;\nLAB_00109de5:\n    iVar3 = strcmp((char *)param_1,"-t");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108e45;\n    }\nLAB_00109dfc:\n    iVar3 = strcmp((char *)param_1,"-T");\n    if (iVar3 != 0) goto LAB_00109b7b;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e21:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_00109cc5:\n    FUN_0010ac09(param_4,0x16,1);\n    iVar3 = strcmp((char *)param_1,"-N");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-C");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00108e8b;\n      goto LAB_00109aea;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\nLAB_00109a6e:\n    FUN_0010ac09(param_4,0x2d,1);\n    iVar3 = strcmp((char *)param_1,"-C");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_0010989e;\n    }\n    iVar3 = strcmp((char *)param_1,"-1");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108ed1;\nLAB_00109b01:\n    iVar3 = strcmp((char *)param_1,"-2");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00109b26:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109918;\n    }\n  }\nLAB_00109930:\n  iVar3 = strcmp((char *)param_1,"-i");\n  if (iVar3 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    uVar5 = FUN_001321a4(param_2);\n    FUN_0010af59(param_4,0x20,uVar5);\n    FUN_00132212(uVar5);\n    iVar3 = strcmp((char *)param_1,"-4");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-ipv4");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_00109814;\n    }\nLAB_001099af:\n    FUN_0010ac09(param_4,3,1);\n    iVar3 = strcmp((char *)param_1,"-6");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_001099de;\nLAB_00109827:\n    iVar3 = strcmp((char *)param_1,"-ipv6");\n    if (iVar3 == 0) goto LAB_0010983e;\n  }\n  else {\n    iVar3 = strcmp((char *)param_1,"-4");\n    if ((iVar3 == 0) || (iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_001099af;\n    }\nLAB_00109814:\n    iVar3 = strcmp((char *)param_1,"-6");\n    if (iVar3 != 0) goto LAB_00109827;\nLAB_0010983e:\n    if (param_3 < 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_001099de:\n    FUN_0010ac09(param_4,3,2);\n    uVar5 = 1;\n  }\n  iVar3 = strcmp((char *)param_1,"-sercfg");\n  if (iVar3 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }\n    iVar3 = FUN_0010a543(param_4,2);\n    pcVar6 = param_2;\n    if (iVar3 != 4) {\n      FUN_00134fb0("the -sercfg option can only be used with the serial protocol");\n    }\n    for (; *pcVar6 != '\0'; pcVar6 = pcVar6 + (local_48 + iVar3)) {\n      pcVar8 = strchr(pcVar6,0x2c);\n      if (pcVar8 == (char *)0x0) {\n        lVar10 = -1;\n        pcVar8 = pcVar6;\n        do {\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        iVar3 = ~(uint)lVar10 - 1;\n        local_48 = 0;\n      }\n      else {\n        iVar3 = (int)pcVar8 - (int)pcVar6;\n        pcVar6[iVar3] = '\0';\n        local_48 = 1;\n      }\n      if (iVar3 == 1) {\n        cVar2 = *pcVar6;\n        switch(cVar2) {\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }\n      }\n      else if ((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)) {\n        FUN_0010ac09(param_4,0x3c,3);\n      }\n      else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }\n    }\n    iVar3 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-sshlog");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_0010921f;\n      goto LAB_0010924d;\n    }\n    iVar3 = FUN_00108083(1,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_001095f3:\n    uVar5 = FUN_001321a4(param_2);\n    FUN_0010af59(param_4,0x77,uVar5);\n    FUN_0010ac09(param_4,0x78,2);\n    FUN_00132212(uVar5);\n    iVar3 = strcmp((char *)param_1,"-sshlog");\n    uVar5 = 2;\n    if (iVar3 != 0) {\nLAB_0010921f:\n      iVar3 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar3 != 0) {\n          return uVar5;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }\n      goto LAB_00109236;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n  }\n  else {\n    iVar3 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(1,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001095f3;\n    }\n    iVar3 = strcmp((char *)param_1,"-sshlog");\n    if (iVar3 != 0) goto LAB_0010921f;\nLAB_00109236:\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\nLAB_0010924d:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n  }\n  uVar5 = FUN_001321a4(param_2);\n  FUN_0010af59(param_4,0x77,uVar5);\n  iVar3 = strcmp((char *)param_1,"-sshlog");\n  FUN_0010ac09(param_4,0x78,4 - (uint)(iVar3 == 0));\n  FUN_00132212(uVar5);\n  iVar3 = strcmp((char *)param_1,"-proxycmd");\n  if (iVar3 != 0) {\n    return 2;\n  }\n  iVar3 = FUN_00108083(2,param_1);\n  if (iVar3 != 0) {\n    return 2;\n  }\nLAB_001092e3:\n  FUN_0010ac09(param_4,0xd,5);\n  FUN_0010ad3a(param_4,0x12,param_2);\n  return 2;\n}" type_identifier (function_declarator "FUN_001082a0(byte *param_1,char *param_2,int param_3,undefined8 param_4)" identifier (parameter_list "(byte *param_1,char *param_2,int param_3,undefined8 param_4)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  int iVar4;\n  undefined8 uVar5;\n  char *pcVar6;\n  undefined8 uVar7;\n  char *pcVar8;\n  ulong uVar9;\n  FILE *__stream;\n  long lVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  long lVar13;\n  char *pcVar14;\n  bool bVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  undefined1 uVar19;\n  byte bVar20;\n  int local_48;\n  int local_3c;\n  \n  bVar20 = 0;\n  bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x28;\n  bVar18 = &stack0x00000000 == (undefined1 *)0x58;\n  lVar10 = 6;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-load";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar15 = *pbVar11 < *pbVar12;\n    bVar18 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar18);\n  bVar16 = false;\n  bVar15 = (!bVar15 && !bVar18) == bVar15;\n  if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (-1 < param_3) {\n      FUN_00116e22(param_2,param_4);\n      _DAT_00152558 = 1;\n      _DAT_00152560 = FUN_0010bd5d(param_2);\n      return 2;\n    }\n    return 2;\n  }\n  lVar10 = 5;\n  pbVar11 = param_1;\n  pbVar12 = &DAT_0013b272;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar18 = false;\n  bVar15 = (!bVar16 && !bVar15) == bVar16;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 3;\n        DAT_00152548 = 0x16;\n        FUN_0010ac09(param_4,2,3);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar10 = 8;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-telnet";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar16 = false;\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 1;\n        DAT_00152548 = 0x17;\n        FUN_0010ac09(param_4,2,1);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar10 = 8;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-rlogin";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar18 = false;\n  bVar15 = (!bVar16 && !bVar15) == bVar16;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 2;\n        DAT_00152548 = 0x201;\n        FUN_0010ac09(param_4,2,2);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar10 = 5;\n  pbVar11 = param_1;\n  pbVar12 = &DAT_0013b287;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar16 = false;\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    uVar17 = 0;\n    uVar19 = param_3 == 0;\n    if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    DAT_00152538 = 0;\n    FUN_0010ac09(param_4,2,0);\n    lVar10 = 8;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    bVar15 = false;\n    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (bVar18) {\n      iVar3 = FUN_00108083(3,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 1;\n      }\nLAB_0010858a:\n      uVar19 = 0;\n      DAT_00152538 = 4;\n      FUN_0010ac09(param_4,2,4);\n      uVar5 = FUN_0010a6d3(param_4,0);\n      FUN_0010ad3a(param_4,0x39,uVar5);\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n    }\n    else {\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n    }\n    uVar5 = 1;\n    if (bVar15) {\nLAB_00108687:\n      DAT_0015254c = DAT_0015254c | 1;\n      bVar15 = DAT_0015254c == 0;\n      uVar5 = 1;\n    }\n  }\n  else {\n    lVar10 = 8;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      uVar17 = param_3 == 0;\n      if (!(bool)uVar17) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_0010858a;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b294;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108687;\n    }\n    uVar5 = 0;\n  }\n  bVar18 = false;\n  lVar10 = 3;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)0x1440df;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);\n  bVar16 = false;\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    uVar17 = 0;\n    uVar19 = param_3 == 0;\n    if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    FUN_0010ad3a(param_4,0x34,param_2);\n    lVar10 = 9;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-loghost";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    bVar15 = false;\n    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (bVar18) {\n      iVar3 = FUN_00108083(2,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 2;\n      }\nLAB_0010a0b4:\n      uVar19 = 0;\n      FUN_0010ad3a(param_4,9,param_2);\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      uVar5 = 2;\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n      if (bVar15) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }\n    }\n    else {\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      uVar5 = 2;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (bVar15) goto LAB_00108738;\n    }\nLAB_0010884b:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2a9;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (!bVar15) goto LAB_00108865;\n    goto LAB_0010889d;\n  }\n  lVar10 = 9;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-loghost";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);\n  bVar18 = false;\n  bVar15 = (!bVar16 && !bVar15) == bVar16;\n  if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    uVar17 = param_3 == 0;\n    if (!(bool)uVar17) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    goto LAB_0010a0b4;\n  }\n  lVar10 = 9;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-hostkey";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (!bVar15) goto LAB_0010884b;\n  if (param_2 == (char *)0x0) {\n    return 0xfffffffe;\n  }\n  if (param_3 < 0) {\n    return 2;\n  }\nLAB_00108738:\n  iVar3 = FUN_00108083(2,param_1);\n  if (iVar3 != 0) {\n    return 2;\n  }\n  if (param_3 != 0) {\n    FUN_001080ad(param_1,param_2,0);\n    return 2;\n  }\nLAB_0010a103:\n  uVar5 = FUN_0010bd5d(param_2);\n  iVar3 = FUN_0010c8a8(uVar5);\n  uVar17 = 0;\n  uVar19 = iVar3 == 0;\n  if ((bool)uVar19) {\n    FUN_00134fb0("\'%s\' is not a valid format for a manual host key specification",param_2);\n    FUN_0010c4d3(uVar5);\n    return 2;\n  }\n  FUN_0010ade1(param_4,0xad,uVar5,&DAT_0013bec9);\n  FUN_0010c4d3(uVar5);\n  lVar10 = 3;\n  pbVar11 = param_1;\n  pbVar12 = &DAT_0013b2a9;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    uVar17 = *pbVar11 < *pbVar12;\n    uVar19 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while ((bool)uVar19);\n  uVar5 = 2;\n  bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n  if (bVar15) {\n    iVar3 = FUN_00108083(3,param_1);\n    bVar15 = iVar3 == 0;\n    if (!bVar15) {\n      return 2;\n    }\nLAB_001088cd:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)0x1440f1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    uVar17 = 0;\n    uVar19 = (!bVar18 && !bVar15) == bVar18;\n    if ((bool)uVar19) {\n      uVar5 = FUN_0010c2a6(&DAT_0013b2b6,param_2);\n      uVar7 = FUN_0010bd5d("D");\n    }\n    else {\n      bVar1 = param_1[1];\n      pcVar6 = (char *)FUN_0010b8c9(param_2,0x3a);\n      pcVar8 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\nLAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);\n        return 2;\n      }\n      do {\n        pcVar14 = pcVar8;\n        pcVar8 = pcVar6;\n        pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);\n      } while (pcVar6 != (char *)0x0);\n      if (pcVar14 == (char *)0x0) goto LAB_00108973;\n      uVar17 = pcVar14 < param_2;\n      uVar19 = (long)pcVar14 - (long)param_2 == 0;\n      uVar5 = FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2);\n      uVar7 = FUN_0010bd5d(pcVar14 + 1);\n    }\n    FUN_0010ade1(param_4,0x9b,uVar5,uVar7);\n    FUN_0010c4d3(uVar5);\n    FUN_0010c4d3(uVar7);\n    lVar10 = 4;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2ba;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    uVar5 = 2;\n    bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (!bVar15) goto LAB_00108a01;\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_00109fa5:\n    lVar10 = FUN_0010b8c9(param_2,0x3a);\n    if (lVar10 == 0) {\n      FUN_00134fb0("-nc expects argument of form \'host:port\'");\n      return 2;\n    }\n    uVar5 = FUN_0010c2a6(&DAT_0013b2b1,lVar10 - (long)param_2,param_2);\n    FUN_0010ad3a(param_4,0x2e,uVar5);\n    uVar9 = strtol((char *)(lVar10 + 1),(char **)0x0,10);\n    FUN_0010ac09(param_4,0x2f,uVar9 & 0xffffffff);\n    FUN_0010c4d3(uVar5);\n    iVar3 = strcmp((char *)param_1,"-m");\n    uVar5 = 2;\n    bVar15 = iVar3 == 0;\n    if (!bVar15) goto LAB_0010a032;\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_00109f54:\n    __stream = fopen64(param_2,"r");\n    if (__stream == (FILE *)0x0) {\n      FUN_00134fb0("unable to open command file \"%s\"",param_2);\n      return 2;\n    }\n    lVar13 = 0;\n    local_3c = 0;\n    lVar10 = 0;\n    while( true ) {\n      iVar4 = (int)lVar13;\n      iVar3 = fgetc(__stream);\n      if (iVar3 == -1) break;\n      local_48._0_1_ = (undefined1)iVar3;\n      if (iVar4 < local_3c) {\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      else {\n        local_3c = iVar4 + 0x200;\n        lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      lVar13 = lVar13 + 1;\n    }\n    if (iVar4 < local_3c) {\n      *(undefined1 *)(lVar10 + iVar4) = 0;\n    }\n    else {\n      lVar10 = FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1);\n      *(undefined1 *)(lVar10 + lVar13) = 0;\n    }\n    fclose(__stream);\n    FUN_0010ad3a(param_4,0x14,lVar10);\n    FUN_0010ad3a(param_4,0x15,&DAT_0013bec9);\n    FUN_0010ac09(param_4,0x16,1);\n    FUN_0010c4d3(lVar10);\n    iVar3 = strcmp((char *)param_1,"-P");\n    uVar5 = 2;\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      goto LAB_00109749;\n    }\nLAB_00108afa:\n    iVar3 = strcmp((char *)param_1,"-pw");\n    if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 2;\n      }\n      goto LAB_00109ee5;\n    }\n    iVar3 = strcmp((char *)param_1,"-agent");\n    if (iVar3 != 0) goto LAB_00108ba4;\nLAB_00108bce:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108bdc:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00108bf9:\n    FUN_0010ac09(param_4,0x1c,1);\n    iVar3 = strcmp((char *)param_1,"-noagent");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108c37;\n    }\n    iVar3 = strcmp((char *)param_1,"-nopagent");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00109e76;\nLAB_00108d1b:\n    iVar3 = strcmp((char *)param_1,"-nopageant");\n    if (iVar3 == 0) goto LAB_00108d2e;\n    iVar3 = strcmp((char *)param_1,"-A");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-a");\n      if (iVar3 != 0) goto LAB_00108c7d;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108db9;\n    }\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109d88:\n    FUN_0010ac09(param_4,0x1d,1);\n    iVar3 = strcmp((char *)param_1,"-a");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d25;\n    }\n    iVar3 = strcmp((char *)param_1,"-X");\n    uVar5 = 1;\n    if (iVar3 == 0) {\nLAB_00108ca2:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109c0f;\n    }\nLAB_00109dce:\n    iVar3 = strcmp((char *)param_1,"-x");\n    if (iVar3 != 0) goto LAB_00109de5;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108dff:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109c49:\n    FUN_0010ac09(param_4,0x95,0);\n    iVar3 = strcmp((char *)param_1,"-t");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c87:\n      FUN_0010ac09(param_4,0x16,0);\n      iVar3 = strcmp((char *)param_1,"-T");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }\n      iVar3 = strcmp((char *)param_1,"-N");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109ba0;\n    }\n    else {\n      iVar3 = strcmp((char *)param_1,"-T");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109e21;\nLAB_00109b7b:\n      iVar3 = strcmp((char *)param_1,"-N");\n      if (iVar3 == 0) {\n        if (param_3 < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }\n    }\n    iVar3 = strcmp((char *)param_1,"-C");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00108e8b:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\nLAB_0010989e:\n      FUN_0010ac09(param_4,0x17,1);\n      iVar3 = strcmp((char *)param_1,"-1");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }\n      iVar3 = strcmp((char *)param_1,"-2");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109930;\n      goto LAB_00109b26;\n    }\nLAB_00109aea:\n    iVar3 = strcmp((char *)param_1,"-1");\n    if (iVar3 != 0) goto LAB_00109b01;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108ed1:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_001098d8:\n    FUN_0010ac09(param_4,0x21,0);\n    iVar3 = strcmp((char *)param_1,"-2");\n    uVar5 = 1;\n    if (iVar3 != 0) goto LAB_00109930;\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\nLAB_00109918:\n    FUN_0010ac09(param_4,0x21,3);\n    uVar5 = 1;\n  }\n  else {\nLAB_00108865:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2ac;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\nLAB_0010889d:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      bVar15 = param_3 == 0;\n      if (!bVar15) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001088cd;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)0x1440f1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_0010889d;\n    iVar3 = strcmp((char *)param_1,"-nc");\n    bVar15 = iVar3 == 0;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109fa5;\n    }\nLAB_00108a01:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2be;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109f54;\n    }\nLAB_0010a032:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2c1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar18 && !bVar15) != bVar18) goto LAB_00108afa;\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }\nLAB_00109749:\n    uVar9 = strtol(param_2,(char **)0x0,10);\n    FUN_0010ac09(param_4,1,uVar9 & 0xffffffff);\n    iVar3 = strcmp((char *)param_1,"-pw");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\nLAB_00109ee5:\n      iVar3 = FUN_0010a543(param_4,2);\n      if (iVar3 == 3) {\n        DAT_00152128 = FUN_0010bd5d(param_2);\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = param_2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        FUN_0010c727(param_2,~uVar9 - 1);\n      }\n      else {\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }\n      iVar3 = strcmp((char *)param_1,"-agent");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-pagent");\n        uVar5 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108bf9;\n    }\n    iVar3 = strcmp((char *)param_1,"-agent");\n    uVar5 = 2;\n    if (iVar3 == 0) goto LAB_00108bdc;\nLAB_00108ba4:\n    iVar3 = strcmp((char *)param_1,"-pagent");\n    if (iVar3 == 0) goto LAB_00108bce;\nLAB_00108bb7:\n    iVar3 = strcmp((char *)param_1,"-pageant");\n    if (iVar3 == 0) goto LAB_00108bce;\n    iVar3 = strcmp((char *)param_1,"-noagent");\n    if ((iVar3 != 0) && (iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0))\n    goto LAB_00108d1b;\nLAB_00108d2e:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e76:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00108c37:\n    FUN_0010ac09(param_4,0x1c,0);\n    iVar3 = strcmp((char *)param_1,"-A");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d88;\n    }\n    iVar3 = strcmp((char *)param_1,"-a");\n    if (iVar3 != 0) {\n      uVar5 = 1;\nLAB_00108c7d:\n      iVar3 = strcmp((char *)param_1,"-X");\n      if (iVar3 != 0) goto LAB_00109dce;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108ca2;\n    }\nLAB_00108db9:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109d25:\n    FUN_0010ac09(param_4,0x1d,0);\n    iVar3 = strcmp((char *)param_1,"-X");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c0f:\n      FUN_0010ac09(param_4,0x95,1);\n      iVar3 = strcmp((char *)param_1,"-x");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }\n      iVar3 = strcmp((char *)param_1,"-t");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109dfc;\nLAB_00108e45:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_00109c87;\n    }\n    iVar3 = strcmp((char *)param_1,"-x");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108dff;\nLAB_00109de5:\n    iVar3 = strcmp((char *)param_1,"-t");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108e45;\n    }\nLAB_00109dfc:\n    iVar3 = strcmp((char *)param_1,"-T");\n    if (iVar3 != 0) goto LAB_00109b7b;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e21:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_00109cc5:\n    FUN_0010ac09(param_4,0x16,1);\n    iVar3 = strcmp((char *)param_1,"-N");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-C");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00108e8b;\n      goto LAB_00109aea;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\nLAB_00109a6e:\n    FUN_0010ac09(param_4,0x2d,1);\n    iVar3 = strcmp((char *)param_1,"-C");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_0010989e;\n    }\n    iVar3 = strcmp((char *)param_1,"-1");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108ed1;\nLAB_00109b01:\n    iVar3 = strcmp((char *)param_1,"-2");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00109b26:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109918;\n    }\n  }\nLAB_00109930:\n  iVar3 = strcmp((char *)param_1,"-i");\n  if (iVar3 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    uVar5 = FUN_001321a4(param_2);\n    FUN_0010af59(param_4,0x20,uVar5);\n    FUN_00132212(uVar5);\n    iVar3 = strcmp((char *)param_1,"-4");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-ipv4");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_00109814;\n    }\nLAB_001099af:\n    FUN_0010ac09(param_4,3,1);\n    iVar3 = strcmp((char *)param_1,"-6");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_001099de;\nLAB_00109827:\n    iVar3 = strcmp((char *)param_1,"-ipv6");\n    if (iVar3 == 0) goto LAB_0010983e;\n  }\n  else {\n    iVar3 = strcmp((char *)param_1,"-4");\n    if ((iVar3 == 0) || (iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_001099af;\n    }\nLAB_00109814:\n    iVar3 = strcmp((char *)param_1,"-6");\n    if (iVar3 != 0) goto LAB_00109827;\nLAB_0010983e:\n    if (param_3 < 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_001099de:\n    FUN_0010ac09(param_4,3,2);\n    uVar5 = 1;\n  }\n  iVar3 = strcmp((char *)param_1,"-sercfg");\n  if (iVar3 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }\n    iVar3 = FUN_0010a543(param_4,2);\n    pcVar6 = param_2;\n    if (iVar3 != 4) {\n      FUN_00134fb0("the -sercfg option can only be used with the serial protocol");\n    }\n    for (; *pcVar6 != '\0'; pcVar6 = pcVar6 + (local_48 + iVar3)) {\n      pcVar8 = strchr(pcVar6,0x2c);\n      if (pcVar8 == (char *)0x0) {\n        lVar10 = -1;\n        pcVar8 = pcVar6;\n        do {\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        iVar3 = ~(uint)lVar10 - 1;\n        local_48 = 0;\n      }\n      else {\n        iVar3 = (int)pcVar8 - (int)pcVar6;\n        pcVar6[iVar3] = '\0';\n        local_48 = 1;\n      }\n      if (iVar3 == 1) {\n        cVar2 = *pcVar6;\n        switch(cVar2) {\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }\n      }\n      else if ((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)) {\n        FUN_0010ac09(param_4,0x3c,3);\n      }\n      else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }\n    }\n    iVar3 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-sshlog");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_0010921f;\n      goto LAB_0010924d;\n    }\n    iVar3 = FUN_00108083(1,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_001095f3:\n    uVar5 = FUN_001321a4(param_2);\n    FUN_0010af59(param_4,0x77,uVar5);\n    FUN_0010ac09(param_4,0x78,2);\n    FUN_00132212(uVar5);\n    iVar3 = strcmp((char *)param_1,"-sshlog");\n    uVar5 = 2;\n    if (iVar3 != 0) {\nLAB_0010921f:\n      iVar3 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar3 != 0) {\n          return uVar5;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }\n      goto LAB_00109236;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n  }\n  else {\n    iVar3 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(1,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001095f3;\n    }\n    iVar3 = strcmp((char *)param_1,"-sshlog");\n    if (iVar3 != 0) goto LAB_0010921f;\nLAB_00109236:\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\nLAB_0010924d:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n  }\n  uVar5 = FUN_001321a4(param_2);\n  FUN_0010af59(param_4,0x77,uVar5);\n  iVar3 = strcmp((char *)param_1,"-sshlog");\n  FUN_0010ac09(param_4,0x78,4 - (uint)(iVar3 == 0));\n  FUN_00132212(uVar5);\n  iVar3 = strcmp((char *)param_1,"-proxycmd");\n  if (iVar3 != 0) {\n    return 2;\n  }\n  iVar3 = FUN_00108083(2,param_1);\n  if (iVar3 != 0) {\n    return 2;\n  }\nLAB_001092e3:\n  FUN_0010ac09(param_4,0xd,5);\n  FUN_0010ad3a(param_4,0x12,param_2);\n  return 2;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "long lVar13;" (sized_type_specifier "long" long) identifier ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "undefined1 uVar17;" type_identifier identifier ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "undefined1 uVar19;" type_identifier identifier ;) (declaration "byte bVar20;" type_identifier identifier ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (expression_statement "bVar20 = 0;" (assignment_expression "bVar20 = 0" identifier = number_literal) ;) (expression_statement "bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x28;" (assignment_expression "bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x28" identifier = (binary_expression "&stack0xffffffffffffffd0 < (undefined1 *)0x28" (pointer_expression "&stack0xffffffffffffffd0" & identifier) < (cast_expression "(undefined1 *)0x28" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "bVar18 = &stack0x00000000 == (undefined1 *)0x58;" (assignment_expression "bVar18 = &stack0x00000000 == (undefined1 *)0x58" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x58" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x58" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "lVar10 = 6;" (assignment_expression "lVar10 = 6" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"-load";" (assignment_expression "pbVar12 = (byte *)"-load"" identifier = (cast_expression "(byte *)"-load"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""-load"" " string_content "))) ;) (do_statement "do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar15 = *pbVar11 < *pbVar12;\n    bVar18 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar18);" do (compound_statement "{\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar15 = *pbVar11 < *pbVar12;\n    bVar18 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar11 < *pbVar12;" (assignment_expression "bVar15 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar18 = *pbVar11 == *pbVar12;" (assignment_expression "bVar18 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar15 && !bVar18) == bVar15;" (assignment_expression "bVar15 = (!bVar15 && !bVar18) == bVar15" identifier = (binary_expression "(!bVar15 && !bVar18) == bVar15" (parenthesized_expression "(!bVar15 && !bVar18)" ( (binary_expression "!bVar15 && !bVar18" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (-1 < param_3) {\n      FUN_00116e22(param_2,param_4);\n      _DAT_00152558 = 1;\n      _DAT_00152560 = FUN_0010bd5d(param_2);\n      return 2;\n    }\n    return 2;\n  }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (-1 < param_3) {\n      FUN_00116e22(param_2,param_4);\n      _DAT_00152558 = 1;\n      _DAT_00152560 = FUN_0010bd5d(param_2);\n      return 2;\n    }\n    return 2;\n  }" { (if_statement "if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 0xfffffffe;\n    }" { (return_statement "return 0xfffffffe;" return number_literal ;) })) (if_statement "if (-1 < param_3) {\n      FUN_00116e22(param_2,param_4);\n      _DAT_00152558 = 1;\n      _DAT_00152560 = FUN_0010bd5d(param_2);\n      return 2;\n    }" if (parenthesized_expression "(-1 < param_3)" ( (binary_expression "-1 < param_3" number_literal < identifier) )) (compound_statement "{\n      FUN_00116e22(param_2,param_4);\n      _DAT_00152558 = 1;\n      _DAT_00152560 = FUN_0010bd5d(param_2);\n      return 2;\n    }" { (expression_statement "FUN_00116e22(param_2,param_4);" (call_expression "FUN_00116e22(param_2,param_4)" identifier (argument_list "(param_2,param_4)" ( identifier , identifier ))) ;) (expression_statement "_DAT_00152558 = 1;" (assignment_expression "_DAT_00152558 = 1" identifier = number_literal) ;) (expression_statement "_DAT_00152560 = FUN_0010bd5d(param_2);" (assignment_expression "_DAT_00152560 = FUN_0010bd5d(param_2)" identifier = (call_expression "FUN_0010bd5d(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (return_statement "return 2;" return number_literal ;) })) (return_statement "return 2;" return number_literal ;) })) (expression_statement "lVar10 = 5;" (assignment_expression "lVar10 = 5" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = &DAT_0013b272;" (assignment_expression "pbVar12 = &DAT_0013b272" identifier = (pointer_expression "&DAT_0013b272" & identifier)) ;) (do_statement "do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);" do (compound_statement "{\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar11 < *pbVar12;" (assignment_expression "bVar16 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar16 && !bVar15) == bVar16;" (assignment_expression "bVar15 = (!bVar16 && !bVar15) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar15) == bVar16" (parenthesized_expression "(!bVar16 && !bVar15)" ( (binary_expression "!bVar16 && !bVar15" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 3;\n        DAT_00152548 = 0x16;\n        FUN_0010ac09(param_4,2,3);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 3;\n        DAT_00152548 = 0x16;\n        FUN_0010ac09(param_4,2,3);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }" { (if_statement "if (param_3 < 0) {\n      return 1;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 3;\n        DAT_00152548 = 0x16;\n        FUN_0010ac09(param_4,2,3);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      if (param_3 == 0) {\n        DAT_00152538 = 3;\n        DAT_00152548 = 0x16;\n        FUN_0010ac09(param_4,2,3);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" { (if_statement "if (param_3 == 0) {\n        DAT_00152538 = 3;\n        DAT_00152548 = 0x16;\n        FUN_0010ac09(param_4,2,3);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n        DAT_00152538 = 3;\n        DAT_00152548 = 0x16;\n        FUN_0010ac09(param_4,2,3);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }" { (expression_statement "DAT_00152538 = 3;" (assignment_expression "DAT_00152538 = 3" identifier = number_literal) ;) (expression_statement "DAT_00152548 = 0x16;" (assignment_expression "DAT_00152548 = 0x16" identifier = number_literal) ;) (expression_statement "FUN_0010ac09(param_4,2,3);" (call_expression "FUN_0010ac09(param_4,2,3)" identifier (argument_list "(param_4,2,3)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "FUN_0010ac09(param_4,1,DAT_00152548);" (call_expression "FUN_0010ac09(param_4,1,DAT_00152548)" identifier (argument_list "(param_4,1,DAT_00152548)" ( identifier , number_literal , identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (return_statement "return 1;" return number_literal ;) })) (expression_statement "lVar10 = 8;" (assignment_expression "lVar10 = 8" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"-telnet";" (assignment_expression "pbVar12 = (byte *)"-telnet"" identifier = (cast_expression "(byte *)"-telnet"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""-telnet"" " string_content "))) ;) (do_statement "do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);" do (compound_statement "{\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar11 < *pbVar12;" (assignment_expression "bVar18 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" identifier = (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" ( (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 1;\n        DAT_00152548 = 0x17;\n        FUN_0010ac09(param_4,2,1);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 1;\n        DAT_00152548 = 0x17;\n        FUN_0010ac09(param_4,2,1);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }" { (if_statement "if (param_3 < 0) {\n      return 1;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 1;\n        DAT_00152548 = 0x17;\n        FUN_0010ac09(param_4,2,1);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      if (param_3 == 0) {\n        DAT_00152538 = 1;\n        DAT_00152548 = 0x17;\n        FUN_0010ac09(param_4,2,1);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" { (if_statement "if (param_3 == 0) {\n        DAT_00152538 = 1;\n        DAT_00152548 = 0x17;\n        FUN_0010ac09(param_4,2,1);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n        DAT_00152538 = 1;\n        DAT_00152548 = 0x17;\n        FUN_0010ac09(param_4,2,1);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }" { (expression_statement "DAT_00152538 = 1;" (assignment_expression "DAT_00152538 = 1" identifier = number_literal) ;) (expression_statement "DAT_00152548 = 0x17;" (assignment_expression "DAT_00152548 = 0x17" identifier = number_literal) ;) (expression_statement "FUN_0010ac09(param_4,2,1);" (call_expression "FUN_0010ac09(param_4,2,1)" identifier (argument_list "(param_4,2,1)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "FUN_0010ac09(param_4,1,DAT_00152548);" (call_expression "FUN_0010ac09(param_4,1,DAT_00152548)" identifier (argument_list "(param_4,1,DAT_00152548)" ( identifier , number_literal , identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (return_statement "return 1;" return number_literal ;) })) (expression_statement "lVar10 = 8;" (assignment_expression "lVar10 = 8" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"-rlogin";" (assignment_expression "pbVar12 = (byte *)"-rlogin"" identifier = (cast_expression "(byte *)"-rlogin"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""-rlogin"" " string_content "))) ;) (do_statement "do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);" do (compound_statement "{\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar11 < *pbVar12;" (assignment_expression "bVar16 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar16 && !bVar15) == bVar16;" (assignment_expression "bVar15 = (!bVar16 && !bVar15) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar15) == bVar16" (parenthesized_expression "(!bVar16 && !bVar15)" ( (binary_expression "!bVar16 && !bVar15" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 2;\n        DAT_00152548 = 0x201;\n        FUN_0010ac09(param_4,2,2);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 2;\n        DAT_00152548 = 0x201;\n        FUN_0010ac09(param_4,2,2);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }" { (if_statement "if (param_3 < 0) {\n      return 1;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 2;\n        DAT_00152548 = 0x201;\n        FUN_0010ac09(param_4,2,2);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      if (param_3 == 0) {\n        DAT_00152538 = 2;\n        DAT_00152548 = 0x201;\n        FUN_0010ac09(param_4,2,2);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" { (if_statement "if (param_3 == 0) {\n        DAT_00152538 = 2;\n        DAT_00152548 = 0x201;\n        FUN_0010ac09(param_4,2,2);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n        DAT_00152538 = 2;\n        DAT_00152548 = 0x201;\n        FUN_0010ac09(param_4,2,2);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }" { (expression_statement "DAT_00152538 = 2;" (assignment_expression "DAT_00152538 = 2" identifier = number_literal) ;) (expression_statement "DAT_00152548 = 0x201;" (assignment_expression "DAT_00152548 = 0x201" identifier = number_literal) ;) (expression_statement "FUN_0010ac09(param_4,2,2);" (call_expression "FUN_0010ac09(param_4,2,2)" identifier (argument_list "(param_4,2,2)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "FUN_0010ac09(param_4,1,DAT_00152548);" (call_expression "FUN_0010ac09(param_4,1,DAT_00152548)" identifier (argument_list "(param_4,1,DAT_00152548)" ( identifier , number_literal , identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (return_statement "return 1;" return number_literal ;) })) (expression_statement "lVar10 = 5;" (assignment_expression "lVar10 = 5" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = &DAT_0013b287;" (assignment_expression "pbVar12 = &DAT_0013b287" identifier = (pointer_expression "&DAT_0013b287" & identifier)) ;) (do_statement "do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);" do (compound_statement "{\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar11 < *pbVar12;" (assignment_expression "bVar18 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" identifier = (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" ( (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    uVar17 = 0;\n    uVar19 = param_3 == 0;\n    if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    DAT_00152538 = 0;\n    FUN_0010ac09(param_4,2,0);\n    lVar10 = 8;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    bVar15 = false;\n    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (bVar18) {\n      iVar3 = FUN_00108083(3,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 1;\n      }\nLAB_0010858a:\n      uVar19 = 0;\n      DAT_00152538 = 4;\n      FUN_0010ac09(param_4,2,4);\n      uVar5 = FUN_0010a6d3(param_4,0);\n      FUN_0010ad3a(param_4,0x39,uVar5);\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n    }\n    else {\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n    }\n    uVar5 = 1;\n    if (bVar15) {\nLAB_00108687:\n      DAT_0015254c = DAT_0015254c | 1;\n      bVar15 = DAT_0015254c == 0;\n      uVar5 = 1;\n    }\n  }\n  else {\n    lVar10 = 8;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      uVar17 = param_3 == 0;\n      if (!(bool)uVar17) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_0010858a;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b294;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108687;\n    }\n    uVar5 = 0;\n  }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    uVar17 = 0;\n    uVar19 = param_3 == 0;\n    if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    DAT_00152538 = 0;\n    FUN_0010ac09(param_4,2,0);\n    lVar10 = 8;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    bVar15 = false;\n    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (bVar18) {\n      iVar3 = FUN_00108083(3,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 1;\n      }\nLAB_0010858a:\n      uVar19 = 0;\n      DAT_00152538 = 4;\n      FUN_0010ac09(param_4,2,4);\n      uVar5 = FUN_0010a6d3(param_4,0);\n      FUN_0010ad3a(param_4,0x39,uVar5);\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n    }\n    else {\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n    }\n    uVar5 = 1;\n    if (bVar15) {\nLAB_00108687:\n      DAT_0015254c = DAT_0015254c | 1;\n      bVar15 = DAT_0015254c == 0;\n      uVar5 = 1;\n    }\n  }" { (if_statement "if (param_3 < 0) {\n      return 1;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar19 = param_3 == 0;" (assignment_expression "uVar19 = param_3 == 0" identifier = (binary_expression "param_3 == 0" identifier == number_literal)) ;) (if_statement "if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" if (parenthesized_expression "(!(bool)uVar19)" ( (unary_expression "!(bool)uVar19" ! (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "DAT_00152538 = 0;" (assignment_expression "DAT_00152538 = 0" identifier = number_literal) ;) (expression_statement "FUN_0010ac09(param_4,2,0);" (call_expression "FUN_0010ac09(param_4,2,0)" identifier (argument_list "(param_4,2,0)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "lVar10 = 8;" (assignment_expression "lVar10 = 8" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"-serial";" (assignment_expression "pbVar12 = (byte *)"-serial"" identifier = (cast_expression "(byte *)"-serial"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""-serial"" " string_content "))) ;) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);" do (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "uVar17 = *pbVar11 < *pbVar12;" (assignment_expression "uVar17 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "uVar19 = *pbVar11 == *pbVar12;" (assignment_expression "uVar19 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar19)" ( (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;" (assignment_expression "bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17" identifier = (binary_expression "(!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17" (parenthesized_expression "(!(bool)uVar17 && !(bool)uVar19)" ( (binary_expression "!(bool)uVar17 && !(bool)uVar19" (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar19" ! (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar18) {\n      iVar3 = FUN_00108083(3,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 1;\n      }\nLAB_0010858a:\n      uVar19 = 0;\n      DAT_00152538 = 4;\n      FUN_0010ac09(param_4,2,4);\n      uVar5 = FUN_0010a6d3(param_4,0);\n      FUN_0010ad3a(param_4,0x39,uVar5);\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n    }\n    else {\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n    }" if (parenthesized_expression "(bVar18)" ( identifier )) (compound_statement "{\n      iVar3 = FUN_00108083(3,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 1;\n      }\nLAB_0010858a:\n      uVar19 = 0;\n      DAT_00152538 = 4;\n      FUN_0010ac09(param_4,2,4);\n      uVar5 = FUN_0010a6d3(param_4,0);\n      FUN_0010ad3a(param_4,0x39,uVar5);\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n    }" { (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (expression_statement "uVar17 = iVar3 == 0;" (assignment_expression "uVar17 = iVar3 == 0" identifier = (binary_expression "iVar3 == 0" identifier == number_literal)) ;) (if_statement "if (!(bool)uVar17) {\n        return 1;\n      }" if (parenthesized_expression "(!(bool)uVar17)" ( (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_0010858a:\n      uVar19 = 0;" statement_identifier : (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;)) (expression_statement "DAT_00152538 = 4;" (assignment_expression "DAT_00152538 = 4" identifier = number_literal) ;) (expression_statement "FUN_0010ac09(param_4,2,4);" (call_expression "FUN_0010ac09(param_4,2,4)" identifier (argument_list "(param_4,2,4)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "uVar5 = FUN_0010a6d3(param_4,0);" (assignment_expression "uVar5 = FUN_0010a6d3(param_4,0)" identifier = (call_expression "FUN_0010a6d3(param_4,0)" identifier (argument_list "(param_4,0)" ( identifier , number_literal )))) ;) (expression_statement "FUN_0010ad3a(param_4,0x39,uVar5);" (call_expression "FUN_0010ad3a(param_4,0x39,uVar5)" identifier (argument_list "(param_4,0x39,uVar5)" ( identifier , number_literal , identifier ))) ;) (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = &DAT_0013b294;" (assignment_expression "pbVar12 = &DAT_0013b294" identifier = (pointer_expression "&DAT_0013b294" & identifier)) ;) (do_statement "do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);" do (compound_statement "{\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "uVar19 = *pbVar11 < *pbVar12;" (assignment_expression "uVar19 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "uVar17 = *pbVar11 == *pbVar12;" (assignment_expression "uVar17 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar17)" ( (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;" (assignment_expression "bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19" identifier = (binary_expression "(!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19" (parenthesized_expression "(!(bool)uVar19 && !(bool)uVar17)" ( (binary_expression "!(bool)uVar19 && !(bool)uVar17" (unary_expression "!(bool)uVar19" ! (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) }) (else_clause "else {\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n    }" else (compound_statement "{\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n    }" { (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = &DAT_0013b294;" (assignment_expression "pbVar12 = &DAT_0013b294" identifier = (pointer_expression "&DAT_0013b294" & identifier)) ;) (do_statement "do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);" do (compound_statement "{\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar11 < *pbVar12;" (assignment_expression "bVar15 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar18 = *pbVar11 == *pbVar12;" (assignment_expression "bVar18 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "bVar15 = (!bVar15 && !bVar18) == bVar15;" (assignment_expression "bVar15 = (!bVar15 && !bVar18) == bVar15" identifier = (binary_expression "(!bVar15 && !bVar18) == bVar15" (parenthesized_expression "(!bVar15 && !bVar18)" ( (binary_expression "!bVar15 && !bVar18" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) }))) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (bVar15) {\nLAB_00108687:\n      DAT_0015254c = DAT_0015254c | 1;\n      bVar15 = DAT_0015254c == 0;\n      uVar5 = 1;\n    }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\nLAB_00108687:\n      DAT_0015254c = DAT_0015254c | 1;\n      bVar15 = DAT_0015254c == 0;\n      uVar5 = 1;\n    }" { (labeled_statement "LAB_00108687:\n      DAT_0015254c = DAT_0015254c | 1;" statement_identifier : (expression_statement "DAT_0015254c = DAT_0015254c | 1;" (assignment_expression "DAT_0015254c = DAT_0015254c | 1" identifier = (binary_expression "DAT_0015254c | 1" identifier | number_literal)) ;)) (expression_statement "bVar15 = DAT_0015254c == 0;" (assignment_expression "bVar15 = DAT_0015254c == 0" identifier = (binary_expression "DAT_0015254c == 0" identifier == number_literal)) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) })) }) (else_clause "else {\n    lVar10 = 8;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      uVar17 = param_3 == 0;\n      if (!(bool)uVar17) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_0010858a;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b294;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108687;\n    }\n    uVar5 = 0;\n  }" else (compound_statement "{\n    lVar10 = 8;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      uVar17 = param_3 == 0;\n      if (!(bool)uVar17) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_0010858a;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b294;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108687;\n    }\n    uVar5 = 0;\n  }" { (expression_statement "lVar10 = 8;" (assignment_expression "lVar10 = 8" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"-serial";" (assignment_expression "pbVar12 = (byte *)"-serial"" identifier = (cast_expression "(byte *)"-serial"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""-serial"" " string_content "))) ;) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar11 < *pbVar12;" (assignment_expression "bVar16 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar16 && !bVar15) == bVar16;" (assignment_expression "bVar15 = (!bVar16 && !bVar15) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar15) == bVar16" (parenthesized_expression "(!bVar16 && !bVar15)" ( (binary_expression "!bVar16 && !bVar15" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      uVar17 = param_3 == 0;\n      if (!(bool)uVar17) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_0010858a;\n    }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      uVar17 = param_3 == 0;\n      if (!(bool)uVar17) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_0010858a;\n    }" { (if_statement "if (param_3 < 0) {\n        return 1;\n      }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar17 = param_3 == 0;" (assignment_expression "uVar17 = param_3 == 0" identifier = (binary_expression "param_3 == 0" identifier == number_literal)) ;) (if_statement "if (!(bool)uVar17) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }" if (parenthesized_expression "(!(bool)uVar17)" ( (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_0010858a;" goto statement_identifier ;) })) (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = &DAT_0013b294;" (assignment_expression "pbVar12 = &DAT_0013b294" identifier = (pointer_expression "&DAT_0013b294" & identifier)) ;) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar11 < *pbVar12;" (assignment_expression "bVar18 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" identifier = (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" ( (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108687;\n    }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108687;\n    }" { (if_statement "if (param_3 < 0) {\n        return 1;\n      }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00108687;" goto statement_identifier ;) })) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)0x1440df;" (assignment_expression "pbVar12 = (byte *)0x1440df" identifier = (cast_expression "(byte *)0x1440df" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);" do (compound_statement "{\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar11 < *pbVar12;" (assignment_expression "bVar18 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" identifier = (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" ( (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    uVar17 = 0;\n    uVar19 = param_3 == 0;\n    if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    FUN_0010ad3a(param_4,0x34,param_2);\n    lVar10 = 9;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-loghost";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    bVar15 = false;\n    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (bVar18) {\n      iVar3 = FUN_00108083(2,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 2;\n      }\nLAB_0010a0b4:\n      uVar19 = 0;\n      FUN_0010ad3a(param_4,9,param_2);\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      uVar5 = 2;\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n      if (bVar15) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }\n    }\n    else {\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      uVar5 = 2;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (bVar15) goto LAB_00108738;\n    }\nLAB_0010884b:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2a9;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (!bVar15) goto LAB_00108865;\n    goto LAB_0010889d;\n  }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    uVar17 = 0;\n    uVar19 = param_3 == 0;\n    if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    FUN_0010ad3a(param_4,0x34,param_2);\n    lVar10 = 9;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-loghost";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    bVar15 = false;\n    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (bVar18) {\n      iVar3 = FUN_00108083(2,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 2;\n      }\nLAB_0010a0b4:\n      uVar19 = 0;\n      FUN_0010ad3a(param_4,9,param_2);\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      uVar5 = 2;\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n      if (bVar15) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }\n    }\n    else {\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      uVar5 = 2;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (bVar15) goto LAB_00108738;\n    }\nLAB_0010884b:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2a9;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (!bVar15) goto LAB_00108865;\n    goto LAB_0010889d;\n  }" { (if_statement "if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 0xfffffffe;\n    }" { (return_statement "return 0xfffffffe;" return number_literal ;) })) (if_statement "if (param_3 < 0) {\n      return 2;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      return 2;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar19 = param_3 == 0;" (assignment_expression "uVar19 = param_3 == 0" identifier = (binary_expression "param_3 == 0" identifier == number_literal)) ;) (if_statement "if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }" if (parenthesized_expression "(!(bool)uVar19)" ( (unary_expression "!(bool)uVar19" ! (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (expression_statement "FUN_0010ad3a(param_4,0x34,param_2);" (call_expression "FUN_0010ad3a(param_4,0x34,param_2)" identifier (argument_list "(param_4,0x34,param_2)" ( identifier , number_literal , identifier ))) ;) (expression_statement "lVar10 = 9;" (assignment_expression "lVar10 = 9" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"-loghost";" (assignment_expression "pbVar12 = (byte *)"-loghost"" identifier = (cast_expression "(byte *)"-loghost"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""-loghost"" " string_content "))) ;) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);" do (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "uVar17 = *pbVar11 < *pbVar12;" (assignment_expression "uVar17 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "uVar19 = *pbVar11 == *pbVar12;" (assignment_expression "uVar19 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar19)" ( (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;" (assignment_expression "bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17" identifier = (binary_expression "(!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17" (parenthesized_expression "(!(bool)uVar17 && !(bool)uVar19)" ( (binary_expression "!(bool)uVar17 && !(bool)uVar19" (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar19" ! (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar18) {\n      iVar3 = FUN_00108083(2,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 2;\n      }\nLAB_0010a0b4:\n      uVar19 = 0;\n      FUN_0010ad3a(param_4,9,param_2);\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      uVar5 = 2;\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n      if (bVar15) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }\n    }\n    else {\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      uVar5 = 2;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (bVar15) goto LAB_00108738;\n    }" if (parenthesized_expression "(bVar18)" ( identifier )) (compound_statement "{\n      iVar3 = FUN_00108083(2,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 2;\n      }\nLAB_0010a0b4:\n      uVar19 = 0;\n      FUN_0010ad3a(param_4,9,param_2);\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      uVar5 = 2;\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n      if (bVar15) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }\n    }" { (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (expression_statement "uVar17 = iVar3 == 0;" (assignment_expression "uVar17 = iVar3 == 0" identifier = (binary_expression "iVar3 == 0" identifier == number_literal)) ;) (if_statement "if (!(bool)uVar17) {\n        return 2;\n      }" if (parenthesized_expression "(!(bool)uVar17)" ( (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_0010a0b4:\n      uVar19 = 0;" statement_identifier : (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;)) (expression_statement "FUN_0010ad3a(param_4,9,param_2);" (call_expression "FUN_0010ad3a(param_4,9,param_2)" identifier (argument_list "(param_4,9,param_2)" ( identifier , number_literal , identifier ))) ;) (expression_statement "lVar10 = 9;" (assignment_expression "lVar10 = 9" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"-hostkey";" (assignment_expression "pbVar12 = (byte *)"-hostkey"" identifier = (cast_expression "(byte *)"-hostkey"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""-hostkey"" " string_content "))) ;) (do_statement "do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);" do (compound_statement "{\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "uVar19 = *pbVar11 < *pbVar12;" (assignment_expression "uVar19 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "uVar17 = *pbVar11 == *pbVar12;" (assignment_expression "uVar17 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar17)" ( (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" identifier = number_literal) ;) (expression_statement "bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;" (assignment_expression "bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19" identifier = (binary_expression "(!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19" (parenthesized_expression "(!(bool)uVar19 && !(bool)uVar17)" ( (binary_expression "!(bool)uVar19 && !(bool)uVar17" (unary_expression "!(bool)uVar19" ! (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar15) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }" { (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n          return 2;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          return 2;\n        }" { (return_statement "return 2;" return number_literal ;) })) (goto_statement "goto LAB_0010a103;" goto statement_identifier ;) })) }) (else_clause "else {\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      uVar5 = 2;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (bVar15) goto LAB_00108738;\n    }" else (compound_statement "{\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      uVar5 = 2;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (bVar15) goto LAB_00108738;\n    }" { (expression_statement "lVar10 = 9;" (assignment_expression "lVar10 = 9" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"-hostkey";" (assignment_expression "pbVar12 = (byte *)"-hostkey"" identifier = (cast_expression "(byte *)"-hostkey"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""-hostkey"" " string_content "))) ;) (do_statement "do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);" do (compound_statement "{\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar11 < *pbVar12;" (assignment_expression "bVar15 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar18 = *pbVar11 == *pbVar12;" (assignment_expression "bVar18 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" identifier = number_literal) ;) (expression_statement "bVar15 = (!bVar15 && !bVar18) == bVar15;" (assignment_expression "bVar15 = (!bVar15 && !bVar18) == bVar15" identifier = (binary_expression "(!bVar15 && !bVar18) == bVar15" (parenthesized_expression "(!bVar15 && !bVar18)" ( (binary_expression "!bVar15 && !bVar18" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) goto LAB_00108738;" if (parenthesized_expression "(bVar15)" ( identifier )) (goto_statement "goto LAB_00108738;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0010884b:\n    bVar18 = false;" statement_identifier : (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;)) (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = &DAT_0013b2a9;" (assignment_expression "pbVar12 = &DAT_0013b2a9" identifier = (pointer_expression "&DAT_0013b2a9" & identifier)) ;) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar11 < *pbVar12;" (assignment_expression "bVar18 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" identifier = (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" ( (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar15) goto LAB_00108865;" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (goto_statement "goto LAB_00108865;" goto statement_identifier ;)) (goto_statement "goto LAB_0010889d;" goto statement_identifier ;) })) (expression_statement "lVar10 = 9;" (assignment_expression "lVar10 = 9" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"-loghost";" (assignment_expression "pbVar12 = (byte *)"-loghost"" identifier = (cast_expression "(byte *)"-loghost"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""-loghost"" " string_content "))) ;) (do_statement "do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);" do (compound_statement "{\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar11 < *pbVar12;" (assignment_expression "bVar16 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar16 && !bVar15) == bVar16;" (assignment_expression "bVar15 = (!bVar16 && !bVar15) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar15) == bVar16" (parenthesized_expression "(!bVar16 && !bVar15)" ( (binary_expression "!bVar16 && !bVar15" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    uVar17 = param_3 == 0;\n    if (!(bool)uVar17) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    goto LAB_0010a0b4;\n  }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    uVar17 = param_3 == 0;\n    if (!(bool)uVar17) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    goto LAB_0010a0b4;\n  }" { (if_statement "if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 0xfffffffe;\n    }" { (return_statement "return 0xfffffffe;" return number_literal ;) })) (if_statement "if (param_3 < 0) {\n      return 2;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      return 2;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "uVar17 = param_3 == 0;" (assignment_expression "uVar17 = param_3 == 0" identifier = (binary_expression "param_3 == 0" identifier == number_literal)) ;) (if_statement "if (!(bool)uVar17) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }" if (parenthesized_expression "(!(bool)uVar17)" ( (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (goto_statement "goto LAB_0010a0b4;" goto statement_identifier ;) })) (expression_statement "lVar10 = 9;" (assignment_expression "lVar10 = 9" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"-hostkey";" (assignment_expression "pbVar12 = (byte *)"-hostkey"" identifier = (cast_expression "(byte *)"-hostkey"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""-hostkey"" " string_content "))) ;) (do_statement "do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);" do (compound_statement "{\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar11 < *pbVar12;" (assignment_expression "bVar18 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" identifier = (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" ( (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar15) goto LAB_0010884b;" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (goto_statement "goto LAB_0010884b;" goto statement_identifier ;)) (if_statement "if (param_2 == (char *)0x0) {\n    return 0xfffffffe;\n  }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return 0xfffffffe;\n  }" { (return_statement "return 0xfffffffe;" return number_literal ;) })) (if_statement "if (param_3 < 0) {\n    return 2;\n  }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n    return 2;\n  }" { (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_00108738:\n  iVar3 = FUN_00108083(2,param_1);" statement_identifier : (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar3 != 0) {\n    return 2;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    return 2;\n  }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n    FUN_001080ad(param_1,param_2,0);\n    return 2;\n  }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_001080ad(param_1,param_2,0);\n    return 2;\n  }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_0010a103:\n  uVar5 = FUN_0010bd5d(param_2);" statement_identifier : (expression_statement "uVar5 = FUN_0010bd5d(param_2);" (assignment_expression "uVar5 = FUN_0010bd5d(param_2)" identifier = (call_expression "FUN_0010bd5d(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;)) (expression_statement "iVar3 = FUN_0010c8a8(uVar5);" (assignment_expression "iVar3 = FUN_0010c8a8(uVar5)" identifier = (call_expression "FUN_0010c8a8(uVar5)" identifier (argument_list "(uVar5)" ( identifier )))) ;) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar19 = iVar3 == 0;" (assignment_expression "uVar19 = iVar3 == 0" identifier = (binary_expression "iVar3 == 0" identifier == number_literal)) ;) (if_statement "if ((bool)uVar19) {\n    FUN_00134fb0("\'%s\' is not a valid format for a manual host key specification",param_2);\n    FUN_0010c4d3(uVar5);\n    return 2;\n  }" if (parenthesized_expression "((bool)uVar19)" ( (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\n    FUN_00134fb0("\'%s\' is not a valid format for a manual host key specification",param_2);\n    FUN_0010c4d3(uVar5);\n    return 2;\n  }" { (expression_statement "FUN_00134fb0("\'%s\' is not a valid format for a manual host key specification",param_2);" (call_expression "FUN_00134fb0("\'%s\' is not a valid format for a manual host key specification",param_2)" identifier (argument_list "("\'%s\' is not a valid format for a manual host key specification",param_2)" ( (string_literal ""\'%s\' is not a valid format for a manual host key specification"" " escape_sequence string_content escape_sequence string_content ") , identifier ))) ;) (expression_statement "FUN_0010c4d3(uVar5);" (call_expression "FUN_0010c4d3(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (return_statement "return 2;" return number_literal ;) })) (expression_statement "FUN_0010ade1(param_4,0xad,uVar5,&DAT_0013bec9);" (call_expression "FUN_0010ade1(param_4,0xad,uVar5,&DAT_0013bec9)" identifier (argument_list "(param_4,0xad,uVar5,&DAT_0013bec9)" ( identifier , number_literal , identifier , (pointer_expression "&DAT_0013bec9" & identifier) ))) ;) (expression_statement "FUN_0010c4d3(uVar5);" (call_expression "FUN_0010c4d3(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = &DAT_0013b2a9;" (assignment_expression "pbVar12 = &DAT_0013b2a9" identifier = (pointer_expression "&DAT_0013b2a9" & identifier)) ;) (do_statement "do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    uVar17 = *pbVar11 < *pbVar12;\n    uVar19 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while ((bool)uVar19);" do (compound_statement "{\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    uVar17 = *pbVar11 < *pbVar12;\n    uVar19 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "uVar17 = *pbVar11 < *pbVar12;" (assignment_expression "uVar17 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "uVar19 = *pbVar11 == *pbVar12;" (assignment_expression "uVar19 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar19)" ( (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" identifier = number_literal) ;) (expression_statement "bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;" (assignment_expression "bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17" identifier = (binary_expression "(!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17" (parenthesized_expression "(!(bool)uVar17 && !(bool)uVar19)" ( (binary_expression "!(bool)uVar17 && !(bool)uVar19" (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar19" ! (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar15) {\n    iVar3 = FUN_00108083(3,param_1);\n    bVar15 = iVar3 == 0;\n    if (!bVar15) {\n      return 2;\n    }\nLAB_001088cd:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)0x1440f1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    uVar17 = 0;\n    uVar19 = (!bVar18 && !bVar15) == bVar18;\n    if ((bool)uVar19) {\n      uVar5 = FUN_0010c2a6(&DAT_0013b2b6,param_2);\n      uVar7 = FUN_0010bd5d("D");\n    }\n    else {\n      bVar1 = param_1[1];\n      pcVar6 = (char *)FUN_0010b8c9(param_2,0x3a);\n      pcVar8 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\nLAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);\n        return 2;\n      }\n      do {\n        pcVar14 = pcVar8;\n        pcVar8 = pcVar6;\n        pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);\n      } while (pcVar6 != (char *)0x0);\n      if (pcVar14 == (char *)0x0) goto LAB_00108973;\n      uVar17 = pcVar14 < param_2;\n      uVar19 = (long)pcVar14 - (long)param_2 == 0;\n      uVar5 = FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2);\n      uVar7 = FUN_0010bd5d(pcVar14 + 1);\n    }\n    FUN_0010ade1(param_4,0x9b,uVar5,uVar7);\n    FUN_0010c4d3(uVar5);\n    FUN_0010c4d3(uVar7);\n    lVar10 = 4;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2ba;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    uVar5 = 2;\n    bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (!bVar15) goto LAB_00108a01;\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_00109fa5:\n    lVar10 = FUN_0010b8c9(param_2,0x3a);\n    if (lVar10 == 0) {\n      FUN_00134fb0("-nc expects argument of form \'host:port\'");\n      return 2;\n    }\n    uVar5 = FUN_0010c2a6(&DAT_0013b2b1,lVar10 - (long)param_2,param_2);\n    FUN_0010ad3a(param_4,0x2e,uVar5);\n    uVar9 = strtol((char *)(lVar10 + 1),(char **)0x0,10);\n    FUN_0010ac09(param_4,0x2f,uVar9 & 0xffffffff);\n    FUN_0010c4d3(uVar5);\n    iVar3 = strcmp((char *)param_1,"-m");\n    uVar5 = 2;\n    bVar15 = iVar3 == 0;\n    if (!bVar15) goto LAB_0010a032;\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_00109f54:\n    __stream = fopen64(param_2,"r");\n    if (__stream == (FILE *)0x0) {\n      FUN_00134fb0("unable to open command file \"%s\"",param_2);\n      return 2;\n    }\n    lVar13 = 0;\n    local_3c = 0;\n    lVar10 = 0;\n    while( true ) {\n      iVar4 = (int)lVar13;\n      iVar3 = fgetc(__stream);\n      if (iVar3 == -1) break;\n      local_48._0_1_ = (undefined1)iVar3;\n      if (iVar4 < local_3c) {\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      else {\n        local_3c = iVar4 + 0x200;\n        lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      lVar13 = lVar13 + 1;\n    }\n    if (iVar4 < local_3c) {\n      *(undefined1 *)(lVar10 + iVar4) = 0;\n    }\n    else {\n      lVar10 = FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1);\n      *(undefined1 *)(lVar10 + lVar13) = 0;\n    }\n    fclose(__stream);\n    FUN_0010ad3a(param_4,0x14,lVar10);\n    FUN_0010ad3a(param_4,0x15,&DAT_0013bec9);\n    FUN_0010ac09(param_4,0x16,1);\n    FUN_0010c4d3(lVar10);\n    iVar3 = strcmp((char *)param_1,"-P");\n    uVar5 = 2;\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      goto LAB_00109749;\n    }\nLAB_00108afa:\n    iVar3 = strcmp((char *)param_1,"-pw");\n    if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 2;\n      }\n      goto LAB_00109ee5;\n    }\n    iVar3 = strcmp((char *)param_1,"-agent");\n    if (iVar3 != 0) goto LAB_00108ba4;\nLAB_00108bce:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108bdc:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00108bf9:\n    FUN_0010ac09(param_4,0x1c,1);\n    iVar3 = strcmp((char *)param_1,"-noagent");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108c37;\n    }\n    iVar3 = strcmp((char *)param_1,"-nopagent");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00109e76;\nLAB_00108d1b:\n    iVar3 = strcmp((char *)param_1,"-nopageant");\n    if (iVar3 == 0) goto LAB_00108d2e;\n    iVar3 = strcmp((char *)param_1,"-A");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-a");\n      if (iVar3 != 0) goto LAB_00108c7d;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108db9;\n    }\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109d88:\n    FUN_0010ac09(param_4,0x1d,1);\n    iVar3 = strcmp((char *)param_1,"-a");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d25;\n    }\n    iVar3 = strcmp((char *)param_1,"-X");\n    uVar5 = 1;\n    if (iVar3 == 0) {\nLAB_00108ca2:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109c0f;\n    }\nLAB_00109dce:\n    iVar3 = strcmp((char *)param_1,"-x");\n    if (iVar3 != 0) goto LAB_00109de5;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108dff:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109c49:\n    FUN_0010ac09(param_4,0x95,0);\n    iVar3 = strcmp((char *)param_1,"-t");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c87:\n      FUN_0010ac09(param_4,0x16,0);\n      iVar3 = strcmp((char *)param_1,"-T");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }\n      iVar3 = strcmp((char *)param_1,"-N");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109ba0;\n    }\n    else {\n      iVar3 = strcmp((char *)param_1,"-T");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109e21;\nLAB_00109b7b:\n      iVar3 = strcmp((char *)param_1,"-N");\n      if (iVar3 == 0) {\n        if (param_3 < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }\n    }\n    iVar3 = strcmp((char *)param_1,"-C");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00108e8b:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\nLAB_0010989e:\n      FUN_0010ac09(param_4,0x17,1);\n      iVar3 = strcmp((char *)param_1,"-1");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }\n      iVar3 = strcmp((char *)param_1,"-2");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109930;\n      goto LAB_00109b26;\n    }\nLAB_00109aea:\n    iVar3 = strcmp((char *)param_1,"-1");\n    if (iVar3 != 0) goto LAB_00109b01;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108ed1:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_001098d8:\n    FUN_0010ac09(param_4,0x21,0);\n    iVar3 = strcmp((char *)param_1,"-2");\n    uVar5 = 1;\n    if (iVar3 != 0) goto LAB_00109930;\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\nLAB_00109918:\n    FUN_0010ac09(param_4,0x21,3);\n    uVar5 = 1;\n  }\n  else {\nLAB_00108865:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2ac;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\nLAB_0010889d:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      bVar15 = param_3 == 0;\n      if (!bVar15) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001088cd;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)0x1440f1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_0010889d;\n    iVar3 = strcmp((char *)param_1,"-nc");\n    bVar15 = iVar3 == 0;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109fa5;\n    }\nLAB_00108a01:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2be;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109f54;\n    }\nLAB_0010a032:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2c1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar18 && !bVar15) != bVar18) goto LAB_00108afa;\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }\nLAB_00109749:\n    uVar9 = strtol(param_2,(char **)0x0,10);\n    FUN_0010ac09(param_4,1,uVar9 & 0xffffffff);\n    iVar3 = strcmp((char *)param_1,"-pw");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\nLAB_00109ee5:\n      iVar3 = FUN_0010a543(param_4,2);\n      if (iVar3 == 3) {\n        DAT_00152128 = FUN_0010bd5d(param_2);\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = param_2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        FUN_0010c727(param_2,~uVar9 - 1);\n      }\n      else {\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }\n      iVar3 = strcmp((char *)param_1,"-agent");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-pagent");\n        uVar5 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108bf9;\n    }\n    iVar3 = strcmp((char *)param_1,"-agent");\n    uVar5 = 2;\n    if (iVar3 == 0) goto LAB_00108bdc;\nLAB_00108ba4:\n    iVar3 = strcmp((char *)param_1,"-pagent");\n    if (iVar3 == 0) goto LAB_00108bce;\nLAB_00108bb7:\n    iVar3 = strcmp((char *)param_1,"-pageant");\n    if (iVar3 == 0) goto LAB_00108bce;\n    iVar3 = strcmp((char *)param_1,"-noagent");\n    if ((iVar3 != 0) && (iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0))\n    goto LAB_00108d1b;\nLAB_00108d2e:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e76:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00108c37:\n    FUN_0010ac09(param_4,0x1c,0);\n    iVar3 = strcmp((char *)param_1,"-A");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d88;\n    }\n    iVar3 = strcmp((char *)param_1,"-a");\n    if (iVar3 != 0) {\n      uVar5 = 1;\nLAB_00108c7d:\n      iVar3 = strcmp((char *)param_1,"-X");\n      if (iVar3 != 0) goto LAB_00109dce;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108ca2;\n    }\nLAB_00108db9:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109d25:\n    FUN_0010ac09(param_4,0x1d,0);\n    iVar3 = strcmp((char *)param_1,"-X");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c0f:\n      FUN_0010ac09(param_4,0x95,1);\n      iVar3 = strcmp((char *)param_1,"-x");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }\n      iVar3 = strcmp((char *)param_1,"-t");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109dfc;\nLAB_00108e45:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_00109c87;\n    }\n    iVar3 = strcmp((char *)param_1,"-x");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108dff;\nLAB_00109de5:\n    iVar3 = strcmp((char *)param_1,"-t");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108e45;\n    }\nLAB_00109dfc:\n    iVar3 = strcmp((char *)param_1,"-T");\n    if (iVar3 != 0) goto LAB_00109b7b;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e21:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_00109cc5:\n    FUN_0010ac09(param_4,0x16,1);\n    iVar3 = strcmp((char *)param_1,"-N");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-C");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00108e8b;\n      goto LAB_00109aea;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\nLAB_00109a6e:\n    FUN_0010ac09(param_4,0x2d,1);\n    iVar3 = strcmp((char *)param_1,"-C");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_0010989e;\n    }\n    iVar3 = strcmp((char *)param_1,"-1");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108ed1;\nLAB_00109b01:\n    iVar3 = strcmp((char *)param_1,"-2");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00109b26:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109918;\n    }\n  }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n    iVar3 = FUN_00108083(3,param_1);\n    bVar15 = iVar3 == 0;\n    if (!bVar15) {\n      return 2;\n    }\nLAB_001088cd:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)0x1440f1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    uVar17 = 0;\n    uVar19 = (!bVar18 && !bVar15) == bVar18;\n    if ((bool)uVar19) {\n      uVar5 = FUN_0010c2a6(&DAT_0013b2b6,param_2);\n      uVar7 = FUN_0010bd5d("D");\n    }\n    else {\n      bVar1 = param_1[1];\n      pcVar6 = (char *)FUN_0010b8c9(param_2,0x3a);\n      pcVar8 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\nLAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);\n        return 2;\n      }\n      do {\n        pcVar14 = pcVar8;\n        pcVar8 = pcVar6;\n        pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);\n      } while (pcVar6 != (char *)0x0);\n      if (pcVar14 == (char *)0x0) goto LAB_00108973;\n      uVar17 = pcVar14 < param_2;\n      uVar19 = (long)pcVar14 - (long)param_2 == 0;\n      uVar5 = FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2);\n      uVar7 = FUN_0010bd5d(pcVar14 + 1);\n    }\n    FUN_0010ade1(param_4,0x9b,uVar5,uVar7);\n    FUN_0010c4d3(uVar5);\n    FUN_0010c4d3(uVar7);\n    lVar10 = 4;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2ba;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    uVar5 = 2;\n    bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (!bVar15) goto LAB_00108a01;\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_00109fa5:\n    lVar10 = FUN_0010b8c9(param_2,0x3a);\n    if (lVar10 == 0) {\n      FUN_00134fb0("-nc expects argument of form \'host:port\'");\n      return 2;\n    }\n    uVar5 = FUN_0010c2a6(&DAT_0013b2b1,lVar10 - (long)param_2,param_2);\n    FUN_0010ad3a(param_4,0x2e,uVar5);\n    uVar9 = strtol((char *)(lVar10 + 1),(char **)0x0,10);\n    FUN_0010ac09(param_4,0x2f,uVar9 & 0xffffffff);\n    FUN_0010c4d3(uVar5);\n    iVar3 = strcmp((char *)param_1,"-m");\n    uVar5 = 2;\n    bVar15 = iVar3 == 0;\n    if (!bVar15) goto LAB_0010a032;\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_00109f54:\n    __stream = fopen64(param_2,"r");\n    if (__stream == (FILE *)0x0) {\n      FUN_00134fb0("unable to open command file \"%s\"",param_2);\n      return 2;\n    }\n    lVar13 = 0;\n    local_3c = 0;\n    lVar10 = 0;\n    while( true ) {\n      iVar4 = (int)lVar13;\n      iVar3 = fgetc(__stream);\n      if (iVar3 == -1) break;\n      local_48._0_1_ = (undefined1)iVar3;\n      if (iVar4 < local_3c) {\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      else {\n        local_3c = iVar4 + 0x200;\n        lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      lVar13 = lVar13 + 1;\n    }\n    if (iVar4 < local_3c) {\n      *(undefined1 *)(lVar10 + iVar4) = 0;\n    }\n    else {\n      lVar10 = FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1);\n      *(undefined1 *)(lVar10 + lVar13) = 0;\n    }\n    fclose(__stream);\n    FUN_0010ad3a(param_4,0x14,lVar10);\n    FUN_0010ad3a(param_4,0x15,&DAT_0013bec9);\n    FUN_0010ac09(param_4,0x16,1);\n    FUN_0010c4d3(lVar10);\n    iVar3 = strcmp((char *)param_1,"-P");\n    uVar5 = 2;\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      goto LAB_00109749;\n    }\nLAB_00108afa:\n    iVar3 = strcmp((char *)param_1,"-pw");\n    if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 2;\n      }\n      goto LAB_00109ee5;\n    }\n    iVar3 = strcmp((char *)param_1,"-agent");\n    if (iVar3 != 0) goto LAB_00108ba4;\nLAB_00108bce:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108bdc:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00108bf9:\n    FUN_0010ac09(param_4,0x1c,1);\n    iVar3 = strcmp((char *)param_1,"-noagent");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108c37;\n    }\n    iVar3 = strcmp((char *)param_1,"-nopagent");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00109e76;\nLAB_00108d1b:\n    iVar3 = strcmp((char *)param_1,"-nopageant");\n    if (iVar3 == 0) goto LAB_00108d2e;\n    iVar3 = strcmp((char *)param_1,"-A");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-a");\n      if (iVar3 != 0) goto LAB_00108c7d;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108db9;\n    }\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109d88:\n    FUN_0010ac09(param_4,0x1d,1);\n    iVar3 = strcmp((char *)param_1,"-a");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d25;\n    }\n    iVar3 = strcmp((char *)param_1,"-X");\n    uVar5 = 1;\n    if (iVar3 == 0) {\nLAB_00108ca2:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109c0f;\n    }\nLAB_00109dce:\n    iVar3 = strcmp((char *)param_1,"-x");\n    if (iVar3 != 0) goto LAB_00109de5;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108dff:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109c49:\n    FUN_0010ac09(param_4,0x95,0);\n    iVar3 = strcmp((char *)param_1,"-t");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c87:\n      FUN_0010ac09(param_4,0x16,0);\n      iVar3 = strcmp((char *)param_1,"-T");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }\n      iVar3 = strcmp((char *)param_1,"-N");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109ba0;\n    }\n    else {\n      iVar3 = strcmp((char *)param_1,"-T");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109e21;\nLAB_00109b7b:\n      iVar3 = strcmp((char *)param_1,"-N");\n      if (iVar3 == 0) {\n        if (param_3 < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }\n    }\n    iVar3 = strcmp((char *)param_1,"-C");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00108e8b:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\nLAB_0010989e:\n      FUN_0010ac09(param_4,0x17,1);\n      iVar3 = strcmp((char *)param_1,"-1");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }\n      iVar3 = strcmp((char *)param_1,"-2");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109930;\n      goto LAB_00109b26;\n    }\nLAB_00109aea:\n    iVar3 = strcmp((char *)param_1,"-1");\n    if (iVar3 != 0) goto LAB_00109b01;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108ed1:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_001098d8:\n    FUN_0010ac09(param_4,0x21,0);\n    iVar3 = strcmp((char *)param_1,"-2");\n    uVar5 = 1;\n    if (iVar3 != 0) goto LAB_00109930;\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\nLAB_00109918:\n    FUN_0010ac09(param_4,0x21,3);\n    uVar5 = 1;\n  }" { (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (expression_statement "bVar15 = iVar3 == 0;" (assignment_expression "bVar15 = iVar3 == 0" identifier = (binary_expression "iVar3 == 0" identifier == number_literal)) ;) (if_statement "if (!bVar15) {\n      return 2;\n    }" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_001088cd:\n    bVar18 = false;" statement_identifier : (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;)) (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)0x1440f1;" (assignment_expression "pbVar12 = (byte *)0x1440f1" identifier = (cast_expression "(byte *)0x1440f1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar11 < *pbVar12;" (assignment_expression "bVar18 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar19 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "uVar19 = (!bVar18 && !bVar15) == bVar18" identifier = (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" ( (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if ((bool)uVar19) {\n      uVar5 = FUN_0010c2a6(&DAT_0013b2b6,param_2);\n      uVar7 = FUN_0010bd5d("D");\n    }\n    else {\n      bVar1 = param_1[1];\n      pcVar6 = (char *)FUN_0010b8c9(param_2,0x3a);\n      pcVar8 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\nLAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);\n        return 2;\n      }\n      do {\n        pcVar14 = pcVar8;\n        pcVar8 = pcVar6;\n        pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);\n      } while (pcVar6 != (char *)0x0);\n      if (pcVar14 == (char *)0x0) goto LAB_00108973;\n      uVar17 = pcVar14 < param_2;\n      uVar19 = (long)pcVar14 - (long)param_2 == 0;\n      uVar5 = FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2);\n      uVar7 = FUN_0010bd5d(pcVar14 + 1);\n    }" if (parenthesized_expression "((bool)uVar19)" ( (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\n      uVar5 = FUN_0010c2a6(&DAT_0013b2b6,param_2);\n      uVar7 = FUN_0010bd5d("D");\n    }" { (expression_statement "uVar5 = FUN_0010c2a6(&DAT_0013b2b6,param_2);" (assignment_expression "uVar5 = FUN_0010c2a6(&DAT_0013b2b6,param_2)" identifier = (call_expression "FUN_0010c2a6(&DAT_0013b2b6,param_2)" identifier (argument_list "(&DAT_0013b2b6,param_2)" ( (pointer_expression "&DAT_0013b2b6" & identifier) , identifier )))) ;) (expression_statement "uVar7 = FUN_0010bd5d("D");" (assignment_expression "uVar7 = FUN_0010bd5d("D")" identifier = (call_expression "FUN_0010bd5d("D")" identifier (argument_list "("D")" ( (string_literal ""D"" " string_content ") )))) ;) }) (else_clause "else {\n      bVar1 = param_1[1];\n      pcVar6 = (char *)FUN_0010b8c9(param_2,0x3a);\n      pcVar8 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\nLAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);\n        return 2;\n      }\n      do {\n        pcVar14 = pcVar8;\n        pcVar8 = pcVar6;\n        pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);\n      } while (pcVar6 != (char *)0x0);\n      if (pcVar14 == (char *)0x0) goto LAB_00108973;\n      uVar17 = pcVar14 < param_2;\n      uVar19 = (long)pcVar14 - (long)param_2 == 0;\n      uVar5 = FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2);\n      uVar7 = FUN_0010bd5d(pcVar14 + 1);\n    }" else (compound_statement "{\n      bVar1 = param_1[1];\n      pcVar6 = (char *)FUN_0010b8c9(param_2,0x3a);\n      pcVar8 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\nLAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);\n        return 2;\n      }\n      do {\n        pcVar14 = pcVar8;\n        pcVar8 = pcVar6;\n        pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);\n      } while (pcVar6 != (char *)0x0);\n      if (pcVar14 == (char *)0x0) goto LAB_00108973;\n      uVar17 = pcVar14 < param_2;\n      uVar19 = (long)pcVar14 - (long)param_2 == 0;\n      uVar5 = FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2);\n      uVar7 = FUN_0010bd5d(pcVar14 + 1);\n    }" { (expression_statement "bVar1 = param_1[1];" (assignment_expression "bVar1 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar6 = (char *)FUN_0010b8c9(param_2,0x3a);" (assignment_expression "pcVar6 = (char *)FUN_0010b8c9(param_2,0x3a)" identifier = (cast_expression "(char *)FUN_0010b8c9(param_2,0x3a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0010b8c9(param_2,0x3a)" identifier (argument_list "(param_2,0x3a)" ( identifier , number_literal ))))) ;) (expression_statement "pcVar8 = pcVar6;" (assignment_expression "pcVar8 = pcVar6" identifier = identifier) ;) (if_statement "if (pcVar6 == (char *)0x0) {\nLAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);\n        return 2;\n      }" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);\n        return 2;\n      }" { (labeled_statement "LAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);" statement_identifier : (expression_statement "FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);" (call_expression "FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1)" identifier (argument_list "("-%c expects at least two colons in its argument",(int)(char)bVar1)" ( (string_literal ""-%c expects at least two colons in its argument"" " string_content ") , (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) ))) ;)) (return_statement "return 2;" return number_literal ;) })) (do_statement "do {\n        pcVar14 = pcVar8;\n        pcVar8 = pcVar6;\n        pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);\n      } while (pcVar6 != (char *)0x0);" do (compound_statement "{\n        pcVar14 = pcVar8;\n        pcVar8 = pcVar6;\n        pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);\n      }" { (expression_statement "pcVar14 = pcVar8;" (assignment_expression "pcVar14 = pcVar8" identifier = identifier) ;) (expression_statement "pcVar8 = pcVar6;" (assignment_expression "pcVar8 = pcVar6" identifier = identifier) ;) (expression_statement "pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);" (assignment_expression "pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a)" identifier = (cast_expression "(char *)FUN_0010b8c9(pcVar8 + 1,0x3a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0010b8c9(pcVar8 + 1,0x3a)" identifier (argument_list "(pcVar8 + 1,0x3a)" ( (binary_expression "pcVar8 + 1" identifier + number_literal) , number_literal ))))) ;) }) while (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (if_statement "if (pcVar14 == (char *)0x0) goto LAB_00108973;" if (parenthesized_expression "(pcVar14 == (char *)0x0)" ( (binary_expression "pcVar14 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00108973;" goto statement_identifier ;)) (expression_statement "uVar17 = pcVar14 < param_2;" (assignment_expression "uVar17 = pcVar14 < param_2" identifier = (binary_expression "pcVar14 < param_2" identifier < identifier)) ;) (expression_statement "uVar19 = (long)pcVar14 - (long)param_2 == 0;" (assignment_expression "uVar19 = (long)pcVar14 - (long)param_2 == 0" identifier = (binary_expression "(long)pcVar14 - (long)param_2 == 0" (binary_expression "(long)pcVar14 - (long)param_2" (cast_expression "(long)pcVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) == number_literal)) ;) (expression_statement "uVar5 = FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2);" (assignment_expression "uVar5 = FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2)" identifier = (call_expression "FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2)" identifier (argument_list "(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2)" ( (pointer_expression "&DAT_0013b2af" & identifier) , (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) , (binary_expression "(long)pcVar14 - (long)param_2" (cast_expression "(long)pcVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) , identifier )))) ;) (expression_statement "uVar7 = FUN_0010bd5d(pcVar14 + 1);" (assignment_expression "uVar7 = FUN_0010bd5d(pcVar14 + 1)" identifier = (call_expression "FUN_0010bd5d(pcVar14 + 1)" identifier (argument_list "(pcVar14 + 1)" ( (binary_expression "pcVar14 + 1" identifier + number_literal) )))) ;) }))) (expression_statement "FUN_0010ade1(param_4,0x9b,uVar5,uVar7);" (call_expression "FUN_0010ade1(param_4,0x9b,uVar5,uVar7)" identifier (argument_list "(param_4,0x9b,uVar5,uVar7)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "FUN_0010c4d3(uVar5);" (call_expression "FUN_0010c4d3(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "FUN_0010c4d3(uVar7);" (call_expression "FUN_0010c4d3(uVar7)" identifier (argument_list "(uVar7)" ( identifier ))) ;) (expression_statement "lVar10 = 4;" (assignment_expression "lVar10 = 4" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = &DAT_0013b2ba;" (assignment_expression "pbVar12 = &DAT_0013b2ba" identifier = (pointer_expression "&DAT_0013b2ba" & identifier)) ;) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);" do (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "uVar17 = *pbVar11 < *pbVar12;" (assignment_expression "uVar17 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "uVar19 = *pbVar11 == *pbVar12;" (assignment_expression "uVar19 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar19)" ( (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" identifier = number_literal) ;) (expression_statement "bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;" (assignment_expression "bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17" identifier = (binary_expression "(!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17" (parenthesized_expression "(!(bool)uVar17 && !(bool)uVar19)" ( (binary_expression "!(bool)uVar17 && !(bool)uVar19" (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar19" ! (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (!bVar15) goto LAB_00108a01;" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (goto_statement "goto LAB_00108a01;" goto statement_identifier ;)) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      return 2;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_00109fa5:\n    lVar10 = FUN_0010b8c9(param_2,0x3a);" statement_identifier : (expression_statement "lVar10 = FUN_0010b8c9(param_2,0x3a);" (assignment_expression "lVar10 = FUN_0010b8c9(param_2,0x3a)" identifier = (call_expression "FUN_0010b8c9(param_2,0x3a)" identifier (argument_list "(param_2,0x3a)" ( identifier , number_literal )))) ;)) (if_statement "if (lVar10 == 0) {\n      FUN_00134fb0("-nc expects argument of form \'host:port\'");\n      return 2;\n    }" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (compound_statement "{\n      FUN_00134fb0("-nc expects argument of form \'host:port\'");\n      return 2;\n    }" { (expression_statement "FUN_00134fb0("-nc expects argument of form \'host:port\'");" (call_expression "FUN_00134fb0("-nc expects argument of form \'host:port\'")" identifier (argument_list "("-nc expects argument of form \'host:port\'")" ( (string_literal ""-nc expects argument of form \'host:port\'"" " string_content escape_sequence string_content escape_sequence ") ))) ;) (return_statement "return 2;" return number_literal ;) })) (expression_statement "uVar5 = FUN_0010c2a6(&DAT_0013b2b1,lVar10 - (long)param_2,param_2);" (assignment_expression "uVar5 = FUN_0010c2a6(&DAT_0013b2b1,lVar10 - (long)param_2,param_2)" identifier = (call_expression "FUN_0010c2a6(&DAT_0013b2b1,lVar10 - (long)param_2,param_2)" identifier (argument_list "(&DAT_0013b2b1,lVar10 - (long)param_2,param_2)" ( (pointer_expression "&DAT_0013b2b1" & identifier) , (binary_expression "lVar10 - (long)param_2" identifier - (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) , identifier )))) ;) (expression_statement "FUN_0010ad3a(param_4,0x2e,uVar5);" (call_expression "FUN_0010ad3a(param_4,0x2e,uVar5)" identifier (argument_list "(param_4,0x2e,uVar5)" ( identifier , number_literal , identifier ))) ;) (expression_statement "uVar9 = strtol((char *)(lVar10 + 1),(char **)0x0,10);" (assignment_expression "uVar9 = strtol((char *)(lVar10 + 1),(char **)0x0,10)" identifier = (call_expression "strtol((char *)(lVar10 + 1),(char **)0x0,10)" identifier (argument_list "((char *)(lVar10 + 1),(char **)0x0,10)" ( (cast_expression "(char *)(lVar10 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 1)" ( (binary_expression "lVar10 + 1" identifier + number_literal) ))) , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , number_literal )))) ;) (expression_statement "FUN_0010ac09(param_4,0x2f,uVar9 & 0xffffffff);" (call_expression "FUN_0010ac09(param_4,0x2f,uVar9 & 0xffffffff)" identifier (argument_list "(param_4,0x2f,uVar9 & 0xffffffff)" ( identifier , number_literal , (binary_expression "uVar9 & 0xffffffff" identifier & number_literal) ))) ;) (expression_statement "FUN_0010c4d3(uVar5);" (call_expression "FUN_0010c4d3(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "iVar3 = strcmp((char *)param_1,"-m");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-m")" identifier = (call_expression "strcmp((char *)param_1,"-m")" identifier (argument_list "((char *)param_1,"-m")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-m"" " string_content ") )))) ;) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" identifier = number_literal) ;) (expression_statement "bVar15 = iVar3 == 0;" (assignment_expression "bVar15 = iVar3 == 0" identifier = (binary_expression "iVar3 == 0" identifier == number_literal)) ;) (if_statement "if (!bVar15) goto LAB_0010a032;" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (goto_statement "goto LAB_0010a032;" goto statement_identifier ;)) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      return 2;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_00109f54:\n    __stream = fopen64(param_2,"r");" statement_identifier : (expression_statement "__stream = fopen64(param_2,"r");" (assignment_expression "__stream = fopen64(param_2,"r")" identifier = (call_expression "fopen64(param_2,"r")" identifier (argument_list "(param_2,"r")" ( identifier , (string_literal ""r"" " string_content ") )))) ;)) (if_statement "if (__stream == (FILE *)0x0) {\n      FUN_00134fb0("unable to open command file \"%s\"",param_2);\n      return 2;\n    }" if (parenthesized_expression "(__stream == (FILE *)0x0)" ( (binary_expression "__stream == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_00134fb0("unable to open command file \"%s\"",param_2);\n      return 2;\n    }" { (expression_statement "FUN_00134fb0("unable to open command file \"%s\"",param_2);" (call_expression "FUN_00134fb0("unable to open command file \"%s\"",param_2)" identifier (argument_list "("unable to open command file \"%s\"",param_2)" ( (string_literal ""unable to open command file \"%s\""" " string_content escape_sequence string_content escape_sequence ") , identifier ))) ;) (return_statement "return 2;" return number_literal ;) })) (expression_statement "lVar13 = 0;" (assignment_expression "lVar13 = 0" identifier = number_literal) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n      iVar4 = (int)lVar13;\n      iVar3 = fgetc(__stream);\n      if (iVar3 == -1) break;\n      local_48._0_1_ = (undefined1)iVar3;\n      if (iVar4 < local_3c) {\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      else {\n        local_3c = iVar4 + 0x200;\n        lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      lVar13 = lVar13 + 1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      iVar4 = (int)lVar13;\n      iVar3 = fgetc(__stream);\n      if (iVar3 == -1) break;\n      local_48._0_1_ = (undefined1)iVar3;\n      if (iVar4 < local_3c) {\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      else {\n        local_3c = iVar4 + 0x200;\n        lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      lVar13 = lVar13 + 1;\n    }" { (expression_statement "iVar4 = (int)lVar13;" (assignment_expression "iVar4 = (int)lVar13" identifier = (cast_expression "(int)lVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar3 = fgetc(__stream);" (assignment_expression "iVar3 = fgetc(__stream)" identifier = (call_expression "fgetc(__stream)" identifier (argument_list "(__stream)" ( identifier )))) ;) (if_statement "if (iVar3 == -1) break;" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "local_48._0_1_ = (undefined1)iVar3;" (assignment_expression "local_48._0_1_ = (undefined1)iVar3" (field_expression "local_48._0_1_" identifier . field_identifier) = (cast_expression "(undefined1)iVar3" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (if_statement "if (iVar4 < local_3c) {\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      else {\n        local_3c = iVar4 + 0x200;\n        lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }" if (parenthesized_expression "(iVar4 < local_3c)" ( (binary_expression "iVar4 < local_3c" identifier < identifier) )) (compound_statement "{\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }" { (expression_statement "*(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;" (assignment_expression "*(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48" (pointer_expression "*(undefined1 *)(lVar10 + lVar13)" * (cast_expression "(undefined1 *)(lVar10 + lVar13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + lVar13)" ( (binary_expression "lVar10 + lVar13" identifier + identifier) )))) = (cast_expression "(undefined1)local_48" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        local_3c = iVar4 + 0x200;\n        lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }" else (compound_statement "{\n        local_3c = iVar4 + 0x200;\n        lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }" { (expression_statement "local_3c = iVar4 + 0x200;" (assignment_expression "local_3c = iVar4 + 0x200" identifier = (binary_expression "iVar4 + 0x200" identifier + number_literal)) ;) (expression_statement "lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);" (assignment_expression "lVar10 = FUN_0010c033(lVar10,(long)local_3c,1)" identifier = (call_expression "FUN_0010c033(lVar10,(long)local_3c,1)" identifier (argument_list "(lVar10,(long)local_3c,1)" ( identifier , (cast_expression "(long)local_3c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) , number_literal )))) ;) (expression_statement "*(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;" (assignment_expression "*(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48" (pointer_expression "*(undefined1 *)(lVar10 + lVar13)" * (cast_expression "(undefined1 *)(lVar10 + lVar13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + lVar13)" ( (binary_expression "lVar10 + lVar13" identifier + identifier) )))) = (cast_expression "(undefined1)local_48" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) }))) (expression_statement "lVar13 = lVar13 + 1;" (assignment_expression "lVar13 = lVar13 + 1" identifier = (binary_expression "lVar13 + 1" identifier + number_literal)) ;) })) (if_statement "if (iVar4 < local_3c) {\n      *(undefined1 *)(lVar10 + iVar4) = 0;\n    }\n    else {\n      lVar10 = FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1);\n      *(undefined1 *)(lVar10 + lVar13) = 0;\n    }" if (parenthesized_expression "(iVar4 < local_3c)" ( (binary_expression "iVar4 < local_3c" identifier < identifier) )) (compound_statement "{\n      *(undefined1 *)(lVar10 + iVar4) = 0;\n    }" { (expression_statement "*(undefined1 *)(lVar10 + iVar4) = 0;" (assignment_expression "*(undefined1 *)(lVar10 + iVar4) = 0" (pointer_expression "*(undefined1 *)(lVar10 + iVar4)" * (cast_expression "(undefined1 *)(lVar10 + iVar4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + iVar4)" ( (binary_expression "lVar10 + iVar4" identifier + identifier) )))) = number_literal) ;) }) (else_clause "else {\n      lVar10 = FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1);\n      *(undefined1 *)(lVar10 + lVar13) = 0;\n    }" else (compound_statement "{\n      lVar10 = FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1);\n      *(undefined1 *)(lVar10 + lVar13) = 0;\n    }" { (expression_statement "lVar10 = FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1);" (assignment_expression "lVar10 = FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1)" identifier = (call_expression "FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1)" identifier (argument_list "(lVar10,(long)(iVar4 + 0x200),1)" ( identifier , (cast_expression "(long)(iVar4 + 0x200)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(iVar4 + 0x200)" ( (binary_expression "iVar4 + 0x200" identifier + number_literal) ))) , number_literal )))) ;) (expression_statement "*(undefined1 *)(lVar10 + lVar13) = 0;" (assignment_expression "*(undefined1 *)(lVar10 + lVar13) = 0" (pointer_expression "*(undefined1 *)(lVar10 + lVar13)" * (cast_expression "(undefined1 *)(lVar10 + lVar13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + lVar13)" ( (binary_expression "lVar10 + lVar13" identifier + identifier) )))) = number_literal) ;) }))) (expression_statement "fclose(__stream);" (call_expression "fclose(__stream)" identifier (argument_list "(__stream)" ( identifier ))) ;) (expression_statement "FUN_0010ad3a(param_4,0x14,lVar10);" (call_expression "FUN_0010ad3a(param_4,0x14,lVar10)" identifier (argument_list "(param_4,0x14,lVar10)" ( identifier , number_literal , identifier ))) ;) (expression_statement "FUN_0010ad3a(param_4,0x15,&DAT_0013bec9);" (call_expression "FUN_0010ad3a(param_4,0x15,&DAT_0013bec9)" identifier (argument_list "(param_4,0x15,&DAT_0013bec9)" ( identifier , number_literal , (pointer_expression "&DAT_0013bec9" & identifier) ))) ;) (expression_statement "FUN_0010ac09(param_4,0x16,1);" (call_expression "FUN_0010ac09(param_4,0x16,1)" identifier (argument_list "(param_4,0x16,1)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "FUN_0010c4d3(lVar10);" (call_expression "FUN_0010c4d3(lVar10)" identifier (argument_list "(lVar10)" ( identifier ))) ;) (expression_statement "iVar3 = strcmp((char *)param_1,"-P");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-P")" identifier = (call_expression "strcmp((char *)param_1,"-P")" identifier (argument_list "((char *)param_1,"-P")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-P"" " string_content ") )))) ;) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      goto LAB_00109749;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      goto LAB_00109749;\n    }" { (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        return 2;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (goto_statement "goto LAB_00109749;" goto statement_identifier ;) })) (labeled_statement "LAB_00108afa:\n    iVar3 = strcmp((char *)param_1,"-pw");" statement_identifier : (expression_statement "iVar3 = strcmp((char *)param_1,"-pw");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-pw")" identifier = (call_expression "strcmp((char *)param_1,"-pw")" identifier (argument_list "((char *)param_1,"-pw")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-pw"" " string_content ") )))) ;)) (if_statement "if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 2;\n      }\n      goto LAB_00109ee5;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 2;\n      }\n      goto LAB_00109ee5;\n    }" { (if_statement "if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return 0xfffffffe;\n      }" { (return_statement "return 0xfffffffe;" return number_literal ;) })) (if_statement "if (param_3 < 0) {\n        return 2;\n      }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        return 2;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 2;\n      }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_001080ad(param_1,param_2,1);\n        return 2;\n      }" { (expression_statement "FUN_001080ad(param_1,param_2,1);" (call_expression "FUN_001080ad(param_1,param_2,1)" identifier (argument_list "(param_1,param_2,1)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (goto_statement "goto LAB_00109ee5;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp((char *)param_1,"-agent");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-agent")" identifier = (call_expression "strcmp((char *)param_1,"-agent")" identifier (argument_list "((char *)param_1,"-agent")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-agent"" " string_content ") )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00108ba4;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00108ba4;" goto statement_identifier ;)) (labeled_statement "LAB_00108bce:\n    if (param_3 < 0) {\n      return 1;\n    }" statement_identifier : (if_statement "if (param_3 < 0) {\n      return 1;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) }))) (labeled_statement "LAB_00108bdc:\n    iVar3 = FUN_00108083(2,param_1);" statement_identifier : (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar3 != 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00108bf9:\n    FUN_0010ac09(param_4,0x1c,1);" statement_identifier : (expression_statement "FUN_0010ac09(param_4,0x1c,1);" (call_expression "FUN_0010ac09(param_4,0x1c,1)" identifier (argument_list "(param_4,0x1c,1)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar3 = strcmp((char *)param_1,"-noagent");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-noagent")" identifier = (call_expression "strcmp((char *)param_1,"-noagent")" identifier (argument_list "((char *)param_1,"-noagent")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-noagent"" " string_content ") )))) ;) (if_statement "if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108c37;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108c37;\n    }" { (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00108c37;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp((char *)param_1,"-nopagent");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-nopagent")" identifier = (call_expression "strcmp((char *)param_1,"-nopagent")" identifier (argument_list "((char *)param_1,"-nopagent")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-nopagent"" " string_content ") )))) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) goto LAB_00109e76;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00109e76;" goto statement_identifier ;)) (labeled_statement "LAB_00108d1b:\n    iVar3 = strcmp((char *)param_1,"-nopageant");" statement_identifier : (expression_statement "iVar3 = strcmp((char *)param_1,"-nopageant");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-nopageant")" identifier = (call_expression "strcmp((char *)param_1,"-nopageant")" identifier (argument_list "((char *)param_1,"-nopageant")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-nopageant"" " string_content ") )))) ;)) (if_statement "if (iVar3 == 0) goto LAB_00108d2e;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00108d2e;" goto statement_identifier ;)) (expression_statement "iVar3 = strcmp((char *)param_1,"-A");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-A")" identifier = (call_expression "strcmp((char *)param_1,"-A")" identifier (argument_list "((char *)param_1,"-A")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-A"" " string_content ") )))) ;) (if_statement "if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-a");\n      if (iVar3 != 0) goto LAB_00108c7d;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108db9;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar3 = strcmp((char *)param_1,"-a");\n      if (iVar3 != 0) goto LAB_00108c7d;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108db9;\n    }" { (expression_statement "iVar3 = strcmp((char *)param_1,"-a");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-a")" identifier = (call_expression "strcmp((char *)param_1,"-a")" identifier (argument_list "((char *)param_1,"-a")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-a"" " string_content ") )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00108c7d;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00108c7d;" goto statement_identifier ;)) (if_statement "if (param_3 < 0) {\n        return 1;\n      }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00108db9;" goto statement_identifier ;) })) (if_statement "if (param_3 < 0) {\n      return 1;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109d88:\n    FUN_0010ac09(param_4,0x1d,1);" statement_identifier : (expression_statement "FUN_0010ac09(param_4,0x1d,1);" (call_expression "FUN_0010ac09(param_4,0x1d,1)" identifier (argument_list "(param_4,0x1d,1)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar3 = strcmp((char *)param_1,"-a");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-a")" identifier = (call_expression "strcmp((char *)param_1,"-a")" identifier (argument_list "((char *)param_1,"-a")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-a"" " string_content ") )))) ;) (if_statement "if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d25;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d25;\n    }" { (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00109d25;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp((char *)param_1,"-X");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-X")" identifier = (call_expression "strcmp((char *)param_1,"-X")" identifier (argument_list "((char *)param_1,"-X")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-X"" " string_content ") )))) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) {\nLAB_00108ca2:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109c0f;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00108ca2:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109c0f;\n    }" { (labeled_statement "LAB_00108ca2:\n      iVar3 = FUN_00108083(3,param_1);" statement_identifier : (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00109c0f;" goto statement_identifier ;) })) (labeled_statement "LAB_00109dce:\n    iVar3 = strcmp((char *)param_1,"-x");" statement_identifier : (expression_statement "iVar3 = strcmp((char *)param_1,"-x");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-x")" identifier = (call_expression "strcmp((char *)param_1,"-x")" identifier (argument_list "((char *)param_1,"-x")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-x"" " string_content ") )))) ;)) (if_statement "if (iVar3 != 0) goto LAB_00109de5;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109de5;" goto statement_identifier ;)) (if_statement "if (param_3 < 0) {\n      return 1;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00108dff:\n    iVar3 = FUN_00108083(3,param_1);" statement_identifier : (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar3 != 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109c49:\n    FUN_0010ac09(param_4,0x95,0);" statement_identifier : (expression_statement "FUN_0010ac09(param_4,0x95,0);" (call_expression "FUN_0010ac09(param_4,0x95,0)" identifier (argument_list "(param_4,0x95,0)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar3 = strcmp((char *)param_1,"-t");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-t")" identifier = (call_expression "strcmp((char *)param_1,"-t")" identifier (argument_list "((char *)param_1,"-t")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-t"" " string_content ") )))) ;) (if_statement "if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c87:\n      FUN_0010ac09(param_4,0x16,0);\n      iVar3 = strcmp((char *)param_1,"-T");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }\n      iVar3 = strcmp((char *)param_1,"-N");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109ba0;\n    }\n    else {\n      iVar3 = strcmp((char *)param_1,"-T");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109e21;\nLAB_00109b7b:\n      iVar3 = strcmp((char *)param_1,"-N");\n      if (iVar3 == 0) {\n        if (param_3 < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c87:\n      FUN_0010ac09(param_4,0x16,0);\n      iVar3 = strcmp((char *)param_1,"-T");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }\n      iVar3 = strcmp((char *)param_1,"-N");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109ba0;\n    }" { (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109c87:\n      FUN_0010ac09(param_4,0x16,0);" statement_identifier : (expression_statement "FUN_0010ac09(param_4,0x16,0);" (call_expression "FUN_0010ac09(param_4,0x16,0)" identifier (argument_list "(param_4,0x16,0)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar3 = strcmp((char *)param_1,"-T");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-T")" identifier = (call_expression "strcmp((char *)param_1,"-T")" identifier (argument_list "((char *)param_1,"-T")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-T"" " string_content ") )))) ;) (if_statement "if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }" { (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n          return 1;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          return 1;\n        }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00109cc5;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp((char *)param_1,"-N");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-N")" identifier = (call_expression "strcmp((char *)param_1,"-N")" identifier (argument_list "((char *)param_1,"-N")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-N"" " string_content ") )))) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) goto LAB_00109ba0;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00109ba0;" goto statement_identifier ;)) }) (else_clause "else {\n      iVar3 = strcmp((char *)param_1,"-T");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109e21;\nLAB_00109b7b:\n      iVar3 = strcmp((char *)param_1,"-N");\n      if (iVar3 == 0) {\n        if (param_3 < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }\n    }" else (compound_statement "{\n      iVar3 = strcmp((char *)param_1,"-T");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109e21;\nLAB_00109b7b:\n      iVar3 = strcmp((char *)param_1,"-N");\n      if (iVar3 == 0) {\n        if (param_3 < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }\n    }" { (expression_statement "iVar3 = strcmp((char *)param_1,"-T");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-T")" identifier = (call_expression "strcmp((char *)param_1,"-T")" identifier (argument_list "((char *)param_1,"-T")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-T"" " string_content ") )))) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) goto LAB_00109e21;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00109e21;" goto statement_identifier ;)) (labeled_statement "LAB_00109b7b:\n      iVar3 = strcmp((char *)param_1,"-N");" statement_identifier : (expression_statement "iVar3 = strcmp((char *)param_1,"-N");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-N")" identifier = (call_expression "strcmp((char *)param_1,"-N")" identifier (argument_list "((char *)param_1,"-N")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-N"" " string_content ") )))) ;)) (if_statement "if (iVar3 == 0) {\n        if (param_3 < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        if (param_3 < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }" { (if_statement "if (param_3 < 0) {\n          return 1;\n        }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n          return 1;\n        }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);" statement_identifier : (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar3 != 0) {\n          return 1;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          return 1;\n        }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00109a6e;" goto statement_identifier ;) })) }))) (expression_statement "iVar3 = strcmp((char *)param_1,"-C");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-C")" identifier = (call_expression "strcmp((char *)param_1,"-C")" identifier (argument_list "((char *)param_1,"-C")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-C"" " string_content ") )))) ;) (if_statement "if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00108e8b:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\nLAB_0010989e:\n      FUN_0010ac09(param_4,0x17,1);\n      iVar3 = strcmp((char *)param_1,"-1");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }\n      iVar3 = strcmp((char *)param_1,"-2");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109930;\n      goto LAB_00109b26;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00108e8b:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\nLAB_0010989e:\n      FUN_0010ac09(param_4,0x17,1);\n      iVar3 = strcmp((char *)param_1,"-1");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }\n      iVar3 = strcmp((char *)param_1,"-2");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109930;\n      goto LAB_00109b26;\n    }" { (if_statement "if (param_3 < 0) {\n        return 1;\n      }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00108e8b:\n      iVar3 = FUN_00108083(2,param_1);" statement_identifier : (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_0010989e:\n      FUN_0010ac09(param_4,0x17,1);" statement_identifier : (expression_statement "FUN_0010ac09(param_4,0x17,1);" (call_expression "FUN_0010ac09(param_4,0x17,1)" identifier (argument_list "(param_4,0x17,1)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar3 = strcmp((char *)param_1,"-1");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-1")" identifier = (call_expression "strcmp((char *)param_1,"-1")" identifier (argument_list "((char *)param_1,"-1")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-1"" " string_content ") )))) ;) (if_statement "if (iVar3 == 0) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }" { (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n          return 1;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          return 1;\n        }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_001098d8;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp((char *)param_1,"-2");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-2")" identifier = (call_expression "strcmp((char *)param_1,"-2")" identifier (argument_list "((char *)param_1,"-2")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-2"" " string_content ") )))) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_00109930;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109930;" goto statement_identifier ;)) (goto_statement "goto LAB_00109b26;" goto statement_identifier ;) })) (labeled_statement "LAB_00109aea:\n    iVar3 = strcmp((char *)param_1,"-1");" statement_identifier : (expression_statement "iVar3 = strcmp((char *)param_1,"-1");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-1")" identifier = (call_expression "strcmp((char *)param_1,"-1")" identifier (argument_list "((char *)param_1,"-1")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-1"" " string_content ") )))) ;)) (if_statement "if (iVar3 != 0) goto LAB_00109b01;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109b01;" goto statement_identifier ;)) (if_statement "if (param_3 < 0) {\n      return 1;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00108ed1:\n    iVar3 = FUN_00108083(2,param_1);" statement_identifier : (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar3 != 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_001098d8:\n    FUN_0010ac09(param_4,0x21,0);" statement_identifier : (expression_statement "FUN_0010ac09(param_4,0x21,0);" (call_expression "FUN_0010ac09(param_4,0x21,0)" identifier (argument_list "(param_4,0x21,0)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar3 = strcmp((char *)param_1,"-2");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-2")" identifier = (call_expression "strcmp((char *)param_1,"-2")" identifier (argument_list "((char *)param_1,"-2")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-2"" " string_content ") )))) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_00109930;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109930;" goto statement_identifier ;)) (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109918:\n    FUN_0010ac09(param_4,0x21,3);" statement_identifier : (expression_statement "FUN_0010ac09(param_4,0x21,3);" (call_expression "FUN_0010ac09(param_4,0x21,3)" identifier (argument_list "(param_4,0x21,3)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) }) (else_clause "else {\nLAB_00108865:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2ac;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\nLAB_0010889d:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      bVar15 = param_3 == 0;\n      if (!bVar15) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001088cd;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)0x1440f1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_0010889d;\n    iVar3 = strcmp((char *)param_1,"-nc");\n    bVar15 = iVar3 == 0;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109fa5;\n    }\nLAB_00108a01:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2be;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109f54;\n    }\nLAB_0010a032:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2c1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar18 && !bVar15) != bVar18) goto LAB_00108afa;\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }\nLAB_00109749:\n    uVar9 = strtol(param_2,(char **)0x0,10);\n    FUN_0010ac09(param_4,1,uVar9 & 0xffffffff);\n    iVar3 = strcmp((char *)param_1,"-pw");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\nLAB_00109ee5:\n      iVar3 = FUN_0010a543(param_4,2);\n      if (iVar3 == 3) {\n        DAT_00152128 = FUN_0010bd5d(param_2);\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = param_2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        FUN_0010c727(param_2,~uVar9 - 1);\n      }\n      else {\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }\n      iVar3 = strcmp((char *)param_1,"-agent");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-pagent");\n        uVar5 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108bf9;\n    }\n    iVar3 = strcmp((char *)param_1,"-agent");\n    uVar5 = 2;\n    if (iVar3 == 0) goto LAB_00108bdc;\nLAB_00108ba4:\n    iVar3 = strcmp((char *)param_1,"-pagent");\n    if (iVar3 == 0) goto LAB_00108bce;\nLAB_00108bb7:\n    iVar3 = strcmp((char *)param_1,"-pageant");\n    if (iVar3 == 0) goto LAB_00108bce;\n    iVar3 = strcmp((char *)param_1,"-noagent");\n    if ((iVar3 != 0) && (iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0))\n    goto LAB_00108d1b;\nLAB_00108d2e:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e76:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00108c37:\n    FUN_0010ac09(param_4,0x1c,0);\n    iVar3 = strcmp((char *)param_1,"-A");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d88;\n    }\n    iVar3 = strcmp((char *)param_1,"-a");\n    if (iVar3 != 0) {\n      uVar5 = 1;\nLAB_00108c7d:\n      iVar3 = strcmp((char *)param_1,"-X");\n      if (iVar3 != 0) goto LAB_00109dce;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108ca2;\n    }\nLAB_00108db9:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109d25:\n    FUN_0010ac09(param_4,0x1d,0);\n    iVar3 = strcmp((char *)param_1,"-X");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c0f:\n      FUN_0010ac09(param_4,0x95,1);\n      iVar3 = strcmp((char *)param_1,"-x");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }\n      iVar3 = strcmp((char *)param_1,"-t");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109dfc;\nLAB_00108e45:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_00109c87;\n    }\n    iVar3 = strcmp((char *)param_1,"-x");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108dff;\nLAB_00109de5:\n    iVar3 = strcmp((char *)param_1,"-t");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108e45;\n    }\nLAB_00109dfc:\n    iVar3 = strcmp((char *)param_1,"-T");\n    if (iVar3 != 0) goto LAB_00109b7b;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e21:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_00109cc5:\n    FUN_0010ac09(param_4,0x16,1);\n    iVar3 = strcmp((char *)param_1,"-N");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-C");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00108e8b;\n      goto LAB_00109aea;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\nLAB_00109a6e:\n    FUN_0010ac09(param_4,0x2d,1);\n    iVar3 = strcmp((char *)param_1,"-C");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_0010989e;\n    }\n    iVar3 = strcmp((char *)param_1,"-1");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108ed1;\nLAB_00109b01:\n    iVar3 = strcmp((char *)param_1,"-2");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00109b26:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109918;\n    }\n  }" else (compound_statement "{\nLAB_00108865:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2ac;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\nLAB_0010889d:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      bVar15 = param_3 == 0;\n      if (!bVar15) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001088cd;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)0x1440f1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_0010889d;\n    iVar3 = strcmp((char *)param_1,"-nc");\n    bVar15 = iVar3 == 0;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109fa5;\n    }\nLAB_00108a01:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2be;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109f54;\n    }\nLAB_0010a032:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2c1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar18 && !bVar15) != bVar18) goto LAB_00108afa;\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }\nLAB_00109749:\n    uVar9 = strtol(param_2,(char **)0x0,10);\n    FUN_0010ac09(param_4,1,uVar9 & 0xffffffff);\n    iVar3 = strcmp((char *)param_1,"-pw");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\nLAB_00109ee5:\n      iVar3 = FUN_0010a543(param_4,2);\n      if (iVar3 == 3) {\n        DAT_00152128 = FUN_0010bd5d(param_2);\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = param_2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        FUN_0010c727(param_2,~uVar9 - 1);\n      }\n      else {\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }\n      iVar3 = strcmp((char *)param_1,"-agent");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-pagent");\n        uVar5 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108bf9;\n    }\n    iVar3 = strcmp((char *)param_1,"-agent");\n    uVar5 = 2;\n    if (iVar3 == 0) goto LAB_00108bdc;\nLAB_00108ba4:\n    iVar3 = strcmp((char *)param_1,"-pagent");\n    if (iVar3 == 0) goto LAB_00108bce;\nLAB_00108bb7:\n    iVar3 = strcmp((char *)param_1,"-pageant");\n    if (iVar3 == 0) goto LAB_00108bce;\n    iVar3 = strcmp((char *)param_1,"-noagent");\n    if ((iVar3 != 0) && (iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0))\n    goto LAB_00108d1b;\nLAB_00108d2e:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e76:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00108c37:\n    FUN_0010ac09(param_4,0x1c,0);\n    iVar3 = strcmp((char *)param_1,"-A");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d88;\n    }\n    iVar3 = strcmp((char *)param_1,"-a");\n    if (iVar3 != 0) {\n      uVar5 = 1;\nLAB_00108c7d:\n      iVar3 = strcmp((char *)param_1,"-X");\n      if (iVar3 != 0) goto LAB_00109dce;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108ca2;\n    }\nLAB_00108db9:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109d25:\n    FUN_0010ac09(param_4,0x1d,0);\n    iVar3 = strcmp((char *)param_1,"-X");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c0f:\n      FUN_0010ac09(param_4,0x95,1);\n      iVar3 = strcmp((char *)param_1,"-x");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }\n      iVar3 = strcmp((char *)param_1,"-t");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109dfc;\nLAB_00108e45:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_00109c87;\n    }\n    iVar3 = strcmp((char *)param_1,"-x");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108dff;\nLAB_00109de5:\n    iVar3 = strcmp((char *)param_1,"-t");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108e45;\n    }\nLAB_00109dfc:\n    iVar3 = strcmp((char *)param_1,"-T");\n    if (iVar3 != 0) goto LAB_00109b7b;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e21:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_00109cc5:\n    FUN_0010ac09(param_4,0x16,1);\n    iVar3 = strcmp((char *)param_1,"-N");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-C");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00108e8b;\n      goto LAB_00109aea;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\nLAB_00109a6e:\n    FUN_0010ac09(param_4,0x2d,1);\n    iVar3 = strcmp((char *)param_1,"-C");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_0010989e;\n    }\n    iVar3 = strcmp((char *)param_1,"-1");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108ed1;\nLAB_00109b01:\n    iVar3 = strcmp((char *)param_1,"-2");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00109b26:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109918;\n    }\n  }" { (labeled_statement "LAB_00108865:\n    bVar18 = false;" statement_identifier : (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;)) (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = &DAT_0013b2ac;" (assignment_expression "pbVar12 = &DAT_0013b2ac" identifier = (pointer_expression "&DAT_0013b2ac" & identifier)) ;) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar11 < *pbVar12;" (assignment_expression "bVar18 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" identifier = (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" ( (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) {\nLAB_0010889d:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      bVar15 = param_3 == 0;\n      if (!bVar15) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001088cd;\n    }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\nLAB_0010889d:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      bVar15 = param_3 == 0;\n      if (!bVar15) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001088cd;\n    }" { (labeled_statement "LAB_0010889d:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }" statement_identifier : (if_statement "if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return 0xfffffffe;\n      }" { (return_statement "return 0xfffffffe;" return number_literal ;) }))) (if_statement "if (param_3 < 0) {\n        return 2;\n      }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        return 2;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "bVar15 = param_3 == 0;" (assignment_expression "bVar15 = param_3 == 0" identifier = (binary_expression "param_3 == 0" identifier == number_literal)) ;) (if_statement "if (!bVar15) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (compound_statement "{\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (goto_statement "goto LAB_001088cd;" goto statement_identifier ;) })) (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)0x1440f1;" (assignment_expression "pbVar12 = (byte *)0x1440f1" identifier = (cast_expression "(byte *)0x1440f1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar11 < *pbVar12;" (assignment_expression "bVar16 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (if_statement "if ((!bVar16 && !bVar15) == bVar16) goto LAB_0010889d;" if (parenthesized_expression "((!bVar16 && !bVar15) == bVar16)" ( (binary_expression "(!bVar16 && !bVar15) == bVar16" (parenthesized_expression "(!bVar16 && !bVar15)" ( (binary_expression "!bVar16 && !bVar15" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_0010889d;" goto statement_identifier ;)) (expression_statement "iVar3 = strcmp((char *)param_1,"-nc");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-nc")" identifier = (call_expression "strcmp((char *)param_1,"-nc")" identifier (argument_list "((char *)param_1,"-nc")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-nc"" " string_content ") )))) ;) (expression_statement "bVar15 = iVar3 == 0;" (assignment_expression "bVar15 = iVar3 == 0" identifier = (binary_expression "iVar3 == 0" identifier == number_literal)) ;) (if_statement "if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109fa5;\n    }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109fa5;\n    }" { (if_statement "if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return 0xfffffffe;\n      }" { (return_statement "return 0xfffffffe;" return number_literal ;) })) (if_statement "if (param_3 < 0) {\n        return 2;\n      }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        return 2;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (goto_statement "goto LAB_00109fa5;" goto statement_identifier ;) })) (labeled_statement "LAB_00108a01:\n    bVar18 = false;" statement_identifier : (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;)) (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = &DAT_0013b2be;" (assignment_expression "pbVar12 = &DAT_0013b2be" identifier = (pointer_expression "&DAT_0013b2be" & identifier)) ;) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar11 < *pbVar12;" (assignment_expression "bVar18 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" identifier = (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" ( (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109f54;\n    }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109f54;\n    }" { (if_statement "if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return 0xfffffffe;\n      }" { (return_statement "return 0xfffffffe;" return number_literal ;) })) (if_statement "if (param_3 < 0) {\n        return 2;\n      }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        return 2;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (goto_statement "goto LAB_00109f54;" goto statement_identifier ;) })) (labeled_statement "LAB_0010a032:\n    bVar18 = false;" statement_identifier : (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;)) (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = &DAT_0013b2c1;" (assignment_expression "pbVar12 = &DAT_0013b2c1" identifier = (pointer_expression "&DAT_0013b2c1" & identifier)) ;) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar11 < *pbVar12;" (assignment_expression "bVar18 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (if_statement "if ((!bVar18 && !bVar15) != bVar18) goto LAB_00108afa;" if (parenthesized_expression "((!bVar18 && !bVar15) != bVar18)" ( (binary_expression "(!bVar18 && !bVar15) != bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" ( (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_00108afa;" goto statement_identifier ;)) (if_statement "if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 0xfffffffe;\n    }" { (return_statement "return 0xfffffffe;" return number_literal ;) })) (if_statement "if (param_3 < 0) {\n      return 2;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      return 2;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }" { (expression_statement "FUN_001080ad(param_1,param_2,1);" (call_expression "FUN_001080ad(param_1,param_2,1)" identifier (argument_list "(param_1,param_2,1)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_00109749:\n    uVar9 = strtol(param_2,(char **)0x0,10);" statement_identifier : (expression_statement "uVar9 = strtol(param_2,(char **)0x0,10);" (assignment_expression "uVar9 = strtol(param_2,(char **)0x0,10)" identifier = (call_expression "strtol(param_2,(char **)0x0,10)" identifier (argument_list "(param_2,(char **)0x0,10)" ( identifier , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , number_literal )))) ;)) (expression_statement "FUN_0010ac09(param_4,1,uVar9 & 0xffffffff);" (call_expression "FUN_0010ac09(param_4,1,uVar9 & 0xffffffff)" identifier (argument_list "(param_4,1,uVar9 & 0xffffffff)" ( identifier , number_literal , (binary_expression "uVar9 & 0xffffffff" identifier & number_literal) ))) ;) (expression_statement "iVar3 = strcmp((char *)param_1,"-pw");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-pw")" identifier = (call_expression "strcmp((char *)param_1,"-pw")" identifier (argument_list "((char *)param_1,"-pw")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-pw"" " string_content ") )))) ;) (if_statement "if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\nLAB_00109ee5:\n      iVar3 = FUN_0010a543(param_4,2);\n      if (iVar3 == 3) {\n        DAT_00152128 = FUN_0010bd5d(param_2);\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = param_2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        FUN_0010c727(param_2,~uVar9 - 1);\n      }\n      else {\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }\n      iVar3 = strcmp((char *)param_1,"-agent");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-pagent");\n        uVar5 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108bf9;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\nLAB_00109ee5:\n      iVar3 = FUN_0010a543(param_4,2);\n      if (iVar3 == 3) {\n        DAT_00152128 = FUN_0010bd5d(param_2);\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = param_2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        FUN_0010c727(param_2,~uVar9 - 1);\n      }\n      else {\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }\n      iVar3 = strcmp((char *)param_1,"-agent");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-pagent");\n        uVar5 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108bf9;\n    }" { (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        return 2;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_00109ee5:\n      iVar3 = FUN_0010a543(param_4,2);" statement_identifier : (expression_statement "iVar3 = FUN_0010a543(param_4,2);" (assignment_expression "iVar3 = FUN_0010a543(param_4,2)" identifier = (call_expression "FUN_0010a543(param_4,2)" identifier (argument_list "(param_4,2)" ( identifier , number_literal )))) ;)) (if_statement "if (iVar3 == 3) {\n        DAT_00152128 = FUN_0010bd5d(param_2);\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = param_2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        FUN_0010c727(param_2,~uVar9 - 1);\n      }\n      else {\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }" if (parenthesized_expression "(iVar3 == 3)" ( (binary_expression "iVar3 == 3" identifier == number_literal) )) (compound_statement "{\n        DAT_00152128 = FUN_0010bd5d(param_2);\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = param_2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        FUN_0010c727(param_2,~uVar9 - 1);\n      }" { (expression_statement "DAT_00152128 = FUN_0010bd5d(param_2);" (assignment_expression "DAT_00152128 = FUN_0010bd5d(param_2)" identifier = (call_expression "FUN_0010bd5d(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "uVar9 = 0xffffffffffffffff;" (assignment_expression "uVar9 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar6 = param_2;" (assignment_expression "pcVar6 = param_2" identifier = identifier) ;) (do_statement "do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');" do (compound_statement "{\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        }" { (if_statement "if (uVar9 == 0) break;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (expression_statement "pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pcVar6 + (ulong)bVar20 * -2 + 1" (binary_expression "pcVar6 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "FUN_0010c727(param_2,~uVar9 - 1);" (call_expression "FUN_0010c727(param_2,~uVar9 - 1)" identifier (argument_list "(param_2,~uVar9 - 1)" ( identifier , (binary_expression "~uVar9 - 1" (unary_expression "~uVar9" ~ identifier) - number_literal) ))) ;) }) (else_clause "else {\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }" else (compound_statement "{\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }" { (expression_statement "FUN_00134fb0("the -pw option can only be used with the SSH protocol");" (call_expression "FUN_00134fb0("the -pw option can only be used with the SSH protocol")" identifier (argument_list "("the -pw option can only be used with the SSH protocol")" ( (string_literal ""the -pw option can only be used with the SSH protocol"" " string_content ") ))) ;) }))) (expression_statement "iVar3 = strcmp((char *)param_1,"-agent");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-agent")" identifier = (call_expression "strcmp((char *)param_1,"-agent")" identifier (argument_list "((char *)param_1,"-agent")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-agent"" " string_content ") )))) ;) (if_statement "if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-pagent");\n        uVar5 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar3 = strcmp((char *)param_1,"-pagent");\n        uVar5 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }" { (expression_statement "iVar3 = strcmp((char *)param_1,"-pagent");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-pagent")" identifier = (call_expression "strcmp((char *)param_1,"-pagent")" identifier (argument_list "((char *)param_1,"-pagent")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-pagent"" " string_content ") )))) ;) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_00108bb7;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00108bb7;" goto statement_identifier ;)) (goto_statement "goto LAB_00108bdc;" goto statement_identifier ;) })) (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00108bf9;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp((char *)param_1,"-agent");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-agent")" identifier = (call_expression "strcmp((char *)param_1,"-agent")" identifier (argument_list "((char *)param_1,"-agent")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-agent"" " string_content ") )))) ;) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) goto LAB_00108bdc;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00108bdc;" goto statement_identifier ;)) (labeled_statement "LAB_00108ba4:\n    iVar3 = strcmp((char *)param_1,"-pagent");" statement_identifier : (expression_statement "iVar3 = strcmp((char *)param_1,"-pagent");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-pagent")" identifier = (call_expression "strcmp((char *)param_1,"-pagent")" identifier (argument_list "((char *)param_1,"-pagent")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-pagent"" " string_content ") )))) ;)) (if_statement "if (iVar3 == 0) goto LAB_00108bce;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00108bce;" goto statement_identifier ;)) (labeled_statement "LAB_00108bb7:\n    iVar3 = strcmp((char *)param_1,"-pageant");" statement_identifier : (expression_statement "iVar3 = strcmp((char *)param_1,"-pageant");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-pageant")" identifier = (call_expression "strcmp((char *)param_1,"-pageant")" identifier (argument_list "((char *)param_1,"-pageant")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-pageant"" " string_content ") )))) ;)) (if_statement "if (iVar3 == 0) goto LAB_00108bce;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00108bce;" goto statement_identifier ;)) (expression_statement "iVar3 = strcmp((char *)param_1,"-noagent");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-noagent")" identifier = (call_expression "strcmp((char *)param_1,"-noagent")" identifier (argument_list "((char *)param_1,"-noagent")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-noagent"" " string_content ") )))) ;) (if_statement "if ((iVar3 != 0) && (iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0))\n    goto LAB_00108d1b;" if (parenthesized_expression "((iVar3 != 0) && (iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0))" ( (binary_expression "(iVar3 != 0) && (iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0)" ( (comma_expression "iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0" (assignment_expression "iVar3 = strcmp((char *)param_1,"-nopagent")" identifier = (call_expression "strcmp((char *)param_1,"-nopagent")" identifier (argument_list "((char *)param_1,"-nopagent")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-nopagent"" " string_content ") )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00108d1b;" goto statement_identifier ;)) (labeled_statement "LAB_00108d2e:\n    if (param_3 < 0) {\n      return 1;\n    }" statement_identifier : (if_statement "if (param_3 < 0) {\n      return 1;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) }))) (labeled_statement "LAB_00109e76:\n    iVar3 = FUN_00108083(2,param_1);" statement_identifier : (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar3 != 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00108c37:\n    FUN_0010ac09(param_4,0x1c,0);" statement_identifier : (expression_statement "FUN_0010ac09(param_4,0x1c,0);" (call_expression "FUN_0010ac09(param_4,0x1c,0)" identifier (argument_list "(param_4,0x1c,0)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar3 = strcmp((char *)param_1,"-A");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-A")" identifier = (call_expression "strcmp((char *)param_1,"-A")" identifier (argument_list "((char *)param_1,"-A")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-A"" " string_content ") )))) ;) (if_statement "if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d88;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d88;\n    }" { (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00109d88;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp((char *)param_1,"-a");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-a")" identifier = (call_expression "strcmp((char *)param_1,"-a")" identifier (argument_list "((char *)param_1,"-a")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-a"" " string_content ") )))) ;) (if_statement "if (iVar3 != 0) {\n      uVar5 = 1;\nLAB_00108c7d:\n      iVar3 = strcmp((char *)param_1,"-X");\n      if (iVar3 != 0) goto LAB_00109dce;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108ca2;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar5 = 1;\nLAB_00108c7d:\n      iVar3 = strcmp((char *)param_1,"-X");\n      if (iVar3 != 0) goto LAB_00109dce;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108ca2;\n    }" { (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00108c7d:\n      iVar3 = strcmp((char *)param_1,"-X");" statement_identifier : (expression_statement "iVar3 = strcmp((char *)param_1,"-X");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-X")" identifier = (call_expression "strcmp((char *)param_1,"-X")" identifier (argument_list "((char *)param_1,"-X")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-X"" " string_content ") )))) ;)) (if_statement "if (iVar3 != 0) goto LAB_00109dce;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109dce;" goto statement_identifier ;)) (if_statement "if (param_3 < 0) {\n        return 1;\n      }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00108ca2;" goto statement_identifier ;) })) (labeled_statement "LAB_00108db9:\n    iVar3 = FUN_00108083(3,param_1);" statement_identifier : (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar3 != 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109d25:\n    FUN_0010ac09(param_4,0x1d,0);" statement_identifier : (expression_statement "FUN_0010ac09(param_4,0x1d,0);" (call_expression "FUN_0010ac09(param_4,0x1d,0)" identifier (argument_list "(param_4,0x1d,0)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar3 = strcmp((char *)param_1,"-X");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-X")" identifier = (call_expression "strcmp((char *)param_1,"-X")" identifier (argument_list "((char *)param_1,"-X")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-X"" " string_content ") )))) ;) (if_statement "if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c0f:\n      FUN_0010ac09(param_4,0x95,1);\n      iVar3 = strcmp((char *)param_1,"-x");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }\n      iVar3 = strcmp((char *)param_1,"-t");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109dfc;\nLAB_00108e45:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_00109c87;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c0f:\n      FUN_0010ac09(param_4,0x95,1);\n      iVar3 = strcmp((char *)param_1,"-x");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }\n      iVar3 = strcmp((char *)param_1,"-t");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109dfc;\nLAB_00108e45:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_00109c87;\n    }" { (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109c0f:\n      FUN_0010ac09(param_4,0x95,1);" statement_identifier : (expression_statement "FUN_0010ac09(param_4,0x95,1);" (call_expression "FUN_0010ac09(param_4,0x95,1)" identifier (argument_list "(param_4,0x95,1)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar3 = strcmp((char *)param_1,"-x");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-x")" identifier = (call_expression "strcmp((char *)param_1,"-x")" identifier (argument_list "((char *)param_1,"-x")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-x"" " string_content ") )))) ;) (if_statement "if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }" { (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n          return 1;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          return 1;\n        }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00109c49;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp((char *)param_1,"-t");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-t")" identifier = (call_expression "strcmp((char *)param_1,"-t")" identifier (argument_list "((char *)param_1,"-t")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-t"" " string_content ") )))) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_00109dfc;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109dfc;" goto statement_identifier ;)) (labeled_statement "LAB_00108e45:\n      iVar3 = FUN_00108083(3,param_1);" statement_identifier : (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }" { (expression_statement "FUN_001080ad(param_1,param_2,1);" (call_expression "FUN_001080ad(param_1,param_2,1)" identifier (argument_list "(param_1,param_2,1)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00109c87;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp((char *)param_1,"-x");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-x")" identifier = (call_expression "strcmp((char *)param_1,"-x")" identifier (argument_list "((char *)param_1,"-x")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-x"" " string_content ") )))) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) goto LAB_00108dff;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00108dff;" goto statement_identifier ;)) (labeled_statement "LAB_00109de5:\n    iVar3 = strcmp((char *)param_1,"-t");" statement_identifier : (expression_statement "iVar3 = strcmp((char *)param_1,"-t");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-t")" identifier = (call_expression "strcmp((char *)param_1,"-t")" identifier (argument_list "((char *)param_1,"-t")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-t"" " string_content ") )))) ;)) (if_statement "if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108e45;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108e45;\n    }" { (if_statement "if (param_3 < 0) {\n        return 1;\n      }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00108e45;" goto statement_identifier ;) })) (labeled_statement "LAB_00109dfc:\n    iVar3 = strcmp((char *)param_1,"-T");" statement_identifier : (expression_statement "iVar3 = strcmp((char *)param_1,"-T");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-T")" identifier = (call_expression "strcmp((char *)param_1,"-T")" identifier (argument_list "((char *)param_1,"-T")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-T"" " string_content ") )))) ;)) (if_statement "if (iVar3 != 0) goto LAB_00109b7b;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109b7b;" goto statement_identifier ;)) (if_statement "if (param_3 < 0) {\n      return 1;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109e21:\n    iVar3 = FUN_00108083(3,param_1);" statement_identifier : (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar3 != 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }" { (expression_statement "FUN_001080ad(param_1,param_2,1);" (call_expression "FUN_001080ad(param_1,param_2,1)" identifier (argument_list "(param_1,param_2,1)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109cc5:\n    FUN_0010ac09(param_4,0x16,1);" statement_identifier : (expression_statement "FUN_0010ac09(param_4,0x16,1);" (call_expression "FUN_0010ac09(param_4,0x16,1)" identifier (argument_list "(param_4,0x16,1)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar3 = strcmp((char *)param_1,"-N");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-N")" identifier = (call_expression "strcmp((char *)param_1,"-N")" identifier (argument_list "((char *)param_1,"-N")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-N"" " string_content ") )))) ;) (if_statement "if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-C");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00108e8b;\n      goto LAB_00109aea;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar3 = strcmp((char *)param_1,"-C");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00108e8b;\n      goto LAB_00109aea;\n    }" { (expression_statement "iVar3 = strcmp((char *)param_1,"-C");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-C")" identifier = (call_expression "strcmp((char *)param_1,"-C")" identifier (argument_list "((char *)param_1,"-C")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-C"" " string_content ") )))) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) goto LAB_00108e8b;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00108e8b;" goto statement_identifier ;)) (goto_statement "goto LAB_00109aea;" goto statement_identifier ;) })) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109a6e:\n    FUN_0010ac09(param_4,0x2d,1);" statement_identifier : (expression_statement "FUN_0010ac09(param_4,0x2d,1);" (call_expression "FUN_0010ac09(param_4,0x2d,1)" identifier (argument_list "(param_4,0x2d,1)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar3 = strcmp((char *)param_1,"-C");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-C")" identifier = (call_expression "strcmp((char *)param_1,"-C")" identifier (argument_list "((char *)param_1,"-C")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-C"" " string_content ") )))) ;) (if_statement "if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_0010989e;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_0010989e;\n    }" { (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_0010989e;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp((char *)param_1,"-1");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-1")" identifier = (call_expression "strcmp((char *)param_1,"-1")" identifier (argument_list "((char *)param_1,"-1")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-1"" " string_content ") )))) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) goto LAB_00108ed1;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00108ed1;" goto statement_identifier ;)) (labeled_statement "LAB_00109b01:\n    iVar3 = strcmp((char *)param_1,"-2");" statement_identifier : (expression_statement "iVar3 = strcmp((char *)param_1,"-2");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-2")" identifier = (call_expression "strcmp((char *)param_1,"-2")" identifier (argument_list "((char *)param_1,"-2")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-2"" " string_content ") )))) ;)) (if_statement "if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00109b26:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109918;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00109b26:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109918;\n    }" { (if_statement "if (param_3 < 0) {\n        return 1;\n      }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109b26:\n      iVar3 = FUN_00108083(2,param_1);" statement_identifier : (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00109918;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00109930:\n  iVar3 = strcmp((char *)param_1,"-i");" statement_identifier : (expression_statement "iVar3 = strcmp((char *)param_1,"-i");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-i")" identifier = (call_expression "strcmp((char *)param_1,"-i")" identifier (argument_list "((char *)param_1,"-i")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-i"" " string_content ") )))) ;)) (if_statement "if (iVar3 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    uVar5 = FUN_001321a4(param_2);\n    FUN_0010af59(param_4,0x20,uVar5);\n    FUN_00132212(uVar5);\n    iVar3 = strcmp((char *)param_1,"-4");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-ipv4");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_00109814;\n    }\nLAB_001099af:\n    FUN_0010ac09(param_4,3,1);\n    iVar3 = strcmp((char *)param_1,"-6");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_001099de;\nLAB_00109827:\n    iVar3 = strcmp((char *)param_1,"-ipv6");\n    if (iVar3 == 0) goto LAB_0010983e;\n  }\n  else {\n    iVar3 = strcmp((char *)param_1,"-4");\n    if ((iVar3 == 0) || (iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_001099af;\n    }\nLAB_00109814:\n    iVar3 = strcmp((char *)param_1,"-6");\n    if (iVar3 != 0) goto LAB_00109827;\nLAB_0010983e:\n    if (param_3 < 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_001099de:\n    FUN_0010ac09(param_4,3,2);\n    uVar5 = 1;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    uVar5 = FUN_001321a4(param_2);\n    FUN_0010af59(param_4,0x20,uVar5);\n    FUN_00132212(uVar5);\n    iVar3 = strcmp((char *)param_1,"-4");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-ipv4");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_00109814;\n    }\nLAB_001099af:\n    FUN_0010ac09(param_4,3,1);\n    iVar3 = strcmp((char *)param_1,"-6");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_001099de;\nLAB_00109827:\n    iVar3 = strcmp((char *)param_1,"-ipv6");\n    if (iVar3 == 0) goto LAB_0010983e;\n  }" { (if_statement "if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 0xfffffffe;\n    }" { (return_statement "return 0xfffffffe;" return number_literal ;) })) (if_statement "if (param_3 < 0) {\n      return 2;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      return 2;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (expression_statement "uVar5 = FUN_001321a4(param_2);" (assignment_expression "uVar5 = FUN_001321a4(param_2)" identifier = (call_expression "FUN_001321a4(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "FUN_0010af59(param_4,0x20,uVar5);" (call_expression "FUN_0010af59(param_4,0x20,uVar5)" identifier (argument_list "(param_4,0x20,uVar5)" ( identifier , number_literal , identifier ))) ;) (expression_statement "FUN_00132212(uVar5);" (call_expression "FUN_00132212(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "iVar3 = strcmp((char *)param_1,"-4");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-4")" identifier = (call_expression "strcmp((char *)param_1,"-4")" identifier (argument_list "((char *)param_1,"-4")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-4"" " string_content ") )))) ;) (if_statement "if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-ipv4");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_00109814;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar3 = strcmp((char *)param_1,"-ipv4");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_00109814;\n    }" { (expression_statement "iVar3 = strcmp((char *)param_1,"-ipv4");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-ipv4")" identifier = (call_expression "strcmp((char *)param_1,"-ipv4")" identifier (argument_list "((char *)param_1,"-ipv4")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-ipv4"" " string_content ") )))) ;) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_00109814;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109814;" goto statement_identifier ;)) })) (labeled_statement "LAB_001099af:\n    FUN_0010ac09(param_4,3,1);" statement_identifier : (expression_statement "FUN_0010ac09(param_4,3,1);" (call_expression "FUN_0010ac09(param_4,3,1)" identifier (argument_list "(param_4,3,1)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar3 = strcmp((char *)param_1,"-6");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-6")" identifier = (call_expression "strcmp((char *)param_1,"-6")" identifier (argument_list "((char *)param_1,"-6")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-6"" " string_content ") )))) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) goto LAB_001099de;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001099de;" goto statement_identifier ;)) (labeled_statement "LAB_00109827:\n    iVar3 = strcmp((char *)param_1,"-ipv6");" statement_identifier : (expression_statement "iVar3 = strcmp((char *)param_1,"-ipv6");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-ipv6")" identifier = (call_expression "strcmp((char *)param_1,"-ipv6")" identifier (argument_list "((char *)param_1,"-ipv6")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-ipv6"" " string_content ") )))) ;)) (if_statement "if (iVar3 == 0) goto LAB_0010983e;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0010983e;" goto statement_identifier ;)) }) (else_clause "else {\n    iVar3 = strcmp((char *)param_1,"-4");\n    if ((iVar3 == 0) || (iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_001099af;\n    }\nLAB_00109814:\n    iVar3 = strcmp((char *)param_1,"-6");\n    if (iVar3 != 0) goto LAB_00109827;\nLAB_0010983e:\n    if (param_3 < 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_001099de:\n    FUN_0010ac09(param_4,3,2);\n    uVar5 = 1;\n  }" else (compound_statement "{\n    iVar3 = strcmp((char *)param_1,"-4");\n    if ((iVar3 == 0) || (iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_001099af;\n    }\nLAB_00109814:\n    iVar3 = strcmp((char *)param_1,"-6");\n    if (iVar3 != 0) goto LAB_00109827;\nLAB_0010983e:\n    if (param_3 < 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_001099de:\n    FUN_0010ac09(param_4,3,2);\n    uVar5 = 1;\n  }" { (expression_statement "iVar3 = strcmp((char *)param_1,"-4");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-4")" identifier = (call_expression "strcmp((char *)param_1,"-4")" identifier (argument_list "((char *)param_1,"-4")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-4"" " string_content ") )))) ;) (if_statement "if ((iVar3 == 0) || (iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_001099af;\n    }" if (parenthesized_expression "((iVar3 == 0) || (iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0))" ( (binary_expression "(iVar3 == 0) || (iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0)" ( (comma_expression "iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0" (assignment_expression "iVar3 = strcmp((char *)param_1,"-ipv4")" identifier = (call_expression "strcmp((char *)param_1,"-ipv4")" identifier (argument_list "((char *)param_1,"-ipv4")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-ipv4"" " string_content ") )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_001099af;\n    }" { (if_statement "if (param_3 < 0) {\n        return 1;\n      }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }" { (expression_statement "FUN_001080ad(param_1,param_2,1);" (call_expression "FUN_001080ad(param_1,param_2,1)" identifier (argument_list "(param_1,param_2,1)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_001099af;" goto statement_identifier ;) })) (labeled_statement "LAB_00109814:\n    iVar3 = strcmp((char *)param_1,"-6");" statement_identifier : (expression_statement "iVar3 = strcmp((char *)param_1,"-6");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-6")" identifier = (call_expression "strcmp((char *)param_1,"-6")" identifier (argument_list "((char *)param_1,"-6")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-6"" " string_content ") )))) ;)) (if_statement "if (iVar3 != 0) goto LAB_00109827;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109827;" goto statement_identifier ;)) (labeled_statement "LAB_0010983e:\n    if (param_3 < 0) {\n      return 1;\n    }" statement_identifier : (if_statement "if (param_3 < 0) {\n      return 1;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) }))) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }" { (expression_statement "FUN_001080ad(param_1,param_2,1);" (call_expression "FUN_001080ad(param_1,param_2,1)" identifier (argument_list "(param_1,param_2,1)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_001099de:\n    FUN_0010ac09(param_4,3,2);" statement_identifier : (expression_statement "FUN_0010ac09(param_4,3,2);" (call_expression "FUN_0010ac09(param_4,3,2)" identifier (argument_list "(param_4,3,2)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) }))) (expression_statement "iVar3 = strcmp((char *)param_1,"-sercfg");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-sercfg")" identifier = (call_expression "strcmp((char *)param_1,"-sercfg")" identifier (argument_list "((char *)param_1,"-sercfg")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-sercfg"" " string_content ") )))) ;) (if_statement "if (iVar3 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }\n    iVar3 = FUN_0010a543(param_4,2);\n    pcVar6 = param_2;\n    if (iVar3 != 4) {\n      FUN_00134fb0("the -sercfg option can only be used with the serial protocol");\n    }\n    for (; *pcVar6 != '\0'; pcVar6 = pcVar6 + (local_48 + iVar3)) {\n      pcVar8 = strchr(pcVar6,0x2c);\n      if (pcVar8 == (char *)0x0) {\n        lVar10 = -1;\n        pcVar8 = pcVar6;\n        do {\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        iVar3 = ~(uint)lVar10 - 1;\n        local_48 = 0;\n      }\n      else {\n        iVar3 = (int)pcVar8 - (int)pcVar6;\n        pcVar6[iVar3] = '\0';\n        local_48 = 1;\n      }\n      if (iVar3 == 1) {\n        cVar2 = *pcVar6;\n        switch(cVar2) {\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }\n      }\n      else if ((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)) {\n        FUN_0010ac09(param_4,0x3c,3);\n      }\n      else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }\n    }\n    iVar3 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-sshlog");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_0010921f;\n      goto LAB_0010924d;\n    }\n    iVar3 = FUN_00108083(1,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_001095f3:\n    uVar5 = FUN_001321a4(param_2);\n    FUN_0010af59(param_4,0x77,uVar5);\n    FUN_0010ac09(param_4,0x78,2);\n    FUN_00132212(uVar5);\n    iVar3 = strcmp((char *)param_1,"-sshlog");\n    uVar5 = 2;\n    if (iVar3 != 0) {\nLAB_0010921f:\n      iVar3 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar3 != 0) {\n          return uVar5;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }\n      goto LAB_00109236;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n  }\n  else {\n    iVar3 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(1,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001095f3;\n    }\n    iVar3 = strcmp((char *)param_1,"-sshlog");\n    if (iVar3 != 0) goto LAB_0010921f;\nLAB_00109236:\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\nLAB_0010924d:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }\n    iVar3 = FUN_0010a543(param_4,2);\n    pcVar6 = param_2;\n    if (iVar3 != 4) {\n      FUN_00134fb0("the -sercfg option can only be used with the serial protocol");\n    }\n    for (; *pcVar6 != '\0'; pcVar6 = pcVar6 + (local_48 + iVar3)) {\n      pcVar8 = strchr(pcVar6,0x2c);\n      if (pcVar8 == (char *)0x0) {\n        lVar10 = -1;\n        pcVar8 = pcVar6;\n        do {\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        iVar3 = ~(uint)lVar10 - 1;\n        local_48 = 0;\n      }\n      else {\n        iVar3 = (int)pcVar8 - (int)pcVar6;\n        pcVar6[iVar3] = '\0';\n        local_48 = 1;\n      }\n      if (iVar3 == 1) {\n        cVar2 = *pcVar6;\n        switch(cVar2) {\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }\n      }\n      else if ((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)) {\n        FUN_0010ac09(param_4,0x3c,3);\n      }\n      else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }\n    }\n    iVar3 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-sshlog");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_0010921f;\n      goto LAB_0010924d;\n    }\n    iVar3 = FUN_00108083(1,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_001095f3:\n    uVar5 = FUN_001321a4(param_2);\n    FUN_0010af59(param_4,0x77,uVar5);\n    FUN_0010ac09(param_4,0x78,2);\n    FUN_00132212(uVar5);\n    iVar3 = strcmp((char *)param_1,"-sshlog");\n    uVar5 = 2;\n    if (iVar3 != 0) {\nLAB_0010921f:\n      iVar3 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar3 != 0) {\n          return uVar5;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }\n      goto LAB_00109236;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n  }" { (if_statement "if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 0xfffffffe;\n    }" { (return_statement "return 0xfffffffe;" return number_literal ;) })) (if_statement "if (param_3 < 0) {\n      return 2;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      return 2;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }" { (expression_statement "FUN_001080ad(param_1,param_2,1);" (call_expression "FUN_001080ad(param_1,param_2,1)" identifier (argument_list "(param_1,param_2,1)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar3 = FUN_0010a543(param_4,2);" (assignment_expression "iVar3 = FUN_0010a543(param_4,2)" identifier = (call_expression "FUN_0010a543(param_4,2)" identifier (argument_list "(param_4,2)" ( identifier , number_literal )))) ;) (expression_statement "pcVar6 = param_2;" (assignment_expression "pcVar6 = param_2" identifier = identifier) ;) (if_statement "if (iVar3 != 4) {\n      FUN_00134fb0("the -sercfg option can only be used with the serial protocol");\n    }" if (parenthesized_expression "(iVar3 != 4)" ( (binary_expression "iVar3 != 4" identifier != number_literal) )) (compound_statement "{\n      FUN_00134fb0("the -sercfg option can only be used with the serial protocol");\n    }" { (expression_statement "FUN_00134fb0("the -sercfg option can only be used with the serial protocol");" (call_expression "FUN_00134fb0("the -sercfg option can only be used with the serial protocol")" identifier (argument_list "("the -sercfg option can only be used with the serial protocol")" ( (string_literal ""the -sercfg option can only be used with the serial protocol"" " string_content ") ))) ;) })) (for_statement "for (; *pcVar6 != '\0'; pcVar6 = pcVar6 + (local_48 + iVar3)) {\n      pcVar8 = strchr(pcVar6,0x2c);\n      if (pcVar8 == (char *)0x0) {\n        lVar10 = -1;\n        pcVar8 = pcVar6;\n        do {\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        iVar3 = ~(uint)lVar10 - 1;\n        local_48 = 0;\n      }\n      else {\n        iVar3 = (int)pcVar8 - (int)pcVar6;\n        pcVar6[iVar3] = '\0';\n        local_48 = 1;\n      }\n      if (iVar3 == 1) {\n        cVar2 = *pcVar6;\n        switch(cVar2) {\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }\n      }\n      else if ((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)) {\n        FUN_0010ac09(param_4,0x3c,3);\n      }\n      else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }\n    }" for ( ; (binary_expression "*pcVar6 != '\0'" (pointer_expression "*pcVar6" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ; (assignment_expression "pcVar6 = pcVar6 + (local_48 + iVar3)" identifier = (binary_expression "pcVar6 + (local_48 + iVar3)" identifier + (parenthesized_expression "(local_48 + iVar3)" ( (binary_expression "local_48 + iVar3" identifier + identifier) )))) ) (compound_statement "{\n      pcVar8 = strchr(pcVar6,0x2c);\n      if (pcVar8 == (char *)0x0) {\n        lVar10 = -1;\n        pcVar8 = pcVar6;\n        do {\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        iVar3 = ~(uint)lVar10 - 1;\n        local_48 = 0;\n      }\n      else {\n        iVar3 = (int)pcVar8 - (int)pcVar6;\n        pcVar6[iVar3] = '\0';\n        local_48 = 1;\n      }\n      if (iVar3 == 1) {\n        cVar2 = *pcVar6;\n        switch(cVar2) {\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }\n      }\n      else if ((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)) {\n        FUN_0010ac09(param_4,0x3c,3);\n      }\n      else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }\n    }" { (expression_statement "pcVar8 = strchr(pcVar6,0x2c);" (assignment_expression "pcVar8 = strchr(pcVar6,0x2c)" identifier = (call_expression "strchr(pcVar6,0x2c)" identifier (argument_list "(pcVar6,0x2c)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar8 == (char *)0x0) {\n        lVar10 = -1;\n        pcVar8 = pcVar6;\n        do {\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        iVar3 = ~(uint)lVar10 - 1;\n        local_48 = 0;\n      }\n      else {\n        iVar3 = (int)pcVar8 - (int)pcVar6;\n        pcVar6[iVar3] = '\0';\n        local_48 = 1;\n      }" if (parenthesized_expression "(pcVar8 == (char *)0x0)" ( (binary_expression "pcVar8 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        lVar10 = -1;\n        pcVar8 = pcVar6;\n        do {\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        iVar3 = ~(uint)lVar10 - 1;\n        local_48 = 0;\n      }" { (expression_statement "lVar10 = -1;" (assignment_expression "lVar10 = -1" identifier = number_literal) ;) (expression_statement "pcVar8 = pcVar6;" (assignment_expression "pcVar8 = pcVar6" identifier = identifier) ;) (do_statement "do {\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');" do (compound_statement "{\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (expression_statement "pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pcVar8 + (ulong)bVar20 * -2 + 1" (binary_expression "pcVar8 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "iVar3 = ~(uint)lVar10 - 1;" (assignment_expression "iVar3 = ~(uint)lVar10 - 1" identifier = (binary_expression "~(uint)lVar10 - 1" (unary_expression "~(uint)lVar10" ~ (cast_expression "(uint)lVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) - number_literal)) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        iVar3 = (int)pcVar8 - (int)pcVar6;\n        pcVar6[iVar3] = '\0';\n        local_48 = 1;\n      }" else (compound_statement "{\n        iVar3 = (int)pcVar8 - (int)pcVar6;\n        pcVar6[iVar3] = '\0';\n        local_48 = 1;\n      }" { (expression_statement "iVar3 = (int)pcVar8 - (int)pcVar6;" (assignment_expression "iVar3 = (int)pcVar8 - (int)pcVar6" identifier = (binary_expression "(int)pcVar8 - (int)pcVar6" (cast_expression "(int)pcVar8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar6[iVar3] = '\0';" (assignment_expression "pcVar6[iVar3] = '\0'" (subscript_expression "pcVar6[iVar3]" identifier [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" identifier = number_literal) ;) }))) (if_statement "if (iVar3 == 1) {\n        cVar2 = *pcVar6;\n        switch(cVar2) {\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }\n      }\n      else if ((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)) {\n        FUN_0010ac09(param_4,0x3c,3);\n      }\n      else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\n        cVar2 = *pcVar6;\n        switch(cVar2) {\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }\n      }" { (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (switch_statement "switch(cVar2) {\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }" switch (parenthesized_expression "(cVar2)" ( identifier )) (compound_statement "{\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }" { (case_statement "case '1':" case (char_literal "'1'" ' character ') :) (case_statement "case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;" case (char_literal "'2'" ' character ') : (expression_statement "FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);" (call_expression "FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60)" identifier (argument_list "(param_4,0x3c,cVar2 * 2 + -0x60)" ( identifier , number_literal , (binary_expression "cVar2 * 2 + -0x60" (binary_expression "cVar2 * 2" identifier * number_literal) + number_literal) ))) ;) (break_statement "break;" break ;)) (case_statement "default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;" default : (expression_statement "FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");" (call_expression "FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"")" identifier (argument_list "("Unrecognised suboption \"-sercfg %c\"")" ( (string_literal ""Unrecognised suboption \"-sercfg %c\""" " string_content escape_sequence string_content escape_sequence ") ))) ;) (break_statement "break;" break ;)) (case_statement "case '5':" case (char_literal "'5'" ' character ') :) (case_statement "case '6':" case (char_literal "'6'" ' character ') :) (case_statement "case '7':" case (char_literal "'7'" ' character ') :) (case_statement "case '8':" case (char_literal "'8'" ' character ') :) (case_statement "case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;" case (char_literal "'9'" ' character ') : (expression_statement "FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);" (call_expression "FUN_0010ac09(param_4,0x3b,cVar2 + -0x30)" identifier (argument_list "(param_4,0x3b,cVar2 + -0x30)" ( identifier , number_literal , (binary_expression "cVar2 + -0x30" identifier + number_literal) ))) ;) (break_statement "break;" break ;)) (case_statement "case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;" case (char_literal "'D'" ' character ') : (expression_statement "FUN_0010ac09(param_4,0x3e,3);" (call_expression "FUN_0010ac09(param_4,0x3e,3)" identifier (argument_list "(param_4,0x3e,3)" ( identifier , number_literal , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;" case (char_literal "'N'" ' character ') : (expression_statement "FUN_0010ac09(param_4,0x3e,0);" (call_expression "FUN_0010ac09(param_4,0x3e,0)" identifier (argument_list "(param_4,0x3e,0)" ( identifier , number_literal , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;" case (char_literal "'R'" ' character ') : (expression_statement "FUN_0010ac09(param_4,0x3e,2);" (call_expression "FUN_0010ac09(param_4,0x3e,2)" identifier (argument_list "(param_4,0x3e,2)" ( identifier , number_literal , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;" case (char_literal "'X'" ' character ') : (expression_statement "FUN_0010ac09(param_4,0x3e,1);" (call_expression "FUN_0010ac09(param_4,0x3e,1)" identifier (argument_list "(param_4,0x3e,1)" ( identifier , number_literal , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;" case (char_literal "'e'" ' character ') : (expression_statement "FUN_0010ac09(param_4,0x3d,2);" (call_expression "FUN_0010ac09(param_4,0x3d,2)" identifier (argument_list "(param_4,0x3d,2)" ( identifier , number_literal , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;" case (char_literal "'m'" ' character ') : (expression_statement "FUN_0010ac09(param_4,0x3d,3);" (call_expression "FUN_0010ac09(param_4,0x3d,3)" identifier (argument_list "(param_4,0x3d,3)" ( identifier , number_literal , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;" case (char_literal "'n'" ' character ') : (expression_statement "FUN_0010ac09(param_4,0x3d,0);" (call_expression "FUN_0010ac09(param_4,0x3d,0)" identifier (argument_list "(param_4,0x3d,0)" ( identifier , number_literal , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;" case (char_literal "'o'" ' character ') : (expression_statement "FUN_0010ac09(param_4,0x3d,1);" (call_expression "FUN_0010ac09(param_4,0x3d,1)" identifier (argument_list "(param_4,0x3d,1)" ( identifier , number_literal , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 's':\n          FUN_0010ac09(param_4,0x3d,4);" case (char_literal "'s'" ' character ') : (expression_statement "FUN_0010ac09(param_4,0x3d,4);" (call_expression "FUN_0010ac09(param_4,0x3d,4)" identifier (argument_list "(param_4,0x3d,4)" ( identifier , number_literal , number_literal ))) ;)) })) }) (else_clause "else if ((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)) {\n        FUN_0010ac09(param_4,0x3c,3);\n      }\n      else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }" else (if_statement "if ((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)) {\n        FUN_0010ac09(param_4,0x3c,3);\n      }\n      else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }" if (parenthesized_expression "((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0))" ( (binary_expression "(iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)" (parenthesized_expression "(iVar3 == 3)" ( (binary_expression "iVar3 == 3" identifier == number_literal) )) && (parenthesized_expression "(iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)" ( (comma_expression "iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0" (assignment_expression "iVar4 = strncmp(pcVar6,"1.5",3)" identifier = (call_expression "strncmp(pcVar6,"1.5",3)" identifier (argument_list "(pcVar6,"1.5",3)" ( identifier , (string_literal ""1.5"" " string_content ") , number_literal )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        FUN_0010ac09(param_4,0x3c,3);\n      }" { (expression_statement "FUN_0010ac09(param_4,0x3c,3);" (call_expression "FUN_0010ac09(param_4,0x3c,3)" identifier (argument_list "(param_4,0x3c,3)" ( identifier , number_literal , number_literal ))) ;) }) (else_clause "else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }" else (compound_statement "{\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }" { (expression_statement "uVar9 = strtol(pcVar6,(char **)0x0,10);" (assignment_expression "uVar9 = strtol(pcVar6,(char **)0x0,10)" identifier = (call_expression "strtol(pcVar6,(char **)0x0,10)" identifier (argument_list "(pcVar6,(char **)0x0,10)" ( identifier , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , number_literal )))) ;) (if_statement "if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }" if (parenthesized_expression "((int)uVar9 == 0)" ( (binary_expression "(int)uVar9 == 0" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }" { (expression_statement "FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);" (call_expression "FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6)" identifier (argument_list "("Unrecognised suboption \"-sercfg %s\"",pcVar6)" ( (string_literal ""Unrecognised suboption \"-sercfg %s\""" " string_content escape_sequence string_content escape_sequence ") , identifier ))) ;) }) (else_clause "else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }" else (compound_statement "{\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }" { (expression_statement "FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);" (call_expression "FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff)" identifier (argument_list "(param_4,0x3a,uVar9 & 0xffffffff)" ( identifier , number_literal , (binary_expression "uVar9 & 0xffffffff" identifier & number_literal) ))) ;) }))) }))))) })) (expression_statement "iVar3 = strcmp((char *)param_1,"-sessionlog");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-sessionlog")" identifier = (call_expression "strcmp((char *)param_1,"-sessionlog")" identifier (argument_list "((char *)param_1,"-sessionlog")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-sessionlog"" " string_content ") )))) ;) (if_statement "if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-sshlog");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_0010921f;\n      goto LAB_0010924d;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar3 = strcmp((char *)param_1,"-sshlog");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_0010921f;\n      goto LAB_0010924d;\n    }" { (expression_statement "iVar3 = strcmp((char *)param_1,"-sshlog");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-sshlog")" identifier = (call_expression "strcmp((char *)param_1,"-sshlog")" identifier (argument_list "((char *)param_1,"-sshlog")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-sshlog"" " string_content ") )))) ;) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0010921f;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0010921f;" goto statement_identifier ;)) (goto_statement "goto LAB_0010924d;" goto statement_identifier ;) })) (expression_statement "iVar3 = FUN_00108083(1,param_1);" (assignment_expression "iVar3 = FUN_00108083(1,param_1)" identifier = (call_expression "FUN_00108083(1,param_1)" identifier (argument_list "(1,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      return 2;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_001095f3:\n    uVar5 = FUN_001321a4(param_2);" statement_identifier : (expression_statement "uVar5 = FUN_001321a4(param_2);" (assignment_expression "uVar5 = FUN_001321a4(param_2)" identifier = (call_expression "FUN_001321a4(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;)) (expression_statement "FUN_0010af59(param_4,0x77,uVar5);" (call_expression "FUN_0010af59(param_4,0x77,uVar5)" identifier (argument_list "(param_4,0x77,uVar5)" ( identifier , number_literal , identifier ))) ;) (expression_statement "FUN_0010ac09(param_4,0x78,2);" (call_expression "FUN_0010ac09(param_4,0x78,2)" identifier (argument_list "(param_4,0x78,2)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "FUN_00132212(uVar5);" (call_expression "FUN_00132212(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "iVar3 = strcmp((char *)param_1,"-sshlog");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-sshlog")" identifier = (call_expression "strcmp((char *)param_1,"-sshlog")" identifier (argument_list "((char *)param_1,"-sshlog")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-sshlog"" " string_content ") )))) ;) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) {\nLAB_0010921f:\n      iVar3 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar3 != 0) {\n          return uVar5;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }\n      goto LAB_00109236;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0010921f:\n      iVar3 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar3 != 0) {\n          return uVar5;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }\n      goto LAB_00109236;\n    }" { (labeled_statement "LAB_0010921f:\n      iVar3 = strcmp((char *)param_1,"-sshrawlog");" statement_identifier : (expression_statement "iVar3 = strcmp((char *)param_1,"-sshrawlog");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-sshrawlog")" identifier = (call_expression "strcmp((char *)param_1,"-sshrawlog")" identifier (argument_list "((char *)param_1,"-sshrawlog")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-sshrawlog"" " string_content ") )))) ;)) (if_statement "if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar3 != 0) {\n          return uVar5;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar3 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar3 != 0) {\n          return uVar5;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }" { (expression_statement "iVar3 = strcmp((char *)param_1,"-proxycmd");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-proxycmd")" identifier = (call_expression "strcmp((char *)param_1,"-proxycmd")" identifier (argument_list "((char *)param_1,"-proxycmd")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-proxycmd"" " string_content ") )))) ;) (if_statement "if (iVar3 != 0) {\n          return uVar5;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          return uVar5;\n        }" { (return_statement "return uVar5;" return identifier ;) })) (if_statement "if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return 0xfffffffe;\n        }" { (return_statement "return 0xfffffffe;" return number_literal ;) })) (if_statement "if (param_3 < 0) {\n          return 2;\n        }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n          return 2;\n        }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n          return 2;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          return 2;\n        }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (goto_statement "goto LAB_001092e3;" goto statement_identifier ;) })) (goto_statement "goto LAB_00109236;" goto statement_identifier ;) })) (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      return 2;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) }) (else_clause "else {\n    iVar3 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(1,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001095f3;\n    }\n    iVar3 = strcmp((char *)param_1,"-sshlog");\n    if (iVar3 != 0) goto LAB_0010921f;\nLAB_00109236:\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\nLAB_0010924d:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n  }" else (compound_statement "{\n    iVar3 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(1,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001095f3;\n    }\n    iVar3 = strcmp((char *)param_1,"-sshlog");\n    if (iVar3 != 0) goto LAB_0010921f;\nLAB_00109236:\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\nLAB_0010924d:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n  }" { (expression_statement "iVar3 = strcmp((char *)param_1,"-sessionlog");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-sessionlog")" identifier = (call_expression "strcmp((char *)param_1,"-sessionlog")" identifier (argument_list "((char *)param_1,"-sessionlog")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-sessionlog"" " string_content ") )))) ;) (if_statement "if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(1,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001095f3;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(1,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001095f3;\n    }" { (if_statement "if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return 0xfffffffe;\n      }" { (return_statement "return 0xfffffffe;" return number_literal ;) })) (if_statement "if (param_3 < 0) {\n        return 2;\n      }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(1,param_1);" (assignment_expression "iVar3 = FUN_00108083(1,param_1)" identifier = (call_expression "FUN_00108083(1,param_1)" identifier (argument_list "(1,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        return 2;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (goto_statement "goto LAB_001095f3;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp((char *)param_1,"-sshlog");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-sshlog")" identifier = (call_expression "strcmp((char *)param_1,"-sshlog")" identifier (argument_list "((char *)param_1,"-sshlog")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-sshlog"" " string_content ") )))) ;) (if_statement "if (iVar3 != 0) goto LAB_0010921f;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0010921f;" goto statement_identifier ;)) (labeled_statement "LAB_00109236:\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }" statement_identifier : (if_statement "if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 0xfffffffe;\n    }" { (return_statement "return 0xfffffffe;" return number_literal ;) }))) (if_statement "if (param_3 < 0) {\n      return 2;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_0010924d:\n    iVar3 = FUN_00108083(2,param_1);" statement_identifier : (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar3 != 0) {\n      return 2;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) }))) (expression_statement "uVar5 = FUN_001321a4(param_2);" (assignment_expression "uVar5 = FUN_001321a4(param_2)" identifier = (call_expression "FUN_001321a4(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "FUN_0010af59(param_4,0x77,uVar5);" (call_expression "FUN_0010af59(param_4,0x77,uVar5)" identifier (argument_list "(param_4,0x77,uVar5)" ( identifier , number_literal , identifier ))) ;) (expression_statement "iVar3 = strcmp((char *)param_1,"-sshlog");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-sshlog")" identifier = (call_expression "strcmp((char *)param_1,"-sshlog")" identifier (argument_list "((char *)param_1,"-sshlog")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-sshlog"" " string_content ") )))) ;) (expression_statement "FUN_0010ac09(param_4,0x78,4 - (uint)(iVar3 == 0));" (call_expression "FUN_0010ac09(param_4,0x78,4 - (uint)(iVar3 == 0))" identifier (argument_list "(param_4,0x78,4 - (uint)(iVar3 == 0))" ( identifier , number_literal , (binary_expression "4 - (uint)(iVar3 == 0)" number_literal - (call_expression "(uint)(iVar3 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )))) ))) ;) (expression_statement "FUN_00132212(uVar5);" (call_expression "FUN_00132212(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "iVar3 = strcmp((char *)param_1,"-proxycmd");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-proxycmd")" identifier = (call_expression "strcmp((char *)param_1,"-proxycmd")" identifier (argument_list "((char *)param_1,"-proxycmd")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-proxycmd"" " string_content ") )))) ;) (if_statement "if (iVar3 != 0) {\n    return 2;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    return 2;\n  }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n    return 2;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    return 2;\n  }" { (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_001092e3:\n  FUN_0010ac09(param_4,0xd,5);" statement_identifier : (expression_statement "FUN_0010ac09(param_4,0xd,5);" (call_expression "FUN_0010ac09(param_4,0xd,5)" identifier (argument_list "(param_4,0xd,5)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "FUN_0010ad3a(param_4,0x12,param_2);" (call_expression "FUN_0010ad3a(param_4,0x12,param_2)" identifier (argument_list "(param_4,0x12,param_2)" ( identifier , number_literal , identifier ))) ;) (return_statement "return 2;" return number_literal ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nint cmdline_process_param(char *p,char *value,int need_save,Conf *conf)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  char *pcVar4;\n  char *pcVar5;\n  Filename *pFVar6;\n  FILE *__stream;\n  long lVar7;\n  ulong uVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  char *pcVar11;\n  bool bVar12;\n  bool bVar13;\n  undefined1 uVar14;\n  bool bVar15;\n  undefined1 uVar16;\n  byte bVar17;\n  int local_48;\n  int local_3c;\n  \n  bVar17 = 0;\n  bVar12 = &stack0xffffffffffffffd0 < (undefined1 *)0x28;\n  bVar15 = &stack0x00000000 == (undefined1 *)0x58;\n  lVar7 = 6;\n  pbVar9 = (byte *)p;\n  pbVar10 = (byte *)"-load";\n  do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar12 = *pbVar9 < *pbVar10;\n    bVar15 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + 1;\n    pbVar10 = pbVar10 + 1;\n  } while (bVar15);\n  bVar13 = false;\n  bVar12 = (!bVar12 && !bVar15) == bVar12;\n  if (bVar12) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (-1 < need_save) {\n      do_defaults(value,conf);\n      loaded_session = 1;\n      cmdline_session_name = dupstr(value);\n      return 2;\n    }\n    return 2;\n  }\n  lVar7 = 5;\n  pbVar9 = (byte *)p;\n  pbVar10 = &DAT_0013b272;\n  do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar13 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + 1;\n    pbVar10 = pbVar10 + 1;\n  } while (bVar12);\n  bVar15 = false;\n  bVar12 = (!bVar13 && !bVar12) == bVar13;\n  if (bVar12) {\n    if (need_save < 0) {\n      return 1;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 == 0) {\n      if (need_save == 0) {\n        default_protocol = 3;\n        default_port = 0x16;\n        conf_set_int(conf,2,3);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar7 = 8;\n  pbVar9 = (byte *)p;\n  pbVar10 = (byte *)"-telnet";\n  do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar15 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + 1;\n    pbVar10 = pbVar10 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (need_save < 0) {\n      return 1;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 == 0) {\n      if (need_save == 0) {\n        default_protocol = 1;\n        default_port = 0x17;\n        conf_set_int(conf,2,1);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar7 = 8;\n  pbVar9 = (byte *)p;\n  pbVar10 = (byte *)"-rlogin";\n  do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar13 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + 1;\n    pbVar10 = pbVar10 + 1;\n  } while (bVar12);\n  bVar15 = false;\n  bVar12 = (!bVar13 && !bVar12) == bVar13;\n  if (bVar12) {\n    if (need_save < 0) {\n      return 1;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 == 0) {\n      if (need_save == 0) {\n        default_protocol = 2;\n        default_port = 0x201;\n        conf_set_int(conf,2,2);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar7 = 5;\n  pbVar9 = (byte *)p;\n  pbVar10 = &DAT_0013b287;\n  do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar15 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + 1;\n    pbVar10 = pbVar10 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (need_save < 0) {\n      return 1;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    uVar14 = 0;\n    uVar16 = need_save == 0;\n    if (!(bool)uVar16) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\n    default_protocol = 0;\n    conf_set_int(conf,2,0);\n    lVar7 = 8;\n    pbVar9 = (byte *)p;\n    pbVar10 = (byte *)"-serial";\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      uVar14 = *pbVar9 < *pbVar10;\n      uVar16 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      uVar14 = iVar2 == 0;\n      if (!(bool)uVar14) {\n        return 1;\n      }\nLAB_0010858a:\n      uVar16 = 0;\n      default_protocol = 4;\n      conf_set_int(conf,2,4);\n      pcVar4 = conf_get_str(conf,0);\n      conf_set_str(conf,0x39,pcVar4);\n      lVar7 = 3;\n      pbVar9 = (byte *)p;\n      pbVar10 = &DAT_0013b294;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar16 = *pbVar9 < *pbVar10;\n        uVar14 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while ((bool)uVar14);\n      bVar12 = (!(bool)uVar16 && !(bool)uVar14) == (bool)uVar16;\n    }\n    else {\n      lVar7 = 3;\n      pbVar9 = (byte *)p;\n      pbVar10 = &DAT_0013b294;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        bVar12 = *pbVar9 < *pbVar10;\n        bVar15 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while (bVar15);\n      bVar12 = (!bVar12 && !bVar15) == bVar12;\n    }\n    iVar2 = 1;\n    if (bVar12) {\nLAB_00108687:\n      flags = flags | 1;\n      bVar12 = flags == 0;\n      iVar2 = 1;\n    }\n  }\n  else {\n    lVar7 = 8;\n    pbVar9 = (byte *)p;\n    pbVar10 = (byte *)"-serial";\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar13 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + 1;\n      pbVar10 = pbVar10 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) {\n      if (need_save < 0) {\n        return 1;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      uVar14 = need_save == 0;\n      if (!(bool)uVar14) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\n      goto LAB_0010858a;\n    }\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b294;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + 1;\n      pbVar10 = pbVar10 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_00108687;\n    }\n    iVar2 = 0;\n  }\n  bVar15 = false;\n  lVar7 = 3;\n  pbVar9 = (byte *)p;\n  pbVar10 = (byte *)0x1440df;\n  do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar15 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n    pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    uVar14 = 0;\n    uVar16 = need_save == 0;\n    if (!(bool)uVar16) {\n      cmdline_save_param(p,value,0);\n      return 2;\n    }\n    conf_set_str(conf,0x34,value);\n    lVar7 = 9;\n    pbVar9 = (byte *)p;\n    pbVar10 = (byte *)"-loghost";\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      uVar14 = *pbVar9 < *pbVar10;\n      uVar16 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      uVar14 = iVar2 == 0;\n      if (!(bool)uVar14) {\n        return 2;\n      }\nLAB_0010a0b4:\n      uVar16 = 0;\n      conf_set_str(conf,9,value);\n      lVar7 = 9;\n      pbVar9 = (byte *)p;\n      pbVar10 = (byte *)"-hostkey";\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar16 = *pbVar9 < *pbVar10;\n        uVar14 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while ((bool)uVar14);\n      iVar2 = 2;\n      bVar12 = (!(bool)uVar16 && !(bool)uVar14) == (bool)uVar16;\n      if (bVar12) {\n        iVar2 = cmdline_check_unavailable(2,p);\n        if (iVar2 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }\n    }\n    else {\n      lVar7 = 9;\n      pbVar9 = (byte *)p;\n      pbVar10 = (byte *)"-hostkey";\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        bVar12 = *pbVar9 < *pbVar10;\n        bVar15 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while (bVar15);\n      iVar2 = 2;\n      bVar12 = (!bVar12 && !bVar15) == bVar12;\n      if (bVar12) goto LAB_00108738;\n    }\nLAB_0010884b:\n    bVar15 = false;\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b2a9;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (!bVar12) goto LAB_00108865;\n    goto LAB_0010889d;\n  }\n  lVar7 = 9;\n  pbVar9 = (byte *)p;\n  pbVar10 = (byte *)"-loghost";\n  do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar13 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n    pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n  } while (bVar12);\n  bVar15 = false;\n  bVar12 = (!bVar13 && !bVar12) == bVar13;\n  if (bVar12) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    uVar14 = need_save == 0;\n    if (!(bool)uVar14) {\n      cmdline_save_param(p,value,0);\n      return 2;\n    }\n    goto LAB_0010a0b4;\n  }\n  lVar7 = 9;\n  pbVar9 = (byte *)p;\n  pbVar10 = (byte *)"-hostkey";\n  do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar15 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n    pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n  } while (bVar12);\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (!bVar12) goto LAB_0010884b;\n  if (value == (char *)0x0) {\n    return -2;\n  }\n  if (need_save < 0) {\n    return 2;\n  }\nLAB_00108738:\n  iVar2 = cmdline_check_unavailable(2,p);\n  if (iVar2 != 0) {\n    return 2;\n  }\n  if (need_save != 0) {\n    cmdline_save_param(p,value,0);\n    return 2;\n  }\nLAB_0010a103:\n  pcVar4 = dupstr(value);\n  iVar2 = validate_manual_hostkey(pcVar4);\n  uVar14 = 0;\n  uVar16 = iVar2 == 0;\n  if ((bool)uVar16) {\n    cmdline_error("\'%s\' is not a valid format for a manual host key specification",value);\n    safefree(pcVar4);\n    return 2;\n  }\n  conf_set_str_str(conf,0xad,pcVar4,"");\n  safefree(pcVar4);\n  lVar7 = 3;\n  pbVar9 = (byte *)p;\n  pbVar10 = &DAT_0013b2a9;\n  do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    uVar14 = *pbVar9 < *pbVar10;\n    uVar16 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n    pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n  } while ((bool)uVar16);\n  iVar2 = 2;\n  bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n  if (bVar12) {\n    iVar2 = cmdline_check_unavailable(3,p);\n    bVar12 = iVar2 == 0;\n    if (!bVar12) {\n      return 2;\n    }\nLAB_001088cd:\n    bVar15 = false;\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = (byte *)0x1440f1;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    uVar14 = 0;\n    uVar16 = (!bVar15 && !bVar12) == bVar15;\n    if ((bool)uVar16) {\n      pcVar4 = dupprintf("L%s",value);\n      pcVar5 = dupstr("D");\n    }\n    else {\n      cVar1 = p[1];\n      pcVar4 = host_strchr(value,0x3a);\n      pcVar5 = pcVar4;\n      if (pcVar4 == (char *)0x0) {\nLAB_00108973:\n        cmdline_error("-%c expects at least two colons in its argument",(ulong)(uint)(int)cVar1);\n        return 2;\n      }\n      do {\n        pcVar11 = pcVar5;\n        pcVar5 = pcVar4;\n        pcVar4 = host_strchr(pcVar5 + 1,0x3a);\n      } while (pcVar4 != (char *)0x0);\n      if (pcVar11 == (char *)0x0) goto LAB_00108973;\n      uVar14 = pcVar11 < value;\n      uVar16 = (long)pcVar11 - (long)value == 0;\n      pcVar4 = dupprintf("%c%.*s",(ulong)(uint)(int)cVar1,(long)pcVar11 - (long)value,value);\n      pcVar5 = dupstr(pcVar11 + 1);\n    }\n    conf_set_str_str(conf,0x9b,pcVar4,pcVar5);\n    safefree(pcVar4);\n    safefree(pcVar5);\n    lVar7 = 4;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b2ba;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      uVar14 = *pbVar9 < *pbVar10;\n      uVar16 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    iVar2 = 2;\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00108a01;\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\nLAB_00109fa5:\n    pcVar4 = host_strchr(value,0x3a);\n    if (pcVar4 == (char *)0x0) {\n      cmdline_error("-nc expects argument of form \'host:port\'");\n      return 2;\n    }\n    pcVar5 = dupprintf("%.*s",(long)pcVar4 - (long)value,value);\n    conf_set_str(conf,0x2e,pcVar5);\n    lVar7 = strtol(pcVar4 + 1,(char **)0x0,10);\n    conf_set_int(conf,0x2f,(int)lVar7);\n    safefree(pcVar5);\n    iVar3 = strcmp(p,"-m");\n    iVar2 = 2;\n    bVar12 = iVar3 == 0;\n    if (!bVar12) goto LAB_0010a032;\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\nLAB_00109f54:\n    __stream = fopen64(value,"r");\n    if (__stream == (FILE *)0x0) {\n      cmdline_error("unable to open command file \"%s\"",value);\n      return 2;\n    }\n    lVar7 = 0;\n    local_3c = 0;\n    pcVar4 = (char *)0x0;\n    while( true ) {\n      iVar3 = (int)lVar7;\n      iVar2 = fgetc(__stream);\n      if (iVar2 == -1) break;\n      local_48._0_1_ = (char)iVar2;\n      if (iVar3 < local_3c) {\n        pcVar4[lVar7] = (char)local_48;\n      }\n      else {\n        local_3c = iVar3 + 0x200;\n        pcVar4 = (char *)saferealloc(pcVar4,(long)local_3c,1);\n        pcVar4[lVar7] = (char)local_48;\n      }\n      lVar7 = lVar7 + 1;\n    }\n    if (iVar3 < local_3c) {\n      pcVar4[iVar3] = '\0';\n    }\n    else {\n      pcVar4 = (char *)saferealloc(pcVar4,(long)(iVar3 + 0x200),1);\n      pcVar4[lVar7] = '\0';\n    }\n    fclose(__stream);\n    conf_set_str(conf,0x14,pcVar4);\n    conf_set_str(conf,0x15,"");\n    conf_set_int(conf,0x16,1);\n    safefree(pcVar4);\n    iVar3 = strcmp(p,"-P");\n    iVar2 = 2;\n    if (iVar3 == 0) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      goto LAB_00109749;\n    }\nLAB_00108afa:\n    iVar3 = strcmp(p,"-pw");\n    if (iVar3 == 0) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,1);\n        return 2;\n      }\n      goto LAB_00109ee5;\n    }\n    iVar3 = strcmp(p,"-agent");\n    if (iVar3 != 0) goto LAB_00108ba4;\nLAB_00108bce:\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00108bdc:\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_00108bf9:\n    conf_set_int(conf,0x1c,1);\n    iVar2 = strcmp(p,"-noagent");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_00108c37;\n    }\n    iVar3 = strcmp(p,"-nopagent");\n    iVar2 = 1;\n    if (iVar3 == 0) goto LAB_00109e76;\nLAB_00108d1b:\n    iVar3 = strcmp(p,"-nopageant");\n    if (iVar3 == 0) goto LAB_00108d2e;\n    iVar3 = strcmp(p,"-A");\n    if (iVar3 != 0) {\n      iVar3 = strcmp(p,"-a");\n      if (iVar3 != 0) goto LAB_00108c7d;\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_00108db9;\n    }\n    if (need_save < 0) {\n      return 1;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_00109d88:\n    conf_set_int(conf,0x1d,1);\n    iVar2 = strcmp(p,"-a");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_00109d25;\n    }\n    iVar3 = strcmp(p,"-X");\n    iVar2 = 1;\n    if (iVar3 == 0) {\nLAB_00108ca2:\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\n      goto LAB_00109c0f;\n    }\nLAB_00109dce:\n    iVar3 = strcmp(p,"-x");\n    if (iVar3 != 0) goto LAB_00109de5;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00108dff:\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_00109c49:\n    conf_set_int(conf,0x95,0);\n    iVar2 = strcmp(p,"-t");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\nLAB_00109c87:\n      conf_set_int(conf,0x16,0);\n      iVar2 = strcmp(p,"-T");\n      if (iVar2 == 0) {\n        iVar2 = cmdline_check_unavailable(3,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }\n      iVar3 = strcmp(p,"-N");\n      iVar2 = 1;\n      if (iVar3 == 0) goto LAB_00109ba0;\n    }\n    else {\n      iVar3 = strcmp(p,"-T");\n      iVar2 = 1;\n      if (iVar3 == 0) goto LAB_00109e21;\nLAB_00109b7b:\n      iVar3 = strcmp(p,"-N");\n      if (iVar3 == 0) {\n        if (need_save < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar2 = cmdline_check_unavailable(3,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        if (need_save != 0) {\n          cmdline_save_param(p,value,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }\n    }\n    iVar3 = strcmp(p,"-C");\n    if (iVar3 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00108e8b:\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\nLAB_0010989e:\n      conf_set_int(conf,0x17,1);\n      iVar2 = strcmp(p,"-1");\n      if (iVar2 == 0) {\n        iVar2 = cmdline_check_unavailable(2,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }\n      iVar3 = strcmp(p,"-2");\n      iVar2 = 1;\n      if (iVar3 != 0) goto LAB_00109930;\n      goto LAB_00109b26;\n    }\nLAB_00109aea:\n    iVar3 = strcmp(p,"-1");\n    if (iVar3 != 0) goto LAB_00109b01;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00108ed1:\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_001098d8:\n    conf_set_int(conf,0x21,0);\n    iVar3 = strcmp(p,"-2");\n    iVar2 = 1;\n    if (iVar3 != 0) goto LAB_00109930;\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\nLAB_00109918:\n    conf_set_int(conf,0x21,3);\n    iVar2 = 1;\n  }\n  else {\nLAB_00108865:\n    bVar15 = false;\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b2ac;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar13 = false;\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\nLAB_0010889d:\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      bVar12 = need_save == 0;\n      if (!bVar12) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_001088cd;\n    }\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = (byte *)0x1440f1;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar13 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar13 && !bVar12) == bVar13) goto LAB_0010889d;\n    iVar3 = strcmp(p,"-nc");\n    bVar12 = iVar3 == 0;\n    if (bVar12) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_00109fa5;\n    }\nLAB_00108a01:\n    bVar15 = false;\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b2be;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_00109f54;\n    }\nLAB_0010a032:\n    bVar15 = false;\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b2c1;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) != bVar15) goto LAB_00108afa;\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,1);\n      return 2;\n    }\nLAB_00109749:\n    lVar7 = strtol(value,(char **)0x0,10);\n    conf_set_int(conf,1,(int)lVar7);\n    iVar2 = strcmp(p,"-pw");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\nLAB_00109ee5:\n      iVar2 = conf_get_int(conf,2);\n      if (iVar2 == 3) {\n        cmdline_password = dupstr(value);\n        uVar8 = 0xffffffffffffffff;\n        pcVar4 = value;\n        do {\n          if (uVar8 == 0) break;\n          uVar8 = uVar8 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (ulong)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        smemclr(value,~uVar8 - 1);\n      }\n      else {\n        cmdline_error("the -pw option can only be used with the SSH protocol");\n      }\n      iVar2 = strcmp(p,"-agent");\n      if (iVar2 != 0) {\n        iVar3 = strcmp(p,"-pagent");\n        iVar2 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_00108bf9;\n    }\n    iVar3 = strcmp(p,"-agent");\n    iVar2 = 2;\n    if (iVar3 == 0) goto LAB_00108bdc;\nLAB_00108ba4:\n    iVar3 = strcmp(p,"-pagent");\n    if (iVar3 == 0) goto LAB_00108bce;\nLAB_00108bb7:\n    iVar3 = strcmp(p,"-pageant");\n    if (iVar3 == 0) goto LAB_00108bce;\n    iVar3 = strcmp(p,"-noagent");\n    if ((iVar3 != 0) && (iVar3 = strcmp(p,"-nopagent"), iVar3 != 0)) goto LAB_00108d1b;\nLAB_00108d2e:\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00109e76:\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_00108c37:\n    conf_set_int(conf,0x1c,0);\n    iVar2 = strcmp(p,"-A");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_00109d88;\n    }\n    iVar2 = strcmp(p,"-a");\n    if (iVar2 != 0) {\n      iVar2 = 1;\nLAB_00108c7d:\n      iVar3 = strcmp(p,"-X");\n      if (iVar3 != 0) goto LAB_00109dce;\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_00108ca2;\n    }\nLAB_00108db9:\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_00109d25:\n    conf_set_int(conf,0x1d,0);\n    iVar2 = strcmp(p,"-X");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\nLAB_00109c0f:\n      conf_set_int(conf,0x95,1);\n      iVar2 = strcmp(p,"-x");\n      if (iVar2 == 0) {\n        iVar2 = cmdline_check_unavailable(3,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }\n      iVar3 = strcmp(p,"-t");\n      iVar2 = 1;\n      if (iVar3 != 0) goto LAB_00109dfc;\nLAB_00108e45:\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,1);\n        return 1;\n      }\n      goto LAB_00109c87;\n    }\n    iVar3 = strcmp(p,"-x");\n    iVar2 = 1;\n    if (iVar3 == 0) goto LAB_00108dff;\nLAB_00109de5:\n    iVar3 = strcmp(p,"-t");\n    if (iVar3 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_00108e45;\n    }\nLAB_00109dfc:\n    iVar3 = strcmp(p,"-T");\n    if (iVar3 != 0) goto LAB_00109b7b;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00109e21:\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,1);\n      return 1;\n    }\nLAB_00109cc5:\n    conf_set_int(conf,0x16,1);\n    iVar2 = strcmp(p,"-N");\n    if (iVar2 != 0) {\n      iVar3 = strcmp(p,"-C");\n      iVar2 = 1;\n      if (iVar3 == 0) goto LAB_00108e8b;\n      goto LAB_00109aea;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\nLAB_00109a6e:\n    conf_set_int(conf,0x2d,1);\n    iVar2 = strcmp(p,"-C");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_0010989e;\n    }\n    iVar3 = strcmp(p,"-1");\n    iVar2 = 1;\n    if (iVar3 == 0) goto LAB_00108ed1;\nLAB_00109b01:\n    iVar3 = strcmp(p,"-2");\n    if (iVar3 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00109b26:\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\n      goto LAB_00109918;\n    }\n  }\nLAB_00109930:\n  iVar3 = strcmp(p,"-i");\n  if (iVar3 == 0) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 2;\n    }\n    pFVar6 = filename_from_str(value);\n    conf_set_filename(conf,0x20,pFVar6);\n    filename_free(pFVar6);\n    iVar2 = strcmp(p,"-4");\n    if (iVar2 != 0) {\n      iVar3 = strcmp(p,"-ipv4");\n      iVar2 = 2;\n      if (iVar3 != 0) goto LAB_00109814;\n    }\nLAB_001099af:\n    conf_set_int(conf,3,1);\n    iVar3 = strcmp(p,"-6");\n    iVar2 = 1;\n    if (iVar3 == 0) goto LAB_001099de;\nLAB_00109827:\n    iVar3 = strcmp(p,"-ipv6");\n    if (iVar3 == 0) goto LAB_0010983e;\n  }\n  else {\n    iVar3 = strcmp(p,"-4");\n    if ((iVar3 == 0) || (iVar3 = strcmp(p,"-ipv4"), iVar3 == 0)) {\n      if (need_save < 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,1);\n        return 1;\n      }\n      goto LAB_001099af;\n    }\nLAB_00109814:\n    iVar3 = strcmp(p,"-6");\n    if (iVar3 != 0) goto LAB_00109827;\nLAB_0010983e:\n    if (need_save < 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,1);\n      return 1;\n    }\nLAB_001099de:\n    conf_set_int(conf,3,2);\n    iVar2 = 1;\n  }\n  iVar3 = strcmp(p,"-sercfg");\n  if (iVar3 == 0) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,1);\n      return 2;\n    }\n    iVar2 = conf_get_int(conf,2);\n    pcVar4 = value;\n    if (iVar2 != 4) {\n      cmdline_error("the -sercfg option can only be used with the serial protocol");\n    }\n    for (; *pcVar4 != '\0'; pcVar4 = pcVar4 + (local_48 + iVar2)) {\n      pcVar5 = strchr(pcVar4,0x2c);\n      if (pcVar5 == (char *)0x0) {\n        lVar7 = -1;\n        pcVar5 = pcVar4;\n        do {\n          if (lVar7 == 0) break;\n          lVar7 = lVar7 + -1;\n          cVar1 = *pcVar5;\n          pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar2 = ~(uint)lVar7 - 1;\n        local_48 = 0;\n      }\n      else {\n        iVar2 = (int)pcVar5 - (int)pcVar4;\n        pcVar4[iVar2] = '\0';\n        local_48 = 1;\n      }\n      if (iVar2 == 1) {\n        cVar1 = *pcVar4;\n        switch(cVar1) {\n        case '1':\n        case '2':\n          conf_set_int(conf,0x3c,cVar1 * 2 + -0x60);\n          break;\n        default:\n          cmdline_error("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          conf_set_int(conf,0x3b,cVar1 + -0x30);\n          break;\n        case 'D':\n          conf_set_int(conf,0x3e,3);\n          break;\n        case 'N':\n          conf_set_int(conf,0x3e,0);\n          break;\n        case 'R':\n          conf_set_int(conf,0x3e,2);\n          break;\n        case 'X':\n          conf_set_int(conf,0x3e,1);\n          break;\n        case 'e':\n          conf_set_int(conf,0x3d,2);\n          break;\n        case 'm':\n          conf_set_int(conf,0x3d,3);\n          break;\n        case 'n':\n          conf_set_int(conf,0x3d,0);\n          break;\n        case 'o':\n          conf_set_int(conf,0x3d,1);\n          break;\n        case 's':\n          conf_set_int(conf,0x3d,4);\n        }\n      }\n      else if ((iVar2 == 3) && (iVar3 = strncmp(pcVar4,"1.5",3), iVar3 == 0)) {\n        conf_set_int(conf,0x3c,3);\n      }\n      else {\n        lVar7 = strtol(pcVar4,(char **)0x0,10);\n        if ((int)lVar7 == 0) {\n          cmdline_error("Unrecognised suboption \"-sercfg %s\"",pcVar4);\n        }\n        else {\n          conf_set_int(conf,0x3a,(int)lVar7);\n        }\n      }\n    }\n    iVar2 = strcmp(p,"-sessionlog");\n    if (iVar2 != 0) {\n      iVar3 = strcmp(p,"-sshlog");\n      iVar2 = 2;\n      if (iVar3 != 0) goto LAB_0010921f;\n      goto LAB_0010924d;\n    }\n    iVar2 = cmdline_check_unavailable(1,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\nLAB_001095f3:\n    pFVar6 = filename_from_str(value);\n    conf_set_filename(conf,0x77,pFVar6);\n    conf_set_int(conf,0x78,2);\n    filename_free(pFVar6);\n    iVar3 = strcmp(p,"-sshlog");\n    iVar2 = 2;\n    if (iVar3 != 0) {\nLAB_0010921f:\n      iVar3 = strcmp(p,"-sshrawlog");\n      if (iVar3 != 0) {\n        iVar3 = strcmp(p,"-proxycmd");\n        if (iVar3 != 0) {\n          return iVar2;\n        }\n        if (value == (char *)0x0) {\n          return -2;\n        }\n        if (need_save < 0) {\n          return 2;\n        }\n        iVar2 = cmdline_check_unavailable(2,p);\n        if (iVar2 != 0) {\n          return 2;\n        }\n        if (need_save != 0) {\n          cmdline_save_param(p,value,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }\n      goto LAB_00109236;\n    }\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n  }\n  else {\n    iVar3 = strcmp(p,"-sessionlog");\n    if (iVar3 == 0) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(1,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_001095f3;\n    }\n    iVar3 = strcmp(p,"-sshlog");\n    if (iVar3 != 0) goto LAB_0010921f;\nLAB_00109236:\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\nLAB_0010924d:\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 2;\n    }\n  }\n  pFVar6 = filename_from_str(value);\n  conf_set_filename(conf,0x77,pFVar6);\n  iVar2 = strcmp(p,"-sshlog");\n  conf_set_int(conf,0x78,4 - (uint)(iVar2 == 0));\n  filename_free(pFVar6);\n  iVar2 = strcmp(p,"-proxycmd");\n  if (iVar2 != 0) {\n    return 2;\n  }\n  iVar2 = cmdline_check_unavailable(2,p);\n  if (iVar2 != 0) {\n    return 2;\n  }\nLAB_001092e3:\n  conf_set_int(conf,0xd,5);\n  conf_set_str(conf,0x12,value);\n  return 2;\n}\n\n" comment (function_definition "int cmdline_process_param(char *p,char *value,int need_save,Conf *conf)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  char *pcVar4;\n  char *pcVar5;\n  Filename *pFVar6;\n  FILE *__stream;\n  long lVar7;\n  ulong uVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  char *pcVar11;\n  bool bVar12;\n  bool bVar13;\n  undefined1 uVar14;\n  bool bVar15;\n  undefined1 uVar16;\n  byte bVar17;\n  int local_48;\n  int local_3c;\n  \n  bVar17 = 0;\n  bVar12 = &stack0xffffffffffffffd0 < (undefined1 *)0x28;\n  bVar15 = &stack0x00000000 == (undefined1 *)0x58;\n  lVar7 = 6;\n  pbVar9 = (byte *)p;\n  pbVar10 = (byte *)"-load";\n  do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar12 = *pbVar9 < *pbVar10;\n    bVar15 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + 1;\n    pbVar10 = pbVar10 + 1;\n  } while (bVar15);\n  bVar13 = false;\n  bVar12 = (!bVar12 && !bVar15) == bVar12;\n  if (bVar12) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (-1 < need_save) {\n      do_defaults(value,conf);\n      loaded_session = 1;\n      cmdline_session_name = dupstr(value);\n      return 2;\n    }\n    return 2;\n  }\n  lVar7 = 5;\n  pbVar9 = (byte *)p;\n  pbVar10 = &DAT_0013b272;\n  do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar13 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + 1;\n    pbVar10 = pbVar10 + 1;\n  } while (bVar12);\n  bVar15 = false;\n  bVar12 = (!bVar13 && !bVar12) == bVar13;\n  if (bVar12) {\n    if (need_save < 0) {\n      return 1;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 == 0) {\n      if (need_save == 0) {\n        default_protocol = 3;\n        default_port = 0x16;\n        conf_set_int(conf,2,3);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar7 = 8;\n  pbVar9 = (byte *)p;\n  pbVar10 = (byte *)"-telnet";\n  do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar15 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + 1;\n    pbVar10 = pbVar10 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (need_save < 0) {\n      return 1;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 == 0) {\n      if (need_save == 0) {\n        default_protocol = 1;\n        default_port = 0x17;\n        conf_set_int(conf,2,1);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar7 = 8;\n  pbVar9 = (byte *)p;\n  pbVar10 = (byte *)"-rlogin";\n  do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar13 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + 1;\n    pbVar10 = pbVar10 + 1;\n  } while (bVar12);\n  bVar15 = false;\n  bVar12 = (!bVar13 && !bVar12) == bVar13;\n  if (bVar12) {\n    if (need_save < 0) {\n      return 1;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 == 0) {\n      if (need_save == 0) {\n        default_protocol = 2;\n        default_port = 0x201;\n        conf_set_int(conf,2,2);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar7 = 5;\n  pbVar9 = (byte *)p;\n  pbVar10 = &DAT_0013b287;\n  do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar15 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + 1;\n    pbVar10 = pbVar10 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (need_save < 0) {\n      return 1;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    uVar14 = 0;\n    uVar16 = need_save == 0;\n    if (!(bool)uVar16) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\n    default_protocol = 0;\n    conf_set_int(conf,2,0);\n    lVar7 = 8;\n    pbVar9 = (byte *)p;\n    pbVar10 = (byte *)"-serial";\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      uVar14 = *pbVar9 < *pbVar10;\n      uVar16 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      uVar14 = iVar2 == 0;\n      if (!(bool)uVar14) {\n        return 1;\n      }\nLAB_0010858a:\n      uVar16 = 0;\n      default_protocol = 4;\n      conf_set_int(conf,2,4);\n      pcVar4 = conf_get_str(conf,0);\n      conf_set_str(conf,0x39,pcVar4);\n      lVar7 = 3;\n      pbVar9 = (byte *)p;\n      pbVar10 = &DAT_0013b294;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar16 = *pbVar9 < *pbVar10;\n        uVar14 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while ((bool)uVar14);\n      bVar12 = (!(bool)uVar16 && !(bool)uVar14) == (bool)uVar16;\n    }\n    else {\n      lVar7 = 3;\n      pbVar9 = (byte *)p;\n      pbVar10 = &DAT_0013b294;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        bVar12 = *pbVar9 < *pbVar10;\n        bVar15 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while (bVar15);\n      bVar12 = (!bVar12 && !bVar15) == bVar12;\n    }\n    iVar2 = 1;\n    if (bVar12) {\nLAB_00108687:\n      flags = flags | 1;\n      bVar12 = flags == 0;\n      iVar2 = 1;\n    }\n  }\n  else {\n    lVar7 = 8;\n    pbVar9 = (byte *)p;\n    pbVar10 = (byte *)"-serial";\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar13 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + 1;\n      pbVar10 = pbVar10 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) {\n      if (need_save < 0) {\n        return 1;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      uVar14 = need_save == 0;\n      if (!(bool)uVar14) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\n      goto LAB_0010858a;\n    }\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b294;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + 1;\n      pbVar10 = pbVar10 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_00108687;\n    }\n    iVar2 = 0;\n  }\n  bVar15 = false;\n  lVar7 = 3;\n  pbVar9 = (byte *)p;\n  pbVar10 = (byte *)0x1440df;\n  do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar15 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n    pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    uVar14 = 0;\n    uVar16 = need_save == 0;\n    if (!(bool)uVar16) {\n      cmdline_save_param(p,value,0);\n      return 2;\n    }\n    conf_set_str(conf,0x34,value);\n    lVar7 = 9;\n    pbVar9 = (byte *)p;\n    pbVar10 = (byte *)"-loghost";\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      uVar14 = *pbVar9 < *pbVar10;\n      uVar16 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      uVar14 = iVar2 == 0;\n      if (!(bool)uVar14) {\n        return 2;\n      }\nLAB_0010a0b4:\n      uVar16 = 0;\n      conf_set_str(conf,9,value);\n      lVar7 = 9;\n      pbVar9 = (byte *)p;\n      pbVar10 = (byte *)"-hostkey";\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar16 = *pbVar9 < *pbVar10;\n        uVar14 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while ((bool)uVar14);\n      iVar2 = 2;\n      bVar12 = (!(bool)uVar16 && !(bool)uVar14) == (bool)uVar16;\n      if (bVar12) {\n        iVar2 = cmdline_check_unavailable(2,p);\n        if (iVar2 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }\n    }\n    else {\n      lVar7 = 9;\n      pbVar9 = (byte *)p;\n      pbVar10 = (byte *)"-hostkey";\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        bVar12 = *pbVar9 < *pbVar10;\n        bVar15 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while (bVar15);\n      iVar2 = 2;\n      bVar12 = (!bVar12 && !bVar15) == bVar12;\n      if (bVar12) goto LAB_00108738;\n    }\nLAB_0010884b:\n    bVar15 = false;\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b2a9;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (!bVar12) goto LAB_00108865;\n    goto LAB_0010889d;\n  }\n  lVar7 = 9;\n  pbVar9 = (byte *)p;\n  pbVar10 = (byte *)"-loghost";\n  do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar13 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n    pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n  } while (bVar12);\n  bVar15 = false;\n  bVar12 = (!bVar13 && !bVar12) == bVar13;\n  if (bVar12) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    uVar14 = need_save == 0;\n    if (!(bool)uVar14) {\n      cmdline_save_param(p,value,0);\n      return 2;\n    }\n    goto LAB_0010a0b4;\n  }\n  lVar7 = 9;\n  pbVar9 = (byte *)p;\n  pbVar10 = (byte *)"-hostkey";\n  do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar15 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n    pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n  } while (bVar12);\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (!bVar12) goto LAB_0010884b;\n  if (value == (char *)0x0) {\n    return -2;\n  }\n  if (need_save < 0) {\n    return 2;\n  }\nLAB_00108738:\n  iVar2 = cmdline_check_unavailable(2,p);\n  if (iVar2 != 0) {\n    return 2;\n  }\n  if (need_save != 0) {\n    cmdline_save_param(p,value,0);\n    return 2;\n  }\nLAB_0010a103:\n  pcVar4 = dupstr(value);\n  iVar2 = validate_manual_hostkey(pcVar4);\n  uVar14 = 0;\n  uVar16 = iVar2 == 0;\n  if ((bool)uVar16) {\n    cmdline_error("\'%s\' is not a valid format for a manual host key specification",value);\n    safefree(pcVar4);\n    return 2;\n  }\n  conf_set_str_str(conf,0xad,pcVar4,"");\n  safefree(pcVar4);\n  lVar7 = 3;\n  pbVar9 = (byte *)p;\n  pbVar10 = &DAT_0013b2a9;\n  do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    uVar14 = *pbVar9 < *pbVar10;\n    uVar16 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n    pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n  } while ((bool)uVar16);\n  iVar2 = 2;\n  bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n  if (bVar12) {\n    iVar2 = cmdline_check_unavailable(3,p);\n    bVar12 = iVar2 == 0;\n    if (!bVar12) {\n      return 2;\n    }\nLAB_001088cd:\n    bVar15 = false;\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = (byte *)0x1440f1;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    uVar14 = 0;\n    uVar16 = (!bVar15 && !bVar12) == bVar15;\n    if ((bool)uVar16) {\n      pcVar4 = dupprintf("L%s",value);\n      pcVar5 = dupstr("D");\n    }\n    else {\n      cVar1 = p[1];\n      pcVar4 = host_strchr(value,0x3a);\n      pcVar5 = pcVar4;\n      if (pcVar4 == (char *)0x0) {\nLAB_00108973:\n        cmdline_error("-%c expects at least two colons in its argument",(ulong)(uint)(int)cVar1);\n        return 2;\n      }\n      do {\n        pcVar11 = pcVar5;\n        pcVar5 = pcVar4;\n        pcVar4 = host_strchr(pcVar5 + 1,0x3a);\n      } while (pcVar4 != (char *)0x0);\n      if (pcVar11 == (char *)0x0) goto LAB_00108973;\n      uVar14 = pcVar11 < value;\n      uVar16 = (long)pcVar11 - (long)value == 0;\n      pcVar4 = dupprintf("%c%.*s",(ulong)(uint)(int)cVar1,(long)pcVar11 - (long)value,value);\n      pcVar5 = dupstr(pcVar11 + 1);\n    }\n    conf_set_str_str(conf,0x9b,pcVar4,pcVar5);\n    safefree(pcVar4);\n    safefree(pcVar5);\n    lVar7 = 4;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b2ba;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      uVar14 = *pbVar9 < *pbVar10;\n      uVar16 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    iVar2 = 2;\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00108a01;\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\nLAB_00109fa5:\n    pcVar4 = host_strchr(value,0x3a);\n    if (pcVar4 == (char *)0x0) {\n      cmdline_error("-nc expects argument of form \'host:port\'");\n      return 2;\n    }\n    pcVar5 = dupprintf("%.*s",(long)pcVar4 - (long)value,value);\n    conf_set_str(conf,0x2e,pcVar5);\n    lVar7 = strtol(pcVar4 + 1,(char **)0x0,10);\n    conf_set_int(conf,0x2f,(int)lVar7);\n    safefree(pcVar5);\n    iVar3 = strcmp(p,"-m");\n    iVar2 = 2;\n    bVar12 = iVar3 == 0;\n    if (!bVar12) goto LAB_0010a032;\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\nLAB_00109f54:\n    __stream = fopen64(value,"r");\n    if (__stream == (FILE *)0x0) {\n      cmdline_error("unable to open command file \"%s\"",value);\n      return 2;\n    }\n    lVar7 = 0;\n    local_3c = 0;\n    pcVar4 = (char *)0x0;\n    while( true ) {\n      iVar3 = (int)lVar7;\n      iVar2 = fgetc(__stream);\n      if (iVar2 == -1) break;\n      local_48._0_1_ = (char)iVar2;\n      if (iVar3 < local_3c) {\n        pcVar4[lVar7] = (char)local_48;\n      }\n      else {\n        local_3c = iVar3 + 0x200;\n        pcVar4 = (char *)saferealloc(pcVar4,(long)local_3c,1);\n        pcVar4[lVar7] = (char)local_48;\n      }\n      lVar7 = lVar7 + 1;\n    }\n    if (iVar3 < local_3c) {\n      pcVar4[iVar3] = '\0';\n    }\n    else {\n      pcVar4 = (char *)saferealloc(pcVar4,(long)(iVar3 + 0x200),1);\n      pcVar4[lVar7] = '\0';\n    }\n    fclose(__stream);\n    conf_set_str(conf,0x14,pcVar4);\n    conf_set_str(conf,0x15,"");\n    conf_set_int(conf,0x16,1);\n    safefree(pcVar4);\n    iVar3 = strcmp(p,"-P");\n    iVar2 = 2;\n    if (iVar3 == 0) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      goto LAB_00109749;\n    }\nLAB_00108afa:\n    iVar3 = strcmp(p,"-pw");\n    if (iVar3 == 0) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,1);\n        return 2;\n      }\n      goto LAB_00109ee5;\n    }\n    iVar3 = strcmp(p,"-agent");\n    if (iVar3 != 0) goto LAB_00108ba4;\nLAB_00108bce:\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00108bdc:\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_00108bf9:\n    conf_set_int(conf,0x1c,1);\n    iVar2 = strcmp(p,"-noagent");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_00108c37;\n    }\n    iVar3 = strcmp(p,"-nopagent");\n    iVar2 = 1;\n    if (iVar3 == 0) goto LAB_00109e76;\nLAB_00108d1b:\n    iVar3 = strcmp(p,"-nopageant");\n    if (iVar3 == 0) goto LAB_00108d2e;\n    iVar3 = strcmp(p,"-A");\n    if (iVar3 != 0) {\n      iVar3 = strcmp(p,"-a");\n      if (iVar3 != 0) goto LAB_00108c7d;\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_00108db9;\n    }\n    if (need_save < 0) {\n      return 1;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_00109d88:\n    conf_set_int(conf,0x1d,1);\n    iVar2 = strcmp(p,"-a");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_00109d25;\n    }\n    iVar3 = strcmp(p,"-X");\n    iVar2 = 1;\n    if (iVar3 == 0) {\nLAB_00108ca2:\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\n      goto LAB_00109c0f;\n    }\nLAB_00109dce:\n    iVar3 = strcmp(p,"-x");\n    if (iVar3 != 0) goto LAB_00109de5;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00108dff:\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_00109c49:\n    conf_set_int(conf,0x95,0);\n    iVar2 = strcmp(p,"-t");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\nLAB_00109c87:\n      conf_set_int(conf,0x16,0);\n      iVar2 = strcmp(p,"-T");\n      if (iVar2 == 0) {\n        iVar2 = cmdline_check_unavailable(3,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }\n      iVar3 = strcmp(p,"-N");\n      iVar2 = 1;\n      if (iVar3 == 0) goto LAB_00109ba0;\n    }\n    else {\n      iVar3 = strcmp(p,"-T");\n      iVar2 = 1;\n      if (iVar3 == 0) goto LAB_00109e21;\nLAB_00109b7b:\n      iVar3 = strcmp(p,"-N");\n      if (iVar3 == 0) {\n        if (need_save < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar2 = cmdline_check_unavailable(3,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        if (need_save != 0) {\n          cmdline_save_param(p,value,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }\n    }\n    iVar3 = strcmp(p,"-C");\n    if (iVar3 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00108e8b:\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\nLAB_0010989e:\n      conf_set_int(conf,0x17,1);\n      iVar2 = strcmp(p,"-1");\n      if (iVar2 == 0) {\n        iVar2 = cmdline_check_unavailable(2,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }\n      iVar3 = strcmp(p,"-2");\n      iVar2 = 1;\n      if (iVar3 != 0) goto LAB_00109930;\n      goto LAB_00109b26;\n    }\nLAB_00109aea:\n    iVar3 = strcmp(p,"-1");\n    if (iVar3 != 0) goto LAB_00109b01;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00108ed1:\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_001098d8:\n    conf_set_int(conf,0x21,0);\n    iVar3 = strcmp(p,"-2");\n    iVar2 = 1;\n    if (iVar3 != 0) goto LAB_00109930;\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\nLAB_00109918:\n    conf_set_int(conf,0x21,3);\n    iVar2 = 1;\n  }\n  else {\nLAB_00108865:\n    bVar15 = false;\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b2ac;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar13 = false;\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\nLAB_0010889d:\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      bVar12 = need_save == 0;\n      if (!bVar12) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_001088cd;\n    }\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = (byte *)0x1440f1;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar13 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar13 && !bVar12) == bVar13) goto LAB_0010889d;\n    iVar3 = strcmp(p,"-nc");\n    bVar12 = iVar3 == 0;\n    if (bVar12) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_00109fa5;\n    }\nLAB_00108a01:\n    bVar15 = false;\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b2be;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_00109f54;\n    }\nLAB_0010a032:\n    bVar15 = false;\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b2c1;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) != bVar15) goto LAB_00108afa;\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,1);\n      return 2;\n    }\nLAB_00109749:\n    lVar7 = strtol(value,(char **)0x0,10);\n    conf_set_int(conf,1,(int)lVar7);\n    iVar2 = strcmp(p,"-pw");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\nLAB_00109ee5:\n      iVar2 = conf_get_int(conf,2);\n      if (iVar2 == 3) {\n        cmdline_password = dupstr(value);\n        uVar8 = 0xffffffffffffffff;\n        pcVar4 = value;\n        do {\n          if (uVar8 == 0) break;\n          uVar8 = uVar8 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (ulong)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        smemclr(value,~uVar8 - 1);\n      }\n      else {\n        cmdline_error("the -pw option can only be used with the SSH protocol");\n      }\n      iVar2 = strcmp(p,"-agent");\n      if (iVar2 != 0) {\n        iVar3 = strcmp(p,"-pagent");\n        iVar2 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_00108bf9;\n    }\n    iVar3 = strcmp(p,"-agent");\n    iVar2 = 2;\n    if (iVar3 == 0) goto LAB_00108bdc;\nLAB_00108ba4:\n    iVar3 = strcmp(p,"-pagent");\n    if (iVar3 == 0) goto LAB_00108bce;\nLAB_00108bb7:\n    iVar3 = strcmp(p,"-pageant");\n    if (iVar3 == 0) goto LAB_00108bce;\n    iVar3 = strcmp(p,"-noagent");\n    if ((iVar3 != 0) && (iVar3 = strcmp(p,"-nopagent"), iVar3 != 0)) goto LAB_00108d1b;\nLAB_00108d2e:\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00109e76:\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_00108c37:\n    conf_set_int(conf,0x1c,0);\n    iVar2 = strcmp(p,"-A");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_00109d88;\n    }\n    iVar2 = strcmp(p,"-a");\n    if (iVar2 != 0) {\n      iVar2 = 1;\nLAB_00108c7d:\n      iVar3 = strcmp(p,"-X");\n      if (iVar3 != 0) goto LAB_00109dce;\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_00108ca2;\n    }\nLAB_00108db9:\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_00109d25:\n    conf_set_int(conf,0x1d,0);\n    iVar2 = strcmp(p,"-X");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\nLAB_00109c0f:\n      conf_set_int(conf,0x95,1);\n      iVar2 = strcmp(p,"-x");\n      if (iVar2 == 0) {\n        iVar2 = cmdline_check_unavailable(3,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }\n      iVar3 = strcmp(p,"-t");\n      iVar2 = 1;\n      if (iVar3 != 0) goto LAB_00109dfc;\nLAB_00108e45:\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,1);\n        return 1;\n      }\n      goto LAB_00109c87;\n    }\n    iVar3 = strcmp(p,"-x");\n    iVar2 = 1;\n    if (iVar3 == 0) goto LAB_00108dff;\nLAB_00109de5:\n    iVar3 = strcmp(p,"-t");\n    if (iVar3 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_00108e45;\n    }\nLAB_00109dfc:\n    iVar3 = strcmp(p,"-T");\n    if (iVar3 != 0) goto LAB_00109b7b;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00109e21:\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,1);\n      return 1;\n    }\nLAB_00109cc5:\n    conf_set_int(conf,0x16,1);\n    iVar2 = strcmp(p,"-N");\n    if (iVar2 != 0) {\n      iVar3 = strcmp(p,"-C");\n      iVar2 = 1;\n      if (iVar3 == 0) goto LAB_00108e8b;\n      goto LAB_00109aea;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\nLAB_00109a6e:\n    conf_set_int(conf,0x2d,1);\n    iVar2 = strcmp(p,"-C");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_0010989e;\n    }\n    iVar3 = strcmp(p,"-1");\n    iVar2 = 1;\n    if (iVar3 == 0) goto LAB_00108ed1;\nLAB_00109b01:\n    iVar3 = strcmp(p,"-2");\n    if (iVar3 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00109b26:\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\n      goto LAB_00109918;\n    }\n  }\nLAB_00109930:\n  iVar3 = strcmp(p,"-i");\n  if (iVar3 == 0) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 2;\n    }\n    pFVar6 = filename_from_str(value);\n    conf_set_filename(conf,0x20,pFVar6);\n    filename_free(pFVar6);\n    iVar2 = strcmp(p,"-4");\n    if (iVar2 != 0) {\n      iVar3 = strcmp(p,"-ipv4");\n      iVar2 = 2;\n      if (iVar3 != 0) goto LAB_00109814;\n    }\nLAB_001099af:\n    conf_set_int(conf,3,1);\n    iVar3 = strcmp(p,"-6");\n    iVar2 = 1;\n    if (iVar3 == 0) goto LAB_001099de;\nLAB_00109827:\n    iVar3 = strcmp(p,"-ipv6");\n    if (iVar3 == 0) goto LAB_0010983e;\n  }\n  else {\n    iVar3 = strcmp(p,"-4");\n    if ((iVar3 == 0) || (iVar3 = strcmp(p,"-ipv4"), iVar3 == 0)) {\n      if (need_save < 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,1);\n        return 1;\n      }\n      goto LAB_001099af;\n    }\nLAB_00109814:\n    iVar3 = strcmp(p,"-6");\n    if (iVar3 != 0) goto LAB_00109827;\nLAB_0010983e:\n    if (need_save < 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,1);\n      return 1;\n    }\nLAB_001099de:\n    conf_set_int(conf,3,2);\n    iVar2 = 1;\n  }\n  iVar3 = strcmp(p,"-sercfg");\n  if (iVar3 == 0) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,1);\n      return 2;\n    }\n    iVar2 = conf_get_int(conf,2);\n    pcVar4 = value;\n    if (iVar2 != 4) {\n      cmdline_error("the -sercfg option can only be used with the serial protocol");\n    }\n    for (; *pcVar4 != '\0'; pcVar4 = pcVar4 + (local_48 + iVar2)) {\n      pcVar5 = strchr(pcVar4,0x2c);\n      if (pcVar5 == (char *)0x0) {\n        lVar7 = -1;\n        pcVar5 = pcVar4;\n        do {\n          if (lVar7 == 0) break;\n          lVar7 = lVar7 + -1;\n          cVar1 = *pcVar5;\n          pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar2 = ~(uint)lVar7 - 1;\n        local_48 = 0;\n      }\n      else {\n        iVar2 = (int)pcVar5 - (int)pcVar4;\n        pcVar4[iVar2] = '\0';\n        local_48 = 1;\n      }\n      if (iVar2 == 1) {\n        cVar1 = *pcVar4;\n        switch(cVar1) {\n        case '1':\n        case '2':\n          conf_set_int(conf,0x3c,cVar1 * 2 + -0x60);\n          break;\n        default:\n          cmdline_error("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          conf_set_int(conf,0x3b,cVar1 + -0x30);\n          break;\n        case 'D':\n          conf_set_int(conf,0x3e,3);\n          break;\n        case 'N':\n          conf_set_int(conf,0x3e,0);\n          break;\n        case 'R':\n          conf_set_int(conf,0x3e,2);\n          break;\n        case 'X':\n          conf_set_int(conf,0x3e,1);\n          break;\n        case 'e':\n          conf_set_int(conf,0x3d,2);\n          break;\n        case 'm':\n          conf_set_int(conf,0x3d,3);\n          break;\n        case 'n':\n          conf_set_int(conf,0x3d,0);\n          break;\n        case 'o':\n          conf_set_int(conf,0x3d,1);\n          break;\n        case 's':\n          conf_set_int(conf,0x3d,4);\n        }\n      }\n      else if ((iVar2 == 3) && (iVar3 = strncmp(pcVar4,"1.5",3), iVar3 == 0)) {\n        conf_set_int(conf,0x3c,3);\n      }\n      else {\n        lVar7 = strtol(pcVar4,(char **)0x0,10);\n        if ((int)lVar7 == 0) {\n          cmdline_error("Unrecognised suboption \"-sercfg %s\"",pcVar4);\n        }\n        else {\n          conf_set_int(conf,0x3a,(int)lVar7);\n        }\n      }\n    }\n    iVar2 = strcmp(p,"-sessionlog");\n    if (iVar2 != 0) {\n      iVar3 = strcmp(p,"-sshlog");\n      iVar2 = 2;\n      if (iVar3 != 0) goto LAB_0010921f;\n      goto LAB_0010924d;\n    }\n    iVar2 = cmdline_check_unavailable(1,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\nLAB_001095f3:\n    pFVar6 = filename_from_str(value);\n    conf_set_filename(conf,0x77,pFVar6);\n    conf_set_int(conf,0x78,2);\n    filename_free(pFVar6);\n    iVar3 = strcmp(p,"-sshlog");\n    iVar2 = 2;\n    if (iVar3 != 0) {\nLAB_0010921f:\n      iVar3 = strcmp(p,"-sshrawlog");\n      if (iVar3 != 0) {\n        iVar3 = strcmp(p,"-proxycmd");\n        if (iVar3 != 0) {\n          return iVar2;\n        }\n        if (value == (char *)0x0) {\n          return -2;\n        }\n        if (need_save < 0) {\n          return 2;\n        }\n        iVar2 = cmdline_check_unavailable(2,p);\n        if (iVar2 != 0) {\n          return 2;\n        }\n        if (need_save != 0) {\n          cmdline_save_param(p,value,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }\n      goto LAB_00109236;\n    }\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n  }\n  else {\n    iVar3 = strcmp(p,"-sessionlog");\n    if (iVar3 == 0) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(1,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_001095f3;\n    }\n    iVar3 = strcmp(p,"-sshlog");\n    if (iVar3 != 0) goto LAB_0010921f;\nLAB_00109236:\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\nLAB_0010924d:\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 2;\n    }\n  }\n  pFVar6 = filename_from_str(value);\n  conf_set_filename(conf,0x77,pFVar6);\n  iVar2 = strcmp(p,"-sshlog");\n  conf_set_int(conf,0x78,4 - (uint)(iVar2 == 0));\n  filename_free(pFVar6);\n  iVar2 = strcmp(p,"-proxycmd");\n  if (iVar2 != 0) {\n    return 2;\n  }\n  iVar2 = cmdline_check_unavailable(2,p);\n  if (iVar2 != 0) {\n    return 2;\n  }\nLAB_001092e3:\n  conf_set_int(conf,0xd,5);\n  conf_set_str(conf,0x12,value);\n  return 2;\n}" primitive_type (function_declarator "cmdline_process_param(char *p,char *value,int need_save,Conf *conf)" identifier (parameter_list "(char *p,char *value,int need_save,Conf *conf)" ( (parameter_declaration "char *p" primitive_type (pointer_declarator "*p" * identifier)) , (parameter_declaration "char *value" primitive_type (pointer_declarator "*value" * identifier)) , (parameter_declaration "int need_save" primitive_type identifier) , (parameter_declaration "Conf *conf" type_identifier (pointer_declarator "*conf" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  char *pcVar4;\n  char *pcVar5;\n  Filename *pFVar6;\n  FILE *__stream;\n  long lVar7;\n  ulong uVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  char *pcVar11;\n  bool bVar12;\n  bool bVar13;\n  undefined1 uVar14;\n  bool bVar15;\n  undefined1 uVar16;\n  byte bVar17;\n  int local_48;\n  int local_3c;\n  \n  bVar17 = 0;\n  bVar12 = &stack0xffffffffffffffd0 < (undefined1 *)0x28;\n  bVar15 = &stack0x00000000 == (undefined1 *)0x58;\n  lVar7 = 6;\n  pbVar9 = (byte *)p;\n  pbVar10 = (byte *)"-load";\n  do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar12 = *pbVar9 < *pbVar10;\n    bVar15 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + 1;\n    pbVar10 = pbVar10 + 1;\n  } while (bVar15);\n  bVar13 = false;\n  bVar12 = (!bVar12 && !bVar15) == bVar12;\n  if (bVar12) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (-1 < need_save) {\n      do_defaults(value,conf);\n      loaded_session = 1;\n      cmdline_session_name = dupstr(value);\n      return 2;\n    }\n    return 2;\n  }\n  lVar7 = 5;\n  pbVar9 = (byte *)p;\n  pbVar10 = &DAT_0013b272;\n  do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar13 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + 1;\n    pbVar10 = pbVar10 + 1;\n  } while (bVar12);\n  bVar15 = false;\n  bVar12 = (!bVar13 && !bVar12) == bVar13;\n  if (bVar12) {\n    if (need_save < 0) {\n      return 1;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 == 0) {\n      if (need_save == 0) {\n        default_protocol = 3;\n        default_port = 0x16;\n        conf_set_int(conf,2,3);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar7 = 8;\n  pbVar9 = (byte *)p;\n  pbVar10 = (byte *)"-telnet";\n  do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar15 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + 1;\n    pbVar10 = pbVar10 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (need_save < 0) {\n      return 1;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 == 0) {\n      if (need_save == 0) {\n        default_protocol = 1;\n        default_port = 0x17;\n        conf_set_int(conf,2,1);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar7 = 8;\n  pbVar9 = (byte *)p;\n  pbVar10 = (byte *)"-rlogin";\n  do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar13 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + 1;\n    pbVar10 = pbVar10 + 1;\n  } while (bVar12);\n  bVar15 = false;\n  bVar12 = (!bVar13 && !bVar12) == bVar13;\n  if (bVar12) {\n    if (need_save < 0) {\n      return 1;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 == 0) {\n      if (need_save == 0) {\n        default_protocol = 2;\n        default_port = 0x201;\n        conf_set_int(conf,2,2);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar7 = 5;\n  pbVar9 = (byte *)p;\n  pbVar10 = &DAT_0013b287;\n  do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar15 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + 1;\n    pbVar10 = pbVar10 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (need_save < 0) {\n      return 1;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    uVar14 = 0;\n    uVar16 = need_save == 0;\n    if (!(bool)uVar16) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\n    default_protocol = 0;\n    conf_set_int(conf,2,0);\n    lVar7 = 8;\n    pbVar9 = (byte *)p;\n    pbVar10 = (byte *)"-serial";\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      uVar14 = *pbVar9 < *pbVar10;\n      uVar16 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      uVar14 = iVar2 == 0;\n      if (!(bool)uVar14) {\n        return 1;\n      }\nLAB_0010858a:\n      uVar16 = 0;\n      default_protocol = 4;\n      conf_set_int(conf,2,4);\n      pcVar4 = conf_get_str(conf,0);\n      conf_set_str(conf,0x39,pcVar4);\n      lVar7 = 3;\n      pbVar9 = (byte *)p;\n      pbVar10 = &DAT_0013b294;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar16 = *pbVar9 < *pbVar10;\n        uVar14 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while ((bool)uVar14);\n      bVar12 = (!(bool)uVar16 && !(bool)uVar14) == (bool)uVar16;\n    }\n    else {\n      lVar7 = 3;\n      pbVar9 = (byte *)p;\n      pbVar10 = &DAT_0013b294;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        bVar12 = *pbVar9 < *pbVar10;\n        bVar15 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while (bVar15);\n      bVar12 = (!bVar12 && !bVar15) == bVar12;\n    }\n    iVar2 = 1;\n    if (bVar12) {\nLAB_00108687:\n      flags = flags | 1;\n      bVar12 = flags == 0;\n      iVar2 = 1;\n    }\n  }\n  else {\n    lVar7 = 8;\n    pbVar9 = (byte *)p;\n    pbVar10 = (byte *)"-serial";\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar13 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + 1;\n      pbVar10 = pbVar10 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) {\n      if (need_save < 0) {\n        return 1;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      uVar14 = need_save == 0;\n      if (!(bool)uVar14) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\n      goto LAB_0010858a;\n    }\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b294;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + 1;\n      pbVar10 = pbVar10 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_00108687;\n    }\n    iVar2 = 0;\n  }\n  bVar15 = false;\n  lVar7 = 3;\n  pbVar9 = (byte *)p;\n  pbVar10 = (byte *)0x1440df;\n  do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar15 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n    pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    uVar14 = 0;\n    uVar16 = need_save == 0;\n    if (!(bool)uVar16) {\n      cmdline_save_param(p,value,0);\n      return 2;\n    }\n    conf_set_str(conf,0x34,value);\n    lVar7 = 9;\n    pbVar9 = (byte *)p;\n    pbVar10 = (byte *)"-loghost";\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      uVar14 = *pbVar9 < *pbVar10;\n      uVar16 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      uVar14 = iVar2 == 0;\n      if (!(bool)uVar14) {\n        return 2;\n      }\nLAB_0010a0b4:\n      uVar16 = 0;\n      conf_set_str(conf,9,value);\n      lVar7 = 9;\n      pbVar9 = (byte *)p;\n      pbVar10 = (byte *)"-hostkey";\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar16 = *pbVar9 < *pbVar10;\n        uVar14 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while ((bool)uVar14);\n      iVar2 = 2;\n      bVar12 = (!(bool)uVar16 && !(bool)uVar14) == (bool)uVar16;\n      if (bVar12) {\n        iVar2 = cmdline_check_unavailable(2,p);\n        if (iVar2 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }\n    }\n    else {\n      lVar7 = 9;\n      pbVar9 = (byte *)p;\n      pbVar10 = (byte *)"-hostkey";\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        bVar12 = *pbVar9 < *pbVar10;\n        bVar15 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while (bVar15);\n      iVar2 = 2;\n      bVar12 = (!bVar12 && !bVar15) == bVar12;\n      if (bVar12) goto LAB_00108738;\n    }\nLAB_0010884b:\n    bVar15 = false;\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b2a9;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (!bVar12) goto LAB_00108865;\n    goto LAB_0010889d;\n  }\n  lVar7 = 9;\n  pbVar9 = (byte *)p;\n  pbVar10 = (byte *)"-loghost";\n  do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar13 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n    pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n  } while (bVar12);\n  bVar15 = false;\n  bVar12 = (!bVar13 && !bVar12) == bVar13;\n  if (bVar12) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    uVar14 = need_save == 0;\n    if (!(bool)uVar14) {\n      cmdline_save_param(p,value,0);\n      return 2;\n    }\n    goto LAB_0010a0b4;\n  }\n  lVar7 = 9;\n  pbVar9 = (byte *)p;\n  pbVar10 = (byte *)"-hostkey";\n  do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar15 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n    pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n  } while (bVar12);\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (!bVar12) goto LAB_0010884b;\n  if (value == (char *)0x0) {\n    return -2;\n  }\n  if (need_save < 0) {\n    return 2;\n  }\nLAB_00108738:\n  iVar2 = cmdline_check_unavailable(2,p);\n  if (iVar2 != 0) {\n    return 2;\n  }\n  if (need_save != 0) {\n    cmdline_save_param(p,value,0);\n    return 2;\n  }\nLAB_0010a103:\n  pcVar4 = dupstr(value);\n  iVar2 = validate_manual_hostkey(pcVar4);\n  uVar14 = 0;\n  uVar16 = iVar2 == 0;\n  if ((bool)uVar16) {\n    cmdline_error("\'%s\' is not a valid format for a manual host key specification",value);\n    safefree(pcVar4);\n    return 2;\n  }\n  conf_set_str_str(conf,0xad,pcVar4,"");\n  safefree(pcVar4);\n  lVar7 = 3;\n  pbVar9 = (byte *)p;\n  pbVar10 = &DAT_0013b2a9;\n  do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    uVar14 = *pbVar9 < *pbVar10;\n    uVar16 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n    pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n  } while ((bool)uVar16);\n  iVar2 = 2;\n  bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n  if (bVar12) {\n    iVar2 = cmdline_check_unavailable(3,p);\n    bVar12 = iVar2 == 0;\n    if (!bVar12) {\n      return 2;\n    }\nLAB_001088cd:\n    bVar15 = false;\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = (byte *)0x1440f1;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    uVar14 = 0;\n    uVar16 = (!bVar15 && !bVar12) == bVar15;\n    if ((bool)uVar16) {\n      pcVar4 = dupprintf("L%s",value);\n      pcVar5 = dupstr("D");\n    }\n    else {\n      cVar1 = p[1];\n      pcVar4 = host_strchr(value,0x3a);\n      pcVar5 = pcVar4;\n      if (pcVar4 == (char *)0x0) {\nLAB_00108973:\n        cmdline_error("-%c expects at least two colons in its argument",(ulong)(uint)(int)cVar1);\n        return 2;\n      }\n      do {\n        pcVar11 = pcVar5;\n        pcVar5 = pcVar4;\n        pcVar4 = host_strchr(pcVar5 + 1,0x3a);\n      } while (pcVar4 != (char *)0x0);\n      if (pcVar11 == (char *)0x0) goto LAB_00108973;\n      uVar14 = pcVar11 < value;\n      uVar16 = (long)pcVar11 - (long)value == 0;\n      pcVar4 = dupprintf("%c%.*s",(ulong)(uint)(int)cVar1,(long)pcVar11 - (long)value,value);\n      pcVar5 = dupstr(pcVar11 + 1);\n    }\n    conf_set_str_str(conf,0x9b,pcVar4,pcVar5);\n    safefree(pcVar4);\n    safefree(pcVar5);\n    lVar7 = 4;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b2ba;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      uVar14 = *pbVar9 < *pbVar10;\n      uVar16 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    iVar2 = 2;\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00108a01;\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\nLAB_00109fa5:\n    pcVar4 = host_strchr(value,0x3a);\n    if (pcVar4 == (char *)0x0) {\n      cmdline_error("-nc expects argument of form \'host:port\'");\n      return 2;\n    }\n    pcVar5 = dupprintf("%.*s",(long)pcVar4 - (long)value,value);\n    conf_set_str(conf,0x2e,pcVar5);\n    lVar7 = strtol(pcVar4 + 1,(char **)0x0,10);\n    conf_set_int(conf,0x2f,(int)lVar7);\n    safefree(pcVar5);\n    iVar3 = strcmp(p,"-m");\n    iVar2 = 2;\n    bVar12 = iVar3 == 0;\n    if (!bVar12) goto LAB_0010a032;\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\nLAB_00109f54:\n    __stream = fopen64(value,"r");\n    if (__stream == (FILE *)0x0) {\n      cmdline_error("unable to open command file \"%s\"",value);\n      return 2;\n    }\n    lVar7 = 0;\n    local_3c = 0;\n    pcVar4 = (char *)0x0;\n    while( true ) {\n      iVar3 = (int)lVar7;\n      iVar2 = fgetc(__stream);\n      if (iVar2 == -1) break;\n      local_48._0_1_ = (char)iVar2;\n      if (iVar3 < local_3c) {\n        pcVar4[lVar7] = (char)local_48;\n      }\n      else {\n        local_3c = iVar3 + 0x200;\n        pcVar4 = (char *)saferealloc(pcVar4,(long)local_3c,1);\n        pcVar4[lVar7] = (char)local_48;\n      }\n      lVar7 = lVar7 + 1;\n    }\n    if (iVar3 < local_3c) {\n      pcVar4[iVar3] = '\0';\n    }\n    else {\n      pcVar4 = (char *)saferealloc(pcVar4,(long)(iVar3 + 0x200),1);\n      pcVar4[lVar7] = '\0';\n    }\n    fclose(__stream);\n    conf_set_str(conf,0x14,pcVar4);\n    conf_set_str(conf,0x15,"");\n    conf_set_int(conf,0x16,1);\n    safefree(pcVar4);\n    iVar3 = strcmp(p,"-P");\n    iVar2 = 2;\n    if (iVar3 == 0) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      goto LAB_00109749;\n    }\nLAB_00108afa:\n    iVar3 = strcmp(p,"-pw");\n    if (iVar3 == 0) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,1);\n        return 2;\n      }\n      goto LAB_00109ee5;\n    }\n    iVar3 = strcmp(p,"-agent");\n    if (iVar3 != 0) goto LAB_00108ba4;\nLAB_00108bce:\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00108bdc:\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_00108bf9:\n    conf_set_int(conf,0x1c,1);\n    iVar2 = strcmp(p,"-noagent");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_00108c37;\n    }\n    iVar3 = strcmp(p,"-nopagent");\n    iVar2 = 1;\n    if (iVar3 == 0) goto LAB_00109e76;\nLAB_00108d1b:\n    iVar3 = strcmp(p,"-nopageant");\n    if (iVar3 == 0) goto LAB_00108d2e;\n    iVar3 = strcmp(p,"-A");\n    if (iVar3 != 0) {\n      iVar3 = strcmp(p,"-a");\n      if (iVar3 != 0) goto LAB_00108c7d;\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_00108db9;\n    }\n    if (need_save < 0) {\n      return 1;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_00109d88:\n    conf_set_int(conf,0x1d,1);\n    iVar2 = strcmp(p,"-a");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_00109d25;\n    }\n    iVar3 = strcmp(p,"-X");\n    iVar2 = 1;\n    if (iVar3 == 0) {\nLAB_00108ca2:\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\n      goto LAB_00109c0f;\n    }\nLAB_00109dce:\n    iVar3 = strcmp(p,"-x");\n    if (iVar3 != 0) goto LAB_00109de5;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00108dff:\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_00109c49:\n    conf_set_int(conf,0x95,0);\n    iVar2 = strcmp(p,"-t");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\nLAB_00109c87:\n      conf_set_int(conf,0x16,0);\n      iVar2 = strcmp(p,"-T");\n      if (iVar2 == 0) {\n        iVar2 = cmdline_check_unavailable(3,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }\n      iVar3 = strcmp(p,"-N");\n      iVar2 = 1;\n      if (iVar3 == 0) goto LAB_00109ba0;\n    }\n    else {\n      iVar3 = strcmp(p,"-T");\n      iVar2 = 1;\n      if (iVar3 == 0) goto LAB_00109e21;\nLAB_00109b7b:\n      iVar3 = strcmp(p,"-N");\n      if (iVar3 == 0) {\n        if (need_save < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar2 = cmdline_check_unavailable(3,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        if (need_save != 0) {\n          cmdline_save_param(p,value,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }\n    }\n    iVar3 = strcmp(p,"-C");\n    if (iVar3 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00108e8b:\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\nLAB_0010989e:\n      conf_set_int(conf,0x17,1);\n      iVar2 = strcmp(p,"-1");\n      if (iVar2 == 0) {\n        iVar2 = cmdline_check_unavailable(2,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }\n      iVar3 = strcmp(p,"-2");\n      iVar2 = 1;\n      if (iVar3 != 0) goto LAB_00109930;\n      goto LAB_00109b26;\n    }\nLAB_00109aea:\n    iVar3 = strcmp(p,"-1");\n    if (iVar3 != 0) goto LAB_00109b01;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00108ed1:\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_001098d8:\n    conf_set_int(conf,0x21,0);\n    iVar3 = strcmp(p,"-2");\n    iVar2 = 1;\n    if (iVar3 != 0) goto LAB_00109930;\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\nLAB_00109918:\n    conf_set_int(conf,0x21,3);\n    iVar2 = 1;\n  }\n  else {\nLAB_00108865:\n    bVar15 = false;\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b2ac;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar13 = false;\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\nLAB_0010889d:\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      bVar12 = need_save == 0;\n      if (!bVar12) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_001088cd;\n    }\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = (byte *)0x1440f1;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar13 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar13 && !bVar12) == bVar13) goto LAB_0010889d;\n    iVar3 = strcmp(p,"-nc");\n    bVar12 = iVar3 == 0;\n    if (bVar12) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_00109fa5;\n    }\nLAB_00108a01:\n    bVar15 = false;\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b2be;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_00109f54;\n    }\nLAB_0010a032:\n    bVar15 = false;\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b2c1;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) != bVar15) goto LAB_00108afa;\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,1);\n      return 2;\n    }\nLAB_00109749:\n    lVar7 = strtol(value,(char **)0x0,10);\n    conf_set_int(conf,1,(int)lVar7);\n    iVar2 = strcmp(p,"-pw");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\nLAB_00109ee5:\n      iVar2 = conf_get_int(conf,2);\n      if (iVar2 == 3) {\n        cmdline_password = dupstr(value);\n        uVar8 = 0xffffffffffffffff;\n        pcVar4 = value;\n        do {\n          if (uVar8 == 0) break;\n          uVar8 = uVar8 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (ulong)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        smemclr(value,~uVar8 - 1);\n      }\n      else {\n        cmdline_error("the -pw option can only be used with the SSH protocol");\n      }\n      iVar2 = strcmp(p,"-agent");\n      if (iVar2 != 0) {\n        iVar3 = strcmp(p,"-pagent");\n        iVar2 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_00108bf9;\n    }\n    iVar3 = strcmp(p,"-agent");\n    iVar2 = 2;\n    if (iVar3 == 0) goto LAB_00108bdc;\nLAB_00108ba4:\n    iVar3 = strcmp(p,"-pagent");\n    if (iVar3 == 0) goto LAB_00108bce;\nLAB_00108bb7:\n    iVar3 = strcmp(p,"-pageant");\n    if (iVar3 == 0) goto LAB_00108bce;\n    iVar3 = strcmp(p,"-noagent");\n    if ((iVar3 != 0) && (iVar3 = strcmp(p,"-nopagent"), iVar3 != 0)) goto LAB_00108d1b;\nLAB_00108d2e:\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00109e76:\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_00108c37:\n    conf_set_int(conf,0x1c,0);\n    iVar2 = strcmp(p,"-A");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_00109d88;\n    }\n    iVar2 = strcmp(p,"-a");\n    if (iVar2 != 0) {\n      iVar2 = 1;\nLAB_00108c7d:\n      iVar3 = strcmp(p,"-X");\n      if (iVar3 != 0) goto LAB_00109dce;\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_00108ca2;\n    }\nLAB_00108db9:\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_00109d25:\n    conf_set_int(conf,0x1d,0);\n    iVar2 = strcmp(p,"-X");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\nLAB_00109c0f:\n      conf_set_int(conf,0x95,1);\n      iVar2 = strcmp(p,"-x");\n      if (iVar2 == 0) {\n        iVar2 = cmdline_check_unavailable(3,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }\n      iVar3 = strcmp(p,"-t");\n      iVar2 = 1;\n      if (iVar3 != 0) goto LAB_00109dfc;\nLAB_00108e45:\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,1);\n        return 1;\n      }\n      goto LAB_00109c87;\n    }\n    iVar3 = strcmp(p,"-x");\n    iVar2 = 1;\n    if (iVar3 == 0) goto LAB_00108dff;\nLAB_00109de5:\n    iVar3 = strcmp(p,"-t");\n    if (iVar3 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_00108e45;\n    }\nLAB_00109dfc:\n    iVar3 = strcmp(p,"-T");\n    if (iVar3 != 0) goto LAB_00109b7b;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00109e21:\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,1);\n      return 1;\n    }\nLAB_00109cc5:\n    conf_set_int(conf,0x16,1);\n    iVar2 = strcmp(p,"-N");\n    if (iVar2 != 0) {\n      iVar3 = strcmp(p,"-C");\n      iVar2 = 1;\n      if (iVar3 == 0) goto LAB_00108e8b;\n      goto LAB_00109aea;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\nLAB_00109a6e:\n    conf_set_int(conf,0x2d,1);\n    iVar2 = strcmp(p,"-C");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_0010989e;\n    }\n    iVar3 = strcmp(p,"-1");\n    iVar2 = 1;\n    if (iVar3 == 0) goto LAB_00108ed1;\nLAB_00109b01:\n    iVar3 = strcmp(p,"-2");\n    if (iVar3 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00109b26:\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\n      goto LAB_00109918;\n    }\n  }\nLAB_00109930:\n  iVar3 = strcmp(p,"-i");\n  if (iVar3 == 0) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 2;\n    }\n    pFVar6 = filename_from_str(value);\n    conf_set_filename(conf,0x20,pFVar6);\n    filename_free(pFVar6);\n    iVar2 = strcmp(p,"-4");\n    if (iVar2 != 0) {\n      iVar3 = strcmp(p,"-ipv4");\n      iVar2 = 2;\n      if (iVar3 != 0) goto LAB_00109814;\n    }\nLAB_001099af:\n    conf_set_int(conf,3,1);\n    iVar3 = strcmp(p,"-6");\n    iVar2 = 1;\n    if (iVar3 == 0) goto LAB_001099de;\nLAB_00109827:\n    iVar3 = strcmp(p,"-ipv6");\n    if (iVar3 == 0) goto LAB_0010983e;\n  }\n  else {\n    iVar3 = strcmp(p,"-4");\n    if ((iVar3 == 0) || (iVar3 = strcmp(p,"-ipv4"), iVar3 == 0)) {\n      if (need_save < 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,1);\n        return 1;\n      }\n      goto LAB_001099af;\n    }\nLAB_00109814:\n    iVar3 = strcmp(p,"-6");\n    if (iVar3 != 0) goto LAB_00109827;\nLAB_0010983e:\n    if (need_save < 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,1);\n      return 1;\n    }\nLAB_001099de:\n    conf_set_int(conf,3,2);\n    iVar2 = 1;\n  }\n  iVar3 = strcmp(p,"-sercfg");\n  if (iVar3 == 0) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,1);\n      return 2;\n    }\n    iVar2 = conf_get_int(conf,2);\n    pcVar4 = value;\n    if (iVar2 != 4) {\n      cmdline_error("the -sercfg option can only be used with the serial protocol");\n    }\n    for (; *pcVar4 != '\0'; pcVar4 = pcVar4 + (local_48 + iVar2)) {\n      pcVar5 = strchr(pcVar4,0x2c);\n      if (pcVar5 == (char *)0x0) {\n        lVar7 = -1;\n        pcVar5 = pcVar4;\n        do {\n          if (lVar7 == 0) break;\n          lVar7 = lVar7 + -1;\n          cVar1 = *pcVar5;\n          pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar2 = ~(uint)lVar7 - 1;\n        local_48 = 0;\n      }\n      else {\n        iVar2 = (int)pcVar5 - (int)pcVar4;\n        pcVar4[iVar2] = '\0';\n        local_48 = 1;\n      }\n      if (iVar2 == 1) {\n        cVar1 = *pcVar4;\n        switch(cVar1) {\n        case '1':\n        case '2':\n          conf_set_int(conf,0x3c,cVar1 * 2 + -0x60);\n          break;\n        default:\n          cmdline_error("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          conf_set_int(conf,0x3b,cVar1 + -0x30);\n          break;\n        case 'D':\n          conf_set_int(conf,0x3e,3);\n          break;\n        case 'N':\n          conf_set_int(conf,0x3e,0);\n          break;\n        case 'R':\n          conf_set_int(conf,0x3e,2);\n          break;\n        case 'X':\n          conf_set_int(conf,0x3e,1);\n          break;\n        case 'e':\n          conf_set_int(conf,0x3d,2);\n          break;\n        case 'm':\n          conf_set_int(conf,0x3d,3);\n          break;\n        case 'n':\n          conf_set_int(conf,0x3d,0);\n          break;\n        case 'o':\n          conf_set_int(conf,0x3d,1);\n          break;\n        case 's':\n          conf_set_int(conf,0x3d,4);\n        }\n      }\n      else if ((iVar2 == 3) && (iVar3 = strncmp(pcVar4,"1.5",3), iVar3 == 0)) {\n        conf_set_int(conf,0x3c,3);\n      }\n      else {\n        lVar7 = strtol(pcVar4,(char **)0x0,10);\n        if ((int)lVar7 == 0) {\n          cmdline_error("Unrecognised suboption \"-sercfg %s\"",pcVar4);\n        }\n        else {\n          conf_set_int(conf,0x3a,(int)lVar7);\n        }\n      }\n    }\n    iVar2 = strcmp(p,"-sessionlog");\n    if (iVar2 != 0) {\n      iVar3 = strcmp(p,"-sshlog");\n      iVar2 = 2;\n      if (iVar3 != 0) goto LAB_0010921f;\n      goto LAB_0010924d;\n    }\n    iVar2 = cmdline_check_unavailable(1,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\nLAB_001095f3:\n    pFVar6 = filename_from_str(value);\n    conf_set_filename(conf,0x77,pFVar6);\n    conf_set_int(conf,0x78,2);\n    filename_free(pFVar6);\n    iVar3 = strcmp(p,"-sshlog");\n    iVar2 = 2;\n    if (iVar3 != 0) {\nLAB_0010921f:\n      iVar3 = strcmp(p,"-sshrawlog");\n      if (iVar3 != 0) {\n        iVar3 = strcmp(p,"-proxycmd");\n        if (iVar3 != 0) {\n          return iVar2;\n        }\n        if (value == (char *)0x0) {\n          return -2;\n        }\n        if (need_save < 0) {\n          return 2;\n        }\n        iVar2 = cmdline_check_unavailable(2,p);\n        if (iVar2 != 0) {\n          return 2;\n        }\n        if (need_save != 0) {\n          cmdline_save_param(p,value,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }\n      goto LAB_00109236;\n    }\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n  }\n  else {\n    iVar3 = strcmp(p,"-sessionlog");\n    if (iVar3 == 0) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(1,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_001095f3;\n    }\n    iVar3 = strcmp(p,"-sshlog");\n    if (iVar3 != 0) goto LAB_0010921f;\nLAB_00109236:\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\nLAB_0010924d:\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 2;\n    }\n  }\n  pFVar6 = filename_from_str(value);\n  conf_set_filename(conf,0x77,pFVar6);\n  iVar2 = strcmp(p,"-sshlog");\n  conf_set_int(conf,0x78,4 - (uint)(iVar2 == 0));\n  filename_free(pFVar6);\n  iVar2 = strcmp(p,"-proxycmd");\n  if (iVar2 != 0) {\n    return 2;\n  }\n  iVar2 = cmdline_check_unavailable(2,p);\n  if (iVar2 != 0) {\n    return 2;\n  }\nLAB_001092e3:\n  conf_set_int(conf,0xd,5);\n  conf_set_str(conf,0x12,value);\n  return 2;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "Filename *pFVar6;" type_identifier (pointer_declarator "*pFVar6" * identifier) ;) (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar8;" type_identifier identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "undefined1 uVar14;" type_identifier identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "undefined1 uVar16;" type_identifier identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = &stack0xffffffffffffffd0 < (undefined1 *)0x28;" (assignment_expression "bVar12 = &stack0xffffffffffffffd0 < (undefined1 *)0x28" identifier = (binary_expression "&stack0xffffffffffffffd0 < (undefined1 *)0x28" (pointer_expression "&stack0xffffffffffffffd0" & identifier) < (cast_expression "(undefined1 *)0x28" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "bVar15 = &stack0x00000000 == (undefined1 *)0x58;" (assignment_expression "bVar15 = &stack0x00000000 == (undefined1 *)0x58" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x58" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x58" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "lVar7 = 6;" (assignment_expression "lVar7 = 6" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)p;" (assignment_expression "pbVar9 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar10 = (byte *)"-load";" (assignment_expression "pbVar10 = (byte *)"-load"" identifier = (cast_expression "(byte *)"-load"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""-load"" " string_content "))) ;) (do_statement "do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar12 = *pbVar9 < *pbVar10;\n    bVar15 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + 1;\n    pbVar10 = pbVar10 + 1;\n  } while (bVar15);" do (compound_statement "{\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar12 = *pbVar9 < *pbVar10;\n    bVar15 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + 1;\n    pbVar10 = pbVar10 + 1;\n  }" { (if_statement "if (lVar7 == 0) break;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar9 < *pbVar10;" (assignment_expression "bVar12 = *pbVar9 < *pbVar10" identifier = (binary_expression "*pbVar9 < *pbVar10" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar15 = *pbVar9 == *pbVar10;" (assignment_expression "bVar15 = *pbVar9 == *pbVar10" identifier = (binary_expression "*pbVar9 == *pbVar10" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (expression_statement "bVar12 = (!bVar12 && !bVar15) == bVar12;" (assignment_expression "bVar12 = (!bVar12 && !bVar15) == bVar12" identifier = (binary_expression "(!bVar12 && !bVar15) == bVar12" (parenthesized_expression "(!bVar12 && !bVar15)" ( (binary_expression "!bVar12 && !bVar15" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar12) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (-1 < need_save) {\n      do_defaults(value,conf);\n      loaded_session = 1;\n      cmdline_session_name = dupstr(value);\n      return 2;\n    }\n    return 2;\n  }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (-1 < need_save) {\n      do_defaults(value,conf);\n      loaded_session = 1;\n      cmdline_session_name = dupstr(value);\n      return 2;\n    }\n    return 2;\n  }" { (if_statement "if (value == (char *)0x0) {\n      return -2;\n    }" if (parenthesized_expression "(value == (char *)0x0)" ( (binary_expression "value == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return -2;\n    }" { (return_statement "return -2;" return number_literal ;) })) (if_statement "if (-1 < need_save) {\n      do_defaults(value,conf);\n      loaded_session = 1;\n      cmdline_session_name = dupstr(value);\n      return 2;\n    }" if (parenthesized_expression "(-1 < need_save)" ( (binary_expression "-1 < need_save" number_literal < identifier) )) (compound_statement "{\n      do_defaults(value,conf);\n      loaded_session = 1;\n      cmdline_session_name = dupstr(value);\n      return 2;\n    }" { (expression_statement "do_defaults(value,conf);" (call_expression "do_defaults(value,conf)" identifier (argument_list "(value,conf)" ( identifier , identifier ))) ;) (expression_statement "loaded_session = 1;" (assignment_expression "loaded_session = 1" identifier = number_literal) ;) (expression_statement "cmdline_session_name = dupstr(value);" (assignment_expression "cmdline_session_name = dupstr(value)" identifier = (call_expression "dupstr(value)" identifier (argument_list "(value)" ( identifier )))) ;) (return_statement "return 2;" return number_literal ;) })) (return_statement "return 2;" return number_literal ;) })) (expression_statement "lVar7 = 5;" (assignment_expression "lVar7 = 5" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)p;" (assignment_expression "pbVar9 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar10 = &DAT_0013b272;" (assignment_expression "pbVar10 = &DAT_0013b272" identifier = (pointer_expression "&DAT_0013b272" & identifier)) ;) (do_statement "do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar13 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + 1;\n    pbVar10 = pbVar10 + 1;\n  } while (bVar12);" do (compound_statement "{\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar13 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + 1;\n    pbVar10 = pbVar10 + 1;\n  }" { (if_statement "if (lVar7 == 0) break;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar9 < *pbVar10;" (assignment_expression "bVar13 = *pbVar9 < *pbVar10" identifier = (binary_expression "*pbVar9 < *pbVar10" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar10;" (assignment_expression "bVar12 = *pbVar9 == *pbVar10" identifier = (binary_expression "*pbVar9 == *pbVar10" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "bVar12 = (!bVar13 && !bVar12) == bVar13;" (assignment_expression "bVar12 = (!bVar13 && !bVar12) == bVar13" identifier = (binary_expression "(!bVar13 && !bVar12) == bVar13" (parenthesized_expression "(!bVar13 && !bVar12)" ( (binary_expression "!bVar13 && !bVar12" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar12) {\n    if (need_save < 0) {\n      return 1;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 == 0) {\n      if (need_save == 0) {\n        default_protocol = 3;\n        default_port = 0x16;\n        conf_set_int(conf,2,3);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\n    return 1;\n  }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n    if (need_save < 0) {\n      return 1;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 == 0) {\n      if (need_save == 0) {\n        default_protocol = 3;\n        default_port = 0x16;\n        conf_set_int(conf,2,3);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\n    return 1;\n  }" { (if_statement "if (need_save < 0) {\n      return 1;\n    }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar2 = cmdline_check_unavailable(3,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(3,p)" identifier = (call_expression "cmdline_check_unavailable(3,p)" identifier (argument_list "(3,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n      if (need_save == 0) {\n        default_protocol = 3;\n        default_port = 0x16;\n        conf_set_int(conf,2,3);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }\n      cmdline_save_param(p,value,0);\n      return 1;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      if (need_save == 0) {\n        default_protocol = 3;\n        default_port = 0x16;\n        conf_set_int(conf,2,3);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }\n      cmdline_save_param(p,value,0);\n      return 1;\n    }" { (if_statement "if (need_save == 0) {\n        default_protocol = 3;\n        default_port = 0x16;\n        conf_set_int(conf,2,3);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }" if (parenthesized_expression "(need_save == 0)" ( (binary_expression "need_save == 0" identifier == number_literal) )) (compound_statement "{\n        default_protocol = 3;\n        default_port = 0x16;\n        conf_set_int(conf,2,3);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }" { (expression_statement "default_protocol = 3;" (assignment_expression "default_protocol = 3" identifier = number_literal) ;) (expression_statement "default_port = 0x16;" (assignment_expression "default_port = 0x16" identifier = number_literal) ;) (expression_statement "conf_set_int(conf,2,3);" (call_expression "conf_set_int(conf,2,3)" identifier (argument_list "(conf,2,3)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "conf_set_int(conf,1,default_port);" (call_expression "conf_set_int(conf,1,default_port)" identifier (argument_list "(conf,1,default_port)" ( identifier , number_literal , identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "cmdline_save_param(p,value,0);" (call_expression "cmdline_save_param(p,value,0)" identifier (argument_list "(p,value,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (return_statement "return 1;" return number_literal ;) })) (expression_statement "lVar7 = 8;" (assignment_expression "lVar7 = 8" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)p;" (assignment_expression "pbVar9 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar10 = (byte *)"-telnet";" (assignment_expression "pbVar10 = (byte *)"-telnet"" identifier = (cast_expression "(byte *)"-telnet"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""-telnet"" " string_content "))) ;) (do_statement "do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar15 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + 1;\n    pbVar10 = pbVar10 + 1;\n  } while (bVar12);" do (compound_statement "{\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar15 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + 1;\n    pbVar10 = pbVar10 + 1;\n  }" { (if_statement "if (lVar7 == 0) break;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar10;" (assignment_expression "bVar15 = *pbVar9 < *pbVar10" identifier = (binary_expression "*pbVar9 < *pbVar10" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar10;" (assignment_expression "bVar12 = *pbVar9 == *pbVar10" identifier = (binary_expression "*pbVar9 == *pbVar10" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (expression_statement "bVar12 = (!bVar15 && !bVar12) == bVar15;" (assignment_expression "bVar12 = (!bVar15 && !bVar12) == bVar15" identifier = (binary_expression "(!bVar15 && !bVar12) == bVar15" (parenthesized_expression "(!bVar15 && !bVar12)" ( (binary_expression "!bVar15 && !bVar12" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar12) {\n    if (need_save < 0) {\n      return 1;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 == 0) {\n      if (need_save == 0) {\n        default_protocol = 1;\n        default_port = 0x17;\n        conf_set_int(conf,2,1);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\n    return 1;\n  }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n    if (need_save < 0) {\n      return 1;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 == 0) {\n      if (need_save == 0) {\n        default_protocol = 1;\n        default_port = 0x17;\n        conf_set_int(conf,2,1);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\n    return 1;\n  }" { (if_statement "if (need_save < 0) {\n      return 1;\n    }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar2 = cmdline_check_unavailable(3,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(3,p)" identifier = (call_expression "cmdline_check_unavailable(3,p)" identifier (argument_list "(3,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n      if (need_save == 0) {\n        default_protocol = 1;\n        default_port = 0x17;\n        conf_set_int(conf,2,1);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }\n      cmdline_save_param(p,value,0);\n      return 1;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      if (need_save == 0) {\n        default_protocol = 1;\n        default_port = 0x17;\n        conf_set_int(conf,2,1);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }\n      cmdline_save_param(p,value,0);\n      return 1;\n    }" { (if_statement "if (need_save == 0) {\n        default_protocol = 1;\n        default_port = 0x17;\n        conf_set_int(conf,2,1);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }" if (parenthesized_expression "(need_save == 0)" ( (binary_expression "need_save == 0" identifier == number_literal) )) (compound_statement "{\n        default_protocol = 1;\n        default_port = 0x17;\n        conf_set_int(conf,2,1);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }" { (expression_statement "default_protocol = 1;" (assignment_expression "default_protocol = 1" identifier = number_literal) ;) (expression_statement "default_port = 0x17;" (assignment_expression "default_port = 0x17" identifier = number_literal) ;) (expression_statement "conf_set_int(conf,2,1);" (call_expression "conf_set_int(conf,2,1)" identifier (argument_list "(conf,2,1)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "conf_set_int(conf,1,default_port);" (call_expression "conf_set_int(conf,1,default_port)" identifier (argument_list "(conf,1,default_port)" ( identifier , number_literal , identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "cmdline_save_param(p,value,0);" (call_expression "cmdline_save_param(p,value,0)" identifier (argument_list "(p,value,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (return_statement "return 1;" return number_literal ;) })) (expression_statement "lVar7 = 8;" (assignment_expression "lVar7 = 8" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)p;" (assignment_expression "pbVar9 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar10 = (byte *)"-rlogin";" (assignment_expression "pbVar10 = (byte *)"-rlogin"" identifier = (cast_expression "(byte *)"-rlogin"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""-rlogin"" " string_content "))) ;) (do_statement "do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar13 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + 1;\n    pbVar10 = pbVar10 + 1;\n  } while (bVar12);" do (compound_statement "{\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar13 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + 1;\n    pbVar10 = pbVar10 + 1;\n  }" { (if_statement "if (lVar7 == 0) break;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar9 < *pbVar10;" (assignment_expression "bVar13 = *pbVar9 < *pbVar10" identifier = (binary_expression "*pbVar9 < *pbVar10" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar10;" (assignment_expression "bVar12 = *pbVar9 == *pbVar10" identifier = (binary_expression "*pbVar9 == *pbVar10" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "bVar12 = (!bVar13 && !bVar12) == bVar13;" (assignment_expression "bVar12 = (!bVar13 && !bVar12) == bVar13" identifier = (binary_expression "(!bVar13 && !bVar12) == bVar13" (parenthesized_expression "(!bVar13 && !bVar12)" ( (binary_expression "!bVar13 && !bVar12" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar12) {\n    if (need_save < 0) {\n      return 1;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 == 0) {\n      if (need_save == 0) {\n        default_protocol = 2;\n        default_port = 0x201;\n        conf_set_int(conf,2,2);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\n    return 1;\n  }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n    if (need_save < 0) {\n      return 1;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 == 0) {\n      if (need_save == 0) {\n        default_protocol = 2;\n        default_port = 0x201;\n        conf_set_int(conf,2,2);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\n    return 1;\n  }" { (if_statement "if (need_save < 0) {\n      return 1;\n    }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar2 = cmdline_check_unavailable(3,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(3,p)" identifier = (call_expression "cmdline_check_unavailable(3,p)" identifier (argument_list "(3,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n      if (need_save == 0) {\n        default_protocol = 2;\n        default_port = 0x201;\n        conf_set_int(conf,2,2);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }\n      cmdline_save_param(p,value,0);\n      return 1;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      if (need_save == 0) {\n        default_protocol = 2;\n        default_port = 0x201;\n        conf_set_int(conf,2,2);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }\n      cmdline_save_param(p,value,0);\n      return 1;\n    }" { (if_statement "if (need_save == 0) {\n        default_protocol = 2;\n        default_port = 0x201;\n        conf_set_int(conf,2,2);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }" if (parenthesized_expression "(need_save == 0)" ( (binary_expression "need_save == 0" identifier == number_literal) )) (compound_statement "{\n        default_protocol = 2;\n        default_port = 0x201;\n        conf_set_int(conf,2,2);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }" { (expression_statement "default_protocol = 2;" (assignment_expression "default_protocol = 2" identifier = number_literal) ;) (expression_statement "default_port = 0x201;" (assignment_expression "default_port = 0x201" identifier = number_literal) ;) (expression_statement "conf_set_int(conf,2,2);" (call_expression "conf_set_int(conf,2,2)" identifier (argument_list "(conf,2,2)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "conf_set_int(conf,1,default_port);" (call_expression "conf_set_int(conf,1,default_port)" identifier (argument_list "(conf,1,default_port)" ( identifier , number_literal , identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "cmdline_save_param(p,value,0);" (call_expression "cmdline_save_param(p,value,0)" identifier (argument_list "(p,value,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (return_statement "return 1;" return number_literal ;) })) (expression_statement "lVar7 = 5;" (assignment_expression "lVar7 = 5" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)p;" (assignment_expression "pbVar9 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar10 = &DAT_0013b287;" (assignment_expression "pbVar10 = &DAT_0013b287" identifier = (pointer_expression "&DAT_0013b287" & identifier)) ;) (do_statement "do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar15 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + 1;\n    pbVar10 = pbVar10 + 1;\n  } while (bVar12);" do (compound_statement "{\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar15 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + 1;\n    pbVar10 = pbVar10 + 1;\n  }" { (if_statement "if (lVar7 == 0) break;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar10;" (assignment_expression "bVar15 = *pbVar9 < *pbVar10" identifier = (binary_expression "*pbVar9 < *pbVar10" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar10;" (assignment_expression "bVar12 = *pbVar9 == *pbVar10" identifier = (binary_expression "*pbVar9 == *pbVar10" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (expression_statement "bVar12 = (!bVar15 && !bVar12) == bVar15;" (assignment_expression "bVar12 = (!bVar15 && !bVar12) == bVar15" identifier = (binary_expression "(!bVar15 && !bVar12) == bVar15" (parenthesized_expression "(!bVar15 && !bVar12)" ( (binary_expression "!bVar15 && !bVar12" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar12) {\n    if (need_save < 0) {\n      return 1;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    uVar14 = 0;\n    uVar16 = need_save == 0;\n    if (!(bool)uVar16) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\n    default_protocol = 0;\n    conf_set_int(conf,2,0);\n    lVar7 = 8;\n    pbVar9 = (byte *)p;\n    pbVar10 = (byte *)"-serial";\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      uVar14 = *pbVar9 < *pbVar10;\n      uVar16 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      uVar14 = iVar2 == 0;\n      if (!(bool)uVar14) {\n        return 1;\n      }\nLAB_0010858a:\n      uVar16 = 0;\n      default_protocol = 4;\n      conf_set_int(conf,2,4);\n      pcVar4 = conf_get_str(conf,0);\n      conf_set_str(conf,0x39,pcVar4);\n      lVar7 = 3;\n      pbVar9 = (byte *)p;\n      pbVar10 = &DAT_0013b294;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar16 = *pbVar9 < *pbVar10;\n        uVar14 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while ((bool)uVar14);\n      bVar12 = (!(bool)uVar16 && !(bool)uVar14) == (bool)uVar16;\n    }\n    else {\n      lVar7 = 3;\n      pbVar9 = (byte *)p;\n      pbVar10 = &DAT_0013b294;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        bVar12 = *pbVar9 < *pbVar10;\n        bVar15 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while (bVar15);\n      bVar12 = (!bVar12 && !bVar15) == bVar12;\n    }\n    iVar2 = 1;\n    if (bVar12) {\nLAB_00108687:\n      flags = flags | 1;\n      bVar12 = flags == 0;\n      iVar2 = 1;\n    }\n  }\n  else {\n    lVar7 = 8;\n    pbVar9 = (byte *)p;\n    pbVar10 = (byte *)"-serial";\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar13 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + 1;\n      pbVar10 = pbVar10 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) {\n      if (need_save < 0) {\n        return 1;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      uVar14 = need_save == 0;\n      if (!(bool)uVar14) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\n      goto LAB_0010858a;\n    }\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b294;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + 1;\n      pbVar10 = pbVar10 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_00108687;\n    }\n    iVar2 = 0;\n  }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n    if (need_save < 0) {\n      return 1;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    uVar14 = 0;\n    uVar16 = need_save == 0;\n    if (!(bool)uVar16) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\n    default_protocol = 0;\n    conf_set_int(conf,2,0);\n    lVar7 = 8;\n    pbVar9 = (byte *)p;\n    pbVar10 = (byte *)"-serial";\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      uVar14 = *pbVar9 < *pbVar10;\n      uVar16 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      uVar14 = iVar2 == 0;\n      if (!(bool)uVar14) {\n        return 1;\n      }\nLAB_0010858a:\n      uVar16 = 0;\n      default_protocol = 4;\n      conf_set_int(conf,2,4);\n      pcVar4 = conf_get_str(conf,0);\n      conf_set_str(conf,0x39,pcVar4);\n      lVar7 = 3;\n      pbVar9 = (byte *)p;\n      pbVar10 = &DAT_0013b294;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar16 = *pbVar9 < *pbVar10;\n        uVar14 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while ((bool)uVar14);\n      bVar12 = (!(bool)uVar16 && !(bool)uVar14) == (bool)uVar16;\n    }\n    else {\n      lVar7 = 3;\n      pbVar9 = (byte *)p;\n      pbVar10 = &DAT_0013b294;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        bVar12 = *pbVar9 < *pbVar10;\n        bVar15 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while (bVar15);\n      bVar12 = (!bVar12 && !bVar15) == bVar12;\n    }\n    iVar2 = 1;\n    if (bVar12) {\nLAB_00108687:\n      flags = flags | 1;\n      bVar12 = flags == 0;\n      iVar2 = 1;\n    }\n  }" { (if_statement "if (need_save < 0) {\n      return 1;\n    }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar2 = cmdline_check_unavailable(3,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(3,p)" identifier = (call_expression "cmdline_check_unavailable(3,p)" identifier (argument_list "(3,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar16 = need_save == 0;" (assignment_expression "uVar16 = need_save == 0" identifier = (binary_expression "need_save == 0" identifier == number_literal)) ;) (if_statement "if (!(bool)uVar16) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }" if (parenthesized_expression "(!(bool)uVar16)" ( (unary_expression "!(bool)uVar16" ! (cast_expression "(bool)uVar16" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n      cmdline_save_param(p,value,0);\n      return 1;\n    }" { (expression_statement "cmdline_save_param(p,value,0);" (call_expression "cmdline_save_param(p,value,0)" identifier (argument_list "(p,value,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "default_protocol = 0;" (assignment_expression "default_protocol = 0" identifier = number_literal) ;) (expression_statement "conf_set_int(conf,2,0);" (call_expression "conf_set_int(conf,2,0)" identifier (argument_list "(conf,2,0)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "lVar7 = 8;" (assignment_expression "lVar7 = 8" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)p;" (assignment_expression "pbVar9 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar10 = (byte *)"-serial";" (assignment_expression "pbVar10 = (byte *)"-serial"" identifier = (cast_expression "(byte *)"-serial"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""-serial"" " string_content "))) ;) (do_statement "do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      uVar14 = *pbVar9 < *pbVar10;\n      uVar16 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while ((bool)uVar16);" do (compound_statement "{\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      uVar14 = *pbVar9 < *pbVar10;\n      uVar16 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    }" { (if_statement "if (lVar7 == 0) break;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) (expression_statement "uVar14 = *pbVar9 < *pbVar10;" (assignment_expression "uVar14 = *pbVar9 < *pbVar10" identifier = (binary_expression "*pbVar9 < *pbVar10" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "uVar16 = *pbVar9 == *pbVar10;" (assignment_expression "uVar16 = *pbVar9 == *pbVar10" identifier = (binary_expression "*pbVar9 == *pbVar10" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar9 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar16)" ( (cast_expression "(bool)uVar16" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;" (assignment_expression "bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14" identifier = (binary_expression "(!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14" (parenthesized_expression "(!(bool)uVar14 && !(bool)uVar16)" ( (binary_expression "!(bool)uVar14 && !(bool)uVar16" (unary_expression "!(bool)uVar14" ! (cast_expression "(bool)uVar14" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar16" ! (cast_expression "(bool)uVar16" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar14" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar15) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      uVar14 = iVar2 == 0;\n      if (!(bool)uVar14) {\n        return 1;\n      }\nLAB_0010858a:\n      uVar16 = 0;\n      default_protocol = 4;\n      conf_set_int(conf,2,4);\n      pcVar4 = conf_get_str(conf,0);\n      conf_set_str(conf,0x39,pcVar4);\n      lVar7 = 3;\n      pbVar9 = (byte *)p;\n      pbVar10 = &DAT_0013b294;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar16 = *pbVar9 < *pbVar10;\n        uVar14 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while ((bool)uVar14);\n      bVar12 = (!(bool)uVar16 && !(bool)uVar14) == (bool)uVar16;\n    }\n    else {\n      lVar7 = 3;\n      pbVar9 = (byte *)p;\n      pbVar10 = &DAT_0013b294;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        bVar12 = *pbVar9 < *pbVar10;\n        bVar15 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while (bVar15);\n      bVar12 = (!bVar12 && !bVar15) == bVar12;\n    }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n      iVar2 = cmdline_check_unavailable(3,p);\n      uVar14 = iVar2 == 0;\n      if (!(bool)uVar14) {\n        return 1;\n      }\nLAB_0010858a:\n      uVar16 = 0;\n      default_protocol = 4;\n      conf_set_int(conf,2,4);\n      pcVar4 = conf_get_str(conf,0);\n      conf_set_str(conf,0x39,pcVar4);\n      lVar7 = 3;\n      pbVar9 = (byte *)p;\n      pbVar10 = &DAT_0013b294;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar16 = *pbVar9 < *pbVar10;\n        uVar14 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while ((bool)uVar14);\n      bVar12 = (!(bool)uVar16 && !(bool)uVar14) == (bool)uVar16;\n    }" { (expression_statement "iVar2 = cmdline_check_unavailable(3,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(3,p)" identifier = (call_expression "cmdline_check_unavailable(3,p)" identifier (argument_list "(3,p)" ( number_literal , identifier )))) ;) (expression_statement "uVar14 = iVar2 == 0;" (assignment_expression "uVar14 = iVar2 == 0" identifier = (binary_expression "iVar2 == 0" identifier == number_literal)) ;) (if_statement "if (!(bool)uVar14) {\n        return 1;\n      }" if (parenthesized_expression "(!(bool)uVar14)" ( (unary_expression "!(bool)uVar14" ! (cast_expression "(bool)uVar14" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_0010858a:\n      uVar16 = 0;" statement_identifier : (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;)) (expression_statement "default_protocol = 4;" (assignment_expression "default_protocol = 4" identifier = number_literal) ;) (expression_statement "conf_set_int(conf,2,4);" (call_expression "conf_set_int(conf,2,4)" identifier (argument_list "(conf,2,4)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "pcVar4 = conf_get_str(conf,0);" (assignment_expression "pcVar4 = conf_get_str(conf,0)" identifier = (call_expression "conf_get_str(conf,0)" identifier (argument_list "(conf,0)" ( identifier , number_literal )))) ;) (expression_statement "conf_set_str(conf,0x39,pcVar4);" (call_expression "conf_set_str(conf,0x39,pcVar4)" identifier (argument_list "(conf,0x39,pcVar4)" ( identifier , number_literal , identifier ))) ;) (expression_statement "lVar7 = 3;" (assignment_expression "lVar7 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)p;" (assignment_expression "pbVar9 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar10 = &DAT_0013b294;" (assignment_expression "pbVar10 = &DAT_0013b294" identifier = (pointer_expression "&DAT_0013b294" & identifier)) ;) (do_statement "do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar16 = *pbVar9 < *pbVar10;\n        uVar14 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while ((bool)uVar14);" do (compound_statement "{\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar16 = *pbVar9 < *pbVar10;\n        uVar14 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      }" { (if_statement "if (lVar7 == 0) break;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) (expression_statement "uVar16 = *pbVar9 < *pbVar10;" (assignment_expression "uVar16 = *pbVar9 < *pbVar10" identifier = (binary_expression "*pbVar9 < *pbVar10" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "uVar14 = *pbVar9 == *pbVar10;" (assignment_expression "uVar14 = *pbVar9 == *pbVar10" identifier = (binary_expression "*pbVar9 == *pbVar10" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar9 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar14)" ( (cast_expression "(bool)uVar14" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar12 = (!(bool)uVar16 && !(bool)uVar14) == (bool)uVar16;" (assignment_expression "bVar12 = (!(bool)uVar16 && !(bool)uVar14) == (bool)uVar16" identifier = (binary_expression "(!(bool)uVar16 && !(bool)uVar14) == (bool)uVar16" (parenthesized_expression "(!(bool)uVar16 && !(bool)uVar14)" ( (binary_expression "!(bool)uVar16 && !(bool)uVar14" (unary_expression "!(bool)uVar16" ! (cast_expression "(bool)uVar16" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar14" ! (cast_expression "(bool)uVar14" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar16" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) }) (else_clause "else {\n      lVar7 = 3;\n      pbVar9 = (byte *)p;\n      pbVar10 = &DAT_0013b294;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        bVar12 = *pbVar9 < *pbVar10;\n        bVar15 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while (bVar15);\n      bVar12 = (!bVar12 && !bVar15) == bVar12;\n    }" else (compound_statement "{\n      lVar7 = 3;\n      pbVar9 = (byte *)p;\n      pbVar10 = &DAT_0013b294;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        bVar12 = *pbVar9 < *pbVar10;\n        bVar15 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while (bVar15);\n      bVar12 = (!bVar12 && !bVar15) == bVar12;\n    }" { (expression_statement "lVar7 = 3;" (assignment_expression "lVar7 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)p;" (assignment_expression "pbVar9 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar10 = &DAT_0013b294;" (assignment_expression "pbVar10 = &DAT_0013b294" identifier = (pointer_expression "&DAT_0013b294" & identifier)) ;) (do_statement "do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        bVar12 = *pbVar9 < *pbVar10;\n        bVar15 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while (bVar15);" do (compound_statement "{\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        bVar12 = *pbVar9 < *pbVar10;\n        bVar15 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      }" { (if_statement "if (lVar7 == 0) break;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar9 < *pbVar10;" (assignment_expression "bVar12 = *pbVar9 < *pbVar10" identifier = (binary_expression "*pbVar9 < *pbVar10" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar15 = *pbVar9 == *pbVar10;" (assignment_expression "bVar15 = *pbVar9 == *pbVar10" identifier = (binary_expression "*pbVar9 == *pbVar10" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar9 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar12 = (!bVar12 && !bVar15) == bVar12;" (assignment_expression "bVar12 = (!bVar12 && !bVar15) == bVar12" identifier = (binary_expression "(!bVar12 && !bVar15) == bVar12" (parenthesized_expression "(!bVar12 && !bVar15)" ( (binary_expression "!bVar12 && !bVar15" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) }))) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (if_statement "if (bVar12) {\nLAB_00108687:\n      flags = flags | 1;\n      bVar12 = flags == 0;\n      iVar2 = 1;\n    }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\nLAB_00108687:\n      flags = flags | 1;\n      bVar12 = flags == 0;\n      iVar2 = 1;\n    }" { (labeled_statement "LAB_00108687:\n      flags = flags | 1;" statement_identifier : (expression_statement "flags = flags | 1;" (assignment_expression "flags = flags | 1" identifier = (binary_expression "flags | 1" identifier | number_literal)) ;)) (expression_statement "bVar12 = flags == 0;" (assignment_expression "bVar12 = flags == 0" identifier = (binary_expression "flags == 0" identifier == number_literal)) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) })) }) (else_clause "else {\n    lVar7 = 8;\n    pbVar9 = (byte *)p;\n    pbVar10 = (byte *)"-serial";\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar13 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + 1;\n      pbVar10 = pbVar10 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) {\n      if (need_save < 0) {\n        return 1;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      uVar14 = need_save == 0;\n      if (!(bool)uVar14) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\n      goto LAB_0010858a;\n    }\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b294;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + 1;\n      pbVar10 = pbVar10 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_00108687;\n    }\n    iVar2 = 0;\n  }" else (compound_statement "{\n    lVar7 = 8;\n    pbVar9 = (byte *)p;\n    pbVar10 = (byte *)"-serial";\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar13 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + 1;\n      pbVar10 = pbVar10 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) {\n      if (need_save < 0) {\n        return 1;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      uVar14 = need_save == 0;\n      if (!(bool)uVar14) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\n      goto LAB_0010858a;\n    }\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b294;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + 1;\n      pbVar10 = pbVar10 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_00108687;\n    }\n    iVar2 = 0;\n  }" { (expression_statement "lVar7 = 8;" (assignment_expression "lVar7 = 8" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)p;" (assignment_expression "pbVar9 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar10 = (byte *)"-serial";" (assignment_expression "pbVar10 = (byte *)"-serial"" identifier = (cast_expression "(byte *)"-serial"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""-serial"" " string_content "))) ;) (do_statement "do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar13 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + 1;\n      pbVar10 = pbVar10 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar13 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + 1;\n      pbVar10 = pbVar10 + 1;\n    }" { (if_statement "if (lVar7 == 0) break;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar9 < *pbVar10;" (assignment_expression "bVar13 = *pbVar9 < *pbVar10" identifier = (binary_expression "*pbVar9 < *pbVar10" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar10;" (assignment_expression "bVar12 = *pbVar9 == *pbVar10" identifier = (binary_expression "*pbVar9 == *pbVar10" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "bVar12 = (!bVar13 && !bVar12) == bVar13;" (assignment_expression "bVar12 = (!bVar13 && !bVar12) == bVar13" identifier = (binary_expression "(!bVar13 && !bVar12) == bVar13" (parenthesized_expression "(!bVar13 && !bVar12)" ( (binary_expression "!bVar13 && !bVar12" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar12) {\n      if (need_save < 0) {\n        return 1;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      uVar14 = need_save == 0;\n      if (!(bool)uVar14) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\n      goto LAB_0010858a;\n    }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n      if (need_save < 0) {\n        return 1;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      uVar14 = need_save == 0;\n      if (!(bool)uVar14) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\n      goto LAB_0010858a;\n    }" { (if_statement "if (need_save < 0) {\n        return 1;\n      }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar2 = cmdline_check_unavailable(3,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(3,p)" identifier = (call_expression "cmdline_check_unavailable(3,p)" identifier (argument_list "(3,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar14 = need_save == 0;" (assignment_expression "uVar14 = need_save == 0" identifier = (binary_expression "need_save == 0" identifier == number_literal)) ;) (if_statement "if (!(bool)uVar14) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }" if (parenthesized_expression "(!(bool)uVar14)" ( (unary_expression "!(bool)uVar14" ! (cast_expression "(bool)uVar14" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n        cmdline_save_param(p,value,0);\n        return 1;\n      }" { (expression_statement "cmdline_save_param(p,value,0);" (call_expression "cmdline_save_param(p,value,0)" identifier (argument_list "(p,value,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_0010858a;" goto statement_identifier ;) })) (expression_statement "lVar7 = 3;" (assignment_expression "lVar7 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)p;" (assignment_expression "pbVar9 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar10 = &DAT_0013b294;" (assignment_expression "pbVar10 = &DAT_0013b294" identifier = (pointer_expression "&DAT_0013b294" & identifier)) ;) (do_statement "do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + 1;\n      pbVar10 = pbVar10 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + 1;\n      pbVar10 = pbVar10 + 1;\n    }" { (if_statement "if (lVar7 == 0) break;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar10;" (assignment_expression "bVar15 = *pbVar9 < *pbVar10" identifier = (binary_expression "*pbVar9 < *pbVar10" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar10;" (assignment_expression "bVar12 = *pbVar9 == *pbVar10" identifier = (binary_expression "*pbVar9 == *pbVar10" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (expression_statement "bVar12 = (!bVar15 && !bVar12) == bVar15;" (assignment_expression "bVar12 = (!bVar15 && !bVar12) == bVar15" identifier = (binary_expression "(!bVar15 && !bVar12) == bVar15" (parenthesized_expression "(!bVar15 && !bVar12)" ( (binary_expression "!bVar15 && !bVar12" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar12) {\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_00108687;\n    }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_00108687;\n    }" { (if_statement "if (need_save < 0) {\n        return 1;\n      }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00108687;" goto statement_identifier ;) })) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) }))) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "lVar7 = 3;" (assignment_expression "lVar7 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)p;" (assignment_expression "pbVar9 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar10 = (byte *)0x1440df;" (assignment_expression "pbVar10 = (byte *)0x1440df" identifier = (cast_expression "(byte *)0x1440df" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar15 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n    pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n  } while (bVar12);" do (compound_statement "{\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar15 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n    pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n  }" { (if_statement "if (lVar7 == 0) break;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar10;" (assignment_expression "bVar15 = *pbVar9 < *pbVar10" identifier = (binary_expression "*pbVar9 < *pbVar10" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar10;" (assignment_expression "bVar12 = *pbVar9 == *pbVar10" identifier = (binary_expression "*pbVar9 == *pbVar10" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar9 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (expression_statement "bVar12 = (!bVar15 && !bVar12) == bVar15;" (assignment_expression "bVar12 = (!bVar15 && !bVar12) == bVar15" identifier = (binary_expression "(!bVar15 && !bVar12) == bVar15" (parenthesized_expression "(!bVar15 && !bVar12)" ( (binary_expression "!bVar15 && !bVar12" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar12) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    uVar14 = 0;\n    uVar16 = need_save == 0;\n    if (!(bool)uVar16) {\n      cmdline_save_param(p,value,0);\n      return 2;\n    }\n    conf_set_str(conf,0x34,value);\n    lVar7 = 9;\n    pbVar9 = (byte *)p;\n    pbVar10 = (byte *)"-loghost";\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      uVar14 = *pbVar9 < *pbVar10;\n      uVar16 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      uVar14 = iVar2 == 0;\n      if (!(bool)uVar14) {\n        return 2;\n      }\nLAB_0010a0b4:\n      uVar16 = 0;\n      conf_set_str(conf,9,value);\n      lVar7 = 9;\n      pbVar9 = (byte *)p;\n      pbVar10 = (byte *)"-hostkey";\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar16 = *pbVar9 < *pbVar10;\n        uVar14 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while ((bool)uVar14);\n      iVar2 = 2;\n      bVar12 = (!(bool)uVar16 && !(bool)uVar14) == (bool)uVar16;\n      if (bVar12) {\n        iVar2 = cmdline_check_unavailable(2,p);\n        if (iVar2 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }\n    }\n    else {\n      lVar7 = 9;\n      pbVar9 = (byte *)p;\n      pbVar10 = (byte *)"-hostkey";\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        bVar12 = *pbVar9 < *pbVar10;\n        bVar15 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while (bVar15);\n      iVar2 = 2;\n      bVar12 = (!bVar12 && !bVar15) == bVar12;\n      if (bVar12) goto LAB_00108738;\n    }\nLAB_0010884b:\n    bVar15 = false;\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b2a9;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (!bVar12) goto LAB_00108865;\n    goto LAB_0010889d;\n  }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    uVar14 = 0;\n    uVar16 = need_save == 0;\n    if (!(bool)uVar16) {\n      cmdline_save_param(p,value,0);\n      return 2;\n    }\n    conf_set_str(conf,0x34,value);\n    lVar7 = 9;\n    pbVar9 = (byte *)p;\n    pbVar10 = (byte *)"-loghost";\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      uVar14 = *pbVar9 < *pbVar10;\n      uVar16 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      uVar14 = iVar2 == 0;\n      if (!(bool)uVar14) {\n        return 2;\n      }\nLAB_0010a0b4:\n      uVar16 = 0;\n      conf_set_str(conf,9,value);\n      lVar7 = 9;\n      pbVar9 = (byte *)p;\n      pbVar10 = (byte *)"-hostkey";\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar16 = *pbVar9 < *pbVar10;\n        uVar14 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while ((bool)uVar14);\n      iVar2 = 2;\n      bVar12 = (!(bool)uVar16 && !(bool)uVar14) == (bool)uVar16;\n      if (bVar12) {\n        iVar2 = cmdline_check_unavailable(2,p);\n        if (iVar2 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }\n    }\n    else {\n      lVar7 = 9;\n      pbVar9 = (byte *)p;\n      pbVar10 = (byte *)"-hostkey";\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        bVar12 = *pbVar9 < *pbVar10;\n        bVar15 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while (bVar15);\n      iVar2 = 2;\n      bVar12 = (!bVar12 && !bVar15) == bVar12;\n      if (bVar12) goto LAB_00108738;\n    }\nLAB_0010884b:\n    bVar15 = false;\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b2a9;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (!bVar12) goto LAB_00108865;\n    goto LAB_0010889d;\n  }" { (if_statement "if (value == (char *)0x0) {\n      return -2;\n    }" if (parenthesized_expression "(value == (char *)0x0)" ( (binary_expression "value == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return -2;\n    }" { (return_statement "return -2;" return number_literal ;) })) (if_statement "if (need_save < 0) {\n      return 2;\n    }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar2 = cmdline_check_unavailable(2,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(2,p)" identifier = (call_expression "cmdline_check_unavailable(2,p)" identifier (argument_list "(2,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n      return 2;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar16 = need_save == 0;" (assignment_expression "uVar16 = need_save == 0" identifier = (binary_expression "need_save == 0" identifier == number_literal)) ;) (if_statement "if (!(bool)uVar16) {\n      cmdline_save_param(p,value,0);\n      return 2;\n    }" if (parenthesized_expression "(!(bool)uVar16)" ( (unary_expression "!(bool)uVar16" ! (cast_expression "(bool)uVar16" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n      cmdline_save_param(p,value,0);\n      return 2;\n    }" { (expression_statement "cmdline_save_param(p,value,0);" (call_expression "cmdline_save_param(p,value,0)" identifier (argument_list "(p,value,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (expression_statement "conf_set_str(conf,0x34,value);" (call_expression "conf_set_str(conf,0x34,value)" identifier (argument_list "(conf,0x34,value)" ( identifier , number_literal , identifier ))) ;) (expression_statement "lVar7 = 9;" (assignment_expression "lVar7 = 9" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)p;" (assignment_expression "pbVar9 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar10 = (byte *)"-loghost";" (assignment_expression "pbVar10 = (byte *)"-loghost"" identifier = (cast_expression "(byte *)"-loghost"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""-loghost"" " string_content "))) ;) (do_statement "do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      uVar14 = *pbVar9 < *pbVar10;\n      uVar16 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while ((bool)uVar16);" do (compound_statement "{\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      uVar14 = *pbVar9 < *pbVar10;\n      uVar16 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    }" { (if_statement "if (lVar7 == 0) break;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) (expression_statement "uVar14 = *pbVar9 < *pbVar10;" (assignment_expression "uVar14 = *pbVar9 < *pbVar10" identifier = (binary_expression "*pbVar9 < *pbVar10" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "uVar16 = *pbVar9 == *pbVar10;" (assignment_expression "uVar16 = *pbVar9 == *pbVar10" identifier = (binary_expression "*pbVar9 == *pbVar10" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar9 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar16)" ( (cast_expression "(bool)uVar16" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;" (assignment_expression "bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14" identifier = (binary_expression "(!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14" (parenthesized_expression "(!(bool)uVar14 && !(bool)uVar16)" ( (binary_expression "!(bool)uVar14 && !(bool)uVar16" (unary_expression "!(bool)uVar14" ! (cast_expression "(bool)uVar14" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar16" ! (cast_expression "(bool)uVar16" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar14" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar15) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      uVar14 = iVar2 == 0;\n      if (!(bool)uVar14) {\n        return 2;\n      }\nLAB_0010a0b4:\n      uVar16 = 0;\n      conf_set_str(conf,9,value);\n      lVar7 = 9;\n      pbVar9 = (byte *)p;\n      pbVar10 = (byte *)"-hostkey";\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar16 = *pbVar9 < *pbVar10;\n        uVar14 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while ((bool)uVar14);\n      iVar2 = 2;\n      bVar12 = (!(bool)uVar16 && !(bool)uVar14) == (bool)uVar16;\n      if (bVar12) {\n        iVar2 = cmdline_check_unavailable(2,p);\n        if (iVar2 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }\n    }\n    else {\n      lVar7 = 9;\n      pbVar9 = (byte *)p;\n      pbVar10 = (byte *)"-hostkey";\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        bVar12 = *pbVar9 < *pbVar10;\n        bVar15 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while (bVar15);\n      iVar2 = 2;\n      bVar12 = (!bVar12 && !bVar15) == bVar12;\n      if (bVar12) goto LAB_00108738;\n    }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n      iVar2 = cmdline_check_unavailable(2,p);\n      uVar14 = iVar2 == 0;\n      if (!(bool)uVar14) {\n        return 2;\n      }\nLAB_0010a0b4:\n      uVar16 = 0;\n      conf_set_str(conf,9,value);\n      lVar7 = 9;\n      pbVar9 = (byte *)p;\n      pbVar10 = (byte *)"-hostkey";\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar16 = *pbVar9 < *pbVar10;\n        uVar14 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while ((bool)uVar14);\n      iVar2 = 2;\n      bVar12 = (!(bool)uVar16 && !(bool)uVar14) == (bool)uVar16;\n      if (bVar12) {\n        iVar2 = cmdline_check_unavailable(2,p);\n        if (iVar2 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }\n    }" { (expression_statement "iVar2 = cmdline_check_unavailable(2,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(2,p)" identifier = (call_expression "cmdline_check_unavailable(2,p)" identifier (argument_list "(2,p)" ( number_literal , identifier )))) ;) (expression_statement "uVar14 = iVar2 == 0;" (assignment_expression "uVar14 = iVar2 == 0" identifier = (binary_expression "iVar2 == 0" identifier == number_literal)) ;) (if_statement "if (!(bool)uVar14) {\n        return 2;\n      }" if (parenthesized_expression "(!(bool)uVar14)" ( (unary_expression "!(bool)uVar14" ! (cast_expression "(bool)uVar14" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_0010a0b4:\n      uVar16 = 0;" statement_identifier : (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;)) (expression_statement "conf_set_str(conf,9,value);" (call_expression "conf_set_str(conf,9,value)" identifier (argument_list "(conf,9,value)" ( identifier , number_literal , identifier ))) ;) (expression_statement "lVar7 = 9;" (assignment_expression "lVar7 = 9" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)p;" (assignment_expression "pbVar9 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar10 = (byte *)"-hostkey";" (assignment_expression "pbVar10 = (byte *)"-hostkey"" identifier = (cast_expression "(byte *)"-hostkey"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""-hostkey"" " string_content "))) ;) (do_statement "do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar16 = *pbVar9 < *pbVar10;\n        uVar14 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while ((bool)uVar14);" do (compound_statement "{\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar16 = *pbVar9 < *pbVar10;\n        uVar14 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      }" { (if_statement "if (lVar7 == 0) break;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) (expression_statement "uVar16 = *pbVar9 < *pbVar10;" (assignment_expression "uVar16 = *pbVar9 < *pbVar10" identifier = (binary_expression "*pbVar9 < *pbVar10" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "uVar14 = *pbVar9 == *pbVar10;" (assignment_expression "uVar14 = *pbVar9 == *pbVar10" identifier = (binary_expression "*pbVar9 == *pbVar10" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar9 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar14)" ( (cast_expression "(bool)uVar14" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) (expression_statement "bVar12 = (!(bool)uVar16 && !(bool)uVar14) == (bool)uVar16;" (assignment_expression "bVar12 = (!(bool)uVar16 && !(bool)uVar14) == (bool)uVar16" identifier = (binary_expression "(!(bool)uVar16 && !(bool)uVar14) == (bool)uVar16" (parenthesized_expression "(!(bool)uVar16 && !(bool)uVar14)" ( (binary_expression "!(bool)uVar16 && !(bool)uVar14" (unary_expression "!(bool)uVar16" ! (cast_expression "(bool)uVar16" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar14" ! (cast_expression "(bool)uVar14" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar16" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar12) {\n        iVar2 = cmdline_check_unavailable(2,p);\n        if (iVar2 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n        iVar2 = cmdline_check_unavailable(2,p);\n        if (iVar2 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }" { (expression_statement "iVar2 = cmdline_check_unavailable(2,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(2,p)" identifier = (call_expression "cmdline_check_unavailable(2,p)" identifier (argument_list "(2,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n          return 2;\n        }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          return 2;\n        }" { (return_statement "return 2;" return number_literal ;) })) (goto_statement "goto LAB_0010a103;" goto statement_identifier ;) })) }) (else_clause "else {\n      lVar7 = 9;\n      pbVar9 = (byte *)p;\n      pbVar10 = (byte *)"-hostkey";\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        bVar12 = *pbVar9 < *pbVar10;\n        bVar15 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while (bVar15);\n      iVar2 = 2;\n      bVar12 = (!bVar12 && !bVar15) == bVar12;\n      if (bVar12) goto LAB_00108738;\n    }" else (compound_statement "{\n      lVar7 = 9;\n      pbVar9 = (byte *)p;\n      pbVar10 = (byte *)"-hostkey";\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        bVar12 = *pbVar9 < *pbVar10;\n        bVar15 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while (bVar15);\n      iVar2 = 2;\n      bVar12 = (!bVar12 && !bVar15) == bVar12;\n      if (bVar12) goto LAB_00108738;\n    }" { (expression_statement "lVar7 = 9;" (assignment_expression "lVar7 = 9" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)p;" (assignment_expression "pbVar9 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar10 = (byte *)"-hostkey";" (assignment_expression "pbVar10 = (byte *)"-hostkey"" identifier = (cast_expression "(byte *)"-hostkey"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""-hostkey"" " string_content "))) ;) (do_statement "do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        bVar12 = *pbVar9 < *pbVar10;\n        bVar15 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      } while (bVar15);" do (compound_statement "{\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        bVar12 = *pbVar9 < *pbVar10;\n        bVar15 = *pbVar9 == *pbVar10;\n        pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n        pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n      }" { (if_statement "if (lVar7 == 0) break;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar9 < *pbVar10;" (assignment_expression "bVar12 = *pbVar9 < *pbVar10" identifier = (binary_expression "*pbVar9 < *pbVar10" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar15 = *pbVar9 == *pbVar10;" (assignment_expression "bVar15 = *pbVar9 == *pbVar10" identifier = (binary_expression "*pbVar9 == *pbVar10" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar9 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) (expression_statement "bVar12 = (!bVar12 && !bVar15) == bVar12;" (assignment_expression "bVar12 = (!bVar12 && !bVar15) == bVar12" identifier = (binary_expression "(!bVar12 && !bVar15) == bVar12" (parenthesized_expression "(!bVar12 && !bVar15)" ( (binary_expression "!bVar12 && !bVar15" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar12) goto LAB_00108738;" if (parenthesized_expression "(bVar12)" ( identifier )) (goto_statement "goto LAB_00108738;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0010884b:\n    bVar15 = false;" statement_identifier : (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;)) (expression_statement "lVar7 = 3;" (assignment_expression "lVar7 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)p;" (assignment_expression "pbVar9 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar10 = &DAT_0013b2a9;" (assignment_expression "pbVar10 = &DAT_0013b2a9" identifier = (pointer_expression "&DAT_0013b2a9" & identifier)) ;) (do_statement "do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    }" { (if_statement "if (lVar7 == 0) break;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar10;" (assignment_expression "bVar15 = *pbVar9 < *pbVar10" identifier = (binary_expression "*pbVar9 < *pbVar10" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar10;" (assignment_expression "bVar12 = *pbVar9 == *pbVar10" identifier = (binary_expression "*pbVar9 == *pbVar10" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar9 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (expression_statement "bVar12 = (!bVar15 && !bVar12) == bVar15;" (assignment_expression "bVar12 = (!bVar15 && !bVar12) == bVar15" identifier = (binary_expression "(!bVar15 && !bVar12) == bVar15" (parenthesized_expression "(!bVar15 && !bVar12)" ( (binary_expression "!bVar15 && !bVar12" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar12) goto LAB_00108865;" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (goto_statement "goto LAB_00108865;" goto statement_identifier ;)) (goto_statement "goto LAB_0010889d;" goto statement_identifier ;) })) (expression_statement "lVar7 = 9;" (assignment_expression "lVar7 = 9" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)p;" (assignment_expression "pbVar9 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar10 = (byte *)"-loghost";" (assignment_expression "pbVar10 = (byte *)"-loghost"" identifier = (cast_expression "(byte *)"-loghost"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""-loghost"" " string_content "))) ;) (do_statement "do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar13 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n    pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n  } while (bVar12);" do (compound_statement "{\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar13 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n    pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n  }" { (if_statement "if (lVar7 == 0) break;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar9 < *pbVar10;" (assignment_expression "bVar13 = *pbVar9 < *pbVar10" identifier = (binary_expression "*pbVar9 < *pbVar10" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar10;" (assignment_expression "bVar12 = *pbVar9 == *pbVar10" identifier = (binary_expression "*pbVar9 == *pbVar10" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar9 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "bVar12 = (!bVar13 && !bVar12) == bVar13;" (assignment_expression "bVar12 = (!bVar13 && !bVar12) == bVar13" identifier = (binary_expression "(!bVar13 && !bVar12) == bVar13" (parenthesized_expression "(!bVar13 && !bVar12)" ( (binary_expression "!bVar13 && !bVar12" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar12) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    uVar14 = need_save == 0;\n    if (!(bool)uVar14) {\n      cmdline_save_param(p,value,0);\n      return 2;\n    }\n    goto LAB_0010a0b4;\n  }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    uVar14 = need_save == 0;\n    if (!(bool)uVar14) {\n      cmdline_save_param(p,value,0);\n      return 2;\n    }\n    goto LAB_0010a0b4;\n  }" { (if_statement "if (value == (char *)0x0) {\n      return -2;\n    }" if (parenthesized_expression "(value == (char *)0x0)" ( (binary_expression "value == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return -2;\n    }" { (return_statement "return -2;" return number_literal ;) })) (if_statement "if (need_save < 0) {\n      return 2;\n    }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar2 = cmdline_check_unavailable(2,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(2,p)" identifier = (call_expression "cmdline_check_unavailable(2,p)" identifier (argument_list "(2,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n      return 2;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "uVar14 = need_save == 0;" (assignment_expression "uVar14 = need_save == 0" identifier = (binary_expression "need_save == 0" identifier == number_literal)) ;) (if_statement "if (!(bool)uVar14) {\n      cmdline_save_param(p,value,0);\n      return 2;\n    }" if (parenthesized_expression "(!(bool)uVar14)" ( (unary_expression "!(bool)uVar14" ! (cast_expression "(bool)uVar14" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n      cmdline_save_param(p,value,0);\n      return 2;\n    }" { (expression_statement "cmdline_save_param(p,value,0);" (call_expression "cmdline_save_param(p,value,0)" identifier (argument_list "(p,value,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (goto_statement "goto LAB_0010a0b4;" goto statement_identifier ;) })) (expression_statement "lVar7 = 9;" (assignment_expression "lVar7 = 9" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)p;" (assignment_expression "pbVar9 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar10 = (byte *)"-hostkey";" (assignment_expression "pbVar10 = (byte *)"-hostkey"" identifier = (cast_expression "(byte *)"-hostkey"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""-hostkey"" " string_content "))) ;) (do_statement "do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar15 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n    pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n  } while (bVar12);" do (compound_statement "{\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    bVar15 = *pbVar9 < *pbVar10;\n    bVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n    pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n  }" { (if_statement "if (lVar7 == 0) break;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar10;" (assignment_expression "bVar15 = *pbVar9 < *pbVar10" identifier = (binary_expression "*pbVar9 < *pbVar10" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar10;" (assignment_expression "bVar12 = *pbVar9 == *pbVar10" identifier = (binary_expression "*pbVar9 == *pbVar10" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar9 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (expression_statement "bVar12 = (!bVar15 && !bVar12) == bVar15;" (assignment_expression "bVar12 = (!bVar15 && !bVar12) == bVar15" identifier = (binary_expression "(!bVar15 && !bVar12) == bVar15" (parenthesized_expression "(!bVar15 && !bVar12)" ( (binary_expression "!bVar15 && !bVar12" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar12) goto LAB_0010884b;" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (goto_statement "goto LAB_0010884b;" goto statement_identifier ;)) (if_statement "if (value == (char *)0x0) {\n    return -2;\n  }" if (parenthesized_expression "(value == (char *)0x0)" ( (binary_expression "value == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return -2;\n  }" { (return_statement "return -2;" return number_literal ;) })) (if_statement "if (need_save < 0) {\n    return 2;\n  }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n    return 2;\n  }" { (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_00108738:\n  iVar2 = cmdline_check_unavailable(2,p);" statement_identifier : (expression_statement "iVar2 = cmdline_check_unavailable(2,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(2,p)" identifier = (call_expression "cmdline_check_unavailable(2,p)" identifier (argument_list "(2,p)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar2 != 0) {\n    return 2;\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    return 2;\n  }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (need_save != 0) {\n    cmdline_save_param(p,value,0);\n    return 2;\n  }" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (compound_statement "{\n    cmdline_save_param(p,value,0);\n    return 2;\n  }" { (expression_statement "cmdline_save_param(p,value,0);" (call_expression "cmdline_save_param(p,value,0)" identifier (argument_list "(p,value,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_0010a103:\n  pcVar4 = dupstr(value);" statement_identifier : (expression_statement "pcVar4 = dupstr(value);" (assignment_expression "pcVar4 = dupstr(value)" identifier = (call_expression "dupstr(value)" identifier (argument_list "(value)" ( identifier )))) ;)) (expression_statement "iVar2 = validate_manual_hostkey(pcVar4);" (assignment_expression "iVar2 = validate_manual_hostkey(pcVar4)" identifier = (call_expression "validate_manual_hostkey(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier )))) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar16 = iVar2 == 0;" (assignment_expression "uVar16 = iVar2 == 0" identifier = (binary_expression "iVar2 == 0" identifier == number_literal)) ;) (if_statement "if ((bool)uVar16) {\n    cmdline_error("\'%s\' is not a valid format for a manual host key specification",value);\n    safefree(pcVar4);\n    return 2;\n  }" if (parenthesized_expression "((bool)uVar16)" ( (cast_expression "(bool)uVar16" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\n    cmdline_error("\'%s\' is not a valid format for a manual host key specification",value);\n    safefree(pcVar4);\n    return 2;\n  }" { (expression_statement "cmdline_error("\'%s\' is not a valid format for a manual host key specification",value);" (call_expression "cmdline_error("\'%s\' is not a valid format for a manual host key specification",value)" identifier (argument_list "("\'%s\' is not a valid format for a manual host key specification",value)" ( (string_literal ""\'%s\' is not a valid format for a manual host key specification"" " escape_sequence string_content escape_sequence string_content ") , identifier ))) ;) (expression_statement "safefree(pcVar4);" (call_expression "safefree(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (return_statement "return 2;" return number_literal ;) })) (expression_statement "conf_set_str_str(conf,0xad,pcVar4,"");" (call_expression "conf_set_str_str(conf,0xad,pcVar4,"")" identifier (argument_list "(conf,0xad,pcVar4,"")" ( identifier , number_literal , identifier , (string_literal """" " ") ))) ;) (expression_statement "safefree(pcVar4);" (call_expression "safefree(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (expression_statement "lVar7 = 3;" (assignment_expression "lVar7 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)p;" (assignment_expression "pbVar9 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar10 = &DAT_0013b2a9;" (assignment_expression "pbVar10 = &DAT_0013b2a9" identifier = (pointer_expression "&DAT_0013b2a9" & identifier)) ;) (do_statement "do {\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    uVar14 = *pbVar9 < *pbVar10;\n    uVar16 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n    pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n  } while ((bool)uVar16);" do (compound_statement "{\n    if (lVar7 == 0) break;\n    lVar7 = lVar7 + -1;\n    uVar14 = *pbVar9 < *pbVar10;\n    uVar16 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n    pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n  }" { (if_statement "if (lVar7 == 0) break;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) (expression_statement "uVar14 = *pbVar9 < *pbVar10;" (assignment_expression "uVar14 = *pbVar9 < *pbVar10" identifier = (binary_expression "*pbVar9 < *pbVar10" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "uVar16 = *pbVar9 == *pbVar10;" (assignment_expression "uVar16 = *pbVar9 == *pbVar10" identifier = (binary_expression "*pbVar9 == *pbVar10" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar9 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar16)" ( (cast_expression "(bool)uVar16" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) (expression_statement "bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;" (assignment_expression "bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14" identifier = (binary_expression "(!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14" (parenthesized_expression "(!(bool)uVar14 && !(bool)uVar16)" ( (binary_expression "!(bool)uVar14 && !(bool)uVar16" (unary_expression "!(bool)uVar14" ! (cast_expression "(bool)uVar14" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar16" ! (cast_expression "(bool)uVar16" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar14" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar12) {\n    iVar2 = cmdline_check_unavailable(3,p);\n    bVar12 = iVar2 == 0;\n    if (!bVar12) {\n      return 2;\n    }\nLAB_001088cd:\n    bVar15 = false;\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = (byte *)0x1440f1;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    uVar14 = 0;\n    uVar16 = (!bVar15 && !bVar12) == bVar15;\n    if ((bool)uVar16) {\n      pcVar4 = dupprintf("L%s",value);\n      pcVar5 = dupstr("D");\n    }\n    else {\n      cVar1 = p[1];\n      pcVar4 = host_strchr(value,0x3a);\n      pcVar5 = pcVar4;\n      if (pcVar4 == (char *)0x0) {\nLAB_00108973:\n        cmdline_error("-%c expects at least two colons in its argument",(ulong)(uint)(int)cVar1);\n        return 2;\n      }\n      do {\n        pcVar11 = pcVar5;\n        pcVar5 = pcVar4;\n        pcVar4 = host_strchr(pcVar5 + 1,0x3a);\n      } while (pcVar4 != (char *)0x0);\n      if (pcVar11 == (char *)0x0) goto LAB_00108973;\n      uVar14 = pcVar11 < value;\n      uVar16 = (long)pcVar11 - (long)value == 0;\n      pcVar4 = dupprintf("%c%.*s",(ulong)(uint)(int)cVar1,(long)pcVar11 - (long)value,value);\n      pcVar5 = dupstr(pcVar11 + 1);\n    }\n    conf_set_str_str(conf,0x9b,pcVar4,pcVar5);\n    safefree(pcVar4);\n    safefree(pcVar5);\n    lVar7 = 4;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b2ba;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      uVar14 = *pbVar9 < *pbVar10;\n      uVar16 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    iVar2 = 2;\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00108a01;\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\nLAB_00109fa5:\n    pcVar4 = host_strchr(value,0x3a);\n    if (pcVar4 == (char *)0x0) {\n      cmdline_error("-nc expects argument of form \'host:port\'");\n      return 2;\n    }\n    pcVar5 = dupprintf("%.*s",(long)pcVar4 - (long)value,value);\n    conf_set_str(conf,0x2e,pcVar5);\n    lVar7 = strtol(pcVar4 + 1,(char **)0x0,10);\n    conf_set_int(conf,0x2f,(int)lVar7);\n    safefree(pcVar5);\n    iVar3 = strcmp(p,"-m");\n    iVar2 = 2;\n    bVar12 = iVar3 == 0;\n    if (!bVar12) goto LAB_0010a032;\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\nLAB_00109f54:\n    __stream = fopen64(value,"r");\n    if (__stream == (FILE *)0x0) {\n      cmdline_error("unable to open command file \"%s\"",value);\n      return 2;\n    }\n    lVar7 = 0;\n    local_3c = 0;\n    pcVar4 = (char *)0x0;\n    while( true ) {\n      iVar3 = (int)lVar7;\n      iVar2 = fgetc(__stream);\n      if (iVar2 == -1) break;\n      local_48._0_1_ = (char)iVar2;\n      if (iVar3 < local_3c) {\n        pcVar4[lVar7] = (char)local_48;\n      }\n      else {\n        local_3c = iVar3 + 0x200;\n        pcVar4 = (char *)saferealloc(pcVar4,(long)local_3c,1);\n        pcVar4[lVar7] = (char)local_48;\n      }\n      lVar7 = lVar7 + 1;\n    }\n    if (iVar3 < local_3c) {\n      pcVar4[iVar3] = '\0';\n    }\n    else {\n      pcVar4 = (char *)saferealloc(pcVar4,(long)(iVar3 + 0x200),1);\n      pcVar4[lVar7] = '\0';\n    }\n    fclose(__stream);\n    conf_set_str(conf,0x14,pcVar4);\n    conf_set_str(conf,0x15,"");\n    conf_set_int(conf,0x16,1);\n    safefree(pcVar4);\n    iVar3 = strcmp(p,"-P");\n    iVar2 = 2;\n    if (iVar3 == 0) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      goto LAB_00109749;\n    }\nLAB_00108afa:\n    iVar3 = strcmp(p,"-pw");\n    if (iVar3 == 0) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,1);\n        return 2;\n      }\n      goto LAB_00109ee5;\n    }\n    iVar3 = strcmp(p,"-agent");\n    if (iVar3 != 0) goto LAB_00108ba4;\nLAB_00108bce:\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00108bdc:\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_00108bf9:\n    conf_set_int(conf,0x1c,1);\n    iVar2 = strcmp(p,"-noagent");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_00108c37;\n    }\n    iVar3 = strcmp(p,"-nopagent");\n    iVar2 = 1;\n    if (iVar3 == 0) goto LAB_00109e76;\nLAB_00108d1b:\n    iVar3 = strcmp(p,"-nopageant");\n    if (iVar3 == 0) goto LAB_00108d2e;\n    iVar3 = strcmp(p,"-A");\n    if (iVar3 != 0) {\n      iVar3 = strcmp(p,"-a");\n      if (iVar3 != 0) goto LAB_00108c7d;\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_00108db9;\n    }\n    if (need_save < 0) {\n      return 1;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_00109d88:\n    conf_set_int(conf,0x1d,1);\n    iVar2 = strcmp(p,"-a");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_00109d25;\n    }\n    iVar3 = strcmp(p,"-X");\n    iVar2 = 1;\n    if (iVar3 == 0) {\nLAB_00108ca2:\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\n      goto LAB_00109c0f;\n    }\nLAB_00109dce:\n    iVar3 = strcmp(p,"-x");\n    if (iVar3 != 0) goto LAB_00109de5;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00108dff:\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_00109c49:\n    conf_set_int(conf,0x95,0);\n    iVar2 = strcmp(p,"-t");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\nLAB_00109c87:\n      conf_set_int(conf,0x16,0);\n      iVar2 = strcmp(p,"-T");\n      if (iVar2 == 0) {\n        iVar2 = cmdline_check_unavailable(3,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }\n      iVar3 = strcmp(p,"-N");\n      iVar2 = 1;\n      if (iVar3 == 0) goto LAB_00109ba0;\n    }\n    else {\n      iVar3 = strcmp(p,"-T");\n      iVar2 = 1;\n      if (iVar3 == 0) goto LAB_00109e21;\nLAB_00109b7b:\n      iVar3 = strcmp(p,"-N");\n      if (iVar3 == 0) {\n        if (need_save < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar2 = cmdline_check_unavailable(3,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        if (need_save != 0) {\n          cmdline_save_param(p,value,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }\n    }\n    iVar3 = strcmp(p,"-C");\n    if (iVar3 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00108e8b:\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\nLAB_0010989e:\n      conf_set_int(conf,0x17,1);\n      iVar2 = strcmp(p,"-1");\n      if (iVar2 == 0) {\n        iVar2 = cmdline_check_unavailable(2,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }\n      iVar3 = strcmp(p,"-2");\n      iVar2 = 1;\n      if (iVar3 != 0) goto LAB_00109930;\n      goto LAB_00109b26;\n    }\nLAB_00109aea:\n    iVar3 = strcmp(p,"-1");\n    if (iVar3 != 0) goto LAB_00109b01;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00108ed1:\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_001098d8:\n    conf_set_int(conf,0x21,0);\n    iVar3 = strcmp(p,"-2");\n    iVar2 = 1;\n    if (iVar3 != 0) goto LAB_00109930;\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\nLAB_00109918:\n    conf_set_int(conf,0x21,3);\n    iVar2 = 1;\n  }\n  else {\nLAB_00108865:\n    bVar15 = false;\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b2ac;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar13 = false;\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\nLAB_0010889d:\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      bVar12 = need_save == 0;\n      if (!bVar12) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_001088cd;\n    }\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = (byte *)0x1440f1;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar13 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar13 && !bVar12) == bVar13) goto LAB_0010889d;\n    iVar3 = strcmp(p,"-nc");\n    bVar12 = iVar3 == 0;\n    if (bVar12) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_00109fa5;\n    }\nLAB_00108a01:\n    bVar15 = false;\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b2be;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_00109f54;\n    }\nLAB_0010a032:\n    bVar15 = false;\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b2c1;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) != bVar15) goto LAB_00108afa;\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,1);\n      return 2;\n    }\nLAB_00109749:\n    lVar7 = strtol(value,(char **)0x0,10);\n    conf_set_int(conf,1,(int)lVar7);\n    iVar2 = strcmp(p,"-pw");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\nLAB_00109ee5:\n      iVar2 = conf_get_int(conf,2);\n      if (iVar2 == 3) {\n        cmdline_password = dupstr(value);\n        uVar8 = 0xffffffffffffffff;\n        pcVar4 = value;\n        do {\n          if (uVar8 == 0) break;\n          uVar8 = uVar8 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (ulong)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        smemclr(value,~uVar8 - 1);\n      }\n      else {\n        cmdline_error("the -pw option can only be used with the SSH protocol");\n      }\n      iVar2 = strcmp(p,"-agent");\n      if (iVar2 != 0) {\n        iVar3 = strcmp(p,"-pagent");\n        iVar2 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_00108bf9;\n    }\n    iVar3 = strcmp(p,"-agent");\n    iVar2 = 2;\n    if (iVar3 == 0) goto LAB_00108bdc;\nLAB_00108ba4:\n    iVar3 = strcmp(p,"-pagent");\n    if (iVar3 == 0) goto LAB_00108bce;\nLAB_00108bb7:\n    iVar3 = strcmp(p,"-pageant");\n    if (iVar3 == 0) goto LAB_00108bce;\n    iVar3 = strcmp(p,"-noagent");\n    if ((iVar3 != 0) && (iVar3 = strcmp(p,"-nopagent"), iVar3 != 0)) goto LAB_00108d1b;\nLAB_00108d2e:\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00109e76:\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_00108c37:\n    conf_set_int(conf,0x1c,0);\n    iVar2 = strcmp(p,"-A");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_00109d88;\n    }\n    iVar2 = strcmp(p,"-a");\n    if (iVar2 != 0) {\n      iVar2 = 1;\nLAB_00108c7d:\n      iVar3 = strcmp(p,"-X");\n      if (iVar3 != 0) goto LAB_00109dce;\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_00108ca2;\n    }\nLAB_00108db9:\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_00109d25:\n    conf_set_int(conf,0x1d,0);\n    iVar2 = strcmp(p,"-X");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\nLAB_00109c0f:\n      conf_set_int(conf,0x95,1);\n      iVar2 = strcmp(p,"-x");\n      if (iVar2 == 0) {\n        iVar2 = cmdline_check_unavailable(3,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }\n      iVar3 = strcmp(p,"-t");\n      iVar2 = 1;\n      if (iVar3 != 0) goto LAB_00109dfc;\nLAB_00108e45:\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,1);\n        return 1;\n      }\n      goto LAB_00109c87;\n    }\n    iVar3 = strcmp(p,"-x");\n    iVar2 = 1;\n    if (iVar3 == 0) goto LAB_00108dff;\nLAB_00109de5:\n    iVar3 = strcmp(p,"-t");\n    if (iVar3 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_00108e45;\n    }\nLAB_00109dfc:\n    iVar3 = strcmp(p,"-T");\n    if (iVar3 != 0) goto LAB_00109b7b;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00109e21:\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,1);\n      return 1;\n    }\nLAB_00109cc5:\n    conf_set_int(conf,0x16,1);\n    iVar2 = strcmp(p,"-N");\n    if (iVar2 != 0) {\n      iVar3 = strcmp(p,"-C");\n      iVar2 = 1;\n      if (iVar3 == 0) goto LAB_00108e8b;\n      goto LAB_00109aea;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\nLAB_00109a6e:\n    conf_set_int(conf,0x2d,1);\n    iVar2 = strcmp(p,"-C");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_0010989e;\n    }\n    iVar3 = strcmp(p,"-1");\n    iVar2 = 1;\n    if (iVar3 == 0) goto LAB_00108ed1;\nLAB_00109b01:\n    iVar3 = strcmp(p,"-2");\n    if (iVar3 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00109b26:\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\n      goto LAB_00109918;\n    }\n  }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n    iVar2 = cmdline_check_unavailable(3,p);\n    bVar12 = iVar2 == 0;\n    if (!bVar12) {\n      return 2;\n    }\nLAB_001088cd:\n    bVar15 = false;\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = (byte *)0x1440f1;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    uVar14 = 0;\n    uVar16 = (!bVar15 && !bVar12) == bVar15;\n    if ((bool)uVar16) {\n      pcVar4 = dupprintf("L%s",value);\n      pcVar5 = dupstr("D");\n    }\n    else {\n      cVar1 = p[1];\n      pcVar4 = host_strchr(value,0x3a);\n      pcVar5 = pcVar4;\n      if (pcVar4 == (char *)0x0) {\nLAB_00108973:\n        cmdline_error("-%c expects at least two colons in its argument",(ulong)(uint)(int)cVar1);\n        return 2;\n      }\n      do {\n        pcVar11 = pcVar5;\n        pcVar5 = pcVar4;\n        pcVar4 = host_strchr(pcVar5 + 1,0x3a);\n      } while (pcVar4 != (char *)0x0);\n      if (pcVar11 == (char *)0x0) goto LAB_00108973;\n      uVar14 = pcVar11 < value;\n      uVar16 = (long)pcVar11 - (long)value == 0;\n      pcVar4 = dupprintf("%c%.*s",(ulong)(uint)(int)cVar1,(long)pcVar11 - (long)value,value);\n      pcVar5 = dupstr(pcVar11 + 1);\n    }\n    conf_set_str_str(conf,0x9b,pcVar4,pcVar5);\n    safefree(pcVar4);\n    safefree(pcVar5);\n    lVar7 = 4;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b2ba;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      uVar14 = *pbVar9 < *pbVar10;\n      uVar16 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    iVar2 = 2;\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00108a01;\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\nLAB_00109fa5:\n    pcVar4 = host_strchr(value,0x3a);\n    if (pcVar4 == (char *)0x0) {\n      cmdline_error("-nc expects argument of form \'host:port\'");\n      return 2;\n    }\n    pcVar5 = dupprintf("%.*s",(long)pcVar4 - (long)value,value);\n    conf_set_str(conf,0x2e,pcVar5);\n    lVar7 = strtol(pcVar4 + 1,(char **)0x0,10);\n    conf_set_int(conf,0x2f,(int)lVar7);\n    safefree(pcVar5);\n    iVar3 = strcmp(p,"-m");\n    iVar2 = 2;\n    bVar12 = iVar3 == 0;\n    if (!bVar12) goto LAB_0010a032;\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\nLAB_00109f54:\n    __stream = fopen64(value,"r");\n    if (__stream == (FILE *)0x0) {\n      cmdline_error("unable to open command file \"%s\"",value);\n      return 2;\n    }\n    lVar7 = 0;\n    local_3c = 0;\n    pcVar4 = (char *)0x0;\n    while( true ) {\n      iVar3 = (int)lVar7;\n      iVar2 = fgetc(__stream);\n      if (iVar2 == -1) break;\n      local_48._0_1_ = (char)iVar2;\n      if (iVar3 < local_3c) {\n        pcVar4[lVar7] = (char)local_48;\n      }\n      else {\n        local_3c = iVar3 + 0x200;\n        pcVar4 = (char *)saferealloc(pcVar4,(long)local_3c,1);\n        pcVar4[lVar7] = (char)local_48;\n      }\n      lVar7 = lVar7 + 1;\n    }\n    if (iVar3 < local_3c) {\n      pcVar4[iVar3] = '\0';\n    }\n    else {\n      pcVar4 = (char *)saferealloc(pcVar4,(long)(iVar3 + 0x200),1);\n      pcVar4[lVar7] = '\0';\n    }\n    fclose(__stream);\n    conf_set_str(conf,0x14,pcVar4);\n    conf_set_str(conf,0x15,"");\n    conf_set_int(conf,0x16,1);\n    safefree(pcVar4);\n    iVar3 = strcmp(p,"-P");\n    iVar2 = 2;\n    if (iVar3 == 0) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      goto LAB_00109749;\n    }\nLAB_00108afa:\n    iVar3 = strcmp(p,"-pw");\n    if (iVar3 == 0) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,1);\n        return 2;\n      }\n      goto LAB_00109ee5;\n    }\n    iVar3 = strcmp(p,"-agent");\n    if (iVar3 != 0) goto LAB_00108ba4;\nLAB_00108bce:\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00108bdc:\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_00108bf9:\n    conf_set_int(conf,0x1c,1);\n    iVar2 = strcmp(p,"-noagent");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_00108c37;\n    }\n    iVar3 = strcmp(p,"-nopagent");\n    iVar2 = 1;\n    if (iVar3 == 0) goto LAB_00109e76;\nLAB_00108d1b:\n    iVar3 = strcmp(p,"-nopageant");\n    if (iVar3 == 0) goto LAB_00108d2e;\n    iVar3 = strcmp(p,"-A");\n    if (iVar3 != 0) {\n      iVar3 = strcmp(p,"-a");\n      if (iVar3 != 0) goto LAB_00108c7d;\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_00108db9;\n    }\n    if (need_save < 0) {\n      return 1;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_00109d88:\n    conf_set_int(conf,0x1d,1);\n    iVar2 = strcmp(p,"-a");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_00109d25;\n    }\n    iVar3 = strcmp(p,"-X");\n    iVar2 = 1;\n    if (iVar3 == 0) {\nLAB_00108ca2:\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\n      goto LAB_00109c0f;\n    }\nLAB_00109dce:\n    iVar3 = strcmp(p,"-x");\n    if (iVar3 != 0) goto LAB_00109de5;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00108dff:\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_00109c49:\n    conf_set_int(conf,0x95,0);\n    iVar2 = strcmp(p,"-t");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\nLAB_00109c87:\n      conf_set_int(conf,0x16,0);\n      iVar2 = strcmp(p,"-T");\n      if (iVar2 == 0) {\n        iVar2 = cmdline_check_unavailable(3,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }\n      iVar3 = strcmp(p,"-N");\n      iVar2 = 1;\n      if (iVar3 == 0) goto LAB_00109ba0;\n    }\n    else {\n      iVar3 = strcmp(p,"-T");\n      iVar2 = 1;\n      if (iVar3 == 0) goto LAB_00109e21;\nLAB_00109b7b:\n      iVar3 = strcmp(p,"-N");\n      if (iVar3 == 0) {\n        if (need_save < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar2 = cmdline_check_unavailable(3,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        if (need_save != 0) {\n          cmdline_save_param(p,value,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }\n    }\n    iVar3 = strcmp(p,"-C");\n    if (iVar3 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00108e8b:\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\nLAB_0010989e:\n      conf_set_int(conf,0x17,1);\n      iVar2 = strcmp(p,"-1");\n      if (iVar2 == 0) {\n        iVar2 = cmdline_check_unavailable(2,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }\n      iVar3 = strcmp(p,"-2");\n      iVar2 = 1;\n      if (iVar3 != 0) goto LAB_00109930;\n      goto LAB_00109b26;\n    }\nLAB_00109aea:\n    iVar3 = strcmp(p,"-1");\n    if (iVar3 != 0) goto LAB_00109b01;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00108ed1:\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_001098d8:\n    conf_set_int(conf,0x21,0);\n    iVar3 = strcmp(p,"-2");\n    iVar2 = 1;\n    if (iVar3 != 0) goto LAB_00109930;\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\nLAB_00109918:\n    conf_set_int(conf,0x21,3);\n    iVar2 = 1;\n  }" { (expression_statement "iVar2 = cmdline_check_unavailable(3,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(3,p)" identifier = (call_expression "cmdline_check_unavailable(3,p)" identifier (argument_list "(3,p)" ( number_literal , identifier )))) ;) (expression_statement "bVar12 = iVar2 == 0;" (assignment_expression "bVar12 = iVar2 == 0" identifier = (binary_expression "iVar2 == 0" identifier == number_literal)) ;) (if_statement "if (!bVar12) {\n      return 2;\n    }" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_001088cd:\n    bVar15 = false;" statement_identifier : (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;)) (expression_statement "lVar7 = 3;" (assignment_expression "lVar7 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)p;" (assignment_expression "pbVar9 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar10 = (byte *)0x1440f1;" (assignment_expression "pbVar10 = (byte *)0x1440f1" identifier = (cast_expression "(byte *)0x1440f1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    }" { (if_statement "if (lVar7 == 0) break;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar10;" (assignment_expression "bVar15 = *pbVar9 < *pbVar10" identifier = (binary_expression "*pbVar9 < *pbVar10" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar10;" (assignment_expression "bVar12 = *pbVar9 == *pbVar10" identifier = (binary_expression "*pbVar9 == *pbVar10" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar9 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar16 = (!bVar15 && !bVar12) == bVar15;" (assignment_expression "uVar16 = (!bVar15 && !bVar12) == bVar15" identifier = (binary_expression "(!bVar15 && !bVar12) == bVar15" (parenthesized_expression "(!bVar15 && !bVar12)" ( (binary_expression "!bVar15 && !bVar12" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) == identifier)) ;) (if_statement "if ((bool)uVar16) {\n      pcVar4 = dupprintf("L%s",value);\n      pcVar5 = dupstr("D");\n    }\n    else {\n      cVar1 = p[1];\n      pcVar4 = host_strchr(value,0x3a);\n      pcVar5 = pcVar4;\n      if (pcVar4 == (char *)0x0) {\nLAB_00108973:\n        cmdline_error("-%c expects at least two colons in its argument",(ulong)(uint)(int)cVar1);\n        return 2;\n      }\n      do {\n        pcVar11 = pcVar5;\n        pcVar5 = pcVar4;\n        pcVar4 = host_strchr(pcVar5 + 1,0x3a);\n      } while (pcVar4 != (char *)0x0);\n      if (pcVar11 == (char *)0x0) goto LAB_00108973;\n      uVar14 = pcVar11 < value;\n      uVar16 = (long)pcVar11 - (long)value == 0;\n      pcVar4 = dupprintf("%c%.*s",(ulong)(uint)(int)cVar1,(long)pcVar11 - (long)value,value);\n      pcVar5 = dupstr(pcVar11 + 1);\n    }" if (parenthesized_expression "((bool)uVar16)" ( (cast_expression "(bool)uVar16" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\n      pcVar4 = dupprintf("L%s",value);\n      pcVar5 = dupstr("D");\n    }" { (expression_statement "pcVar4 = dupprintf("L%s",value);" (assignment_expression "pcVar4 = dupprintf("L%s",value)" identifier = (call_expression "dupprintf("L%s",value)" identifier (argument_list "("L%s",value)" ( (string_literal ""L%s"" " string_content ") , identifier )))) ;) (expression_statement "pcVar5 = dupstr("D");" (assignment_expression "pcVar5 = dupstr("D")" identifier = (call_expression "dupstr("D")" identifier (argument_list "("D")" ( (string_literal ""D"" " string_content ") )))) ;) }) (else_clause "else {\n      cVar1 = p[1];\n      pcVar4 = host_strchr(value,0x3a);\n      pcVar5 = pcVar4;\n      if (pcVar4 == (char *)0x0) {\nLAB_00108973:\n        cmdline_error("-%c expects at least two colons in its argument",(ulong)(uint)(int)cVar1);\n        return 2;\n      }\n      do {\n        pcVar11 = pcVar5;\n        pcVar5 = pcVar4;\n        pcVar4 = host_strchr(pcVar5 + 1,0x3a);\n      } while (pcVar4 != (char *)0x0);\n      if (pcVar11 == (char *)0x0) goto LAB_00108973;\n      uVar14 = pcVar11 < value;\n      uVar16 = (long)pcVar11 - (long)value == 0;\n      pcVar4 = dupprintf("%c%.*s",(ulong)(uint)(int)cVar1,(long)pcVar11 - (long)value,value);\n      pcVar5 = dupstr(pcVar11 + 1);\n    }" else (compound_statement "{\n      cVar1 = p[1];\n      pcVar4 = host_strchr(value,0x3a);\n      pcVar5 = pcVar4;\n      if (pcVar4 == (char *)0x0) {\nLAB_00108973:\n        cmdline_error("-%c expects at least two colons in its argument",(ulong)(uint)(int)cVar1);\n        return 2;\n      }\n      do {\n        pcVar11 = pcVar5;\n        pcVar5 = pcVar4;\n        pcVar4 = host_strchr(pcVar5 + 1,0x3a);\n      } while (pcVar4 != (char *)0x0);\n      if (pcVar11 == (char *)0x0) goto LAB_00108973;\n      uVar14 = pcVar11 < value;\n      uVar16 = (long)pcVar11 - (long)value == 0;\n      pcVar4 = dupprintf("%c%.*s",(ulong)(uint)(int)cVar1,(long)pcVar11 - (long)value,value);\n      pcVar5 = dupstr(pcVar11 + 1);\n    }" { (expression_statement "cVar1 = p[1];" (assignment_expression "cVar1 = p[1]" identifier = (subscript_expression "p[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar4 = host_strchr(value,0x3a);" (assignment_expression "pcVar4 = host_strchr(value,0x3a)" identifier = (call_expression "host_strchr(value,0x3a)" identifier (argument_list "(value,0x3a)" ( identifier , number_literal )))) ;) (expression_statement "pcVar5 = pcVar4;" (assignment_expression "pcVar5 = pcVar4" identifier = identifier) ;) (if_statement "if (pcVar4 == (char *)0x0) {\nLAB_00108973:\n        cmdline_error("-%c expects at least two colons in its argument",(ulong)(uint)(int)cVar1);\n        return 2;\n      }" if (parenthesized_expression "(pcVar4 == (char *)0x0)" ( (binary_expression "pcVar4 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00108973:\n        cmdline_error("-%c expects at least two colons in its argument",(ulong)(uint)(int)cVar1);\n        return 2;\n      }" { (labeled_statement "LAB_00108973:\n        cmdline_error("-%c expects at least two colons in its argument",(ulong)(uint)(int)cVar1);" statement_identifier : (expression_statement "cmdline_error("-%c expects at least two colons in its argument",(ulong)(uint)(int)cVar1);" (call_expression "cmdline_error("-%c expects at least two colons in its argument",(ulong)(uint)(int)cVar1)" identifier (argument_list "("-%c expects at least two colons in its argument",(ulong)(uint)(int)cVar1)" ( (string_literal ""-%c expects at least two colons in its argument"" " string_content ") , (cast_expression "(ulong)(uint)(int)cVar1" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)(int)cVar1" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier))) ))) ;)) (return_statement "return 2;" return number_literal ;) })) (do_statement "do {\n        pcVar11 = pcVar5;\n        pcVar5 = pcVar4;\n        pcVar4 = host_strchr(pcVar5 + 1,0x3a);\n      } while (pcVar4 != (char *)0x0);" do (compound_statement "{\n        pcVar11 = pcVar5;\n        pcVar5 = pcVar4;\n        pcVar4 = host_strchr(pcVar5 + 1,0x3a);\n      }" { (expression_statement "pcVar11 = pcVar5;" (assignment_expression "pcVar11 = pcVar5" identifier = identifier) ;) (expression_statement "pcVar5 = pcVar4;" (assignment_expression "pcVar5 = pcVar4" identifier = identifier) ;) (expression_statement "pcVar4 = host_strchr(pcVar5 + 1,0x3a);" (assignment_expression "pcVar4 = host_strchr(pcVar5 + 1,0x3a)" identifier = (call_expression "host_strchr(pcVar5 + 1,0x3a)" identifier (argument_list "(pcVar5 + 1,0x3a)" ( (binary_expression "pcVar5 + 1" identifier + number_literal) , number_literal )))) ;) }) while (parenthesized_expression "(pcVar4 != (char *)0x0)" ( (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (if_statement "if (pcVar11 == (char *)0x0) goto LAB_00108973;" if (parenthesized_expression "(pcVar11 == (char *)0x0)" ( (binary_expression "pcVar11 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00108973;" goto statement_identifier ;)) (expression_statement "uVar14 = pcVar11 < value;" (assignment_expression "uVar14 = pcVar11 < value" identifier = (binary_expression "pcVar11 < value" identifier < identifier)) ;) (expression_statement "uVar16 = (long)pcVar11 - (long)value == 0;" (assignment_expression "uVar16 = (long)pcVar11 - (long)value == 0" identifier = (binary_expression "(long)pcVar11 - (long)value == 0" (binary_expression "(long)pcVar11 - (long)value" (cast_expression "(long)pcVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)value" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) == number_literal)) ;) (expression_statement "pcVar4 = dupprintf("%c%.*s",(ulong)(uint)(int)cVar1,(long)pcVar11 - (long)value,value);" (assignment_expression "pcVar4 = dupprintf("%c%.*s",(ulong)(uint)(int)cVar1,(long)pcVar11 - (long)value,value)" identifier = (call_expression "dupprintf("%c%.*s",(ulong)(uint)(int)cVar1,(long)pcVar11 - (long)value,value)" identifier (argument_list "("%c%.*s",(ulong)(uint)(int)cVar1,(long)pcVar11 - (long)value,value)" ( (string_literal ""%c%.*s"" " string_content ") , (cast_expression "(ulong)(uint)(int)cVar1" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)(int)cVar1" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "(long)pcVar11 - (long)value" (cast_expression "(long)pcVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)value" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) , identifier )))) ;) (expression_statement "pcVar5 = dupstr(pcVar11 + 1);" (assignment_expression "pcVar5 = dupstr(pcVar11 + 1)" identifier = (call_expression "dupstr(pcVar11 + 1)" identifier (argument_list "(pcVar11 + 1)" ( (binary_expression "pcVar11 + 1" identifier + number_literal) )))) ;) }))) (expression_statement "conf_set_str_str(conf,0x9b,pcVar4,pcVar5);" (call_expression "conf_set_str_str(conf,0x9b,pcVar4,pcVar5)" identifier (argument_list "(conf,0x9b,pcVar4,pcVar5)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "safefree(pcVar4);" (call_expression "safefree(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (expression_statement "safefree(pcVar5);" (call_expression "safefree(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (expression_statement "lVar7 = 4;" (assignment_expression "lVar7 = 4" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)p;" (assignment_expression "pbVar9 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar10 = &DAT_0013b2ba;" (assignment_expression "pbVar10 = &DAT_0013b2ba" identifier = (pointer_expression "&DAT_0013b2ba" & identifier)) ;) (do_statement "do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      uVar14 = *pbVar9 < *pbVar10;\n      uVar16 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while ((bool)uVar16);" do (compound_statement "{\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      uVar14 = *pbVar9 < *pbVar10;\n      uVar16 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    }" { (if_statement "if (lVar7 == 0) break;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) (expression_statement "uVar14 = *pbVar9 < *pbVar10;" (assignment_expression "uVar14 = *pbVar9 < *pbVar10" identifier = (binary_expression "*pbVar9 < *pbVar10" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "uVar16 = *pbVar9 == *pbVar10;" (assignment_expression "uVar16 = *pbVar9 == *pbVar10" identifier = (binary_expression "*pbVar9 == *pbVar10" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar9 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar16)" ( (cast_expression "(bool)uVar16" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) (expression_statement "bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;" (assignment_expression "bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14" identifier = (binary_expression "(!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14" (parenthesized_expression "(!(bool)uVar14 && !(bool)uVar16)" ( (binary_expression "!(bool)uVar14 && !(bool)uVar16" (unary_expression "!(bool)uVar14" ! (cast_expression "(bool)uVar14" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar16" ! (cast_expression "(bool)uVar16" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar14" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (!bVar12) goto LAB_00108a01;" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (goto_statement "goto LAB_00108a01;" goto statement_identifier ;)) (expression_statement "iVar2 = cmdline_check_unavailable(3,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(3,p)" identifier = (call_expression "cmdline_check_unavailable(3,p)" identifier (argument_list "(3,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n      return 2;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_00109fa5:\n    pcVar4 = host_strchr(value,0x3a);" statement_identifier : (expression_statement "pcVar4 = host_strchr(value,0x3a);" (assignment_expression "pcVar4 = host_strchr(value,0x3a)" identifier = (call_expression "host_strchr(value,0x3a)" identifier (argument_list "(value,0x3a)" ( identifier , number_literal )))) ;)) (if_statement "if (pcVar4 == (char *)0x0) {\n      cmdline_error("-nc expects argument of form \'host:port\'");\n      return 2;\n    }" if (parenthesized_expression "(pcVar4 == (char *)0x0)" ( (binary_expression "pcVar4 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      cmdline_error("-nc expects argument of form \'host:port\'");\n      return 2;\n    }" { (expression_statement "cmdline_error("-nc expects argument of form \'host:port\'");" (call_expression "cmdline_error("-nc expects argument of form \'host:port\'")" identifier (argument_list "("-nc expects argument of form \'host:port\'")" ( (string_literal ""-nc expects argument of form \'host:port\'"" " string_content escape_sequence string_content escape_sequence ") ))) ;) (return_statement "return 2;" return number_literal ;) })) (expression_statement "pcVar5 = dupprintf("%.*s",(long)pcVar4 - (long)value,value);" (assignment_expression "pcVar5 = dupprintf("%.*s",(long)pcVar4 - (long)value,value)" identifier = (call_expression "dupprintf("%.*s",(long)pcVar4 - (long)value,value)" identifier (argument_list "("%.*s",(long)pcVar4 - (long)value,value)" ( (string_literal ""%.*s"" " string_content ") , (binary_expression "(long)pcVar4 - (long)value" (cast_expression "(long)pcVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)value" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) , identifier )))) ;) (expression_statement "conf_set_str(conf,0x2e,pcVar5);" (call_expression "conf_set_str(conf,0x2e,pcVar5)" identifier (argument_list "(conf,0x2e,pcVar5)" ( identifier , number_literal , identifier ))) ;) (expression_statement "lVar7 = strtol(pcVar4 + 1,(char **)0x0,10);" (assignment_expression "lVar7 = strtol(pcVar4 + 1,(char **)0x0,10)" identifier = (call_expression "strtol(pcVar4 + 1,(char **)0x0,10)" identifier (argument_list "(pcVar4 + 1,(char **)0x0,10)" ( (binary_expression "pcVar4 + 1" identifier + number_literal) , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , number_literal )))) ;) (expression_statement "conf_set_int(conf,0x2f,(int)lVar7);" (call_expression "conf_set_int(conf,0x2f,(int)lVar7)" identifier (argument_list "(conf,0x2f,(int)lVar7)" ( identifier , number_literal , (cast_expression "(int)lVar7" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "safefree(pcVar5);" (call_expression "safefree(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (expression_statement "iVar3 = strcmp(p,"-m");" (assignment_expression "iVar3 = strcmp(p,"-m")" identifier = (call_expression "strcmp(p,"-m")" identifier (argument_list "(p,"-m")" ( identifier , (string_literal ""-m"" " string_content ") )))) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) (expression_statement "bVar12 = iVar3 == 0;" (assignment_expression "bVar12 = iVar3 == 0" identifier = (binary_expression "iVar3 == 0" identifier == number_literal)) ;) (if_statement "if (!bVar12) goto LAB_0010a032;" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (goto_statement "goto LAB_0010a032;" goto statement_identifier ;)) (expression_statement "iVar2 = cmdline_check_unavailable(3,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(3,p)" identifier = (call_expression "cmdline_check_unavailable(3,p)" identifier (argument_list "(3,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n      return 2;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_00109f54:\n    __stream = fopen64(value,"r");" statement_identifier : (expression_statement "__stream = fopen64(value,"r");" (assignment_expression "__stream = fopen64(value,"r")" identifier = (call_expression "fopen64(value,"r")" identifier (argument_list "(value,"r")" ( identifier , (string_literal ""r"" " string_content ") )))) ;)) (if_statement "if (__stream == (FILE *)0x0) {\n      cmdline_error("unable to open command file \"%s\"",value);\n      return 2;\n    }" if (parenthesized_expression "(__stream == (FILE *)0x0)" ( (binary_expression "__stream == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      cmdline_error("unable to open command file \"%s\"",value);\n      return 2;\n    }" { (expression_statement "cmdline_error("unable to open command file \"%s\"",value);" (call_expression "cmdline_error("unable to open command file \"%s\"",value)" identifier (argument_list "("unable to open command file \"%s\"",value)" ( (string_literal ""unable to open command file \"%s\""" " string_content escape_sequence string_content escape_sequence ") , identifier ))) ;) (return_statement "return 2;" return number_literal ;) })) (expression_statement "lVar7 = 0;" (assignment_expression "lVar7 = 0" identifier = number_literal) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "pcVar4 = (char *)0x0;" (assignment_expression "pcVar4 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (while_statement "while( true ) {\n      iVar3 = (int)lVar7;\n      iVar2 = fgetc(__stream);\n      if (iVar2 == -1) break;\n      local_48._0_1_ = (char)iVar2;\n      if (iVar3 < local_3c) {\n        pcVar4[lVar7] = (char)local_48;\n      }\n      else {\n        local_3c = iVar3 + 0x200;\n        pcVar4 = (char *)saferealloc(pcVar4,(long)local_3c,1);\n        pcVar4[lVar7] = (char)local_48;\n      }\n      lVar7 = lVar7 + 1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      iVar3 = (int)lVar7;\n      iVar2 = fgetc(__stream);\n      if (iVar2 == -1) break;\n      local_48._0_1_ = (char)iVar2;\n      if (iVar3 < local_3c) {\n        pcVar4[lVar7] = (char)local_48;\n      }\n      else {\n        local_3c = iVar3 + 0x200;\n        pcVar4 = (char *)saferealloc(pcVar4,(long)local_3c,1);\n        pcVar4[lVar7] = (char)local_48;\n      }\n      lVar7 = lVar7 + 1;\n    }" { (expression_statement "iVar3 = (int)lVar7;" (assignment_expression "iVar3 = (int)lVar7" identifier = (cast_expression "(int)lVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar2 = fgetc(__stream);" (assignment_expression "iVar2 = fgetc(__stream)" identifier = (call_expression "fgetc(__stream)" identifier (argument_list "(__stream)" ( identifier )))) ;) (if_statement "if (iVar2 == -1) break;" if (parenthesized_expression "(iVar2 == -1)" ( (binary_expression "iVar2 == -1" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "local_48._0_1_ = (char)iVar2;" (assignment_expression "local_48._0_1_ = (char)iVar2" (field_expression "local_48._0_1_" identifier . field_identifier) = (cast_expression "(char)iVar2" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (iVar3 < local_3c) {\n        pcVar4[lVar7] = (char)local_48;\n      }\n      else {\n        local_3c = iVar3 + 0x200;\n        pcVar4 = (char *)saferealloc(pcVar4,(long)local_3c,1);\n        pcVar4[lVar7] = (char)local_48;\n      }" if (parenthesized_expression "(iVar3 < local_3c)" ( (binary_expression "iVar3 < local_3c" identifier < identifier) )) (compound_statement "{\n        pcVar4[lVar7] = (char)local_48;\n      }" { (expression_statement "pcVar4[lVar7] = (char)local_48;" (assignment_expression "pcVar4[lVar7] = (char)local_48" (subscript_expression "pcVar4[lVar7]" identifier [ identifier ]) = (cast_expression "(char)local_48" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n        local_3c = iVar3 + 0x200;\n        pcVar4 = (char *)saferealloc(pcVar4,(long)local_3c,1);\n        pcVar4[lVar7] = (char)local_48;\n      }" else (compound_statement "{\n        local_3c = iVar3 + 0x200;\n        pcVar4 = (char *)saferealloc(pcVar4,(long)local_3c,1);\n        pcVar4[lVar7] = (char)local_48;\n      }" { (expression_statement "local_3c = iVar3 + 0x200;" (assignment_expression "local_3c = iVar3 + 0x200" identifier = (binary_expression "iVar3 + 0x200" identifier + number_literal)) ;) (expression_statement "pcVar4 = (char *)saferealloc(pcVar4,(long)local_3c,1);" (assignment_expression "pcVar4 = (char *)saferealloc(pcVar4,(long)local_3c,1)" identifier = (cast_expression "(char *)saferealloc(pcVar4,(long)local_3c,1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "saferealloc(pcVar4,(long)local_3c,1)" identifier (argument_list "(pcVar4,(long)local_3c,1)" ( identifier , (cast_expression "(long)local_3c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) , number_literal ))))) ;) (expression_statement "pcVar4[lVar7] = (char)local_48;" (assignment_expression "pcVar4[lVar7] = (char)local_48" (subscript_expression "pcVar4[lVar7]" identifier [ identifier ]) = (cast_expression "(char)local_48" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) (expression_statement "lVar7 = lVar7 + 1;" (assignment_expression "lVar7 = lVar7 + 1" identifier = (binary_expression "lVar7 + 1" identifier + number_literal)) ;) })) (if_statement "if (iVar3 < local_3c) {\n      pcVar4[iVar3] = '\0';\n    }\n    else {\n      pcVar4 = (char *)saferealloc(pcVar4,(long)(iVar3 + 0x200),1);\n      pcVar4[lVar7] = '\0';\n    }" if (parenthesized_expression "(iVar3 < local_3c)" ( (binary_expression "iVar3 < local_3c" identifier < identifier) )) (compound_statement "{\n      pcVar4[iVar3] = '\0';\n    }" { (expression_statement "pcVar4[iVar3] = '\0';" (assignment_expression "pcVar4[iVar3] = '\0'" (subscript_expression "pcVar4[iVar3]" identifier [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n      pcVar4 = (char *)saferealloc(pcVar4,(long)(iVar3 + 0x200),1);\n      pcVar4[lVar7] = '\0';\n    }" else (compound_statement "{\n      pcVar4 = (char *)saferealloc(pcVar4,(long)(iVar3 + 0x200),1);\n      pcVar4[lVar7] = '\0';\n    }" { (expression_statement "pcVar4 = (char *)saferealloc(pcVar4,(long)(iVar3 + 0x200),1);" (assignment_expression "pcVar4 = (char *)saferealloc(pcVar4,(long)(iVar3 + 0x200),1)" identifier = (cast_expression "(char *)saferealloc(pcVar4,(long)(iVar3 + 0x200),1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "saferealloc(pcVar4,(long)(iVar3 + 0x200),1)" identifier (argument_list "(pcVar4,(long)(iVar3 + 0x200),1)" ( identifier , (cast_expression "(long)(iVar3 + 0x200)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(iVar3 + 0x200)" ( (binary_expression "iVar3 + 0x200" identifier + number_literal) ))) , number_literal ))))) ;) (expression_statement "pcVar4[lVar7] = '\0';" (assignment_expression "pcVar4[lVar7] = '\0'" (subscript_expression "pcVar4[lVar7]" identifier [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) }))) (expression_statement "fclose(__stream);" (call_expression "fclose(__stream)" identifier (argument_list "(__stream)" ( identifier ))) ;) (expression_statement "conf_set_str(conf,0x14,pcVar4);" (call_expression "conf_set_str(conf,0x14,pcVar4)" identifier (argument_list "(conf,0x14,pcVar4)" ( identifier , number_literal , identifier ))) ;) (expression_statement "conf_set_str(conf,0x15,"");" (call_expression "conf_set_str(conf,0x15,"")" identifier (argument_list "(conf,0x15,"")" ( identifier , number_literal , (string_literal """" " ") ))) ;) (expression_statement "conf_set_int(conf,0x16,1);" (call_expression "conf_set_int(conf,0x16,1)" identifier (argument_list "(conf,0x16,1)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "safefree(pcVar4);" (call_expression "safefree(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (expression_statement "iVar3 = strcmp(p,"-P");" (assignment_expression "iVar3 = strcmp(p,"-P")" identifier = (call_expression "strcmp(p,"-P")" identifier (argument_list "(p,"-P")" ( identifier , (string_literal ""-P"" " string_content ") )))) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      goto LAB_00109749;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      goto LAB_00109749;\n    }" { (expression_statement "iVar2 = cmdline_check_unavailable(2,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(2,p)" identifier = (call_expression "cmdline_check_unavailable(2,p)" identifier (argument_list "(2,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n        return 2;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (goto_statement "goto LAB_00109749;" goto statement_identifier ;) })) (labeled_statement "LAB_00108afa:\n    iVar3 = strcmp(p,"-pw");" statement_identifier : (expression_statement "iVar3 = strcmp(p,"-pw");" (assignment_expression "iVar3 = strcmp(p,"-pw")" identifier = (call_expression "strcmp(p,"-pw")" identifier (argument_list "(p,"-pw")" ( identifier , (string_literal ""-pw"" " string_content ") )))) ;)) (if_statement "if (iVar3 == 0) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,1);\n        return 2;\n      }\n      goto LAB_00109ee5;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,1);\n        return 2;\n      }\n      goto LAB_00109ee5;\n    }" { (if_statement "if (value == (char *)0x0) {\n        return -2;\n      }" if (parenthesized_expression "(value == (char *)0x0)" ( (binary_expression "value == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return -2;\n      }" { (return_statement "return -2;" return number_literal ;) })) (if_statement "if (need_save < 0) {\n        return 2;\n      }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar2 = cmdline_check_unavailable(2,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(2,p)" identifier = (call_expression "cmdline_check_unavailable(2,p)" identifier (argument_list "(2,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n        return 2;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (need_save != 0) {\n        cmdline_save_param(p,value,1);\n        return 2;\n      }" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (compound_statement "{\n        cmdline_save_param(p,value,1);\n        return 2;\n      }" { (expression_statement "cmdline_save_param(p,value,1);" (call_expression "cmdline_save_param(p,value,1)" identifier (argument_list "(p,value,1)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (goto_statement "goto LAB_00109ee5;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp(p,"-agent");" (assignment_expression "iVar3 = strcmp(p,"-agent")" identifier = (call_expression "strcmp(p,"-agent")" identifier (argument_list "(p,"-agent")" ( identifier , (string_literal ""-agent"" " string_content ") )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00108ba4;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00108ba4;" goto statement_identifier ;)) (labeled_statement "LAB_00108bce:\n    if (need_save < 0) {\n      return 1;\n    }" statement_identifier : (if_statement "if (need_save < 0) {\n      return 1;\n    }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) }))) (labeled_statement "LAB_00108bdc:\n    iVar2 = cmdline_check_unavailable(2,p);" statement_identifier : (expression_statement "iVar2 = cmdline_check_unavailable(2,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(2,p)" identifier = (call_expression "cmdline_check_unavailable(2,p)" identifier (argument_list "(2,p)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar2 != 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (compound_statement "{\n      cmdline_save_param(p,value,0);\n      return 1;\n    }" { (expression_statement "cmdline_save_param(p,value,0);" (call_expression "cmdline_save_param(p,value,0)" identifier (argument_list "(p,value,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00108bf9:\n    conf_set_int(conf,0x1c,1);" statement_identifier : (expression_statement "conf_set_int(conf,0x1c,1);" (call_expression "conf_set_int(conf,0x1c,1)" identifier (argument_list "(conf,0x1c,1)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar2 = strcmp(p,"-noagent");" (assignment_expression "iVar2 = strcmp(p,"-noagent")" identifier = (call_expression "strcmp(p,"-noagent")" identifier (argument_list "(p,"-noagent")" ( identifier , (string_literal ""-noagent"" " string_content ") )))) ;) (if_statement "if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_00108c37;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_00108c37;\n    }" { (expression_statement "iVar2 = cmdline_check_unavailable(2,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(2,p)" identifier = (call_expression "cmdline_check_unavailable(2,p)" identifier (argument_list "(2,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00108c37;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp(p,"-nopagent");" (assignment_expression "iVar3 = strcmp(p,"-nopagent")" identifier = (call_expression "strcmp(p,"-nopagent")" identifier (argument_list "(p,"-nopagent")" ( identifier , (string_literal ""-nopagent"" " string_content ") )))) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) goto LAB_00109e76;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00109e76;" goto statement_identifier ;)) (labeled_statement "LAB_00108d1b:\n    iVar3 = strcmp(p,"-nopageant");" statement_identifier : (expression_statement "iVar3 = strcmp(p,"-nopageant");" (assignment_expression "iVar3 = strcmp(p,"-nopageant")" identifier = (call_expression "strcmp(p,"-nopageant")" identifier (argument_list "(p,"-nopageant")" ( identifier , (string_literal ""-nopageant"" " string_content ") )))) ;)) (if_statement "if (iVar3 == 0) goto LAB_00108d2e;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00108d2e;" goto statement_identifier ;)) (expression_statement "iVar3 = strcmp(p,"-A");" (assignment_expression "iVar3 = strcmp(p,"-A")" identifier = (call_expression "strcmp(p,"-A")" identifier (argument_list "(p,"-A")" ( identifier , (string_literal ""-A"" " string_content ") )))) ;) (if_statement "if (iVar3 != 0) {\n      iVar3 = strcmp(p,"-a");\n      if (iVar3 != 0) goto LAB_00108c7d;\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_00108db9;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar3 = strcmp(p,"-a");\n      if (iVar3 != 0) goto LAB_00108c7d;\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_00108db9;\n    }" { (expression_statement "iVar3 = strcmp(p,"-a");" (assignment_expression "iVar3 = strcmp(p,"-a")" identifier = (call_expression "strcmp(p,"-a")" identifier (argument_list "(p,"-a")" ( identifier , (string_literal ""-a"" " string_content ") )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00108c7d;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00108c7d;" goto statement_identifier ;)) (if_statement "if (need_save < 0) {\n        return 1;\n      }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00108db9;" goto statement_identifier ;) })) (if_statement "if (need_save < 0) {\n      return 1;\n    }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar2 = cmdline_check_unavailable(3,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(3,p)" identifier = (call_expression "cmdline_check_unavailable(3,p)" identifier (argument_list "(3,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (compound_statement "{\n      cmdline_save_param(p,value,0);\n      return 1;\n    }" { (expression_statement "cmdline_save_param(p,value,0);" (call_expression "cmdline_save_param(p,value,0)" identifier (argument_list "(p,value,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109d88:\n    conf_set_int(conf,0x1d,1);" statement_identifier : (expression_statement "conf_set_int(conf,0x1d,1);" (call_expression "conf_set_int(conf,0x1d,1)" identifier (argument_list "(conf,0x1d,1)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar2 = strcmp(p,"-a");" (assignment_expression "iVar2 = strcmp(p,"-a")" identifier = (call_expression "strcmp(p,"-a")" identifier (argument_list "(p,"-a")" ( identifier , (string_literal ""-a"" " string_content ") )))) ;) (if_statement "if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_00109d25;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_00109d25;\n    }" { (expression_statement "iVar2 = cmdline_check_unavailable(3,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(3,p)" identifier = (call_expression "cmdline_check_unavailable(3,p)" identifier (argument_list "(3,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00109d25;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp(p,"-X");" (assignment_expression "iVar3 = strcmp(p,"-X")" identifier = (call_expression "strcmp(p,"-X")" identifier (argument_list "(p,"-X")" ( identifier , (string_literal ""-X"" " string_content ") )))) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) {\nLAB_00108ca2:\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\n      goto LAB_00109c0f;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00108ca2:\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\n      goto LAB_00109c0f;\n    }" { (labeled_statement "LAB_00108ca2:\n      iVar2 = cmdline_check_unavailable(3,p);" statement_identifier : (expression_statement "iVar2 = cmdline_check_unavailable(3,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(3,p)" identifier = (call_expression "cmdline_check_unavailable(3,p)" identifier (argument_list "(3,p)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar2 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (compound_statement "{\n        cmdline_save_param(p,value,0);\n        return 1;\n      }" { (expression_statement "cmdline_save_param(p,value,0);" (call_expression "cmdline_save_param(p,value,0)" identifier (argument_list "(p,value,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00109c0f;" goto statement_identifier ;) })) (labeled_statement "LAB_00109dce:\n    iVar3 = strcmp(p,"-x");" statement_identifier : (expression_statement "iVar3 = strcmp(p,"-x");" (assignment_expression "iVar3 = strcmp(p,"-x")" identifier = (call_expression "strcmp(p,"-x")" identifier (argument_list "(p,"-x")" ( identifier , (string_literal ""-x"" " string_content ") )))) ;)) (if_statement "if (iVar3 != 0) goto LAB_00109de5;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109de5;" goto statement_identifier ;)) (if_statement "if (need_save < 0) {\n      return 1;\n    }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00108dff:\n    iVar2 = cmdline_check_unavailable(3,p);" statement_identifier : (expression_statement "iVar2 = cmdline_check_unavailable(3,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(3,p)" identifier = (call_expression "cmdline_check_unavailable(3,p)" identifier (argument_list "(3,p)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar2 != 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (compound_statement "{\n      cmdline_save_param(p,value,0);\n      return 1;\n    }" { (expression_statement "cmdline_save_param(p,value,0);" (call_expression "cmdline_save_param(p,value,0)" identifier (argument_list "(p,value,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109c49:\n    conf_set_int(conf,0x95,0);" statement_identifier : (expression_statement "conf_set_int(conf,0x95,0);" (call_expression "conf_set_int(conf,0x95,0)" identifier (argument_list "(conf,0x95,0)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar2 = strcmp(p,"-t");" (assignment_expression "iVar2 = strcmp(p,"-t")" identifier = (call_expression "strcmp(p,"-t")" identifier (argument_list "(p,"-t")" ( identifier , (string_literal ""-t"" " string_content ") )))) ;) (if_statement "if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\nLAB_00109c87:\n      conf_set_int(conf,0x16,0);\n      iVar2 = strcmp(p,"-T");\n      if (iVar2 == 0) {\n        iVar2 = cmdline_check_unavailable(3,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }\n      iVar3 = strcmp(p,"-N");\n      iVar2 = 1;\n      if (iVar3 == 0) goto LAB_00109ba0;\n    }\n    else {\n      iVar3 = strcmp(p,"-T");\n      iVar2 = 1;\n      if (iVar3 == 0) goto LAB_00109e21;\nLAB_00109b7b:\n      iVar3 = strcmp(p,"-N");\n      if (iVar3 == 0) {\n        if (need_save < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar2 = cmdline_check_unavailable(3,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        if (need_save != 0) {\n          cmdline_save_param(p,value,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\nLAB_00109c87:\n      conf_set_int(conf,0x16,0);\n      iVar2 = strcmp(p,"-T");\n      if (iVar2 == 0) {\n        iVar2 = cmdline_check_unavailable(3,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }\n      iVar3 = strcmp(p,"-N");\n      iVar2 = 1;\n      if (iVar3 == 0) goto LAB_00109ba0;\n    }" { (expression_statement "iVar2 = cmdline_check_unavailable(3,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(3,p)" identifier = (call_expression "cmdline_check_unavailable(3,p)" identifier (argument_list "(3,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109c87:\n      conf_set_int(conf,0x16,0);" statement_identifier : (expression_statement "conf_set_int(conf,0x16,0);" (call_expression "conf_set_int(conf,0x16,0)" identifier (argument_list "(conf,0x16,0)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar2 = strcmp(p,"-T");" (assignment_expression "iVar2 = strcmp(p,"-T")" identifier = (call_expression "strcmp(p,"-T")" identifier (argument_list "(p,"-T")" ( identifier , (string_literal ""-T"" " string_content ") )))) ;) (if_statement "if (iVar2 == 0) {\n        iVar2 = cmdline_check_unavailable(3,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar2 = cmdline_check_unavailable(3,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }" { (expression_statement "iVar2 = cmdline_check_unavailable(3,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(3,p)" identifier = (call_expression "cmdline_check_unavailable(3,p)" identifier (argument_list "(3,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n          return 1;\n        }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          return 1;\n        }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00109cc5;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp(p,"-N");" (assignment_expression "iVar3 = strcmp(p,"-N")" identifier = (call_expression "strcmp(p,"-N")" identifier (argument_list "(p,"-N")" ( identifier , (string_literal ""-N"" " string_content ") )))) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) goto LAB_00109ba0;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00109ba0;" goto statement_identifier ;)) }) (else_clause "else {\n      iVar3 = strcmp(p,"-T");\n      iVar2 = 1;\n      if (iVar3 == 0) goto LAB_00109e21;\nLAB_00109b7b:\n      iVar3 = strcmp(p,"-N");\n      if (iVar3 == 0) {\n        if (need_save < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar2 = cmdline_check_unavailable(3,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        if (need_save != 0) {\n          cmdline_save_param(p,value,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }\n    }" else (compound_statement "{\n      iVar3 = strcmp(p,"-T");\n      iVar2 = 1;\n      if (iVar3 == 0) goto LAB_00109e21;\nLAB_00109b7b:\n      iVar3 = strcmp(p,"-N");\n      if (iVar3 == 0) {\n        if (need_save < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar2 = cmdline_check_unavailable(3,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        if (need_save != 0) {\n          cmdline_save_param(p,value,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }\n    }" { (expression_statement "iVar3 = strcmp(p,"-T");" (assignment_expression "iVar3 = strcmp(p,"-T")" identifier = (call_expression "strcmp(p,"-T")" identifier (argument_list "(p,"-T")" ( identifier , (string_literal ""-T"" " string_content ") )))) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) goto LAB_00109e21;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00109e21;" goto statement_identifier ;)) (labeled_statement "LAB_00109b7b:\n      iVar3 = strcmp(p,"-N");" statement_identifier : (expression_statement "iVar3 = strcmp(p,"-N");" (assignment_expression "iVar3 = strcmp(p,"-N")" identifier = (call_expression "strcmp(p,"-N")" identifier (argument_list "(p,"-N")" ( identifier , (string_literal ""-N"" " string_content ") )))) ;)) (if_statement "if (iVar3 == 0) {\n        if (need_save < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar2 = cmdline_check_unavailable(3,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        if (need_save != 0) {\n          cmdline_save_param(p,value,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        if (need_save < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar2 = cmdline_check_unavailable(3,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        if (need_save != 0) {\n          cmdline_save_param(p,value,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }" { (if_statement "if (need_save < 0) {\n          return 1;\n        }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n          return 1;\n        }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109ba0:\n        iVar2 = cmdline_check_unavailable(3,p);" statement_identifier : (expression_statement "iVar2 = cmdline_check_unavailable(3,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(3,p)" identifier = (call_expression "cmdline_check_unavailable(3,p)" identifier (argument_list "(3,p)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar2 != 0) {\n          return 1;\n        }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          return 1;\n        }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (need_save != 0) {\n          cmdline_save_param(p,value,0);\n          return 1;\n        }" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (compound_statement "{\n          cmdline_save_param(p,value,0);\n          return 1;\n        }" { (expression_statement "cmdline_save_param(p,value,0);" (call_expression "cmdline_save_param(p,value,0)" identifier (argument_list "(p,value,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00109a6e;" goto statement_identifier ;) })) }))) (expression_statement "iVar3 = strcmp(p,"-C");" (assignment_expression "iVar3 = strcmp(p,"-C")" identifier = (call_expression "strcmp(p,"-C")" identifier (argument_list "(p,"-C")" ( identifier , (string_literal ""-C"" " string_content ") )))) ;) (if_statement "if (iVar3 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00108e8b:\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\nLAB_0010989e:\n      conf_set_int(conf,0x17,1);\n      iVar2 = strcmp(p,"-1");\n      if (iVar2 == 0) {\n        iVar2 = cmdline_check_unavailable(2,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }\n      iVar3 = strcmp(p,"-2");\n      iVar2 = 1;\n      if (iVar3 != 0) goto LAB_00109930;\n      goto LAB_00109b26;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00108e8b:\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\nLAB_0010989e:\n      conf_set_int(conf,0x17,1);\n      iVar2 = strcmp(p,"-1");\n      if (iVar2 == 0) {\n        iVar2 = cmdline_check_unavailable(2,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }\n      iVar3 = strcmp(p,"-2");\n      iVar2 = 1;\n      if (iVar3 != 0) goto LAB_00109930;\n      goto LAB_00109b26;\n    }" { (if_statement "if (need_save < 0) {\n        return 1;\n      }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00108e8b:\n      iVar2 = cmdline_check_unavailable(2,p);" statement_identifier : (expression_statement "iVar2 = cmdline_check_unavailable(2,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(2,p)" identifier = (call_expression "cmdline_check_unavailable(2,p)" identifier (argument_list "(2,p)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar2 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (compound_statement "{\n        cmdline_save_param(p,value,0);\n        return 1;\n      }" { (expression_statement "cmdline_save_param(p,value,0);" (call_expression "cmdline_save_param(p,value,0)" identifier (argument_list "(p,value,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_0010989e:\n      conf_set_int(conf,0x17,1);" statement_identifier : (expression_statement "conf_set_int(conf,0x17,1);" (call_expression "conf_set_int(conf,0x17,1)" identifier (argument_list "(conf,0x17,1)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar2 = strcmp(p,"-1");" (assignment_expression "iVar2 = strcmp(p,"-1")" identifier = (call_expression "strcmp(p,"-1")" identifier (argument_list "(p,"-1")" ( identifier , (string_literal ""-1"" " string_content ") )))) ;) (if_statement "if (iVar2 == 0) {\n        iVar2 = cmdline_check_unavailable(2,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar2 = cmdline_check_unavailable(2,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }" { (expression_statement "iVar2 = cmdline_check_unavailable(2,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(2,p)" identifier = (call_expression "cmdline_check_unavailable(2,p)" identifier (argument_list "(2,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n          return 1;\n        }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          return 1;\n        }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_001098d8;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp(p,"-2");" (assignment_expression "iVar3 = strcmp(p,"-2")" identifier = (call_expression "strcmp(p,"-2")" identifier (argument_list "(p,"-2")" ( identifier , (string_literal ""-2"" " string_content ") )))) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_00109930;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109930;" goto statement_identifier ;)) (goto_statement "goto LAB_00109b26;" goto statement_identifier ;) })) (labeled_statement "LAB_00109aea:\n    iVar3 = strcmp(p,"-1");" statement_identifier : (expression_statement "iVar3 = strcmp(p,"-1");" (assignment_expression "iVar3 = strcmp(p,"-1")" identifier = (call_expression "strcmp(p,"-1")" identifier (argument_list "(p,"-1")" ( identifier , (string_literal ""-1"" " string_content ") )))) ;)) (if_statement "if (iVar3 != 0) goto LAB_00109b01;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109b01;" goto statement_identifier ;)) (if_statement "if (need_save < 0) {\n      return 1;\n    }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00108ed1:\n    iVar2 = cmdline_check_unavailable(2,p);" statement_identifier : (expression_statement "iVar2 = cmdline_check_unavailable(2,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(2,p)" identifier = (call_expression "cmdline_check_unavailable(2,p)" identifier (argument_list "(2,p)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar2 != 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (compound_statement "{\n      cmdline_save_param(p,value,0);\n      return 1;\n    }" { (expression_statement "cmdline_save_param(p,value,0);" (call_expression "cmdline_save_param(p,value,0)" identifier (argument_list "(p,value,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_001098d8:\n    conf_set_int(conf,0x21,0);" statement_identifier : (expression_statement "conf_set_int(conf,0x21,0);" (call_expression "conf_set_int(conf,0x21,0)" identifier (argument_list "(conf,0x21,0)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar3 = strcmp(p,"-2");" (assignment_expression "iVar3 = strcmp(p,"-2")" identifier = (call_expression "strcmp(p,"-2")" identifier (argument_list "(p,"-2")" ( identifier , (string_literal ""-2"" " string_content ") )))) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_00109930;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109930;" goto statement_identifier ;)) (expression_statement "iVar2 = cmdline_check_unavailable(2,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(2,p)" identifier = (call_expression "cmdline_check_unavailable(2,p)" identifier (argument_list "(2,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109918:\n    conf_set_int(conf,0x21,3);" statement_identifier : (expression_statement "conf_set_int(conf,0x21,3);" (call_expression "conf_set_int(conf,0x21,3)" identifier (argument_list "(conf,0x21,3)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\nLAB_00108865:\n    bVar15 = false;\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b2ac;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar13 = false;\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\nLAB_0010889d:\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      bVar12 = need_save == 0;\n      if (!bVar12) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_001088cd;\n    }\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = (byte *)0x1440f1;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar13 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar13 && !bVar12) == bVar13) goto LAB_0010889d;\n    iVar3 = strcmp(p,"-nc");\n    bVar12 = iVar3 == 0;\n    if (bVar12) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_00109fa5;\n    }\nLAB_00108a01:\n    bVar15 = false;\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b2be;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_00109f54;\n    }\nLAB_0010a032:\n    bVar15 = false;\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b2c1;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) != bVar15) goto LAB_00108afa;\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,1);\n      return 2;\n    }\nLAB_00109749:\n    lVar7 = strtol(value,(char **)0x0,10);\n    conf_set_int(conf,1,(int)lVar7);\n    iVar2 = strcmp(p,"-pw");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\nLAB_00109ee5:\n      iVar2 = conf_get_int(conf,2);\n      if (iVar2 == 3) {\n        cmdline_password = dupstr(value);\n        uVar8 = 0xffffffffffffffff;\n        pcVar4 = value;\n        do {\n          if (uVar8 == 0) break;\n          uVar8 = uVar8 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (ulong)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        smemclr(value,~uVar8 - 1);\n      }\n      else {\n        cmdline_error("the -pw option can only be used with the SSH protocol");\n      }\n      iVar2 = strcmp(p,"-agent");\n      if (iVar2 != 0) {\n        iVar3 = strcmp(p,"-pagent");\n        iVar2 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_00108bf9;\n    }\n    iVar3 = strcmp(p,"-agent");\n    iVar2 = 2;\n    if (iVar3 == 0) goto LAB_00108bdc;\nLAB_00108ba4:\n    iVar3 = strcmp(p,"-pagent");\n    if (iVar3 == 0) goto LAB_00108bce;\nLAB_00108bb7:\n    iVar3 = strcmp(p,"-pageant");\n    if (iVar3 == 0) goto LAB_00108bce;\n    iVar3 = strcmp(p,"-noagent");\n    if ((iVar3 != 0) && (iVar3 = strcmp(p,"-nopagent"), iVar3 != 0)) goto LAB_00108d1b;\nLAB_00108d2e:\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00109e76:\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_00108c37:\n    conf_set_int(conf,0x1c,0);\n    iVar2 = strcmp(p,"-A");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_00109d88;\n    }\n    iVar2 = strcmp(p,"-a");\n    if (iVar2 != 0) {\n      iVar2 = 1;\nLAB_00108c7d:\n      iVar3 = strcmp(p,"-X");\n      if (iVar3 != 0) goto LAB_00109dce;\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_00108ca2;\n    }\nLAB_00108db9:\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_00109d25:\n    conf_set_int(conf,0x1d,0);\n    iVar2 = strcmp(p,"-X");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\nLAB_00109c0f:\n      conf_set_int(conf,0x95,1);\n      iVar2 = strcmp(p,"-x");\n      if (iVar2 == 0) {\n        iVar2 = cmdline_check_unavailable(3,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }\n      iVar3 = strcmp(p,"-t");\n      iVar2 = 1;\n      if (iVar3 != 0) goto LAB_00109dfc;\nLAB_00108e45:\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,1);\n        return 1;\n      }\n      goto LAB_00109c87;\n    }\n    iVar3 = strcmp(p,"-x");\n    iVar2 = 1;\n    if (iVar3 == 0) goto LAB_00108dff;\nLAB_00109de5:\n    iVar3 = strcmp(p,"-t");\n    if (iVar3 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_00108e45;\n    }\nLAB_00109dfc:\n    iVar3 = strcmp(p,"-T");\n    if (iVar3 != 0) goto LAB_00109b7b;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00109e21:\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,1);\n      return 1;\n    }\nLAB_00109cc5:\n    conf_set_int(conf,0x16,1);\n    iVar2 = strcmp(p,"-N");\n    if (iVar2 != 0) {\n      iVar3 = strcmp(p,"-C");\n      iVar2 = 1;\n      if (iVar3 == 0) goto LAB_00108e8b;\n      goto LAB_00109aea;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\nLAB_00109a6e:\n    conf_set_int(conf,0x2d,1);\n    iVar2 = strcmp(p,"-C");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_0010989e;\n    }\n    iVar3 = strcmp(p,"-1");\n    iVar2 = 1;\n    if (iVar3 == 0) goto LAB_00108ed1;\nLAB_00109b01:\n    iVar3 = strcmp(p,"-2");\n    if (iVar3 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00109b26:\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\n      goto LAB_00109918;\n    }\n  }" else (compound_statement "{\nLAB_00108865:\n    bVar15 = false;\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b2ac;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar13 = false;\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\nLAB_0010889d:\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      bVar12 = need_save == 0;\n      if (!bVar12) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_001088cd;\n    }\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = (byte *)0x1440f1;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar13 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar13 && !bVar12) == bVar13) goto LAB_0010889d;\n    iVar3 = strcmp(p,"-nc");\n    bVar12 = iVar3 == 0;\n    if (bVar12) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_00109fa5;\n    }\nLAB_00108a01:\n    bVar15 = false;\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b2be;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_00109f54;\n    }\nLAB_0010a032:\n    bVar15 = false;\n    lVar7 = 3;\n    pbVar9 = (byte *)p;\n    pbVar10 = &DAT_0013b2c1;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) != bVar15) goto LAB_00108afa;\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,1);\n      return 2;\n    }\nLAB_00109749:\n    lVar7 = strtol(value,(char **)0x0,10);\n    conf_set_int(conf,1,(int)lVar7);\n    iVar2 = strcmp(p,"-pw");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\nLAB_00109ee5:\n      iVar2 = conf_get_int(conf,2);\n      if (iVar2 == 3) {\n        cmdline_password = dupstr(value);\n        uVar8 = 0xffffffffffffffff;\n        pcVar4 = value;\n        do {\n          if (uVar8 == 0) break;\n          uVar8 = uVar8 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (ulong)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        smemclr(value,~uVar8 - 1);\n      }\n      else {\n        cmdline_error("the -pw option can only be used with the SSH protocol");\n      }\n      iVar2 = strcmp(p,"-agent");\n      if (iVar2 != 0) {\n        iVar3 = strcmp(p,"-pagent");\n        iVar2 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_00108bf9;\n    }\n    iVar3 = strcmp(p,"-agent");\n    iVar2 = 2;\n    if (iVar3 == 0) goto LAB_00108bdc;\nLAB_00108ba4:\n    iVar3 = strcmp(p,"-pagent");\n    if (iVar3 == 0) goto LAB_00108bce;\nLAB_00108bb7:\n    iVar3 = strcmp(p,"-pageant");\n    if (iVar3 == 0) goto LAB_00108bce;\n    iVar3 = strcmp(p,"-noagent");\n    if ((iVar3 != 0) && (iVar3 = strcmp(p,"-nopagent"), iVar3 != 0)) goto LAB_00108d1b;\nLAB_00108d2e:\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00109e76:\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_00108c37:\n    conf_set_int(conf,0x1c,0);\n    iVar2 = strcmp(p,"-A");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_00109d88;\n    }\n    iVar2 = strcmp(p,"-a");\n    if (iVar2 != 0) {\n      iVar2 = 1;\nLAB_00108c7d:\n      iVar3 = strcmp(p,"-X");\n      if (iVar3 != 0) goto LAB_00109dce;\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_00108ca2;\n    }\nLAB_00108db9:\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }\nLAB_00109d25:\n    conf_set_int(conf,0x1d,0);\n    iVar2 = strcmp(p,"-X");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\nLAB_00109c0f:\n      conf_set_int(conf,0x95,1);\n      iVar2 = strcmp(p,"-x");\n      if (iVar2 == 0) {\n        iVar2 = cmdline_check_unavailable(3,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }\n      iVar3 = strcmp(p,"-t");\n      iVar2 = 1;\n      if (iVar3 != 0) goto LAB_00109dfc;\nLAB_00108e45:\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,1);\n        return 1;\n      }\n      goto LAB_00109c87;\n    }\n    iVar3 = strcmp(p,"-x");\n    iVar2 = 1;\n    if (iVar3 == 0) goto LAB_00108dff;\nLAB_00109de5:\n    iVar3 = strcmp(p,"-t");\n    if (iVar3 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_00108e45;\n    }\nLAB_00109dfc:\n    iVar3 = strcmp(p,"-T");\n    if (iVar3 != 0) goto LAB_00109b7b;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00109e21:\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,1);\n      return 1;\n    }\nLAB_00109cc5:\n    conf_set_int(conf,0x16,1);\n    iVar2 = strcmp(p,"-N");\n    if (iVar2 != 0) {\n      iVar3 = strcmp(p,"-C");\n      iVar2 = 1;\n      if (iVar3 == 0) goto LAB_00108e8b;\n      goto LAB_00109aea;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 1;\n    }\nLAB_00109a6e:\n    conf_set_int(conf,0x2d,1);\n    iVar2 = strcmp(p,"-C");\n    if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_0010989e;\n    }\n    iVar3 = strcmp(p,"-1");\n    iVar2 = 1;\n    if (iVar3 == 0) goto LAB_00108ed1;\nLAB_00109b01:\n    iVar3 = strcmp(p,"-2");\n    if (iVar3 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00109b26:\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\n      goto LAB_00109918;\n    }\n  }" { (labeled_statement "LAB_00108865:\n    bVar15 = false;" statement_identifier : (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;)) (expression_statement "lVar7 = 3;" (assignment_expression "lVar7 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)p;" (assignment_expression "pbVar9 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar10 = &DAT_0013b2ac;" (assignment_expression "pbVar10 = &DAT_0013b2ac" identifier = (pointer_expression "&DAT_0013b2ac" & identifier)) ;) (do_statement "do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    }" { (if_statement "if (lVar7 == 0) break;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar10;" (assignment_expression "bVar15 = *pbVar9 < *pbVar10" identifier = (binary_expression "*pbVar9 < *pbVar10" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar10;" (assignment_expression "bVar12 = *pbVar9 == *pbVar10" identifier = (binary_expression "*pbVar9 == *pbVar10" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar9 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (expression_statement "bVar12 = (!bVar15 && !bVar12) == bVar15;" (assignment_expression "bVar12 = (!bVar15 && !bVar12) == bVar15" identifier = (binary_expression "(!bVar15 && !bVar12) == bVar15" (parenthesized_expression "(!bVar15 && !bVar12)" ( (binary_expression "!bVar15 && !bVar12" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar12) {\nLAB_0010889d:\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      bVar12 = need_save == 0;\n      if (!bVar12) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_001088cd;\n    }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\nLAB_0010889d:\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      bVar12 = need_save == 0;\n      if (!bVar12) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_001088cd;\n    }" { (labeled_statement "LAB_0010889d:\n      if (value == (char *)0x0) {\n        return -2;\n      }" statement_identifier : (if_statement "if (value == (char *)0x0) {\n        return -2;\n      }" if (parenthesized_expression "(value == (char *)0x0)" ( (binary_expression "value == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return -2;\n      }" { (return_statement "return -2;" return number_literal ;) }))) (if_statement "if (need_save < 0) {\n        return 2;\n      }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar2 = cmdline_check_unavailable(3,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(3,p)" identifier = (call_expression "cmdline_check_unavailable(3,p)" identifier (argument_list "(3,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n        return 2;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "bVar12 = need_save == 0;" (assignment_expression "bVar12 = need_save == 0" identifier = (binary_expression "need_save == 0" identifier == number_literal)) ;) (if_statement "if (!bVar12) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (compound_statement "{\n        cmdline_save_param(p,value,0);\n        return 2;\n      }" { (expression_statement "cmdline_save_param(p,value,0);" (call_expression "cmdline_save_param(p,value,0)" identifier (argument_list "(p,value,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (goto_statement "goto LAB_001088cd;" goto statement_identifier ;) })) (expression_statement "lVar7 = 3;" (assignment_expression "lVar7 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)p;" (assignment_expression "pbVar9 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar10 = (byte *)0x1440f1;" (assignment_expression "pbVar10 = (byte *)0x1440f1" identifier = (cast_expression "(byte *)0x1440f1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar13 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar13 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    }" { (if_statement "if (lVar7 == 0) break;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar9 < *pbVar10;" (assignment_expression "bVar13 = *pbVar9 < *pbVar10" identifier = (binary_expression "*pbVar9 < *pbVar10" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar10;" (assignment_expression "bVar12 = *pbVar9 == *pbVar10" identifier = (binary_expression "*pbVar9 == *pbVar10" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar9 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (if_statement "if ((!bVar13 && !bVar12) == bVar13) goto LAB_0010889d;" if (parenthesized_expression "((!bVar13 && !bVar12) == bVar13)" ( (binary_expression "(!bVar13 && !bVar12) == bVar13" (parenthesized_expression "(!bVar13 && !bVar12)" ( (binary_expression "!bVar13 && !bVar12" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_0010889d;" goto statement_identifier ;)) (expression_statement "iVar3 = strcmp(p,"-nc");" (assignment_expression "iVar3 = strcmp(p,"-nc")" identifier = (call_expression "strcmp(p,"-nc")" identifier (argument_list "(p,"-nc")" ( identifier , (string_literal ""-nc"" " string_content ") )))) ;) (expression_statement "bVar12 = iVar3 == 0;" (assignment_expression "bVar12 = iVar3 == 0" identifier = (binary_expression "iVar3 == 0" identifier == number_literal)) ;) (if_statement "if (bVar12) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_00109fa5;\n    }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_00109fa5;\n    }" { (if_statement "if (value == (char *)0x0) {\n        return -2;\n      }" if (parenthesized_expression "(value == (char *)0x0)" ( (binary_expression "value == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return -2;\n      }" { (return_statement "return -2;" return number_literal ;) })) (if_statement "if (need_save < 0) {\n        return 2;\n      }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar2 = cmdline_check_unavailable(3,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(3,p)" identifier = (call_expression "cmdline_check_unavailable(3,p)" identifier (argument_list "(3,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n        return 2;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (compound_statement "{\n        cmdline_save_param(p,value,0);\n        return 2;\n      }" { (expression_statement "cmdline_save_param(p,value,0);" (call_expression "cmdline_save_param(p,value,0)" identifier (argument_list "(p,value,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (goto_statement "goto LAB_00109fa5;" goto statement_identifier ;) })) (labeled_statement "LAB_00108a01:\n    bVar15 = false;" statement_identifier : (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;)) (expression_statement "lVar7 = 3;" (assignment_expression "lVar7 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)p;" (assignment_expression "pbVar9 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar10 = &DAT_0013b2be;" (assignment_expression "pbVar10 = &DAT_0013b2be" identifier = (pointer_expression "&DAT_0013b2be" & identifier)) ;) (do_statement "do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    }" { (if_statement "if (lVar7 == 0) break;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar10;" (assignment_expression "bVar15 = *pbVar9 < *pbVar10" identifier = (binary_expression "*pbVar9 < *pbVar10" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar10;" (assignment_expression "bVar12 = *pbVar9 == *pbVar10" identifier = (binary_expression "*pbVar9 == *pbVar10" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar9 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (expression_statement "bVar12 = (!bVar15 && !bVar12) == bVar15;" (assignment_expression "bVar12 = (!bVar15 && !bVar12) == bVar15" identifier = (binary_expression "(!bVar15 && !bVar12) == bVar15" (parenthesized_expression "(!bVar15 && !bVar12)" ( (binary_expression "!bVar15 && !bVar12" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar12) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_00109f54;\n    }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_00109f54;\n    }" { (if_statement "if (value == (char *)0x0) {\n        return -2;\n      }" if (parenthesized_expression "(value == (char *)0x0)" ( (binary_expression "value == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return -2;\n      }" { (return_statement "return -2;" return number_literal ;) })) (if_statement "if (need_save < 0) {\n        return 2;\n      }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar2 = cmdline_check_unavailable(3,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(3,p)" identifier = (call_expression "cmdline_check_unavailable(3,p)" identifier (argument_list "(3,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n        return 2;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (compound_statement "{\n        cmdline_save_param(p,value,0);\n        return 2;\n      }" { (expression_statement "cmdline_save_param(p,value,0);" (call_expression "cmdline_save_param(p,value,0)" identifier (argument_list "(p,value,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (goto_statement "goto LAB_00109f54;" goto statement_identifier ;) })) (labeled_statement "LAB_0010a032:\n    bVar15 = false;" statement_identifier : (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;)) (expression_statement "lVar7 = 3;" (assignment_expression "lVar7 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)p;" (assignment_expression "pbVar9 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar10 = &DAT_0013b2c1;" (assignment_expression "pbVar10 = &DAT_0013b2c1" identifier = (pointer_expression "&DAT_0013b2c1" & identifier)) ;) (do_statement "do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar15 = *pbVar9 < *pbVar10;\n      bVar12 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;\n      pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;\n    }" { (if_statement "if (lVar7 == 0) break;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar10;" (assignment_expression "bVar15 = *pbVar9 < *pbVar10" identifier = (binary_expression "*pbVar9 < *pbVar10" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar10;" (assignment_expression "bVar12 = *pbVar9 == *pbVar10" identifier = (binary_expression "*pbVar9 == *pbVar10" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar9 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (if_statement "if ((!bVar15 && !bVar12) != bVar15) goto LAB_00108afa;" if (parenthesized_expression "((!bVar15 && !bVar12) != bVar15)" ( (binary_expression "(!bVar15 && !bVar12) != bVar15" (parenthesized_expression "(!bVar15 && !bVar12)" ( (binary_expression "!bVar15 && !bVar12" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_00108afa;" goto statement_identifier ;)) (if_statement "if (value == (char *)0x0) {\n      return -2;\n    }" if (parenthesized_expression "(value == (char *)0x0)" ( (binary_expression "value == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return -2;\n    }" { (return_statement "return -2;" return number_literal ;) })) (if_statement "if (need_save < 0) {\n      return 2;\n    }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar2 = cmdline_check_unavailable(2,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(2,p)" identifier = (call_expression "cmdline_check_unavailable(2,p)" identifier (argument_list "(2,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n      return 2;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (need_save != 0) {\n      cmdline_save_param(p,value,1);\n      return 2;\n    }" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (compound_statement "{\n      cmdline_save_param(p,value,1);\n      return 2;\n    }" { (expression_statement "cmdline_save_param(p,value,1);" (call_expression "cmdline_save_param(p,value,1)" identifier (argument_list "(p,value,1)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_00109749:\n    lVar7 = strtol(value,(char **)0x0,10);" statement_identifier : (expression_statement "lVar7 = strtol(value,(char **)0x0,10);" (assignment_expression "lVar7 = strtol(value,(char **)0x0,10)" identifier = (call_expression "strtol(value,(char **)0x0,10)" identifier (argument_list "(value,(char **)0x0,10)" ( identifier , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , number_literal )))) ;)) (expression_statement "conf_set_int(conf,1,(int)lVar7);" (call_expression "conf_set_int(conf,1,(int)lVar7)" identifier (argument_list "(conf,1,(int)lVar7)" ( identifier , number_literal , (cast_expression "(int)lVar7" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "iVar2 = strcmp(p,"-pw");" (assignment_expression "iVar2 = strcmp(p,"-pw")" identifier = (call_expression "strcmp(p,"-pw")" identifier (argument_list "(p,"-pw")" ( identifier , (string_literal ""-pw"" " string_content ") )))) ;) (if_statement "if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\nLAB_00109ee5:\n      iVar2 = conf_get_int(conf,2);\n      if (iVar2 == 3) {\n        cmdline_password = dupstr(value);\n        uVar8 = 0xffffffffffffffff;\n        pcVar4 = value;\n        do {\n          if (uVar8 == 0) break;\n          uVar8 = uVar8 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (ulong)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        smemclr(value,~uVar8 - 1);\n      }\n      else {\n        cmdline_error("the -pw option can only be used with the SSH protocol");\n      }\n      iVar2 = strcmp(p,"-agent");\n      if (iVar2 != 0) {\n        iVar3 = strcmp(p,"-pagent");\n        iVar2 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_00108bf9;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\nLAB_00109ee5:\n      iVar2 = conf_get_int(conf,2);\n      if (iVar2 == 3) {\n        cmdline_password = dupstr(value);\n        uVar8 = 0xffffffffffffffff;\n        pcVar4 = value;\n        do {\n          if (uVar8 == 0) break;\n          uVar8 = uVar8 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (ulong)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        smemclr(value,~uVar8 - 1);\n      }\n      else {\n        cmdline_error("the -pw option can only be used with the SSH protocol");\n      }\n      iVar2 = strcmp(p,"-agent");\n      if (iVar2 != 0) {\n        iVar3 = strcmp(p,"-pagent");\n        iVar2 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_00108bf9;\n    }" { (expression_statement "iVar2 = cmdline_check_unavailable(2,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(2,p)" identifier = (call_expression "cmdline_check_unavailable(2,p)" identifier (argument_list "(2,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n        return 2;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_00109ee5:\n      iVar2 = conf_get_int(conf,2);" statement_identifier : (expression_statement "iVar2 = conf_get_int(conf,2);" (assignment_expression "iVar2 = conf_get_int(conf,2)" identifier = (call_expression "conf_get_int(conf,2)" identifier (argument_list "(conf,2)" ( identifier , number_literal )))) ;)) (if_statement "if (iVar2 == 3) {\n        cmdline_password = dupstr(value);\n        uVar8 = 0xffffffffffffffff;\n        pcVar4 = value;\n        do {\n          if (uVar8 == 0) break;\n          uVar8 = uVar8 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (ulong)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        smemclr(value,~uVar8 - 1);\n      }\n      else {\n        cmdline_error("the -pw option can only be used with the SSH protocol");\n      }" if (parenthesized_expression "(iVar2 == 3)" ( (binary_expression "iVar2 == 3" identifier == number_literal) )) (compound_statement "{\n        cmdline_password = dupstr(value);\n        uVar8 = 0xffffffffffffffff;\n        pcVar4 = value;\n        do {\n          if (uVar8 == 0) break;\n          uVar8 = uVar8 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (ulong)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        smemclr(value,~uVar8 - 1);\n      }" { (expression_statement "cmdline_password = dupstr(value);" (assignment_expression "cmdline_password = dupstr(value)" identifier = (call_expression "dupstr(value)" identifier (argument_list "(value)" ( identifier )))) ;) (expression_statement "uVar8 = 0xffffffffffffffff;" (assignment_expression "uVar8 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar4 = value;" (assignment_expression "pcVar4 = value" identifier = identifier) ;) (do_statement "do {\n          if (uVar8 == 0) break;\n          uVar8 = uVar8 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (ulong)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');" do (compound_statement "{\n          if (uVar8 == 0) break;\n          uVar8 = uVar8 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (ulong)bVar17 * -2 + 1;\n        }" { (if_statement "if (uVar8 == 0) break;" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar8 = uVar8 - 1;" (assignment_expression "uVar8 = uVar8 - 1" identifier = (binary_expression "uVar8 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar4;" (assignment_expression "cVar1 = *pcVar4" identifier = (pointer_expression "*pcVar4" * identifier)) ;) (expression_statement "pcVar4 = pcVar4 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar4 = pcVar4 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar4 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar4 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "smemclr(value,~uVar8 - 1);" (call_expression "smemclr(value,~uVar8 - 1)" identifier (argument_list "(value,~uVar8 - 1)" ( identifier , (binary_expression "~uVar8 - 1" (unary_expression "~uVar8" ~ identifier) - number_literal) ))) ;) }) (else_clause "else {\n        cmdline_error("the -pw option can only be used with the SSH protocol");\n      }" else (compound_statement "{\n        cmdline_error("the -pw option can only be used with the SSH protocol");\n      }" { (expression_statement "cmdline_error("the -pw option can only be used with the SSH protocol");" (call_expression "cmdline_error("the -pw option can only be used with the SSH protocol")" identifier (argument_list "("the -pw option can only be used with the SSH protocol")" ( (string_literal ""the -pw option can only be used with the SSH protocol"" " string_content ") ))) ;) }))) (expression_statement "iVar2 = strcmp(p,"-agent");" (assignment_expression "iVar2 = strcmp(p,"-agent")" identifier = (call_expression "strcmp(p,"-agent")" identifier (argument_list "(p,"-agent")" ( identifier , (string_literal ""-agent"" " string_content ") )))) ;) (if_statement "if (iVar2 != 0) {\n        iVar3 = strcmp(p,"-pagent");\n        iVar2 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar3 = strcmp(p,"-pagent");\n        iVar2 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }" { (expression_statement "iVar3 = strcmp(p,"-pagent");" (assignment_expression "iVar3 = strcmp(p,"-pagent")" identifier = (call_expression "strcmp(p,"-pagent")" identifier (argument_list "(p,"-pagent")" ( identifier , (string_literal ""-pagent"" " string_content ") )))) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_00108bb7;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00108bb7;" goto statement_identifier ;)) (goto_statement "goto LAB_00108bdc;" goto statement_identifier ;) })) (expression_statement "iVar2 = cmdline_check_unavailable(2,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(2,p)" identifier = (call_expression "cmdline_check_unavailable(2,p)" identifier (argument_list "(2,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00108bf9;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp(p,"-agent");" (assignment_expression "iVar3 = strcmp(p,"-agent")" identifier = (call_expression "strcmp(p,"-agent")" identifier (argument_list "(p,"-agent")" ( identifier , (string_literal ""-agent"" " string_content ") )))) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) goto LAB_00108bdc;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00108bdc;" goto statement_identifier ;)) (labeled_statement "LAB_00108ba4:\n    iVar3 = strcmp(p,"-pagent");" statement_identifier : (expression_statement "iVar3 = strcmp(p,"-pagent");" (assignment_expression "iVar3 = strcmp(p,"-pagent")" identifier = (call_expression "strcmp(p,"-pagent")" identifier (argument_list "(p,"-pagent")" ( identifier , (string_literal ""-pagent"" " string_content ") )))) ;)) (if_statement "if (iVar3 == 0) goto LAB_00108bce;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00108bce;" goto statement_identifier ;)) (labeled_statement "LAB_00108bb7:\n    iVar3 = strcmp(p,"-pageant");" statement_identifier : (expression_statement "iVar3 = strcmp(p,"-pageant");" (assignment_expression "iVar3 = strcmp(p,"-pageant")" identifier = (call_expression "strcmp(p,"-pageant")" identifier (argument_list "(p,"-pageant")" ( identifier , (string_literal ""-pageant"" " string_content ") )))) ;)) (if_statement "if (iVar3 == 0) goto LAB_00108bce;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00108bce;" goto statement_identifier ;)) (expression_statement "iVar3 = strcmp(p,"-noagent");" (assignment_expression "iVar3 = strcmp(p,"-noagent")" identifier = (call_expression "strcmp(p,"-noagent")" identifier (argument_list "(p,"-noagent")" ( identifier , (string_literal ""-noagent"" " string_content ") )))) ;) (if_statement "if ((iVar3 != 0) && (iVar3 = strcmp(p,"-nopagent"), iVar3 != 0)) goto LAB_00108d1b;" if (parenthesized_expression "((iVar3 != 0) && (iVar3 = strcmp(p,"-nopagent"), iVar3 != 0))" ( (binary_expression "(iVar3 != 0) && (iVar3 = strcmp(p,"-nopagent"), iVar3 != 0)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar3 = strcmp(p,"-nopagent"), iVar3 != 0)" ( (comma_expression "iVar3 = strcmp(p,"-nopagent"), iVar3 != 0" (assignment_expression "iVar3 = strcmp(p,"-nopagent")" identifier = (call_expression "strcmp(p,"-nopagent")" identifier (argument_list "(p,"-nopagent")" ( identifier , (string_literal ""-nopagent"" " string_content ") )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00108d1b;" goto statement_identifier ;)) (labeled_statement "LAB_00108d2e:\n    if (need_save < 0) {\n      return 1;\n    }" statement_identifier : (if_statement "if (need_save < 0) {\n      return 1;\n    }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) }))) (labeled_statement "LAB_00109e76:\n    iVar2 = cmdline_check_unavailable(2,p);" statement_identifier : (expression_statement "iVar2 = cmdline_check_unavailable(2,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(2,p)" identifier = (call_expression "cmdline_check_unavailable(2,p)" identifier (argument_list "(2,p)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar2 != 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (compound_statement "{\n      cmdline_save_param(p,value,0);\n      return 1;\n    }" { (expression_statement "cmdline_save_param(p,value,0);" (call_expression "cmdline_save_param(p,value,0)" identifier (argument_list "(p,value,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00108c37:\n    conf_set_int(conf,0x1c,0);" statement_identifier : (expression_statement "conf_set_int(conf,0x1c,0);" (call_expression "conf_set_int(conf,0x1c,0)" identifier (argument_list "(conf,0x1c,0)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar2 = strcmp(p,"-A");" (assignment_expression "iVar2 = strcmp(p,"-A")" identifier = (call_expression "strcmp(p,"-A")" identifier (argument_list "(p,"-A")" ( identifier , (string_literal ""-A"" " string_content ") )))) ;) (if_statement "if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_00109d88;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_00109d88;\n    }" { (expression_statement "iVar2 = cmdline_check_unavailable(3,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(3,p)" identifier = (call_expression "cmdline_check_unavailable(3,p)" identifier (argument_list "(3,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00109d88;" goto statement_identifier ;) })) (expression_statement "iVar2 = strcmp(p,"-a");" (assignment_expression "iVar2 = strcmp(p,"-a")" identifier = (call_expression "strcmp(p,"-a")" identifier (argument_list "(p,"-a")" ( identifier , (string_literal ""-a"" " string_content ") )))) ;) (if_statement "if (iVar2 != 0) {\n      iVar2 = 1;\nLAB_00108c7d:\n      iVar3 = strcmp(p,"-X");\n      if (iVar3 != 0) goto LAB_00109dce;\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_00108ca2;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar2 = 1;\nLAB_00108c7d:\n      iVar3 = strcmp(p,"-X");\n      if (iVar3 != 0) goto LAB_00109dce;\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_00108ca2;\n    }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00108c7d:\n      iVar3 = strcmp(p,"-X");" statement_identifier : (expression_statement "iVar3 = strcmp(p,"-X");" (assignment_expression "iVar3 = strcmp(p,"-X")" identifier = (call_expression "strcmp(p,"-X")" identifier (argument_list "(p,"-X")" ( identifier , (string_literal ""-X"" " string_content ") )))) ;)) (if_statement "if (iVar3 != 0) goto LAB_00109dce;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109dce;" goto statement_identifier ;)) (if_statement "if (need_save < 0) {\n        return 1;\n      }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00108ca2;" goto statement_identifier ;) })) (labeled_statement "LAB_00108db9:\n    iVar2 = cmdline_check_unavailable(3,p);" statement_identifier : (expression_statement "iVar2 = cmdline_check_unavailable(3,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(3,p)" identifier = (call_expression "cmdline_check_unavailable(3,p)" identifier (argument_list "(3,p)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar2 != 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 1;\n    }" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (compound_statement "{\n      cmdline_save_param(p,value,0);\n      return 1;\n    }" { (expression_statement "cmdline_save_param(p,value,0);" (call_expression "cmdline_save_param(p,value,0)" identifier (argument_list "(p,value,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109d25:\n    conf_set_int(conf,0x1d,0);" statement_identifier : (expression_statement "conf_set_int(conf,0x1d,0);" (call_expression "conf_set_int(conf,0x1d,0)" identifier (argument_list "(conf,0x1d,0)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar2 = strcmp(p,"-X");" (assignment_expression "iVar2 = strcmp(p,"-X")" identifier = (call_expression "strcmp(p,"-X")" identifier (argument_list "(p,"-X")" ( identifier , (string_literal ""-X"" " string_content ") )))) ;) (if_statement "if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\nLAB_00109c0f:\n      conf_set_int(conf,0x95,1);\n      iVar2 = strcmp(p,"-x");\n      if (iVar2 == 0) {\n        iVar2 = cmdline_check_unavailable(3,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }\n      iVar3 = strcmp(p,"-t");\n      iVar2 = 1;\n      if (iVar3 != 0) goto LAB_00109dfc;\nLAB_00108e45:\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,1);\n        return 1;\n      }\n      goto LAB_00109c87;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\nLAB_00109c0f:\n      conf_set_int(conf,0x95,1);\n      iVar2 = strcmp(p,"-x");\n      if (iVar2 == 0) {\n        iVar2 = cmdline_check_unavailable(3,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }\n      iVar3 = strcmp(p,"-t");\n      iVar2 = 1;\n      if (iVar3 != 0) goto LAB_00109dfc;\nLAB_00108e45:\n      iVar2 = cmdline_check_unavailable(3,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,1);\n        return 1;\n      }\n      goto LAB_00109c87;\n    }" { (expression_statement "iVar2 = cmdline_check_unavailable(3,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(3,p)" identifier = (call_expression "cmdline_check_unavailable(3,p)" identifier (argument_list "(3,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109c0f:\n      conf_set_int(conf,0x95,1);" statement_identifier : (expression_statement "conf_set_int(conf,0x95,1);" (call_expression "conf_set_int(conf,0x95,1)" identifier (argument_list "(conf,0x95,1)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar2 = strcmp(p,"-x");" (assignment_expression "iVar2 = strcmp(p,"-x")" identifier = (call_expression "strcmp(p,"-x")" identifier (argument_list "(p,"-x")" ( identifier , (string_literal ""-x"" " string_content ") )))) ;) (if_statement "if (iVar2 == 0) {\n        iVar2 = cmdline_check_unavailable(3,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar2 = cmdline_check_unavailable(3,p);\n        if (iVar2 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }" { (expression_statement "iVar2 = cmdline_check_unavailable(3,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(3,p)" identifier = (call_expression "cmdline_check_unavailable(3,p)" identifier (argument_list "(3,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n          return 1;\n        }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          return 1;\n        }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00109c49;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp(p,"-t");" (assignment_expression "iVar3 = strcmp(p,"-t")" identifier = (call_expression "strcmp(p,"-t")" identifier (argument_list "(p,"-t")" ( identifier , (string_literal ""-t"" " string_content ") )))) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_00109dfc;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109dfc;" goto statement_identifier ;)) (labeled_statement "LAB_00108e45:\n      iVar2 = cmdline_check_unavailable(3,p);" statement_identifier : (expression_statement "iVar2 = cmdline_check_unavailable(3,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(3,p)" identifier = (call_expression "cmdline_check_unavailable(3,p)" identifier (argument_list "(3,p)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar2 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (need_save != 0) {\n        cmdline_save_param(p,value,1);\n        return 1;\n      }" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (compound_statement "{\n        cmdline_save_param(p,value,1);\n        return 1;\n      }" { (expression_statement "cmdline_save_param(p,value,1);" (call_expression "cmdline_save_param(p,value,1)" identifier (argument_list "(p,value,1)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00109c87;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp(p,"-x");" (assignment_expression "iVar3 = strcmp(p,"-x")" identifier = (call_expression "strcmp(p,"-x")" identifier (argument_list "(p,"-x")" ( identifier , (string_literal ""-x"" " string_content ") )))) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) goto LAB_00108dff;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00108dff;" goto statement_identifier ;)) (labeled_statement "LAB_00109de5:\n    iVar3 = strcmp(p,"-t");" statement_identifier : (expression_statement "iVar3 = strcmp(p,"-t");" (assignment_expression "iVar3 = strcmp(p,"-t")" identifier = (call_expression "strcmp(p,"-t")" identifier (argument_list "(p,"-t")" ( identifier , (string_literal ""-t"" " string_content ") )))) ;)) (if_statement "if (iVar3 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_00108e45;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_00108e45;\n    }" { (if_statement "if (need_save < 0) {\n        return 1;\n      }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00108e45;" goto statement_identifier ;) })) (labeled_statement "LAB_00109dfc:\n    iVar3 = strcmp(p,"-T");" statement_identifier : (expression_statement "iVar3 = strcmp(p,"-T");" (assignment_expression "iVar3 = strcmp(p,"-T")" identifier = (call_expression "strcmp(p,"-T")" identifier (argument_list "(p,"-T")" ( identifier , (string_literal ""-T"" " string_content ") )))) ;)) (if_statement "if (iVar3 != 0) goto LAB_00109b7b;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109b7b;" goto statement_identifier ;)) (if_statement "if (need_save < 0) {\n      return 1;\n    }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109e21:\n    iVar2 = cmdline_check_unavailable(3,p);" statement_identifier : (expression_statement "iVar2 = cmdline_check_unavailable(3,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(3,p)" identifier = (call_expression "cmdline_check_unavailable(3,p)" identifier (argument_list "(3,p)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar2 != 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (need_save != 0) {\n      cmdline_save_param(p,value,1);\n      return 1;\n    }" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (compound_statement "{\n      cmdline_save_param(p,value,1);\n      return 1;\n    }" { (expression_statement "cmdline_save_param(p,value,1);" (call_expression "cmdline_save_param(p,value,1)" identifier (argument_list "(p,value,1)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109cc5:\n    conf_set_int(conf,0x16,1);" statement_identifier : (expression_statement "conf_set_int(conf,0x16,1);" (call_expression "conf_set_int(conf,0x16,1)" identifier (argument_list "(conf,0x16,1)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar2 = strcmp(p,"-N");" (assignment_expression "iVar2 = strcmp(p,"-N")" identifier = (call_expression "strcmp(p,"-N")" identifier (argument_list "(p,"-N")" ( identifier , (string_literal ""-N"" " string_content ") )))) ;) (if_statement "if (iVar2 != 0) {\n      iVar3 = strcmp(p,"-C");\n      iVar2 = 1;\n      if (iVar3 == 0) goto LAB_00108e8b;\n      goto LAB_00109aea;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar3 = strcmp(p,"-C");\n      iVar2 = 1;\n      if (iVar3 == 0) goto LAB_00108e8b;\n      goto LAB_00109aea;\n    }" { (expression_statement "iVar3 = strcmp(p,"-C");" (assignment_expression "iVar3 = strcmp(p,"-C")" identifier = (call_expression "strcmp(p,"-C")" identifier (argument_list "(p,"-C")" ( identifier , (string_literal ""-C"" " string_content ") )))) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) goto LAB_00108e8b;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00108e8b;" goto statement_identifier ;)) (goto_statement "goto LAB_00109aea;" goto statement_identifier ;) })) (expression_statement "iVar2 = cmdline_check_unavailable(3,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(3,p)" identifier = (call_expression "cmdline_check_unavailable(3,p)" identifier (argument_list "(3,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109a6e:\n    conf_set_int(conf,0x2d,1);" statement_identifier : (expression_statement "conf_set_int(conf,0x2d,1);" (call_expression "conf_set_int(conf,0x2d,1)" identifier (argument_list "(conf,0x2d,1)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar2 = strcmp(p,"-C");" (assignment_expression "iVar2 = strcmp(p,"-C")" identifier = (call_expression "strcmp(p,"-C")" identifier (argument_list "(p,"-C")" ( identifier , (string_literal ""-C"" " string_content ") )))) ;) (if_statement "if (iVar2 == 0) {\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_0010989e;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      goto LAB_0010989e;\n    }" { (expression_statement "iVar2 = cmdline_check_unavailable(2,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(2,p)" identifier = (call_expression "cmdline_check_unavailable(2,p)" identifier (argument_list "(2,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_0010989e;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp(p,"-1");" (assignment_expression "iVar3 = strcmp(p,"-1")" identifier = (call_expression "strcmp(p,"-1")" identifier (argument_list "(p,"-1")" ( identifier , (string_literal ""-1"" " string_content ") )))) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) goto LAB_00108ed1;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00108ed1;" goto statement_identifier ;)) (labeled_statement "LAB_00109b01:\n    iVar3 = strcmp(p,"-2");" statement_identifier : (expression_statement "iVar3 = strcmp(p,"-2");" (assignment_expression "iVar3 = strcmp(p,"-2")" identifier = (call_expression "strcmp(p,"-2")" identifier (argument_list "(p,"-2")" ( identifier , (string_literal ""-2"" " string_content ") )))) ;)) (if_statement "if (iVar3 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00109b26:\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\n      goto LAB_00109918;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00109b26:\n      iVar2 = cmdline_check_unavailable(2,p);\n      if (iVar2 != 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\n      goto LAB_00109918;\n    }" { (if_statement "if (need_save < 0) {\n        return 1;\n      }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109b26:\n      iVar2 = cmdline_check_unavailable(2,p);" statement_identifier : (expression_statement "iVar2 = cmdline_check_unavailable(2,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(2,p)" identifier = (call_expression "cmdline_check_unavailable(2,p)" identifier (argument_list "(2,p)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar2 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 1;\n      }" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (compound_statement "{\n        cmdline_save_param(p,value,0);\n        return 1;\n      }" { (expression_statement "cmdline_save_param(p,value,0);" (call_expression "cmdline_save_param(p,value,0)" identifier (argument_list "(p,value,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00109918;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00109930:\n  iVar3 = strcmp(p,"-i");" statement_identifier : (expression_statement "iVar3 = strcmp(p,"-i");" (assignment_expression "iVar3 = strcmp(p,"-i")" identifier = (call_expression "strcmp(p,"-i")" identifier (argument_list "(p,"-i")" ( identifier , (string_literal ""-i"" " string_content ") )))) ;)) (if_statement "if (iVar3 == 0) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 2;\n    }\n    pFVar6 = filename_from_str(value);\n    conf_set_filename(conf,0x20,pFVar6);\n    filename_free(pFVar6);\n    iVar2 = strcmp(p,"-4");\n    if (iVar2 != 0) {\n      iVar3 = strcmp(p,"-ipv4");\n      iVar2 = 2;\n      if (iVar3 != 0) goto LAB_00109814;\n    }\nLAB_001099af:\n    conf_set_int(conf,3,1);\n    iVar3 = strcmp(p,"-6");\n    iVar2 = 1;\n    if (iVar3 == 0) goto LAB_001099de;\nLAB_00109827:\n    iVar3 = strcmp(p,"-ipv6");\n    if (iVar3 == 0) goto LAB_0010983e;\n  }\n  else {\n    iVar3 = strcmp(p,"-4");\n    if ((iVar3 == 0) || (iVar3 = strcmp(p,"-ipv4"), iVar3 == 0)) {\n      if (need_save < 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,1);\n        return 1;\n      }\n      goto LAB_001099af;\n    }\nLAB_00109814:\n    iVar3 = strcmp(p,"-6");\n    if (iVar3 != 0) goto LAB_00109827;\nLAB_0010983e:\n    if (need_save < 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,1);\n      return 1;\n    }\nLAB_001099de:\n    conf_set_int(conf,3,2);\n    iVar2 = 1;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 2;\n    }\n    pFVar6 = filename_from_str(value);\n    conf_set_filename(conf,0x20,pFVar6);\n    filename_free(pFVar6);\n    iVar2 = strcmp(p,"-4");\n    if (iVar2 != 0) {\n      iVar3 = strcmp(p,"-ipv4");\n      iVar2 = 2;\n      if (iVar3 != 0) goto LAB_00109814;\n    }\nLAB_001099af:\n    conf_set_int(conf,3,1);\n    iVar3 = strcmp(p,"-6");\n    iVar2 = 1;\n    if (iVar3 == 0) goto LAB_001099de;\nLAB_00109827:\n    iVar3 = strcmp(p,"-ipv6");\n    if (iVar3 == 0) goto LAB_0010983e;\n  }" { (if_statement "if (value == (char *)0x0) {\n      return -2;\n    }" if (parenthesized_expression "(value == (char *)0x0)" ( (binary_expression "value == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return -2;\n    }" { (return_statement "return -2;" return number_literal ;) })) (if_statement "if (need_save < 0) {\n      return 2;\n    }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar2 = cmdline_check_unavailable(2,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(2,p)" identifier = (call_expression "cmdline_check_unavailable(2,p)" identifier (argument_list "(2,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n      return 2;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 2;\n    }" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (compound_statement "{\n      cmdline_save_param(p,value,0);\n      return 2;\n    }" { (expression_statement "cmdline_save_param(p,value,0);" (call_expression "cmdline_save_param(p,value,0)" identifier (argument_list "(p,value,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (expression_statement "pFVar6 = filename_from_str(value);" (assignment_expression "pFVar6 = filename_from_str(value)" identifier = (call_expression "filename_from_str(value)" identifier (argument_list "(value)" ( identifier )))) ;) (expression_statement "conf_set_filename(conf,0x20,pFVar6);" (call_expression "conf_set_filename(conf,0x20,pFVar6)" identifier (argument_list "(conf,0x20,pFVar6)" ( identifier , number_literal , identifier ))) ;) (expression_statement "filename_free(pFVar6);" (call_expression "filename_free(pFVar6)" identifier (argument_list "(pFVar6)" ( identifier ))) ;) (expression_statement "iVar2 = strcmp(p,"-4");" (assignment_expression "iVar2 = strcmp(p,"-4")" identifier = (call_expression "strcmp(p,"-4")" identifier (argument_list "(p,"-4")" ( identifier , (string_literal ""-4"" " string_content ") )))) ;) (if_statement "if (iVar2 != 0) {\n      iVar3 = strcmp(p,"-ipv4");\n      iVar2 = 2;\n      if (iVar3 != 0) goto LAB_00109814;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar3 = strcmp(p,"-ipv4");\n      iVar2 = 2;\n      if (iVar3 != 0) goto LAB_00109814;\n    }" { (expression_statement "iVar3 = strcmp(p,"-ipv4");" (assignment_expression "iVar3 = strcmp(p,"-ipv4")" identifier = (call_expression "strcmp(p,"-ipv4")" identifier (argument_list "(p,"-ipv4")" ( identifier , (string_literal ""-ipv4"" " string_content ") )))) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_00109814;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109814;" goto statement_identifier ;)) })) (labeled_statement "LAB_001099af:\n    conf_set_int(conf,3,1);" statement_identifier : (expression_statement "conf_set_int(conf,3,1);" (call_expression "conf_set_int(conf,3,1)" identifier (argument_list "(conf,3,1)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar3 = strcmp(p,"-6");" (assignment_expression "iVar3 = strcmp(p,"-6")" identifier = (call_expression "strcmp(p,"-6")" identifier (argument_list "(p,"-6")" ( identifier , (string_literal ""-6"" " string_content ") )))) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) goto LAB_001099de;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001099de;" goto statement_identifier ;)) (labeled_statement "LAB_00109827:\n    iVar3 = strcmp(p,"-ipv6");" statement_identifier : (expression_statement "iVar3 = strcmp(p,"-ipv6");" (assignment_expression "iVar3 = strcmp(p,"-ipv6")" identifier = (call_expression "strcmp(p,"-ipv6")" identifier (argument_list "(p,"-ipv6")" ( identifier , (string_literal ""-ipv6"" " string_content ") )))) ;)) (if_statement "if (iVar3 == 0) goto LAB_0010983e;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0010983e;" goto statement_identifier ;)) }) (else_clause "else {\n    iVar3 = strcmp(p,"-4");\n    if ((iVar3 == 0) || (iVar3 = strcmp(p,"-ipv4"), iVar3 == 0)) {\n      if (need_save < 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,1);\n        return 1;\n      }\n      goto LAB_001099af;\n    }\nLAB_00109814:\n    iVar3 = strcmp(p,"-6");\n    if (iVar3 != 0) goto LAB_00109827;\nLAB_0010983e:\n    if (need_save < 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,1);\n      return 1;\n    }\nLAB_001099de:\n    conf_set_int(conf,3,2);\n    iVar2 = 1;\n  }" else (compound_statement "{\n    iVar3 = strcmp(p,"-4");\n    if ((iVar3 == 0) || (iVar3 = strcmp(p,"-ipv4"), iVar3 == 0)) {\n      if (need_save < 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,1);\n        return 1;\n      }\n      goto LAB_001099af;\n    }\nLAB_00109814:\n    iVar3 = strcmp(p,"-6");\n    if (iVar3 != 0) goto LAB_00109827;\nLAB_0010983e:\n    if (need_save < 0) {\n      return 1;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,1);\n      return 1;\n    }\nLAB_001099de:\n    conf_set_int(conf,3,2);\n    iVar2 = 1;\n  }" { (expression_statement "iVar3 = strcmp(p,"-4");" (assignment_expression "iVar3 = strcmp(p,"-4")" identifier = (call_expression "strcmp(p,"-4")" identifier (argument_list "(p,"-4")" ( identifier , (string_literal ""-4"" " string_content ") )))) ;) (if_statement "if ((iVar3 == 0) || (iVar3 = strcmp(p,"-ipv4"), iVar3 == 0)) {\n      if (need_save < 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,1);\n        return 1;\n      }\n      goto LAB_001099af;\n    }" if (parenthesized_expression "((iVar3 == 0) || (iVar3 = strcmp(p,"-ipv4"), iVar3 == 0))" ( (binary_expression "(iVar3 == 0) || (iVar3 = strcmp(p,"-ipv4"), iVar3 == 0)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar3 = strcmp(p,"-ipv4"), iVar3 == 0)" ( (comma_expression "iVar3 = strcmp(p,"-ipv4"), iVar3 == 0" (assignment_expression "iVar3 = strcmp(p,"-ipv4")" identifier = (call_expression "strcmp(p,"-ipv4")" identifier (argument_list "(p,"-ipv4")" ( identifier , (string_literal ""-ipv4"" " string_content ") )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      if (need_save < 0) {\n        return 1;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,1);\n        return 1;\n      }\n      goto LAB_001099af;\n    }" { (if_statement "if (need_save < 0) {\n        return 1;\n      }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (need_save != 0) {\n        cmdline_save_param(p,value,1);\n        return 1;\n      }" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (compound_statement "{\n        cmdline_save_param(p,value,1);\n        return 1;\n      }" { (expression_statement "cmdline_save_param(p,value,1);" (call_expression "cmdline_save_param(p,value,1)" identifier (argument_list "(p,value,1)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_001099af;" goto statement_identifier ;) })) (labeled_statement "LAB_00109814:\n    iVar3 = strcmp(p,"-6");" statement_identifier : (expression_statement "iVar3 = strcmp(p,"-6");" (assignment_expression "iVar3 = strcmp(p,"-6")" identifier = (call_expression "strcmp(p,"-6")" identifier (argument_list "(p,"-6")" ( identifier , (string_literal ""-6"" " string_content ") )))) ;)) (if_statement "if (iVar3 != 0) goto LAB_00109827;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109827;" goto statement_identifier ;)) (labeled_statement "LAB_0010983e:\n    if (need_save < 0) {\n      return 1;\n    }" statement_identifier : (if_statement "if (need_save < 0) {\n      return 1;\n    }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) }))) (if_statement "if (need_save != 0) {\n      cmdline_save_param(p,value,1);\n      return 1;\n    }" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (compound_statement "{\n      cmdline_save_param(p,value,1);\n      return 1;\n    }" { (expression_statement "cmdline_save_param(p,value,1);" (call_expression "cmdline_save_param(p,value,1)" identifier (argument_list "(p,value,1)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_001099de:\n    conf_set_int(conf,3,2);" statement_identifier : (expression_statement "conf_set_int(conf,3,2);" (call_expression "conf_set_int(conf,3,2)" identifier (argument_list "(conf,3,2)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }))) (expression_statement "iVar3 = strcmp(p,"-sercfg");" (assignment_expression "iVar3 = strcmp(p,"-sercfg")" identifier = (call_expression "strcmp(p,"-sercfg")" identifier (argument_list "(p,"-sercfg")" ( identifier , (string_literal ""-sercfg"" " string_content ") )))) ;) (if_statement "if (iVar3 == 0) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,1);\n      return 2;\n    }\n    iVar2 = conf_get_int(conf,2);\n    pcVar4 = value;\n    if (iVar2 != 4) {\n      cmdline_error("the -sercfg option can only be used with the serial protocol");\n    }\n    for (; *pcVar4 != '\0'; pcVar4 = pcVar4 + (local_48 + iVar2)) {\n      pcVar5 = strchr(pcVar4,0x2c);\n      if (pcVar5 == (char *)0x0) {\n        lVar7 = -1;\n        pcVar5 = pcVar4;\n        do {\n          if (lVar7 == 0) break;\n          lVar7 = lVar7 + -1;\n          cVar1 = *pcVar5;\n          pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar2 = ~(uint)lVar7 - 1;\n        local_48 = 0;\n      }\n      else {\n        iVar2 = (int)pcVar5 - (int)pcVar4;\n        pcVar4[iVar2] = '\0';\n        local_48 = 1;\n      }\n      if (iVar2 == 1) {\n        cVar1 = *pcVar4;\n        switch(cVar1) {\n        case '1':\n        case '2':\n          conf_set_int(conf,0x3c,cVar1 * 2 + -0x60);\n          break;\n        default:\n          cmdline_error("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          conf_set_int(conf,0x3b,cVar1 + -0x30);\n          break;\n        case 'D':\n          conf_set_int(conf,0x3e,3);\n          break;\n        case 'N':\n          conf_set_int(conf,0x3e,0);\n          break;\n        case 'R':\n          conf_set_int(conf,0x3e,2);\n          break;\n        case 'X':\n          conf_set_int(conf,0x3e,1);\n          break;\n        case 'e':\n          conf_set_int(conf,0x3d,2);\n          break;\n        case 'm':\n          conf_set_int(conf,0x3d,3);\n          break;\n        case 'n':\n          conf_set_int(conf,0x3d,0);\n          break;\n        case 'o':\n          conf_set_int(conf,0x3d,1);\n          break;\n        case 's':\n          conf_set_int(conf,0x3d,4);\n        }\n      }\n      else if ((iVar2 == 3) && (iVar3 = strncmp(pcVar4,"1.5",3), iVar3 == 0)) {\n        conf_set_int(conf,0x3c,3);\n      }\n      else {\n        lVar7 = strtol(pcVar4,(char **)0x0,10);\n        if ((int)lVar7 == 0) {\n          cmdline_error("Unrecognised suboption \"-sercfg %s\"",pcVar4);\n        }\n        else {\n          conf_set_int(conf,0x3a,(int)lVar7);\n        }\n      }\n    }\n    iVar2 = strcmp(p,"-sessionlog");\n    if (iVar2 != 0) {\n      iVar3 = strcmp(p,"-sshlog");\n      iVar2 = 2;\n      if (iVar3 != 0) goto LAB_0010921f;\n      goto LAB_0010924d;\n    }\n    iVar2 = cmdline_check_unavailable(1,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\nLAB_001095f3:\n    pFVar6 = filename_from_str(value);\n    conf_set_filename(conf,0x77,pFVar6);\n    conf_set_int(conf,0x78,2);\n    filename_free(pFVar6);\n    iVar3 = strcmp(p,"-sshlog");\n    iVar2 = 2;\n    if (iVar3 != 0) {\nLAB_0010921f:\n      iVar3 = strcmp(p,"-sshrawlog");\n      if (iVar3 != 0) {\n        iVar3 = strcmp(p,"-proxycmd");\n        if (iVar3 != 0) {\n          return iVar2;\n        }\n        if (value == (char *)0x0) {\n          return -2;\n        }\n        if (need_save < 0) {\n          return 2;\n        }\n        iVar2 = cmdline_check_unavailable(2,p);\n        if (iVar2 != 0) {\n          return 2;\n        }\n        if (need_save != 0) {\n          cmdline_save_param(p,value,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }\n      goto LAB_00109236;\n    }\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n  }\n  else {\n    iVar3 = strcmp(p,"-sessionlog");\n    if (iVar3 == 0) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(1,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_001095f3;\n    }\n    iVar3 = strcmp(p,"-sshlog");\n    if (iVar3 != 0) goto LAB_0010921f;\nLAB_00109236:\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\nLAB_0010924d:\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 2;\n    }\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    iVar2 = cmdline_check_unavailable(3,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,1);\n      return 2;\n    }\n    iVar2 = conf_get_int(conf,2);\n    pcVar4 = value;\n    if (iVar2 != 4) {\n      cmdline_error("the -sercfg option can only be used with the serial protocol");\n    }\n    for (; *pcVar4 != '\0'; pcVar4 = pcVar4 + (local_48 + iVar2)) {\n      pcVar5 = strchr(pcVar4,0x2c);\n      if (pcVar5 == (char *)0x0) {\n        lVar7 = -1;\n        pcVar5 = pcVar4;\n        do {\n          if (lVar7 == 0) break;\n          lVar7 = lVar7 + -1;\n          cVar1 = *pcVar5;\n          pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar2 = ~(uint)lVar7 - 1;\n        local_48 = 0;\n      }\n      else {\n        iVar2 = (int)pcVar5 - (int)pcVar4;\n        pcVar4[iVar2] = '\0';\n        local_48 = 1;\n      }\n      if (iVar2 == 1) {\n        cVar1 = *pcVar4;\n        switch(cVar1) {\n        case '1':\n        case '2':\n          conf_set_int(conf,0x3c,cVar1 * 2 + -0x60);\n          break;\n        default:\n          cmdline_error("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          conf_set_int(conf,0x3b,cVar1 + -0x30);\n          break;\n        case 'D':\n          conf_set_int(conf,0x3e,3);\n          break;\n        case 'N':\n          conf_set_int(conf,0x3e,0);\n          break;\n        case 'R':\n          conf_set_int(conf,0x3e,2);\n          break;\n        case 'X':\n          conf_set_int(conf,0x3e,1);\n          break;\n        case 'e':\n          conf_set_int(conf,0x3d,2);\n          break;\n        case 'm':\n          conf_set_int(conf,0x3d,3);\n          break;\n        case 'n':\n          conf_set_int(conf,0x3d,0);\n          break;\n        case 'o':\n          conf_set_int(conf,0x3d,1);\n          break;\n        case 's':\n          conf_set_int(conf,0x3d,4);\n        }\n      }\n      else if ((iVar2 == 3) && (iVar3 = strncmp(pcVar4,"1.5",3), iVar3 == 0)) {\n        conf_set_int(conf,0x3c,3);\n      }\n      else {\n        lVar7 = strtol(pcVar4,(char **)0x0,10);\n        if ((int)lVar7 == 0) {\n          cmdline_error("Unrecognised suboption \"-sercfg %s\"",pcVar4);\n        }\n        else {\n          conf_set_int(conf,0x3a,(int)lVar7);\n        }\n      }\n    }\n    iVar2 = strcmp(p,"-sessionlog");\n    if (iVar2 != 0) {\n      iVar3 = strcmp(p,"-sshlog");\n      iVar2 = 2;\n      if (iVar3 != 0) goto LAB_0010921f;\n      goto LAB_0010924d;\n    }\n    iVar2 = cmdline_check_unavailable(1,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\nLAB_001095f3:\n    pFVar6 = filename_from_str(value);\n    conf_set_filename(conf,0x77,pFVar6);\n    conf_set_int(conf,0x78,2);\n    filename_free(pFVar6);\n    iVar3 = strcmp(p,"-sshlog");\n    iVar2 = 2;\n    if (iVar3 != 0) {\nLAB_0010921f:\n      iVar3 = strcmp(p,"-sshrawlog");\n      if (iVar3 != 0) {\n        iVar3 = strcmp(p,"-proxycmd");\n        if (iVar3 != 0) {\n          return iVar2;\n        }\n        if (value == (char *)0x0) {\n          return -2;\n        }\n        if (need_save < 0) {\n          return 2;\n        }\n        iVar2 = cmdline_check_unavailable(2,p);\n        if (iVar2 != 0) {\n          return 2;\n        }\n        if (need_save != 0) {\n          cmdline_save_param(p,value,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }\n      goto LAB_00109236;\n    }\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n  }" { (if_statement "if (value == (char *)0x0) {\n      return -2;\n    }" if (parenthesized_expression "(value == (char *)0x0)" ( (binary_expression "value == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return -2;\n    }" { (return_statement "return -2;" return number_literal ;) })) (if_statement "if (need_save < 0) {\n      return 2;\n    }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar2 = cmdline_check_unavailable(3,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(3,p)" identifier = (call_expression "cmdline_check_unavailable(3,p)" identifier (argument_list "(3,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n      return 2;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (need_save != 0) {\n      cmdline_save_param(p,value,1);\n      return 2;\n    }" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (compound_statement "{\n      cmdline_save_param(p,value,1);\n      return 2;\n    }" { (expression_statement "cmdline_save_param(p,value,1);" (call_expression "cmdline_save_param(p,value,1)" identifier (argument_list "(p,value,1)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar2 = conf_get_int(conf,2);" (assignment_expression "iVar2 = conf_get_int(conf,2)" identifier = (call_expression "conf_get_int(conf,2)" identifier (argument_list "(conf,2)" ( identifier , number_literal )))) ;) (expression_statement "pcVar4 = value;" (assignment_expression "pcVar4 = value" identifier = identifier) ;) (if_statement "if (iVar2 != 4) {\n      cmdline_error("the -sercfg option can only be used with the serial protocol");\n    }" if (parenthesized_expression "(iVar2 != 4)" ( (binary_expression "iVar2 != 4" identifier != number_literal) )) (compound_statement "{\n      cmdline_error("the -sercfg option can only be used with the serial protocol");\n    }" { (expression_statement "cmdline_error("the -sercfg option can only be used with the serial protocol");" (call_expression "cmdline_error("the -sercfg option can only be used with the serial protocol")" identifier (argument_list "("the -sercfg option can only be used with the serial protocol")" ( (string_literal ""the -sercfg option can only be used with the serial protocol"" " string_content ") ))) ;) })) (for_statement "for (; *pcVar4 != '\0'; pcVar4 = pcVar4 + (local_48 + iVar2)) {\n      pcVar5 = strchr(pcVar4,0x2c);\n      if (pcVar5 == (char *)0x0) {\n        lVar7 = -1;\n        pcVar5 = pcVar4;\n        do {\n          if (lVar7 == 0) break;\n          lVar7 = lVar7 + -1;\n          cVar1 = *pcVar5;\n          pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar2 = ~(uint)lVar7 - 1;\n        local_48 = 0;\n      }\n      else {\n        iVar2 = (int)pcVar5 - (int)pcVar4;\n        pcVar4[iVar2] = '\0';\n        local_48 = 1;\n      }\n      if (iVar2 == 1) {\n        cVar1 = *pcVar4;\n        switch(cVar1) {\n        case '1':\n        case '2':\n          conf_set_int(conf,0x3c,cVar1 * 2 + -0x60);\n          break;\n        default:\n          cmdline_error("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          conf_set_int(conf,0x3b,cVar1 + -0x30);\n          break;\n        case 'D':\n          conf_set_int(conf,0x3e,3);\n          break;\n        case 'N':\n          conf_set_int(conf,0x3e,0);\n          break;\n        case 'R':\n          conf_set_int(conf,0x3e,2);\n          break;\n        case 'X':\n          conf_set_int(conf,0x3e,1);\n          break;\n        case 'e':\n          conf_set_int(conf,0x3d,2);\n          break;\n        case 'm':\n          conf_set_int(conf,0x3d,3);\n          break;\n        case 'n':\n          conf_set_int(conf,0x3d,0);\n          break;\n        case 'o':\n          conf_set_int(conf,0x3d,1);\n          break;\n        case 's':\n          conf_set_int(conf,0x3d,4);\n        }\n      }\n      else if ((iVar2 == 3) && (iVar3 = strncmp(pcVar4,"1.5",3), iVar3 == 0)) {\n        conf_set_int(conf,0x3c,3);\n      }\n      else {\n        lVar7 = strtol(pcVar4,(char **)0x0,10);\n        if ((int)lVar7 == 0) {\n          cmdline_error("Unrecognised suboption \"-sercfg %s\"",pcVar4);\n        }\n        else {\n          conf_set_int(conf,0x3a,(int)lVar7);\n        }\n      }\n    }" for ( ; (binary_expression "*pcVar4 != '\0'" (pointer_expression "*pcVar4" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ; (assignment_expression "pcVar4 = pcVar4 + (local_48 + iVar2)" identifier = (binary_expression "pcVar4 + (local_48 + iVar2)" identifier + (parenthesized_expression "(local_48 + iVar2)" ( (binary_expression "local_48 + iVar2" identifier + identifier) )))) ) (compound_statement "{\n      pcVar5 = strchr(pcVar4,0x2c);\n      if (pcVar5 == (char *)0x0) {\n        lVar7 = -1;\n        pcVar5 = pcVar4;\n        do {\n          if (lVar7 == 0) break;\n          lVar7 = lVar7 + -1;\n          cVar1 = *pcVar5;\n          pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar2 = ~(uint)lVar7 - 1;\n        local_48 = 0;\n      }\n      else {\n        iVar2 = (int)pcVar5 - (int)pcVar4;\n        pcVar4[iVar2] = '\0';\n        local_48 = 1;\n      }\n      if (iVar2 == 1) {\n        cVar1 = *pcVar4;\n        switch(cVar1) {\n        case '1':\n        case '2':\n          conf_set_int(conf,0x3c,cVar1 * 2 + -0x60);\n          break;\n        default:\n          cmdline_error("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          conf_set_int(conf,0x3b,cVar1 + -0x30);\n          break;\n        case 'D':\n          conf_set_int(conf,0x3e,3);\n          break;\n        case 'N':\n          conf_set_int(conf,0x3e,0);\n          break;\n        case 'R':\n          conf_set_int(conf,0x3e,2);\n          break;\n        case 'X':\n          conf_set_int(conf,0x3e,1);\n          break;\n        case 'e':\n          conf_set_int(conf,0x3d,2);\n          break;\n        case 'm':\n          conf_set_int(conf,0x3d,3);\n          break;\n        case 'n':\n          conf_set_int(conf,0x3d,0);\n          break;\n        case 'o':\n          conf_set_int(conf,0x3d,1);\n          break;\n        case 's':\n          conf_set_int(conf,0x3d,4);\n        }\n      }\n      else if ((iVar2 == 3) && (iVar3 = strncmp(pcVar4,"1.5",3), iVar3 == 0)) {\n        conf_set_int(conf,0x3c,3);\n      }\n      else {\n        lVar7 = strtol(pcVar4,(char **)0x0,10);\n        if ((int)lVar7 == 0) {\n          cmdline_error("Unrecognised suboption \"-sercfg %s\"",pcVar4);\n        }\n        else {\n          conf_set_int(conf,0x3a,(int)lVar7);\n        }\n      }\n    }" { (expression_statement "pcVar5 = strchr(pcVar4,0x2c);" (assignment_expression "pcVar5 = strchr(pcVar4,0x2c)" identifier = (call_expression "strchr(pcVar4,0x2c)" identifier (argument_list "(pcVar4,0x2c)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar5 == (char *)0x0) {\n        lVar7 = -1;\n        pcVar5 = pcVar4;\n        do {\n          if (lVar7 == 0) break;\n          lVar7 = lVar7 + -1;\n          cVar1 = *pcVar5;\n          pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar2 = ~(uint)lVar7 - 1;\n        local_48 = 0;\n      }\n      else {\n        iVar2 = (int)pcVar5 - (int)pcVar4;\n        pcVar4[iVar2] = '\0';\n        local_48 = 1;\n      }" if (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        lVar7 = -1;\n        pcVar5 = pcVar4;\n        do {\n          if (lVar7 == 0) break;\n          lVar7 = lVar7 + -1;\n          cVar1 = *pcVar5;\n          pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar2 = ~(uint)lVar7 - 1;\n        local_48 = 0;\n      }" { (expression_statement "lVar7 = -1;" (assignment_expression "lVar7 = -1" identifier = number_literal) ;) (expression_statement "pcVar5 = pcVar4;" (assignment_expression "pcVar5 = pcVar4" identifier = identifier) ;) (do_statement "do {\n          if (lVar7 == 0) break;\n          lVar7 = lVar7 + -1;\n          cVar1 = *pcVar5;\n          pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');" do (compound_statement "{\n          if (lVar7 == 0) break;\n          lVar7 = lVar7 + -1;\n          cVar1 = *pcVar5;\n          pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n        }" { (if_statement "if (lVar7 == 0) break;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar5;" (assignment_expression "cVar1 = *pcVar5" identifier = (pointer_expression "*pcVar5" * identifier)) ;) (expression_statement "pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar5 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar5 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "iVar2 = ~(uint)lVar7 - 1;" (assignment_expression "iVar2 = ~(uint)lVar7 - 1" identifier = (binary_expression "~(uint)lVar7 - 1" (unary_expression "~(uint)lVar7" ~ (cast_expression "(uint)lVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) - number_literal)) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        iVar2 = (int)pcVar5 - (int)pcVar4;\n        pcVar4[iVar2] = '\0';\n        local_48 = 1;\n      }" else (compound_statement "{\n        iVar2 = (int)pcVar5 - (int)pcVar4;\n        pcVar4[iVar2] = '\0';\n        local_48 = 1;\n      }" { (expression_statement "iVar2 = (int)pcVar5 - (int)pcVar4;" (assignment_expression "iVar2 = (int)pcVar5 - (int)pcVar4" identifier = (binary_expression "(int)pcVar5 - (int)pcVar4" (cast_expression "(int)pcVar5" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar4[iVar2] = '\0';" (assignment_expression "pcVar4[iVar2] = '\0'" (subscript_expression "pcVar4[iVar2]" identifier [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" identifier = number_literal) ;) }))) (if_statement "if (iVar2 == 1) {\n        cVar1 = *pcVar4;\n        switch(cVar1) {\n        case '1':\n        case '2':\n          conf_set_int(conf,0x3c,cVar1 * 2 + -0x60);\n          break;\n        default:\n          cmdline_error("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          conf_set_int(conf,0x3b,cVar1 + -0x30);\n          break;\n        case 'D':\n          conf_set_int(conf,0x3e,3);\n          break;\n        case 'N':\n          conf_set_int(conf,0x3e,0);\n          break;\n        case 'R':\n          conf_set_int(conf,0x3e,2);\n          break;\n        case 'X':\n          conf_set_int(conf,0x3e,1);\n          break;\n        case 'e':\n          conf_set_int(conf,0x3d,2);\n          break;\n        case 'm':\n          conf_set_int(conf,0x3d,3);\n          break;\n        case 'n':\n          conf_set_int(conf,0x3d,0);\n          break;\n        case 'o':\n          conf_set_int(conf,0x3d,1);\n          break;\n        case 's':\n          conf_set_int(conf,0x3d,4);\n        }\n      }\n      else if ((iVar2 == 3) && (iVar3 = strncmp(pcVar4,"1.5",3), iVar3 == 0)) {\n        conf_set_int(conf,0x3c,3);\n      }\n      else {\n        lVar7 = strtol(pcVar4,(char **)0x0,10);\n        if ((int)lVar7 == 0) {\n          cmdline_error("Unrecognised suboption \"-sercfg %s\"",pcVar4);\n        }\n        else {\n          conf_set_int(conf,0x3a,(int)lVar7);\n        }\n      }" if (parenthesized_expression "(iVar2 == 1)" ( (binary_expression "iVar2 == 1" identifier == number_literal) )) (compound_statement "{\n        cVar1 = *pcVar4;\n        switch(cVar1) {\n        case '1':\n        case '2':\n          conf_set_int(conf,0x3c,cVar1 * 2 + -0x60);\n          break;\n        default:\n          cmdline_error("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          conf_set_int(conf,0x3b,cVar1 + -0x30);\n          break;\n        case 'D':\n          conf_set_int(conf,0x3e,3);\n          break;\n        case 'N':\n          conf_set_int(conf,0x3e,0);\n          break;\n        case 'R':\n          conf_set_int(conf,0x3e,2);\n          break;\n        case 'X':\n          conf_set_int(conf,0x3e,1);\n          break;\n        case 'e':\n          conf_set_int(conf,0x3d,2);\n          break;\n        case 'm':\n          conf_set_int(conf,0x3d,3);\n          break;\n        case 'n':\n          conf_set_int(conf,0x3d,0);\n          break;\n        case 'o':\n          conf_set_int(conf,0x3d,1);\n          break;\n        case 's':\n          conf_set_int(conf,0x3d,4);\n        }\n      }" { (expression_statement "cVar1 = *pcVar4;" (assignment_expression "cVar1 = *pcVar4" identifier = (pointer_expression "*pcVar4" * identifier)) ;) (switch_statement "switch(cVar1) {\n        case '1':\n        case '2':\n          conf_set_int(conf,0x3c,cVar1 * 2 + -0x60);\n          break;\n        default:\n          cmdline_error("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          conf_set_int(conf,0x3b,cVar1 + -0x30);\n          break;\n        case 'D':\n          conf_set_int(conf,0x3e,3);\n          break;\n        case 'N':\n          conf_set_int(conf,0x3e,0);\n          break;\n        case 'R':\n          conf_set_int(conf,0x3e,2);\n          break;\n        case 'X':\n          conf_set_int(conf,0x3e,1);\n          break;\n        case 'e':\n          conf_set_int(conf,0x3d,2);\n          break;\n        case 'm':\n          conf_set_int(conf,0x3d,3);\n          break;\n        case 'n':\n          conf_set_int(conf,0x3d,0);\n          break;\n        case 'o':\n          conf_set_int(conf,0x3d,1);\n          break;\n        case 's':\n          conf_set_int(conf,0x3d,4);\n        }" switch (parenthesized_expression "(cVar1)" ( identifier )) (compound_statement "{\n        case '1':\n        case '2':\n          conf_set_int(conf,0x3c,cVar1 * 2 + -0x60);\n          break;\n        default:\n          cmdline_error("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          conf_set_int(conf,0x3b,cVar1 + -0x30);\n          break;\n        case 'D':\n          conf_set_int(conf,0x3e,3);\n          break;\n        case 'N':\n          conf_set_int(conf,0x3e,0);\n          break;\n        case 'R':\n          conf_set_int(conf,0x3e,2);\n          break;\n        case 'X':\n          conf_set_int(conf,0x3e,1);\n          break;\n        case 'e':\n          conf_set_int(conf,0x3d,2);\n          break;\n        case 'm':\n          conf_set_int(conf,0x3d,3);\n          break;\n        case 'n':\n          conf_set_int(conf,0x3d,0);\n          break;\n        case 'o':\n          conf_set_int(conf,0x3d,1);\n          break;\n        case 's':\n          conf_set_int(conf,0x3d,4);\n        }" { (case_statement "case '1':" case (char_literal "'1'" ' character ') :) (case_statement "case '2':\n          conf_set_int(conf,0x3c,cVar1 * 2 + -0x60);\n          break;" case (char_literal "'2'" ' character ') : (expression_statement "conf_set_int(conf,0x3c,cVar1 * 2 + -0x60);" (call_expression "conf_set_int(conf,0x3c,cVar1 * 2 + -0x60)" identifier (argument_list "(conf,0x3c,cVar1 * 2 + -0x60)" ( identifier , number_literal , (binary_expression "cVar1 * 2 + -0x60" (binary_expression "cVar1 * 2" identifier * number_literal) + number_literal) ))) ;) (break_statement "break;" break ;)) (case_statement "default:\n          cmdline_error("Unrecognised suboption \"-sercfg %c\"");\n          break;" default : (expression_statement "cmdline_error("Unrecognised suboption \"-sercfg %c\"");" (call_expression "cmdline_error("Unrecognised suboption \"-sercfg %c\"")" identifier (argument_list "("Unrecognised suboption \"-sercfg %c\"")" ( (string_literal ""Unrecognised suboption \"-sercfg %c\""" " string_content escape_sequence string_content escape_sequence ") ))) ;) (break_statement "break;" break ;)) (case_statement "case '5':" case (char_literal "'5'" ' character ') :) (case_statement "case '6':" case (char_literal "'6'" ' character ') :) (case_statement "case '7':" case (char_literal "'7'" ' character ') :) (case_statement "case '8':" case (char_literal "'8'" ' character ') :) (case_statement "case '9':\n          conf_set_int(conf,0x3b,cVar1 + -0x30);\n          break;" case (char_literal "'9'" ' character ') : (expression_statement "conf_set_int(conf,0x3b,cVar1 + -0x30);" (call_expression "conf_set_int(conf,0x3b,cVar1 + -0x30)" identifier (argument_list "(conf,0x3b,cVar1 + -0x30)" ( identifier , number_literal , (binary_expression "cVar1 + -0x30" identifier + number_literal) ))) ;) (break_statement "break;" break ;)) (case_statement "case 'D':\n          conf_set_int(conf,0x3e,3);\n          break;" case (char_literal "'D'" ' character ') : (expression_statement "conf_set_int(conf,0x3e,3);" (call_expression "conf_set_int(conf,0x3e,3)" identifier (argument_list "(conf,0x3e,3)" ( identifier , number_literal , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 'N':\n          conf_set_int(conf,0x3e,0);\n          break;" case (char_literal "'N'" ' character ') : (expression_statement "conf_set_int(conf,0x3e,0);" (call_expression "conf_set_int(conf,0x3e,0)" identifier (argument_list "(conf,0x3e,0)" ( identifier , number_literal , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 'R':\n          conf_set_int(conf,0x3e,2);\n          break;" case (char_literal "'R'" ' character ') : (expression_statement "conf_set_int(conf,0x3e,2);" (call_expression "conf_set_int(conf,0x3e,2)" identifier (argument_list "(conf,0x3e,2)" ( identifier , number_literal , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 'X':\n          conf_set_int(conf,0x3e,1);\n          break;" case (char_literal "'X'" ' character ') : (expression_statement "conf_set_int(conf,0x3e,1);" (call_expression "conf_set_int(conf,0x3e,1)" identifier (argument_list "(conf,0x3e,1)" ( identifier , number_literal , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 'e':\n          conf_set_int(conf,0x3d,2);\n          break;" case (char_literal "'e'" ' character ') : (expression_statement "conf_set_int(conf,0x3d,2);" (call_expression "conf_set_int(conf,0x3d,2)" identifier (argument_list "(conf,0x3d,2)" ( identifier , number_literal , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 'm':\n          conf_set_int(conf,0x3d,3);\n          break;" case (char_literal "'m'" ' character ') : (expression_statement "conf_set_int(conf,0x3d,3);" (call_expression "conf_set_int(conf,0x3d,3)" identifier (argument_list "(conf,0x3d,3)" ( identifier , number_literal , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 'n':\n          conf_set_int(conf,0x3d,0);\n          break;" case (char_literal "'n'" ' character ') : (expression_statement "conf_set_int(conf,0x3d,0);" (call_expression "conf_set_int(conf,0x3d,0)" identifier (argument_list "(conf,0x3d,0)" ( identifier , number_literal , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 'o':\n          conf_set_int(conf,0x3d,1);\n          break;" case (char_literal "'o'" ' character ') : (expression_statement "conf_set_int(conf,0x3d,1);" (call_expression "conf_set_int(conf,0x3d,1)" identifier (argument_list "(conf,0x3d,1)" ( identifier , number_literal , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 's':\n          conf_set_int(conf,0x3d,4);" case (char_literal "'s'" ' character ') : (expression_statement "conf_set_int(conf,0x3d,4);" (call_expression "conf_set_int(conf,0x3d,4)" identifier (argument_list "(conf,0x3d,4)" ( identifier , number_literal , number_literal ))) ;)) })) }) (else_clause "else if ((iVar2 == 3) && (iVar3 = strncmp(pcVar4,"1.5",3), iVar3 == 0)) {\n        conf_set_int(conf,0x3c,3);\n      }\n      else {\n        lVar7 = strtol(pcVar4,(char **)0x0,10);\n        if ((int)lVar7 == 0) {\n          cmdline_error("Unrecognised suboption \"-sercfg %s\"",pcVar4);\n        }\n        else {\n          conf_set_int(conf,0x3a,(int)lVar7);\n        }\n      }" else (if_statement "if ((iVar2 == 3) && (iVar3 = strncmp(pcVar4,"1.5",3), iVar3 == 0)) {\n        conf_set_int(conf,0x3c,3);\n      }\n      else {\n        lVar7 = strtol(pcVar4,(char **)0x0,10);\n        if ((int)lVar7 == 0) {\n          cmdline_error("Unrecognised suboption \"-sercfg %s\"",pcVar4);\n        }\n        else {\n          conf_set_int(conf,0x3a,(int)lVar7);\n        }\n      }" if (parenthesized_expression "((iVar2 == 3) && (iVar3 = strncmp(pcVar4,"1.5",3), iVar3 == 0))" ( (binary_expression "(iVar2 == 3) && (iVar3 = strncmp(pcVar4,"1.5",3), iVar3 == 0)" (parenthesized_expression "(iVar2 == 3)" ( (binary_expression "iVar2 == 3" identifier == number_literal) )) && (parenthesized_expression "(iVar3 = strncmp(pcVar4,"1.5",3), iVar3 == 0)" ( (comma_expression "iVar3 = strncmp(pcVar4,"1.5",3), iVar3 == 0" (assignment_expression "iVar3 = strncmp(pcVar4,"1.5",3)" identifier = (call_expression "strncmp(pcVar4,"1.5",3)" identifier (argument_list "(pcVar4,"1.5",3)" ( identifier , (string_literal ""1.5"" " string_content ") , number_literal )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        conf_set_int(conf,0x3c,3);\n      }" { (expression_statement "conf_set_int(conf,0x3c,3);" (call_expression "conf_set_int(conf,0x3c,3)" identifier (argument_list "(conf,0x3c,3)" ( identifier , number_literal , number_literal ))) ;) }) (else_clause "else {\n        lVar7 = strtol(pcVar4,(char **)0x0,10);\n        if ((int)lVar7 == 0) {\n          cmdline_error("Unrecognised suboption \"-sercfg %s\"",pcVar4);\n        }\n        else {\n          conf_set_int(conf,0x3a,(int)lVar7);\n        }\n      }" else (compound_statement "{\n        lVar7 = strtol(pcVar4,(char **)0x0,10);\n        if ((int)lVar7 == 0) {\n          cmdline_error("Unrecognised suboption \"-sercfg %s\"",pcVar4);\n        }\n        else {\n          conf_set_int(conf,0x3a,(int)lVar7);\n        }\n      }" { (expression_statement "lVar7 = strtol(pcVar4,(char **)0x0,10);" (assignment_expression "lVar7 = strtol(pcVar4,(char **)0x0,10)" identifier = (call_expression "strtol(pcVar4,(char **)0x0,10)" identifier (argument_list "(pcVar4,(char **)0x0,10)" ( identifier , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , number_literal )))) ;) (if_statement "if ((int)lVar7 == 0) {\n          cmdline_error("Unrecognised suboption \"-sercfg %s\"",pcVar4);\n        }\n        else {\n          conf_set_int(conf,0x3a,(int)lVar7);\n        }" if (parenthesized_expression "((int)lVar7 == 0)" ( (binary_expression "(int)lVar7 == 0" (cast_expression "(int)lVar7" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n          cmdline_error("Unrecognised suboption \"-sercfg %s\"",pcVar4);\n        }" { (expression_statement "cmdline_error("Unrecognised suboption \"-sercfg %s\"",pcVar4);" (call_expression "cmdline_error("Unrecognised suboption \"-sercfg %s\"",pcVar4)" identifier (argument_list "("Unrecognised suboption \"-sercfg %s\"",pcVar4)" ( (string_literal ""Unrecognised suboption \"-sercfg %s\""" " string_content escape_sequence string_content escape_sequence ") , identifier ))) ;) }) (else_clause "else {\n          conf_set_int(conf,0x3a,(int)lVar7);\n        }" else (compound_statement "{\n          conf_set_int(conf,0x3a,(int)lVar7);\n        }" { (expression_statement "conf_set_int(conf,0x3a,(int)lVar7);" (call_expression "conf_set_int(conf,0x3a,(int)lVar7)" identifier (argument_list "(conf,0x3a,(int)lVar7)" ( identifier , number_literal , (cast_expression "(int)lVar7" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) }))) }))))) })) (expression_statement "iVar2 = strcmp(p,"-sessionlog");" (assignment_expression "iVar2 = strcmp(p,"-sessionlog")" identifier = (call_expression "strcmp(p,"-sessionlog")" identifier (argument_list "(p,"-sessionlog")" ( identifier , (string_literal ""-sessionlog"" " string_content ") )))) ;) (if_statement "if (iVar2 != 0) {\n      iVar3 = strcmp(p,"-sshlog");\n      iVar2 = 2;\n      if (iVar3 != 0) goto LAB_0010921f;\n      goto LAB_0010924d;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar3 = strcmp(p,"-sshlog");\n      iVar2 = 2;\n      if (iVar3 != 0) goto LAB_0010921f;\n      goto LAB_0010924d;\n    }" { (expression_statement "iVar3 = strcmp(p,"-sshlog");" (assignment_expression "iVar3 = strcmp(p,"-sshlog")" identifier = (call_expression "strcmp(p,"-sshlog")" identifier (argument_list "(p,"-sshlog")" ( identifier , (string_literal ""-sshlog"" " string_content ") )))) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0010921f;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0010921f;" goto statement_identifier ;)) (goto_statement "goto LAB_0010924d;" goto statement_identifier ;) })) (expression_statement "iVar2 = cmdline_check_unavailable(1,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(1,p)" identifier = (call_expression "cmdline_check_unavailable(1,p)" identifier (argument_list "(1,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n      return 2;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_001095f3:\n    pFVar6 = filename_from_str(value);" statement_identifier : (expression_statement "pFVar6 = filename_from_str(value);" (assignment_expression "pFVar6 = filename_from_str(value)" identifier = (call_expression "filename_from_str(value)" identifier (argument_list "(value)" ( identifier )))) ;)) (expression_statement "conf_set_filename(conf,0x77,pFVar6);" (call_expression "conf_set_filename(conf,0x77,pFVar6)" identifier (argument_list "(conf,0x77,pFVar6)" ( identifier , number_literal , identifier ))) ;) (expression_statement "conf_set_int(conf,0x78,2);" (call_expression "conf_set_int(conf,0x78,2)" identifier (argument_list "(conf,0x78,2)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "filename_free(pFVar6);" (call_expression "filename_free(pFVar6)" identifier (argument_list "(pFVar6)" ( identifier ))) ;) (expression_statement "iVar3 = strcmp(p,"-sshlog");" (assignment_expression "iVar3 = strcmp(p,"-sshlog")" identifier = (call_expression "strcmp(p,"-sshlog")" identifier (argument_list "(p,"-sshlog")" ( identifier , (string_literal ""-sshlog"" " string_content ") )))) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) {\nLAB_0010921f:\n      iVar3 = strcmp(p,"-sshrawlog");\n      if (iVar3 != 0) {\n        iVar3 = strcmp(p,"-proxycmd");\n        if (iVar3 != 0) {\n          return iVar2;\n        }\n        if (value == (char *)0x0) {\n          return -2;\n        }\n        if (need_save < 0) {\n          return 2;\n        }\n        iVar2 = cmdline_check_unavailable(2,p);\n        if (iVar2 != 0) {\n          return 2;\n        }\n        if (need_save != 0) {\n          cmdline_save_param(p,value,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }\n      goto LAB_00109236;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0010921f:\n      iVar3 = strcmp(p,"-sshrawlog");\n      if (iVar3 != 0) {\n        iVar3 = strcmp(p,"-proxycmd");\n        if (iVar3 != 0) {\n          return iVar2;\n        }\n        if (value == (char *)0x0) {\n          return -2;\n        }\n        if (need_save < 0) {\n          return 2;\n        }\n        iVar2 = cmdline_check_unavailable(2,p);\n        if (iVar2 != 0) {\n          return 2;\n        }\n        if (need_save != 0) {\n          cmdline_save_param(p,value,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }\n      goto LAB_00109236;\n    }" { (labeled_statement "LAB_0010921f:\n      iVar3 = strcmp(p,"-sshrawlog");" statement_identifier : (expression_statement "iVar3 = strcmp(p,"-sshrawlog");" (assignment_expression "iVar3 = strcmp(p,"-sshrawlog")" identifier = (call_expression "strcmp(p,"-sshrawlog")" identifier (argument_list "(p,"-sshrawlog")" ( identifier , (string_literal ""-sshrawlog"" " string_content ") )))) ;)) (if_statement "if (iVar3 != 0) {\n        iVar3 = strcmp(p,"-proxycmd");\n        if (iVar3 != 0) {\n          return iVar2;\n        }\n        if (value == (char *)0x0) {\n          return -2;\n        }\n        if (need_save < 0) {\n          return 2;\n        }\n        iVar2 = cmdline_check_unavailable(2,p);\n        if (iVar2 != 0) {\n          return 2;\n        }\n        if (need_save != 0) {\n          cmdline_save_param(p,value,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar3 = strcmp(p,"-proxycmd");\n        if (iVar3 != 0) {\n          return iVar2;\n        }\n        if (value == (char *)0x0) {\n          return -2;\n        }\n        if (need_save < 0) {\n          return 2;\n        }\n        iVar2 = cmdline_check_unavailable(2,p);\n        if (iVar2 != 0) {\n          return 2;\n        }\n        if (need_save != 0) {\n          cmdline_save_param(p,value,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }" { (expression_statement "iVar3 = strcmp(p,"-proxycmd");" (assignment_expression "iVar3 = strcmp(p,"-proxycmd")" identifier = (call_expression "strcmp(p,"-proxycmd")" identifier (argument_list "(p,"-proxycmd")" ( identifier , (string_literal ""-proxycmd"" " string_content ") )))) ;) (if_statement "if (iVar3 != 0) {\n          return iVar2;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          return iVar2;\n        }" { (return_statement "return iVar2;" return identifier ;) })) (if_statement "if (value == (char *)0x0) {\n          return -2;\n        }" if (parenthesized_expression "(value == (char *)0x0)" ( (binary_expression "value == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return -2;\n        }" { (return_statement "return -2;" return number_literal ;) })) (if_statement "if (need_save < 0) {\n          return 2;\n        }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n          return 2;\n        }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar2 = cmdline_check_unavailable(2,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(2,p)" identifier = (call_expression "cmdline_check_unavailable(2,p)" identifier (argument_list "(2,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n          return 2;\n        }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          return 2;\n        }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (need_save != 0) {\n          cmdline_save_param(p,value,0);\n          return 2;\n        }" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (compound_statement "{\n          cmdline_save_param(p,value,0);\n          return 2;\n        }" { (expression_statement "cmdline_save_param(p,value,0);" (call_expression "cmdline_save_param(p,value,0)" identifier (argument_list "(p,value,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (goto_statement "goto LAB_001092e3;" goto statement_identifier ;) })) (goto_statement "goto LAB_00109236;" goto statement_identifier ;) })) (expression_statement "iVar2 = cmdline_check_unavailable(2,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(2,p)" identifier = (call_expression "cmdline_check_unavailable(2,p)" identifier (argument_list "(2,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n      return 2;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) }) (else_clause "else {\n    iVar3 = strcmp(p,"-sessionlog");\n    if (iVar3 == 0) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(1,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_001095f3;\n    }\n    iVar3 = strcmp(p,"-sshlog");\n    if (iVar3 != 0) goto LAB_0010921f;\nLAB_00109236:\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\nLAB_0010924d:\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 2;\n    }\n  }" else (compound_statement "{\n    iVar3 = strcmp(p,"-sessionlog");\n    if (iVar3 == 0) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(1,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_001095f3;\n    }\n    iVar3 = strcmp(p,"-sshlog");\n    if (iVar3 != 0) goto LAB_0010921f;\nLAB_00109236:\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\nLAB_0010924d:\n    iVar2 = cmdline_check_unavailable(2,p);\n    if (iVar2 != 0) {\n      return 2;\n    }\n    if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 2;\n    }\n  }" { (expression_statement "iVar3 = strcmp(p,"-sessionlog");" (assignment_expression "iVar3 = strcmp(p,"-sessionlog")" identifier = (call_expression "strcmp(p,"-sessionlog")" identifier (argument_list "(p,"-sessionlog")" ( identifier , (string_literal ""-sessionlog"" " string_content ") )))) ;) (if_statement "if (iVar3 == 0) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(1,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_001095f3;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      iVar2 = cmdline_check_unavailable(1,p);\n      if (iVar2 != 0) {\n        return 2;\n      }\n      if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }\n      goto LAB_001095f3;\n    }" { (if_statement "if (value == (char *)0x0) {\n        return -2;\n      }" if (parenthesized_expression "(value == (char *)0x0)" ( (binary_expression "value == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return -2;\n      }" { (return_statement "return -2;" return number_literal ;) })) (if_statement "if (need_save < 0) {\n        return 2;\n      }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar2 = cmdline_check_unavailable(1,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(1,p)" identifier = (call_expression "cmdline_check_unavailable(1,p)" identifier (argument_list "(1,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n        return 2;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (need_save != 0) {\n        cmdline_save_param(p,value,0);\n        return 2;\n      }" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (compound_statement "{\n        cmdline_save_param(p,value,0);\n        return 2;\n      }" { (expression_statement "cmdline_save_param(p,value,0);" (call_expression "cmdline_save_param(p,value,0)" identifier (argument_list "(p,value,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (goto_statement "goto LAB_001095f3;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp(p,"-sshlog");" (assignment_expression "iVar3 = strcmp(p,"-sshlog")" identifier = (call_expression "strcmp(p,"-sshlog")" identifier (argument_list "(p,"-sshlog")" ( identifier , (string_literal ""-sshlog"" " string_content ") )))) ;) (if_statement "if (iVar3 != 0) goto LAB_0010921f;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0010921f;" goto statement_identifier ;)) (labeled_statement "LAB_00109236:\n    if (value == (char *)0x0) {\n      return -2;\n    }" statement_identifier : (if_statement "if (value == (char *)0x0) {\n      return -2;\n    }" if (parenthesized_expression "(value == (char *)0x0)" ( (binary_expression "value == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return -2;\n    }" { (return_statement "return -2;" return number_literal ;) }))) (if_statement "if (need_save < 0) {\n      return 2;\n    }" if (parenthesized_expression "(need_save < 0)" ( (binary_expression "need_save < 0" identifier < number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_0010924d:\n    iVar2 = cmdline_check_unavailable(2,p);" statement_identifier : (expression_statement "iVar2 = cmdline_check_unavailable(2,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(2,p)" identifier = (call_expression "cmdline_check_unavailable(2,p)" identifier (argument_list "(2,p)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar2 != 0) {\n      return 2;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (need_save != 0) {\n      cmdline_save_param(p,value,0);\n      return 2;\n    }" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (compound_statement "{\n      cmdline_save_param(p,value,0);\n      return 2;\n    }" { (expression_statement "cmdline_save_param(p,value,0);" (call_expression "cmdline_save_param(p,value,0)" identifier (argument_list "(p,value,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) }))) (expression_statement "pFVar6 = filename_from_str(value);" (assignment_expression "pFVar6 = filename_from_str(value)" identifier = (call_expression "filename_from_str(value)" identifier (argument_list "(value)" ( identifier )))) ;) (expression_statement "conf_set_filename(conf,0x77,pFVar6);" (call_expression "conf_set_filename(conf,0x77,pFVar6)" identifier (argument_list "(conf,0x77,pFVar6)" ( identifier , number_literal , identifier ))) ;) (expression_statement "iVar2 = strcmp(p,"-sshlog");" (assignment_expression "iVar2 = strcmp(p,"-sshlog")" identifier = (call_expression "strcmp(p,"-sshlog")" identifier (argument_list "(p,"-sshlog")" ( identifier , (string_literal ""-sshlog"" " string_content ") )))) ;) (expression_statement "conf_set_int(conf,0x78,4 - (uint)(iVar2 == 0));" (call_expression "conf_set_int(conf,0x78,4 - (uint)(iVar2 == 0))" identifier (argument_list "(conf,0x78,4 - (uint)(iVar2 == 0))" ( identifier , number_literal , (binary_expression "4 - (uint)(iVar2 == 0)" number_literal - (call_expression "(uint)(iVar2 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )))) ))) ;) (expression_statement "filename_free(pFVar6);" (call_expression "filename_free(pFVar6)" identifier (argument_list "(pFVar6)" ( identifier ))) ;) (expression_statement "iVar2 = strcmp(p,"-proxycmd");" (assignment_expression "iVar2 = strcmp(p,"-proxycmd")" identifier = (call_expression "strcmp(p,"-proxycmd")" identifier (argument_list "(p,"-proxycmd")" ( identifier , (string_literal ""-proxycmd"" " string_content ") )))) ;) (if_statement "if (iVar2 != 0) {\n    return 2;\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    return 2;\n  }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar2 = cmdline_check_unavailable(2,p);" (assignment_expression "iVar2 = cmdline_check_unavailable(2,p)" identifier = (call_expression "cmdline_check_unavailable(2,p)" identifier (argument_list "(2,p)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n    return 2;\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    return 2;\n  }" { (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_001092e3:\n  conf_set_int(conf,0xd,5);" statement_identifier : (expression_statement "conf_set_int(conf,0xd,5);" (call_expression "conf_set_int(conf,0xd,5)" identifier (argument_list "(conf,0xd,5)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "conf_set_str(conf,0x12,value);" (call_expression "conf_set_str(conf,0x12,value)" identifier (argument_list "(conf,0x12,value)" ( identifier , number_literal , identifier ))) ;) (return_statement "return 2;" return number_literal ;) })))
(translation_unit "undefined8 FUN_001082a0(byte *param_1,char *param_2,int param_3,undefined8 param_4)\n\n{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  int iVar4;\n  undefined8 uVar5;\n  char *pcVar6;\n  undefined8 uVar7;\n  char *pcVar8;\n  ulong uVar9;\n  FILE *__stream;\n  long lVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  long lVar13;\n  char *pcVar14;\n  bool bVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  undefined1 uVar19;\n  byte bVar20;\n  int local_48;\n  int local_3c;\n  \n  bVar20 = 0;\n  bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x28;\n  bVar18 = &stack0x00000000 == (undefined1 *)0x58;\n  lVar10 = 6;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-load";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar15 = *pbVar11 < *pbVar12;\n    bVar18 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar18);\n  bVar16 = false;\n  bVar15 = (!bVar15 && !bVar18) == bVar15;\n  if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (-1 < param_3) {\n      FUN_00116e22(param_2,param_4);\n      _DAT_00152558 = 1;\n      _DAT_00152560 = FUN_0010bd5d(param_2);\n      return 2;\n    }\n    return 2;\n  }\n  lVar10 = 5;\n  pbVar11 = param_1;\n  pbVar12 = &DAT_0013b272;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar18 = false;\n  bVar15 = (!bVar16 && !bVar15) == bVar16;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 3;\n        DAT_00152548 = 0x16;\n        FUN_0010ac09(param_4,2,3);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar10 = 8;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-telnet";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar16 = false;\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 1;\n        DAT_00152548 = 0x17;\n        FUN_0010ac09(param_4,2,1);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar10 = 8;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-rlogin";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar18 = false;\n  bVar15 = (!bVar16 && !bVar15) == bVar16;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 2;\n        DAT_00152548 = 0x201;\n        FUN_0010ac09(param_4,2,2);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar10 = 5;\n  pbVar11 = param_1;\n  pbVar12 = &DAT_0013b287;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar16 = false;\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    uVar17 = 0;\n    uVar19 = param_3 == 0;\n    if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    DAT_00152538 = 0;\n    FUN_0010ac09(param_4,2,0);\n    lVar10 = 8;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    bVar15 = false;\n    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (bVar18) {\n      iVar3 = FUN_00108083(3,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 1;\n      }\nLAB_0010858a:\n      uVar19 = 0;\n      DAT_00152538 = 4;\n      FUN_0010ac09(param_4,2,4);\n      uVar5 = FUN_0010a6d3(param_4,0);\n      FUN_0010ad3a(param_4,0x39,uVar5);\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n    }\n    else {\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n    }\n    uVar5 = 1;\n    if (bVar15) {\nLAB_00108687:\n      DAT_0015254c = DAT_0015254c | 1;\n      bVar15 = DAT_0015254c == 0;\n      uVar5 = 1;\n    }\n  }\n  else {\n    lVar10 = 8;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      uVar17 = param_3 == 0;\n      if (!(bool)uVar17) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_0010858a;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b294;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108687;\n    }\n    uVar5 = 0;\n  }\n  bVar18 = false;\n  lVar10 = 3;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)0x1440df;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);\n  bVar16 = false;\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    uVar17 = 0;\n    uVar19 = param_3 == 0;\n    if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    FUN_0010ad3a(param_4,0x34,param_2);\n    lVar10 = 9;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-loghost";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    bVar15 = false;\n    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (bVar18) {\n      iVar3 = FUN_00108083(2,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 2;\n      }\nLAB_0010a0b4:\n      uVar19 = 0;\n      FUN_0010ad3a(param_4,9,param_2);\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      uVar5 = 2;\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n      if (bVar15) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }\n    }\n    else {\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      uVar5 = 2;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (bVar15) goto LAB_00108738;\n    }\nLAB_0010884b:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2a9;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (!bVar15) goto LAB_00108865;\n    goto LAB_0010889d;\n  }\n  lVar10 = 9;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-loghost";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);\n  bVar18 = false;\n  bVar15 = (!bVar16 && !bVar15) == bVar16;\n  if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    uVar17 = param_3 == 0;\n    if (!(bool)uVar17) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    goto LAB_0010a0b4;\n  }\n  lVar10 = 9;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-hostkey";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (!bVar15) goto LAB_0010884b;\n  if (param_2 == (char *)0x0) {\n    return 0xfffffffe;\n  }\n  if (param_3 < 0) {\n    return 2;\n  }\nLAB_00108738:\n  iVar3 = FUN_00108083(2,param_1);\n  if (iVar3 != 0) {\n    return 2;\n  }\n  if (param_3 != 0) {\n    FUN_001080ad(param_1,param_2,0);\n    return 2;\n  }\nLAB_0010a103:\n  uVar5 = FUN_0010bd5d(param_2);\n  iVar3 = FUN_0010c8a8(uVar5);\n  uVar17 = 0;\n  uVar19 = iVar3 == 0;\n  if ((bool)uVar19) {\n    FUN_00134fb0("\'%s\' is not a valid format for a manual host key specification",param_2);\n    FUN_0010c4d3(uVar5);\n    return 2;\n  }\n  FUN_0010ade1(param_4,0xad,uVar5,&DAT_0013bec9);\n  FUN_0010c4d3(uVar5);\n  lVar10 = 3;\n  pbVar11 = param_1;\n  pbVar12 = &DAT_0013b2a9;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    uVar17 = *pbVar11 < *pbVar12;\n    uVar19 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while ((bool)uVar19);\n  uVar5 = 2;\n  bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n  if (bVar15) {\n    iVar3 = FUN_00108083(3,param_1);\n    bVar15 = iVar3 == 0;\n    if (!bVar15) {\n      return 2;\n    }\nLAB_001088cd:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)0x1440f1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    uVar17 = 0;\n    uVar19 = (!bVar18 && !bVar15) == bVar18;\n    if ((bool)uVar19) {\n      uVar5 = FUN_0010c2a6(&DAT_0013b2b6,param_2);\n      uVar7 = FUN_0010bd5d("D");\n    }\n    else {\n      bVar1 = param_1[1];\n      pcVar6 = (char *)FUN_0010b8c9(param_2,0x3a);\n      pcVar8 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\nLAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);\n        return 2;\n      }\n      do {\n        pcVar14 = pcVar8;\n        pcVar8 = pcVar6;\n        pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);\n      } while (pcVar6 != (char *)0x0);\n      if (pcVar14 == (char *)0x0) goto LAB_00108973;\n      uVar17 = pcVar14 < param_2;\n      uVar19 = (long)pcVar14 - (long)param_2 == 0;\n      uVar5 = FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2);\n      uVar7 = FUN_0010bd5d(pcVar14 + 1);\n    }\n    FUN_0010ade1(param_4,0x9b,uVar5,uVar7);\n    FUN_0010c4d3(uVar5);\n    FUN_0010c4d3(uVar7);\n    lVar10 = 4;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2ba;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    uVar5 = 2;\n    bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (!bVar15) goto LAB_00108a01;\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_00109fa5:\n    lVar10 = FUN_0010b8c9(param_2,0x3a);\n    if (lVar10 == 0) {\n      FUN_00134fb0("-nc expects argument of form \'host:port\'");\n      return 2;\n    }\n    uVar5 = FUN_0010c2a6(&DAT_0013b2b1,lVar10 - (long)param_2,param_2);\n    FUN_0010ad3a(param_4,0x2e,uVar5);\n    uVar9 = strtol((char *)(lVar10 + 1),(char **)0x0,10);\n    FUN_0010ac09(param_4,0x2f,uVar9 & 0xffffffff);\n    FUN_0010c4d3(uVar5);\n    iVar3 = strcmp((char *)param_1,"-m");\n    uVar5 = 2;\n    bVar15 = iVar3 == 0;\n    if (!bVar15) goto LAB_0010a032;\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_00109f54:\n    __stream = fopen64(param_2,"r");\n    if (__stream == (FILE *)0x0) {\n      FUN_00134fb0("unable to open command file \"%s\"",param_2);\n      return 2;\n    }\n    lVar13 = 0;\n    local_3c = 0;\n    lVar10 = 0;\n    while( true ) {\n      iVar4 = (int)lVar13;\n      iVar3 = fgetc(__stream);\n      if (iVar3 == -1) break;\n      local_48._0_1_ = (undefined1)iVar3;\n      if (iVar4 < local_3c) {\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      else {\n        local_3c = iVar4 + 0x200;\n        lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      lVar13 = lVar13 + 1;\n    }\n    if (iVar4 < local_3c) {\n      *(undefined1 *)(lVar10 + iVar4) = 0;\n    }\n    else {\n      lVar10 = FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1);\n      *(undefined1 *)(lVar10 + lVar13) = 0;\n    }\n    fclose(__stream);\n    FUN_0010ad3a(param_4,0x14,lVar10);\n    FUN_0010ad3a(param_4,0x15,&DAT_0013bec9);\n    FUN_0010ac09(param_4,0x16,1);\n    FUN_0010c4d3(lVar10);\n    iVar3 = strcmp((char *)param_1,"-P");\n    uVar5 = 2;\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      goto LAB_00109749;\n    }\nLAB_00108afa:\n    iVar3 = strcmp((char *)param_1,"-pw");\n    if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 2;\n      }\n      goto LAB_00109ee5;\n    }\n    iVar3 = strcmp((char *)param_1,"-agent");\n    if (iVar3 != 0) goto LAB_00108ba4;\nLAB_00108bce:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108bdc:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00108bf9:\n    FUN_0010ac09(param_4,0x1c,1);\n    iVar3 = strcmp((char *)param_1,"-noagent");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108c37;\n    }\n    iVar3 = strcmp((char *)param_1,"-nopagent");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00109e76;\nLAB_00108d1b:\n    iVar3 = strcmp((char *)param_1,"-nopageant");\n    if (iVar3 == 0) goto LAB_00108d2e;\n    iVar3 = strcmp((char *)param_1,"-A");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-a");\n      if (iVar3 != 0) goto LAB_00108c7d;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108db9;\n    }\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109d88:\n    FUN_0010ac09(param_4,0x1d,1);\n    iVar3 = strcmp((char *)param_1,"-a");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d25;\n    }\n    iVar3 = strcmp((char *)param_1,"-X");\n    uVar5 = 1;\n    if (iVar3 == 0) {\nLAB_00108ca2:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109c0f;\n    }\nLAB_00109dce:\n    iVar3 = strcmp((char *)param_1,"-x");\n    if (iVar3 != 0) goto LAB_00109de5;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108dff:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109c49:\n    FUN_0010ac09(param_4,0x95,0);\n    iVar3 = strcmp((char *)param_1,"-t");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c87:\n      FUN_0010ac09(param_4,0x16,0);\n      iVar3 = strcmp((char *)param_1,"-T");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }\n      iVar3 = strcmp((char *)param_1,"-N");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109ba0;\n    }\n    else {\n      iVar3 = strcmp((char *)param_1,"-T");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109e21;\nLAB_00109b7b:\n      iVar3 = strcmp((char *)param_1,"-N");\n      if (iVar3 == 0) {\n        if (param_3 < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }\n    }\n    iVar3 = strcmp((char *)param_1,"-C");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00108e8b:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\nLAB_0010989e:\n      FUN_0010ac09(param_4,0x17,1);\n      iVar3 = strcmp((char *)param_1,"-1");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }\n      iVar3 = strcmp((char *)param_1,"-2");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109930;\n      goto LAB_00109b26;\n    }\nLAB_00109aea:\n    iVar3 = strcmp((char *)param_1,"-1");\n    if (iVar3 != 0) goto LAB_00109b01;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108ed1:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_001098d8:\n    FUN_0010ac09(param_4,0x21,0);\n    iVar3 = strcmp((char *)param_1,"-2");\n    uVar5 = 1;\n    if (iVar3 != 0) goto LAB_00109930;\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\nLAB_00109918:\n    FUN_0010ac09(param_4,0x21,3);\n    uVar5 = 1;\n  }\n  else {\nLAB_00108865:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2ac;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\nLAB_0010889d:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      bVar15 = param_3 == 0;\n      if (!bVar15) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001088cd;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)0x1440f1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_0010889d;\n    iVar3 = strcmp((char *)param_1,"-nc");\n    bVar15 = iVar3 == 0;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109fa5;\n    }\nLAB_00108a01:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2be;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109f54;\n    }\nLAB_0010a032:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2c1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar18 && !bVar15) != bVar18) goto LAB_00108afa;\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }\nLAB_00109749:\n    uVar9 = strtol(param_2,(char **)0x0,10);\n    FUN_0010ac09(param_4,1,uVar9 & 0xffffffff);\n    iVar3 = strcmp((char *)param_1,"-pw");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\nLAB_00109ee5:\n      iVar3 = FUN_0010a543(param_4,2);\n      if (iVar3 == 3) {\n        DAT_00152128 = FUN_0010bd5d(param_2);\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = param_2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        FUN_0010c727(param_2,~uVar9 - 1);\n      }\n      else {\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }\n      iVar3 = strcmp((char *)param_1,"-agent");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-pagent");\n        uVar5 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108bf9;\n    }\n    iVar3 = strcmp((char *)param_1,"-agent");\n    uVar5 = 2;\n    if (iVar3 == 0) goto LAB_00108bdc;\nLAB_00108ba4:\n    iVar3 = strcmp((char *)param_1,"-pagent");\n    if (iVar3 == 0) goto LAB_00108bce;\nLAB_00108bb7:\n    iVar3 = strcmp((char *)param_1,"-pageant");\n    if (iVar3 == 0) goto LAB_00108bce;\n    iVar3 = strcmp((char *)param_1,"-noagent");\n    if ((iVar3 != 0) && (iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0))\n    goto LAB_00108d1b;\nLAB_00108d2e:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e76:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00108c37:\n    FUN_0010ac09(param_4,0x1c,0);\n    iVar3 = strcmp((char *)param_1,"-A");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d88;\n    }\n    iVar3 = strcmp((char *)param_1,"-a");\n    if (iVar3 != 0) {\n      uVar5 = 1;\nLAB_00108c7d:\n      iVar3 = strcmp((char *)param_1,"-X");\n      if (iVar3 != 0) goto LAB_00109dce;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108ca2;\n    }\nLAB_00108db9:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109d25:\n    FUN_0010ac09(param_4,0x1d,0);\n    iVar3 = strcmp((char *)param_1,"-X");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c0f:\n      FUN_0010ac09(param_4,0x95,1);\n      iVar3 = strcmp((char *)param_1,"-x");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }\n      iVar3 = strcmp((char *)param_1,"-t");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109dfc;\nLAB_00108e45:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_00109c87;\n    }\n    iVar3 = strcmp((char *)param_1,"-x");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108dff;\nLAB_00109de5:\n    iVar3 = strcmp((char *)param_1,"-t");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108e45;\n    }\nLAB_00109dfc:\n    iVar3 = strcmp((char *)param_1,"-T");\n    if (iVar3 != 0) goto LAB_00109b7b;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e21:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_00109cc5:\n    FUN_0010ac09(param_4,0x16,1);\n    iVar3 = strcmp((char *)param_1,"-N");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-C");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00108e8b;\n      goto LAB_00109aea;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\nLAB_00109a6e:\n    FUN_0010ac09(param_4,0x2d,1);\n    iVar3 = strcmp((char *)param_1,"-C");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_0010989e;\n    }\n    iVar3 = strcmp((char *)param_1,"-1");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108ed1;\nLAB_00109b01:\n    iVar3 = strcmp((char *)param_1,"-2");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00109b26:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109918;\n    }\n  }\nLAB_00109930:\n  iVar3 = strcmp((char *)param_1,"-i");\n  if (iVar3 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    uVar5 = FUN_001321a4(param_2);\n    FUN_0010af59(param_4,0x20,uVar5);\n    FUN_00132212(uVar5);\n    iVar3 = strcmp((char *)param_1,"-4");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-ipv4");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_00109814;\n    }\nLAB_001099af:\n    FUN_0010ac09(param_4,3,1);\n    iVar3 = strcmp((char *)param_1,"-6");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_001099de;\nLAB_00109827:\n    iVar3 = strcmp((char *)param_1,"-ipv6");\n    if (iVar3 == 0) goto LAB_0010983e;\n  }\n  else {\n    iVar3 = strcmp((char *)param_1,"-4");\n    if ((iVar3 == 0) || (iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_001099af;\n    }\nLAB_00109814:\n    iVar3 = strcmp((char *)param_1,"-6");\n    if (iVar3 != 0) goto LAB_00109827;\nLAB_0010983e:\n    if (param_3 < 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_001099de:\n    FUN_0010ac09(param_4,3,2);\n    uVar5 = 1;\n  }\n  iVar3 = strcmp((char *)param_1,"-sercfg");\n  if (iVar3 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }\n    iVar3 = FUN_0010a543(param_4,2);\n    pcVar6 = param_2;\n    if (iVar3 != 4) {\n      FUN_00134fb0("the -sercfg option can only be used with the serial protocol");\n    }\n    for (; *pcVar6 != '\0'; pcVar6 = pcVar6 + (local_48 + iVar3)) {\n      pcVar8 = strchr(pcVar6,0x2c);\n      if (pcVar8 == (char *)0x0) {\n        lVar10 = -1;\n        pcVar8 = pcVar6;\n        do {\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        iVar3 = ~(uint)lVar10 - 1;\n        local_48 = 0;\n      }\n      else {\n        iVar3 = (int)pcVar8 - (int)pcVar6;\n        pcVar6[iVar3] = '\0';\n        local_48 = 1;\n      }\n      if (iVar3 == 1) {\n        cVar2 = *pcVar6;\n        switch(cVar2) {\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }\n      }\n      else if ((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)) {\n        FUN_0010ac09(param_4,0x3c,3);\n      }\n      else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }\n    }\n    iVar3 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-sshlog");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_0010921f;\n      goto LAB_0010924d;\n    }\n    iVar3 = FUN_00108083(1,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_001095f3:\n    uVar5 = FUN_001321a4(param_2);\n    FUN_0010af59(param_4,0x77,uVar5);\n    FUN_0010ac09(param_4,0x78,2);\n    FUN_00132212(uVar5);\n    iVar3 = strcmp((char *)param_1,"-sshlog");\n    uVar5 = 2;\n    if (iVar3 != 0) {\nLAB_0010921f:\n      iVar3 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar3 != 0) {\n          return uVar5;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }\n      goto LAB_00109236;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n  }\n  else {\n    iVar3 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(1,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001095f3;\n    }\n    iVar3 = strcmp((char *)param_1,"-sshlog");\n    if (iVar3 != 0) goto LAB_0010921f;\nLAB_00109236:\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\nLAB_0010924d:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n  }\n  uVar5 = FUN_001321a4(param_2);\n  FUN_0010af59(param_4,0x77,uVar5);\n  iVar3 = strcmp((char *)param_1,"-sshlog");\n  FUN_0010ac09(param_4,0x78,4 - (uint)(iVar3 == 0));\n  FUN_00132212(uVar5);\n  iVar3 = strcmp((char *)param_1,"-proxycmd");\n  if (iVar3 != 0) {\n    return 2;\n  }\n  iVar3 = FUN_00108083(2,param_1);\n  if (iVar3 != 0) {\n    return 2;\n  }\nLAB_001092e3:\n  FUN_0010ac09(param_4,0xd,5);\n  FUN_0010ad3a(param_4,0x12,param_2);\n  return 2;\n}\n\n" (function_definition "undefined8 FUN_001082a0(byte *param_1,char *param_2,int param_3,undefined8 param_4)\n\n{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  int iVar4;\n  undefined8 uVar5;\n  char *pcVar6;\n  undefined8 uVar7;\n  char *pcVar8;\n  ulong uVar9;\n  FILE *__stream;\n  long lVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  long lVar13;\n  char *pcVar14;\n  bool bVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  undefined1 uVar19;\n  byte bVar20;\n  int local_48;\n  int local_3c;\n  \n  bVar20 = 0;\n  bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x28;\n  bVar18 = &stack0x00000000 == (undefined1 *)0x58;\n  lVar10 = 6;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-load";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar15 = *pbVar11 < *pbVar12;\n    bVar18 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar18);\n  bVar16 = false;\n  bVar15 = (!bVar15 && !bVar18) == bVar15;\n  if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (-1 < param_3) {\n      FUN_00116e22(param_2,param_4);\n      _DAT_00152558 = 1;\n      _DAT_00152560 = FUN_0010bd5d(param_2);\n      return 2;\n    }\n    return 2;\n  }\n  lVar10 = 5;\n  pbVar11 = param_1;\n  pbVar12 = &DAT_0013b272;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar18 = false;\n  bVar15 = (!bVar16 && !bVar15) == bVar16;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 3;\n        DAT_00152548 = 0x16;\n        FUN_0010ac09(param_4,2,3);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar10 = 8;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-telnet";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar16 = false;\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 1;\n        DAT_00152548 = 0x17;\n        FUN_0010ac09(param_4,2,1);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar10 = 8;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-rlogin";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar18 = false;\n  bVar15 = (!bVar16 && !bVar15) == bVar16;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 2;\n        DAT_00152548 = 0x201;\n        FUN_0010ac09(param_4,2,2);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar10 = 5;\n  pbVar11 = param_1;\n  pbVar12 = &DAT_0013b287;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar16 = false;\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    uVar17 = 0;\n    uVar19 = param_3 == 0;\n    if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    DAT_00152538 = 0;\n    FUN_0010ac09(param_4,2,0);\n    lVar10 = 8;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    bVar15 = false;\n    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (bVar18) {\n      iVar3 = FUN_00108083(3,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 1;\n      }\nLAB_0010858a:\n      uVar19 = 0;\n      DAT_00152538 = 4;\n      FUN_0010ac09(param_4,2,4);\n      uVar5 = FUN_0010a6d3(param_4,0);\n      FUN_0010ad3a(param_4,0x39,uVar5);\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n    }\n    else {\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n    }\n    uVar5 = 1;\n    if (bVar15) {\nLAB_00108687:\n      DAT_0015254c = DAT_0015254c | 1;\n      bVar15 = DAT_0015254c == 0;\n      uVar5 = 1;\n    }\n  }\n  else {\n    lVar10 = 8;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      uVar17 = param_3 == 0;\n      if (!(bool)uVar17) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_0010858a;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b294;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108687;\n    }\n    uVar5 = 0;\n  }\n  bVar18 = false;\n  lVar10 = 3;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)0x1440df;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);\n  bVar16 = false;\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    uVar17 = 0;\n    uVar19 = param_3 == 0;\n    if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    FUN_0010ad3a(param_4,0x34,param_2);\n    lVar10 = 9;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-loghost";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    bVar15 = false;\n    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (bVar18) {\n      iVar3 = FUN_00108083(2,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 2;\n      }\nLAB_0010a0b4:\n      uVar19 = 0;\n      FUN_0010ad3a(param_4,9,param_2);\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      uVar5 = 2;\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n      if (bVar15) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }\n    }\n    else {\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      uVar5 = 2;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (bVar15) goto LAB_00108738;\n    }\nLAB_0010884b:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2a9;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (!bVar15) goto LAB_00108865;\n    goto LAB_0010889d;\n  }\n  lVar10 = 9;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-loghost";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);\n  bVar18 = false;\n  bVar15 = (!bVar16 && !bVar15) == bVar16;\n  if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    uVar17 = param_3 == 0;\n    if (!(bool)uVar17) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    goto LAB_0010a0b4;\n  }\n  lVar10 = 9;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-hostkey";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (!bVar15) goto LAB_0010884b;\n  if (param_2 == (char *)0x0) {\n    return 0xfffffffe;\n  }\n  if (param_3 < 0) {\n    return 2;\n  }\nLAB_00108738:\n  iVar3 = FUN_00108083(2,param_1);\n  if (iVar3 != 0) {\n    return 2;\n  }\n  if (param_3 != 0) {\n    FUN_001080ad(param_1,param_2,0);\n    return 2;\n  }\nLAB_0010a103:\n  uVar5 = FUN_0010bd5d(param_2);\n  iVar3 = FUN_0010c8a8(uVar5);\n  uVar17 = 0;\n  uVar19 = iVar3 == 0;\n  if ((bool)uVar19) {\n    FUN_00134fb0("\'%s\' is not a valid format for a manual host key specification",param_2);\n    FUN_0010c4d3(uVar5);\n    return 2;\n  }\n  FUN_0010ade1(param_4,0xad,uVar5,&DAT_0013bec9);\n  FUN_0010c4d3(uVar5);\n  lVar10 = 3;\n  pbVar11 = param_1;\n  pbVar12 = &DAT_0013b2a9;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    uVar17 = *pbVar11 < *pbVar12;\n    uVar19 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while ((bool)uVar19);\n  uVar5 = 2;\n  bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n  if (bVar15) {\n    iVar3 = FUN_00108083(3,param_1);\n    bVar15 = iVar3 == 0;\n    if (!bVar15) {\n      return 2;\n    }\nLAB_001088cd:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)0x1440f1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    uVar17 = 0;\n    uVar19 = (!bVar18 && !bVar15) == bVar18;\n    if ((bool)uVar19) {\n      uVar5 = FUN_0010c2a6(&DAT_0013b2b6,param_2);\n      uVar7 = FUN_0010bd5d("D");\n    }\n    else {\n      bVar1 = param_1[1];\n      pcVar6 = (char *)FUN_0010b8c9(param_2,0x3a);\n      pcVar8 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\nLAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);\n        return 2;\n      }\n      do {\n        pcVar14 = pcVar8;\n        pcVar8 = pcVar6;\n        pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);\n      } while (pcVar6 != (char *)0x0);\n      if (pcVar14 == (char *)0x0) goto LAB_00108973;\n      uVar17 = pcVar14 < param_2;\n      uVar19 = (long)pcVar14 - (long)param_2 == 0;\n      uVar5 = FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2);\n      uVar7 = FUN_0010bd5d(pcVar14 + 1);\n    }\n    FUN_0010ade1(param_4,0x9b,uVar5,uVar7);\n    FUN_0010c4d3(uVar5);\n    FUN_0010c4d3(uVar7);\n    lVar10 = 4;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2ba;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    uVar5 = 2;\n    bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (!bVar15) goto LAB_00108a01;\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_00109fa5:\n    lVar10 = FUN_0010b8c9(param_2,0x3a);\n    if (lVar10 == 0) {\n      FUN_00134fb0("-nc expects argument of form \'host:port\'");\n      return 2;\n    }\n    uVar5 = FUN_0010c2a6(&DAT_0013b2b1,lVar10 - (long)param_2,param_2);\n    FUN_0010ad3a(param_4,0x2e,uVar5);\n    uVar9 = strtol((char *)(lVar10 + 1),(char **)0x0,10);\n    FUN_0010ac09(param_4,0x2f,uVar9 & 0xffffffff);\n    FUN_0010c4d3(uVar5);\n    iVar3 = strcmp((char *)param_1,"-m");\n    uVar5 = 2;\n    bVar15 = iVar3 == 0;\n    if (!bVar15) goto LAB_0010a032;\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_00109f54:\n    __stream = fopen64(param_2,"r");\n    if (__stream == (FILE *)0x0) {\n      FUN_00134fb0("unable to open command file \"%s\"",param_2);\n      return 2;\n    }\n    lVar13 = 0;\n    local_3c = 0;\n    lVar10 = 0;\n    while( true ) {\n      iVar4 = (int)lVar13;\n      iVar3 = fgetc(__stream);\n      if (iVar3 == -1) break;\n      local_48._0_1_ = (undefined1)iVar3;\n      if (iVar4 < local_3c) {\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      else {\n        local_3c = iVar4 + 0x200;\n        lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      lVar13 = lVar13 + 1;\n    }\n    if (iVar4 < local_3c) {\n      *(undefined1 *)(lVar10 + iVar4) = 0;\n    }\n    else {\n      lVar10 = FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1);\n      *(undefined1 *)(lVar10 + lVar13) = 0;\n    }\n    fclose(__stream);\n    FUN_0010ad3a(param_4,0x14,lVar10);\n    FUN_0010ad3a(param_4,0x15,&DAT_0013bec9);\n    FUN_0010ac09(param_4,0x16,1);\n    FUN_0010c4d3(lVar10);\n    iVar3 = strcmp((char *)param_1,"-P");\n    uVar5 = 2;\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      goto LAB_00109749;\n    }\nLAB_00108afa:\n    iVar3 = strcmp((char *)param_1,"-pw");\n    if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 2;\n      }\n      goto LAB_00109ee5;\n    }\n    iVar3 = strcmp((char *)param_1,"-agent");\n    if (iVar3 != 0) goto LAB_00108ba4;\nLAB_00108bce:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108bdc:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00108bf9:\n    FUN_0010ac09(param_4,0x1c,1);\n    iVar3 = strcmp((char *)param_1,"-noagent");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108c37;\n    }\n    iVar3 = strcmp((char *)param_1,"-nopagent");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00109e76;\nLAB_00108d1b:\n    iVar3 = strcmp((char *)param_1,"-nopageant");\n    if (iVar3 == 0) goto LAB_00108d2e;\n    iVar3 = strcmp((char *)param_1,"-A");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-a");\n      if (iVar3 != 0) goto LAB_00108c7d;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108db9;\n    }\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109d88:\n    FUN_0010ac09(param_4,0x1d,1);\n    iVar3 = strcmp((char *)param_1,"-a");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d25;\n    }\n    iVar3 = strcmp((char *)param_1,"-X");\n    uVar5 = 1;\n    if (iVar3 == 0) {\nLAB_00108ca2:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109c0f;\n    }\nLAB_00109dce:\n    iVar3 = strcmp((char *)param_1,"-x");\n    if (iVar3 != 0) goto LAB_00109de5;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108dff:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109c49:\n    FUN_0010ac09(param_4,0x95,0);\n    iVar3 = strcmp((char *)param_1,"-t");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c87:\n      FUN_0010ac09(param_4,0x16,0);\n      iVar3 = strcmp((char *)param_1,"-T");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }\n      iVar3 = strcmp((char *)param_1,"-N");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109ba0;\n    }\n    else {\n      iVar3 = strcmp((char *)param_1,"-T");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109e21;\nLAB_00109b7b:\n      iVar3 = strcmp((char *)param_1,"-N");\n      if (iVar3 == 0) {\n        if (param_3 < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }\n    }\n    iVar3 = strcmp((char *)param_1,"-C");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00108e8b:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\nLAB_0010989e:\n      FUN_0010ac09(param_4,0x17,1);\n      iVar3 = strcmp((char *)param_1,"-1");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }\n      iVar3 = strcmp((char *)param_1,"-2");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109930;\n      goto LAB_00109b26;\n    }\nLAB_00109aea:\n    iVar3 = strcmp((char *)param_1,"-1");\n    if (iVar3 != 0) goto LAB_00109b01;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108ed1:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_001098d8:\n    FUN_0010ac09(param_4,0x21,0);\n    iVar3 = strcmp((char *)param_1,"-2");\n    uVar5 = 1;\n    if (iVar3 != 0) goto LAB_00109930;\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\nLAB_00109918:\n    FUN_0010ac09(param_4,0x21,3);\n    uVar5 = 1;\n  }\n  else {\nLAB_00108865:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2ac;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\nLAB_0010889d:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      bVar15 = param_3 == 0;\n      if (!bVar15) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001088cd;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)0x1440f1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_0010889d;\n    iVar3 = strcmp((char *)param_1,"-nc");\n    bVar15 = iVar3 == 0;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109fa5;\n    }\nLAB_00108a01:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2be;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109f54;\n    }\nLAB_0010a032:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2c1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar18 && !bVar15) != bVar18) goto LAB_00108afa;\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }\nLAB_00109749:\n    uVar9 = strtol(param_2,(char **)0x0,10);\n    FUN_0010ac09(param_4,1,uVar9 & 0xffffffff);\n    iVar3 = strcmp((char *)param_1,"-pw");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\nLAB_00109ee5:\n      iVar3 = FUN_0010a543(param_4,2);\n      if (iVar3 == 3) {\n        DAT_00152128 = FUN_0010bd5d(param_2);\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = param_2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        FUN_0010c727(param_2,~uVar9 - 1);\n      }\n      else {\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }\n      iVar3 = strcmp((char *)param_1,"-agent");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-pagent");\n        uVar5 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108bf9;\n    }\n    iVar3 = strcmp((char *)param_1,"-agent");\n    uVar5 = 2;\n    if (iVar3 == 0) goto LAB_00108bdc;\nLAB_00108ba4:\n    iVar3 = strcmp((char *)param_1,"-pagent");\n    if (iVar3 == 0) goto LAB_00108bce;\nLAB_00108bb7:\n    iVar3 = strcmp((char *)param_1,"-pageant");\n    if (iVar3 == 0) goto LAB_00108bce;\n    iVar3 = strcmp((char *)param_1,"-noagent");\n    if ((iVar3 != 0) && (iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0))\n    goto LAB_00108d1b;\nLAB_00108d2e:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e76:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00108c37:\n    FUN_0010ac09(param_4,0x1c,0);\n    iVar3 = strcmp((char *)param_1,"-A");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d88;\n    }\n    iVar3 = strcmp((char *)param_1,"-a");\n    if (iVar3 != 0) {\n      uVar5 = 1;\nLAB_00108c7d:\n      iVar3 = strcmp((char *)param_1,"-X");\n      if (iVar3 != 0) goto LAB_00109dce;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108ca2;\n    }\nLAB_00108db9:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109d25:\n    FUN_0010ac09(param_4,0x1d,0);\n    iVar3 = strcmp((char *)param_1,"-X");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c0f:\n      FUN_0010ac09(param_4,0x95,1);\n      iVar3 = strcmp((char *)param_1,"-x");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }\n      iVar3 = strcmp((char *)param_1,"-t");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109dfc;\nLAB_00108e45:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_00109c87;\n    }\n    iVar3 = strcmp((char *)param_1,"-x");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108dff;\nLAB_00109de5:\n    iVar3 = strcmp((char *)param_1,"-t");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108e45;\n    }\nLAB_00109dfc:\n    iVar3 = strcmp((char *)param_1,"-T");\n    if (iVar3 != 0) goto LAB_00109b7b;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e21:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_00109cc5:\n    FUN_0010ac09(param_4,0x16,1);\n    iVar3 = strcmp((char *)param_1,"-N");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-C");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00108e8b;\n      goto LAB_00109aea;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\nLAB_00109a6e:\n    FUN_0010ac09(param_4,0x2d,1);\n    iVar3 = strcmp((char *)param_1,"-C");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_0010989e;\n    }\n    iVar3 = strcmp((char *)param_1,"-1");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108ed1;\nLAB_00109b01:\n    iVar3 = strcmp((char *)param_1,"-2");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00109b26:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109918;\n    }\n  }\nLAB_00109930:\n  iVar3 = strcmp((char *)param_1,"-i");\n  if (iVar3 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    uVar5 = FUN_001321a4(param_2);\n    FUN_0010af59(param_4,0x20,uVar5);\n    FUN_00132212(uVar5);\n    iVar3 = strcmp((char *)param_1,"-4");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-ipv4");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_00109814;\n    }\nLAB_001099af:\n    FUN_0010ac09(param_4,3,1);\n    iVar3 = strcmp((char *)param_1,"-6");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_001099de;\nLAB_00109827:\n    iVar3 = strcmp((char *)param_1,"-ipv6");\n    if (iVar3 == 0) goto LAB_0010983e;\n  }\n  else {\n    iVar3 = strcmp((char *)param_1,"-4");\n    if ((iVar3 == 0) || (iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_001099af;\n    }\nLAB_00109814:\n    iVar3 = strcmp((char *)param_1,"-6");\n    if (iVar3 != 0) goto LAB_00109827;\nLAB_0010983e:\n    if (param_3 < 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_001099de:\n    FUN_0010ac09(param_4,3,2);\n    uVar5 = 1;\n  }\n  iVar3 = strcmp((char *)param_1,"-sercfg");\n  if (iVar3 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }\n    iVar3 = FUN_0010a543(param_4,2);\n    pcVar6 = param_2;\n    if (iVar3 != 4) {\n      FUN_00134fb0("the -sercfg option can only be used with the serial protocol");\n    }\n    for (; *pcVar6 != '\0'; pcVar6 = pcVar6 + (local_48 + iVar3)) {\n      pcVar8 = strchr(pcVar6,0x2c);\n      if (pcVar8 == (char *)0x0) {\n        lVar10 = -1;\n        pcVar8 = pcVar6;\n        do {\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        iVar3 = ~(uint)lVar10 - 1;\n        local_48 = 0;\n      }\n      else {\n        iVar3 = (int)pcVar8 - (int)pcVar6;\n        pcVar6[iVar3] = '\0';\n        local_48 = 1;\n      }\n      if (iVar3 == 1) {\n        cVar2 = *pcVar6;\n        switch(cVar2) {\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }\n      }\n      else if ((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)) {\n        FUN_0010ac09(param_4,0x3c,3);\n      }\n      else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }\n    }\n    iVar3 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-sshlog");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_0010921f;\n      goto LAB_0010924d;\n    }\n    iVar3 = FUN_00108083(1,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_001095f3:\n    uVar5 = FUN_001321a4(param_2);\n    FUN_0010af59(param_4,0x77,uVar5);\n    FUN_0010ac09(param_4,0x78,2);\n    FUN_00132212(uVar5);\n    iVar3 = strcmp((char *)param_1,"-sshlog");\n    uVar5 = 2;\n    if (iVar3 != 0) {\nLAB_0010921f:\n      iVar3 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar3 != 0) {\n          return uVar5;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }\n      goto LAB_00109236;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n  }\n  else {\n    iVar3 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(1,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001095f3;\n    }\n    iVar3 = strcmp((char *)param_1,"-sshlog");\n    if (iVar3 != 0) goto LAB_0010921f;\nLAB_00109236:\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\nLAB_0010924d:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n  }\n  uVar5 = FUN_001321a4(param_2);\n  FUN_0010af59(param_4,0x77,uVar5);\n  iVar3 = strcmp((char *)param_1,"-sshlog");\n  FUN_0010ac09(param_4,0x78,4 - (uint)(iVar3 == 0));\n  FUN_00132212(uVar5);\n  iVar3 = strcmp((char *)param_1,"-proxycmd");\n  if (iVar3 != 0) {\n    return 2;\n  }\n  iVar3 = FUN_00108083(2,param_1);\n  if (iVar3 != 0) {\n    return 2;\n  }\nLAB_001092e3:\n  FUN_0010ac09(param_4,0xd,5);\n  FUN_0010ad3a(param_4,0x12,param_2);\n  return 2;\n}" type_identifier (function_declarator "FUN_001082a0(byte *param_1,char *param_2,int param_3,undefined8 param_4)" identifier (parameter_list "(byte *param_1,char *param_2,int param_3,undefined8 param_4)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  int iVar4;\n  undefined8 uVar5;\n  char *pcVar6;\n  undefined8 uVar7;\n  char *pcVar8;\n  ulong uVar9;\n  FILE *__stream;\n  long lVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  long lVar13;\n  char *pcVar14;\n  bool bVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  undefined1 uVar19;\n  byte bVar20;\n  int local_48;\n  int local_3c;\n  \n  bVar20 = 0;\n  bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x28;\n  bVar18 = &stack0x00000000 == (undefined1 *)0x58;\n  lVar10 = 6;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-load";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar15 = *pbVar11 < *pbVar12;\n    bVar18 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar18);\n  bVar16 = false;\n  bVar15 = (!bVar15 && !bVar18) == bVar15;\n  if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (-1 < param_3) {\n      FUN_00116e22(param_2,param_4);\n      _DAT_00152558 = 1;\n      _DAT_00152560 = FUN_0010bd5d(param_2);\n      return 2;\n    }\n    return 2;\n  }\n  lVar10 = 5;\n  pbVar11 = param_1;\n  pbVar12 = &DAT_0013b272;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar18 = false;\n  bVar15 = (!bVar16 && !bVar15) == bVar16;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 3;\n        DAT_00152548 = 0x16;\n        FUN_0010ac09(param_4,2,3);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar10 = 8;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-telnet";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar16 = false;\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 1;\n        DAT_00152548 = 0x17;\n        FUN_0010ac09(param_4,2,1);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar10 = 8;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-rlogin";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar18 = false;\n  bVar15 = (!bVar16 && !bVar15) == bVar16;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 2;\n        DAT_00152548 = 0x201;\n        FUN_0010ac09(param_4,2,2);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar10 = 5;\n  pbVar11 = param_1;\n  pbVar12 = &DAT_0013b287;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar16 = false;\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    uVar17 = 0;\n    uVar19 = param_3 == 0;\n    if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    DAT_00152538 = 0;\n    FUN_0010ac09(param_4,2,0);\n    lVar10 = 8;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    bVar15 = false;\n    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (bVar18) {\n      iVar3 = FUN_00108083(3,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 1;\n      }\nLAB_0010858a:\n      uVar19 = 0;\n      DAT_00152538 = 4;\n      FUN_0010ac09(param_4,2,4);\n      uVar5 = FUN_0010a6d3(param_4,0);\n      FUN_0010ad3a(param_4,0x39,uVar5);\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n    }\n    else {\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n    }\n    uVar5 = 1;\n    if (bVar15) {\nLAB_00108687:\n      DAT_0015254c = DAT_0015254c | 1;\n      bVar15 = DAT_0015254c == 0;\n      uVar5 = 1;\n    }\n  }\n  else {\n    lVar10 = 8;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      uVar17 = param_3 == 0;\n      if (!(bool)uVar17) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_0010858a;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b294;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108687;\n    }\n    uVar5 = 0;\n  }\n  bVar18 = false;\n  lVar10 = 3;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)0x1440df;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);\n  bVar16 = false;\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    uVar17 = 0;\n    uVar19 = param_3 == 0;\n    if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    FUN_0010ad3a(param_4,0x34,param_2);\n    lVar10 = 9;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-loghost";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    bVar15 = false;\n    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (bVar18) {\n      iVar3 = FUN_00108083(2,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 2;\n      }\nLAB_0010a0b4:\n      uVar19 = 0;\n      FUN_0010ad3a(param_4,9,param_2);\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      uVar5 = 2;\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n      if (bVar15) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }\n    }\n    else {\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      uVar5 = 2;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (bVar15) goto LAB_00108738;\n    }\nLAB_0010884b:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2a9;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (!bVar15) goto LAB_00108865;\n    goto LAB_0010889d;\n  }\n  lVar10 = 9;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-loghost";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);\n  bVar18 = false;\n  bVar15 = (!bVar16 && !bVar15) == bVar16;\n  if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    uVar17 = param_3 == 0;\n    if (!(bool)uVar17) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    goto LAB_0010a0b4;\n  }\n  lVar10 = 9;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-hostkey";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (!bVar15) goto LAB_0010884b;\n  if (param_2 == (char *)0x0) {\n    return 0xfffffffe;\n  }\n  if (param_3 < 0) {\n    return 2;\n  }\nLAB_00108738:\n  iVar3 = FUN_00108083(2,param_1);\n  if (iVar3 != 0) {\n    return 2;\n  }\n  if (param_3 != 0) {\n    FUN_001080ad(param_1,param_2,0);\n    return 2;\n  }\nLAB_0010a103:\n  uVar5 = FUN_0010bd5d(param_2);\n  iVar3 = FUN_0010c8a8(uVar5);\n  uVar17 = 0;\n  uVar19 = iVar3 == 0;\n  if ((bool)uVar19) {\n    FUN_00134fb0("\'%s\' is not a valid format for a manual host key specification",param_2);\n    FUN_0010c4d3(uVar5);\n    return 2;\n  }\n  FUN_0010ade1(param_4,0xad,uVar5,&DAT_0013bec9);\n  FUN_0010c4d3(uVar5);\n  lVar10 = 3;\n  pbVar11 = param_1;\n  pbVar12 = &DAT_0013b2a9;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    uVar17 = *pbVar11 < *pbVar12;\n    uVar19 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while ((bool)uVar19);\n  uVar5 = 2;\n  bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n  if (bVar15) {\n    iVar3 = FUN_00108083(3,param_1);\n    bVar15 = iVar3 == 0;\n    if (!bVar15) {\n      return 2;\n    }\nLAB_001088cd:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)0x1440f1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    uVar17 = 0;\n    uVar19 = (!bVar18 && !bVar15) == bVar18;\n    if ((bool)uVar19) {\n      uVar5 = FUN_0010c2a6(&DAT_0013b2b6,param_2);\n      uVar7 = FUN_0010bd5d("D");\n    }\n    else {\n      bVar1 = param_1[1];\n      pcVar6 = (char *)FUN_0010b8c9(param_2,0x3a);\n      pcVar8 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\nLAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);\n        return 2;\n      }\n      do {\n        pcVar14 = pcVar8;\n        pcVar8 = pcVar6;\n        pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);\n      } while (pcVar6 != (char *)0x0);\n      if (pcVar14 == (char *)0x0) goto LAB_00108973;\n      uVar17 = pcVar14 < param_2;\n      uVar19 = (long)pcVar14 - (long)param_2 == 0;\n      uVar5 = FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2);\n      uVar7 = FUN_0010bd5d(pcVar14 + 1);\n    }\n    FUN_0010ade1(param_4,0x9b,uVar5,uVar7);\n    FUN_0010c4d3(uVar5);\n    FUN_0010c4d3(uVar7);\n    lVar10 = 4;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2ba;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    uVar5 = 2;\n    bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (!bVar15) goto LAB_00108a01;\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_00109fa5:\n    lVar10 = FUN_0010b8c9(param_2,0x3a);\n    if (lVar10 == 0) {\n      FUN_00134fb0("-nc expects argument of form \'host:port\'");\n      return 2;\n    }\n    uVar5 = FUN_0010c2a6(&DAT_0013b2b1,lVar10 - (long)param_2,param_2);\n    FUN_0010ad3a(param_4,0x2e,uVar5);\n    uVar9 = strtol((char *)(lVar10 + 1),(char **)0x0,10);\n    FUN_0010ac09(param_4,0x2f,uVar9 & 0xffffffff);\n    FUN_0010c4d3(uVar5);\n    iVar3 = strcmp((char *)param_1,"-m");\n    uVar5 = 2;\n    bVar15 = iVar3 == 0;\n    if (!bVar15) goto LAB_0010a032;\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_00109f54:\n    __stream = fopen64(param_2,"r");\n    if (__stream == (FILE *)0x0) {\n      FUN_00134fb0("unable to open command file \"%s\"",param_2);\n      return 2;\n    }\n    lVar13 = 0;\n    local_3c = 0;\n    lVar10 = 0;\n    while( true ) {\n      iVar4 = (int)lVar13;\n      iVar3 = fgetc(__stream);\n      if (iVar3 == -1) break;\n      local_48._0_1_ = (undefined1)iVar3;\n      if (iVar4 < local_3c) {\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      else {\n        local_3c = iVar4 + 0x200;\n        lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      lVar13 = lVar13 + 1;\n    }\n    if (iVar4 < local_3c) {\n      *(undefined1 *)(lVar10 + iVar4) = 0;\n    }\n    else {\n      lVar10 = FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1);\n      *(undefined1 *)(lVar10 + lVar13) = 0;\n    }\n    fclose(__stream);\n    FUN_0010ad3a(param_4,0x14,lVar10);\n    FUN_0010ad3a(param_4,0x15,&DAT_0013bec9);\n    FUN_0010ac09(param_4,0x16,1);\n    FUN_0010c4d3(lVar10);\n    iVar3 = strcmp((char *)param_1,"-P");\n    uVar5 = 2;\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      goto LAB_00109749;\n    }\nLAB_00108afa:\n    iVar3 = strcmp((char *)param_1,"-pw");\n    if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 2;\n      }\n      goto LAB_00109ee5;\n    }\n    iVar3 = strcmp((char *)param_1,"-agent");\n    if (iVar3 != 0) goto LAB_00108ba4;\nLAB_00108bce:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108bdc:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00108bf9:\n    FUN_0010ac09(param_4,0x1c,1);\n    iVar3 = strcmp((char *)param_1,"-noagent");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108c37;\n    }\n    iVar3 = strcmp((char *)param_1,"-nopagent");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00109e76;\nLAB_00108d1b:\n    iVar3 = strcmp((char *)param_1,"-nopageant");\n    if (iVar3 == 0) goto LAB_00108d2e;\n    iVar3 = strcmp((char *)param_1,"-A");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-a");\n      if (iVar3 != 0) goto LAB_00108c7d;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108db9;\n    }\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109d88:\n    FUN_0010ac09(param_4,0x1d,1);\n    iVar3 = strcmp((char *)param_1,"-a");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d25;\n    }\n    iVar3 = strcmp((char *)param_1,"-X");\n    uVar5 = 1;\n    if (iVar3 == 0) {\nLAB_00108ca2:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109c0f;\n    }\nLAB_00109dce:\n    iVar3 = strcmp((char *)param_1,"-x");\n    if (iVar3 != 0) goto LAB_00109de5;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108dff:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109c49:\n    FUN_0010ac09(param_4,0x95,0);\n    iVar3 = strcmp((char *)param_1,"-t");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c87:\n      FUN_0010ac09(param_4,0x16,0);\n      iVar3 = strcmp((char *)param_1,"-T");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }\n      iVar3 = strcmp((char *)param_1,"-N");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109ba0;\n    }\n    else {\n      iVar3 = strcmp((char *)param_1,"-T");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109e21;\nLAB_00109b7b:\n      iVar3 = strcmp((char *)param_1,"-N");\n      if (iVar3 == 0) {\n        if (param_3 < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }\n    }\n    iVar3 = strcmp((char *)param_1,"-C");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00108e8b:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\nLAB_0010989e:\n      FUN_0010ac09(param_4,0x17,1);\n      iVar3 = strcmp((char *)param_1,"-1");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }\n      iVar3 = strcmp((char *)param_1,"-2");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109930;\n      goto LAB_00109b26;\n    }\nLAB_00109aea:\n    iVar3 = strcmp((char *)param_1,"-1");\n    if (iVar3 != 0) goto LAB_00109b01;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108ed1:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_001098d8:\n    FUN_0010ac09(param_4,0x21,0);\n    iVar3 = strcmp((char *)param_1,"-2");\n    uVar5 = 1;\n    if (iVar3 != 0) goto LAB_00109930;\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\nLAB_00109918:\n    FUN_0010ac09(param_4,0x21,3);\n    uVar5 = 1;\n  }\n  else {\nLAB_00108865:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2ac;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\nLAB_0010889d:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      bVar15 = param_3 == 0;\n      if (!bVar15) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001088cd;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)0x1440f1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_0010889d;\n    iVar3 = strcmp((char *)param_1,"-nc");\n    bVar15 = iVar3 == 0;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109fa5;\n    }\nLAB_00108a01:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2be;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109f54;\n    }\nLAB_0010a032:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2c1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar18 && !bVar15) != bVar18) goto LAB_00108afa;\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }\nLAB_00109749:\n    uVar9 = strtol(param_2,(char **)0x0,10);\n    FUN_0010ac09(param_4,1,uVar9 & 0xffffffff);\n    iVar3 = strcmp((char *)param_1,"-pw");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\nLAB_00109ee5:\n      iVar3 = FUN_0010a543(param_4,2);\n      if (iVar3 == 3) {\n        DAT_00152128 = FUN_0010bd5d(param_2);\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = param_2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        FUN_0010c727(param_2,~uVar9 - 1);\n      }\n      else {\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }\n      iVar3 = strcmp((char *)param_1,"-agent");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-pagent");\n        uVar5 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108bf9;\n    }\n    iVar3 = strcmp((char *)param_1,"-agent");\n    uVar5 = 2;\n    if (iVar3 == 0) goto LAB_00108bdc;\nLAB_00108ba4:\n    iVar3 = strcmp((char *)param_1,"-pagent");\n    if (iVar3 == 0) goto LAB_00108bce;\nLAB_00108bb7:\n    iVar3 = strcmp((char *)param_1,"-pageant");\n    if (iVar3 == 0) goto LAB_00108bce;\n    iVar3 = strcmp((char *)param_1,"-noagent");\n    if ((iVar3 != 0) && (iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0))\n    goto LAB_00108d1b;\nLAB_00108d2e:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e76:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00108c37:\n    FUN_0010ac09(param_4,0x1c,0);\n    iVar3 = strcmp((char *)param_1,"-A");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d88;\n    }\n    iVar3 = strcmp((char *)param_1,"-a");\n    if (iVar3 != 0) {\n      uVar5 = 1;\nLAB_00108c7d:\n      iVar3 = strcmp((char *)param_1,"-X");\n      if (iVar3 != 0) goto LAB_00109dce;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108ca2;\n    }\nLAB_00108db9:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109d25:\n    FUN_0010ac09(param_4,0x1d,0);\n    iVar3 = strcmp((char *)param_1,"-X");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c0f:\n      FUN_0010ac09(param_4,0x95,1);\n      iVar3 = strcmp((char *)param_1,"-x");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }\n      iVar3 = strcmp((char *)param_1,"-t");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109dfc;\nLAB_00108e45:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_00109c87;\n    }\n    iVar3 = strcmp((char *)param_1,"-x");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108dff;\nLAB_00109de5:\n    iVar3 = strcmp((char *)param_1,"-t");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108e45;\n    }\nLAB_00109dfc:\n    iVar3 = strcmp((char *)param_1,"-T");\n    if (iVar3 != 0) goto LAB_00109b7b;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e21:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_00109cc5:\n    FUN_0010ac09(param_4,0x16,1);\n    iVar3 = strcmp((char *)param_1,"-N");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-C");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00108e8b;\n      goto LAB_00109aea;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\nLAB_00109a6e:\n    FUN_0010ac09(param_4,0x2d,1);\n    iVar3 = strcmp((char *)param_1,"-C");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_0010989e;\n    }\n    iVar3 = strcmp((char *)param_1,"-1");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108ed1;\nLAB_00109b01:\n    iVar3 = strcmp((char *)param_1,"-2");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00109b26:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109918;\n    }\n  }\nLAB_00109930:\n  iVar3 = strcmp((char *)param_1,"-i");\n  if (iVar3 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    uVar5 = FUN_001321a4(param_2);\n    FUN_0010af59(param_4,0x20,uVar5);\n    FUN_00132212(uVar5);\n    iVar3 = strcmp((char *)param_1,"-4");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-ipv4");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_00109814;\n    }\nLAB_001099af:\n    FUN_0010ac09(param_4,3,1);\n    iVar3 = strcmp((char *)param_1,"-6");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_001099de;\nLAB_00109827:\n    iVar3 = strcmp((char *)param_1,"-ipv6");\n    if (iVar3 == 0) goto LAB_0010983e;\n  }\n  else {\n    iVar3 = strcmp((char *)param_1,"-4");\n    if ((iVar3 == 0) || (iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_001099af;\n    }\nLAB_00109814:\n    iVar3 = strcmp((char *)param_1,"-6");\n    if (iVar3 != 0) goto LAB_00109827;\nLAB_0010983e:\n    if (param_3 < 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_001099de:\n    FUN_0010ac09(param_4,3,2);\n    uVar5 = 1;\n  }\n  iVar3 = strcmp((char *)param_1,"-sercfg");\n  if (iVar3 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }\n    iVar3 = FUN_0010a543(param_4,2);\n    pcVar6 = param_2;\n    if (iVar3 != 4) {\n      FUN_00134fb0("the -sercfg option can only be used with the serial protocol");\n    }\n    for (; *pcVar6 != '\0'; pcVar6 = pcVar6 + (local_48 + iVar3)) {\n      pcVar8 = strchr(pcVar6,0x2c);\n      if (pcVar8 == (char *)0x0) {\n        lVar10 = -1;\n        pcVar8 = pcVar6;\n        do {\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        iVar3 = ~(uint)lVar10 - 1;\n        local_48 = 0;\n      }\n      else {\n        iVar3 = (int)pcVar8 - (int)pcVar6;\n        pcVar6[iVar3] = '\0';\n        local_48 = 1;\n      }\n      if (iVar3 == 1) {\n        cVar2 = *pcVar6;\n        switch(cVar2) {\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }\n      }\n      else if ((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)) {\n        FUN_0010ac09(param_4,0x3c,3);\n      }\n      else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }\n    }\n    iVar3 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-sshlog");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_0010921f;\n      goto LAB_0010924d;\n    }\n    iVar3 = FUN_00108083(1,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_001095f3:\n    uVar5 = FUN_001321a4(param_2);\n    FUN_0010af59(param_4,0x77,uVar5);\n    FUN_0010ac09(param_4,0x78,2);\n    FUN_00132212(uVar5);\n    iVar3 = strcmp((char *)param_1,"-sshlog");\n    uVar5 = 2;\n    if (iVar3 != 0) {\nLAB_0010921f:\n      iVar3 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar3 != 0) {\n          return uVar5;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }\n      goto LAB_00109236;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n  }\n  else {\n    iVar3 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(1,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001095f3;\n    }\n    iVar3 = strcmp((char *)param_1,"-sshlog");\n    if (iVar3 != 0) goto LAB_0010921f;\nLAB_00109236:\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\nLAB_0010924d:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n  }\n  uVar5 = FUN_001321a4(param_2);\n  FUN_0010af59(param_4,0x77,uVar5);\n  iVar3 = strcmp((char *)param_1,"-sshlog");\n  FUN_0010ac09(param_4,0x78,4 - (uint)(iVar3 == 0));\n  FUN_00132212(uVar5);\n  iVar3 = strcmp((char *)param_1,"-proxycmd");\n  if (iVar3 != 0) {\n    return 2;\n  }\n  iVar3 = FUN_00108083(2,param_1);\n  if (iVar3 != 0) {\n    return 2;\n  }\nLAB_001092e3:\n  FUN_0010ac09(param_4,0xd,5);\n  FUN_0010ad3a(param_4,0x12,param_2);\n  return 2;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "long lVar13;" (sized_type_specifier "long" long) identifier ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "undefined1 uVar17;" type_identifier identifier ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "undefined1 uVar19;" type_identifier identifier ;) (declaration "byte bVar20;" type_identifier identifier ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (expression_statement "bVar20 = 0;" (assignment_expression "bVar20 = 0" identifier = number_literal) ;) (expression_statement "bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x28;" (assignment_expression "bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x28" identifier = (binary_expression "&stack0xffffffffffffffd0 < (undefined1 *)0x28" (pointer_expression "&stack0xffffffffffffffd0" & identifier) < (cast_expression "(undefined1 *)0x28" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "bVar18 = &stack0x00000000 == (undefined1 *)0x58;" (assignment_expression "bVar18 = &stack0x00000000 == (undefined1 *)0x58" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x58" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x58" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "lVar10 = 6;" (assignment_expression "lVar10 = 6" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"-load";" (assignment_expression "pbVar12 = (byte *)"-load"" identifier = (cast_expression "(byte *)"-load"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""-load"" " string_content "))) ;) (do_statement "do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar15 = *pbVar11 < *pbVar12;\n    bVar18 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar18);" do (compound_statement "{\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar15 = *pbVar11 < *pbVar12;\n    bVar18 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar11 < *pbVar12;" (assignment_expression "bVar15 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar18 = *pbVar11 == *pbVar12;" (assignment_expression "bVar18 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar15 && !bVar18) == bVar15;" (assignment_expression "bVar15 = (!bVar15 && !bVar18) == bVar15" identifier = (binary_expression "(!bVar15 && !bVar18) == bVar15" (parenthesized_expression "(!bVar15 && !bVar18)" ( (binary_expression "!bVar15 && !bVar18" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (-1 < param_3) {\n      FUN_00116e22(param_2,param_4);\n      _DAT_00152558 = 1;\n      _DAT_00152560 = FUN_0010bd5d(param_2);\n      return 2;\n    }\n    return 2;\n  }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (-1 < param_3) {\n      FUN_00116e22(param_2,param_4);\n      _DAT_00152558 = 1;\n      _DAT_00152560 = FUN_0010bd5d(param_2);\n      return 2;\n    }\n    return 2;\n  }" { (if_statement "if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 0xfffffffe;\n    }" { (return_statement "return 0xfffffffe;" return number_literal ;) })) (if_statement "if (-1 < param_3) {\n      FUN_00116e22(param_2,param_4);\n      _DAT_00152558 = 1;\n      _DAT_00152560 = FUN_0010bd5d(param_2);\n      return 2;\n    }" if (parenthesized_expression "(-1 < param_3)" ( (binary_expression "-1 < param_3" number_literal < identifier) )) (compound_statement "{\n      FUN_00116e22(param_2,param_4);\n      _DAT_00152558 = 1;\n      _DAT_00152560 = FUN_0010bd5d(param_2);\n      return 2;\n    }" { (expression_statement "FUN_00116e22(param_2,param_4);" (call_expression "FUN_00116e22(param_2,param_4)" identifier (argument_list "(param_2,param_4)" ( identifier , identifier ))) ;) (expression_statement "_DAT_00152558 = 1;" (assignment_expression "_DAT_00152558 = 1" identifier = number_literal) ;) (expression_statement "_DAT_00152560 = FUN_0010bd5d(param_2);" (assignment_expression "_DAT_00152560 = FUN_0010bd5d(param_2)" identifier = (call_expression "FUN_0010bd5d(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (return_statement "return 2;" return number_literal ;) })) (return_statement "return 2;" return number_literal ;) })) (expression_statement "lVar10 = 5;" (assignment_expression "lVar10 = 5" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = &DAT_0013b272;" (assignment_expression "pbVar12 = &DAT_0013b272" identifier = (pointer_expression "&DAT_0013b272" & identifier)) ;) (do_statement "do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);" do (compound_statement "{\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar11 < *pbVar12;" (assignment_expression "bVar16 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar16 && !bVar15) == bVar16;" (assignment_expression "bVar15 = (!bVar16 && !bVar15) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar15) == bVar16" (parenthesized_expression "(!bVar16 && !bVar15)" ( (binary_expression "!bVar16 && !bVar15" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 3;\n        DAT_00152548 = 0x16;\n        FUN_0010ac09(param_4,2,3);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 3;\n        DAT_00152548 = 0x16;\n        FUN_0010ac09(param_4,2,3);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }" { (if_statement "if (param_3 < 0) {\n      return 1;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 3;\n        DAT_00152548 = 0x16;\n        FUN_0010ac09(param_4,2,3);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      if (param_3 == 0) {\n        DAT_00152538 = 3;\n        DAT_00152548 = 0x16;\n        FUN_0010ac09(param_4,2,3);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" { (if_statement "if (param_3 == 0) {\n        DAT_00152538 = 3;\n        DAT_00152548 = 0x16;\n        FUN_0010ac09(param_4,2,3);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n        DAT_00152538 = 3;\n        DAT_00152548 = 0x16;\n        FUN_0010ac09(param_4,2,3);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }" { (expression_statement "DAT_00152538 = 3;" (assignment_expression "DAT_00152538 = 3" identifier = number_literal) ;) (expression_statement "DAT_00152548 = 0x16;" (assignment_expression "DAT_00152548 = 0x16" identifier = number_literal) ;) (expression_statement "FUN_0010ac09(param_4,2,3);" (call_expression "FUN_0010ac09(param_4,2,3)" identifier (argument_list "(param_4,2,3)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "FUN_0010ac09(param_4,1,DAT_00152548);" (call_expression "FUN_0010ac09(param_4,1,DAT_00152548)" identifier (argument_list "(param_4,1,DAT_00152548)" ( identifier , number_literal , identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (return_statement "return 1;" return number_literal ;) })) (expression_statement "lVar10 = 8;" (assignment_expression "lVar10 = 8" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"-telnet";" (assignment_expression "pbVar12 = (byte *)"-telnet"" identifier = (cast_expression "(byte *)"-telnet"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""-telnet"" " string_content "))) ;) (do_statement "do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);" do (compound_statement "{\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar11 < *pbVar12;" (assignment_expression "bVar18 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" identifier = (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" ( (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 1;\n        DAT_00152548 = 0x17;\n        FUN_0010ac09(param_4,2,1);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 1;\n        DAT_00152548 = 0x17;\n        FUN_0010ac09(param_4,2,1);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }" { (if_statement "if (param_3 < 0) {\n      return 1;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 1;\n        DAT_00152548 = 0x17;\n        FUN_0010ac09(param_4,2,1);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      if (param_3 == 0) {\n        DAT_00152538 = 1;\n        DAT_00152548 = 0x17;\n        FUN_0010ac09(param_4,2,1);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" { (if_statement "if (param_3 == 0) {\n        DAT_00152538 = 1;\n        DAT_00152548 = 0x17;\n        FUN_0010ac09(param_4,2,1);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n        DAT_00152538 = 1;\n        DAT_00152548 = 0x17;\n        FUN_0010ac09(param_4,2,1);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }" { (expression_statement "DAT_00152538 = 1;" (assignment_expression "DAT_00152538 = 1" identifier = number_literal) ;) (expression_statement "DAT_00152548 = 0x17;" (assignment_expression "DAT_00152548 = 0x17" identifier = number_literal) ;) (expression_statement "FUN_0010ac09(param_4,2,1);" (call_expression "FUN_0010ac09(param_4,2,1)" identifier (argument_list "(param_4,2,1)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "FUN_0010ac09(param_4,1,DAT_00152548);" (call_expression "FUN_0010ac09(param_4,1,DAT_00152548)" identifier (argument_list "(param_4,1,DAT_00152548)" ( identifier , number_literal , identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (return_statement "return 1;" return number_literal ;) })) (expression_statement "lVar10 = 8;" (assignment_expression "lVar10 = 8" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"-rlogin";" (assignment_expression "pbVar12 = (byte *)"-rlogin"" identifier = (cast_expression "(byte *)"-rlogin"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""-rlogin"" " string_content "))) ;) (do_statement "do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);" do (compound_statement "{\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar11 < *pbVar12;" (assignment_expression "bVar16 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar16 && !bVar15) == bVar16;" (assignment_expression "bVar15 = (!bVar16 && !bVar15) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar15) == bVar16" (parenthesized_expression "(!bVar16 && !bVar15)" ( (binary_expression "!bVar16 && !bVar15" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 2;\n        DAT_00152548 = 0x201;\n        FUN_0010ac09(param_4,2,2);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 2;\n        DAT_00152548 = 0x201;\n        FUN_0010ac09(param_4,2,2);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }" { (if_statement "if (param_3 < 0) {\n      return 1;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 2;\n        DAT_00152548 = 0x201;\n        FUN_0010ac09(param_4,2,2);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      if (param_3 == 0) {\n        DAT_00152538 = 2;\n        DAT_00152548 = 0x201;\n        FUN_0010ac09(param_4,2,2);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" { (if_statement "if (param_3 == 0) {\n        DAT_00152538 = 2;\n        DAT_00152548 = 0x201;\n        FUN_0010ac09(param_4,2,2);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n        DAT_00152538 = 2;\n        DAT_00152548 = 0x201;\n        FUN_0010ac09(param_4,2,2);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }" { (expression_statement "DAT_00152538 = 2;" (assignment_expression "DAT_00152538 = 2" identifier = number_literal) ;) (expression_statement "DAT_00152548 = 0x201;" (assignment_expression "DAT_00152548 = 0x201" identifier = number_literal) ;) (expression_statement "FUN_0010ac09(param_4,2,2);" (call_expression "FUN_0010ac09(param_4,2,2)" identifier (argument_list "(param_4,2,2)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "FUN_0010ac09(param_4,1,DAT_00152548);" (call_expression "FUN_0010ac09(param_4,1,DAT_00152548)" identifier (argument_list "(param_4,1,DAT_00152548)" ( identifier , number_literal , identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (return_statement "return 1;" return number_literal ;) })) (expression_statement "lVar10 = 5;" (assignment_expression "lVar10 = 5" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = &DAT_0013b287;" (assignment_expression "pbVar12 = &DAT_0013b287" identifier = (pointer_expression "&DAT_0013b287" & identifier)) ;) (do_statement "do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);" do (compound_statement "{\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar11 < *pbVar12;" (assignment_expression "bVar18 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" identifier = (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" ( (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    uVar17 = 0;\n    uVar19 = param_3 == 0;\n    if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    DAT_00152538 = 0;\n    FUN_0010ac09(param_4,2,0);\n    lVar10 = 8;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    bVar15 = false;\n    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (bVar18) {\n      iVar3 = FUN_00108083(3,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 1;\n      }\nLAB_0010858a:\n      uVar19 = 0;\n      DAT_00152538 = 4;\n      FUN_0010ac09(param_4,2,4);\n      uVar5 = FUN_0010a6d3(param_4,0);\n      FUN_0010ad3a(param_4,0x39,uVar5);\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n    }\n    else {\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n    }\n    uVar5 = 1;\n    if (bVar15) {\nLAB_00108687:\n      DAT_0015254c = DAT_0015254c | 1;\n      bVar15 = DAT_0015254c == 0;\n      uVar5 = 1;\n    }\n  }\n  else {\n    lVar10 = 8;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      uVar17 = param_3 == 0;\n      if (!(bool)uVar17) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_0010858a;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b294;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108687;\n    }\n    uVar5 = 0;\n  }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    uVar17 = 0;\n    uVar19 = param_3 == 0;\n    if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    DAT_00152538 = 0;\n    FUN_0010ac09(param_4,2,0);\n    lVar10 = 8;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    bVar15 = false;\n    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (bVar18) {\n      iVar3 = FUN_00108083(3,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 1;\n      }\nLAB_0010858a:\n      uVar19 = 0;\n      DAT_00152538 = 4;\n      FUN_0010ac09(param_4,2,4);\n      uVar5 = FUN_0010a6d3(param_4,0);\n      FUN_0010ad3a(param_4,0x39,uVar5);\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n    }\n    else {\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n    }\n    uVar5 = 1;\n    if (bVar15) {\nLAB_00108687:\n      DAT_0015254c = DAT_0015254c | 1;\n      bVar15 = DAT_0015254c == 0;\n      uVar5 = 1;\n    }\n  }" { (if_statement "if (param_3 < 0) {\n      return 1;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar19 = param_3 == 0;" (assignment_expression "uVar19 = param_3 == 0" identifier = (binary_expression "param_3 == 0" identifier == number_literal)) ;) (if_statement "if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" if (parenthesized_expression "(!(bool)uVar19)" ( (unary_expression "!(bool)uVar19" ! (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "DAT_00152538 = 0;" (assignment_expression "DAT_00152538 = 0" identifier = number_literal) ;) (expression_statement "FUN_0010ac09(param_4,2,0);" (call_expression "FUN_0010ac09(param_4,2,0)" identifier (argument_list "(param_4,2,0)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "lVar10 = 8;" (assignment_expression "lVar10 = 8" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"-serial";" (assignment_expression "pbVar12 = (byte *)"-serial"" identifier = (cast_expression "(byte *)"-serial"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""-serial"" " string_content "))) ;) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);" do (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "uVar17 = *pbVar11 < *pbVar12;" (assignment_expression "uVar17 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "uVar19 = *pbVar11 == *pbVar12;" (assignment_expression "uVar19 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar19)" ( (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;" (assignment_expression "bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17" identifier = (binary_expression "(!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17" (parenthesized_expression "(!(bool)uVar17 && !(bool)uVar19)" ( (binary_expression "!(bool)uVar17 && !(bool)uVar19" (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar19" ! (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar18) {\n      iVar3 = FUN_00108083(3,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 1;\n      }\nLAB_0010858a:\n      uVar19 = 0;\n      DAT_00152538 = 4;\n      FUN_0010ac09(param_4,2,4);\n      uVar5 = FUN_0010a6d3(param_4,0);\n      FUN_0010ad3a(param_4,0x39,uVar5);\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n    }\n    else {\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n    }" if (parenthesized_expression "(bVar18)" ( identifier )) (compound_statement "{\n      iVar3 = FUN_00108083(3,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 1;\n      }\nLAB_0010858a:\n      uVar19 = 0;\n      DAT_00152538 = 4;\n      FUN_0010ac09(param_4,2,4);\n      uVar5 = FUN_0010a6d3(param_4,0);\n      FUN_0010ad3a(param_4,0x39,uVar5);\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n    }" { (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (expression_statement "uVar17 = iVar3 == 0;" (assignment_expression "uVar17 = iVar3 == 0" identifier = (binary_expression "iVar3 == 0" identifier == number_literal)) ;) (if_statement "if (!(bool)uVar17) {\n        return 1;\n      }" if (parenthesized_expression "(!(bool)uVar17)" ( (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_0010858a:\n      uVar19 = 0;" statement_identifier : (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;)) (expression_statement "DAT_00152538 = 4;" (assignment_expression "DAT_00152538 = 4" identifier = number_literal) ;) (expression_statement "FUN_0010ac09(param_4,2,4);" (call_expression "FUN_0010ac09(param_4,2,4)" identifier (argument_list "(param_4,2,4)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "uVar5 = FUN_0010a6d3(param_4,0);" (assignment_expression "uVar5 = FUN_0010a6d3(param_4,0)" identifier = (call_expression "FUN_0010a6d3(param_4,0)" identifier (argument_list "(param_4,0)" ( identifier , number_literal )))) ;) (expression_statement "FUN_0010ad3a(param_4,0x39,uVar5);" (call_expression "FUN_0010ad3a(param_4,0x39,uVar5)" identifier (argument_list "(param_4,0x39,uVar5)" ( identifier , number_literal , identifier ))) ;) (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = &DAT_0013b294;" (assignment_expression "pbVar12 = &DAT_0013b294" identifier = (pointer_expression "&DAT_0013b294" & identifier)) ;) (do_statement "do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);" do (compound_statement "{\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "uVar19 = *pbVar11 < *pbVar12;" (assignment_expression "uVar19 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "uVar17 = *pbVar11 == *pbVar12;" (assignment_expression "uVar17 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar17)" ( (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;" (assignment_expression "bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19" identifier = (binary_expression "(!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19" (parenthesized_expression "(!(bool)uVar19 && !(bool)uVar17)" ( (binary_expression "!(bool)uVar19 && !(bool)uVar17" (unary_expression "!(bool)uVar19" ! (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) }) (else_clause "else {\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n    }" else (compound_statement "{\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n    }" { (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = &DAT_0013b294;" (assignment_expression "pbVar12 = &DAT_0013b294" identifier = (pointer_expression "&DAT_0013b294" & identifier)) ;) (do_statement "do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);" do (compound_statement "{\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar11 < *pbVar12;" (assignment_expression "bVar15 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar18 = *pbVar11 == *pbVar12;" (assignment_expression "bVar18 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "bVar15 = (!bVar15 && !bVar18) == bVar15;" (assignment_expression "bVar15 = (!bVar15 && !bVar18) == bVar15" identifier = (binary_expression "(!bVar15 && !bVar18) == bVar15" (parenthesized_expression "(!bVar15 && !bVar18)" ( (binary_expression "!bVar15 && !bVar18" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) }))) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (bVar15) {\nLAB_00108687:\n      DAT_0015254c = DAT_0015254c | 1;\n      bVar15 = DAT_0015254c == 0;\n      uVar5 = 1;\n    }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\nLAB_00108687:\n      DAT_0015254c = DAT_0015254c | 1;\n      bVar15 = DAT_0015254c == 0;\n      uVar5 = 1;\n    }" { (labeled_statement "LAB_00108687:\n      DAT_0015254c = DAT_0015254c | 1;" statement_identifier : (expression_statement "DAT_0015254c = DAT_0015254c | 1;" (assignment_expression "DAT_0015254c = DAT_0015254c | 1" identifier = (binary_expression "DAT_0015254c | 1" identifier | number_literal)) ;)) (expression_statement "bVar15 = DAT_0015254c == 0;" (assignment_expression "bVar15 = DAT_0015254c == 0" identifier = (binary_expression "DAT_0015254c == 0" identifier == number_literal)) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) })) }) (else_clause "else {\n    lVar10 = 8;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      uVar17 = param_3 == 0;\n      if (!(bool)uVar17) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_0010858a;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b294;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108687;\n    }\n    uVar5 = 0;\n  }" else (compound_statement "{\n    lVar10 = 8;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      uVar17 = param_3 == 0;\n      if (!(bool)uVar17) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_0010858a;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b294;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108687;\n    }\n    uVar5 = 0;\n  }" { (expression_statement "lVar10 = 8;" (assignment_expression "lVar10 = 8" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"-serial";" (assignment_expression "pbVar12 = (byte *)"-serial"" identifier = (cast_expression "(byte *)"-serial"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""-serial"" " string_content "))) ;) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar11 < *pbVar12;" (assignment_expression "bVar16 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar16 && !bVar15) == bVar16;" (assignment_expression "bVar15 = (!bVar16 && !bVar15) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar15) == bVar16" (parenthesized_expression "(!bVar16 && !bVar15)" ( (binary_expression "!bVar16 && !bVar15" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      uVar17 = param_3 == 0;\n      if (!(bool)uVar17) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_0010858a;\n    }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      uVar17 = param_3 == 0;\n      if (!(bool)uVar17) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_0010858a;\n    }" { (if_statement "if (param_3 < 0) {\n        return 1;\n      }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar17 = param_3 == 0;" (assignment_expression "uVar17 = param_3 == 0" identifier = (binary_expression "param_3 == 0" identifier == number_literal)) ;) (if_statement "if (!(bool)uVar17) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }" if (parenthesized_expression "(!(bool)uVar17)" ( (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_0010858a;" goto statement_identifier ;) })) (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = &DAT_0013b294;" (assignment_expression "pbVar12 = &DAT_0013b294" identifier = (pointer_expression "&DAT_0013b294" & identifier)) ;) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar11 < *pbVar12;" (assignment_expression "bVar18 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" identifier = (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" ( (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108687;\n    }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108687;\n    }" { (if_statement "if (param_3 < 0) {\n        return 1;\n      }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00108687;" goto statement_identifier ;) })) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)0x1440df;" (assignment_expression "pbVar12 = (byte *)0x1440df" identifier = (cast_expression "(byte *)0x1440df" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);" do (compound_statement "{\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar11 < *pbVar12;" (assignment_expression "bVar18 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" identifier = (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" ( (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    uVar17 = 0;\n    uVar19 = param_3 == 0;\n    if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    FUN_0010ad3a(param_4,0x34,param_2);\n    lVar10 = 9;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-loghost";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    bVar15 = false;\n    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (bVar18) {\n      iVar3 = FUN_00108083(2,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 2;\n      }\nLAB_0010a0b4:\n      uVar19 = 0;\n      FUN_0010ad3a(param_4,9,param_2);\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      uVar5 = 2;\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n      if (bVar15) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }\n    }\n    else {\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      uVar5 = 2;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (bVar15) goto LAB_00108738;\n    }\nLAB_0010884b:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2a9;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (!bVar15) goto LAB_00108865;\n    goto LAB_0010889d;\n  }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    uVar17 = 0;\n    uVar19 = param_3 == 0;\n    if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    FUN_0010ad3a(param_4,0x34,param_2);\n    lVar10 = 9;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-loghost";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    bVar15 = false;\n    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (bVar18) {\n      iVar3 = FUN_00108083(2,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 2;\n      }\nLAB_0010a0b4:\n      uVar19 = 0;\n      FUN_0010ad3a(param_4,9,param_2);\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      uVar5 = 2;\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n      if (bVar15) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }\n    }\n    else {\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      uVar5 = 2;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (bVar15) goto LAB_00108738;\n    }\nLAB_0010884b:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2a9;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (!bVar15) goto LAB_00108865;\n    goto LAB_0010889d;\n  }" { (if_statement "if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 0xfffffffe;\n    }" { (return_statement "return 0xfffffffe;" return number_literal ;) })) (if_statement "if (param_3 < 0) {\n      return 2;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      return 2;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar19 = param_3 == 0;" (assignment_expression "uVar19 = param_3 == 0" identifier = (binary_expression "param_3 == 0" identifier == number_literal)) ;) (if_statement "if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }" if (parenthesized_expression "(!(bool)uVar19)" ( (unary_expression "!(bool)uVar19" ! (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (expression_statement "FUN_0010ad3a(param_4,0x34,param_2);" (call_expression "FUN_0010ad3a(param_4,0x34,param_2)" identifier (argument_list "(param_4,0x34,param_2)" ( identifier , number_literal , identifier ))) ;) (expression_statement "lVar10 = 9;" (assignment_expression "lVar10 = 9" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"-loghost";" (assignment_expression "pbVar12 = (byte *)"-loghost"" identifier = (cast_expression "(byte *)"-loghost"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""-loghost"" " string_content "))) ;) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);" do (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "uVar17 = *pbVar11 < *pbVar12;" (assignment_expression "uVar17 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "uVar19 = *pbVar11 == *pbVar12;" (assignment_expression "uVar19 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar19)" ( (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;" (assignment_expression "bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17" identifier = (binary_expression "(!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17" (parenthesized_expression "(!(bool)uVar17 && !(bool)uVar19)" ( (binary_expression "!(bool)uVar17 && !(bool)uVar19" (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar19" ! (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar18) {\n      iVar3 = FUN_00108083(2,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 2;\n      }\nLAB_0010a0b4:\n      uVar19 = 0;\n      FUN_0010ad3a(param_4,9,param_2);\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      uVar5 = 2;\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n      if (bVar15) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }\n    }\n    else {\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      uVar5 = 2;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (bVar15) goto LAB_00108738;\n    }" if (parenthesized_expression "(bVar18)" ( identifier )) (compound_statement "{\n      iVar3 = FUN_00108083(2,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 2;\n      }\nLAB_0010a0b4:\n      uVar19 = 0;\n      FUN_0010ad3a(param_4,9,param_2);\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      uVar5 = 2;\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n      if (bVar15) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }\n    }" { (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (expression_statement "uVar17 = iVar3 == 0;" (assignment_expression "uVar17 = iVar3 == 0" identifier = (binary_expression "iVar3 == 0" identifier == number_literal)) ;) (if_statement "if (!(bool)uVar17) {\n        return 2;\n      }" if (parenthesized_expression "(!(bool)uVar17)" ( (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_0010a0b4:\n      uVar19 = 0;" statement_identifier : (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;)) (expression_statement "FUN_0010ad3a(param_4,9,param_2);" (call_expression "FUN_0010ad3a(param_4,9,param_2)" identifier (argument_list "(param_4,9,param_2)" ( identifier , number_literal , identifier ))) ;) (expression_statement "lVar10 = 9;" (assignment_expression "lVar10 = 9" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"-hostkey";" (assignment_expression "pbVar12 = (byte *)"-hostkey"" identifier = (cast_expression "(byte *)"-hostkey"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""-hostkey"" " string_content "))) ;) (do_statement "do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);" do (compound_statement "{\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "uVar19 = *pbVar11 < *pbVar12;" (assignment_expression "uVar19 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "uVar17 = *pbVar11 == *pbVar12;" (assignment_expression "uVar17 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar17)" ( (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" identifier = number_literal) ;) (expression_statement "bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;" (assignment_expression "bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19" identifier = (binary_expression "(!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19" (parenthesized_expression "(!(bool)uVar19 && !(bool)uVar17)" ( (binary_expression "!(bool)uVar19 && !(bool)uVar17" (unary_expression "!(bool)uVar19" ! (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar15) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }" { (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n          return 2;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          return 2;\n        }" { (return_statement "return 2;" return number_literal ;) })) (goto_statement "goto LAB_0010a103;" goto statement_identifier ;) })) }) (else_clause "else {\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      uVar5 = 2;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (bVar15) goto LAB_00108738;\n    }" else (compound_statement "{\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      uVar5 = 2;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (bVar15) goto LAB_00108738;\n    }" { (expression_statement "lVar10 = 9;" (assignment_expression "lVar10 = 9" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"-hostkey";" (assignment_expression "pbVar12 = (byte *)"-hostkey"" identifier = (cast_expression "(byte *)"-hostkey"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""-hostkey"" " string_content "))) ;) (do_statement "do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);" do (compound_statement "{\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar11 < *pbVar12;" (assignment_expression "bVar15 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar18 = *pbVar11 == *pbVar12;" (assignment_expression "bVar18 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" identifier = number_literal) ;) (expression_statement "bVar15 = (!bVar15 && !bVar18) == bVar15;" (assignment_expression "bVar15 = (!bVar15 && !bVar18) == bVar15" identifier = (binary_expression "(!bVar15 && !bVar18) == bVar15" (parenthesized_expression "(!bVar15 && !bVar18)" ( (binary_expression "!bVar15 && !bVar18" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) goto LAB_00108738;" if (parenthesized_expression "(bVar15)" ( identifier )) (goto_statement "goto LAB_00108738;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0010884b:\n    bVar18 = false;" statement_identifier : (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;)) (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = &DAT_0013b2a9;" (assignment_expression "pbVar12 = &DAT_0013b2a9" identifier = (pointer_expression "&DAT_0013b2a9" & identifier)) ;) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar11 < *pbVar12;" (assignment_expression "bVar18 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" identifier = (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" ( (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar15) goto LAB_00108865;" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (goto_statement "goto LAB_00108865;" goto statement_identifier ;)) (goto_statement "goto LAB_0010889d;" goto statement_identifier ;) })) (expression_statement "lVar10 = 9;" (assignment_expression "lVar10 = 9" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"-loghost";" (assignment_expression "pbVar12 = (byte *)"-loghost"" identifier = (cast_expression "(byte *)"-loghost"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""-loghost"" " string_content "))) ;) (do_statement "do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);" do (compound_statement "{\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar11 < *pbVar12;" (assignment_expression "bVar16 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar16 && !bVar15) == bVar16;" (assignment_expression "bVar15 = (!bVar16 && !bVar15) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar15) == bVar16" (parenthesized_expression "(!bVar16 && !bVar15)" ( (binary_expression "!bVar16 && !bVar15" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    uVar17 = param_3 == 0;\n    if (!(bool)uVar17) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    goto LAB_0010a0b4;\n  }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    uVar17 = param_3 == 0;\n    if (!(bool)uVar17) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    goto LAB_0010a0b4;\n  }" { (if_statement "if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 0xfffffffe;\n    }" { (return_statement "return 0xfffffffe;" return number_literal ;) })) (if_statement "if (param_3 < 0) {\n      return 2;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      return 2;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "uVar17 = param_3 == 0;" (assignment_expression "uVar17 = param_3 == 0" identifier = (binary_expression "param_3 == 0" identifier == number_literal)) ;) (if_statement "if (!(bool)uVar17) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }" if (parenthesized_expression "(!(bool)uVar17)" ( (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (goto_statement "goto LAB_0010a0b4;" goto statement_identifier ;) })) (expression_statement "lVar10 = 9;" (assignment_expression "lVar10 = 9" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"-hostkey";" (assignment_expression "pbVar12 = (byte *)"-hostkey"" identifier = (cast_expression "(byte *)"-hostkey"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""-hostkey"" " string_content "))) ;) (do_statement "do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);" do (compound_statement "{\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar11 < *pbVar12;" (assignment_expression "bVar18 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" identifier = (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" ( (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar15) goto LAB_0010884b;" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (goto_statement "goto LAB_0010884b;" goto statement_identifier ;)) (if_statement "if (param_2 == (char *)0x0) {\n    return 0xfffffffe;\n  }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return 0xfffffffe;\n  }" { (return_statement "return 0xfffffffe;" return number_literal ;) })) (if_statement "if (param_3 < 0) {\n    return 2;\n  }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n    return 2;\n  }" { (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_00108738:\n  iVar3 = FUN_00108083(2,param_1);" statement_identifier : (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar3 != 0) {\n    return 2;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    return 2;\n  }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n    FUN_001080ad(param_1,param_2,0);\n    return 2;\n  }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_001080ad(param_1,param_2,0);\n    return 2;\n  }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_0010a103:\n  uVar5 = FUN_0010bd5d(param_2);" statement_identifier : (expression_statement "uVar5 = FUN_0010bd5d(param_2);" (assignment_expression "uVar5 = FUN_0010bd5d(param_2)" identifier = (call_expression "FUN_0010bd5d(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;)) (expression_statement "iVar3 = FUN_0010c8a8(uVar5);" (assignment_expression "iVar3 = FUN_0010c8a8(uVar5)" identifier = (call_expression "FUN_0010c8a8(uVar5)" identifier (argument_list "(uVar5)" ( identifier )))) ;) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar19 = iVar3 == 0;" (assignment_expression "uVar19 = iVar3 == 0" identifier = (binary_expression "iVar3 == 0" identifier == number_literal)) ;) (if_statement "if ((bool)uVar19) {\n    FUN_00134fb0("\'%s\' is not a valid format for a manual host key specification",param_2);\n    FUN_0010c4d3(uVar5);\n    return 2;\n  }" if (parenthesized_expression "((bool)uVar19)" ( (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\n    FUN_00134fb0("\'%s\' is not a valid format for a manual host key specification",param_2);\n    FUN_0010c4d3(uVar5);\n    return 2;\n  }" { (expression_statement "FUN_00134fb0("\'%s\' is not a valid format for a manual host key specification",param_2);" (call_expression "FUN_00134fb0("\'%s\' is not a valid format for a manual host key specification",param_2)" identifier (argument_list "("\'%s\' is not a valid format for a manual host key specification",param_2)" ( (string_literal ""\'%s\' is not a valid format for a manual host key specification"" " escape_sequence string_content escape_sequence string_content ") , identifier ))) ;) (expression_statement "FUN_0010c4d3(uVar5);" (call_expression "FUN_0010c4d3(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (return_statement "return 2;" return number_literal ;) })) (expression_statement "FUN_0010ade1(param_4,0xad,uVar5,&DAT_0013bec9);" (call_expression "FUN_0010ade1(param_4,0xad,uVar5,&DAT_0013bec9)" identifier (argument_list "(param_4,0xad,uVar5,&DAT_0013bec9)" ( identifier , number_literal , identifier , (pointer_expression "&DAT_0013bec9" & identifier) ))) ;) (expression_statement "FUN_0010c4d3(uVar5);" (call_expression "FUN_0010c4d3(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = &DAT_0013b2a9;" (assignment_expression "pbVar12 = &DAT_0013b2a9" identifier = (pointer_expression "&DAT_0013b2a9" & identifier)) ;) (do_statement "do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    uVar17 = *pbVar11 < *pbVar12;\n    uVar19 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while ((bool)uVar19);" do (compound_statement "{\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    uVar17 = *pbVar11 < *pbVar12;\n    uVar19 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "uVar17 = *pbVar11 < *pbVar12;" (assignment_expression "uVar17 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "uVar19 = *pbVar11 == *pbVar12;" (assignment_expression "uVar19 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar19)" ( (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" identifier = number_literal) ;) (expression_statement "bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;" (assignment_expression "bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17" identifier = (binary_expression "(!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17" (parenthesized_expression "(!(bool)uVar17 && !(bool)uVar19)" ( (binary_expression "!(bool)uVar17 && !(bool)uVar19" (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar19" ! (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar15) {\n    iVar3 = FUN_00108083(3,param_1);\n    bVar15 = iVar3 == 0;\n    if (!bVar15) {\n      return 2;\n    }\nLAB_001088cd:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)0x1440f1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    uVar17 = 0;\n    uVar19 = (!bVar18 && !bVar15) == bVar18;\n    if ((bool)uVar19) {\n      uVar5 = FUN_0010c2a6(&DAT_0013b2b6,param_2);\n      uVar7 = FUN_0010bd5d("D");\n    }\n    else {\n      bVar1 = param_1[1];\n      pcVar6 = (char *)FUN_0010b8c9(param_2,0x3a);\n      pcVar8 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\nLAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);\n        return 2;\n      }\n      do {\n        pcVar14 = pcVar8;\n        pcVar8 = pcVar6;\n        pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);\n      } while (pcVar6 != (char *)0x0);\n      if (pcVar14 == (char *)0x0) goto LAB_00108973;\n      uVar17 = pcVar14 < param_2;\n      uVar19 = (long)pcVar14 - (long)param_2 == 0;\n      uVar5 = FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2);\n      uVar7 = FUN_0010bd5d(pcVar14 + 1);\n    }\n    FUN_0010ade1(param_4,0x9b,uVar5,uVar7);\n    FUN_0010c4d3(uVar5);\n    FUN_0010c4d3(uVar7);\n    lVar10 = 4;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2ba;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    uVar5 = 2;\n    bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (!bVar15) goto LAB_00108a01;\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_00109fa5:\n    lVar10 = FUN_0010b8c9(param_2,0x3a);\n    if (lVar10 == 0) {\n      FUN_00134fb0("-nc expects argument of form \'host:port\'");\n      return 2;\n    }\n    uVar5 = FUN_0010c2a6(&DAT_0013b2b1,lVar10 - (long)param_2,param_2);\n    FUN_0010ad3a(param_4,0x2e,uVar5);\n    uVar9 = strtol((char *)(lVar10 + 1),(char **)0x0,10);\n    FUN_0010ac09(param_4,0x2f,uVar9 & 0xffffffff);\n    FUN_0010c4d3(uVar5);\n    iVar3 = strcmp((char *)param_1,"-m");\n    uVar5 = 2;\n    bVar15 = iVar3 == 0;\n    if (!bVar15) goto LAB_0010a032;\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_00109f54:\n    __stream = fopen64(param_2,"r");\n    if (__stream == (FILE *)0x0) {\n      FUN_00134fb0("unable to open command file \"%s\"",param_2);\n      return 2;\n    }\n    lVar13 = 0;\n    local_3c = 0;\n    lVar10 = 0;\n    while( true ) {\n      iVar4 = (int)lVar13;\n      iVar3 = fgetc(__stream);\n      if (iVar3 == -1) break;\n      local_48._0_1_ = (undefined1)iVar3;\n      if (iVar4 < local_3c) {\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      else {\n        local_3c = iVar4 + 0x200;\n        lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      lVar13 = lVar13 + 1;\n    }\n    if (iVar4 < local_3c) {\n      *(undefined1 *)(lVar10 + iVar4) = 0;\n    }\n    else {\n      lVar10 = FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1);\n      *(undefined1 *)(lVar10 + lVar13) = 0;\n    }\n    fclose(__stream);\n    FUN_0010ad3a(param_4,0x14,lVar10);\n    FUN_0010ad3a(param_4,0x15,&DAT_0013bec9);\n    FUN_0010ac09(param_4,0x16,1);\n    FUN_0010c4d3(lVar10);\n    iVar3 = strcmp((char *)param_1,"-P");\n    uVar5 = 2;\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      goto LAB_00109749;\n    }\nLAB_00108afa:\n    iVar3 = strcmp((char *)param_1,"-pw");\n    if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 2;\n      }\n      goto LAB_00109ee5;\n    }\n    iVar3 = strcmp((char *)param_1,"-agent");\n    if (iVar3 != 0) goto LAB_00108ba4;\nLAB_00108bce:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108bdc:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00108bf9:\n    FUN_0010ac09(param_4,0x1c,1);\n    iVar3 = strcmp((char *)param_1,"-noagent");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108c37;\n    }\n    iVar3 = strcmp((char *)param_1,"-nopagent");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00109e76;\nLAB_00108d1b:\n    iVar3 = strcmp((char *)param_1,"-nopageant");\n    if (iVar3 == 0) goto LAB_00108d2e;\n    iVar3 = strcmp((char *)param_1,"-A");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-a");\n      if (iVar3 != 0) goto LAB_00108c7d;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108db9;\n    }\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109d88:\n    FUN_0010ac09(param_4,0x1d,1);\n    iVar3 = strcmp((char *)param_1,"-a");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d25;\n    }\n    iVar3 = strcmp((char *)param_1,"-X");\n    uVar5 = 1;\n    if (iVar3 == 0) {\nLAB_00108ca2:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109c0f;\n    }\nLAB_00109dce:\n    iVar3 = strcmp((char *)param_1,"-x");\n    if (iVar3 != 0) goto LAB_00109de5;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108dff:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109c49:\n    FUN_0010ac09(param_4,0x95,0);\n    iVar3 = strcmp((char *)param_1,"-t");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c87:\n      FUN_0010ac09(param_4,0x16,0);\n      iVar3 = strcmp((char *)param_1,"-T");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }\n      iVar3 = strcmp((char *)param_1,"-N");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109ba0;\n    }\n    else {\n      iVar3 = strcmp((char *)param_1,"-T");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109e21;\nLAB_00109b7b:\n      iVar3 = strcmp((char *)param_1,"-N");\n      if (iVar3 == 0) {\n        if (param_3 < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }\n    }\n    iVar3 = strcmp((char *)param_1,"-C");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00108e8b:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\nLAB_0010989e:\n      FUN_0010ac09(param_4,0x17,1);\n      iVar3 = strcmp((char *)param_1,"-1");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }\n      iVar3 = strcmp((char *)param_1,"-2");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109930;\n      goto LAB_00109b26;\n    }\nLAB_00109aea:\n    iVar3 = strcmp((char *)param_1,"-1");\n    if (iVar3 != 0) goto LAB_00109b01;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108ed1:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_001098d8:\n    FUN_0010ac09(param_4,0x21,0);\n    iVar3 = strcmp((char *)param_1,"-2");\n    uVar5 = 1;\n    if (iVar3 != 0) goto LAB_00109930;\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\nLAB_00109918:\n    FUN_0010ac09(param_4,0x21,3);\n    uVar5 = 1;\n  }\n  else {\nLAB_00108865:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2ac;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\nLAB_0010889d:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      bVar15 = param_3 == 0;\n      if (!bVar15) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001088cd;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)0x1440f1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_0010889d;\n    iVar3 = strcmp((char *)param_1,"-nc");\n    bVar15 = iVar3 == 0;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109fa5;\n    }\nLAB_00108a01:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2be;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109f54;\n    }\nLAB_0010a032:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2c1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar18 && !bVar15) != bVar18) goto LAB_00108afa;\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }\nLAB_00109749:\n    uVar9 = strtol(param_2,(char **)0x0,10);\n    FUN_0010ac09(param_4,1,uVar9 & 0xffffffff);\n    iVar3 = strcmp((char *)param_1,"-pw");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\nLAB_00109ee5:\n      iVar3 = FUN_0010a543(param_4,2);\n      if (iVar3 == 3) {\n        DAT_00152128 = FUN_0010bd5d(param_2);\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = param_2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        FUN_0010c727(param_2,~uVar9 - 1);\n      }\n      else {\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }\n      iVar3 = strcmp((char *)param_1,"-agent");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-pagent");\n        uVar5 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108bf9;\n    }\n    iVar3 = strcmp((char *)param_1,"-agent");\n    uVar5 = 2;\n    if (iVar3 == 0) goto LAB_00108bdc;\nLAB_00108ba4:\n    iVar3 = strcmp((char *)param_1,"-pagent");\n    if (iVar3 == 0) goto LAB_00108bce;\nLAB_00108bb7:\n    iVar3 = strcmp((char *)param_1,"-pageant");\n    if (iVar3 == 0) goto LAB_00108bce;\n    iVar3 = strcmp((char *)param_1,"-noagent");\n    if ((iVar3 != 0) && (iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0))\n    goto LAB_00108d1b;\nLAB_00108d2e:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e76:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00108c37:\n    FUN_0010ac09(param_4,0x1c,0);\n    iVar3 = strcmp((char *)param_1,"-A");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d88;\n    }\n    iVar3 = strcmp((char *)param_1,"-a");\n    if (iVar3 != 0) {\n      uVar5 = 1;\nLAB_00108c7d:\n      iVar3 = strcmp((char *)param_1,"-X");\n      if (iVar3 != 0) goto LAB_00109dce;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108ca2;\n    }\nLAB_00108db9:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109d25:\n    FUN_0010ac09(param_4,0x1d,0);\n    iVar3 = strcmp((char *)param_1,"-X");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c0f:\n      FUN_0010ac09(param_4,0x95,1);\n      iVar3 = strcmp((char *)param_1,"-x");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }\n      iVar3 = strcmp((char *)param_1,"-t");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109dfc;\nLAB_00108e45:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_00109c87;\n    }\n    iVar3 = strcmp((char *)param_1,"-x");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108dff;\nLAB_00109de5:\n    iVar3 = strcmp((char *)param_1,"-t");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108e45;\n    }\nLAB_00109dfc:\n    iVar3 = strcmp((char *)param_1,"-T");\n    if (iVar3 != 0) goto LAB_00109b7b;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e21:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_00109cc5:\n    FUN_0010ac09(param_4,0x16,1);\n    iVar3 = strcmp((char *)param_1,"-N");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-C");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00108e8b;\n      goto LAB_00109aea;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\nLAB_00109a6e:\n    FUN_0010ac09(param_4,0x2d,1);\n    iVar3 = strcmp((char *)param_1,"-C");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_0010989e;\n    }\n    iVar3 = strcmp((char *)param_1,"-1");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108ed1;\nLAB_00109b01:\n    iVar3 = strcmp((char *)param_1,"-2");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00109b26:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109918;\n    }\n  }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n    iVar3 = FUN_00108083(3,param_1);\n    bVar15 = iVar3 == 0;\n    if (!bVar15) {\n      return 2;\n    }\nLAB_001088cd:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)0x1440f1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    uVar17 = 0;\n    uVar19 = (!bVar18 && !bVar15) == bVar18;\n    if ((bool)uVar19) {\n      uVar5 = FUN_0010c2a6(&DAT_0013b2b6,param_2);\n      uVar7 = FUN_0010bd5d("D");\n    }\n    else {\n      bVar1 = param_1[1];\n      pcVar6 = (char *)FUN_0010b8c9(param_2,0x3a);\n      pcVar8 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\nLAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);\n        return 2;\n      }\n      do {\n        pcVar14 = pcVar8;\n        pcVar8 = pcVar6;\n        pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);\n      } while (pcVar6 != (char *)0x0);\n      if (pcVar14 == (char *)0x0) goto LAB_00108973;\n      uVar17 = pcVar14 < param_2;\n      uVar19 = (long)pcVar14 - (long)param_2 == 0;\n      uVar5 = FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2);\n      uVar7 = FUN_0010bd5d(pcVar14 + 1);\n    }\n    FUN_0010ade1(param_4,0x9b,uVar5,uVar7);\n    FUN_0010c4d3(uVar5);\n    FUN_0010c4d3(uVar7);\n    lVar10 = 4;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2ba;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    uVar5 = 2;\n    bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (!bVar15) goto LAB_00108a01;\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_00109fa5:\n    lVar10 = FUN_0010b8c9(param_2,0x3a);\n    if (lVar10 == 0) {\n      FUN_00134fb0("-nc expects argument of form \'host:port\'");\n      return 2;\n    }\n    uVar5 = FUN_0010c2a6(&DAT_0013b2b1,lVar10 - (long)param_2,param_2);\n    FUN_0010ad3a(param_4,0x2e,uVar5);\n    uVar9 = strtol((char *)(lVar10 + 1),(char **)0x0,10);\n    FUN_0010ac09(param_4,0x2f,uVar9 & 0xffffffff);\n    FUN_0010c4d3(uVar5);\n    iVar3 = strcmp((char *)param_1,"-m");\n    uVar5 = 2;\n    bVar15 = iVar3 == 0;\n    if (!bVar15) goto LAB_0010a032;\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_00109f54:\n    __stream = fopen64(param_2,"r");\n    if (__stream == (FILE *)0x0) {\n      FUN_00134fb0("unable to open command file \"%s\"",param_2);\n      return 2;\n    }\n    lVar13 = 0;\n    local_3c = 0;\n    lVar10 = 0;\n    while( true ) {\n      iVar4 = (int)lVar13;\n      iVar3 = fgetc(__stream);\n      if (iVar3 == -1) break;\n      local_48._0_1_ = (undefined1)iVar3;\n      if (iVar4 < local_3c) {\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      else {\n        local_3c = iVar4 + 0x200;\n        lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      lVar13 = lVar13 + 1;\n    }\n    if (iVar4 < local_3c) {\n      *(undefined1 *)(lVar10 + iVar4) = 0;\n    }\n    else {\n      lVar10 = FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1);\n      *(undefined1 *)(lVar10 + lVar13) = 0;\n    }\n    fclose(__stream);\n    FUN_0010ad3a(param_4,0x14,lVar10);\n    FUN_0010ad3a(param_4,0x15,&DAT_0013bec9);\n    FUN_0010ac09(param_4,0x16,1);\n    FUN_0010c4d3(lVar10);\n    iVar3 = strcmp((char *)param_1,"-P");\n    uVar5 = 2;\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      goto LAB_00109749;\n    }\nLAB_00108afa:\n    iVar3 = strcmp((char *)param_1,"-pw");\n    if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 2;\n      }\n      goto LAB_00109ee5;\n    }\n    iVar3 = strcmp((char *)param_1,"-agent");\n    if (iVar3 != 0) goto LAB_00108ba4;\nLAB_00108bce:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108bdc:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00108bf9:\n    FUN_0010ac09(param_4,0x1c,1);\n    iVar3 = strcmp((char *)param_1,"-noagent");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108c37;\n    }\n    iVar3 = strcmp((char *)param_1,"-nopagent");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00109e76;\nLAB_00108d1b:\n    iVar3 = strcmp((char *)param_1,"-nopageant");\n    if (iVar3 == 0) goto LAB_00108d2e;\n    iVar3 = strcmp((char *)param_1,"-A");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-a");\n      if (iVar3 != 0) goto LAB_00108c7d;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108db9;\n    }\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109d88:\n    FUN_0010ac09(param_4,0x1d,1);\n    iVar3 = strcmp((char *)param_1,"-a");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d25;\n    }\n    iVar3 = strcmp((char *)param_1,"-X");\n    uVar5 = 1;\n    if (iVar3 == 0) {\nLAB_00108ca2:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109c0f;\n    }\nLAB_00109dce:\n    iVar3 = strcmp((char *)param_1,"-x");\n    if (iVar3 != 0) goto LAB_00109de5;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108dff:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109c49:\n    FUN_0010ac09(param_4,0x95,0);\n    iVar3 = strcmp((char *)param_1,"-t");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c87:\n      FUN_0010ac09(param_4,0x16,0);\n      iVar3 = strcmp((char *)param_1,"-T");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }\n      iVar3 = strcmp((char *)param_1,"-N");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109ba0;\n    }\n    else {\n      iVar3 = strcmp((char *)param_1,"-T");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109e21;\nLAB_00109b7b:\n      iVar3 = strcmp((char *)param_1,"-N");\n      if (iVar3 == 0) {\n        if (param_3 < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }\n    }\n    iVar3 = strcmp((char *)param_1,"-C");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00108e8b:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\nLAB_0010989e:\n      FUN_0010ac09(param_4,0x17,1);\n      iVar3 = strcmp((char *)param_1,"-1");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }\n      iVar3 = strcmp((char *)param_1,"-2");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109930;\n      goto LAB_00109b26;\n    }\nLAB_00109aea:\n    iVar3 = strcmp((char *)param_1,"-1");\n    if (iVar3 != 0) goto LAB_00109b01;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108ed1:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_001098d8:\n    FUN_0010ac09(param_4,0x21,0);\n    iVar3 = strcmp((char *)param_1,"-2");\n    uVar5 = 1;\n    if (iVar3 != 0) goto LAB_00109930;\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\nLAB_00109918:\n    FUN_0010ac09(param_4,0x21,3);\n    uVar5 = 1;\n  }" { (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (expression_statement "bVar15 = iVar3 == 0;" (assignment_expression "bVar15 = iVar3 == 0" identifier = (binary_expression "iVar3 == 0" identifier == number_literal)) ;) (if_statement "if (!bVar15) {\n      return 2;\n    }" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_001088cd:\n    bVar18 = false;" statement_identifier : (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;)) (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)0x1440f1;" (assignment_expression "pbVar12 = (byte *)0x1440f1" identifier = (cast_expression "(byte *)0x1440f1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar11 < *pbVar12;" (assignment_expression "bVar18 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar19 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "uVar19 = (!bVar18 && !bVar15) == bVar18" identifier = (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" ( (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if ((bool)uVar19) {\n      uVar5 = FUN_0010c2a6(&DAT_0013b2b6,param_2);\n      uVar7 = FUN_0010bd5d("D");\n    }\n    else {\n      bVar1 = param_1[1];\n      pcVar6 = (char *)FUN_0010b8c9(param_2,0x3a);\n      pcVar8 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\nLAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);\n        return 2;\n      }\n      do {\n        pcVar14 = pcVar8;\n        pcVar8 = pcVar6;\n        pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);\n      } while (pcVar6 != (char *)0x0);\n      if (pcVar14 == (char *)0x0) goto LAB_00108973;\n      uVar17 = pcVar14 < param_2;\n      uVar19 = (long)pcVar14 - (long)param_2 == 0;\n      uVar5 = FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2);\n      uVar7 = FUN_0010bd5d(pcVar14 + 1);\n    }" if (parenthesized_expression "((bool)uVar19)" ( (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\n      uVar5 = FUN_0010c2a6(&DAT_0013b2b6,param_2);\n      uVar7 = FUN_0010bd5d("D");\n    }" { (expression_statement "uVar5 = FUN_0010c2a6(&DAT_0013b2b6,param_2);" (assignment_expression "uVar5 = FUN_0010c2a6(&DAT_0013b2b6,param_2)" identifier = (call_expression "FUN_0010c2a6(&DAT_0013b2b6,param_2)" identifier (argument_list "(&DAT_0013b2b6,param_2)" ( (pointer_expression "&DAT_0013b2b6" & identifier) , identifier )))) ;) (expression_statement "uVar7 = FUN_0010bd5d("D");" (assignment_expression "uVar7 = FUN_0010bd5d("D")" identifier = (call_expression "FUN_0010bd5d("D")" identifier (argument_list "("D")" ( (string_literal ""D"" " string_content ") )))) ;) }) (else_clause "else {\n      bVar1 = param_1[1];\n      pcVar6 = (char *)FUN_0010b8c9(param_2,0x3a);\n      pcVar8 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\nLAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);\n        return 2;\n      }\n      do {\n        pcVar14 = pcVar8;\n        pcVar8 = pcVar6;\n        pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);\n      } while (pcVar6 != (char *)0x0);\n      if (pcVar14 == (char *)0x0) goto LAB_00108973;\n      uVar17 = pcVar14 < param_2;\n      uVar19 = (long)pcVar14 - (long)param_2 == 0;\n      uVar5 = FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2);\n      uVar7 = FUN_0010bd5d(pcVar14 + 1);\n    }" else (compound_statement "{\n      bVar1 = param_1[1];\n      pcVar6 = (char *)FUN_0010b8c9(param_2,0x3a);\n      pcVar8 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\nLAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);\n        return 2;\n      }\n      do {\n        pcVar14 = pcVar8;\n        pcVar8 = pcVar6;\n        pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);\n      } while (pcVar6 != (char *)0x0);\n      if (pcVar14 == (char *)0x0) goto LAB_00108973;\n      uVar17 = pcVar14 < param_2;\n      uVar19 = (long)pcVar14 - (long)param_2 == 0;\n      uVar5 = FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2);\n      uVar7 = FUN_0010bd5d(pcVar14 + 1);\n    }" { (expression_statement "bVar1 = param_1[1];" (assignment_expression "bVar1 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar6 = (char *)FUN_0010b8c9(param_2,0x3a);" (assignment_expression "pcVar6 = (char *)FUN_0010b8c9(param_2,0x3a)" identifier = (cast_expression "(char *)FUN_0010b8c9(param_2,0x3a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0010b8c9(param_2,0x3a)" identifier (argument_list "(param_2,0x3a)" ( identifier , number_literal ))))) ;) (expression_statement "pcVar8 = pcVar6;" (assignment_expression "pcVar8 = pcVar6" identifier = identifier) ;) (if_statement "if (pcVar6 == (char *)0x0) {\nLAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);\n        return 2;\n      }" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);\n        return 2;\n      }" { (labeled_statement "LAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);" statement_identifier : (expression_statement "FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);" (call_expression "FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1)" identifier (argument_list "("-%c expects at least two colons in its argument",(int)(char)bVar1)" ( (string_literal ""-%c expects at least two colons in its argument"" " string_content ") , (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) ))) ;)) (return_statement "return 2;" return number_literal ;) })) (do_statement "do {\n        pcVar14 = pcVar8;\n        pcVar8 = pcVar6;\n        pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);\n      } while (pcVar6 != (char *)0x0);" do (compound_statement "{\n        pcVar14 = pcVar8;\n        pcVar8 = pcVar6;\n        pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);\n      }" { (expression_statement "pcVar14 = pcVar8;" (assignment_expression "pcVar14 = pcVar8" identifier = identifier) ;) (expression_statement "pcVar8 = pcVar6;" (assignment_expression "pcVar8 = pcVar6" identifier = identifier) ;) (expression_statement "pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);" (assignment_expression "pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a)" identifier = (cast_expression "(char *)FUN_0010b8c9(pcVar8 + 1,0x3a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0010b8c9(pcVar8 + 1,0x3a)" identifier (argument_list "(pcVar8 + 1,0x3a)" ( (binary_expression "pcVar8 + 1" identifier + number_literal) , number_literal ))))) ;) }) while (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (if_statement "if (pcVar14 == (char *)0x0) goto LAB_00108973;" if (parenthesized_expression "(pcVar14 == (char *)0x0)" ( (binary_expression "pcVar14 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00108973;" goto statement_identifier ;)) (expression_statement "uVar17 = pcVar14 < param_2;" (assignment_expression "uVar17 = pcVar14 < param_2" identifier = (binary_expression "pcVar14 < param_2" identifier < identifier)) ;) (expression_statement "uVar19 = (long)pcVar14 - (long)param_2 == 0;" (assignment_expression "uVar19 = (long)pcVar14 - (long)param_2 == 0" identifier = (binary_expression "(long)pcVar14 - (long)param_2 == 0" (binary_expression "(long)pcVar14 - (long)param_2" (cast_expression "(long)pcVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) == number_literal)) ;) (expression_statement "uVar5 = FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2);" (assignment_expression "uVar5 = FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2)" identifier = (call_expression "FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2)" identifier (argument_list "(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2)" ( (pointer_expression "&DAT_0013b2af" & identifier) , (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) , (binary_expression "(long)pcVar14 - (long)param_2" (cast_expression "(long)pcVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) , identifier )))) ;) (expression_statement "uVar7 = FUN_0010bd5d(pcVar14 + 1);" (assignment_expression "uVar7 = FUN_0010bd5d(pcVar14 + 1)" identifier = (call_expression "FUN_0010bd5d(pcVar14 + 1)" identifier (argument_list "(pcVar14 + 1)" ( (binary_expression "pcVar14 + 1" identifier + number_literal) )))) ;) }))) (expression_statement "FUN_0010ade1(param_4,0x9b,uVar5,uVar7);" (call_expression "FUN_0010ade1(param_4,0x9b,uVar5,uVar7)" identifier (argument_list "(param_4,0x9b,uVar5,uVar7)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "FUN_0010c4d3(uVar5);" (call_expression "FUN_0010c4d3(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "FUN_0010c4d3(uVar7);" (call_expression "FUN_0010c4d3(uVar7)" identifier (argument_list "(uVar7)" ( identifier ))) ;) (expression_statement "lVar10 = 4;" (assignment_expression "lVar10 = 4" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = &DAT_0013b2ba;" (assignment_expression "pbVar12 = &DAT_0013b2ba" identifier = (pointer_expression "&DAT_0013b2ba" & identifier)) ;) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);" do (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "uVar17 = *pbVar11 < *pbVar12;" (assignment_expression "uVar17 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "uVar19 = *pbVar11 == *pbVar12;" (assignment_expression "uVar19 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar19)" ( (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" identifier = number_literal) ;) (expression_statement "bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;" (assignment_expression "bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17" identifier = (binary_expression "(!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17" (parenthesized_expression "(!(bool)uVar17 && !(bool)uVar19)" ( (binary_expression "!(bool)uVar17 && !(bool)uVar19" (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar19" ! (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (!bVar15) goto LAB_00108a01;" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (goto_statement "goto LAB_00108a01;" goto statement_identifier ;)) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      return 2;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_00109fa5:\n    lVar10 = FUN_0010b8c9(param_2,0x3a);" statement_identifier : (expression_statement "lVar10 = FUN_0010b8c9(param_2,0x3a);" (assignment_expression "lVar10 = FUN_0010b8c9(param_2,0x3a)" identifier = (call_expression "FUN_0010b8c9(param_2,0x3a)" identifier (argument_list "(param_2,0x3a)" ( identifier , number_literal )))) ;)) (if_statement "if (lVar10 == 0) {\n      FUN_00134fb0("-nc expects argument of form \'host:port\'");\n      return 2;\n    }" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (compound_statement "{\n      FUN_00134fb0("-nc expects argument of form \'host:port\'");\n      return 2;\n    }" { (expression_statement "FUN_00134fb0("-nc expects argument of form \'host:port\'");" (call_expression "FUN_00134fb0("-nc expects argument of form \'host:port\'")" identifier (argument_list "("-nc expects argument of form \'host:port\'")" ( (string_literal ""-nc expects argument of form \'host:port\'"" " string_content escape_sequence string_content escape_sequence ") ))) ;) (return_statement "return 2;" return number_literal ;) })) (expression_statement "uVar5 = FUN_0010c2a6(&DAT_0013b2b1,lVar10 - (long)param_2,param_2);" (assignment_expression "uVar5 = FUN_0010c2a6(&DAT_0013b2b1,lVar10 - (long)param_2,param_2)" identifier = (call_expression "FUN_0010c2a6(&DAT_0013b2b1,lVar10 - (long)param_2,param_2)" identifier (argument_list "(&DAT_0013b2b1,lVar10 - (long)param_2,param_2)" ( (pointer_expression "&DAT_0013b2b1" & identifier) , (binary_expression "lVar10 - (long)param_2" identifier - (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) , identifier )))) ;) (expression_statement "FUN_0010ad3a(param_4,0x2e,uVar5);" (call_expression "FUN_0010ad3a(param_4,0x2e,uVar5)" identifier (argument_list "(param_4,0x2e,uVar5)" ( identifier , number_literal , identifier ))) ;) (expression_statement "uVar9 = strtol((char *)(lVar10 + 1),(char **)0x0,10);" (assignment_expression "uVar9 = strtol((char *)(lVar10 + 1),(char **)0x0,10)" identifier = (call_expression "strtol((char *)(lVar10 + 1),(char **)0x0,10)" identifier (argument_list "((char *)(lVar10 + 1),(char **)0x0,10)" ( (cast_expression "(char *)(lVar10 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 1)" ( (binary_expression "lVar10 + 1" identifier + number_literal) ))) , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , number_literal )))) ;) (expression_statement "FUN_0010ac09(param_4,0x2f,uVar9 & 0xffffffff);" (call_expression "FUN_0010ac09(param_4,0x2f,uVar9 & 0xffffffff)" identifier (argument_list "(param_4,0x2f,uVar9 & 0xffffffff)" ( identifier , number_literal , (binary_expression "uVar9 & 0xffffffff" identifier & number_literal) ))) ;) (expression_statement "FUN_0010c4d3(uVar5);" (call_expression "FUN_0010c4d3(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "iVar3 = strcmp((char *)param_1,"-m");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-m")" identifier = (call_expression "strcmp((char *)param_1,"-m")" identifier (argument_list "((char *)param_1,"-m")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-m"" " string_content ") )))) ;) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" identifier = number_literal) ;) (expression_statement "bVar15 = iVar3 == 0;" (assignment_expression "bVar15 = iVar3 == 0" identifier = (binary_expression "iVar3 == 0" identifier == number_literal)) ;) (if_statement "if (!bVar15) goto LAB_0010a032;" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (goto_statement "goto LAB_0010a032;" goto statement_identifier ;)) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      return 2;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_00109f54:\n    __stream = fopen64(param_2,"r");" statement_identifier : (expression_statement "__stream = fopen64(param_2,"r");" (assignment_expression "__stream = fopen64(param_2,"r")" identifier = (call_expression "fopen64(param_2,"r")" identifier (argument_list "(param_2,"r")" ( identifier , (string_literal ""r"" " string_content ") )))) ;)) (if_statement "if (__stream == (FILE *)0x0) {\n      FUN_00134fb0("unable to open command file \"%s\"",param_2);\n      return 2;\n    }" if (parenthesized_expression "(__stream == (FILE *)0x0)" ( (binary_expression "__stream == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_00134fb0("unable to open command file \"%s\"",param_2);\n      return 2;\n    }" { (expression_statement "FUN_00134fb0("unable to open command file \"%s\"",param_2);" (call_expression "FUN_00134fb0("unable to open command file \"%s\"",param_2)" identifier (argument_list "("unable to open command file \"%s\"",param_2)" ( (string_literal ""unable to open command file \"%s\""" " string_content escape_sequence string_content escape_sequence ") , identifier ))) ;) (return_statement "return 2;" return number_literal ;) })) (expression_statement "lVar13 = 0;" (assignment_expression "lVar13 = 0" identifier = number_literal) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n      iVar4 = (int)lVar13;\n      iVar3 = fgetc(__stream);\n      if (iVar3 == -1) break;\n      local_48._0_1_ = (undefined1)iVar3;\n      if (iVar4 < local_3c) {\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      else {\n        local_3c = iVar4 + 0x200;\n        lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      lVar13 = lVar13 + 1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      iVar4 = (int)lVar13;\n      iVar3 = fgetc(__stream);\n      if (iVar3 == -1) break;\n      local_48._0_1_ = (undefined1)iVar3;\n      if (iVar4 < local_3c) {\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      else {\n        local_3c = iVar4 + 0x200;\n        lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      lVar13 = lVar13 + 1;\n    }" { (expression_statement "iVar4 = (int)lVar13;" (assignment_expression "iVar4 = (int)lVar13" identifier = (cast_expression "(int)lVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar3 = fgetc(__stream);" (assignment_expression "iVar3 = fgetc(__stream)" identifier = (call_expression "fgetc(__stream)" identifier (argument_list "(__stream)" ( identifier )))) ;) (if_statement "if (iVar3 == -1) break;" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "local_48._0_1_ = (undefined1)iVar3;" (assignment_expression "local_48._0_1_ = (undefined1)iVar3" (field_expression "local_48._0_1_" identifier . field_identifier) = (cast_expression "(undefined1)iVar3" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (if_statement "if (iVar4 < local_3c) {\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      else {\n        local_3c = iVar4 + 0x200;\n        lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }" if (parenthesized_expression "(iVar4 < local_3c)" ( (binary_expression "iVar4 < local_3c" identifier < identifier) )) (compound_statement "{\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }" { (expression_statement "*(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;" (assignment_expression "*(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48" (pointer_expression "*(undefined1 *)(lVar10 + lVar13)" * (cast_expression "(undefined1 *)(lVar10 + lVar13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + lVar13)" ( (binary_expression "lVar10 + lVar13" identifier + identifier) )))) = (cast_expression "(undefined1)local_48" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        local_3c = iVar4 + 0x200;\n        lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }" else (compound_statement "{\n        local_3c = iVar4 + 0x200;\n        lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }" { (expression_statement "local_3c = iVar4 + 0x200;" (assignment_expression "local_3c = iVar4 + 0x200" identifier = (binary_expression "iVar4 + 0x200" identifier + number_literal)) ;) (expression_statement "lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);" (assignment_expression "lVar10 = FUN_0010c033(lVar10,(long)local_3c,1)" identifier = (call_expression "FUN_0010c033(lVar10,(long)local_3c,1)" identifier (argument_list "(lVar10,(long)local_3c,1)" ( identifier , (cast_expression "(long)local_3c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) , number_literal )))) ;) (expression_statement "*(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;" (assignment_expression "*(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48" (pointer_expression "*(undefined1 *)(lVar10 + lVar13)" * (cast_expression "(undefined1 *)(lVar10 + lVar13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + lVar13)" ( (binary_expression "lVar10 + lVar13" identifier + identifier) )))) = (cast_expression "(undefined1)local_48" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) }))) (expression_statement "lVar13 = lVar13 + 1;" (assignment_expression "lVar13 = lVar13 + 1" identifier = (binary_expression "lVar13 + 1" identifier + number_literal)) ;) })) (if_statement "if (iVar4 < local_3c) {\n      *(undefined1 *)(lVar10 + iVar4) = 0;\n    }\n    else {\n      lVar10 = FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1);\n      *(undefined1 *)(lVar10 + lVar13) = 0;\n    }" if (parenthesized_expression "(iVar4 < local_3c)" ( (binary_expression "iVar4 < local_3c" identifier < identifier) )) (compound_statement "{\n      *(undefined1 *)(lVar10 + iVar4) = 0;\n    }" { (expression_statement "*(undefined1 *)(lVar10 + iVar4) = 0;" (assignment_expression "*(undefined1 *)(lVar10 + iVar4) = 0" (pointer_expression "*(undefined1 *)(lVar10 + iVar4)" * (cast_expression "(undefined1 *)(lVar10 + iVar4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + iVar4)" ( (binary_expression "lVar10 + iVar4" identifier + identifier) )))) = number_literal) ;) }) (else_clause "else {\n      lVar10 = FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1);\n      *(undefined1 *)(lVar10 + lVar13) = 0;\n    }" else (compound_statement "{\n      lVar10 = FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1);\n      *(undefined1 *)(lVar10 + lVar13) = 0;\n    }" { (expression_statement "lVar10 = FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1);" (assignment_expression "lVar10 = FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1)" identifier = (call_expression "FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1)" identifier (argument_list "(lVar10,(long)(iVar4 + 0x200),1)" ( identifier , (cast_expression "(long)(iVar4 + 0x200)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(iVar4 + 0x200)" ( (binary_expression "iVar4 + 0x200" identifier + number_literal) ))) , number_literal )))) ;) (expression_statement "*(undefined1 *)(lVar10 + lVar13) = 0;" (assignment_expression "*(undefined1 *)(lVar10 + lVar13) = 0" (pointer_expression "*(undefined1 *)(lVar10 + lVar13)" * (cast_expression "(undefined1 *)(lVar10 + lVar13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + lVar13)" ( (binary_expression "lVar10 + lVar13" identifier + identifier) )))) = number_literal) ;) }))) (expression_statement "fclose(__stream);" (call_expression "fclose(__stream)" identifier (argument_list "(__stream)" ( identifier ))) ;) (expression_statement "FUN_0010ad3a(param_4,0x14,lVar10);" (call_expression "FUN_0010ad3a(param_4,0x14,lVar10)" identifier (argument_list "(param_4,0x14,lVar10)" ( identifier , number_literal , identifier ))) ;) (expression_statement "FUN_0010ad3a(param_4,0x15,&DAT_0013bec9);" (call_expression "FUN_0010ad3a(param_4,0x15,&DAT_0013bec9)" identifier (argument_list "(param_4,0x15,&DAT_0013bec9)" ( identifier , number_literal , (pointer_expression "&DAT_0013bec9" & identifier) ))) ;) (expression_statement "FUN_0010ac09(param_4,0x16,1);" (call_expression "FUN_0010ac09(param_4,0x16,1)" identifier (argument_list "(param_4,0x16,1)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "FUN_0010c4d3(lVar10);" (call_expression "FUN_0010c4d3(lVar10)" identifier (argument_list "(lVar10)" ( identifier ))) ;) (expression_statement "iVar3 = strcmp((char *)param_1,"-P");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-P")" identifier = (call_expression "strcmp((char *)param_1,"-P")" identifier (argument_list "((char *)param_1,"-P")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-P"" " string_content ") )))) ;) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      goto LAB_00109749;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      goto LAB_00109749;\n    }" { (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        return 2;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (goto_statement "goto LAB_00109749;" goto statement_identifier ;) })) (labeled_statement "LAB_00108afa:\n    iVar3 = strcmp((char *)param_1,"-pw");" statement_identifier : (expression_statement "iVar3 = strcmp((char *)param_1,"-pw");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-pw")" identifier = (call_expression "strcmp((char *)param_1,"-pw")" identifier (argument_list "((char *)param_1,"-pw")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-pw"" " string_content ") )))) ;)) (if_statement "if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 2;\n      }\n      goto LAB_00109ee5;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 2;\n      }\n      goto LAB_00109ee5;\n    }" { (if_statement "if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return 0xfffffffe;\n      }" { (return_statement "return 0xfffffffe;" return number_literal ;) })) (if_statement "if (param_3 < 0) {\n        return 2;\n      }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        return 2;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 2;\n      }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_001080ad(param_1,param_2,1);\n        return 2;\n      }" { (expression_statement "FUN_001080ad(param_1,param_2,1);" (call_expression "FUN_001080ad(param_1,param_2,1)" identifier (argument_list "(param_1,param_2,1)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (goto_statement "goto LAB_00109ee5;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp((char *)param_1,"-agent");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-agent")" identifier = (call_expression "strcmp((char *)param_1,"-agent")" identifier (argument_list "((char *)param_1,"-agent")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-agent"" " string_content ") )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00108ba4;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00108ba4;" goto statement_identifier ;)) (labeled_statement "LAB_00108bce:\n    if (param_3 < 0) {\n      return 1;\n    }" statement_identifier : (if_statement "if (param_3 < 0) {\n      return 1;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) }))) (labeled_statement "LAB_00108bdc:\n    iVar3 = FUN_00108083(2,param_1);" statement_identifier : (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar3 != 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00108bf9:\n    FUN_0010ac09(param_4,0x1c,1);" statement_identifier : (expression_statement "FUN_0010ac09(param_4,0x1c,1);" (call_expression "FUN_0010ac09(param_4,0x1c,1)" identifier (argument_list "(param_4,0x1c,1)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar3 = strcmp((char *)param_1,"-noagent");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-noagent")" identifier = (call_expression "strcmp((char *)param_1,"-noagent")" identifier (argument_list "((char *)param_1,"-noagent")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-noagent"" " string_content ") )))) ;) (if_statement "if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108c37;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108c37;\n    }" { (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00108c37;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp((char *)param_1,"-nopagent");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-nopagent")" identifier = (call_expression "strcmp((char *)param_1,"-nopagent")" identifier (argument_list "((char *)param_1,"-nopagent")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-nopagent"" " string_content ") )))) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) goto LAB_00109e76;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00109e76;" goto statement_identifier ;)) (labeled_statement "LAB_00108d1b:\n    iVar3 = strcmp((char *)param_1,"-nopageant");" statement_identifier : (expression_statement "iVar3 = strcmp((char *)param_1,"-nopageant");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-nopageant")" identifier = (call_expression "strcmp((char *)param_1,"-nopageant")" identifier (argument_list "((char *)param_1,"-nopageant")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-nopageant"" " string_content ") )))) ;)) (if_statement "if (iVar3 == 0) goto LAB_00108d2e;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00108d2e;" goto statement_identifier ;)) (expression_statement "iVar3 = strcmp((char *)param_1,"-A");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-A")" identifier = (call_expression "strcmp((char *)param_1,"-A")" identifier (argument_list "((char *)param_1,"-A")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-A"" " string_content ") )))) ;) (if_statement "if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-a");\n      if (iVar3 != 0) goto LAB_00108c7d;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108db9;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar3 = strcmp((char *)param_1,"-a");\n      if (iVar3 != 0) goto LAB_00108c7d;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108db9;\n    }" { (expression_statement "iVar3 = strcmp((char *)param_1,"-a");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-a")" identifier = (call_expression "strcmp((char *)param_1,"-a")" identifier (argument_list "((char *)param_1,"-a")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-a"" " string_content ") )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00108c7d;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00108c7d;" goto statement_identifier ;)) (if_statement "if (param_3 < 0) {\n        return 1;\n      }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00108db9;" goto statement_identifier ;) })) (if_statement "if (param_3 < 0) {\n      return 1;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109d88:\n    FUN_0010ac09(param_4,0x1d,1);" statement_identifier : (expression_statement "FUN_0010ac09(param_4,0x1d,1);" (call_expression "FUN_0010ac09(param_4,0x1d,1)" identifier (argument_list "(param_4,0x1d,1)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar3 = strcmp((char *)param_1,"-a");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-a")" identifier = (call_expression "strcmp((char *)param_1,"-a")" identifier (argument_list "((char *)param_1,"-a")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-a"" " string_content ") )))) ;) (if_statement "if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d25;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d25;\n    }" { (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00109d25;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp((char *)param_1,"-X");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-X")" identifier = (call_expression "strcmp((char *)param_1,"-X")" identifier (argument_list "((char *)param_1,"-X")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-X"" " string_content ") )))) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) {\nLAB_00108ca2:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109c0f;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00108ca2:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109c0f;\n    }" { (labeled_statement "LAB_00108ca2:\n      iVar3 = FUN_00108083(3,param_1);" statement_identifier : (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00109c0f;" goto statement_identifier ;) })) (labeled_statement "LAB_00109dce:\n    iVar3 = strcmp((char *)param_1,"-x");" statement_identifier : (expression_statement "iVar3 = strcmp((char *)param_1,"-x");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-x")" identifier = (call_expression "strcmp((char *)param_1,"-x")" identifier (argument_list "((char *)param_1,"-x")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-x"" " string_content ") )))) ;)) (if_statement "if (iVar3 != 0) goto LAB_00109de5;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109de5;" goto statement_identifier ;)) (if_statement "if (param_3 < 0) {\n      return 1;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00108dff:\n    iVar3 = FUN_00108083(3,param_1);" statement_identifier : (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar3 != 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109c49:\n    FUN_0010ac09(param_4,0x95,0);" statement_identifier : (expression_statement "FUN_0010ac09(param_4,0x95,0);" (call_expression "FUN_0010ac09(param_4,0x95,0)" identifier (argument_list "(param_4,0x95,0)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar3 = strcmp((char *)param_1,"-t");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-t")" identifier = (call_expression "strcmp((char *)param_1,"-t")" identifier (argument_list "((char *)param_1,"-t")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-t"" " string_content ") )))) ;) (if_statement "if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c87:\n      FUN_0010ac09(param_4,0x16,0);\n      iVar3 = strcmp((char *)param_1,"-T");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }\n      iVar3 = strcmp((char *)param_1,"-N");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109ba0;\n    }\n    else {\n      iVar3 = strcmp((char *)param_1,"-T");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109e21;\nLAB_00109b7b:\n      iVar3 = strcmp((char *)param_1,"-N");\n      if (iVar3 == 0) {\n        if (param_3 < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c87:\n      FUN_0010ac09(param_4,0x16,0);\n      iVar3 = strcmp((char *)param_1,"-T");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }\n      iVar3 = strcmp((char *)param_1,"-N");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109ba0;\n    }" { (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109c87:\n      FUN_0010ac09(param_4,0x16,0);" statement_identifier : (expression_statement "FUN_0010ac09(param_4,0x16,0);" (call_expression "FUN_0010ac09(param_4,0x16,0)" identifier (argument_list "(param_4,0x16,0)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar3 = strcmp((char *)param_1,"-T");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-T")" identifier = (call_expression "strcmp((char *)param_1,"-T")" identifier (argument_list "((char *)param_1,"-T")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-T"" " string_content ") )))) ;) (if_statement "if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }" { (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n          return 1;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          return 1;\n        }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00109cc5;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp((char *)param_1,"-N");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-N")" identifier = (call_expression "strcmp((char *)param_1,"-N")" identifier (argument_list "((char *)param_1,"-N")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-N"" " string_content ") )))) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) goto LAB_00109ba0;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00109ba0;" goto statement_identifier ;)) }) (else_clause "else {\n      iVar3 = strcmp((char *)param_1,"-T");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109e21;\nLAB_00109b7b:\n      iVar3 = strcmp((char *)param_1,"-N");\n      if (iVar3 == 0) {\n        if (param_3 < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }\n    }" else (compound_statement "{\n      iVar3 = strcmp((char *)param_1,"-T");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109e21;\nLAB_00109b7b:\n      iVar3 = strcmp((char *)param_1,"-N");\n      if (iVar3 == 0) {\n        if (param_3 < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }\n    }" { (expression_statement "iVar3 = strcmp((char *)param_1,"-T");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-T")" identifier = (call_expression "strcmp((char *)param_1,"-T")" identifier (argument_list "((char *)param_1,"-T")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-T"" " string_content ") )))) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) goto LAB_00109e21;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00109e21;" goto statement_identifier ;)) (labeled_statement "LAB_00109b7b:\n      iVar3 = strcmp((char *)param_1,"-N");" statement_identifier : (expression_statement "iVar3 = strcmp((char *)param_1,"-N");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-N")" identifier = (call_expression "strcmp((char *)param_1,"-N")" identifier (argument_list "((char *)param_1,"-N")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-N"" " string_content ") )))) ;)) (if_statement "if (iVar3 == 0) {\n        if (param_3 < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        if (param_3 < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }" { (if_statement "if (param_3 < 0) {\n          return 1;\n        }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n          return 1;\n        }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);" statement_identifier : (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar3 != 0) {\n          return 1;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          return 1;\n        }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00109a6e;" goto statement_identifier ;) })) }))) (expression_statement "iVar3 = strcmp((char *)param_1,"-C");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-C")" identifier = (call_expression "strcmp((char *)param_1,"-C")" identifier (argument_list "((char *)param_1,"-C")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-C"" " string_content ") )))) ;) (if_statement "if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00108e8b:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\nLAB_0010989e:\n      FUN_0010ac09(param_4,0x17,1);\n      iVar3 = strcmp((char *)param_1,"-1");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }\n      iVar3 = strcmp((char *)param_1,"-2");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109930;\n      goto LAB_00109b26;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00108e8b:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\nLAB_0010989e:\n      FUN_0010ac09(param_4,0x17,1);\n      iVar3 = strcmp((char *)param_1,"-1");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }\n      iVar3 = strcmp((char *)param_1,"-2");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109930;\n      goto LAB_00109b26;\n    }" { (if_statement "if (param_3 < 0) {\n        return 1;\n      }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00108e8b:\n      iVar3 = FUN_00108083(2,param_1);" statement_identifier : (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_0010989e:\n      FUN_0010ac09(param_4,0x17,1);" statement_identifier : (expression_statement "FUN_0010ac09(param_4,0x17,1);" (call_expression "FUN_0010ac09(param_4,0x17,1)" identifier (argument_list "(param_4,0x17,1)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar3 = strcmp((char *)param_1,"-1");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-1")" identifier = (call_expression "strcmp((char *)param_1,"-1")" identifier (argument_list "((char *)param_1,"-1")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-1"" " string_content ") )))) ;) (if_statement "if (iVar3 == 0) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }" { (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n          return 1;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          return 1;\n        }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_001098d8;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp((char *)param_1,"-2");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-2")" identifier = (call_expression "strcmp((char *)param_1,"-2")" identifier (argument_list "((char *)param_1,"-2")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-2"" " string_content ") )))) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_00109930;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109930;" goto statement_identifier ;)) (goto_statement "goto LAB_00109b26;" goto statement_identifier ;) })) (labeled_statement "LAB_00109aea:\n    iVar3 = strcmp((char *)param_1,"-1");" statement_identifier : (expression_statement "iVar3 = strcmp((char *)param_1,"-1");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-1")" identifier = (call_expression "strcmp((char *)param_1,"-1")" identifier (argument_list "((char *)param_1,"-1")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-1"" " string_content ") )))) ;)) (if_statement "if (iVar3 != 0) goto LAB_00109b01;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109b01;" goto statement_identifier ;)) (if_statement "if (param_3 < 0) {\n      return 1;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00108ed1:\n    iVar3 = FUN_00108083(2,param_1);" statement_identifier : (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar3 != 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_001098d8:\n    FUN_0010ac09(param_4,0x21,0);" statement_identifier : (expression_statement "FUN_0010ac09(param_4,0x21,0);" (call_expression "FUN_0010ac09(param_4,0x21,0)" identifier (argument_list "(param_4,0x21,0)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar3 = strcmp((char *)param_1,"-2");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-2")" identifier = (call_expression "strcmp((char *)param_1,"-2")" identifier (argument_list "((char *)param_1,"-2")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-2"" " string_content ") )))) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_00109930;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109930;" goto statement_identifier ;)) (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109918:\n    FUN_0010ac09(param_4,0x21,3);" statement_identifier : (expression_statement "FUN_0010ac09(param_4,0x21,3);" (call_expression "FUN_0010ac09(param_4,0x21,3)" identifier (argument_list "(param_4,0x21,3)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) }) (else_clause "else {\nLAB_00108865:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2ac;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\nLAB_0010889d:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      bVar15 = param_3 == 0;\n      if (!bVar15) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001088cd;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)0x1440f1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_0010889d;\n    iVar3 = strcmp((char *)param_1,"-nc");\n    bVar15 = iVar3 == 0;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109fa5;\n    }\nLAB_00108a01:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2be;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109f54;\n    }\nLAB_0010a032:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2c1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar18 && !bVar15) != bVar18) goto LAB_00108afa;\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }\nLAB_00109749:\n    uVar9 = strtol(param_2,(char **)0x0,10);\n    FUN_0010ac09(param_4,1,uVar9 & 0xffffffff);\n    iVar3 = strcmp((char *)param_1,"-pw");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\nLAB_00109ee5:\n      iVar3 = FUN_0010a543(param_4,2);\n      if (iVar3 == 3) {\n        DAT_00152128 = FUN_0010bd5d(param_2);\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = param_2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        FUN_0010c727(param_2,~uVar9 - 1);\n      }\n      else {\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }\n      iVar3 = strcmp((char *)param_1,"-agent");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-pagent");\n        uVar5 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108bf9;\n    }\n    iVar3 = strcmp((char *)param_1,"-agent");\n    uVar5 = 2;\n    if (iVar3 == 0) goto LAB_00108bdc;\nLAB_00108ba4:\n    iVar3 = strcmp((char *)param_1,"-pagent");\n    if (iVar3 == 0) goto LAB_00108bce;\nLAB_00108bb7:\n    iVar3 = strcmp((char *)param_1,"-pageant");\n    if (iVar3 == 0) goto LAB_00108bce;\n    iVar3 = strcmp((char *)param_1,"-noagent");\n    if ((iVar3 != 0) && (iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0))\n    goto LAB_00108d1b;\nLAB_00108d2e:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e76:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00108c37:\n    FUN_0010ac09(param_4,0x1c,0);\n    iVar3 = strcmp((char *)param_1,"-A");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d88;\n    }\n    iVar3 = strcmp((char *)param_1,"-a");\n    if (iVar3 != 0) {\n      uVar5 = 1;\nLAB_00108c7d:\n      iVar3 = strcmp((char *)param_1,"-X");\n      if (iVar3 != 0) goto LAB_00109dce;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108ca2;\n    }\nLAB_00108db9:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109d25:\n    FUN_0010ac09(param_4,0x1d,0);\n    iVar3 = strcmp((char *)param_1,"-X");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c0f:\n      FUN_0010ac09(param_4,0x95,1);\n      iVar3 = strcmp((char *)param_1,"-x");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }\n      iVar3 = strcmp((char *)param_1,"-t");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109dfc;\nLAB_00108e45:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_00109c87;\n    }\n    iVar3 = strcmp((char *)param_1,"-x");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108dff;\nLAB_00109de5:\n    iVar3 = strcmp((char *)param_1,"-t");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108e45;\n    }\nLAB_00109dfc:\n    iVar3 = strcmp((char *)param_1,"-T");\n    if (iVar3 != 0) goto LAB_00109b7b;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e21:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_00109cc5:\n    FUN_0010ac09(param_4,0x16,1);\n    iVar3 = strcmp((char *)param_1,"-N");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-C");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00108e8b;\n      goto LAB_00109aea;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\nLAB_00109a6e:\n    FUN_0010ac09(param_4,0x2d,1);\n    iVar3 = strcmp((char *)param_1,"-C");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_0010989e;\n    }\n    iVar3 = strcmp((char *)param_1,"-1");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108ed1;\nLAB_00109b01:\n    iVar3 = strcmp((char *)param_1,"-2");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00109b26:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109918;\n    }\n  }" else (compound_statement "{\nLAB_00108865:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2ac;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\nLAB_0010889d:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      bVar15 = param_3 == 0;\n      if (!bVar15) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001088cd;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)0x1440f1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_0010889d;\n    iVar3 = strcmp((char *)param_1,"-nc");\n    bVar15 = iVar3 == 0;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109fa5;\n    }\nLAB_00108a01:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2be;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109f54;\n    }\nLAB_0010a032:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2c1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar18 && !bVar15) != bVar18) goto LAB_00108afa;\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }\nLAB_00109749:\n    uVar9 = strtol(param_2,(char **)0x0,10);\n    FUN_0010ac09(param_4,1,uVar9 & 0xffffffff);\n    iVar3 = strcmp((char *)param_1,"-pw");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\nLAB_00109ee5:\n      iVar3 = FUN_0010a543(param_4,2);\n      if (iVar3 == 3) {\n        DAT_00152128 = FUN_0010bd5d(param_2);\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = param_2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        FUN_0010c727(param_2,~uVar9 - 1);\n      }\n      else {\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }\n      iVar3 = strcmp((char *)param_1,"-agent");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-pagent");\n        uVar5 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108bf9;\n    }\n    iVar3 = strcmp((char *)param_1,"-agent");\n    uVar5 = 2;\n    if (iVar3 == 0) goto LAB_00108bdc;\nLAB_00108ba4:\n    iVar3 = strcmp((char *)param_1,"-pagent");\n    if (iVar3 == 0) goto LAB_00108bce;\nLAB_00108bb7:\n    iVar3 = strcmp((char *)param_1,"-pageant");\n    if (iVar3 == 0) goto LAB_00108bce;\n    iVar3 = strcmp((char *)param_1,"-noagent");\n    if ((iVar3 != 0) && (iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0))\n    goto LAB_00108d1b;\nLAB_00108d2e:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e76:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00108c37:\n    FUN_0010ac09(param_4,0x1c,0);\n    iVar3 = strcmp((char *)param_1,"-A");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d88;\n    }\n    iVar3 = strcmp((char *)param_1,"-a");\n    if (iVar3 != 0) {\n      uVar5 = 1;\nLAB_00108c7d:\n      iVar3 = strcmp((char *)param_1,"-X");\n      if (iVar3 != 0) goto LAB_00109dce;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108ca2;\n    }\nLAB_00108db9:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109d25:\n    FUN_0010ac09(param_4,0x1d,0);\n    iVar3 = strcmp((char *)param_1,"-X");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c0f:\n      FUN_0010ac09(param_4,0x95,1);\n      iVar3 = strcmp((char *)param_1,"-x");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }\n      iVar3 = strcmp((char *)param_1,"-t");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109dfc;\nLAB_00108e45:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_00109c87;\n    }\n    iVar3 = strcmp((char *)param_1,"-x");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108dff;\nLAB_00109de5:\n    iVar3 = strcmp((char *)param_1,"-t");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108e45;\n    }\nLAB_00109dfc:\n    iVar3 = strcmp((char *)param_1,"-T");\n    if (iVar3 != 0) goto LAB_00109b7b;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e21:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_00109cc5:\n    FUN_0010ac09(param_4,0x16,1);\n    iVar3 = strcmp((char *)param_1,"-N");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-C");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00108e8b;\n      goto LAB_00109aea;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\nLAB_00109a6e:\n    FUN_0010ac09(param_4,0x2d,1);\n    iVar3 = strcmp((char *)param_1,"-C");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_0010989e;\n    }\n    iVar3 = strcmp((char *)param_1,"-1");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108ed1;\nLAB_00109b01:\n    iVar3 = strcmp((char *)param_1,"-2");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00109b26:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109918;\n    }\n  }" { (labeled_statement "LAB_00108865:\n    bVar18 = false;" statement_identifier : (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;)) (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = &DAT_0013b2ac;" (assignment_expression "pbVar12 = &DAT_0013b2ac" identifier = (pointer_expression "&DAT_0013b2ac" & identifier)) ;) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar11 < *pbVar12;" (assignment_expression "bVar18 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" identifier = (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" ( (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) {\nLAB_0010889d:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      bVar15 = param_3 == 0;\n      if (!bVar15) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001088cd;\n    }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\nLAB_0010889d:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      bVar15 = param_3 == 0;\n      if (!bVar15) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001088cd;\n    }" { (labeled_statement "LAB_0010889d:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }" statement_identifier : (if_statement "if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return 0xfffffffe;\n      }" { (return_statement "return 0xfffffffe;" return number_literal ;) }))) (if_statement "if (param_3 < 0) {\n        return 2;\n      }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        return 2;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "bVar15 = param_3 == 0;" (assignment_expression "bVar15 = param_3 == 0" identifier = (binary_expression "param_3 == 0" identifier == number_literal)) ;) (if_statement "if (!bVar15) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (compound_statement "{\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (goto_statement "goto LAB_001088cd;" goto statement_identifier ;) })) (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)0x1440f1;" (assignment_expression "pbVar12 = (byte *)0x1440f1" identifier = (cast_expression "(byte *)0x1440f1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar11 < *pbVar12;" (assignment_expression "bVar16 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (if_statement "if ((!bVar16 && !bVar15) == bVar16) goto LAB_0010889d;" if (parenthesized_expression "((!bVar16 && !bVar15) == bVar16)" ( (binary_expression "(!bVar16 && !bVar15) == bVar16" (parenthesized_expression "(!bVar16 && !bVar15)" ( (binary_expression "!bVar16 && !bVar15" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_0010889d;" goto statement_identifier ;)) (expression_statement "iVar3 = strcmp((char *)param_1,"-nc");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-nc")" identifier = (call_expression "strcmp((char *)param_1,"-nc")" identifier (argument_list "((char *)param_1,"-nc")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-nc"" " string_content ") )))) ;) (expression_statement "bVar15 = iVar3 == 0;" (assignment_expression "bVar15 = iVar3 == 0" identifier = (binary_expression "iVar3 == 0" identifier == number_literal)) ;) (if_statement "if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109fa5;\n    }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109fa5;\n    }" { (if_statement "if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return 0xfffffffe;\n      }" { (return_statement "return 0xfffffffe;" return number_literal ;) })) (if_statement "if (param_3 < 0) {\n        return 2;\n      }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        return 2;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (goto_statement "goto LAB_00109fa5;" goto statement_identifier ;) })) (labeled_statement "LAB_00108a01:\n    bVar18 = false;" statement_identifier : (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;)) (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = &DAT_0013b2be;" (assignment_expression "pbVar12 = &DAT_0013b2be" identifier = (pointer_expression "&DAT_0013b2be" & identifier)) ;) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar11 < *pbVar12;" (assignment_expression "bVar18 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" identifier = (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" ( (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109f54;\n    }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109f54;\n    }" { (if_statement "if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return 0xfffffffe;\n      }" { (return_statement "return 0xfffffffe;" return number_literal ;) })) (if_statement "if (param_3 < 0) {\n        return 2;\n      }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        return 2;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (goto_statement "goto LAB_00109f54;" goto statement_identifier ;) })) (labeled_statement "LAB_0010a032:\n    bVar18 = false;" statement_identifier : (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;)) (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = &DAT_0013b2c1;" (assignment_expression "pbVar12 = &DAT_0013b2c1" identifier = (pointer_expression "&DAT_0013b2c1" & identifier)) ;) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar11 < *pbVar12;" (assignment_expression "bVar18 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (if_statement "if ((!bVar18 && !bVar15) != bVar18) goto LAB_00108afa;" if (parenthesized_expression "((!bVar18 && !bVar15) != bVar18)" ( (binary_expression "(!bVar18 && !bVar15) != bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" ( (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_00108afa;" goto statement_identifier ;)) (if_statement "if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 0xfffffffe;\n    }" { (return_statement "return 0xfffffffe;" return number_literal ;) })) (if_statement "if (param_3 < 0) {\n      return 2;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      return 2;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }" { (expression_statement "FUN_001080ad(param_1,param_2,1);" (call_expression "FUN_001080ad(param_1,param_2,1)" identifier (argument_list "(param_1,param_2,1)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_00109749:\n    uVar9 = strtol(param_2,(char **)0x0,10);" statement_identifier : (expression_statement "uVar9 = strtol(param_2,(char **)0x0,10);" (assignment_expression "uVar9 = strtol(param_2,(char **)0x0,10)" identifier = (call_expression "strtol(param_2,(char **)0x0,10)" identifier (argument_list "(param_2,(char **)0x0,10)" ( identifier , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , number_literal )))) ;)) (expression_statement "FUN_0010ac09(param_4,1,uVar9 & 0xffffffff);" (call_expression "FUN_0010ac09(param_4,1,uVar9 & 0xffffffff)" identifier (argument_list "(param_4,1,uVar9 & 0xffffffff)" ( identifier , number_literal , (binary_expression "uVar9 & 0xffffffff" identifier & number_literal) ))) ;) (expression_statement "iVar3 = strcmp((char *)param_1,"-pw");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-pw")" identifier = (call_expression "strcmp((char *)param_1,"-pw")" identifier (argument_list "((char *)param_1,"-pw")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-pw"" " string_content ") )))) ;) (if_statement "if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\nLAB_00109ee5:\n      iVar3 = FUN_0010a543(param_4,2);\n      if (iVar3 == 3) {\n        DAT_00152128 = FUN_0010bd5d(param_2);\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = param_2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        FUN_0010c727(param_2,~uVar9 - 1);\n      }\n      else {\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }\n      iVar3 = strcmp((char *)param_1,"-agent");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-pagent");\n        uVar5 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108bf9;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\nLAB_00109ee5:\n      iVar3 = FUN_0010a543(param_4,2);\n      if (iVar3 == 3) {\n        DAT_00152128 = FUN_0010bd5d(param_2);\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = param_2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        FUN_0010c727(param_2,~uVar9 - 1);\n      }\n      else {\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }\n      iVar3 = strcmp((char *)param_1,"-agent");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-pagent");\n        uVar5 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108bf9;\n    }" { (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        return 2;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_00109ee5:\n      iVar3 = FUN_0010a543(param_4,2);" statement_identifier : (expression_statement "iVar3 = FUN_0010a543(param_4,2);" (assignment_expression "iVar3 = FUN_0010a543(param_4,2)" identifier = (call_expression "FUN_0010a543(param_4,2)" identifier (argument_list "(param_4,2)" ( identifier , number_literal )))) ;)) (if_statement "if (iVar3 == 3) {\n        DAT_00152128 = FUN_0010bd5d(param_2);\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = param_2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        FUN_0010c727(param_2,~uVar9 - 1);\n      }\n      else {\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }" if (parenthesized_expression "(iVar3 == 3)" ( (binary_expression "iVar3 == 3" identifier == number_literal) )) (compound_statement "{\n        DAT_00152128 = FUN_0010bd5d(param_2);\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = param_2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        FUN_0010c727(param_2,~uVar9 - 1);\n      }" { (expression_statement "DAT_00152128 = FUN_0010bd5d(param_2);" (assignment_expression "DAT_00152128 = FUN_0010bd5d(param_2)" identifier = (call_expression "FUN_0010bd5d(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "uVar9 = 0xffffffffffffffff;" (assignment_expression "uVar9 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar6 = param_2;" (assignment_expression "pcVar6 = param_2" identifier = identifier) ;) (do_statement "do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');" do (compound_statement "{\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        }" { (if_statement "if (uVar9 == 0) break;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (expression_statement "pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pcVar6 + (ulong)bVar20 * -2 + 1" (binary_expression "pcVar6 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "FUN_0010c727(param_2,~uVar9 - 1);" (call_expression "FUN_0010c727(param_2,~uVar9 - 1)" identifier (argument_list "(param_2,~uVar9 - 1)" ( identifier , (binary_expression "~uVar9 - 1" (unary_expression "~uVar9" ~ identifier) - number_literal) ))) ;) }) (else_clause "else {\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }" else (compound_statement "{\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }" { (expression_statement "FUN_00134fb0("the -pw option can only be used with the SSH protocol");" (call_expression "FUN_00134fb0("the -pw option can only be used with the SSH protocol")" identifier (argument_list "("the -pw option can only be used with the SSH protocol")" ( (string_literal ""the -pw option can only be used with the SSH protocol"" " string_content ") ))) ;) }))) (expression_statement "iVar3 = strcmp((char *)param_1,"-agent");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-agent")" identifier = (call_expression "strcmp((char *)param_1,"-agent")" identifier (argument_list "((char *)param_1,"-agent")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-agent"" " string_content ") )))) ;) (if_statement "if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-pagent");\n        uVar5 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar3 = strcmp((char *)param_1,"-pagent");\n        uVar5 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }" { (expression_statement "iVar3 = strcmp((char *)param_1,"-pagent");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-pagent")" identifier = (call_expression "strcmp((char *)param_1,"-pagent")" identifier (argument_list "((char *)param_1,"-pagent")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-pagent"" " string_content ") )))) ;) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_00108bb7;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00108bb7;" goto statement_identifier ;)) (goto_statement "goto LAB_00108bdc;" goto statement_identifier ;) })) (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00108bf9;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp((char *)param_1,"-agent");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-agent")" identifier = (call_expression "strcmp((char *)param_1,"-agent")" identifier (argument_list "((char *)param_1,"-agent")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-agent"" " string_content ") )))) ;) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) goto LAB_00108bdc;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00108bdc;" goto statement_identifier ;)) (labeled_statement "LAB_00108ba4:\n    iVar3 = strcmp((char *)param_1,"-pagent");" statement_identifier : (expression_statement "iVar3 = strcmp((char *)param_1,"-pagent");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-pagent")" identifier = (call_expression "strcmp((char *)param_1,"-pagent")" identifier (argument_list "((char *)param_1,"-pagent")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-pagent"" " string_content ") )))) ;)) (if_statement "if (iVar3 == 0) goto LAB_00108bce;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00108bce;" goto statement_identifier ;)) (labeled_statement "LAB_00108bb7:\n    iVar3 = strcmp((char *)param_1,"-pageant");" statement_identifier : (expression_statement "iVar3 = strcmp((char *)param_1,"-pageant");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-pageant")" identifier = (call_expression "strcmp((char *)param_1,"-pageant")" identifier (argument_list "((char *)param_1,"-pageant")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-pageant"" " string_content ") )))) ;)) (if_statement "if (iVar3 == 0) goto LAB_00108bce;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00108bce;" goto statement_identifier ;)) (expression_statement "iVar3 = strcmp((char *)param_1,"-noagent");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-noagent")" identifier = (call_expression "strcmp((char *)param_1,"-noagent")" identifier (argument_list "((char *)param_1,"-noagent")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-noagent"" " string_content ") )))) ;) (if_statement "if ((iVar3 != 0) && (iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0))\n    goto LAB_00108d1b;" if (parenthesized_expression "((iVar3 != 0) && (iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0))" ( (binary_expression "(iVar3 != 0) && (iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0)" ( (comma_expression "iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0" (assignment_expression "iVar3 = strcmp((char *)param_1,"-nopagent")" identifier = (call_expression "strcmp((char *)param_1,"-nopagent")" identifier (argument_list "((char *)param_1,"-nopagent")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-nopagent"" " string_content ") )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00108d1b;" goto statement_identifier ;)) (labeled_statement "LAB_00108d2e:\n    if (param_3 < 0) {\n      return 1;\n    }" statement_identifier : (if_statement "if (param_3 < 0) {\n      return 1;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) }))) (labeled_statement "LAB_00109e76:\n    iVar3 = FUN_00108083(2,param_1);" statement_identifier : (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar3 != 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00108c37:\n    FUN_0010ac09(param_4,0x1c,0);" statement_identifier : (expression_statement "FUN_0010ac09(param_4,0x1c,0);" (call_expression "FUN_0010ac09(param_4,0x1c,0)" identifier (argument_list "(param_4,0x1c,0)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar3 = strcmp((char *)param_1,"-A");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-A")" identifier = (call_expression "strcmp((char *)param_1,"-A")" identifier (argument_list "((char *)param_1,"-A")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-A"" " string_content ") )))) ;) (if_statement "if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d88;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d88;\n    }" { (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00109d88;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp((char *)param_1,"-a");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-a")" identifier = (call_expression "strcmp((char *)param_1,"-a")" identifier (argument_list "((char *)param_1,"-a")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-a"" " string_content ") )))) ;) (if_statement "if (iVar3 != 0) {\n      uVar5 = 1;\nLAB_00108c7d:\n      iVar3 = strcmp((char *)param_1,"-X");\n      if (iVar3 != 0) goto LAB_00109dce;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108ca2;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar5 = 1;\nLAB_00108c7d:\n      iVar3 = strcmp((char *)param_1,"-X");\n      if (iVar3 != 0) goto LAB_00109dce;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108ca2;\n    }" { (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00108c7d:\n      iVar3 = strcmp((char *)param_1,"-X");" statement_identifier : (expression_statement "iVar3 = strcmp((char *)param_1,"-X");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-X")" identifier = (call_expression "strcmp((char *)param_1,"-X")" identifier (argument_list "((char *)param_1,"-X")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-X"" " string_content ") )))) ;)) (if_statement "if (iVar3 != 0) goto LAB_00109dce;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109dce;" goto statement_identifier ;)) (if_statement "if (param_3 < 0) {\n        return 1;\n      }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00108ca2;" goto statement_identifier ;) })) (labeled_statement "LAB_00108db9:\n    iVar3 = FUN_00108083(3,param_1);" statement_identifier : (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar3 != 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109d25:\n    FUN_0010ac09(param_4,0x1d,0);" statement_identifier : (expression_statement "FUN_0010ac09(param_4,0x1d,0);" (call_expression "FUN_0010ac09(param_4,0x1d,0)" identifier (argument_list "(param_4,0x1d,0)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar3 = strcmp((char *)param_1,"-X");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-X")" identifier = (call_expression "strcmp((char *)param_1,"-X")" identifier (argument_list "((char *)param_1,"-X")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-X"" " string_content ") )))) ;) (if_statement "if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c0f:\n      FUN_0010ac09(param_4,0x95,1);\n      iVar3 = strcmp((char *)param_1,"-x");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }\n      iVar3 = strcmp((char *)param_1,"-t");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109dfc;\nLAB_00108e45:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_00109c87;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c0f:\n      FUN_0010ac09(param_4,0x95,1);\n      iVar3 = strcmp((char *)param_1,"-x");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }\n      iVar3 = strcmp((char *)param_1,"-t");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109dfc;\nLAB_00108e45:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_00109c87;\n    }" { (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109c0f:\n      FUN_0010ac09(param_4,0x95,1);" statement_identifier : (expression_statement "FUN_0010ac09(param_4,0x95,1);" (call_expression "FUN_0010ac09(param_4,0x95,1)" identifier (argument_list "(param_4,0x95,1)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar3 = strcmp((char *)param_1,"-x");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-x")" identifier = (call_expression "strcmp((char *)param_1,"-x")" identifier (argument_list "((char *)param_1,"-x")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-x"" " string_content ") )))) ;) (if_statement "if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }" { (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n          return 1;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          return 1;\n        }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00109c49;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp((char *)param_1,"-t");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-t")" identifier = (call_expression "strcmp((char *)param_1,"-t")" identifier (argument_list "((char *)param_1,"-t")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-t"" " string_content ") )))) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_00109dfc;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109dfc;" goto statement_identifier ;)) (labeled_statement "LAB_00108e45:\n      iVar3 = FUN_00108083(3,param_1);" statement_identifier : (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }" { (expression_statement "FUN_001080ad(param_1,param_2,1);" (call_expression "FUN_001080ad(param_1,param_2,1)" identifier (argument_list "(param_1,param_2,1)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00109c87;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp((char *)param_1,"-x");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-x")" identifier = (call_expression "strcmp((char *)param_1,"-x")" identifier (argument_list "((char *)param_1,"-x")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-x"" " string_content ") )))) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) goto LAB_00108dff;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00108dff;" goto statement_identifier ;)) (labeled_statement "LAB_00109de5:\n    iVar3 = strcmp((char *)param_1,"-t");" statement_identifier : (expression_statement "iVar3 = strcmp((char *)param_1,"-t");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-t")" identifier = (call_expression "strcmp((char *)param_1,"-t")" identifier (argument_list "((char *)param_1,"-t")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-t"" " string_content ") )))) ;)) (if_statement "if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108e45;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108e45;\n    }" { (if_statement "if (param_3 < 0) {\n        return 1;\n      }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00108e45;" goto statement_identifier ;) })) (labeled_statement "LAB_00109dfc:\n    iVar3 = strcmp((char *)param_1,"-T");" statement_identifier : (expression_statement "iVar3 = strcmp((char *)param_1,"-T");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-T")" identifier = (call_expression "strcmp((char *)param_1,"-T")" identifier (argument_list "((char *)param_1,"-T")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-T"" " string_content ") )))) ;)) (if_statement "if (iVar3 != 0) goto LAB_00109b7b;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109b7b;" goto statement_identifier ;)) (if_statement "if (param_3 < 0) {\n      return 1;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109e21:\n    iVar3 = FUN_00108083(3,param_1);" statement_identifier : (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar3 != 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }" { (expression_statement "FUN_001080ad(param_1,param_2,1);" (call_expression "FUN_001080ad(param_1,param_2,1)" identifier (argument_list "(param_1,param_2,1)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109cc5:\n    FUN_0010ac09(param_4,0x16,1);" statement_identifier : (expression_statement "FUN_0010ac09(param_4,0x16,1);" (call_expression "FUN_0010ac09(param_4,0x16,1)" identifier (argument_list "(param_4,0x16,1)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar3 = strcmp((char *)param_1,"-N");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-N")" identifier = (call_expression "strcmp((char *)param_1,"-N")" identifier (argument_list "((char *)param_1,"-N")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-N"" " string_content ") )))) ;) (if_statement "if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-C");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00108e8b;\n      goto LAB_00109aea;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar3 = strcmp((char *)param_1,"-C");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00108e8b;\n      goto LAB_00109aea;\n    }" { (expression_statement "iVar3 = strcmp((char *)param_1,"-C");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-C")" identifier = (call_expression "strcmp((char *)param_1,"-C")" identifier (argument_list "((char *)param_1,"-C")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-C"" " string_content ") )))) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) goto LAB_00108e8b;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00108e8b;" goto statement_identifier ;)) (goto_statement "goto LAB_00109aea;" goto statement_identifier ;) })) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109a6e:\n    FUN_0010ac09(param_4,0x2d,1);" statement_identifier : (expression_statement "FUN_0010ac09(param_4,0x2d,1);" (call_expression "FUN_0010ac09(param_4,0x2d,1)" identifier (argument_list "(param_4,0x2d,1)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar3 = strcmp((char *)param_1,"-C");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-C")" identifier = (call_expression "strcmp((char *)param_1,"-C")" identifier (argument_list "((char *)param_1,"-C")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-C"" " string_content ") )))) ;) (if_statement "if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_0010989e;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_0010989e;\n    }" { (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_0010989e;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp((char *)param_1,"-1");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-1")" identifier = (call_expression "strcmp((char *)param_1,"-1")" identifier (argument_list "((char *)param_1,"-1")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-1"" " string_content ") )))) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) goto LAB_00108ed1;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00108ed1;" goto statement_identifier ;)) (labeled_statement "LAB_00109b01:\n    iVar3 = strcmp((char *)param_1,"-2");" statement_identifier : (expression_statement "iVar3 = strcmp((char *)param_1,"-2");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-2")" identifier = (call_expression "strcmp((char *)param_1,"-2")" identifier (argument_list "((char *)param_1,"-2")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-2"" " string_content ") )))) ;)) (if_statement "if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00109b26:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109918;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00109b26:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109918;\n    }" { (if_statement "if (param_3 < 0) {\n        return 1;\n      }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00109b26:\n      iVar3 = FUN_00108083(2,param_1);" statement_identifier : (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00109918;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00109930:\n  iVar3 = strcmp((char *)param_1,"-i");" statement_identifier : (expression_statement "iVar3 = strcmp((char *)param_1,"-i");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-i")" identifier = (call_expression "strcmp((char *)param_1,"-i")" identifier (argument_list "((char *)param_1,"-i")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-i"" " string_content ") )))) ;)) (if_statement "if (iVar3 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    uVar5 = FUN_001321a4(param_2);\n    FUN_0010af59(param_4,0x20,uVar5);\n    FUN_00132212(uVar5);\n    iVar3 = strcmp((char *)param_1,"-4");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-ipv4");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_00109814;\n    }\nLAB_001099af:\n    FUN_0010ac09(param_4,3,1);\n    iVar3 = strcmp((char *)param_1,"-6");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_001099de;\nLAB_00109827:\n    iVar3 = strcmp((char *)param_1,"-ipv6");\n    if (iVar3 == 0) goto LAB_0010983e;\n  }\n  else {\n    iVar3 = strcmp((char *)param_1,"-4");\n    if ((iVar3 == 0) || (iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_001099af;\n    }\nLAB_00109814:\n    iVar3 = strcmp((char *)param_1,"-6");\n    if (iVar3 != 0) goto LAB_00109827;\nLAB_0010983e:\n    if (param_3 < 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_001099de:\n    FUN_0010ac09(param_4,3,2);\n    uVar5 = 1;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    uVar5 = FUN_001321a4(param_2);\n    FUN_0010af59(param_4,0x20,uVar5);\n    FUN_00132212(uVar5);\n    iVar3 = strcmp((char *)param_1,"-4");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-ipv4");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_00109814;\n    }\nLAB_001099af:\n    FUN_0010ac09(param_4,3,1);\n    iVar3 = strcmp((char *)param_1,"-6");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_001099de;\nLAB_00109827:\n    iVar3 = strcmp((char *)param_1,"-ipv6");\n    if (iVar3 == 0) goto LAB_0010983e;\n  }" { (if_statement "if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 0xfffffffe;\n    }" { (return_statement "return 0xfffffffe;" return number_literal ;) })) (if_statement "if (param_3 < 0) {\n      return 2;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      return 2;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (expression_statement "uVar5 = FUN_001321a4(param_2);" (assignment_expression "uVar5 = FUN_001321a4(param_2)" identifier = (call_expression "FUN_001321a4(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "FUN_0010af59(param_4,0x20,uVar5);" (call_expression "FUN_0010af59(param_4,0x20,uVar5)" identifier (argument_list "(param_4,0x20,uVar5)" ( identifier , number_literal , identifier ))) ;) (expression_statement "FUN_00132212(uVar5);" (call_expression "FUN_00132212(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "iVar3 = strcmp((char *)param_1,"-4");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-4")" identifier = (call_expression "strcmp((char *)param_1,"-4")" identifier (argument_list "((char *)param_1,"-4")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-4"" " string_content ") )))) ;) (if_statement "if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-ipv4");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_00109814;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar3 = strcmp((char *)param_1,"-ipv4");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_00109814;\n    }" { (expression_statement "iVar3 = strcmp((char *)param_1,"-ipv4");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-ipv4")" identifier = (call_expression "strcmp((char *)param_1,"-ipv4")" identifier (argument_list "((char *)param_1,"-ipv4")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-ipv4"" " string_content ") )))) ;) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_00109814;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109814;" goto statement_identifier ;)) })) (labeled_statement "LAB_001099af:\n    FUN_0010ac09(param_4,3,1);" statement_identifier : (expression_statement "FUN_0010ac09(param_4,3,1);" (call_expression "FUN_0010ac09(param_4,3,1)" identifier (argument_list "(param_4,3,1)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "iVar3 = strcmp((char *)param_1,"-6");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-6")" identifier = (call_expression "strcmp((char *)param_1,"-6")" identifier (argument_list "((char *)param_1,"-6")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-6"" " string_content ") )))) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) goto LAB_001099de;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001099de;" goto statement_identifier ;)) (labeled_statement "LAB_00109827:\n    iVar3 = strcmp((char *)param_1,"-ipv6");" statement_identifier : (expression_statement "iVar3 = strcmp((char *)param_1,"-ipv6");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-ipv6")" identifier = (call_expression "strcmp((char *)param_1,"-ipv6")" identifier (argument_list "((char *)param_1,"-ipv6")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-ipv6"" " string_content ") )))) ;)) (if_statement "if (iVar3 == 0) goto LAB_0010983e;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0010983e;" goto statement_identifier ;)) }) (else_clause "else {\n    iVar3 = strcmp((char *)param_1,"-4");\n    if ((iVar3 == 0) || (iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_001099af;\n    }\nLAB_00109814:\n    iVar3 = strcmp((char *)param_1,"-6");\n    if (iVar3 != 0) goto LAB_00109827;\nLAB_0010983e:\n    if (param_3 < 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_001099de:\n    FUN_0010ac09(param_4,3,2);\n    uVar5 = 1;\n  }" else (compound_statement "{\n    iVar3 = strcmp((char *)param_1,"-4");\n    if ((iVar3 == 0) || (iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_001099af;\n    }\nLAB_00109814:\n    iVar3 = strcmp((char *)param_1,"-6");\n    if (iVar3 != 0) goto LAB_00109827;\nLAB_0010983e:\n    if (param_3 < 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_001099de:\n    FUN_0010ac09(param_4,3,2);\n    uVar5 = 1;\n  }" { (expression_statement "iVar3 = strcmp((char *)param_1,"-4");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-4")" identifier = (call_expression "strcmp((char *)param_1,"-4")" identifier (argument_list "((char *)param_1,"-4")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-4"" " string_content ") )))) ;) (if_statement "if ((iVar3 == 0) || (iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_001099af;\n    }" if (parenthesized_expression "((iVar3 == 0) || (iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0))" ( (binary_expression "(iVar3 == 0) || (iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0)" ( (comma_expression "iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0" (assignment_expression "iVar3 = strcmp((char *)param_1,"-ipv4")" identifier = (call_expression "strcmp((char *)param_1,"-ipv4")" identifier (argument_list "((char *)param_1,"-ipv4")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-ipv4"" " string_content ") )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_001099af;\n    }" { (if_statement "if (param_3 < 0) {\n        return 1;\n      }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }" { (expression_statement "FUN_001080ad(param_1,param_2,1);" (call_expression "FUN_001080ad(param_1,param_2,1)" identifier (argument_list "(param_1,param_2,1)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_001099af;" goto statement_identifier ;) })) (labeled_statement "LAB_00109814:\n    iVar3 = strcmp((char *)param_1,"-6");" statement_identifier : (expression_statement "iVar3 = strcmp((char *)param_1,"-6");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-6")" identifier = (call_expression "strcmp((char *)param_1,"-6")" identifier (argument_list "((char *)param_1,"-6")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-6"" " string_content ") )))) ;)) (if_statement "if (iVar3 != 0) goto LAB_00109827;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109827;" goto statement_identifier ;)) (labeled_statement "LAB_0010983e:\n    if (param_3 < 0) {\n      return 1;\n    }" statement_identifier : (if_statement "if (param_3 < 0) {\n      return 1;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) }))) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }" { (expression_statement "FUN_001080ad(param_1,param_2,1);" (call_expression "FUN_001080ad(param_1,param_2,1)" identifier (argument_list "(param_1,param_2,1)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_001099de:\n    FUN_0010ac09(param_4,3,2);" statement_identifier : (expression_statement "FUN_0010ac09(param_4,3,2);" (call_expression "FUN_0010ac09(param_4,3,2)" identifier (argument_list "(param_4,3,2)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) }))) (expression_statement "iVar3 = strcmp((char *)param_1,"-sercfg");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-sercfg")" identifier = (call_expression "strcmp((char *)param_1,"-sercfg")" identifier (argument_list "((char *)param_1,"-sercfg")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-sercfg"" " string_content ") )))) ;) (if_statement "if (iVar3 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }\n    iVar3 = FUN_0010a543(param_4,2);\n    pcVar6 = param_2;\n    if (iVar3 != 4) {\n      FUN_00134fb0("the -sercfg option can only be used with the serial protocol");\n    }\n    for (; *pcVar6 != '\0'; pcVar6 = pcVar6 + (local_48 + iVar3)) {\n      pcVar8 = strchr(pcVar6,0x2c);\n      if (pcVar8 == (char *)0x0) {\n        lVar10 = -1;\n        pcVar8 = pcVar6;\n        do {\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        iVar3 = ~(uint)lVar10 - 1;\n        local_48 = 0;\n      }\n      else {\n        iVar3 = (int)pcVar8 - (int)pcVar6;\n        pcVar6[iVar3] = '\0';\n        local_48 = 1;\n      }\n      if (iVar3 == 1) {\n        cVar2 = *pcVar6;\n        switch(cVar2) {\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }\n      }\n      else if ((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)) {\n        FUN_0010ac09(param_4,0x3c,3);\n      }\n      else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }\n    }\n    iVar3 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-sshlog");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_0010921f;\n      goto LAB_0010924d;\n    }\n    iVar3 = FUN_00108083(1,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_001095f3:\n    uVar5 = FUN_001321a4(param_2);\n    FUN_0010af59(param_4,0x77,uVar5);\n    FUN_0010ac09(param_4,0x78,2);\n    FUN_00132212(uVar5);\n    iVar3 = strcmp((char *)param_1,"-sshlog");\n    uVar5 = 2;\n    if (iVar3 != 0) {\nLAB_0010921f:\n      iVar3 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar3 != 0) {\n          return uVar5;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }\n      goto LAB_00109236;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n  }\n  else {\n    iVar3 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(1,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001095f3;\n    }\n    iVar3 = strcmp((char *)param_1,"-sshlog");\n    if (iVar3 != 0) goto LAB_0010921f;\nLAB_00109236:\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\nLAB_0010924d:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }\n    iVar3 = FUN_0010a543(param_4,2);\n    pcVar6 = param_2;\n    if (iVar3 != 4) {\n      FUN_00134fb0("the -sercfg option can only be used with the serial protocol");\n    }\n    for (; *pcVar6 != '\0'; pcVar6 = pcVar6 + (local_48 + iVar3)) {\n      pcVar8 = strchr(pcVar6,0x2c);\n      if (pcVar8 == (char *)0x0) {\n        lVar10 = -1;\n        pcVar8 = pcVar6;\n        do {\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        iVar3 = ~(uint)lVar10 - 1;\n        local_48 = 0;\n      }\n      else {\n        iVar3 = (int)pcVar8 - (int)pcVar6;\n        pcVar6[iVar3] = '\0';\n        local_48 = 1;\n      }\n      if (iVar3 == 1) {\n        cVar2 = *pcVar6;\n        switch(cVar2) {\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }\n      }\n      else if ((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)) {\n        FUN_0010ac09(param_4,0x3c,3);\n      }\n      else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }\n    }\n    iVar3 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-sshlog");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_0010921f;\n      goto LAB_0010924d;\n    }\n    iVar3 = FUN_00108083(1,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_001095f3:\n    uVar5 = FUN_001321a4(param_2);\n    FUN_0010af59(param_4,0x77,uVar5);\n    FUN_0010ac09(param_4,0x78,2);\n    FUN_00132212(uVar5);\n    iVar3 = strcmp((char *)param_1,"-sshlog");\n    uVar5 = 2;\n    if (iVar3 != 0) {\nLAB_0010921f:\n      iVar3 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar3 != 0) {\n          return uVar5;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }\n      goto LAB_00109236;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n  }" { (if_statement "if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 0xfffffffe;\n    }" { (return_statement "return 0xfffffffe;" return number_literal ;) })) (if_statement "if (param_3 < 0) {\n      return 2;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" identifier = (call_expression "FUN_00108083(3,param_1)" identifier (argument_list "(3,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      return 2;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }" { (expression_statement "FUN_001080ad(param_1,param_2,1);" (call_expression "FUN_001080ad(param_1,param_2,1)" identifier (argument_list "(param_1,param_2,1)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar3 = FUN_0010a543(param_4,2);" (assignment_expression "iVar3 = FUN_0010a543(param_4,2)" identifier = (call_expression "FUN_0010a543(param_4,2)" identifier (argument_list "(param_4,2)" ( identifier , number_literal )))) ;) (expression_statement "pcVar6 = param_2;" (assignment_expression "pcVar6 = param_2" identifier = identifier) ;) (if_statement "if (iVar3 != 4) {\n      FUN_00134fb0("the -sercfg option can only be used with the serial protocol");\n    }" if (parenthesized_expression "(iVar3 != 4)" ( (binary_expression "iVar3 != 4" identifier != number_literal) )) (compound_statement "{\n      FUN_00134fb0("the -sercfg option can only be used with the serial protocol");\n    }" { (expression_statement "FUN_00134fb0("the -sercfg option can only be used with the serial protocol");" (call_expression "FUN_00134fb0("the -sercfg option can only be used with the serial protocol")" identifier (argument_list "("the -sercfg option can only be used with the serial protocol")" ( (string_literal ""the -sercfg option can only be used with the serial protocol"" " string_content ") ))) ;) })) (for_statement "for (; *pcVar6 != '\0'; pcVar6 = pcVar6 + (local_48 + iVar3)) {\n      pcVar8 = strchr(pcVar6,0x2c);\n      if (pcVar8 == (char *)0x0) {\n        lVar10 = -1;\n        pcVar8 = pcVar6;\n        do {\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        iVar3 = ~(uint)lVar10 - 1;\n        local_48 = 0;\n      }\n      else {\n        iVar3 = (int)pcVar8 - (int)pcVar6;\n        pcVar6[iVar3] = '\0';\n        local_48 = 1;\n      }\n      if (iVar3 == 1) {\n        cVar2 = *pcVar6;\n        switch(cVar2) {\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }\n      }\n      else if ((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)) {\n        FUN_0010ac09(param_4,0x3c,3);\n      }\n      else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }\n    }" for ( ; (binary_expression "*pcVar6 != '\0'" (pointer_expression "*pcVar6" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ; (assignment_expression "pcVar6 = pcVar6 + (local_48 + iVar3)" identifier = (binary_expression "pcVar6 + (local_48 + iVar3)" identifier + (parenthesized_expression "(local_48 + iVar3)" ( (binary_expression "local_48 + iVar3" identifier + identifier) )))) ) (compound_statement "{\n      pcVar8 = strchr(pcVar6,0x2c);\n      if (pcVar8 == (char *)0x0) {\n        lVar10 = -1;\n        pcVar8 = pcVar6;\n        do {\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        iVar3 = ~(uint)lVar10 - 1;\n        local_48 = 0;\n      }\n      else {\n        iVar3 = (int)pcVar8 - (int)pcVar6;\n        pcVar6[iVar3] = '\0';\n        local_48 = 1;\n      }\n      if (iVar3 == 1) {\n        cVar2 = *pcVar6;\n        switch(cVar2) {\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }\n      }\n      else if ((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)) {\n        FUN_0010ac09(param_4,0x3c,3);\n      }\n      else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }\n    }" { (expression_statement "pcVar8 = strchr(pcVar6,0x2c);" (assignment_expression "pcVar8 = strchr(pcVar6,0x2c)" identifier = (call_expression "strchr(pcVar6,0x2c)" identifier (argument_list "(pcVar6,0x2c)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar8 == (char *)0x0) {\n        lVar10 = -1;\n        pcVar8 = pcVar6;\n        do {\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        iVar3 = ~(uint)lVar10 - 1;\n        local_48 = 0;\n      }\n      else {\n        iVar3 = (int)pcVar8 - (int)pcVar6;\n        pcVar6[iVar3] = '\0';\n        local_48 = 1;\n      }" if (parenthesized_expression "(pcVar8 == (char *)0x0)" ( (binary_expression "pcVar8 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        lVar10 = -1;\n        pcVar8 = pcVar6;\n        do {\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        iVar3 = ~(uint)lVar10 - 1;\n        local_48 = 0;\n      }" { (expression_statement "lVar10 = -1;" (assignment_expression "lVar10 = -1" identifier = number_literal) ;) (expression_statement "pcVar8 = pcVar6;" (assignment_expression "pcVar8 = pcVar6" identifier = identifier) ;) (do_statement "do {\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');" do (compound_statement "{\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (expression_statement "pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pcVar8 + (ulong)bVar20 * -2 + 1" (binary_expression "pcVar8 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "iVar3 = ~(uint)lVar10 - 1;" (assignment_expression "iVar3 = ~(uint)lVar10 - 1" identifier = (binary_expression "~(uint)lVar10 - 1" (unary_expression "~(uint)lVar10" ~ (cast_expression "(uint)lVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) - number_literal)) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        iVar3 = (int)pcVar8 - (int)pcVar6;\n        pcVar6[iVar3] = '\0';\n        local_48 = 1;\n      }" else (compound_statement "{\n        iVar3 = (int)pcVar8 - (int)pcVar6;\n        pcVar6[iVar3] = '\0';\n        local_48 = 1;\n      }" { (expression_statement "iVar3 = (int)pcVar8 - (int)pcVar6;" (assignment_expression "iVar3 = (int)pcVar8 - (int)pcVar6" identifier = (binary_expression "(int)pcVar8 - (int)pcVar6" (cast_expression "(int)pcVar8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar6[iVar3] = '\0';" (assignment_expression "pcVar6[iVar3] = '\0'" (subscript_expression "pcVar6[iVar3]" identifier [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" identifier = number_literal) ;) }))) (if_statement "if (iVar3 == 1) {\n        cVar2 = *pcVar6;\n        switch(cVar2) {\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }\n      }\n      else if ((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)) {\n        FUN_0010ac09(param_4,0x3c,3);\n      }\n      else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\n        cVar2 = *pcVar6;\n        switch(cVar2) {\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }\n      }" { (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (switch_statement "switch(cVar2) {\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }" switch (parenthesized_expression "(cVar2)" ( identifier )) (compound_statement "{\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }" { (case_statement "case '1':" case (char_literal "'1'" ' character ') :) (case_statement "case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;" case (char_literal "'2'" ' character ') : (expression_statement "FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);" (call_expression "FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60)" identifier (argument_list "(param_4,0x3c,cVar2 * 2 + -0x60)" ( identifier , number_literal , (binary_expression "cVar2 * 2 + -0x60" (binary_expression "cVar2 * 2" identifier * number_literal) + number_literal) ))) ;) (break_statement "break;" break ;)) (case_statement "default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;" default : (expression_statement "FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");" (call_expression "FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"")" identifier (argument_list "("Unrecognised suboption \"-sercfg %c\"")" ( (string_literal ""Unrecognised suboption \"-sercfg %c\""" " string_content escape_sequence string_content escape_sequence ") ))) ;) (break_statement "break;" break ;)) (case_statement "case '5':" case (char_literal "'5'" ' character ') :) (case_statement "case '6':" case (char_literal "'6'" ' character ') :) (case_statement "case '7':" case (char_literal "'7'" ' character ') :) (case_statement "case '8':" case (char_literal "'8'" ' character ') :) (case_statement "case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;" case (char_literal "'9'" ' character ') : (expression_statement "FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);" (call_expression "FUN_0010ac09(param_4,0x3b,cVar2 + -0x30)" identifier (argument_list "(param_4,0x3b,cVar2 + -0x30)" ( identifier , number_literal , (binary_expression "cVar2 + -0x30" identifier + number_literal) ))) ;) (break_statement "break;" break ;)) (case_statement "case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;" case (char_literal "'D'" ' character ') : (expression_statement "FUN_0010ac09(param_4,0x3e,3);" (call_expression "FUN_0010ac09(param_4,0x3e,3)" identifier (argument_list "(param_4,0x3e,3)" ( identifier , number_literal , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;" case (char_literal "'N'" ' character ') : (expression_statement "FUN_0010ac09(param_4,0x3e,0);" (call_expression "FUN_0010ac09(param_4,0x3e,0)" identifier (argument_list "(param_4,0x3e,0)" ( identifier , number_literal , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;" case (char_literal "'R'" ' character ') : (expression_statement "FUN_0010ac09(param_4,0x3e,2);" (call_expression "FUN_0010ac09(param_4,0x3e,2)" identifier (argument_list "(param_4,0x3e,2)" ( identifier , number_literal , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;" case (char_literal "'X'" ' character ') : (expression_statement "FUN_0010ac09(param_4,0x3e,1);" (call_expression "FUN_0010ac09(param_4,0x3e,1)" identifier (argument_list "(param_4,0x3e,1)" ( identifier , number_literal , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;" case (char_literal "'e'" ' character ') : (expression_statement "FUN_0010ac09(param_4,0x3d,2);" (call_expression "FUN_0010ac09(param_4,0x3d,2)" identifier (argument_list "(param_4,0x3d,2)" ( identifier , number_literal , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;" case (char_literal "'m'" ' character ') : (expression_statement "FUN_0010ac09(param_4,0x3d,3);" (call_expression "FUN_0010ac09(param_4,0x3d,3)" identifier (argument_list "(param_4,0x3d,3)" ( identifier , number_literal , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;" case (char_literal "'n'" ' character ') : (expression_statement "FUN_0010ac09(param_4,0x3d,0);" (call_expression "FUN_0010ac09(param_4,0x3d,0)" identifier (argument_list "(param_4,0x3d,0)" ( identifier , number_literal , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;" case (char_literal "'o'" ' character ') : (expression_statement "FUN_0010ac09(param_4,0x3d,1);" (call_expression "FUN_0010ac09(param_4,0x3d,1)" identifier (argument_list "(param_4,0x3d,1)" ( identifier , number_literal , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 's':\n          FUN_0010ac09(param_4,0x3d,4);" case (char_literal "'s'" ' character ') : (expression_statement "FUN_0010ac09(param_4,0x3d,4);" (call_expression "FUN_0010ac09(param_4,0x3d,4)" identifier (argument_list "(param_4,0x3d,4)" ( identifier , number_literal , number_literal ))) ;)) })) }) (else_clause "else if ((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)) {\n        FUN_0010ac09(param_4,0x3c,3);\n      }\n      else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }" else (if_statement "if ((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)) {\n        FUN_0010ac09(param_4,0x3c,3);\n      }\n      else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }" if (parenthesized_expression "((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0))" ( (binary_expression "(iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)" (parenthesized_expression "(iVar3 == 3)" ( (binary_expression "iVar3 == 3" identifier == number_literal) )) && (parenthesized_expression "(iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)" ( (comma_expression "iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0" (assignment_expression "iVar4 = strncmp(pcVar6,"1.5",3)" identifier = (call_expression "strncmp(pcVar6,"1.5",3)" identifier (argument_list "(pcVar6,"1.5",3)" ( identifier , (string_literal ""1.5"" " string_content ") , number_literal )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        FUN_0010ac09(param_4,0x3c,3);\n      }" { (expression_statement "FUN_0010ac09(param_4,0x3c,3);" (call_expression "FUN_0010ac09(param_4,0x3c,3)" identifier (argument_list "(param_4,0x3c,3)" ( identifier , number_literal , number_literal ))) ;) }) (else_clause "else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }" else (compound_statement "{\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }" { (expression_statement "uVar9 = strtol(pcVar6,(char **)0x0,10);" (assignment_expression "uVar9 = strtol(pcVar6,(char **)0x0,10)" identifier = (call_expression "strtol(pcVar6,(char **)0x0,10)" identifier (argument_list "(pcVar6,(char **)0x0,10)" ( identifier , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , number_literal )))) ;) (if_statement "if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }" if (parenthesized_expression "((int)uVar9 == 0)" ( (binary_expression "(int)uVar9 == 0" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }" { (expression_statement "FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);" (call_expression "FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6)" identifier (argument_list "("Unrecognised suboption \"-sercfg %s\"",pcVar6)" ( (string_literal ""Unrecognised suboption \"-sercfg %s\""" " string_content escape_sequence string_content escape_sequence ") , identifier ))) ;) }) (else_clause "else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }" else (compound_statement "{\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }" { (expression_statement "FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);" (call_expression "FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff)" identifier (argument_list "(param_4,0x3a,uVar9 & 0xffffffff)" ( identifier , number_literal , (binary_expression "uVar9 & 0xffffffff" identifier & number_literal) ))) ;) }))) }))))) })) (expression_statement "iVar3 = strcmp((char *)param_1,"-sessionlog");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-sessionlog")" identifier = (call_expression "strcmp((char *)param_1,"-sessionlog")" identifier (argument_list "((char *)param_1,"-sessionlog")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-sessionlog"" " string_content ") )))) ;) (if_statement "if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-sshlog");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_0010921f;\n      goto LAB_0010924d;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar3 = strcmp((char *)param_1,"-sshlog");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_0010921f;\n      goto LAB_0010924d;\n    }" { (expression_statement "iVar3 = strcmp((char *)param_1,"-sshlog");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-sshlog")" identifier = (call_expression "strcmp((char *)param_1,"-sshlog")" identifier (argument_list "((char *)param_1,"-sshlog")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-sshlog"" " string_content ") )))) ;) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0010921f;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0010921f;" goto statement_identifier ;)) (goto_statement "goto LAB_0010924d;" goto statement_identifier ;) })) (expression_statement "iVar3 = FUN_00108083(1,param_1);" (assignment_expression "iVar3 = FUN_00108083(1,param_1)" identifier = (call_expression "FUN_00108083(1,param_1)" identifier (argument_list "(1,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      return 2;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_001095f3:\n    uVar5 = FUN_001321a4(param_2);" statement_identifier : (expression_statement "uVar5 = FUN_001321a4(param_2);" (assignment_expression "uVar5 = FUN_001321a4(param_2)" identifier = (call_expression "FUN_001321a4(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;)) (expression_statement "FUN_0010af59(param_4,0x77,uVar5);" (call_expression "FUN_0010af59(param_4,0x77,uVar5)" identifier (argument_list "(param_4,0x77,uVar5)" ( identifier , number_literal , identifier ))) ;) (expression_statement "FUN_0010ac09(param_4,0x78,2);" (call_expression "FUN_0010ac09(param_4,0x78,2)" identifier (argument_list "(param_4,0x78,2)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "FUN_00132212(uVar5);" (call_expression "FUN_00132212(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "iVar3 = strcmp((char *)param_1,"-sshlog");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-sshlog")" identifier = (call_expression "strcmp((char *)param_1,"-sshlog")" identifier (argument_list "((char *)param_1,"-sshlog")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-sshlog"" " string_content ") )))) ;) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) {\nLAB_0010921f:\n      iVar3 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar3 != 0) {\n          return uVar5;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }\n      goto LAB_00109236;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0010921f:\n      iVar3 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar3 != 0) {\n          return uVar5;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }\n      goto LAB_00109236;\n    }" { (labeled_statement "LAB_0010921f:\n      iVar3 = strcmp((char *)param_1,"-sshrawlog");" statement_identifier : (expression_statement "iVar3 = strcmp((char *)param_1,"-sshrawlog");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-sshrawlog")" identifier = (call_expression "strcmp((char *)param_1,"-sshrawlog")" identifier (argument_list "((char *)param_1,"-sshrawlog")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-sshrawlog"" " string_content ") )))) ;)) (if_statement "if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar3 != 0) {\n          return uVar5;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar3 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar3 != 0) {\n          return uVar5;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }" { (expression_statement "iVar3 = strcmp((char *)param_1,"-proxycmd");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-proxycmd")" identifier = (call_expression "strcmp((char *)param_1,"-proxycmd")" identifier (argument_list "((char *)param_1,"-proxycmd")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-proxycmd"" " string_content ") )))) ;) (if_statement "if (iVar3 != 0) {\n          return uVar5;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          return uVar5;\n        }" { (return_statement "return uVar5;" return identifier ;) })) (if_statement "if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return 0xfffffffe;\n        }" { (return_statement "return 0xfffffffe;" return number_literal ;) })) (if_statement "if (param_3 < 0) {\n          return 2;\n        }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n          return 2;\n        }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n          return 2;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          return 2;\n        }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (goto_statement "goto LAB_001092e3;" goto statement_identifier ;) })) (goto_statement "goto LAB_00109236;" goto statement_identifier ;) })) (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      return 2;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) }) (else_clause "else {\n    iVar3 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(1,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001095f3;\n    }\n    iVar3 = strcmp((char *)param_1,"-sshlog");\n    if (iVar3 != 0) goto LAB_0010921f;\nLAB_00109236:\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\nLAB_0010924d:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n  }" else (compound_statement "{\n    iVar3 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(1,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001095f3;\n    }\n    iVar3 = strcmp((char *)param_1,"-sshlog");\n    if (iVar3 != 0) goto LAB_0010921f;\nLAB_00109236:\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\nLAB_0010924d:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n  }" { (expression_statement "iVar3 = strcmp((char *)param_1,"-sessionlog");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-sessionlog")" identifier = (call_expression "strcmp((char *)param_1,"-sessionlog")" identifier (argument_list "((char *)param_1,"-sessionlog")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-sessionlog"" " string_content ") )))) ;) (if_statement "if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(1,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001095f3;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(1,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001095f3;\n    }" { (if_statement "if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return 0xfffffffe;\n      }" { (return_statement "return 0xfffffffe;" return number_literal ;) })) (if_statement "if (param_3 < 0) {\n        return 2;\n      }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(1,param_1);" (assignment_expression "iVar3 = FUN_00108083(1,param_1)" identifier = (call_expression "FUN_00108083(1,param_1)" identifier (argument_list "(1,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        return 2;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) (goto_statement "goto LAB_001095f3;" goto statement_identifier ;) })) (expression_statement "iVar3 = strcmp((char *)param_1,"-sshlog");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-sshlog")" identifier = (call_expression "strcmp((char *)param_1,"-sshlog")" identifier (argument_list "((char *)param_1,"-sshlog")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-sshlog"" " string_content ") )))) ;) (if_statement "if (iVar3 != 0) goto LAB_0010921f;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0010921f;" goto statement_identifier ;)) (labeled_statement "LAB_00109236:\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }" statement_identifier : (if_statement "if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 0xfffffffe;\n    }" { (return_statement "return 0xfffffffe;" return number_literal ;) }))) (if_statement "if (param_3 < 0) {\n      return 2;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_0010924d:\n    iVar3 = FUN_00108083(2,param_1);" statement_identifier : (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;)) (if_statement "if (iVar3 != 0) {\n      return 2;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      return 2;\n    }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }" { (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return 2;" return number_literal ;) })) }))) (expression_statement "uVar5 = FUN_001321a4(param_2);" (assignment_expression "uVar5 = FUN_001321a4(param_2)" identifier = (call_expression "FUN_001321a4(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "FUN_0010af59(param_4,0x77,uVar5);" (call_expression "FUN_0010af59(param_4,0x77,uVar5)" identifier (argument_list "(param_4,0x77,uVar5)" ( identifier , number_literal , identifier ))) ;) (expression_statement "iVar3 = strcmp((char *)param_1,"-sshlog");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-sshlog")" identifier = (call_expression "strcmp((char *)param_1,"-sshlog")" identifier (argument_list "((char *)param_1,"-sshlog")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-sshlog"" " string_content ") )))) ;) (expression_statement "FUN_0010ac09(param_4,0x78,4 - (uint)(iVar3 == 0));" (call_expression "FUN_0010ac09(param_4,0x78,4 - (uint)(iVar3 == 0))" identifier (argument_list "(param_4,0x78,4 - (uint)(iVar3 == 0))" ( identifier , number_literal , (binary_expression "4 - (uint)(iVar3 == 0)" number_literal - (call_expression "(uint)(iVar3 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )))) ))) ;) (expression_statement "FUN_00132212(uVar5);" (call_expression "FUN_00132212(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "iVar3 = strcmp((char *)param_1,"-proxycmd");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-proxycmd")" identifier = (call_expression "strcmp((char *)param_1,"-proxycmd")" identifier (argument_list "((char *)param_1,"-proxycmd")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-proxycmd"" " string_content ") )))) ;) (if_statement "if (iVar3 != 0) {\n    return 2;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    return 2;\n  }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" identifier = (call_expression "FUN_00108083(2,param_1)" identifier (argument_list "(2,param_1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n    return 2;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    return 2;\n  }" { (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_001092e3:\n  FUN_0010ac09(param_4,0xd,5);" statement_identifier : (expression_statement "FUN_0010ac09(param_4,0xd,5);" (call_expression "FUN_0010ac09(param_4,0xd,5)" identifier (argument_list "(param_4,0xd,5)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "FUN_0010ad3a(param_4,0x12,param_2);" (call_expression "FUN_0010ad3a(param_4,0x12,param_2)" identifier (argument_list "(param_4,0x12,param_2)" ( identifier , number_literal , identifier ))) ;) (return_statement "return 2;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (return_statement return LIT ;) })) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) && (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) == (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) && (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) == (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) && (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) == (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) && (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) == (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = BOOL) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " escape_sequence string_content escape_sequence string_content ") , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) && (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) == (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = BOOL) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ;)) (return_statement return LIT ;) })) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) == LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) , (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) && (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) == (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence ") ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression IDENT & LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence ") , IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = LIT) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = BOOL) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return LIT ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = BOOL) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = BOOL) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT) , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression IDENT & LIT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (unary_expression ~ IDENT) - LIT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) (for_statement for ( ; (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) ; (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)) - LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (binary_expression IDENT * LIT) + LIT) ))) ;) (break_statement break ;)) (case_statement default : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence ") ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;)) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , LIT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence ") , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression IDENT & LIT) ))) ;) }))) }))))) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return LIT ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression LIT - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (return_statement return LIT ;) })))
(function_definition "undefined8 FUN_001082a0(byte *param_1,char *param_2,int param_3,undefined8 param_4)\n\n{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  int iVar4;\n  undefined8 uVar5;\n  char *pcVar6;\n  undefined8 uVar7;\n  char *pcVar8;\n  ulong uVar9;\n  FILE *__stream;\n  long lVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  long lVar13;\n  char *pcVar14;\n  bool bVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  undefined1 uVar19;\n  byte bVar20;\n  int local_48;\n  int local_3c;\n  \n  bVar20 = 0;\n  bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x28;\n  bVar18 = &stack0x00000000 == (undefined1 *)0x58;\n  lVar10 = 6;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-load";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar15 = *pbVar11 < *pbVar12;\n    bVar18 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar18);\n  bVar16 = false;\n  bVar15 = (!bVar15 && !bVar18) == bVar15;\n  if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (-1 < param_3) {\n      FUN_00116e22(param_2,param_4);\n      _DAT_00152558 = 1;\n      _DAT_00152560 = FUN_0010bd5d(param_2);\n      return 2;\n    }\n    return 2;\n  }\n  lVar10 = 5;\n  pbVar11 = param_1;\n  pbVar12 = &DAT_0013b272;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar18 = false;\n  bVar15 = (!bVar16 && !bVar15) == bVar16;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 3;\n        DAT_00152548 = 0x16;\n        FUN_0010ac09(param_4,2,3);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar10 = 8;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-telnet";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar16 = false;\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 1;\n        DAT_00152548 = 0x17;\n        FUN_0010ac09(param_4,2,1);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar10 = 8;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-rlogin";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar18 = false;\n  bVar15 = (!bVar16 && !bVar15) == bVar16;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 2;\n        DAT_00152548 = 0x201;\n        FUN_0010ac09(param_4,2,2);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar10 = 5;\n  pbVar11 = param_1;\n  pbVar12 = &DAT_0013b287;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar16 = false;\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    uVar17 = 0;\n    uVar19 = param_3 == 0;\n    if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    DAT_00152538 = 0;\n    FUN_0010ac09(param_4,2,0);\n    lVar10 = 8;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    bVar15 = false;\n    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (bVar18) {\n      iVar3 = FUN_00108083(3,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 1;\n      }\nLAB_0010858a:\n      uVar19 = 0;\n      DAT_00152538 = 4;\n      FUN_0010ac09(param_4,2,4);\n      uVar5 = FUN_0010a6d3(param_4,0);\n      FUN_0010ad3a(param_4,0x39,uVar5);\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n    }\n    else {\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n    }\n    uVar5 = 1;\n    if (bVar15) {\nLAB_00108687:\n      DAT_0015254c = DAT_0015254c | 1;\n      bVar15 = DAT_0015254c == 0;\n      uVar5 = 1;\n    }\n  }\n  else {\n    lVar10 = 8;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      uVar17 = param_3 == 0;\n      if (!(bool)uVar17) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_0010858a;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b294;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108687;\n    }\n    uVar5 = 0;\n  }\n  bVar18 = false;\n  lVar10 = 3;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)0x1440df;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);\n  bVar16 = false;\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    uVar17 = 0;\n    uVar19 = param_3 == 0;\n    if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    FUN_0010ad3a(param_4,0x34,param_2);\n    lVar10 = 9;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-loghost";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    bVar15 = false;\n    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (bVar18) {\n      iVar3 = FUN_00108083(2,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 2;\n      }\nLAB_0010a0b4:\n      uVar19 = 0;\n      FUN_0010ad3a(param_4,9,param_2);\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      uVar5 = 2;\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n      if (bVar15) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }\n    }\n    else {\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      uVar5 = 2;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (bVar15) goto LAB_00108738;\n    }\nLAB_0010884b:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2a9;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (!bVar15) goto LAB_00108865;\n    goto LAB_0010889d;\n  }\n  lVar10 = 9;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-loghost";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);\n  bVar18 = false;\n  bVar15 = (!bVar16 && !bVar15) == bVar16;\n  if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    uVar17 = param_3 == 0;\n    if (!(bool)uVar17) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    goto LAB_0010a0b4;\n  }\n  lVar10 = 9;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-hostkey";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (!bVar15) goto LAB_0010884b;\n  if (param_2 == (char *)0x0) {\n    return 0xfffffffe;\n  }\n  if (param_3 < 0) {\n    return 2;\n  }\nLAB_00108738:\n  iVar3 = FUN_00108083(2,param_1);\n  if (iVar3 != 0) {\n    return 2;\n  }\n  if (param_3 != 0) {\n    FUN_001080ad(param_1,param_2,0);\n    return 2;\n  }\nLAB_0010a103:\n  uVar5 = FUN_0010bd5d(param_2);\n  iVar3 = FUN_0010c8a8(uVar5);\n  uVar17 = 0;\n  uVar19 = iVar3 == 0;\n  if ((bool)uVar19) {\n    FUN_00134fb0("\'%s\' is not a valid format for a manual host key specification",param_2);\n    FUN_0010c4d3(uVar5);\n    return 2;\n  }\n  FUN_0010ade1(param_4,0xad,uVar5,&DAT_0013bec9);\n  FUN_0010c4d3(uVar5);\n  lVar10 = 3;\n  pbVar11 = param_1;\n  pbVar12 = &DAT_0013b2a9;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    uVar17 = *pbVar11 < *pbVar12;\n    uVar19 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while ((bool)uVar19);\n  uVar5 = 2;\n  bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n  if (bVar15) {\n    iVar3 = FUN_00108083(3,param_1);\n    bVar15 = iVar3 == 0;\n    if (!bVar15) {\n      return 2;\n    }\nLAB_001088cd:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)0x1440f1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    uVar17 = 0;\n    uVar19 = (!bVar18 && !bVar15) == bVar18;\n    if ((bool)uVar19) {\n      uVar5 = FUN_0010c2a6(&DAT_0013b2b6,param_2);\n      uVar7 = FUN_0010bd5d("D");\n    }\n    else {\n      bVar1 = param_1[1];\n      pcVar6 = (char *)FUN_0010b8c9(param_2,0x3a);\n      pcVar8 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\nLAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);\n        return 2;\n      }\n      do {\n        pcVar14 = pcVar8;\n        pcVar8 = pcVar6;\n        pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);\n      } while (pcVar6 != (char *)0x0);\n      if (pcVar14 == (char *)0x0) goto LAB_00108973;\n      uVar17 = pcVar14 < param_2;\n      uVar19 = (long)pcVar14 - (long)param_2 == 0;\n      uVar5 = FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2);\n      uVar7 = FUN_0010bd5d(pcVar14 + 1);\n    }\n    FUN_0010ade1(param_4,0x9b,uVar5,uVar7);\n    FUN_0010c4d3(uVar5);\n    FUN_0010c4d3(uVar7);\n    lVar10 = 4;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2ba;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    uVar5 = 2;\n    bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (!bVar15) goto LAB_00108a01;\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_00109fa5:\n    lVar10 = FUN_0010b8c9(param_2,0x3a);\n    if (lVar10 == 0) {\n      FUN_00134fb0("-nc expects argument of form \'host:port\'");\n      return 2;\n    }\n    uVar5 = FUN_0010c2a6(&DAT_0013b2b1,lVar10 - (long)param_2,param_2);\n    FUN_0010ad3a(param_4,0x2e,uVar5);\n    uVar9 = strtol((char *)(lVar10 + 1),(char **)0x0,10);\n    FUN_0010ac09(param_4,0x2f,uVar9 & 0xffffffff);\n    FUN_0010c4d3(uVar5);\n    iVar3 = strcmp((char *)param_1,"-m");\n    uVar5 = 2;\n    bVar15 = iVar3 == 0;\n    if (!bVar15) goto LAB_0010a032;\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_00109f54:\n    __stream = fopen64(param_2,"r");\n    if (__stream == (FILE *)0x0) {\n      FUN_00134fb0("unable to open command file \"%s\"",param_2);\n      return 2;\n    }\n    lVar13 = 0;\n    local_3c = 0;\n    lVar10 = 0;\n    while( true ) {\n      iVar4 = (int)lVar13;\n      iVar3 = fgetc(__stream);\n      if (iVar3 == -1) break;\n      local_48._0_1_ = (undefined1)iVar3;\n      if (iVar4 < local_3c) {\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      else {\n        local_3c = iVar4 + 0x200;\n        lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      lVar13 = lVar13 + 1;\n    }\n    if (iVar4 < local_3c) {\n      *(undefined1 *)(lVar10 + iVar4) = 0;\n    }\n    else {\n      lVar10 = FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1);\n      *(undefined1 *)(lVar10 + lVar13) = 0;\n    }\n    fclose(__stream);\n    FUN_0010ad3a(param_4,0x14,lVar10);\n    FUN_0010ad3a(param_4,0x15,&DAT_0013bec9);\n    FUN_0010ac09(param_4,0x16,1);\n    FUN_0010c4d3(lVar10);\n    iVar3 = strcmp((char *)param_1,"-P");\n    uVar5 = 2;\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      goto LAB_00109749;\n    }\nLAB_00108afa:\n    iVar3 = strcmp((char *)param_1,"-pw");\n    if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 2;\n      }\n      goto LAB_00109ee5;\n    }\n    iVar3 = strcmp((char *)param_1,"-agent");\n    if (iVar3 != 0) goto LAB_00108ba4;\nLAB_00108bce:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108bdc:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00108bf9:\n    FUN_0010ac09(param_4,0x1c,1);\n    iVar3 = strcmp((char *)param_1,"-noagent");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108c37;\n    }\n    iVar3 = strcmp((char *)param_1,"-nopagent");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00109e76;\nLAB_00108d1b:\n    iVar3 = strcmp((char *)param_1,"-nopageant");\n    if (iVar3 == 0) goto LAB_00108d2e;\n    iVar3 = strcmp((char *)param_1,"-A");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-a");\n      if (iVar3 != 0) goto LAB_00108c7d;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108db9;\n    }\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109d88:\n    FUN_0010ac09(param_4,0x1d,1);\n    iVar3 = strcmp((char *)param_1,"-a");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d25;\n    }\n    iVar3 = strcmp((char *)param_1,"-X");\n    uVar5 = 1;\n    if (iVar3 == 0) {\nLAB_00108ca2:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109c0f;\n    }\nLAB_00109dce:\n    iVar3 = strcmp((char *)param_1,"-x");\n    if (iVar3 != 0) goto LAB_00109de5;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108dff:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109c49:\n    FUN_0010ac09(param_4,0x95,0);\n    iVar3 = strcmp((char *)param_1,"-t");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c87:\n      FUN_0010ac09(param_4,0x16,0);\n      iVar3 = strcmp((char *)param_1,"-T");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }\n      iVar3 = strcmp((char *)param_1,"-N");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109ba0;\n    }\n    else {\n      iVar3 = strcmp((char *)param_1,"-T");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109e21;\nLAB_00109b7b:\n      iVar3 = strcmp((char *)param_1,"-N");\n      if (iVar3 == 0) {\n        if (param_3 < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }\n    }\n    iVar3 = strcmp((char *)param_1,"-C");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00108e8b:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\nLAB_0010989e:\n      FUN_0010ac09(param_4,0x17,1);\n      iVar3 = strcmp((char *)param_1,"-1");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }\n      iVar3 = strcmp((char *)param_1,"-2");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109930;\n      goto LAB_00109b26;\n    }\nLAB_00109aea:\n    iVar3 = strcmp((char *)param_1,"-1");\n    if (iVar3 != 0) goto LAB_00109b01;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108ed1:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_001098d8:\n    FUN_0010ac09(param_4,0x21,0);\n    iVar3 = strcmp((char *)param_1,"-2");\n    uVar5 = 1;\n    if (iVar3 != 0) goto LAB_00109930;\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\nLAB_00109918:\n    FUN_0010ac09(param_4,0x21,3);\n    uVar5 = 1;\n  }\n  else {\nLAB_00108865:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2ac;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\nLAB_0010889d:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      bVar15 = param_3 == 0;\n      if (!bVar15) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001088cd;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)0x1440f1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_0010889d;\n    iVar3 = strcmp((char *)param_1,"-nc");\n    bVar15 = iVar3 == 0;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109fa5;\n    }\nLAB_00108a01:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2be;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109f54;\n    }\nLAB_0010a032:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2c1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar18 && !bVar15) != bVar18) goto LAB_00108afa;\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }\nLAB_00109749:\n    uVar9 = strtol(param_2,(char **)0x0,10);\n    FUN_0010ac09(param_4,1,uVar9 & 0xffffffff);\n    iVar3 = strcmp((char *)param_1,"-pw");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\nLAB_00109ee5:\n      iVar3 = FUN_0010a543(param_4,2);\n      if (iVar3 == 3) {\n        DAT_00152128 = FUN_0010bd5d(param_2);\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = param_2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        FUN_0010c727(param_2,~uVar9 - 1);\n      }\n      else {\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }\n      iVar3 = strcmp((char *)param_1,"-agent");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-pagent");\n        uVar5 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108bf9;\n    }\n    iVar3 = strcmp((char *)param_1,"-agent");\n    uVar5 = 2;\n    if (iVar3 == 0) goto LAB_00108bdc;\nLAB_00108ba4:\n    iVar3 = strcmp((char *)param_1,"-pagent");\n    if (iVar3 == 0) goto LAB_00108bce;\nLAB_00108bb7:\n    iVar3 = strcmp((char *)param_1,"-pageant");\n    if (iVar3 == 0) goto LAB_00108bce;\n    iVar3 = strcmp((char *)param_1,"-noagent");\n    if ((iVar3 != 0) && (iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0))\n    goto LAB_00108d1b;\nLAB_00108d2e:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e76:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00108c37:\n    FUN_0010ac09(param_4,0x1c,0);\n    iVar3 = strcmp((char *)param_1,"-A");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d88;\n    }\n    iVar3 = strcmp((char *)param_1,"-a");\n    if (iVar3 != 0) {\n      uVar5 = 1;\nLAB_00108c7d:\n      iVar3 = strcmp((char *)param_1,"-X");\n      if (iVar3 != 0) goto LAB_00109dce;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108ca2;\n    }\nLAB_00108db9:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109d25:\n    FUN_0010ac09(param_4,0x1d,0);\n    iVar3 = strcmp((char *)param_1,"-X");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c0f:\n      FUN_0010ac09(param_4,0x95,1);\n      iVar3 = strcmp((char *)param_1,"-x");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }\n      iVar3 = strcmp((char *)param_1,"-t");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109dfc;\nLAB_00108e45:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_00109c87;\n    }\n    iVar3 = strcmp((char *)param_1,"-x");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108dff;\nLAB_00109de5:\n    iVar3 = strcmp((char *)param_1,"-t");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108e45;\n    }\nLAB_00109dfc:\n    iVar3 = strcmp((char *)param_1,"-T");\n    if (iVar3 != 0) goto LAB_00109b7b;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e21:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_00109cc5:\n    FUN_0010ac09(param_4,0x16,1);\n    iVar3 = strcmp((char *)param_1,"-N");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-C");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00108e8b;\n      goto LAB_00109aea;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\nLAB_00109a6e:\n    FUN_0010ac09(param_4,0x2d,1);\n    iVar3 = strcmp((char *)param_1,"-C");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_0010989e;\n    }\n    iVar3 = strcmp((char *)param_1,"-1");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108ed1;\nLAB_00109b01:\n    iVar3 = strcmp((char *)param_1,"-2");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00109b26:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109918;\n    }\n  }\nLAB_00109930:\n  iVar3 = strcmp((char *)param_1,"-i");\n  if (iVar3 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    uVar5 = FUN_001321a4(param_2);\n    FUN_0010af59(param_4,0x20,uVar5);\n    FUN_00132212(uVar5);\n    iVar3 = strcmp((char *)param_1,"-4");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-ipv4");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_00109814;\n    }\nLAB_001099af:\n    FUN_0010ac09(param_4,3,1);\n    iVar3 = strcmp((char *)param_1,"-6");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_001099de;\nLAB_00109827:\n    iVar3 = strcmp((char *)param_1,"-ipv6");\n    if (iVar3 == 0) goto LAB_0010983e;\n  }\n  else {\n    iVar3 = strcmp((char *)param_1,"-4");\n    if ((iVar3 == 0) || (iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_001099af;\n    }\nLAB_00109814:\n    iVar3 = strcmp((char *)param_1,"-6");\n    if (iVar3 != 0) goto LAB_00109827;\nLAB_0010983e:\n    if (param_3 < 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_001099de:\n    FUN_0010ac09(param_4,3,2);\n    uVar5 = 1;\n  }\n  iVar3 = strcmp((char *)param_1,"-sercfg");\n  if (iVar3 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }\n    iVar3 = FUN_0010a543(param_4,2);\n    pcVar6 = param_2;\n    if (iVar3 != 4) {\n      FUN_00134fb0("the -sercfg option can only be used with the serial protocol");\n    }\n    for (; *pcVar6 != '\0'; pcVar6 = pcVar6 + (local_48 + iVar3)) {\n      pcVar8 = strchr(pcVar6,0x2c);\n      if (pcVar8 == (char *)0x0) {\n        lVar10 = -1;\n        pcVar8 = pcVar6;\n        do {\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        iVar3 = ~(uint)lVar10 - 1;\n        local_48 = 0;\n      }\n      else {\n        iVar3 = (int)pcVar8 - (int)pcVar6;\n        pcVar6[iVar3] = '\0';\n        local_48 = 1;\n      }\n      if (iVar3 == 1) {\n        cVar2 = *pcVar6;\n        switch(cVar2) {\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }\n      }\n      else if ((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)) {\n        FUN_0010ac09(param_4,0x3c,3);\n      }\n      else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }\n    }\n    iVar3 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-sshlog");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_0010921f;\n      goto LAB_0010924d;\n    }\n    iVar3 = FUN_00108083(1,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_001095f3:\n    uVar5 = FUN_001321a4(param_2);\n    FUN_0010af59(param_4,0x77,uVar5);\n    FUN_0010ac09(param_4,0x78,2);\n    FUN_00132212(uVar5);\n    iVar3 = strcmp((char *)param_1,"-sshlog");\n    uVar5 = 2;\n    if (iVar3 != 0) {\nLAB_0010921f:\n      iVar3 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar3 != 0) {\n          return uVar5;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }\n      goto LAB_00109236;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n  }\n  else {\n    iVar3 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(1,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001095f3;\n    }\n    iVar3 = strcmp((char *)param_1,"-sshlog");\n    if (iVar3 != 0) goto LAB_0010921f;\nLAB_00109236:\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\nLAB_0010924d:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n  }\n  uVar5 = FUN_001321a4(param_2);\n  FUN_0010af59(param_4,0x77,uVar5);\n  iVar3 = strcmp((char *)param_1,"-sshlog");\n  FUN_0010ac09(param_4,0x78,4 - (uint)(iVar3 == 0));\n  FUN_00132212(uVar5);\n  iVar3 = strcmp((char *)param_1,"-proxycmd");\n  if (iVar3 != 0) {\n    return 2;\n  }\n  iVar3 = FUN_00108083(2,param_1);\n  if (iVar3 != 0) {\n    return 2;\n  }\nLAB_001092e3:\n  FUN_0010ac09(param_4,0xd,5);\n  FUN_0010ad3a(param_4,0x12,param_2);\n  return 2;\n}" (type_identifier "undefined8") (function_declarator "FUN_001082a0(byte *param_1,char *param_2,int param_3,undefined8 param_4)" (identifier "FUN_001082a0") (parameter_list "(byte *param_1,char *param_2,int param_3,undefined8 param_4)" (( "(") (parameter_declaration "byte *param_1" (type_identifier "byte") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "undefined8 param_4" (type_identifier "undefined8") (identifier "param_4")) () ")"))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  int iVar4;\n  undefined8 uVar5;\n  char *pcVar6;\n  undefined8 uVar7;\n  char *pcVar8;\n  ulong uVar9;\n  FILE *__stream;\n  long lVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  long lVar13;\n  char *pcVar14;\n  bool bVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  undefined1 uVar19;\n  byte bVar20;\n  int local_48;\n  int local_3c;\n  \n  bVar20 = 0;\n  bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x28;\n  bVar18 = &stack0x00000000 == (undefined1 *)0x58;\n  lVar10 = 6;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-load";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar15 = *pbVar11 < *pbVar12;\n    bVar18 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar18);\n  bVar16 = false;\n  bVar15 = (!bVar15 && !bVar18) == bVar15;\n  if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (-1 < param_3) {\n      FUN_00116e22(param_2,param_4);\n      _DAT_00152558 = 1;\n      _DAT_00152560 = FUN_0010bd5d(param_2);\n      return 2;\n    }\n    return 2;\n  }\n  lVar10 = 5;\n  pbVar11 = param_1;\n  pbVar12 = &DAT_0013b272;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar18 = false;\n  bVar15 = (!bVar16 && !bVar15) == bVar16;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 3;\n        DAT_00152548 = 0x16;\n        FUN_0010ac09(param_4,2,3);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar10 = 8;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-telnet";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar16 = false;\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 1;\n        DAT_00152548 = 0x17;\n        FUN_0010ac09(param_4,2,1);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar10 = 8;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-rlogin";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar18 = false;\n  bVar15 = (!bVar16 && !bVar15) == bVar16;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 2;\n        DAT_00152548 = 0x201;\n        FUN_0010ac09(param_4,2,2);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }\n  lVar10 = 5;\n  pbVar11 = param_1;\n  pbVar12 = &DAT_0013b287;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);\n  bVar16 = false;\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    uVar17 = 0;\n    uVar19 = param_3 == 0;\n    if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    DAT_00152538 = 0;\n    FUN_0010ac09(param_4,2,0);\n    lVar10 = 8;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    bVar15 = false;\n    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (bVar18) {\n      iVar3 = FUN_00108083(3,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 1;\n      }\nLAB_0010858a:\n      uVar19 = 0;\n      DAT_00152538 = 4;\n      FUN_0010ac09(param_4,2,4);\n      uVar5 = FUN_0010a6d3(param_4,0);\n      FUN_0010ad3a(param_4,0x39,uVar5);\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n    }\n    else {\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n    }\n    uVar5 = 1;\n    if (bVar15) {\nLAB_00108687:\n      DAT_0015254c = DAT_0015254c | 1;\n      bVar15 = DAT_0015254c == 0;\n      uVar5 = 1;\n    }\n  }\n  else {\n    lVar10 = 8;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      uVar17 = param_3 == 0;\n      if (!(bool)uVar17) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_0010858a;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b294;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108687;\n    }\n    uVar5 = 0;\n  }\n  bVar18 = false;\n  lVar10 = 3;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)0x1440df;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);\n  bVar16 = false;\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    uVar17 = 0;\n    uVar19 = param_3 == 0;\n    if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    FUN_0010ad3a(param_4,0x34,param_2);\n    lVar10 = 9;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-loghost";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    bVar15 = false;\n    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (bVar18) {\n      iVar3 = FUN_00108083(2,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 2;\n      }\nLAB_0010a0b4:\n      uVar19 = 0;\n      FUN_0010ad3a(param_4,9,param_2);\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      uVar5 = 2;\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n      if (bVar15) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }\n    }\n    else {\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      uVar5 = 2;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (bVar15) goto LAB_00108738;\n    }\nLAB_0010884b:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2a9;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (!bVar15) goto LAB_00108865;\n    goto LAB_0010889d;\n  }\n  lVar10 = 9;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-loghost";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);\n  bVar18 = false;\n  bVar15 = (!bVar16 && !bVar15) == bVar16;\n  if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    uVar17 = param_3 == 0;\n    if (!(bool)uVar17) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    goto LAB_0010a0b4;\n  }\n  lVar10 = 9;\n  pbVar11 = param_1;\n  pbVar12 = (byte *)"-hostkey";\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);\n  bVar15 = (!bVar18 && !bVar15) == bVar18;\n  if (!bVar15) goto LAB_0010884b;\n  if (param_2 == (char *)0x0) {\n    return 0xfffffffe;\n  }\n  if (param_3 < 0) {\n    return 2;\n  }\nLAB_00108738:\n  iVar3 = FUN_00108083(2,param_1);\n  if (iVar3 != 0) {\n    return 2;\n  }\n  if (param_3 != 0) {\n    FUN_001080ad(param_1,param_2,0);\n    return 2;\n  }\nLAB_0010a103:\n  uVar5 = FUN_0010bd5d(param_2);\n  iVar3 = FUN_0010c8a8(uVar5);\n  uVar17 = 0;\n  uVar19 = iVar3 == 0;\n  if ((bool)uVar19) {\n    FUN_00134fb0("\'%s\' is not a valid format for a manual host key specification",param_2);\n    FUN_0010c4d3(uVar5);\n    return 2;\n  }\n  FUN_0010ade1(param_4,0xad,uVar5,&DAT_0013bec9);\n  FUN_0010c4d3(uVar5);\n  lVar10 = 3;\n  pbVar11 = param_1;\n  pbVar12 = &DAT_0013b2a9;\n  do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    uVar17 = *pbVar11 < *pbVar12;\n    uVar19 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while ((bool)uVar19);\n  uVar5 = 2;\n  bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n  if (bVar15) {\n    iVar3 = FUN_00108083(3,param_1);\n    bVar15 = iVar3 == 0;\n    if (!bVar15) {\n      return 2;\n    }\nLAB_001088cd:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)0x1440f1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    uVar17 = 0;\n    uVar19 = (!bVar18 && !bVar15) == bVar18;\n    if ((bool)uVar19) {\n      uVar5 = FUN_0010c2a6(&DAT_0013b2b6,param_2);\n      uVar7 = FUN_0010bd5d("D");\n    }\n    else {\n      bVar1 = param_1[1];\n      pcVar6 = (char *)FUN_0010b8c9(param_2,0x3a);\n      pcVar8 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\nLAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);\n        return 2;\n      }\n      do {\n        pcVar14 = pcVar8;\n        pcVar8 = pcVar6;\n        pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);\n      } while (pcVar6 != (char *)0x0);\n      if (pcVar14 == (char *)0x0) goto LAB_00108973;\n      uVar17 = pcVar14 < param_2;\n      uVar19 = (long)pcVar14 - (long)param_2 == 0;\n      uVar5 = FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2);\n      uVar7 = FUN_0010bd5d(pcVar14 + 1);\n    }\n    FUN_0010ade1(param_4,0x9b,uVar5,uVar7);\n    FUN_0010c4d3(uVar5);\n    FUN_0010c4d3(uVar7);\n    lVar10 = 4;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2ba;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    uVar5 = 2;\n    bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (!bVar15) goto LAB_00108a01;\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_00109fa5:\n    lVar10 = FUN_0010b8c9(param_2,0x3a);\n    if (lVar10 == 0) {\n      FUN_00134fb0("-nc expects argument of form \'host:port\'");\n      return 2;\n    }\n    uVar5 = FUN_0010c2a6(&DAT_0013b2b1,lVar10 - (long)param_2,param_2);\n    FUN_0010ad3a(param_4,0x2e,uVar5);\n    uVar9 = strtol((char *)(lVar10 + 1),(char **)0x0,10);\n    FUN_0010ac09(param_4,0x2f,uVar9 & 0xffffffff);\n    FUN_0010c4d3(uVar5);\n    iVar3 = strcmp((char *)param_1,"-m");\n    uVar5 = 2;\n    bVar15 = iVar3 == 0;\n    if (!bVar15) goto LAB_0010a032;\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_00109f54:\n    __stream = fopen64(param_2,"r");\n    if (__stream == (FILE *)0x0) {\n      FUN_00134fb0("unable to open command file \"%s\"",param_2);\n      return 2;\n    }\n    lVar13 = 0;\n    local_3c = 0;\n    lVar10 = 0;\n    while( true ) {\n      iVar4 = (int)lVar13;\n      iVar3 = fgetc(__stream);\n      if (iVar3 == -1) break;\n      local_48._0_1_ = (undefined1)iVar3;\n      if (iVar4 < local_3c) {\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      else {\n        local_3c = iVar4 + 0x200;\n        lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      lVar13 = lVar13 + 1;\n    }\n    if (iVar4 < local_3c) {\n      *(undefined1 *)(lVar10 + iVar4) = 0;\n    }\n    else {\n      lVar10 = FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1);\n      *(undefined1 *)(lVar10 + lVar13) = 0;\n    }\n    fclose(__stream);\n    FUN_0010ad3a(param_4,0x14,lVar10);\n    FUN_0010ad3a(param_4,0x15,&DAT_0013bec9);\n    FUN_0010ac09(param_4,0x16,1);\n    FUN_0010c4d3(lVar10);\n    iVar3 = strcmp((char *)param_1,"-P");\n    uVar5 = 2;\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      goto LAB_00109749;\n    }\nLAB_00108afa:\n    iVar3 = strcmp((char *)param_1,"-pw");\n    if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 2;\n      }\n      goto LAB_00109ee5;\n    }\n    iVar3 = strcmp((char *)param_1,"-agent");\n    if (iVar3 != 0) goto LAB_00108ba4;\nLAB_00108bce:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108bdc:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00108bf9:\n    FUN_0010ac09(param_4,0x1c,1);\n    iVar3 = strcmp((char *)param_1,"-noagent");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108c37;\n    }\n    iVar3 = strcmp((char *)param_1,"-nopagent");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00109e76;\nLAB_00108d1b:\n    iVar3 = strcmp((char *)param_1,"-nopageant");\n    if (iVar3 == 0) goto LAB_00108d2e;\n    iVar3 = strcmp((char *)param_1,"-A");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-a");\n      if (iVar3 != 0) goto LAB_00108c7d;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108db9;\n    }\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109d88:\n    FUN_0010ac09(param_4,0x1d,1);\n    iVar3 = strcmp((char *)param_1,"-a");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d25;\n    }\n    iVar3 = strcmp((char *)param_1,"-X");\n    uVar5 = 1;\n    if (iVar3 == 0) {\nLAB_00108ca2:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109c0f;\n    }\nLAB_00109dce:\n    iVar3 = strcmp((char *)param_1,"-x");\n    if (iVar3 != 0) goto LAB_00109de5;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108dff:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109c49:\n    FUN_0010ac09(param_4,0x95,0);\n    iVar3 = strcmp((char *)param_1,"-t");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c87:\n      FUN_0010ac09(param_4,0x16,0);\n      iVar3 = strcmp((char *)param_1,"-T");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }\n      iVar3 = strcmp((char *)param_1,"-N");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109ba0;\n    }\n    else {\n      iVar3 = strcmp((char *)param_1,"-T");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109e21;\nLAB_00109b7b:\n      iVar3 = strcmp((char *)param_1,"-N");\n      if (iVar3 == 0) {\n        if (param_3 < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }\n    }\n    iVar3 = strcmp((char *)param_1,"-C");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00108e8b:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\nLAB_0010989e:\n      FUN_0010ac09(param_4,0x17,1);\n      iVar3 = strcmp((char *)param_1,"-1");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }\n      iVar3 = strcmp((char *)param_1,"-2");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109930;\n      goto LAB_00109b26;\n    }\nLAB_00109aea:\n    iVar3 = strcmp((char *)param_1,"-1");\n    if (iVar3 != 0) goto LAB_00109b01;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108ed1:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_001098d8:\n    FUN_0010ac09(param_4,0x21,0);\n    iVar3 = strcmp((char *)param_1,"-2");\n    uVar5 = 1;\n    if (iVar3 != 0) goto LAB_00109930;\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\nLAB_00109918:\n    FUN_0010ac09(param_4,0x21,3);\n    uVar5 = 1;\n  }\n  else {\nLAB_00108865:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2ac;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\nLAB_0010889d:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      bVar15 = param_3 == 0;\n      if (!bVar15) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001088cd;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)0x1440f1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_0010889d;\n    iVar3 = strcmp((char *)param_1,"-nc");\n    bVar15 = iVar3 == 0;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109fa5;\n    }\nLAB_00108a01:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2be;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109f54;\n    }\nLAB_0010a032:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2c1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar18 && !bVar15) != bVar18) goto LAB_00108afa;\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }\nLAB_00109749:\n    uVar9 = strtol(param_2,(char **)0x0,10);\n    FUN_0010ac09(param_4,1,uVar9 & 0xffffffff);\n    iVar3 = strcmp((char *)param_1,"-pw");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\nLAB_00109ee5:\n      iVar3 = FUN_0010a543(param_4,2);\n      if (iVar3 == 3) {\n        DAT_00152128 = FUN_0010bd5d(param_2);\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = param_2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        FUN_0010c727(param_2,~uVar9 - 1);\n      }\n      else {\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }\n      iVar3 = strcmp((char *)param_1,"-agent");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-pagent");\n        uVar5 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108bf9;\n    }\n    iVar3 = strcmp((char *)param_1,"-agent");\n    uVar5 = 2;\n    if (iVar3 == 0) goto LAB_00108bdc;\nLAB_00108ba4:\n    iVar3 = strcmp((char *)param_1,"-pagent");\n    if (iVar3 == 0) goto LAB_00108bce;\nLAB_00108bb7:\n    iVar3 = strcmp((char *)param_1,"-pageant");\n    if (iVar3 == 0) goto LAB_00108bce;\n    iVar3 = strcmp((char *)param_1,"-noagent");\n    if ((iVar3 != 0) && (iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0))\n    goto LAB_00108d1b;\nLAB_00108d2e:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e76:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00108c37:\n    FUN_0010ac09(param_4,0x1c,0);\n    iVar3 = strcmp((char *)param_1,"-A");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d88;\n    }\n    iVar3 = strcmp((char *)param_1,"-a");\n    if (iVar3 != 0) {\n      uVar5 = 1;\nLAB_00108c7d:\n      iVar3 = strcmp((char *)param_1,"-X");\n      if (iVar3 != 0) goto LAB_00109dce;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108ca2;\n    }\nLAB_00108db9:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109d25:\n    FUN_0010ac09(param_4,0x1d,0);\n    iVar3 = strcmp((char *)param_1,"-X");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c0f:\n      FUN_0010ac09(param_4,0x95,1);\n      iVar3 = strcmp((char *)param_1,"-x");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }\n      iVar3 = strcmp((char *)param_1,"-t");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109dfc;\nLAB_00108e45:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_00109c87;\n    }\n    iVar3 = strcmp((char *)param_1,"-x");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108dff;\nLAB_00109de5:\n    iVar3 = strcmp((char *)param_1,"-t");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108e45;\n    }\nLAB_00109dfc:\n    iVar3 = strcmp((char *)param_1,"-T");\n    if (iVar3 != 0) goto LAB_00109b7b;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e21:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_00109cc5:\n    FUN_0010ac09(param_4,0x16,1);\n    iVar3 = strcmp((char *)param_1,"-N");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-C");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00108e8b;\n      goto LAB_00109aea;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\nLAB_00109a6e:\n    FUN_0010ac09(param_4,0x2d,1);\n    iVar3 = strcmp((char *)param_1,"-C");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_0010989e;\n    }\n    iVar3 = strcmp((char *)param_1,"-1");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108ed1;\nLAB_00109b01:\n    iVar3 = strcmp((char *)param_1,"-2");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00109b26:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109918;\n    }\n  }\nLAB_00109930:\n  iVar3 = strcmp((char *)param_1,"-i");\n  if (iVar3 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    uVar5 = FUN_001321a4(param_2);\n    FUN_0010af59(param_4,0x20,uVar5);\n    FUN_00132212(uVar5);\n    iVar3 = strcmp((char *)param_1,"-4");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-ipv4");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_00109814;\n    }\nLAB_001099af:\n    FUN_0010ac09(param_4,3,1);\n    iVar3 = strcmp((char *)param_1,"-6");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_001099de;\nLAB_00109827:\n    iVar3 = strcmp((char *)param_1,"-ipv6");\n    if (iVar3 == 0) goto LAB_0010983e;\n  }\n  else {\n    iVar3 = strcmp((char *)param_1,"-4");\n    if ((iVar3 == 0) || (iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_001099af;\n    }\nLAB_00109814:\n    iVar3 = strcmp((char *)param_1,"-6");\n    if (iVar3 != 0) goto LAB_00109827;\nLAB_0010983e:\n    if (param_3 < 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_001099de:\n    FUN_0010ac09(param_4,3,2);\n    uVar5 = 1;\n  }\n  iVar3 = strcmp((char *)param_1,"-sercfg");\n  if (iVar3 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }\n    iVar3 = FUN_0010a543(param_4,2);\n    pcVar6 = param_2;\n    if (iVar3 != 4) {\n      FUN_00134fb0("the -sercfg option can only be used with the serial protocol");\n    }\n    for (; *pcVar6 != '\0'; pcVar6 = pcVar6 + (local_48 + iVar3)) {\n      pcVar8 = strchr(pcVar6,0x2c);\n      if (pcVar8 == (char *)0x0) {\n        lVar10 = -1;\n        pcVar8 = pcVar6;\n        do {\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        iVar3 = ~(uint)lVar10 - 1;\n        local_48 = 0;\n      }\n      else {\n        iVar3 = (int)pcVar8 - (int)pcVar6;\n        pcVar6[iVar3] = '\0';\n        local_48 = 1;\n      }\n      if (iVar3 == 1) {\n        cVar2 = *pcVar6;\n        switch(cVar2) {\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }\n      }\n      else if ((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)) {\n        FUN_0010ac09(param_4,0x3c,3);\n      }\n      else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }\n    }\n    iVar3 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-sshlog");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_0010921f;\n      goto LAB_0010924d;\n    }\n    iVar3 = FUN_00108083(1,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_001095f3:\n    uVar5 = FUN_001321a4(param_2);\n    FUN_0010af59(param_4,0x77,uVar5);\n    FUN_0010ac09(param_4,0x78,2);\n    FUN_00132212(uVar5);\n    iVar3 = strcmp((char *)param_1,"-sshlog");\n    uVar5 = 2;\n    if (iVar3 != 0) {\nLAB_0010921f:\n      iVar3 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar3 != 0) {\n          return uVar5;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }\n      goto LAB_00109236;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n  }\n  else {\n    iVar3 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(1,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001095f3;\n    }\n    iVar3 = strcmp((char *)param_1,"-sshlog");\n    if (iVar3 != 0) goto LAB_0010921f;\nLAB_00109236:\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\nLAB_0010924d:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n  }\n  uVar5 = FUN_001321a4(param_2);\n  FUN_0010af59(param_4,0x77,uVar5);\n  iVar3 = strcmp((char *)param_1,"-sshlog");\n  FUN_0010ac09(param_4,0x78,4 - (uint)(iVar3 == 0));\n  FUN_00132212(uVar5);\n  iVar3 = strcmp((char *)param_1,"-proxycmd");\n  if (iVar3 != 0) {\n    return 2;\n  }\n  iVar3 = FUN_00108083(2,param_1);\n  if (iVar3 != 0) {\n    return 2;\n  }\nLAB_001092e3:\n  FUN_0010ac09(param_4,0xd,5);\n  FUN_0010ad3a(param_4,0x12,param_2);\n  return 2;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "undefined8 uVar5;" (type_identifier "undefined8") (identifier "uVar5") (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "undefined8 uVar7;" (type_identifier "undefined8") (identifier "uVar7") (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "ulong uVar9;" (type_identifier "ulong") (identifier "uVar9") (; ";")) (declaration "FILE *__stream;" (type_identifier "FILE") (pointer_declarator "*__stream" (* "*") (identifier "__stream")) (; ";")) (declaration "long lVar10;" (sized_type_specifier "long" (long "long")) (identifier "lVar10") (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "byte *pbVar12;" (type_identifier "byte") (pointer_declarator "*pbVar12" (* "*") (identifier "pbVar12")) (; ";")) (declaration "long lVar13;" (sized_type_specifier "long" (long "long")) (identifier "lVar13") (; ";")) (declaration "char *pcVar14;" (primitive_type "char") (pointer_declarator "*pcVar14" (* "*") (identifier "pcVar14")) (; ";")) (declaration "bool bVar15;" (primitive_type "bool") (identifier "bVar15") (; ";")) (declaration "bool bVar16;" (primitive_type "bool") (identifier "bVar16") (; ";")) (declaration "undefined1 uVar17;" (type_identifier "undefined1") (identifier "uVar17") (; ";")) (declaration "bool bVar18;" (primitive_type "bool") (identifier "bVar18") (; ";")) (declaration "undefined1 uVar19;" (type_identifier "undefined1") (identifier "uVar19") (; ";")) (declaration "byte bVar20;" (type_identifier "byte") (identifier "bVar20") (; ";")) (declaration "int local_48;" (primitive_type "int") (identifier "local_48") (; ";")) (declaration "int local_3c;" (primitive_type "int") (identifier "local_3c") (; ";")) (expression_statement "bVar20 = 0;" (assignment_expression "bVar20 = 0" (identifier "bVar20") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x28;" (assignment_expression "bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x28" (identifier "bVar15") (= "=") (binary_expression "&stack0xffffffffffffffd0 < (undefined1 *)0x28" (pointer_expression "&stack0xffffffffffffffd0" (& "&") (identifier "stack0xffffffffffffffd0")) (< "<") (cast_expression "(undefined1 *)0x28" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x28")))) (; ";")) (expression_statement "bVar18 = &stack0x00000000 == (undefined1 *)0x58;" (assignment_expression "bVar18 = &stack0x00000000 == (undefined1 *)0x58" (identifier "bVar18") (= "=") (binary_expression "&stack0x00000000 == (undefined1 *)0x58" (pointer_expression "&stack0x00000000" (& "&") (identifier "stack0x00000000")) (== "==") (cast_expression "(undefined1 *)0x58" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x58")))) (; ";")) (expression_statement "lVar10 = 6;" (assignment_expression "lVar10 = 6" (identifier "lVar10") (= "=") (number_literal "6")) (; ";")) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" (identifier "pbVar11") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar12 = (byte *)"-load";" (assignment_expression "pbVar12 = (byte *)"-load"" (identifier "pbVar12") (= "=") (cast_expression "(byte *)"-load"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""-load"" (" """) (string_content "-load") (" """)))) (; ";")) (do_statement "do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar15 = *pbVar11 < *pbVar12;\n    bVar18 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar18);" (do "do") (compound_statement "{\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar15 = *pbVar11 < *pbVar12;\n    bVar18 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  }" ({ "{") (if_statement "if (lVar10 == 0) break;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar15 = *pbVar11 < *pbVar12;" (assignment_expression "bVar15 = *pbVar11 < *pbVar12" (identifier "bVar15") (= "=") (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar18 = *pbVar11 == *pbVar12;" (assignment_expression "bVar18 = *pbVar11 == *pbVar12" (identifier "bVar18") (= "=") (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar18)" (( "(") (identifier "bVar18") () ")")) (; ";")) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" (identifier "bVar16") (= "=") (false "false")) (; ";")) (expression_statement "bVar15 = (!bVar15 && !bVar18) == bVar15;" (assignment_expression "bVar15 = (!bVar15 && !bVar18) == bVar15" (identifier "bVar15") (= "=") (binary_expression "(!bVar15 && !bVar18) == bVar15" (parenthesized_expression "(!bVar15 && !bVar18)" (( "(") (binary_expression "!bVar15 && !bVar18" (unary_expression "!bVar15" (! "!") (identifier "bVar15")) (&& "&&") (unary_expression "!bVar18" (! "!") (identifier "bVar18"))) () ")")) (== "==") (identifier "bVar15"))) (; ";")) (if_statement "if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (-1 < param_3) {\n      FUN_00116e22(param_2,param_4);\n      _DAT_00152558 = 1;\n      _DAT_00152560 = FUN_0010bd5d(param_2);\n      return 2;\n    }\n    return 2;\n  }" (if "if") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (compound_statement "{\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (-1 < param_3) {\n      FUN_00116e22(param_2,param_4);\n      _DAT_00152558 = 1;\n      _DAT_00152560 = FUN_0010bd5d(param_2);\n      return 2;\n    }\n    return 2;\n  }" ({ "{") (if_statement "if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }" (if "if") (parenthesized_expression "(param_2 == (char *)0x0)" (( "(") (binary_expression "param_2 == (char *)0x0" (identifier "param_2") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      return 0xfffffffe;\n    }" ({ "{") (return_statement "return 0xfffffffe;" (return "return") (number_literal "0xfffffffe") (; ";")) (} "}"))) (if_statement "if (-1 < param_3) {\n      FUN_00116e22(param_2,param_4);\n      _DAT_00152558 = 1;\n      _DAT_00152560 = FUN_0010bd5d(param_2);\n      return 2;\n    }" (if "if") (parenthesized_expression "(-1 < param_3)" (( "(") (binary_expression "-1 < param_3" (number_literal "-1") (< "<") (identifier "param_3")) () ")")) (compound_statement "{\n      FUN_00116e22(param_2,param_4);\n      _DAT_00152558 = 1;\n      _DAT_00152560 = FUN_0010bd5d(param_2);\n      return 2;\n    }" ({ "{") (expression_statement "FUN_00116e22(param_2,param_4);" (call_expression "FUN_00116e22(param_2,param_4)" (identifier "FUN_00116e22") (argument_list "(param_2,param_4)" (( "(") (identifier "param_2") (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "_DAT_00152558 = 1;" (assignment_expression "_DAT_00152558 = 1" (identifier "_DAT_00152558") (= "=") (number_literal "1")) (; ";")) (expression_statement "_DAT_00152560 = FUN_0010bd5d(param_2);" (assignment_expression "_DAT_00152560 = FUN_0010bd5d(param_2)" (identifier "_DAT_00152560") (= "=") (call_expression "FUN_0010bd5d(param_2)" (identifier "FUN_0010bd5d") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (expression_statement "lVar10 = 5;" (assignment_expression "lVar10 = 5" (identifier "lVar10") (= "=") (number_literal "5")) (; ";")) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" (identifier "pbVar11") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar12 = &DAT_0013b272;" (assignment_expression "pbVar12 = &DAT_0013b272" (identifier "pbVar12") (= "=") (pointer_expression "&DAT_0013b272" (& "&") (identifier "DAT_0013b272"))) (; ";")) (do_statement "do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);" (do "do") (compound_statement "{\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  }" ({ "{") (if_statement "if (lVar10 == 0) break;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar16 = *pbVar11 < *pbVar12;" (assignment_expression "bVar16 = *pbVar11 < *pbVar12" (identifier "bVar16") (= "=") (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" (identifier "bVar15") (= "=") (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" (identifier "bVar18") (= "=") (false "false")) (; ";")) (expression_statement "bVar15 = (!bVar16 && !bVar15) == bVar16;" (assignment_expression "bVar15 = (!bVar16 && !bVar15) == bVar16" (identifier "bVar15") (= "=") (binary_expression "(!bVar16 && !bVar15) == bVar16" (parenthesized_expression "(!bVar16 && !bVar15)" (( "(") (binary_expression "!bVar16 && !bVar15" (unary_expression "!bVar16" (! "!") (identifier "bVar16")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar16"))) (; ";")) (if_statement "if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 3;\n        DAT_00152548 = 0x16;\n        FUN_0010ac09(param_4,2,3);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }" (if "if") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (compound_statement "{\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 3;\n        DAT_00152548 = 0x16;\n        FUN_0010ac09(param_4,2,3);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }" ({ "{") (if_statement "if (param_3 < 0) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(3,param_1)" (identifier "FUN_00108083") (argument_list "(3,param_1)" (( "(") (number_literal "3") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 3;\n        DAT_00152548 = 0x16;\n        FUN_0010ac09(param_4,2,3);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (param_3 == 0) {\n        DAT_00152538 = 3;\n        DAT_00152548 = 0x16;\n        FUN_0010ac09(param_4,2,3);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" ({ "{") (if_statement "if (param_3 == 0) {\n        DAT_00152538 = 3;\n        DAT_00152548 = 0x16;\n        FUN_0010ac09(param_4,2,3);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        DAT_00152538 = 3;\n        DAT_00152548 = 0x16;\n        FUN_0010ac09(param_4,2,3);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }" ({ "{") (expression_statement "DAT_00152538 = 3;" (assignment_expression "DAT_00152538 = 3" (identifier "DAT_00152538") (= "=") (number_literal "3")) (; ";")) (expression_statement "DAT_00152548 = 0x16;" (assignment_expression "DAT_00152548 = 0x16" (identifier "DAT_00152548") (= "=") (number_literal "0x16")) (; ";")) (expression_statement "FUN_0010ac09(param_4,2,3);" (call_expression "FUN_0010ac09(param_4,2,3)" (identifier "FUN_0010ac09") (argument_list "(param_4,2,3)" (( "(") (identifier "param_4") (, ",") (number_literal "2") (, ",") (number_literal "3") () ")"))) (; ";")) (expression_statement "FUN_0010ac09(param_4,1,DAT_00152548);" (call_expression "FUN_0010ac09(param_4,1,DAT_00152548)" (identifier "FUN_0010ac09") (argument_list "(param_4,1,DAT_00152548)" (( "(") (identifier "param_4") (, ",") (number_literal "1") (, ",") (identifier "DAT_00152548") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "lVar10 = 8;" (assignment_expression "lVar10 = 8" (identifier "lVar10") (= "=") (number_literal "8")) (; ";")) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" (identifier "pbVar11") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar12 = (byte *)"-telnet";" (assignment_expression "pbVar12 = (byte *)"-telnet"" (identifier "pbVar12") (= "=") (cast_expression "(byte *)"-telnet"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""-telnet"" (" """) (string_content "-telnet") (" """)))) (; ";")) (do_statement "do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);" (do "do") (compound_statement "{\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  }" ({ "{") (if_statement "if (lVar10 == 0) break;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar18 = *pbVar11 < *pbVar12;" (assignment_expression "bVar18 = *pbVar11 < *pbVar12" (identifier "bVar18") (= "=") (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" (identifier "bVar15") (= "=") (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" (identifier "bVar16") (= "=") (false "false")) (; ";")) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" (identifier "bVar15") (= "=") (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" (( "(") (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" (! "!") (identifier "bVar18")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar18"))) (; ";")) (if_statement "if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 1;\n        DAT_00152548 = 0x17;\n        FUN_0010ac09(param_4,2,1);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }" (if "if") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (compound_statement "{\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 1;\n        DAT_00152548 = 0x17;\n        FUN_0010ac09(param_4,2,1);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }" ({ "{") (if_statement "if (param_3 < 0) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(3,param_1)" (identifier "FUN_00108083") (argument_list "(3,param_1)" (( "(") (number_literal "3") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 1;\n        DAT_00152548 = 0x17;\n        FUN_0010ac09(param_4,2,1);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (param_3 == 0) {\n        DAT_00152538 = 1;\n        DAT_00152548 = 0x17;\n        FUN_0010ac09(param_4,2,1);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" ({ "{") (if_statement "if (param_3 == 0) {\n        DAT_00152538 = 1;\n        DAT_00152548 = 0x17;\n        FUN_0010ac09(param_4,2,1);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        DAT_00152538 = 1;\n        DAT_00152548 = 0x17;\n        FUN_0010ac09(param_4,2,1);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }" ({ "{") (expression_statement "DAT_00152538 = 1;" (assignment_expression "DAT_00152538 = 1" (identifier "DAT_00152538") (= "=") (number_literal "1")) (; ";")) (expression_statement "DAT_00152548 = 0x17;" (assignment_expression "DAT_00152548 = 0x17" (identifier "DAT_00152548") (= "=") (number_literal "0x17")) (; ";")) (expression_statement "FUN_0010ac09(param_4,2,1);" (call_expression "FUN_0010ac09(param_4,2,1)" (identifier "FUN_0010ac09") (argument_list "(param_4,2,1)" (( "(") (identifier "param_4") (, ",") (number_literal "2") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "FUN_0010ac09(param_4,1,DAT_00152548);" (call_expression "FUN_0010ac09(param_4,1,DAT_00152548)" (identifier "FUN_0010ac09") (argument_list "(param_4,1,DAT_00152548)" (( "(") (identifier "param_4") (, ",") (number_literal "1") (, ",") (identifier "DAT_00152548") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "lVar10 = 8;" (assignment_expression "lVar10 = 8" (identifier "lVar10") (= "=") (number_literal "8")) (; ";")) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" (identifier "pbVar11") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar12 = (byte *)"-rlogin";" (assignment_expression "pbVar12 = (byte *)"-rlogin"" (identifier "pbVar12") (= "=") (cast_expression "(byte *)"-rlogin"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""-rlogin"" (" """) (string_content "-rlogin") (" """)))) (; ";")) (do_statement "do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);" (do "do") (compound_statement "{\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  }" ({ "{") (if_statement "if (lVar10 == 0) break;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar16 = *pbVar11 < *pbVar12;" (assignment_expression "bVar16 = *pbVar11 < *pbVar12" (identifier "bVar16") (= "=") (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" (identifier "bVar15") (= "=") (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" (identifier "bVar18") (= "=") (false "false")) (; ";")) (expression_statement "bVar15 = (!bVar16 && !bVar15) == bVar16;" (assignment_expression "bVar15 = (!bVar16 && !bVar15) == bVar16" (identifier "bVar15") (= "=") (binary_expression "(!bVar16 && !bVar15) == bVar16" (parenthesized_expression "(!bVar16 && !bVar15)" (( "(") (binary_expression "!bVar16 && !bVar15" (unary_expression "!bVar16" (! "!") (identifier "bVar16")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar16"))) (; ";")) (if_statement "if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 2;\n        DAT_00152548 = 0x201;\n        FUN_0010ac09(param_4,2,2);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }" (if "if") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (compound_statement "{\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 2;\n        DAT_00152548 = 0x201;\n        FUN_0010ac09(param_4,2,2);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    return 1;\n  }" ({ "{") (if_statement "if (param_3 < 0) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(3,param_1)" (identifier "FUN_00108083") (argument_list "(3,param_1)" (( "(") (number_literal "3") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n      if (param_3 == 0) {\n        DAT_00152538 = 2;\n        DAT_00152548 = 0x201;\n        FUN_0010ac09(param_4,2,2);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (param_3 == 0) {\n        DAT_00152538 = 2;\n        DAT_00152548 = 0x201;\n        FUN_0010ac09(param_4,2,2);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" ({ "{") (if_statement "if (param_3 == 0) {\n        DAT_00152538 = 2;\n        DAT_00152548 = 0x201;\n        FUN_0010ac09(param_4,2,2);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        DAT_00152538 = 2;\n        DAT_00152548 = 0x201;\n        FUN_0010ac09(param_4,2,2);\n        FUN_0010ac09(param_4,1,DAT_00152548);\n        return 1;\n      }" ({ "{") (expression_statement "DAT_00152538 = 2;" (assignment_expression "DAT_00152538 = 2" (identifier "DAT_00152538") (= "=") (number_literal "2")) (; ";")) (expression_statement "DAT_00152548 = 0x201;" (assignment_expression "DAT_00152548 = 0x201" (identifier "DAT_00152548") (= "=") (number_literal "0x201")) (; ";")) (expression_statement "FUN_0010ac09(param_4,2,2);" (call_expression "FUN_0010ac09(param_4,2,2)" (identifier "FUN_0010ac09") (argument_list "(param_4,2,2)" (( "(") (identifier "param_4") (, ",") (number_literal "2") (, ",") (number_literal "2") () ")"))) (; ";")) (expression_statement "FUN_0010ac09(param_4,1,DAT_00152548);" (call_expression "FUN_0010ac09(param_4,1,DAT_00152548)" (identifier "FUN_0010ac09") (argument_list "(param_4,1,DAT_00152548)" (( "(") (identifier "param_4") (, ",") (number_literal "1") (, ",") (identifier "DAT_00152548") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "lVar10 = 5;" (assignment_expression "lVar10 = 5" (identifier "lVar10") (= "=") (number_literal "5")) (; ";")) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" (identifier "pbVar11") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar12 = &DAT_0013b287;" (assignment_expression "pbVar12 = &DAT_0013b287" (identifier "pbVar12") (= "=") (pointer_expression "&DAT_0013b287" (& "&") (identifier "DAT_0013b287"))) (; ";")) (do_statement "do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar15);" (do "do") (compound_statement "{\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  }" ({ "{") (if_statement "if (lVar10 == 0) break;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar18 = *pbVar11 < *pbVar12;" (assignment_expression "bVar18 = *pbVar11 < *pbVar12" (identifier "bVar18") (= "=") (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" (identifier "bVar15") (= "=") (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" (identifier "bVar16") (= "=") (false "false")) (; ";")) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" (identifier "bVar15") (= "=") (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" (( "(") (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" (! "!") (identifier "bVar18")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar18"))) (; ";")) (if_statement "if (bVar15) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    uVar17 = 0;\n    uVar19 = param_3 == 0;\n    if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    DAT_00152538 = 0;\n    FUN_0010ac09(param_4,2,0);\n    lVar10 = 8;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    bVar15 = false;\n    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (bVar18) {\n      iVar3 = FUN_00108083(3,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 1;\n      }\nLAB_0010858a:\n      uVar19 = 0;\n      DAT_00152538 = 4;\n      FUN_0010ac09(param_4,2,4);\n      uVar5 = FUN_0010a6d3(param_4,0);\n      FUN_0010ad3a(param_4,0x39,uVar5);\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n    }\n    else {\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n    }\n    uVar5 = 1;\n    if (bVar15) {\nLAB_00108687:\n      DAT_0015254c = DAT_0015254c | 1;\n      bVar15 = DAT_0015254c == 0;\n      uVar5 = 1;\n    }\n  }\n  else {\n    lVar10 = 8;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      uVar17 = param_3 == 0;\n      if (!(bool)uVar17) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_0010858a;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b294;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108687;\n    }\n    uVar5 = 0;\n  }" (if "if") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (compound_statement "{\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    uVar17 = 0;\n    uVar19 = param_3 == 0;\n    if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\n    DAT_00152538 = 0;\n    FUN_0010ac09(param_4,2,0);\n    lVar10 = 8;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    bVar15 = false;\n    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (bVar18) {\n      iVar3 = FUN_00108083(3,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 1;\n      }\nLAB_0010858a:\n      uVar19 = 0;\n      DAT_00152538 = 4;\n      FUN_0010ac09(param_4,2,4);\n      uVar5 = FUN_0010a6d3(param_4,0);\n      FUN_0010ad3a(param_4,0x39,uVar5);\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n    }\n    else {\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n    }\n    uVar5 = 1;\n    if (bVar15) {\nLAB_00108687:\n      DAT_0015254c = DAT_0015254c | 1;\n      bVar15 = DAT_0015254c == 0;\n      uVar5 = 1;\n    }\n  }" ({ "{") (if_statement "if (param_3 < 0) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(3,param_1)" (identifier "FUN_00108083") (argument_list "(3,param_1)" (( "(") (number_literal "3") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar19 = param_3 == 0;" (assignment_expression "uVar19 = param_3 == 0" (identifier "uVar19") (= "=") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0"))) (; ";")) (if_statement "if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" (if "if") (parenthesized_expression "(!(bool)uVar19)" (( "(") (unary_expression "!(bool)uVar19" (! "!") (cast_expression "(bool)uVar19" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar19"))) () ")")) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" ({ "{") (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "DAT_00152538 = 0;" (assignment_expression "DAT_00152538 = 0" (identifier "DAT_00152538") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_0010ac09(param_4,2,0);" (call_expression "FUN_0010ac09(param_4,2,0)" (identifier "FUN_0010ac09") (argument_list "(param_4,2,0)" (( "(") (identifier "param_4") (, ",") (number_literal "2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "lVar10 = 8;" (assignment_expression "lVar10 = 8" (identifier "lVar10") (= "=") (number_literal "8")) (; ";")) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" (identifier "pbVar11") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar12 = (byte *)"-serial";" (assignment_expression "pbVar12 = (byte *)"-serial"" (identifier "pbVar12") (= "=") (cast_expression "(byte *)"-serial"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""-serial"" (" """) (string_content "-serial") (" """)))) (; ";")) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);" (do "do") (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    }" ({ "{") (if_statement "if (lVar10 == 0) break;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar17 = *pbVar11 < *pbVar12;" (assignment_expression "uVar17 = *pbVar11 < *pbVar12" (identifier "uVar17") (= "=") (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "uVar19 = *pbVar11 == *pbVar12;" (assignment_expression "uVar19 = *pbVar11 == *pbVar12" (identifier "uVar19") (= "=") (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar19)" (( "(") (cast_expression "(bool)uVar19" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar19")) () ")")) (; ";")) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" (identifier "bVar15") (= "=") (false "false")) (; ";")) (expression_statement "bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;" (assignment_expression "bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17" (identifier "bVar18") (= "=") (binary_expression "(!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17" (parenthesized_expression "(!(bool)uVar17 && !(bool)uVar19)" (( "(") (binary_expression "!(bool)uVar17 && !(bool)uVar19" (unary_expression "!(bool)uVar17" (! "!") (cast_expression "(bool)uVar17" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar17"))) (&& "&&") (unary_expression "!(bool)uVar19" (! "!") (cast_expression "(bool)uVar19" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar19")))) () ")")) (== "==") (cast_expression "(bool)uVar17" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar17")))) (; ";")) (if_statement "if (bVar18) {\n      iVar3 = FUN_00108083(3,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 1;\n      }\nLAB_0010858a:\n      uVar19 = 0;\n      DAT_00152538 = 4;\n      FUN_0010ac09(param_4,2,4);\n      uVar5 = FUN_0010a6d3(param_4,0);\n      FUN_0010ad3a(param_4,0x39,uVar5);\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n    }\n    else {\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n    }" (if "if") (parenthesized_expression "(bVar18)" (( "(") (identifier "bVar18") () ")")) (compound_statement "{\n      iVar3 = FUN_00108083(3,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 1;\n      }\nLAB_0010858a:\n      uVar19 = 0;\n      DAT_00152538 = 4;\n      FUN_0010ac09(param_4,2,4);\n      uVar5 = FUN_0010a6d3(param_4,0);\n      FUN_0010ad3a(param_4,0x39,uVar5);\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n    }" ({ "{") (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(3,param_1)" (identifier "FUN_00108083") (argument_list "(3,param_1)" (( "(") (number_literal "3") (, ",") (identifier "param_1") () ")")))) (; ";")) (expression_statement "uVar17 = iVar3 == 0;" (assignment_expression "uVar17 = iVar3 == 0" (identifier "uVar17") (= "=") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0"))) (; ";")) (if_statement "if (!(bool)uVar17) {\n        return 1;\n      }" (if "if") (parenthesized_expression "(!(bool)uVar17)" (( "(") (unary_expression "!(bool)uVar17" (! "!") (cast_expression "(bool)uVar17" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar17"))) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (labeled_statement "LAB_0010858a:\n      uVar19 = 0;" (statement_identifier "LAB_0010858a") (: ":") (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" (identifier "uVar19") (= "=") (number_literal "0")) (; ";"))) (expression_statement "DAT_00152538 = 4;" (assignment_expression "DAT_00152538 = 4" (identifier "DAT_00152538") (= "=") (number_literal "4")) (; ";")) (expression_statement "FUN_0010ac09(param_4,2,4);" (call_expression "FUN_0010ac09(param_4,2,4)" (identifier "FUN_0010ac09") (argument_list "(param_4,2,4)" (( "(") (identifier "param_4") (, ",") (number_literal "2") (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "uVar5 = FUN_0010a6d3(param_4,0);" (assignment_expression "uVar5 = FUN_0010a6d3(param_4,0)" (identifier "uVar5") (= "=") (call_expression "FUN_0010a6d3(param_4,0)" (identifier "FUN_0010a6d3") (argument_list "(param_4,0)" (( "(") (identifier "param_4") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "FUN_0010ad3a(param_4,0x39,uVar5);" (call_expression "FUN_0010ad3a(param_4,0x39,uVar5)" (identifier "FUN_0010ad3a") (argument_list "(param_4,0x39,uVar5)" (( "(") (identifier "param_4") (, ",") (number_literal "0x39") (, ",") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" (identifier "lVar10") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" (identifier "pbVar11") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar12 = &DAT_0013b294;" (assignment_expression "pbVar12 = &DAT_0013b294" (identifier "pbVar12") (= "=") (pointer_expression "&DAT_0013b294" (& "&") (identifier "DAT_0013b294"))) (; ";")) (do_statement "do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);" (do "do") (compound_statement "{\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      }" ({ "{") (if_statement "if (lVar10 == 0) break;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar19 = *pbVar11 < *pbVar12;" (assignment_expression "uVar19 = *pbVar11 < *pbVar12" (identifier "uVar19") (= "=") (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "uVar17 = *pbVar11 == *pbVar12;" (assignment_expression "uVar17 = *pbVar11 == *pbVar12" (identifier "uVar17") (= "=") (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar17)" (( "(") (cast_expression "(bool)uVar17" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar17")) () ")")) (; ";")) (expression_statement "bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;" (assignment_expression "bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19" (identifier "bVar15") (= "=") (binary_expression "(!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19" (parenthesized_expression "(!(bool)uVar19 && !(bool)uVar17)" (( "(") (binary_expression "!(bool)uVar19 && !(bool)uVar17" (unary_expression "!(bool)uVar19" (! "!") (cast_expression "(bool)uVar19" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar19"))) (&& "&&") (unary_expression "!(bool)uVar17" (! "!") (cast_expression "(bool)uVar17" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar17")))) () ")")) (== "==") (cast_expression "(bool)uVar19" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar19")))) (; ";")) (} "}")) (else_clause "else {\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n    }" (else "else") (compound_statement "{\n      lVar10 = 3;\n      pbVar11 = param_1;\n      pbVar12 = &DAT_0013b294;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n    }" ({ "{") (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" (identifier "lVar10") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" (identifier "pbVar11") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar12 = &DAT_0013b294;" (assignment_expression "pbVar12 = &DAT_0013b294" (identifier "pbVar12") (= "=") (pointer_expression "&DAT_0013b294" (& "&") (identifier "DAT_0013b294"))) (; ";")) (do_statement "do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);" (do "do") (compound_statement "{\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      }" ({ "{") (if_statement "if (lVar10 == 0) break;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar15 = *pbVar11 < *pbVar12;" (assignment_expression "bVar15 = *pbVar11 < *pbVar12" (identifier "bVar15") (= "=") (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar18 = *pbVar11 == *pbVar12;" (assignment_expression "bVar18 = *pbVar11 == *pbVar12" (identifier "bVar18") (= "=") (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar18)" (( "(") (identifier "bVar18") () ")")) (; ";")) (expression_statement "bVar15 = (!bVar15 && !bVar18) == bVar15;" (assignment_expression "bVar15 = (!bVar15 && !bVar18) == bVar15" (identifier "bVar15") (= "=") (binary_expression "(!bVar15 && !bVar18) == bVar15" (parenthesized_expression "(!bVar15 && !bVar18)" (( "(") (binary_expression "!bVar15 && !bVar18" (unary_expression "!bVar15" (! "!") (identifier "bVar15")) (&& "&&") (unary_expression "!bVar18" (! "!") (identifier "bVar18"))) () ")")) (== "==") (identifier "bVar15"))) (; ";")) (} "}")))) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (if_statement "if (bVar15) {\nLAB_00108687:\n      DAT_0015254c = DAT_0015254c | 1;\n      bVar15 = DAT_0015254c == 0;\n      uVar5 = 1;\n    }" (if "if") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (compound_statement "{\nLAB_00108687:\n      DAT_0015254c = DAT_0015254c | 1;\n      bVar15 = DAT_0015254c == 0;\n      uVar5 = 1;\n    }" ({ "{") (labeled_statement "LAB_00108687:\n      DAT_0015254c = DAT_0015254c | 1;" (statement_identifier "LAB_00108687") (: ":") (expression_statement "DAT_0015254c = DAT_0015254c | 1;" (assignment_expression "DAT_0015254c = DAT_0015254c | 1" (identifier "DAT_0015254c") (= "=") (binary_expression "DAT_0015254c | 1" (identifier "DAT_0015254c") (| "|") (number_literal "1"))) (; ";"))) (expression_statement "bVar15 = DAT_0015254c == 0;" (assignment_expression "bVar15 = DAT_0015254c == 0" (identifier "bVar15") (= "=") (binary_expression "DAT_0015254c == 0" (identifier "DAT_0015254c") (== "==") (number_literal "0"))) (; ";")) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    lVar10 = 8;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      uVar17 = param_3 == 0;\n      if (!(bool)uVar17) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_0010858a;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b294;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108687;\n    }\n    uVar5 = 0;\n  }" (else "else") (compound_statement "{\n    lVar10 = 8;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      uVar17 = param_3 == 0;\n      if (!(bool)uVar17) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_0010858a;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b294;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108687;\n    }\n    uVar5 = 0;\n  }" ({ "{") (expression_statement "lVar10 = 8;" (assignment_expression "lVar10 = 8" (identifier "lVar10") (= "=") (number_literal "8")) (; ";")) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" (identifier "pbVar11") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar12 = (byte *)"-serial";" (assignment_expression "pbVar12 = (byte *)"-serial"" (identifier "pbVar12") (= "=") (cast_expression "(byte *)"-serial"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""-serial"" (" """) (string_content "-serial") (" """)))) (; ";")) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);" (do "do") (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    }" ({ "{") (if_statement "if (lVar10 == 0) break;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar16 = *pbVar11 < *pbVar12;" (assignment_expression "bVar16 = *pbVar11 < *pbVar12" (identifier "bVar16") (= "=") (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" (identifier "bVar15") (= "=") (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" (identifier "bVar18") (= "=") (false "false")) (; ";")) (expression_statement "bVar15 = (!bVar16 && !bVar15) == bVar16;" (assignment_expression "bVar15 = (!bVar16 && !bVar15) == bVar16" (identifier "bVar15") (= "=") (binary_expression "(!bVar16 && !bVar15) == bVar16" (parenthesized_expression "(!bVar16 && !bVar15)" (( "(") (binary_expression "!bVar16 && !bVar15" (unary_expression "!bVar16" (! "!") (identifier "bVar16")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar16"))) (; ";")) (if_statement "if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      uVar17 = param_3 == 0;\n      if (!(bool)uVar17) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_0010858a;\n    }" (if "if") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      uVar17 = param_3 == 0;\n      if (!(bool)uVar17) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_0010858a;\n    }" ({ "{") (if_statement "if (param_3 < 0) {\n        return 1;\n      }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(3,param_1)" (identifier "FUN_00108083") (argument_list "(3,param_1)" (( "(") (number_literal "3") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "uVar17 = param_3 == 0;" (assignment_expression "uVar17 = param_3 == 0" (identifier "uVar17") (= "=") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0"))) (; ";")) (if_statement "if (!(bool)uVar17) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }" (if "if") (parenthesized_expression "(!(bool)uVar17)" (( "(") (unary_expression "!(bool)uVar17" (! "!") (cast_expression "(bool)uVar17" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar17"))) () ")")) (compound_statement "{\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }" ({ "{") (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (goto_statement "goto LAB_0010858a;" (goto "goto") (statement_identifier "LAB_0010858a") (; ";")) (} "}"))) (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" (identifier "lVar10") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" (identifier "pbVar11") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar12 = &DAT_0013b294;" (assignment_expression "pbVar12 = &DAT_0013b294" (identifier "pbVar12") (= "=") (pointer_expression "&DAT_0013b294" (& "&") (identifier "DAT_0013b294"))) (; ";")) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar15);" (do "do") (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    }" ({ "{") (if_statement "if (lVar10 == 0) break;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar18 = *pbVar11 < *pbVar12;" (assignment_expression "bVar18 = *pbVar11 < *pbVar12" (identifier "bVar18") (= "=") (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" (identifier "bVar15") (= "=") (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" (identifier "bVar15") (= "=") (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" (( "(") (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" (! "!") (identifier "bVar18")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar18"))) (; ";")) (if_statement "if (bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108687;\n    }" (if "if") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108687;\n    }" ({ "{") (if_statement "if (param_3 < 0) {\n        return 1;\n      }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (goto_statement "goto LAB_00108687;" (goto "goto") (statement_identifier "LAB_00108687") (; ";")) (} "}"))) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" (identifier "bVar18") (= "=") (false "false")) (; ";")) (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" (identifier "lVar10") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" (identifier "pbVar11") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar12 = (byte *)0x1440df;" (assignment_expression "pbVar12 = (byte *)0x1440df" (identifier "pbVar12") (= "=") (cast_expression "(byte *)0x1440df" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1440df"))) (; ";")) (do_statement "do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);" (do "do") (compound_statement "{\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  }" ({ "{") (if_statement "if (lVar10 == 0) break;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar18 = *pbVar11 < *pbVar12;" (assignment_expression "bVar18 = *pbVar11 < *pbVar12" (identifier "bVar18") (= "=") (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" (identifier "bVar15") (= "=") (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" (identifier "bVar16") (= "=") (false "false")) (; ";")) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" (identifier "bVar15") (= "=") (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" (( "(") (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" (! "!") (identifier "bVar18")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar18"))) (; ";")) (if_statement "if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    uVar17 = 0;\n    uVar19 = param_3 == 0;\n    if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    FUN_0010ad3a(param_4,0x34,param_2);\n    lVar10 = 9;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-loghost";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    bVar15 = false;\n    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (bVar18) {\n      iVar3 = FUN_00108083(2,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 2;\n      }\nLAB_0010a0b4:\n      uVar19 = 0;\n      FUN_0010ad3a(param_4,9,param_2);\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      uVar5 = 2;\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n      if (bVar15) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }\n    }\n    else {\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      uVar5 = 2;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (bVar15) goto LAB_00108738;\n    }\nLAB_0010884b:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2a9;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (!bVar15) goto LAB_00108865;\n    goto LAB_0010889d;\n  }" (if "if") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (compound_statement "{\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    uVar17 = 0;\n    uVar19 = param_3 == 0;\n    if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    FUN_0010ad3a(param_4,0x34,param_2);\n    lVar10 = 9;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)"-loghost";\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    bVar15 = false;\n    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (bVar18) {\n      iVar3 = FUN_00108083(2,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 2;\n      }\nLAB_0010a0b4:\n      uVar19 = 0;\n      FUN_0010ad3a(param_4,9,param_2);\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      uVar5 = 2;\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n      if (bVar15) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }\n    }\n    else {\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      uVar5 = 2;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (bVar15) goto LAB_00108738;\n    }\nLAB_0010884b:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2a9;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (!bVar15) goto LAB_00108865;\n    goto LAB_0010889d;\n  }" ({ "{") (if_statement "if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }" (if "if") (parenthesized_expression "(param_2 == (char *)0x0)" (( "(") (binary_expression "param_2 == (char *)0x0" (identifier "param_2") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      return 0xfffffffe;\n    }" ({ "{") (return_statement "return 0xfffffffe;" (return "return") (number_literal "0xfffffffe") (; ";")) (} "}"))) (if_statement "if (param_3 < 0) {\n      return 2;\n    }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      return 2;\n    }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(2,param_1)" (identifier "FUN_00108083") (argument_list "(2,param_1)" (( "(") (number_literal "2") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      return 2;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return 2;\n    }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar19 = param_3 == 0;" (assignment_expression "uVar19 = param_3 == 0" (identifier "uVar19") (= "=") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0"))) (; ";")) (if_statement "if (!(bool)uVar19) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }" (if "if") (parenthesized_expression "(!(bool)uVar19)" (( "(") (unary_expression "!(bool)uVar19" (! "!") (cast_expression "(bool)uVar19" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar19"))) () ")")) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }" ({ "{") (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (expression_statement "FUN_0010ad3a(param_4,0x34,param_2);" (call_expression "FUN_0010ad3a(param_4,0x34,param_2)" (identifier "FUN_0010ad3a") (argument_list "(param_4,0x34,param_2)" (( "(") (identifier "param_4") (, ",") (number_literal "0x34") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "lVar10 = 9;" (assignment_expression "lVar10 = 9" (identifier "lVar10") (= "=") (number_literal "9")) (; ";")) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" (identifier "pbVar11") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar12 = (byte *)"-loghost";" (assignment_expression "pbVar12 = (byte *)"-loghost"" (identifier "pbVar12") (= "=") (cast_expression "(byte *)"-loghost"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""-loghost"" (" """) (string_content "-loghost") (" """)))) (; ";")) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);" (do "do") (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    }" ({ "{") (if_statement "if (lVar10 == 0) break;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar17 = *pbVar11 < *pbVar12;" (assignment_expression "uVar17 = *pbVar11 < *pbVar12" (identifier "uVar17") (= "=") (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "uVar19 = *pbVar11 == *pbVar12;" (assignment_expression "uVar19 = *pbVar11 == *pbVar12" (identifier "uVar19") (= "=") (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar19)" (( "(") (cast_expression "(bool)uVar19" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar19")) () ")")) (; ";")) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" (identifier "bVar15") (= "=") (false "false")) (; ";")) (expression_statement "bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;" (assignment_expression "bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17" (identifier "bVar18") (= "=") (binary_expression "(!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17" (parenthesized_expression "(!(bool)uVar17 && !(bool)uVar19)" (( "(") (binary_expression "!(bool)uVar17 && !(bool)uVar19" (unary_expression "!(bool)uVar17" (! "!") (cast_expression "(bool)uVar17" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar17"))) (&& "&&") (unary_expression "!(bool)uVar19" (! "!") (cast_expression "(bool)uVar19" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar19")))) () ")")) (== "==") (cast_expression "(bool)uVar17" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar17")))) (; ";")) (if_statement "if (bVar18) {\n      iVar3 = FUN_00108083(2,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 2;\n      }\nLAB_0010a0b4:\n      uVar19 = 0;\n      FUN_0010ad3a(param_4,9,param_2);\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      uVar5 = 2;\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n      if (bVar15) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }\n    }\n    else {\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      uVar5 = 2;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (bVar15) goto LAB_00108738;\n    }" (if "if") (parenthesized_expression "(bVar18)" (( "(") (identifier "bVar18") () ")")) (compound_statement "{\n      iVar3 = FUN_00108083(2,param_1);\n      uVar17 = iVar3 == 0;\n      if (!(bool)uVar17) {\n        return 2;\n      }\nLAB_0010a0b4:\n      uVar19 = 0;\n      FUN_0010ad3a(param_4,9,param_2);\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);\n      uVar5 = 2;\n      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;\n      if (bVar15) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }\n    }" ({ "{") (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(2,param_1)" (identifier "FUN_00108083") (argument_list "(2,param_1)" (( "(") (number_literal "2") (, ",") (identifier "param_1") () ")")))) (; ";")) (expression_statement "uVar17 = iVar3 == 0;" (assignment_expression "uVar17 = iVar3 == 0" (identifier "uVar17") (= "=") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0"))) (; ";")) (if_statement "if (!(bool)uVar17) {\n        return 2;\n      }" (if "if") (parenthesized_expression "(!(bool)uVar17)" (( "(") (unary_expression "!(bool)uVar17" (! "!") (cast_expression "(bool)uVar17" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar17"))) () ")")) (compound_statement "{\n        return 2;\n      }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (labeled_statement "LAB_0010a0b4:\n      uVar19 = 0;" (statement_identifier "LAB_0010a0b4") (: ":") (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" (identifier "uVar19") (= "=") (number_literal "0")) (; ";"))) (expression_statement "FUN_0010ad3a(param_4,9,param_2);" (call_expression "FUN_0010ad3a(param_4,9,param_2)" (identifier "FUN_0010ad3a") (argument_list "(param_4,9,param_2)" (( "(") (identifier "param_4") (, ",") (number_literal "9") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "lVar10 = 9;" (assignment_expression "lVar10 = 9" (identifier "lVar10") (= "=") (number_literal "9")) (; ";")) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" (identifier "pbVar11") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar12 = (byte *)"-hostkey";" (assignment_expression "pbVar12 = (byte *)"-hostkey"" (identifier "pbVar12") (= "=") (cast_expression "(byte *)"-hostkey"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""-hostkey"" (" """) (string_content "-hostkey") (" """)))) (; ";")) (do_statement "do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar17);" (do "do") (compound_statement "{\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar19 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      }" ({ "{") (if_statement "if (lVar10 == 0) break;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar19 = *pbVar11 < *pbVar12;" (assignment_expression "uVar19 = *pbVar11 < *pbVar12" (identifier "uVar19") (= "=") (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "uVar17 = *pbVar11 == *pbVar12;" (assignment_expression "uVar17 = *pbVar11 == *pbVar12" (identifier "uVar17") (= "=") (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar17)" (( "(") (cast_expression "(bool)uVar17" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar17")) () ")")) (; ";")) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" (identifier "uVar5") (= "=") (number_literal "2")) (; ";")) (expression_statement "bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;" (assignment_expression "bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19" (identifier "bVar15") (= "=") (binary_expression "(!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19" (parenthesized_expression "(!(bool)uVar19 && !(bool)uVar17)" (( "(") (binary_expression "!(bool)uVar19 && !(bool)uVar17" (unary_expression "!(bool)uVar19" (! "!") (cast_expression "(bool)uVar19" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar19"))) (&& "&&") (unary_expression "!(bool)uVar17" (! "!") (cast_expression "(bool)uVar17" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar17")))) () ")")) (== "==") (cast_expression "(bool)uVar19" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar19")))) (; ";")) (if_statement "if (bVar15) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }" (if "if") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (compound_statement "{\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        goto LAB_0010a103;\n      }" ({ "{") (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(2,param_1)" (identifier "FUN_00108083") (argument_list "(2,param_1)" (( "(") (number_literal "2") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n          return 2;\n        }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          return 2;\n        }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (goto_statement "goto LAB_0010a103;" (goto "goto") (statement_identifier "LAB_0010a103") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      uVar5 = 2;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (bVar15) goto LAB_00108738;\n    }" (else "else") (compound_statement "{\n      lVar10 = 9;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);\n      uVar5 = 2;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (bVar15) goto LAB_00108738;\n    }" ({ "{") (expression_statement "lVar10 = 9;" (assignment_expression "lVar10 = 9" (identifier "lVar10") (= "=") (number_literal "9")) (; ";")) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" (identifier "pbVar11") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar12 = (byte *)"-hostkey";" (assignment_expression "pbVar12 = (byte *)"-hostkey"" (identifier "pbVar12") (= "=") (cast_expression "(byte *)"-hostkey"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""-hostkey"" (" """) (string_content "-hostkey") (" """)))) (; ";")) (do_statement "do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      } while (bVar18);" (do "do") (compound_statement "{\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        bVar15 = *pbVar11 < *pbVar12;\n        bVar18 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n      }" ({ "{") (if_statement "if (lVar10 == 0) break;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar15 = *pbVar11 < *pbVar12;" (assignment_expression "bVar15 = *pbVar11 < *pbVar12" (identifier "bVar15") (= "=") (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar18 = *pbVar11 == *pbVar12;" (assignment_expression "bVar18 = *pbVar11 == *pbVar12" (identifier "bVar18") (= "=") (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar18)" (( "(") (identifier "bVar18") () ")")) (; ";")) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" (identifier "uVar5") (= "=") (number_literal "2")) (; ";")) (expression_statement "bVar15 = (!bVar15 && !bVar18) == bVar15;" (assignment_expression "bVar15 = (!bVar15 && !bVar18) == bVar15" (identifier "bVar15") (= "=") (binary_expression "(!bVar15 && !bVar18) == bVar15" (parenthesized_expression "(!bVar15 && !bVar18)" (( "(") (binary_expression "!bVar15 && !bVar18" (unary_expression "!bVar15" (! "!") (identifier "bVar15")) (&& "&&") (unary_expression "!bVar18" (! "!") (identifier "bVar18"))) () ")")) (== "==") (identifier "bVar15"))) (; ";")) (if_statement "if (bVar15) goto LAB_00108738;" (if "if") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (goto_statement "goto LAB_00108738;" (goto "goto") (statement_identifier "LAB_00108738") (; ";"))) (} "}")))) (labeled_statement "LAB_0010884b:\n    bVar18 = false;" (statement_identifier "LAB_0010884b") (: ":") (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" (identifier "bVar18") (= "=") (false "false")) (; ";"))) (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" (identifier "lVar10") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" (identifier "pbVar11") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar12 = &DAT_0013b2a9;" (assignment_expression "pbVar12 = &DAT_0013b2a9" (identifier "pbVar12") (= "=") (pointer_expression "&DAT_0013b2a9" (& "&") (identifier "DAT_0013b2a9"))) (; ";")) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);" (do "do") (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    }" ({ "{") (if_statement "if (lVar10 == 0) break;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar18 = *pbVar11 < *pbVar12;" (assignment_expression "bVar18 = *pbVar11 < *pbVar12" (identifier "bVar18") (= "=") (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" (identifier "bVar15") (= "=") (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" (identifier "bVar15") (= "=") (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" (( "(") (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" (! "!") (identifier "bVar18")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar18"))) (; ";")) (if_statement "if (!bVar15) goto LAB_00108865;" (if "if") (parenthesized_expression "(!bVar15)" (( "(") (unary_expression "!bVar15" (! "!") (identifier "bVar15")) () ")")) (goto_statement "goto LAB_00108865;" (goto "goto") (statement_identifier "LAB_00108865") (; ";"))) (goto_statement "goto LAB_0010889d;" (goto "goto") (statement_identifier "LAB_0010889d") (; ";")) (} "}"))) (expression_statement "lVar10 = 9;" (assignment_expression "lVar10 = 9" (identifier "lVar10") (= "=") (number_literal "9")) (; ";")) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" (identifier "pbVar11") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar12 = (byte *)"-loghost";" (assignment_expression "pbVar12 = (byte *)"-loghost"" (identifier "pbVar12") (= "=") (cast_expression "(byte *)"-loghost"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""-loghost"" (" """) (string_content "-loghost") (" """)))) (; ";")) (do_statement "do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);" (do "do") (compound_statement "{\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  }" ({ "{") (if_statement "if (lVar10 == 0) break;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar16 = *pbVar11 < *pbVar12;" (assignment_expression "bVar16 = *pbVar11 < *pbVar12" (identifier "bVar16") (= "=") (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" (identifier "bVar15") (= "=") (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" (identifier "bVar18") (= "=") (false "false")) (; ";")) (expression_statement "bVar15 = (!bVar16 && !bVar15) == bVar16;" (assignment_expression "bVar15 = (!bVar16 && !bVar15) == bVar16" (identifier "bVar15") (= "=") (binary_expression "(!bVar16 && !bVar15) == bVar16" (parenthesized_expression "(!bVar16 && !bVar15)" (( "(") (binary_expression "!bVar16 && !bVar15" (unary_expression "!bVar16" (! "!") (identifier "bVar16")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar16"))) (; ";")) (if_statement "if (bVar15) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    uVar17 = param_3 == 0;\n    if (!(bool)uVar17) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    goto LAB_0010a0b4;\n  }" (if "if") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (compound_statement "{\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    uVar17 = param_3 == 0;\n    if (!(bool)uVar17) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    goto LAB_0010a0b4;\n  }" ({ "{") (if_statement "if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }" (if "if") (parenthesized_expression "(param_2 == (char *)0x0)" (( "(") (binary_expression "param_2 == (char *)0x0" (identifier "param_2") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      return 0xfffffffe;\n    }" ({ "{") (return_statement "return 0xfffffffe;" (return "return") (number_literal "0xfffffffe") (; ";")) (} "}"))) (if_statement "if (param_3 < 0) {\n      return 2;\n    }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      return 2;\n    }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(2,param_1)" (identifier "FUN_00108083") (argument_list "(2,param_1)" (( "(") (number_literal "2") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      return 2;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return 2;\n    }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (expression_statement "uVar17 = param_3 == 0;" (assignment_expression "uVar17 = param_3 == 0" (identifier "uVar17") (= "=") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0"))) (; ";")) (if_statement "if (!(bool)uVar17) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }" (if "if") (parenthesized_expression "(!(bool)uVar17)" (( "(") (unary_expression "!(bool)uVar17" (! "!") (cast_expression "(bool)uVar17" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar17"))) () ")")) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }" ({ "{") (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (goto_statement "goto LAB_0010a0b4;" (goto "goto") (statement_identifier "LAB_0010a0b4") (; ";")) (} "}"))) (expression_statement "lVar10 = 9;" (assignment_expression "lVar10 = 9" (identifier "lVar10") (= "=") (number_literal "9")) (; ";")) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" (identifier "pbVar11") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar12 = (byte *)"-hostkey";" (assignment_expression "pbVar12 = (byte *)"-hostkey"" (identifier "pbVar12") (= "=") (cast_expression "(byte *)"-hostkey"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""-hostkey"" (" """) (string_content "-hostkey") (" """)))) (; ";")) (do_statement "do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while (bVar15);" (do "do") (compound_statement "{\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    bVar18 = *pbVar11 < *pbVar12;\n    bVar15 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  }" ({ "{") (if_statement "if (lVar10 == 0) break;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar18 = *pbVar11 < *pbVar12;" (assignment_expression "bVar18 = *pbVar11 < *pbVar12" (identifier "bVar18") (= "=") (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" (identifier "bVar15") (= "=") (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" (identifier "bVar15") (= "=") (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" (( "(") (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" (! "!") (identifier "bVar18")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar18"))) (; ";")) (if_statement "if (!bVar15) goto LAB_0010884b;" (if "if") (parenthesized_expression "(!bVar15)" (( "(") (unary_expression "!bVar15" (! "!") (identifier "bVar15")) () ")")) (goto_statement "goto LAB_0010884b;" (goto "goto") (statement_identifier "LAB_0010884b") (; ";"))) (if_statement "if (param_2 == (char *)0x0) {\n    return 0xfffffffe;\n  }" (if "if") (parenthesized_expression "(param_2 == (char *)0x0)" (( "(") (binary_expression "param_2 == (char *)0x0" (identifier "param_2") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    return 0xfffffffe;\n  }" ({ "{") (return_statement "return 0xfffffffe;" (return "return") (number_literal "0xfffffffe") (; ";")) (} "}"))) (if_statement "if (param_3 < 0) {\n    return 2;\n  }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    return 2;\n  }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (labeled_statement "LAB_00108738:\n  iVar3 = FUN_00108083(2,param_1);" (statement_identifier "LAB_00108738") (: ":") (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(2,param_1)" (identifier "FUN_00108083") (argument_list "(2,param_1)" (( "(") (number_literal "2") (, ",") (identifier "param_1") () ")")))) (; ";"))) (if_statement "if (iVar3 != 0) {\n    return 2;\n  }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return 2;\n  }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (if_statement "if (param_3 != 0) {\n    FUN_001080ad(param_1,param_2,0);\n    return 2;\n  }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_001080ad(param_1,param_2,0);\n    return 2;\n  }" ({ "{") (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (labeled_statement "LAB_0010a103:\n  uVar5 = FUN_0010bd5d(param_2);" (statement_identifier "LAB_0010a103") (: ":") (expression_statement "uVar5 = FUN_0010bd5d(param_2);" (assignment_expression "uVar5 = FUN_0010bd5d(param_2)" (identifier "uVar5") (= "=") (call_expression "FUN_0010bd5d(param_2)" (identifier "FUN_0010bd5d") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";"))) (expression_statement "iVar3 = FUN_0010c8a8(uVar5);" (assignment_expression "iVar3 = FUN_0010c8a8(uVar5)" (identifier "iVar3") (= "=") (call_expression "FUN_0010c8a8(uVar5)" (identifier "FUN_0010c8a8") (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")")))) (; ";")) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar19 = iVar3 == 0;" (assignment_expression "uVar19 = iVar3 == 0" (identifier "uVar19") (= "=") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0"))) (; ";")) (if_statement "if ((bool)uVar19) {\n    FUN_00134fb0("\'%s\' is not a valid format for a manual host key specification",param_2);\n    FUN_0010c4d3(uVar5);\n    return 2;\n  }" (if "if") (parenthesized_expression "((bool)uVar19)" (( "(") (cast_expression "(bool)uVar19" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar19")) () ")")) (compound_statement "{\n    FUN_00134fb0("\'%s\' is not a valid format for a manual host key specification",param_2);\n    FUN_0010c4d3(uVar5);\n    return 2;\n  }" ({ "{") (expression_statement "FUN_00134fb0("\'%s\' is not a valid format for a manual host key specification",param_2);" (call_expression "FUN_00134fb0("\'%s\' is not a valid format for a manual host key specification",param_2)" (identifier "FUN_00134fb0") (argument_list "("\'%s\' is not a valid format for a manual host key specification",param_2)" (( "(") (string_literal ""\'%s\' is not a valid format for a manual host key specification"" (" """) (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " is not a valid format for a manual host key specification") (" """)) (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "FUN_0010c4d3(uVar5);" (call_expression "FUN_0010c4d3(uVar5)" (identifier "FUN_0010c4d3") (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (expression_statement "FUN_0010ade1(param_4,0xad,uVar5,&DAT_0013bec9);" (call_expression "FUN_0010ade1(param_4,0xad,uVar5,&DAT_0013bec9)" (identifier "FUN_0010ade1") (argument_list "(param_4,0xad,uVar5,&DAT_0013bec9)" (( "(") (identifier "param_4") (, ",") (number_literal "0xad") (, ",") (identifier "uVar5") (, ",") (pointer_expression "&DAT_0013bec9" (& "&") (identifier "DAT_0013bec9")) () ")"))) (; ";")) (expression_statement "FUN_0010c4d3(uVar5);" (call_expression "FUN_0010c4d3(uVar5)" (identifier "FUN_0010c4d3") (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" (identifier "lVar10") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" (identifier "pbVar11") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar12 = &DAT_0013b2a9;" (assignment_expression "pbVar12 = &DAT_0013b2a9" (identifier "pbVar12") (= "=") (pointer_expression "&DAT_0013b2a9" (& "&") (identifier "DAT_0013b2a9"))) (; ";")) (do_statement "do {\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    uVar17 = *pbVar11 < *pbVar12;\n    uVar19 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  } while ((bool)uVar19);" (do "do") (compound_statement "{\n    if (lVar10 == 0) break;\n    lVar10 = lVar10 + -1;\n    uVar17 = *pbVar11 < *pbVar12;\n    uVar19 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n  }" ({ "{") (if_statement "if (lVar10 == 0) break;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar17 = *pbVar11 < *pbVar12;" (assignment_expression "uVar17 = *pbVar11 < *pbVar12" (identifier "uVar17") (= "=") (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "uVar19 = *pbVar11 == *pbVar12;" (assignment_expression "uVar19 = *pbVar11 == *pbVar12" (identifier "uVar19") (= "=") (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar19)" (( "(") (cast_expression "(bool)uVar19" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar19")) () ")")) (; ";")) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" (identifier "uVar5") (= "=") (number_literal "2")) (; ";")) (expression_statement "bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;" (assignment_expression "bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17" (identifier "bVar15") (= "=") (binary_expression "(!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17" (parenthesized_expression "(!(bool)uVar17 && !(bool)uVar19)" (( "(") (binary_expression "!(bool)uVar17 && !(bool)uVar19" (unary_expression "!(bool)uVar17" (! "!") (cast_expression "(bool)uVar17" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar17"))) (&& "&&") (unary_expression "!(bool)uVar19" (! "!") (cast_expression "(bool)uVar19" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar19")))) () ")")) (== "==") (cast_expression "(bool)uVar17" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar17")))) (; ";")) (if_statement "if (bVar15) {\n    iVar3 = FUN_00108083(3,param_1);\n    bVar15 = iVar3 == 0;\n    if (!bVar15) {\n      return 2;\n    }\nLAB_001088cd:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)0x1440f1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    uVar17 = 0;\n    uVar19 = (!bVar18 && !bVar15) == bVar18;\n    if ((bool)uVar19) {\n      uVar5 = FUN_0010c2a6(&DAT_0013b2b6,param_2);\n      uVar7 = FUN_0010bd5d("D");\n    }\n    else {\n      bVar1 = param_1[1];\n      pcVar6 = (char *)FUN_0010b8c9(param_2,0x3a);\n      pcVar8 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\nLAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);\n        return 2;\n      }\n      do {\n        pcVar14 = pcVar8;\n        pcVar8 = pcVar6;\n        pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);\n      } while (pcVar6 != (char *)0x0);\n      if (pcVar14 == (char *)0x0) goto LAB_00108973;\n      uVar17 = pcVar14 < param_2;\n      uVar19 = (long)pcVar14 - (long)param_2 == 0;\n      uVar5 = FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2);\n      uVar7 = FUN_0010bd5d(pcVar14 + 1);\n    }\n    FUN_0010ade1(param_4,0x9b,uVar5,uVar7);\n    FUN_0010c4d3(uVar5);\n    FUN_0010c4d3(uVar7);\n    lVar10 = 4;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2ba;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    uVar5 = 2;\n    bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (!bVar15) goto LAB_00108a01;\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_00109fa5:\n    lVar10 = FUN_0010b8c9(param_2,0x3a);\n    if (lVar10 == 0) {\n      FUN_00134fb0("-nc expects argument of form \'host:port\'");\n      return 2;\n    }\n    uVar5 = FUN_0010c2a6(&DAT_0013b2b1,lVar10 - (long)param_2,param_2);\n    FUN_0010ad3a(param_4,0x2e,uVar5);\n    uVar9 = strtol((char *)(lVar10 + 1),(char **)0x0,10);\n    FUN_0010ac09(param_4,0x2f,uVar9 & 0xffffffff);\n    FUN_0010c4d3(uVar5);\n    iVar3 = strcmp((char *)param_1,"-m");\n    uVar5 = 2;\n    bVar15 = iVar3 == 0;\n    if (!bVar15) goto LAB_0010a032;\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_00109f54:\n    __stream = fopen64(param_2,"r");\n    if (__stream == (FILE *)0x0) {\n      FUN_00134fb0("unable to open command file \"%s\"",param_2);\n      return 2;\n    }\n    lVar13 = 0;\n    local_3c = 0;\n    lVar10 = 0;\n    while( true ) {\n      iVar4 = (int)lVar13;\n      iVar3 = fgetc(__stream);\n      if (iVar3 == -1) break;\n      local_48._0_1_ = (undefined1)iVar3;\n      if (iVar4 < local_3c) {\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      else {\n        local_3c = iVar4 + 0x200;\n        lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      lVar13 = lVar13 + 1;\n    }\n    if (iVar4 < local_3c) {\n      *(undefined1 *)(lVar10 + iVar4) = 0;\n    }\n    else {\n      lVar10 = FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1);\n      *(undefined1 *)(lVar10 + lVar13) = 0;\n    }\n    fclose(__stream);\n    FUN_0010ad3a(param_4,0x14,lVar10);\n    FUN_0010ad3a(param_4,0x15,&DAT_0013bec9);\n    FUN_0010ac09(param_4,0x16,1);\n    FUN_0010c4d3(lVar10);\n    iVar3 = strcmp((char *)param_1,"-P");\n    uVar5 = 2;\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      goto LAB_00109749;\n    }\nLAB_00108afa:\n    iVar3 = strcmp((char *)param_1,"-pw");\n    if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 2;\n      }\n      goto LAB_00109ee5;\n    }\n    iVar3 = strcmp((char *)param_1,"-agent");\n    if (iVar3 != 0) goto LAB_00108ba4;\nLAB_00108bce:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108bdc:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00108bf9:\n    FUN_0010ac09(param_4,0x1c,1);\n    iVar3 = strcmp((char *)param_1,"-noagent");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108c37;\n    }\n    iVar3 = strcmp((char *)param_1,"-nopagent");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00109e76;\nLAB_00108d1b:\n    iVar3 = strcmp((char *)param_1,"-nopageant");\n    if (iVar3 == 0) goto LAB_00108d2e;\n    iVar3 = strcmp((char *)param_1,"-A");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-a");\n      if (iVar3 != 0) goto LAB_00108c7d;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108db9;\n    }\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109d88:\n    FUN_0010ac09(param_4,0x1d,1);\n    iVar3 = strcmp((char *)param_1,"-a");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d25;\n    }\n    iVar3 = strcmp((char *)param_1,"-X");\n    uVar5 = 1;\n    if (iVar3 == 0) {\nLAB_00108ca2:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109c0f;\n    }\nLAB_00109dce:\n    iVar3 = strcmp((char *)param_1,"-x");\n    if (iVar3 != 0) goto LAB_00109de5;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108dff:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109c49:\n    FUN_0010ac09(param_4,0x95,0);\n    iVar3 = strcmp((char *)param_1,"-t");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c87:\n      FUN_0010ac09(param_4,0x16,0);\n      iVar3 = strcmp((char *)param_1,"-T");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }\n      iVar3 = strcmp((char *)param_1,"-N");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109ba0;\n    }\n    else {\n      iVar3 = strcmp((char *)param_1,"-T");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109e21;\nLAB_00109b7b:\n      iVar3 = strcmp((char *)param_1,"-N");\n      if (iVar3 == 0) {\n        if (param_3 < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }\n    }\n    iVar3 = strcmp((char *)param_1,"-C");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00108e8b:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\nLAB_0010989e:\n      FUN_0010ac09(param_4,0x17,1);\n      iVar3 = strcmp((char *)param_1,"-1");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }\n      iVar3 = strcmp((char *)param_1,"-2");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109930;\n      goto LAB_00109b26;\n    }\nLAB_00109aea:\n    iVar3 = strcmp((char *)param_1,"-1");\n    if (iVar3 != 0) goto LAB_00109b01;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108ed1:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_001098d8:\n    FUN_0010ac09(param_4,0x21,0);\n    iVar3 = strcmp((char *)param_1,"-2");\n    uVar5 = 1;\n    if (iVar3 != 0) goto LAB_00109930;\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\nLAB_00109918:\n    FUN_0010ac09(param_4,0x21,3);\n    uVar5 = 1;\n  }\n  else {\nLAB_00108865:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2ac;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\nLAB_0010889d:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      bVar15 = param_3 == 0;\n      if (!bVar15) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001088cd;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)0x1440f1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_0010889d;\n    iVar3 = strcmp((char *)param_1,"-nc");\n    bVar15 = iVar3 == 0;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109fa5;\n    }\nLAB_00108a01:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2be;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109f54;\n    }\nLAB_0010a032:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2c1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar18 && !bVar15) != bVar18) goto LAB_00108afa;\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }\nLAB_00109749:\n    uVar9 = strtol(param_2,(char **)0x0,10);\n    FUN_0010ac09(param_4,1,uVar9 & 0xffffffff);\n    iVar3 = strcmp((char *)param_1,"-pw");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\nLAB_00109ee5:\n      iVar3 = FUN_0010a543(param_4,2);\n      if (iVar3 == 3) {\n        DAT_00152128 = FUN_0010bd5d(param_2);\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = param_2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        FUN_0010c727(param_2,~uVar9 - 1);\n      }\n      else {\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }\n      iVar3 = strcmp((char *)param_1,"-agent");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-pagent");\n        uVar5 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108bf9;\n    }\n    iVar3 = strcmp((char *)param_1,"-agent");\n    uVar5 = 2;\n    if (iVar3 == 0) goto LAB_00108bdc;\nLAB_00108ba4:\n    iVar3 = strcmp((char *)param_1,"-pagent");\n    if (iVar3 == 0) goto LAB_00108bce;\nLAB_00108bb7:\n    iVar3 = strcmp((char *)param_1,"-pageant");\n    if (iVar3 == 0) goto LAB_00108bce;\n    iVar3 = strcmp((char *)param_1,"-noagent");\n    if ((iVar3 != 0) && (iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0))\n    goto LAB_00108d1b;\nLAB_00108d2e:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e76:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00108c37:\n    FUN_0010ac09(param_4,0x1c,0);\n    iVar3 = strcmp((char *)param_1,"-A");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d88;\n    }\n    iVar3 = strcmp((char *)param_1,"-a");\n    if (iVar3 != 0) {\n      uVar5 = 1;\nLAB_00108c7d:\n      iVar3 = strcmp((char *)param_1,"-X");\n      if (iVar3 != 0) goto LAB_00109dce;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108ca2;\n    }\nLAB_00108db9:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109d25:\n    FUN_0010ac09(param_4,0x1d,0);\n    iVar3 = strcmp((char *)param_1,"-X");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c0f:\n      FUN_0010ac09(param_4,0x95,1);\n      iVar3 = strcmp((char *)param_1,"-x");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }\n      iVar3 = strcmp((char *)param_1,"-t");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109dfc;\nLAB_00108e45:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_00109c87;\n    }\n    iVar3 = strcmp((char *)param_1,"-x");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108dff;\nLAB_00109de5:\n    iVar3 = strcmp((char *)param_1,"-t");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108e45;\n    }\nLAB_00109dfc:\n    iVar3 = strcmp((char *)param_1,"-T");\n    if (iVar3 != 0) goto LAB_00109b7b;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e21:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_00109cc5:\n    FUN_0010ac09(param_4,0x16,1);\n    iVar3 = strcmp((char *)param_1,"-N");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-C");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00108e8b;\n      goto LAB_00109aea;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\nLAB_00109a6e:\n    FUN_0010ac09(param_4,0x2d,1);\n    iVar3 = strcmp((char *)param_1,"-C");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_0010989e;\n    }\n    iVar3 = strcmp((char *)param_1,"-1");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108ed1;\nLAB_00109b01:\n    iVar3 = strcmp((char *)param_1,"-2");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00109b26:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109918;\n    }\n  }" (if "if") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (compound_statement "{\n    iVar3 = FUN_00108083(3,param_1);\n    bVar15 = iVar3 == 0;\n    if (!bVar15) {\n      return 2;\n    }\nLAB_001088cd:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)0x1440f1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    uVar17 = 0;\n    uVar19 = (!bVar18 && !bVar15) == bVar18;\n    if ((bool)uVar19) {\n      uVar5 = FUN_0010c2a6(&DAT_0013b2b6,param_2);\n      uVar7 = FUN_0010bd5d("D");\n    }\n    else {\n      bVar1 = param_1[1];\n      pcVar6 = (char *)FUN_0010b8c9(param_2,0x3a);\n      pcVar8 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\nLAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);\n        return 2;\n      }\n      do {\n        pcVar14 = pcVar8;\n        pcVar8 = pcVar6;\n        pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);\n      } while (pcVar6 != (char *)0x0);\n      if (pcVar14 == (char *)0x0) goto LAB_00108973;\n      uVar17 = pcVar14 < param_2;\n      uVar19 = (long)pcVar14 - (long)param_2 == 0;\n      uVar5 = FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2);\n      uVar7 = FUN_0010bd5d(pcVar14 + 1);\n    }\n    FUN_0010ade1(param_4,0x9b,uVar5,uVar7);\n    FUN_0010c4d3(uVar5);\n    FUN_0010c4d3(uVar7);\n    lVar10 = 4;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2ba;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);\n    uVar5 = 2;\n    bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n    if (!bVar15) goto LAB_00108a01;\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_00109fa5:\n    lVar10 = FUN_0010b8c9(param_2,0x3a);\n    if (lVar10 == 0) {\n      FUN_00134fb0("-nc expects argument of form \'host:port\'");\n      return 2;\n    }\n    uVar5 = FUN_0010c2a6(&DAT_0013b2b1,lVar10 - (long)param_2,param_2);\n    FUN_0010ad3a(param_4,0x2e,uVar5);\n    uVar9 = strtol((char *)(lVar10 + 1),(char **)0x0,10);\n    FUN_0010ac09(param_4,0x2f,uVar9 & 0xffffffff);\n    FUN_0010c4d3(uVar5);\n    iVar3 = strcmp((char *)param_1,"-m");\n    uVar5 = 2;\n    bVar15 = iVar3 == 0;\n    if (!bVar15) goto LAB_0010a032;\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_00109f54:\n    __stream = fopen64(param_2,"r");\n    if (__stream == (FILE *)0x0) {\n      FUN_00134fb0("unable to open command file \"%s\"",param_2);\n      return 2;\n    }\n    lVar13 = 0;\n    local_3c = 0;\n    lVar10 = 0;\n    while( true ) {\n      iVar4 = (int)lVar13;\n      iVar3 = fgetc(__stream);\n      if (iVar3 == -1) break;\n      local_48._0_1_ = (undefined1)iVar3;\n      if (iVar4 < local_3c) {\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      else {\n        local_3c = iVar4 + 0x200;\n        lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      lVar13 = lVar13 + 1;\n    }\n    if (iVar4 < local_3c) {\n      *(undefined1 *)(lVar10 + iVar4) = 0;\n    }\n    else {\n      lVar10 = FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1);\n      *(undefined1 *)(lVar10 + lVar13) = 0;\n    }\n    fclose(__stream);\n    FUN_0010ad3a(param_4,0x14,lVar10);\n    FUN_0010ad3a(param_4,0x15,&DAT_0013bec9);\n    FUN_0010ac09(param_4,0x16,1);\n    FUN_0010c4d3(lVar10);\n    iVar3 = strcmp((char *)param_1,"-P");\n    uVar5 = 2;\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      goto LAB_00109749;\n    }\nLAB_00108afa:\n    iVar3 = strcmp((char *)param_1,"-pw");\n    if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 2;\n      }\n      goto LAB_00109ee5;\n    }\n    iVar3 = strcmp((char *)param_1,"-agent");\n    if (iVar3 != 0) goto LAB_00108ba4;\nLAB_00108bce:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108bdc:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00108bf9:\n    FUN_0010ac09(param_4,0x1c,1);\n    iVar3 = strcmp((char *)param_1,"-noagent");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108c37;\n    }\n    iVar3 = strcmp((char *)param_1,"-nopagent");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00109e76;\nLAB_00108d1b:\n    iVar3 = strcmp((char *)param_1,"-nopageant");\n    if (iVar3 == 0) goto LAB_00108d2e;\n    iVar3 = strcmp((char *)param_1,"-A");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-a");\n      if (iVar3 != 0) goto LAB_00108c7d;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108db9;\n    }\n    if (param_3 < 0) {\n      return 1;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109d88:\n    FUN_0010ac09(param_4,0x1d,1);\n    iVar3 = strcmp((char *)param_1,"-a");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d25;\n    }\n    iVar3 = strcmp((char *)param_1,"-X");\n    uVar5 = 1;\n    if (iVar3 == 0) {\nLAB_00108ca2:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109c0f;\n    }\nLAB_00109dce:\n    iVar3 = strcmp((char *)param_1,"-x");\n    if (iVar3 != 0) goto LAB_00109de5;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108dff:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109c49:\n    FUN_0010ac09(param_4,0x95,0);\n    iVar3 = strcmp((char *)param_1,"-t");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c87:\n      FUN_0010ac09(param_4,0x16,0);\n      iVar3 = strcmp((char *)param_1,"-T");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }\n      iVar3 = strcmp((char *)param_1,"-N");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109ba0;\n    }\n    else {\n      iVar3 = strcmp((char *)param_1,"-T");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109e21;\nLAB_00109b7b:\n      iVar3 = strcmp((char *)param_1,"-N");\n      if (iVar3 == 0) {\n        if (param_3 < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }\n    }\n    iVar3 = strcmp((char *)param_1,"-C");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00108e8b:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\nLAB_0010989e:\n      FUN_0010ac09(param_4,0x17,1);\n      iVar3 = strcmp((char *)param_1,"-1");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }\n      iVar3 = strcmp((char *)param_1,"-2");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109930;\n      goto LAB_00109b26;\n    }\nLAB_00109aea:\n    iVar3 = strcmp((char *)param_1,"-1");\n    if (iVar3 != 0) goto LAB_00109b01;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00108ed1:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_001098d8:\n    FUN_0010ac09(param_4,0x21,0);\n    iVar3 = strcmp((char *)param_1,"-2");\n    uVar5 = 1;\n    if (iVar3 != 0) goto LAB_00109930;\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\nLAB_00109918:\n    FUN_0010ac09(param_4,0x21,3);\n    uVar5 = 1;\n  }" ({ "{") (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(3,param_1)" (identifier "FUN_00108083") (argument_list "(3,param_1)" (( "(") (number_literal "3") (, ",") (identifier "param_1") () ")")))) (; ";")) (expression_statement "bVar15 = iVar3 == 0;" (assignment_expression "bVar15 = iVar3 == 0" (identifier "bVar15") (= "=") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0"))) (; ";")) (if_statement "if (!bVar15) {\n      return 2;\n    }" (if "if") (parenthesized_expression "(!bVar15)" (( "(") (unary_expression "!bVar15" (! "!") (identifier "bVar15")) () ")")) (compound_statement "{\n      return 2;\n    }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (labeled_statement "LAB_001088cd:\n    bVar18 = false;" (statement_identifier "LAB_001088cd") (: ":") (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" (identifier "bVar18") (= "=") (false "false")) (; ";"))) (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" (identifier "lVar10") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" (identifier "pbVar11") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar12 = (byte *)0x1440f1;" (assignment_expression "pbVar12 = (byte *)0x1440f1" (identifier "pbVar12") (= "=") (cast_expression "(byte *)0x1440f1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1440f1"))) (; ";")) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);" (do "do") (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    }" ({ "{") (if_statement "if (lVar10 == 0) break;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar18 = *pbVar11 < *pbVar12;" (assignment_expression "bVar18 = *pbVar11 < *pbVar12" (identifier "bVar18") (= "=") (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" (identifier "bVar15") (= "=") (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar19 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "uVar19 = (!bVar18 && !bVar15) == bVar18" (identifier "uVar19") (= "=") (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" (( "(") (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" (! "!") (identifier "bVar18")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar18"))) (; ";")) (if_statement "if ((bool)uVar19) {\n      uVar5 = FUN_0010c2a6(&DAT_0013b2b6,param_2);\n      uVar7 = FUN_0010bd5d("D");\n    }\n    else {\n      bVar1 = param_1[1];\n      pcVar6 = (char *)FUN_0010b8c9(param_2,0x3a);\n      pcVar8 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\nLAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);\n        return 2;\n      }\n      do {\n        pcVar14 = pcVar8;\n        pcVar8 = pcVar6;\n        pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);\n      } while (pcVar6 != (char *)0x0);\n      if (pcVar14 == (char *)0x0) goto LAB_00108973;\n      uVar17 = pcVar14 < param_2;\n      uVar19 = (long)pcVar14 - (long)param_2 == 0;\n      uVar5 = FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2);\n      uVar7 = FUN_0010bd5d(pcVar14 + 1);\n    }" (if "if") (parenthesized_expression "((bool)uVar19)" (( "(") (cast_expression "(bool)uVar19" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar19")) () ")")) (compound_statement "{\n      uVar5 = FUN_0010c2a6(&DAT_0013b2b6,param_2);\n      uVar7 = FUN_0010bd5d("D");\n    }" ({ "{") (expression_statement "uVar5 = FUN_0010c2a6(&DAT_0013b2b6,param_2);" (assignment_expression "uVar5 = FUN_0010c2a6(&DAT_0013b2b6,param_2)" (identifier "uVar5") (= "=") (call_expression "FUN_0010c2a6(&DAT_0013b2b6,param_2)" (identifier "FUN_0010c2a6") (argument_list "(&DAT_0013b2b6,param_2)" (( "(") (pointer_expression "&DAT_0013b2b6" (& "&") (identifier "DAT_0013b2b6")) (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "uVar7 = FUN_0010bd5d("D");" (assignment_expression "uVar7 = FUN_0010bd5d("D")" (identifier "uVar7") (= "=") (call_expression "FUN_0010bd5d("D")" (identifier "FUN_0010bd5d") (argument_list "("D")" (( "(") (string_literal ""D"" (" """) (string_content "D") (" """)) () ")")))) (; ";")) (} "}")) (else_clause "else {\n      bVar1 = param_1[1];\n      pcVar6 = (char *)FUN_0010b8c9(param_2,0x3a);\n      pcVar8 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\nLAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);\n        return 2;\n      }\n      do {\n        pcVar14 = pcVar8;\n        pcVar8 = pcVar6;\n        pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);\n      } while (pcVar6 != (char *)0x0);\n      if (pcVar14 == (char *)0x0) goto LAB_00108973;\n      uVar17 = pcVar14 < param_2;\n      uVar19 = (long)pcVar14 - (long)param_2 == 0;\n      uVar5 = FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2);\n      uVar7 = FUN_0010bd5d(pcVar14 + 1);\n    }" (else "else") (compound_statement "{\n      bVar1 = param_1[1];\n      pcVar6 = (char *)FUN_0010b8c9(param_2,0x3a);\n      pcVar8 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\nLAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);\n        return 2;\n      }\n      do {\n        pcVar14 = pcVar8;\n        pcVar8 = pcVar6;\n        pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);\n      } while (pcVar6 != (char *)0x0);\n      if (pcVar14 == (char *)0x0) goto LAB_00108973;\n      uVar17 = pcVar14 < param_2;\n      uVar19 = (long)pcVar14 - (long)param_2 == 0;\n      uVar5 = FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2);\n      uVar7 = FUN_0010bd5d(pcVar14 + 1);\n    }" ({ "{") (expression_statement "bVar1 = param_1[1];" (assignment_expression "bVar1 = param_1[1]" (identifier "bVar1") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pcVar6 = (char *)FUN_0010b8c9(param_2,0x3a);" (assignment_expression "pcVar6 = (char *)FUN_0010b8c9(param_2,0x3a)" (identifier "pcVar6") (= "=") (cast_expression "(char *)FUN_0010b8c9(param_2,0x3a)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0010b8c9(param_2,0x3a)" (identifier "FUN_0010b8c9") (argument_list "(param_2,0x3a)" (( "(") (identifier "param_2") (, ",") (number_literal "0x3a") () ")"))))) (; ";")) (expression_statement "pcVar8 = pcVar6;" (assignment_expression "pcVar8 = pcVar6" (identifier "pcVar8") (= "=") (identifier "pcVar6")) (; ";")) (if_statement "if (pcVar6 == (char *)0x0) {\nLAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);\n        return 2;\n      }" (if "if") (parenthesized_expression "(pcVar6 == (char *)0x0)" (( "(") (binary_expression "pcVar6 == (char *)0x0" (identifier "pcVar6") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);\n        return 2;\n      }" ({ "{") (labeled_statement "LAB_00108973:\n        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);" (statement_identifier "LAB_00108973") (: ":") (expression_statement "FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);" (call_expression "FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1)" (identifier "FUN_00134fb0") (argument_list "("-%c expects at least two colons in its argument",(int)(char)bVar1)" (( "(") (string_literal ""-%c expects at least two colons in its argument"" (" """) (string_content "-%c expects at least two colons in its argument") (" """)) (, ",") (cast_expression "(int)(char)bVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)bVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar1"))) () ")"))) (; ";"))) (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (do_statement "do {\n        pcVar14 = pcVar8;\n        pcVar8 = pcVar6;\n        pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);\n      } while (pcVar6 != (char *)0x0);" (do "do") (compound_statement "{\n        pcVar14 = pcVar8;\n        pcVar8 = pcVar6;\n        pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);\n      }" ({ "{") (expression_statement "pcVar14 = pcVar8;" (assignment_expression "pcVar14 = pcVar8" (identifier "pcVar14") (= "=") (identifier "pcVar8")) (; ";")) (expression_statement "pcVar8 = pcVar6;" (assignment_expression "pcVar8 = pcVar6" (identifier "pcVar8") (= "=") (identifier "pcVar6")) (; ";")) (expression_statement "pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);" (assignment_expression "pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a)" (identifier "pcVar6") (= "=") (cast_expression "(char *)FUN_0010b8c9(pcVar8 + 1,0x3a)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0010b8c9(pcVar8 + 1,0x3a)" (identifier "FUN_0010b8c9") (argument_list "(pcVar8 + 1,0x3a)" (( "(") (binary_expression "pcVar8 + 1" (identifier "pcVar8") (+ "+") (number_literal "1")) (, ",") (number_literal "0x3a") () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pcVar6 != (char *)0x0)" (( "(") (binary_expression "pcVar6 != (char *)0x0" (identifier "pcVar6") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (if_statement "if (pcVar14 == (char *)0x0) goto LAB_00108973;" (if "if") (parenthesized_expression "(pcVar14 == (char *)0x0)" (( "(") (binary_expression "pcVar14 == (char *)0x0" (identifier "pcVar14") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00108973;" (goto "goto") (statement_identifier "LAB_00108973") (; ";"))) (expression_statement "uVar17 = pcVar14 < param_2;" (assignment_expression "uVar17 = pcVar14 < param_2" (identifier "uVar17") (= "=") (binary_expression "pcVar14 < param_2" (identifier "pcVar14") (< "<") (identifier "param_2"))) (; ";")) (expression_statement "uVar19 = (long)pcVar14 - (long)param_2 == 0;" (assignment_expression "uVar19 = (long)pcVar14 - (long)param_2 == 0" (identifier "uVar19") (= "=") (binary_expression "(long)pcVar14 - (long)param_2 == 0" (binary_expression "(long)pcVar14 - (long)param_2" (cast_expression "(long)pcVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar14")) (- "-") (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2"))) (== "==") (number_literal "0"))) (; ";")) (expression_statement "uVar5 = FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2);" (assignment_expression "uVar5 = FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2)" (identifier "uVar5") (= "=") (call_expression "FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2)" (identifier "FUN_0010c2a6") (argument_list "(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2)" (( "(") (pointer_expression "&DAT_0013b2af" (& "&") (identifier "DAT_0013b2af")) (, ",") (cast_expression "(int)(char)bVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)bVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar1"))) (, ",") (binary_expression "(long)pcVar14 - (long)param_2" (cast_expression "(long)pcVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar14")) (- "-") (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2"))) (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "uVar7 = FUN_0010bd5d(pcVar14 + 1);" (assignment_expression "uVar7 = FUN_0010bd5d(pcVar14 + 1)" (identifier "uVar7") (= "=") (call_expression "FUN_0010bd5d(pcVar14 + 1)" (identifier "FUN_0010bd5d") (argument_list "(pcVar14 + 1)" (( "(") (binary_expression "pcVar14 + 1" (identifier "pcVar14") (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")))) (expression_statement "FUN_0010ade1(param_4,0x9b,uVar5,uVar7);" (call_expression "FUN_0010ade1(param_4,0x9b,uVar5,uVar7)" (identifier "FUN_0010ade1") (argument_list "(param_4,0x9b,uVar5,uVar7)" (( "(") (identifier "param_4") (, ",") (number_literal "0x9b") (, ",") (identifier "uVar5") (, ",") (identifier "uVar7") () ")"))) (; ";")) (expression_statement "FUN_0010c4d3(uVar5);" (call_expression "FUN_0010c4d3(uVar5)" (identifier "FUN_0010c4d3") (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "FUN_0010c4d3(uVar7);" (call_expression "FUN_0010c4d3(uVar7)" (identifier "FUN_0010c4d3") (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")"))) (; ";")) (expression_statement "lVar10 = 4;" (assignment_expression "lVar10 = 4" (identifier "lVar10") (= "=") (number_literal "4")) (; ";")) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" (identifier "pbVar11") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar12 = &DAT_0013b2ba;" (assignment_expression "pbVar12 = &DAT_0013b2ba" (identifier "pbVar12") (= "=") (pointer_expression "&DAT_0013b2ba" (& "&") (identifier "DAT_0013b2ba"))) (; ";")) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while ((bool)uVar19);" (do "do") (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      uVar17 = *pbVar11 < *pbVar12;\n      uVar19 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    }" ({ "{") (if_statement "if (lVar10 == 0) break;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar17 = *pbVar11 < *pbVar12;" (assignment_expression "uVar17 = *pbVar11 < *pbVar12" (identifier "uVar17") (= "=") (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "uVar19 = *pbVar11 == *pbVar12;" (assignment_expression "uVar19 = *pbVar11 == *pbVar12" (identifier "uVar19") (= "=") (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar19)" (( "(") (cast_expression "(bool)uVar19" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar19")) () ")")) (; ";")) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" (identifier "uVar5") (= "=") (number_literal "2")) (; ";")) (expression_statement "bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;" (assignment_expression "bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17" (identifier "bVar15") (= "=") (binary_expression "(!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17" (parenthesized_expression "(!(bool)uVar17 && !(bool)uVar19)" (( "(") (binary_expression "!(bool)uVar17 && !(bool)uVar19" (unary_expression "!(bool)uVar17" (! "!") (cast_expression "(bool)uVar17" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar17"))) (&& "&&") (unary_expression "!(bool)uVar19" (! "!") (cast_expression "(bool)uVar19" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar19")))) () ")")) (== "==") (cast_expression "(bool)uVar17" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar17")))) (; ";")) (if_statement "if (!bVar15) goto LAB_00108a01;" (if "if") (parenthesized_expression "(!bVar15)" (( "(") (unary_expression "!bVar15" (! "!") (identifier "bVar15")) () ")")) (goto_statement "goto LAB_00108a01;" (goto "goto") (statement_identifier "LAB_00108a01") (; ";"))) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(3,param_1)" (identifier "FUN_00108083") (argument_list "(3,param_1)" (( "(") (number_literal "3") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      return 2;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return 2;\n    }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (labeled_statement "LAB_00109fa5:\n    lVar10 = FUN_0010b8c9(param_2,0x3a);" (statement_identifier "LAB_00109fa5") (: ":") (expression_statement "lVar10 = FUN_0010b8c9(param_2,0x3a);" (assignment_expression "lVar10 = FUN_0010b8c9(param_2,0x3a)" (identifier "lVar10") (= "=") (call_expression "FUN_0010b8c9(param_2,0x3a)" (identifier "FUN_0010b8c9") (argument_list "(param_2,0x3a)" (( "(") (identifier "param_2") (, ",") (number_literal "0x3a") () ")")))) (; ";"))) (if_statement "if (lVar10 == 0) {\n      FUN_00134fb0("-nc expects argument of form \'host:port\'");\n      return 2;\n    }" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00134fb0("-nc expects argument of form \'host:port\'");\n      return 2;\n    }" ({ "{") (expression_statement "FUN_00134fb0("-nc expects argument of form \'host:port\'");" (call_expression "FUN_00134fb0("-nc expects argument of form \'host:port\'")" (identifier "FUN_00134fb0") (argument_list "("-nc expects argument of form \'host:port\'")" (( "(") (string_literal ""-nc expects argument of form \'host:port\'"" (" """) (string_content "-nc expects argument of form ") (escape_sequence "\'") (string_content "host:port") (escape_sequence "\'") (" """)) () ")"))) (; ";")) (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (expression_statement "uVar5 = FUN_0010c2a6(&DAT_0013b2b1,lVar10 - (long)param_2,param_2);" (assignment_expression "uVar5 = FUN_0010c2a6(&DAT_0013b2b1,lVar10 - (long)param_2,param_2)" (identifier "uVar5") (= "=") (call_expression "FUN_0010c2a6(&DAT_0013b2b1,lVar10 - (long)param_2,param_2)" (identifier "FUN_0010c2a6") (argument_list "(&DAT_0013b2b1,lVar10 - (long)param_2,param_2)" (( "(") (pointer_expression "&DAT_0013b2b1" (& "&") (identifier "DAT_0013b2b1")) (, ",") (binary_expression "lVar10 - (long)param_2" (identifier "lVar10") (- "-") (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2"))) (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "FUN_0010ad3a(param_4,0x2e,uVar5);" (call_expression "FUN_0010ad3a(param_4,0x2e,uVar5)" (identifier "FUN_0010ad3a") (argument_list "(param_4,0x2e,uVar5)" (( "(") (identifier "param_4") (, ",") (number_literal "0x2e") (, ",") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "uVar9 = strtol((char *)(lVar10 + 1),(char **)0x0,10);" (assignment_expression "uVar9 = strtol((char *)(lVar10 + 1),(char **)0x0,10)" (identifier "uVar9") (= "=") (call_expression "strtol((char *)(lVar10 + 1),(char **)0x0,10)" (identifier "strtol") (argument_list "((char *)(lVar10 + 1),(char **)0x0,10)" (( "(") (cast_expression "(char *)(lVar10 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 1)" (( "(") (binary_expression "lVar10 + 1" (identifier "lVar10") (+ "+") (number_literal "1")) () ")"))) (, ",") (cast_expression "(char **)0x0" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0")) (, ",") (number_literal "10") () ")")))) (; ";")) (expression_statement "FUN_0010ac09(param_4,0x2f,uVar9 & 0xffffffff);" (call_expression "FUN_0010ac09(param_4,0x2f,uVar9 & 0xffffffff)" (identifier "FUN_0010ac09") (argument_list "(param_4,0x2f,uVar9 & 0xffffffff)" (( "(") (identifier "param_4") (, ",") (number_literal "0x2f") (, ",") (binary_expression "uVar9 & 0xffffffff" (identifier "uVar9") (& "&") (number_literal "0xffffffff")) () ")"))) (; ";")) (expression_statement "FUN_0010c4d3(uVar5);" (call_expression "FUN_0010c4d3(uVar5)" (identifier "FUN_0010c4d3") (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "iVar3 = strcmp((char *)param_1,"-m");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-m")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-m")" (identifier "strcmp") (argument_list "((char *)param_1,"-m")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-m"" (" """) (string_content "-m") (" """)) () ")")))) (; ";")) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" (identifier "uVar5") (= "=") (number_literal "2")) (; ";")) (expression_statement "bVar15 = iVar3 == 0;" (assignment_expression "bVar15 = iVar3 == 0" (identifier "bVar15") (= "=") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0"))) (; ";")) (if_statement "if (!bVar15) goto LAB_0010a032;" (if "if") (parenthesized_expression "(!bVar15)" (( "(") (unary_expression "!bVar15" (! "!") (identifier "bVar15")) () ")")) (goto_statement "goto LAB_0010a032;" (goto "goto") (statement_identifier "LAB_0010a032") (; ";"))) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(3,param_1)" (identifier "FUN_00108083") (argument_list "(3,param_1)" (( "(") (number_literal "3") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      return 2;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return 2;\n    }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (labeled_statement "LAB_00109f54:\n    __stream = fopen64(param_2,"r");" (statement_identifier "LAB_00109f54") (: ":") (expression_statement "__stream = fopen64(param_2,"r");" (assignment_expression "__stream = fopen64(param_2,"r")" (identifier "__stream") (= "=") (call_expression "fopen64(param_2,"r")" (identifier "fopen64") (argument_list "(param_2,"r")" (( "(") (identifier "param_2") (, ",") (string_literal ""r"" (" """) (string_content "r") (" """)) () ")")))) (; ";"))) (if_statement "if (__stream == (FILE *)0x0) {\n      FUN_00134fb0("unable to open command file \"%s\"",param_2);\n      return 2;\n    }" (if "if") (parenthesized_expression "(__stream == (FILE *)0x0)" (( "(") (binary_expression "__stream == (FILE *)0x0" (identifier "__stream") (== "==") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      FUN_00134fb0("unable to open command file \"%s\"",param_2);\n      return 2;\n    }" ({ "{") (expression_statement "FUN_00134fb0("unable to open command file \"%s\"",param_2);" (call_expression "FUN_00134fb0("unable to open command file \"%s\"",param_2)" (identifier "FUN_00134fb0") (argument_list "("unable to open command file \"%s\"",param_2)" (( "(") (string_literal ""unable to open command file \"%s\""" (" """) (string_content "unable to open command file ") (escape_sequence "\"") (string_content "%s") (escape_sequence "\"") (" """)) (, ",") (identifier "param_2") () ")"))) (; ";")) (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (expression_statement "lVar13 = 0;" (assignment_expression "lVar13 = 0" (identifier "lVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" (identifier "local_3c") (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" (identifier "lVar10") (= "=") (number_literal "0")) (; ";")) (while_statement "while( true ) {\n      iVar4 = (int)lVar13;\n      iVar3 = fgetc(__stream);\n      if (iVar3 == -1) break;\n      local_48._0_1_ = (undefined1)iVar3;\n      if (iVar4 < local_3c) {\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      else {\n        local_3c = iVar4 + 0x200;\n        lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      lVar13 = lVar13 + 1;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      iVar4 = (int)lVar13;\n      iVar3 = fgetc(__stream);\n      if (iVar3 == -1) break;\n      local_48._0_1_ = (undefined1)iVar3;\n      if (iVar4 < local_3c) {\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      else {\n        local_3c = iVar4 + 0x200;\n        lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      lVar13 = lVar13 + 1;\n    }" ({ "{") (expression_statement "iVar4 = (int)lVar13;" (assignment_expression "iVar4 = (int)lVar13" (identifier "iVar4") (= "=") (cast_expression "(int)lVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar13"))) (; ";")) (expression_statement "iVar3 = fgetc(__stream);" (assignment_expression "iVar3 = fgetc(__stream)" (identifier "iVar3") (= "=") (call_expression "fgetc(__stream)" (identifier "fgetc") (argument_list "(__stream)" (( "(") (identifier "__stream") () ")")))) (; ";")) (if_statement "if (iVar3 == -1) break;" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "local_48._0_1_ = (undefined1)iVar3;" (assignment_expression "local_48._0_1_ = (undefined1)iVar3" (field_expression "local_48._0_1_" (identifier "local_48") (. ".") (field_identifier "_0_1_")) (= "=") (cast_expression "(undefined1)iVar3" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "iVar3"))) (; ";")) (if_statement "if (iVar4 < local_3c) {\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }\n      else {\n        local_3c = iVar4 + 0x200;\n        lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }" (if "if") (parenthesized_expression "(iVar4 < local_3c)" (( "(") (binary_expression "iVar4 < local_3c" (identifier "iVar4") (< "<") (identifier "local_3c")) () ")")) (compound_statement "{\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }" ({ "{") (expression_statement "*(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;" (assignment_expression "*(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48" (pointer_expression "*(undefined1 *)(lVar10 + lVar13)" (* "*") (cast_expression "(undefined1 *)(lVar10 + lVar13)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + lVar13)" (( "(") (binary_expression "lVar10 + lVar13" (identifier "lVar10") (+ "+") (identifier "lVar13")) () ")")))) (= "=") (cast_expression "(undefined1)local_48" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "local_48"))) (; ";")) (} "}")) (else_clause "else {\n        local_3c = iVar4 + 0x200;\n        lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }" (else "else") (compound_statement "{\n        local_3c = iVar4 + 0x200;\n        lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);\n        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;\n      }" ({ "{") (expression_statement "local_3c = iVar4 + 0x200;" (assignment_expression "local_3c = iVar4 + 0x200" (identifier "local_3c") (= "=") (binary_expression "iVar4 + 0x200" (identifier "iVar4") (+ "+") (number_literal "0x200"))) (; ";")) (expression_statement "lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);" (assignment_expression "lVar10 = FUN_0010c033(lVar10,(long)local_3c,1)" (identifier "lVar10") (= "=") (call_expression "FUN_0010c033(lVar10,(long)local_3c,1)" (identifier "FUN_0010c033") (argument_list "(lVar10,(long)local_3c,1)" (( "(") (identifier "lVar10") (, ",") (cast_expression "(long)local_3c" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_3c")) (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "*(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;" (assignment_expression "*(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48" (pointer_expression "*(undefined1 *)(lVar10 + lVar13)" (* "*") (cast_expression "(undefined1 *)(lVar10 + lVar13)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + lVar13)" (( "(") (binary_expression "lVar10 + lVar13" (identifier "lVar10") (+ "+") (identifier "lVar13")) () ")")))) (= "=") (cast_expression "(undefined1)local_48" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "local_48"))) (; ";")) (} "}")))) (expression_statement "lVar13 = lVar13 + 1;" (assignment_expression "lVar13 = lVar13 + 1" (identifier "lVar13") (= "=") (binary_expression "lVar13 + 1" (identifier "lVar13") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (iVar4 < local_3c) {\n      *(undefined1 *)(lVar10 + iVar4) = 0;\n    }\n    else {\n      lVar10 = FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1);\n      *(undefined1 *)(lVar10 + lVar13) = 0;\n    }" (if "if") (parenthesized_expression "(iVar4 < local_3c)" (( "(") (binary_expression "iVar4 < local_3c" (identifier "iVar4") (< "<") (identifier "local_3c")) () ")")) (compound_statement "{\n      *(undefined1 *)(lVar10 + iVar4) = 0;\n    }" ({ "{") (expression_statement "*(undefined1 *)(lVar10 + iVar4) = 0;" (assignment_expression "*(undefined1 *)(lVar10 + iVar4) = 0" (pointer_expression "*(undefined1 *)(lVar10 + iVar4)" (* "*") (cast_expression "(undefined1 *)(lVar10 + iVar4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + iVar4)" (( "(") (binary_expression "lVar10 + iVar4" (identifier "lVar10") (+ "+") (identifier "iVar4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      lVar10 = FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1);\n      *(undefined1 *)(lVar10 + lVar13) = 0;\n    }" (else "else") (compound_statement "{\n      lVar10 = FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1);\n      *(undefined1 *)(lVar10 + lVar13) = 0;\n    }" ({ "{") (expression_statement "lVar10 = FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1);" (assignment_expression "lVar10 = FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1)" (identifier "lVar10") (= "=") (call_expression "FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1)" (identifier "FUN_0010c033") (argument_list "(lVar10,(long)(iVar4 + 0x200),1)" (( "(") (identifier "lVar10") (, ",") (cast_expression "(long)(iVar4 + 0x200)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(iVar4 + 0x200)" (( "(") (binary_expression "iVar4 + 0x200" (identifier "iVar4") (+ "+") (number_literal "0x200")) () ")"))) (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "*(undefined1 *)(lVar10 + lVar13) = 0;" (assignment_expression "*(undefined1 *)(lVar10 + lVar13) = 0" (pointer_expression "*(undefined1 *)(lVar10 + lVar13)" (* "*") (cast_expression "(undefined1 *)(lVar10 + lVar13)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + lVar13)" (( "(") (binary_expression "lVar10 + lVar13" (identifier "lVar10") (+ "+") (identifier "lVar13")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "fclose(__stream);" (call_expression "fclose(__stream)" (identifier "fclose") (argument_list "(__stream)" (( "(") (identifier "__stream") () ")"))) (; ";")) (expression_statement "FUN_0010ad3a(param_4,0x14,lVar10);" (call_expression "FUN_0010ad3a(param_4,0x14,lVar10)" (identifier "FUN_0010ad3a") (argument_list "(param_4,0x14,lVar10)" (( "(") (identifier "param_4") (, ",") (number_literal "0x14") (, ",") (identifier "lVar10") () ")"))) (; ";")) (expression_statement "FUN_0010ad3a(param_4,0x15,&DAT_0013bec9);" (call_expression "FUN_0010ad3a(param_4,0x15,&DAT_0013bec9)" (identifier "FUN_0010ad3a") (argument_list "(param_4,0x15,&DAT_0013bec9)" (( "(") (identifier "param_4") (, ",") (number_literal "0x15") (, ",") (pointer_expression "&DAT_0013bec9" (& "&") (identifier "DAT_0013bec9")) () ")"))) (; ";")) (expression_statement "FUN_0010ac09(param_4,0x16,1);" (call_expression "FUN_0010ac09(param_4,0x16,1)" (identifier "FUN_0010ac09") (argument_list "(param_4,0x16,1)" (( "(") (identifier "param_4") (, ",") (number_literal "0x16") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "FUN_0010c4d3(lVar10);" (call_expression "FUN_0010c4d3(lVar10)" (identifier "FUN_0010c4d3") (argument_list "(lVar10)" (( "(") (identifier "lVar10") () ")"))) (; ";")) (expression_statement "iVar3 = strcmp((char *)param_1,"-P");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-P")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-P")" (identifier "strcmp") (argument_list "((char *)param_1,"-P")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-P"" (" """) (string_content "-P") (" """)) () ")")))) (; ";")) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" (identifier "uVar5") (= "=") (number_literal "2")) (; ";")) (if_statement "if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      goto LAB_00109749;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      goto LAB_00109749;\n    }" ({ "{") (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(2,param_1)" (identifier "FUN_00108083") (argument_list "(2,param_1)" (( "(") (number_literal "2") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n        return 2;\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return 2;\n      }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (goto_statement "goto LAB_00109749;" (goto "goto") (statement_identifier "LAB_00109749") (; ";")) (} "}"))) (labeled_statement "LAB_00108afa:\n    iVar3 = strcmp((char *)param_1,"-pw");" (statement_identifier "LAB_00108afa") (: ":") (expression_statement "iVar3 = strcmp((char *)param_1,"-pw");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-pw")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-pw")" (identifier "strcmp") (argument_list "((char *)param_1,"-pw")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-pw"" (" """) (string_content "-pw") (" """)) () ")")))) (; ";"))) (if_statement "if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 2;\n      }\n      goto LAB_00109ee5;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 2;\n      }\n      goto LAB_00109ee5;\n    }" ({ "{") (if_statement "if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }" (if "if") (parenthesized_expression "(param_2 == (char *)0x0)" (( "(") (binary_expression "param_2 == (char *)0x0" (identifier "param_2") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        return 0xfffffffe;\n      }" ({ "{") (return_statement "return 0xfffffffe;" (return "return") (number_literal "0xfffffffe") (; ";")) (} "}"))) (if_statement "if (param_3 < 0) {\n        return 2;\n      }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        return 2;\n      }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(2,param_1)" (identifier "FUN_00108083") (argument_list "(2,param_1)" (( "(") (number_literal "2") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n        return 2;\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return 2;\n      }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (if_statement "if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 2;\n      }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_001080ad(param_1,param_2,1);\n        return 2;\n      }" ({ "{") (expression_statement "FUN_001080ad(param_1,param_2,1);" (call_expression "FUN_001080ad(param_1,param_2,1)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,1)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "1") () ")"))) (; ";")) (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (goto_statement "goto LAB_00109ee5;" (goto "goto") (statement_identifier "LAB_00109ee5") (; ";")) (} "}"))) (expression_statement "iVar3 = strcmp((char *)param_1,"-agent");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-agent")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-agent")" (identifier "strcmp") (argument_list "((char *)param_1,"-agent")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-agent"" (" """) (string_content "-agent") (" """)) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_00108ba4;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00108ba4;" (goto "goto") (statement_identifier "LAB_00108ba4") (; ";"))) (labeled_statement "LAB_00108bce:\n    if (param_3 < 0) {\n      return 1;\n    }" (statement_identifier "LAB_00108bce") (: ":") (if_statement "if (param_3 < 0) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))) (labeled_statement "LAB_00108bdc:\n    iVar3 = FUN_00108083(2,param_1);" (statement_identifier "LAB_00108bdc") (: ":") (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(2,param_1)" (identifier "FUN_00108083") (argument_list "(2,param_1)" (( "(") (number_literal "2") (, ",") (identifier "param_1") () ")")))) (; ";"))) (if_statement "if (iVar3 != 0) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" ({ "{") (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (labeled_statement "LAB_00108bf9:\n    FUN_0010ac09(param_4,0x1c,1);" (statement_identifier "LAB_00108bf9") (: ":") (expression_statement "FUN_0010ac09(param_4,0x1c,1);" (call_expression "FUN_0010ac09(param_4,0x1c,1)" (identifier "FUN_0010ac09") (argument_list "(param_4,0x1c,1)" (( "(") (identifier "param_4") (, ",") (number_literal "0x1c") (, ",") (number_literal "1") () ")"))) (; ";"))) (expression_statement "iVar3 = strcmp((char *)param_1,"-noagent");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-noagent")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-noagent")" (identifier "strcmp") (argument_list "((char *)param_1,"-noagent")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-noagent"" (" """) (string_content "-noagent") (" """)) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108c37;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108c37;\n    }" ({ "{") (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(2,param_1)" (identifier "FUN_00108083") (argument_list "(2,param_1)" (( "(") (number_literal "2") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (goto_statement "goto LAB_00108c37;" (goto "goto") (statement_identifier "LAB_00108c37") (; ";")) (} "}"))) (expression_statement "iVar3 = strcmp((char *)param_1,"-nopagent");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-nopagent")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-nopagent")" (identifier "strcmp") (argument_list "((char *)param_1,"-nopagent")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-nopagent"" (" """) (string_content "-nopagent") (" """)) () ")")))) (; ";")) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_00109e76;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00109e76;" (goto "goto") (statement_identifier "LAB_00109e76") (; ";"))) (labeled_statement "LAB_00108d1b:\n    iVar3 = strcmp((char *)param_1,"-nopageant");" (statement_identifier "LAB_00108d1b") (: ":") (expression_statement "iVar3 = strcmp((char *)param_1,"-nopageant");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-nopageant")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-nopageant")" (identifier "strcmp") (argument_list "((char *)param_1,"-nopageant")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-nopageant"" (" """) (string_content "-nopageant") (" """)) () ")")))) (; ";"))) (if_statement "if (iVar3 == 0) goto LAB_00108d2e;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00108d2e;" (goto "goto") (statement_identifier "LAB_00108d2e") (; ";"))) (expression_statement "iVar3 = strcmp((char *)param_1,"-A");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-A")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-A")" (identifier "strcmp") (argument_list "((char *)param_1,"-A")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-A"" (" """) (string_content "-A") (" """)) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-a");\n      if (iVar3 != 0) goto LAB_00108c7d;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108db9;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = strcmp((char *)param_1,"-a");\n      if (iVar3 != 0) goto LAB_00108c7d;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108db9;\n    }" ({ "{") (expression_statement "iVar3 = strcmp((char *)param_1,"-a");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-a")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-a")" (identifier "strcmp") (argument_list "((char *)param_1,"-a")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-a"" (" """) (string_content "-a") (" """)) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_00108c7d;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00108c7d;" (goto "goto") (statement_identifier "LAB_00108c7d") (; ";"))) (if_statement "if (param_3 < 0) {\n        return 1;\n      }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (goto_statement "goto LAB_00108db9;" (goto "goto") (statement_identifier "LAB_00108db9") (; ";")) (} "}"))) (if_statement "if (param_3 < 0) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(3,param_1)" (identifier "FUN_00108083") (argument_list "(3,param_1)" (( "(") (number_literal "3") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" ({ "{") (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (labeled_statement "LAB_00109d88:\n    FUN_0010ac09(param_4,0x1d,1);" (statement_identifier "LAB_00109d88") (: ":") (expression_statement "FUN_0010ac09(param_4,0x1d,1);" (call_expression "FUN_0010ac09(param_4,0x1d,1)" (identifier "FUN_0010ac09") (argument_list "(param_4,0x1d,1)" (( "(") (identifier "param_4") (, ",") (number_literal "0x1d") (, ",") (number_literal "1") () ")"))) (; ";"))) (expression_statement "iVar3 = strcmp((char *)param_1,"-a");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-a")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-a")" (identifier "strcmp") (argument_list "((char *)param_1,"-a")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-a"" (" """) (string_content "-a") (" """)) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d25;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d25;\n    }" ({ "{") (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(3,param_1)" (identifier "FUN_00108083") (argument_list "(3,param_1)" (( "(") (number_literal "3") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (goto_statement "goto LAB_00109d25;" (goto "goto") (statement_identifier "LAB_00109d25") (; ";")) (} "}"))) (expression_statement "iVar3 = strcmp((char *)param_1,"-X");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-X")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-X")" (identifier "strcmp") (argument_list "((char *)param_1,"-X")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-X"" (" """) (string_content "-X") (" """)) () ")")))) (; ";")) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (if_statement "if (iVar3 == 0) {\nLAB_00108ca2:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109c0f;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00108ca2:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109c0f;\n    }" ({ "{") (labeled_statement "LAB_00108ca2:\n      iVar3 = FUN_00108083(3,param_1);" (statement_identifier "LAB_00108ca2") (: ":") (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(3,param_1)" (identifier "FUN_00108083") (argument_list "(3,param_1)" (( "(") (number_literal "3") (, ",") (identifier "param_1") () ")")))) (; ";"))) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }" ({ "{") (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (goto_statement "goto LAB_00109c0f;" (goto "goto") (statement_identifier "LAB_00109c0f") (; ";")) (} "}"))) (labeled_statement "LAB_00109dce:\n    iVar3 = strcmp((char *)param_1,"-x");" (statement_identifier "LAB_00109dce") (: ":") (expression_statement "iVar3 = strcmp((char *)param_1,"-x");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-x")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-x")" (identifier "strcmp") (argument_list "((char *)param_1,"-x")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-x"" (" """) (string_content "-x") (" """)) () ")")))) (; ";"))) (if_statement "if (iVar3 != 0) goto LAB_00109de5;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00109de5;" (goto "goto") (statement_identifier "LAB_00109de5") (; ";"))) (if_statement "if (param_3 < 0) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (labeled_statement "LAB_00108dff:\n    iVar3 = FUN_00108083(3,param_1);" (statement_identifier "LAB_00108dff") (: ":") (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(3,param_1)" (identifier "FUN_00108083") (argument_list "(3,param_1)" (( "(") (number_literal "3") (, ",") (identifier "param_1") () ")")))) (; ";"))) (if_statement "if (iVar3 != 0) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" ({ "{") (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (labeled_statement "LAB_00109c49:\n    FUN_0010ac09(param_4,0x95,0);" (statement_identifier "LAB_00109c49") (: ":") (expression_statement "FUN_0010ac09(param_4,0x95,0);" (call_expression "FUN_0010ac09(param_4,0x95,0)" (identifier "FUN_0010ac09") (argument_list "(param_4,0x95,0)" (( "(") (identifier "param_4") (, ",") (number_literal "0x95") (, ",") (number_literal "0") () ")"))) (; ";"))) (expression_statement "iVar3 = strcmp((char *)param_1,"-t");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-t")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-t")" (identifier "strcmp") (argument_list "((char *)param_1,"-t")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-t"" (" """) (string_content "-t") (" """)) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c87:\n      FUN_0010ac09(param_4,0x16,0);\n      iVar3 = strcmp((char *)param_1,"-T");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }\n      iVar3 = strcmp((char *)param_1,"-N");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109ba0;\n    }\n    else {\n      iVar3 = strcmp((char *)param_1,"-T");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109e21;\nLAB_00109b7b:\n      iVar3 = strcmp((char *)param_1,"-N");\n      if (iVar3 == 0) {\n        if (param_3 < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c87:\n      FUN_0010ac09(param_4,0x16,0);\n      iVar3 = strcmp((char *)param_1,"-T");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }\n      iVar3 = strcmp((char *)param_1,"-N");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109ba0;\n    }" ({ "{") (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(3,param_1)" (identifier "FUN_00108083") (argument_list "(3,param_1)" (( "(") (number_literal "3") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (labeled_statement "LAB_00109c87:\n      FUN_0010ac09(param_4,0x16,0);" (statement_identifier "LAB_00109c87") (: ":") (expression_statement "FUN_0010ac09(param_4,0x16,0);" (call_expression "FUN_0010ac09(param_4,0x16,0)" (identifier "FUN_0010ac09") (argument_list "(param_4,0x16,0)" (( "(") (identifier "param_4") (, ",") (number_literal "0x16") (, ",") (number_literal "0") () ")"))) (; ";"))) (expression_statement "iVar3 = strcmp((char *)param_1,"-T");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-T")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-T")" (identifier "strcmp") (argument_list "((char *)param_1,"-T")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-T"" (" """) (string_content "-T") (" """)) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109cc5;\n      }" ({ "{") (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(3,param_1)" (identifier "FUN_00108083") (argument_list "(3,param_1)" (( "(") (number_literal "3") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n          return 1;\n        }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          return 1;\n        }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (goto_statement "goto LAB_00109cc5;" (goto "goto") (statement_identifier "LAB_00109cc5") (; ";")) (} "}"))) (expression_statement "iVar3 = strcmp((char *)param_1,"-N");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-N")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-N")" (identifier "strcmp") (argument_list "((char *)param_1,"-N")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-N"" (" """) (string_content "-N") (" """)) () ")")))) (; ";")) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_00109ba0;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00109ba0;" (goto "goto") (statement_identifier "LAB_00109ba0") (; ";"))) (} "}")) (else_clause "else {\n      iVar3 = strcmp((char *)param_1,"-T");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109e21;\nLAB_00109b7b:\n      iVar3 = strcmp((char *)param_1,"-N");\n      if (iVar3 == 0) {\n        if (param_3 < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }\n    }" (else "else") (compound_statement "{\n      iVar3 = strcmp((char *)param_1,"-T");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00109e21;\nLAB_00109b7b:\n      iVar3 = strcmp((char *)param_1,"-N");\n      if (iVar3 == 0) {\n        if (param_3 < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }\n    }" ({ "{") (expression_statement "iVar3 = strcmp((char *)param_1,"-T");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-T")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-T")" (identifier "strcmp") (argument_list "((char *)param_1,"-T")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-T"" (" """) (string_content "-T") (" """)) () ")")))) (; ";")) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_00109e21;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00109e21;" (goto "goto") (statement_identifier "LAB_00109e21") (; ";"))) (labeled_statement "LAB_00109b7b:\n      iVar3 = strcmp((char *)param_1,"-N");" (statement_identifier "LAB_00109b7b") (: ":") (expression_statement "iVar3 = strcmp((char *)param_1,"-N");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-N")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-N")" (identifier "strcmp") (argument_list "((char *)param_1,"-N")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-N"" (" """) (string_content "-N") (" """)) () ")")))) (; ";"))) (if_statement "if (iVar3 == 0) {\n        if (param_3 < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (param_3 < 0) {\n          return 1;\n        }\nLAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }\n        goto LAB_00109a6e;\n      }" ({ "{") (if_statement "if (param_3 < 0) {\n          return 1;\n        }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          return 1;\n        }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (labeled_statement "LAB_00109ba0:\n        iVar3 = FUN_00108083(3,param_1);" (statement_identifier "LAB_00109ba0") (: ":") (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(3,param_1)" (identifier "FUN_00108083") (argument_list "(3,param_1)" (( "(") (number_literal "3") (, ",") (identifier "param_1") () ")")))) (; ";"))) (if_statement "if (iVar3 != 0) {\n          return 1;\n        }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          return 1;\n        }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_001080ad(param_1,param_2,0);\n          return 1;\n        }" ({ "{") (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (goto_statement "goto LAB_00109a6e;" (goto "goto") (statement_identifier "LAB_00109a6e") (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar3 = strcmp((char *)param_1,"-C");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-C")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-C")" (identifier "strcmp") (argument_list "((char *)param_1,"-C")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-C"" (" """) (string_content "-C") (" """)) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00108e8b:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\nLAB_0010989e:\n      FUN_0010ac09(param_4,0x17,1);\n      iVar3 = strcmp((char *)param_1,"-1");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }\n      iVar3 = strcmp((char *)param_1,"-2");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109930;\n      goto LAB_00109b26;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00108e8b:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\nLAB_0010989e:\n      FUN_0010ac09(param_4,0x17,1);\n      iVar3 = strcmp((char *)param_1,"-1");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }\n      iVar3 = strcmp((char *)param_1,"-2");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109930;\n      goto LAB_00109b26;\n    }" ({ "{") (if_statement "if (param_3 < 0) {\n        return 1;\n      }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (labeled_statement "LAB_00108e8b:\n      iVar3 = FUN_00108083(2,param_1);" (statement_identifier "LAB_00108e8b") (: ":") (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(2,param_1)" (identifier "FUN_00108083") (argument_list "(2,param_1)" (( "(") (number_literal "2") (, ",") (identifier "param_1") () ")")))) (; ";"))) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }" ({ "{") (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (labeled_statement "LAB_0010989e:\n      FUN_0010ac09(param_4,0x17,1);" (statement_identifier "LAB_0010989e") (: ":") (expression_statement "FUN_0010ac09(param_4,0x17,1);" (call_expression "FUN_0010ac09(param_4,0x17,1)" (identifier "FUN_0010ac09") (argument_list "(param_4,0x17,1)" (( "(") (identifier "param_4") (, ",") (number_literal "0x17") (, ",") (number_literal "1") () ")"))) (; ";"))) (expression_statement "iVar3 = strcmp((char *)param_1,"-1");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-1")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-1")" (identifier "strcmp") (argument_list "((char *)param_1,"-1")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-1"" (" """) (string_content "-1") (" """)) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_001098d8;\n      }" ({ "{") (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(2,param_1)" (identifier "FUN_00108083") (argument_list "(2,param_1)" (( "(") (number_literal "2") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n          return 1;\n        }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          return 1;\n        }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (goto_statement "goto LAB_001098d8;" (goto "goto") (statement_identifier "LAB_001098d8") (; ";")) (} "}"))) (expression_statement "iVar3 = strcmp((char *)param_1,"-2");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-2")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-2")" (identifier "strcmp") (argument_list "((char *)param_1,"-2")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-2"" (" """) (string_content "-2") (" """)) () ")")))) (; ";")) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_00109930;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00109930;" (goto "goto") (statement_identifier "LAB_00109930") (; ";"))) (goto_statement "goto LAB_00109b26;" (goto "goto") (statement_identifier "LAB_00109b26") (; ";")) (} "}"))) (labeled_statement "LAB_00109aea:\n    iVar3 = strcmp((char *)param_1,"-1");" (statement_identifier "LAB_00109aea") (: ":") (expression_statement "iVar3 = strcmp((char *)param_1,"-1");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-1")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-1")" (identifier "strcmp") (argument_list "((char *)param_1,"-1")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-1"" (" """) (string_content "-1") (" """)) () ")")))) (; ";"))) (if_statement "if (iVar3 != 0) goto LAB_00109b01;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00109b01;" (goto "goto") (statement_identifier "LAB_00109b01") (; ";"))) (if_statement "if (param_3 < 0) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (labeled_statement "LAB_00108ed1:\n    iVar3 = FUN_00108083(2,param_1);" (statement_identifier "LAB_00108ed1") (: ":") (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(2,param_1)" (identifier "FUN_00108083") (argument_list "(2,param_1)" (( "(") (number_literal "2") (, ",") (identifier "param_1") () ")")))) (; ";"))) (if_statement "if (iVar3 != 0) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" ({ "{") (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (labeled_statement "LAB_001098d8:\n    FUN_0010ac09(param_4,0x21,0);" (statement_identifier "LAB_001098d8") (: ":") (expression_statement "FUN_0010ac09(param_4,0x21,0);" (call_expression "FUN_0010ac09(param_4,0x21,0)" (identifier "FUN_0010ac09") (argument_list "(param_4,0x21,0)" (( "(") (identifier "param_4") (, ",") (number_literal "0x21") (, ",") (number_literal "0") () ")"))) (; ";"))) (expression_statement "iVar3 = strcmp((char *)param_1,"-2");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-2")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-2")" (identifier "strcmp") (argument_list "((char *)param_1,"-2")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-2"" (" """) (string_content "-2") (" """)) () ")")))) (; ";")) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_00109930;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00109930;" (goto "goto") (statement_identifier "LAB_00109930") (; ";"))) (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(2,param_1)" (identifier "FUN_00108083") (argument_list "(2,param_1)" (( "(") (number_literal "2") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (labeled_statement "LAB_00109918:\n    FUN_0010ac09(param_4,0x21,3);" (statement_identifier "LAB_00109918") (: ":") (expression_statement "FUN_0010ac09(param_4,0x21,3);" (call_expression "FUN_0010ac09(param_4,0x21,3)" (identifier "FUN_0010ac09") (argument_list "(param_4,0x21,3)" (( "(") (identifier "param_4") (, ",") (number_literal "0x21") (, ",") (number_literal "3") () ")"))) (; ";"))) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\nLAB_00108865:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2ac;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\nLAB_0010889d:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      bVar15 = param_3 == 0;\n      if (!bVar15) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001088cd;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)0x1440f1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_0010889d;\n    iVar3 = strcmp((char *)param_1,"-nc");\n    bVar15 = iVar3 == 0;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109fa5;\n    }\nLAB_00108a01:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2be;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109f54;\n    }\nLAB_0010a032:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2c1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar18 && !bVar15) != bVar18) goto LAB_00108afa;\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }\nLAB_00109749:\n    uVar9 = strtol(param_2,(char **)0x0,10);\n    FUN_0010ac09(param_4,1,uVar9 & 0xffffffff);\n    iVar3 = strcmp((char *)param_1,"-pw");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\nLAB_00109ee5:\n      iVar3 = FUN_0010a543(param_4,2);\n      if (iVar3 == 3) {\n        DAT_00152128 = FUN_0010bd5d(param_2);\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = param_2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        FUN_0010c727(param_2,~uVar9 - 1);\n      }\n      else {\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }\n      iVar3 = strcmp((char *)param_1,"-agent");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-pagent");\n        uVar5 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108bf9;\n    }\n    iVar3 = strcmp((char *)param_1,"-agent");\n    uVar5 = 2;\n    if (iVar3 == 0) goto LAB_00108bdc;\nLAB_00108ba4:\n    iVar3 = strcmp((char *)param_1,"-pagent");\n    if (iVar3 == 0) goto LAB_00108bce;\nLAB_00108bb7:\n    iVar3 = strcmp((char *)param_1,"-pageant");\n    if (iVar3 == 0) goto LAB_00108bce;\n    iVar3 = strcmp((char *)param_1,"-noagent");\n    if ((iVar3 != 0) && (iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0))\n    goto LAB_00108d1b;\nLAB_00108d2e:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e76:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00108c37:\n    FUN_0010ac09(param_4,0x1c,0);\n    iVar3 = strcmp((char *)param_1,"-A");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d88;\n    }\n    iVar3 = strcmp((char *)param_1,"-a");\n    if (iVar3 != 0) {\n      uVar5 = 1;\nLAB_00108c7d:\n      iVar3 = strcmp((char *)param_1,"-X");\n      if (iVar3 != 0) goto LAB_00109dce;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108ca2;\n    }\nLAB_00108db9:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109d25:\n    FUN_0010ac09(param_4,0x1d,0);\n    iVar3 = strcmp((char *)param_1,"-X");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c0f:\n      FUN_0010ac09(param_4,0x95,1);\n      iVar3 = strcmp((char *)param_1,"-x");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }\n      iVar3 = strcmp((char *)param_1,"-t");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109dfc;\nLAB_00108e45:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_00109c87;\n    }\n    iVar3 = strcmp((char *)param_1,"-x");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108dff;\nLAB_00109de5:\n    iVar3 = strcmp((char *)param_1,"-t");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108e45;\n    }\nLAB_00109dfc:\n    iVar3 = strcmp((char *)param_1,"-T");\n    if (iVar3 != 0) goto LAB_00109b7b;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e21:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_00109cc5:\n    FUN_0010ac09(param_4,0x16,1);\n    iVar3 = strcmp((char *)param_1,"-N");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-C");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00108e8b;\n      goto LAB_00109aea;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\nLAB_00109a6e:\n    FUN_0010ac09(param_4,0x2d,1);\n    iVar3 = strcmp((char *)param_1,"-C");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_0010989e;\n    }\n    iVar3 = strcmp((char *)param_1,"-1");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108ed1;\nLAB_00109b01:\n    iVar3 = strcmp((char *)param_1,"-2");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00109b26:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109918;\n    }\n  }" (else "else") (compound_statement "{\nLAB_00108865:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2ac;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\nLAB_0010889d:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      bVar15 = param_3 == 0;\n      if (!bVar15) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001088cd;\n    }\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = (byte *)0x1440f1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_0010889d;\n    iVar3 = strcmp((char *)param_1,"-nc");\n    bVar15 = iVar3 == 0;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109fa5;\n    }\nLAB_00108a01:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2be;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109f54;\n    }\nLAB_0010a032:\n    bVar18 = false;\n    lVar10 = 3;\n    pbVar11 = param_1;\n    pbVar12 = &DAT_0013b2c1;\n    do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar18 && !bVar15) != bVar18) goto LAB_00108afa;\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }\nLAB_00109749:\n    uVar9 = strtol(param_2,(char **)0x0,10);\n    FUN_0010ac09(param_4,1,uVar9 & 0xffffffff);\n    iVar3 = strcmp((char *)param_1,"-pw");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\nLAB_00109ee5:\n      iVar3 = FUN_0010a543(param_4,2);\n      if (iVar3 == 3) {\n        DAT_00152128 = FUN_0010bd5d(param_2);\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = param_2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        FUN_0010c727(param_2,~uVar9 - 1);\n      }\n      else {\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }\n      iVar3 = strcmp((char *)param_1,"-agent");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-pagent");\n        uVar5 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108bf9;\n    }\n    iVar3 = strcmp((char *)param_1,"-agent");\n    uVar5 = 2;\n    if (iVar3 == 0) goto LAB_00108bdc;\nLAB_00108ba4:\n    iVar3 = strcmp((char *)param_1,"-pagent");\n    if (iVar3 == 0) goto LAB_00108bce;\nLAB_00108bb7:\n    iVar3 = strcmp((char *)param_1,"-pageant");\n    if (iVar3 == 0) goto LAB_00108bce;\n    iVar3 = strcmp((char *)param_1,"-noagent");\n    if ((iVar3 != 0) && (iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0))\n    goto LAB_00108d1b;\nLAB_00108d2e:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e76:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00108c37:\n    FUN_0010ac09(param_4,0x1c,0);\n    iVar3 = strcmp((char *)param_1,"-A");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d88;\n    }\n    iVar3 = strcmp((char *)param_1,"-a");\n    if (iVar3 != 0) {\n      uVar5 = 1;\nLAB_00108c7d:\n      iVar3 = strcmp((char *)param_1,"-X");\n      if (iVar3 != 0) goto LAB_00109dce;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108ca2;\n    }\nLAB_00108db9:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }\nLAB_00109d25:\n    FUN_0010ac09(param_4,0x1d,0);\n    iVar3 = strcmp((char *)param_1,"-X");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c0f:\n      FUN_0010ac09(param_4,0x95,1);\n      iVar3 = strcmp((char *)param_1,"-x");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }\n      iVar3 = strcmp((char *)param_1,"-t");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109dfc;\nLAB_00108e45:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_00109c87;\n    }\n    iVar3 = strcmp((char *)param_1,"-x");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108dff;\nLAB_00109de5:\n    iVar3 = strcmp((char *)param_1,"-t");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108e45;\n    }\nLAB_00109dfc:\n    iVar3 = strcmp((char *)param_1,"-T");\n    if (iVar3 != 0) goto LAB_00109b7b;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00109e21:\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_00109cc5:\n    FUN_0010ac09(param_4,0x16,1);\n    iVar3 = strcmp((char *)param_1,"-N");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-C");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00108e8b;\n      goto LAB_00109aea;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 1;\n    }\nLAB_00109a6e:\n    FUN_0010ac09(param_4,0x2d,1);\n    iVar3 = strcmp((char *)param_1,"-C");\n    if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_0010989e;\n    }\n    iVar3 = strcmp((char *)param_1,"-1");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_00108ed1;\nLAB_00109b01:\n    iVar3 = strcmp((char *)param_1,"-2");\n    if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00109b26:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109918;\n    }\n  }" ({ "{") (labeled_statement "LAB_00108865:\n    bVar18 = false;" (statement_identifier "LAB_00108865") (: ":") (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" (identifier "bVar18") (= "=") (false "false")) (; ";"))) (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" (identifier "lVar10") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" (identifier "pbVar11") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar12 = &DAT_0013b2ac;" (assignment_expression "pbVar12 = &DAT_0013b2ac" (identifier "pbVar12") (= "=") (pointer_expression "&DAT_0013b2ac" (& "&") (identifier "DAT_0013b2ac"))) (; ";")) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);" (do "do") (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    }" ({ "{") (if_statement "if (lVar10 == 0) break;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar18 = *pbVar11 < *pbVar12;" (assignment_expression "bVar18 = *pbVar11 < *pbVar12" (identifier "bVar18") (= "=") (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" (identifier "bVar15") (= "=") (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" (identifier "bVar16") (= "=") (false "false")) (; ";")) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" (identifier "bVar15") (= "=") (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" (( "(") (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" (! "!") (identifier "bVar18")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar18"))) (; ";")) (if_statement "if (bVar15) {\nLAB_0010889d:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      bVar15 = param_3 == 0;\n      if (!bVar15) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001088cd;\n    }" (if "if") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (compound_statement "{\nLAB_0010889d:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      bVar15 = param_3 == 0;\n      if (!bVar15) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001088cd;\n    }" ({ "{") (labeled_statement "LAB_0010889d:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }" (statement_identifier "LAB_0010889d") (: ":") (if_statement "if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }" (if "if") (parenthesized_expression "(param_2 == (char *)0x0)" (( "(") (binary_expression "param_2 == (char *)0x0" (identifier "param_2") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        return 0xfffffffe;\n      }" ({ "{") (return_statement "return 0xfffffffe;" (return "return") (number_literal "0xfffffffe") (; ";")) (} "}")))) (if_statement "if (param_3 < 0) {\n        return 2;\n      }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        return 2;\n      }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(3,param_1)" (identifier "FUN_00108083") (argument_list "(3,param_1)" (( "(") (number_literal "3") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n        return 2;\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return 2;\n      }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (expression_statement "bVar15 = param_3 == 0;" (assignment_expression "bVar15 = param_3 == 0" (identifier "bVar15") (= "=") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0"))) (; ";")) (if_statement "if (!bVar15) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }" (if "if") (parenthesized_expression "(!bVar15)" (( "(") (unary_expression "!bVar15" (! "!") (identifier "bVar15")) () ")")) (compound_statement "{\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }" ({ "{") (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (goto_statement "goto LAB_001088cd;" (goto "goto") (statement_identifier "LAB_001088cd") (; ";")) (} "}"))) (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" (identifier "lVar10") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" (identifier "pbVar11") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar12 = (byte *)0x1440f1;" (assignment_expression "pbVar12 = (byte *)0x1440f1" (identifier "pbVar12") (= "=") (cast_expression "(byte *)0x1440f1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1440f1"))) (; ";")) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);" (do "do") (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    }" ({ "{") (if_statement "if (lVar10 == 0) break;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar16 = *pbVar11 < *pbVar12;" (assignment_expression "bVar16 = *pbVar11 < *pbVar12" (identifier "bVar16") (= "=") (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" (identifier "bVar15") (= "=") (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (if_statement "if ((!bVar16 && !bVar15) == bVar16) goto LAB_0010889d;" (if "if") (parenthesized_expression "((!bVar16 && !bVar15) == bVar16)" (( "(") (binary_expression "(!bVar16 && !bVar15) == bVar16" (parenthesized_expression "(!bVar16 && !bVar15)" (( "(") (binary_expression "!bVar16 && !bVar15" (unary_expression "!bVar16" (! "!") (identifier "bVar16")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar16")) () ")")) (goto_statement "goto LAB_0010889d;" (goto "goto") (statement_identifier "LAB_0010889d") (; ";"))) (expression_statement "iVar3 = strcmp((char *)param_1,"-nc");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-nc")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-nc")" (identifier "strcmp") (argument_list "((char *)param_1,"-nc")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-nc"" (" """) (string_content "-nc") (" """)) () ")")))) (; ";")) (expression_statement "bVar15 = iVar3 == 0;" (assignment_expression "bVar15 = iVar3 == 0" (identifier "bVar15") (= "=") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109fa5;\n    }" (if "if") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (compound_statement "{\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109fa5;\n    }" ({ "{") (if_statement "if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }" (if "if") (parenthesized_expression "(param_2 == (char *)0x0)" (( "(") (binary_expression "param_2 == (char *)0x0" (identifier "param_2") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        return 0xfffffffe;\n      }" ({ "{") (return_statement "return 0xfffffffe;" (return "return") (number_literal "0xfffffffe") (; ";")) (} "}"))) (if_statement "if (param_3 < 0) {\n        return 2;\n      }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        return 2;\n      }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(3,param_1)" (identifier "FUN_00108083") (argument_list "(3,param_1)" (( "(") (number_literal "3") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n        return 2;\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return 2;\n      }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (if_statement "if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }" ({ "{") (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (goto_statement "goto LAB_00109fa5;" (goto "goto") (statement_identifier "LAB_00109fa5") (; ";")) (} "}"))) (labeled_statement "LAB_00108a01:\n    bVar18 = false;" (statement_identifier "LAB_00108a01") (: ":") (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" (identifier "bVar18") (= "=") (false "false")) (; ";"))) (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" (identifier "lVar10") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" (identifier "pbVar11") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar12 = &DAT_0013b2be;" (assignment_expression "pbVar12 = &DAT_0013b2be" (identifier "pbVar12") (= "=") (pointer_expression "&DAT_0013b2be" (& "&") (identifier "DAT_0013b2be"))) (; ";")) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);" (do "do") (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    }" ({ "{") (if_statement "if (lVar10 == 0) break;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar18 = *pbVar11 < *pbVar12;" (assignment_expression "bVar18 = *pbVar11 < *pbVar12" (identifier "bVar18") (= "=") (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" (identifier "bVar15") (= "=") (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" (identifier "bVar15") (= "=") (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" (( "(") (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" (! "!") (identifier "bVar18")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar18"))) (; ";")) (if_statement "if (bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109f54;\n    }" (if "if") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (compound_statement "{\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_00109f54;\n    }" ({ "{") (if_statement "if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }" (if "if") (parenthesized_expression "(param_2 == (char *)0x0)" (( "(") (binary_expression "param_2 == (char *)0x0" (identifier "param_2") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        return 0xfffffffe;\n      }" ({ "{") (return_statement "return 0xfffffffe;" (return "return") (number_literal "0xfffffffe") (; ";")) (} "}"))) (if_statement "if (param_3 < 0) {\n        return 2;\n      }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        return 2;\n      }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(3,param_1)" (identifier "FUN_00108083") (argument_list "(3,param_1)" (( "(") (number_literal "3") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n        return 2;\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return 2;\n      }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (if_statement "if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }" ({ "{") (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (goto_statement "goto LAB_00109f54;" (goto "goto") (statement_identifier "LAB_00109f54") (; ";")) (} "}"))) (labeled_statement "LAB_0010a032:\n    bVar18 = false;" (statement_identifier "LAB_0010a032") (: ":") (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" (identifier "bVar18") (= "=") (false "false")) (; ";"))) (expression_statement "lVar10 = 3;" (assignment_expression "lVar10 = 3" (identifier "lVar10") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" (identifier "pbVar11") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar12 = &DAT_0013b2c1;" (assignment_expression "pbVar12 = &DAT_0013b2c1" (identifier "pbVar12") (= "=") (pointer_expression "&DAT_0013b2c1" (& "&") (identifier "DAT_0013b2c1"))) (; ";")) (do_statement "do {\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    } while (bVar15);" (do "do") (compound_statement "{\n      if (lVar10 == 0) break;\n      lVar10 = lVar10 + -1;\n      bVar18 = *pbVar11 < *pbVar12;\n      bVar15 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;\n    }" ({ "{") (if_statement "if (lVar10 == 0) break;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar18 = *pbVar11 < *pbVar12;" (assignment_expression "bVar18 = *pbVar11 < *pbVar12" (identifier "bVar18") (= "=") (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" (identifier "bVar15") (= "=") (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar20 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar20 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (if_statement "if ((!bVar18 && !bVar15) != bVar18) goto LAB_00108afa;" (if "if") (parenthesized_expression "((!bVar18 && !bVar15) != bVar18)" (( "(") (binary_expression "(!bVar18 && !bVar15) != bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" (( "(") (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" (! "!") (identifier "bVar18")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (!= "!=") (identifier "bVar18")) () ")")) (goto_statement "goto LAB_00108afa;" (goto "goto") (statement_identifier "LAB_00108afa") (; ";"))) (if_statement "if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }" (if "if") (parenthesized_expression "(param_2 == (char *)0x0)" (( "(") (binary_expression "param_2 == (char *)0x0" (identifier "param_2") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      return 0xfffffffe;\n    }" ({ "{") (return_statement "return 0xfffffffe;" (return "return") (number_literal "0xfffffffe") (; ";")) (} "}"))) (if_statement "if (param_3 < 0) {\n      return 2;\n    }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      return 2;\n    }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(2,param_1)" (identifier "FUN_00108083") (argument_list "(2,param_1)" (( "(") (number_literal "2") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      return 2;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return 2;\n    }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }" ({ "{") (expression_statement "FUN_001080ad(param_1,param_2,1);" (call_expression "FUN_001080ad(param_1,param_2,1)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,1)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "1") () ")"))) (; ";")) (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (labeled_statement "LAB_00109749:\n    uVar9 = strtol(param_2,(char **)0x0,10);" (statement_identifier "LAB_00109749") (: ":") (expression_statement "uVar9 = strtol(param_2,(char **)0x0,10);" (assignment_expression "uVar9 = strtol(param_2,(char **)0x0,10)" (identifier "uVar9") (= "=") (call_expression "strtol(param_2,(char **)0x0,10)" (identifier "strtol") (argument_list "(param_2,(char **)0x0,10)" (( "(") (identifier "param_2") (, ",") (cast_expression "(char **)0x0" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0")) (, ",") (number_literal "10") () ")")))) (; ";"))) (expression_statement "FUN_0010ac09(param_4,1,uVar9 & 0xffffffff);" (call_expression "FUN_0010ac09(param_4,1,uVar9 & 0xffffffff)" (identifier "FUN_0010ac09") (argument_list "(param_4,1,uVar9 & 0xffffffff)" (( "(") (identifier "param_4") (, ",") (number_literal "1") (, ",") (binary_expression "uVar9 & 0xffffffff" (identifier "uVar9") (& "&") (number_literal "0xffffffff")) () ")"))) (; ";")) (expression_statement "iVar3 = strcmp((char *)param_1,"-pw");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-pw")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-pw")" (identifier "strcmp") (argument_list "((char *)param_1,"-pw")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-pw"" (" """) (string_content "-pw") (" """)) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\nLAB_00109ee5:\n      iVar3 = FUN_0010a543(param_4,2);\n      if (iVar3 == 3) {\n        DAT_00152128 = FUN_0010bd5d(param_2);\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = param_2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        FUN_0010c727(param_2,~uVar9 - 1);\n      }\n      else {\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }\n      iVar3 = strcmp((char *)param_1,"-agent");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-pagent");\n        uVar5 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108bf9;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\nLAB_00109ee5:\n      iVar3 = FUN_0010a543(param_4,2);\n      if (iVar3 == 3) {\n        DAT_00152128 = FUN_0010bd5d(param_2);\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = param_2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        FUN_0010c727(param_2,~uVar9 - 1);\n      }\n      else {\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }\n      iVar3 = strcmp((char *)param_1,"-agent");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-pagent");\n        uVar5 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00108bf9;\n    }" ({ "{") (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(2,param_1)" (identifier "FUN_00108083") (argument_list "(2,param_1)" (( "(") (number_literal "2") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n        return 2;\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return 2;\n      }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (labeled_statement "LAB_00109ee5:\n      iVar3 = FUN_0010a543(param_4,2);" (statement_identifier "LAB_00109ee5") (: ":") (expression_statement "iVar3 = FUN_0010a543(param_4,2);" (assignment_expression "iVar3 = FUN_0010a543(param_4,2)" (identifier "iVar3") (= "=") (call_expression "FUN_0010a543(param_4,2)" (identifier "FUN_0010a543") (argument_list "(param_4,2)" (( "(") (identifier "param_4") (, ",") (number_literal "2") () ")")))) (; ";"))) (if_statement "if (iVar3 == 3) {\n        DAT_00152128 = FUN_0010bd5d(param_2);\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = param_2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        FUN_0010c727(param_2,~uVar9 - 1);\n      }\n      else {\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }" (if "if") (parenthesized_expression "(iVar3 == 3)" (( "(") (binary_expression "iVar3 == 3" (identifier "iVar3") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n        DAT_00152128 = FUN_0010bd5d(param_2);\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = param_2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        FUN_0010c727(param_2,~uVar9 - 1);\n      }" ({ "{") (expression_statement "DAT_00152128 = FUN_0010bd5d(param_2);" (assignment_expression "DAT_00152128 = FUN_0010bd5d(param_2)" (identifier "DAT_00152128") (= "=") (call_expression "FUN_0010bd5d(param_2)" (identifier "FUN_0010bd5d") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "uVar9 = 0xffffffffffffffff;" (assignment_expression "uVar9 = 0xffffffffffffffff" (identifier "uVar9") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar6 = param_2;" (assignment_expression "pcVar6 = param_2" (identifier "pcVar6") (= "=") (identifier "param_2")) (; ";")) (do_statement "do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');" (do "do") (compound_statement "{\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar2 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;\n        }" ({ "{") (if_statement "if (uVar9 == 0) break;" (if "if") (parenthesized_expression "(uVar9 == 0)" (( "(") (binary_expression "uVar9 == 0" (identifier "uVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" (identifier "uVar9") (= "=") (binary_expression "uVar9 - 1" (identifier "uVar9") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" (identifier "cVar2") (= "=") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6"))) (; ";")) (expression_statement "pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1" (identifier "pcVar6") (= "=") (binary_expression "pcVar6 + (ulong)bVar20 * -2 + 1" (binary_expression "pcVar6 + (ulong)bVar20 * -2" (identifier "pcVar6") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "FUN_0010c727(param_2,~uVar9 - 1);" (call_expression "FUN_0010c727(param_2,~uVar9 - 1)" (identifier "FUN_0010c727") (argument_list "(param_2,~uVar9 - 1)" (( "(") (identifier "param_2") (, ",") (binary_expression "~uVar9 - 1" (unary_expression "~uVar9" (~ "~") (identifier "uVar9")) (- "-") (number_literal "1")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }" (else "else") (compound_statement "{\n        FUN_00134fb0("the -pw option can only be used with the SSH protocol");\n      }" ({ "{") (expression_statement "FUN_00134fb0("the -pw option can only be used with the SSH protocol");" (call_expression "FUN_00134fb0("the -pw option can only be used with the SSH protocol")" (identifier "FUN_00134fb0") (argument_list "("the -pw option can only be used with the SSH protocol")" (( "(") (string_literal ""the -pw option can only be used with the SSH protocol"" (" """) (string_content "the -pw option can only be used with the SSH protocol") (" """)) () ")"))) (; ";")) (} "}")))) (expression_statement "iVar3 = strcmp((char *)param_1,"-agent");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-agent")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-agent")" (identifier "strcmp") (argument_list "((char *)param_1,"-agent")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-agent"" (" """) (string_content "-agent") (" """)) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-pagent");\n        uVar5 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar3 = strcmp((char *)param_1,"-pagent");\n        uVar5 = 2;\n        if (iVar3 != 0) goto LAB_00108bb7;\n        goto LAB_00108bdc;\n      }" ({ "{") (expression_statement "iVar3 = strcmp((char *)param_1,"-pagent");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-pagent")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-pagent")" (identifier "strcmp") (argument_list "((char *)param_1,"-pagent")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-pagent"" (" """) (string_content "-pagent") (" """)) () ")")))) (; ";")) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" (identifier "uVar5") (= "=") (number_literal "2")) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_00108bb7;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00108bb7;" (goto "goto") (statement_identifier "LAB_00108bb7") (; ";"))) (goto_statement "goto LAB_00108bdc;" (goto "goto") (statement_identifier "LAB_00108bdc") (; ";")) (} "}"))) (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(2,param_1)" (identifier "FUN_00108083") (argument_list "(2,param_1)" (( "(") (number_literal "2") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (goto_statement "goto LAB_00108bf9;" (goto "goto") (statement_identifier "LAB_00108bf9") (; ";")) (} "}"))) (expression_statement "iVar3 = strcmp((char *)param_1,"-agent");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-agent")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-agent")" (identifier "strcmp") (argument_list "((char *)param_1,"-agent")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-agent"" (" """) (string_content "-agent") (" """)) () ")")))) (; ";")) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" (identifier "uVar5") (= "=") (number_literal "2")) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_00108bdc;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00108bdc;" (goto "goto") (statement_identifier "LAB_00108bdc") (; ";"))) (labeled_statement "LAB_00108ba4:\n    iVar3 = strcmp((char *)param_1,"-pagent");" (statement_identifier "LAB_00108ba4") (: ":") (expression_statement "iVar3 = strcmp((char *)param_1,"-pagent");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-pagent")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-pagent")" (identifier "strcmp") (argument_list "((char *)param_1,"-pagent")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-pagent"" (" """) (string_content "-pagent") (" """)) () ")")))) (; ";"))) (if_statement "if (iVar3 == 0) goto LAB_00108bce;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00108bce;" (goto "goto") (statement_identifier "LAB_00108bce") (; ";"))) (labeled_statement "LAB_00108bb7:\n    iVar3 = strcmp((char *)param_1,"-pageant");" (statement_identifier "LAB_00108bb7") (: ":") (expression_statement "iVar3 = strcmp((char *)param_1,"-pageant");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-pageant")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-pageant")" (identifier "strcmp") (argument_list "((char *)param_1,"-pageant")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-pageant"" (" """) (string_content "-pageant") (" """)) () ")")))) (; ";"))) (if_statement "if (iVar3 == 0) goto LAB_00108bce;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00108bce;" (goto "goto") (statement_identifier "LAB_00108bce") (; ";"))) (expression_statement "iVar3 = strcmp((char *)param_1,"-noagent");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-noagent")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-noagent")" (identifier "strcmp") (argument_list "((char *)param_1,"-noagent")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-noagent"" (" """) (string_content "-noagent") (" """)) () ")")))) (; ";")) (if_statement "if ((iVar3 != 0) && (iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0))\n    goto LAB_00108d1b;" (if "if") (parenthesized_expression "((iVar3 != 0) && (iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0))" (( "(") (binary_expression "(iVar3 != 0) && (iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0)" (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0)" (( "(") (comma_expression "iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0" (assignment_expression "iVar3 = strcmp((char *)param_1,"-nopagent")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-nopagent")" (identifier "strcmp") (argument_list "((char *)param_1,"-nopagent")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-nopagent"" (" """) (string_content "-nopagent") (" """)) () ")")))) (, ",") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_00108d1b;" (goto "goto") (statement_identifier "LAB_00108d1b") (; ";"))) (labeled_statement "LAB_00108d2e:\n    if (param_3 < 0) {\n      return 1;\n    }" (statement_identifier "LAB_00108d2e") (: ":") (if_statement "if (param_3 < 0) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))) (labeled_statement "LAB_00109e76:\n    iVar3 = FUN_00108083(2,param_1);" (statement_identifier "LAB_00109e76") (: ":") (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(2,param_1)" (identifier "FUN_00108083") (argument_list "(2,param_1)" (( "(") (number_literal "2") (, ",") (identifier "param_1") () ")")))) (; ";"))) (if_statement "if (iVar3 != 0) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" ({ "{") (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (labeled_statement "LAB_00108c37:\n    FUN_0010ac09(param_4,0x1c,0);" (statement_identifier "LAB_00108c37") (: ":") (expression_statement "FUN_0010ac09(param_4,0x1c,0);" (call_expression "FUN_0010ac09(param_4,0x1c,0)" (identifier "FUN_0010ac09") (argument_list "(param_4,0x1c,0)" (( "(") (identifier "param_4") (, ",") (number_literal "0x1c") (, ",") (number_literal "0") () ")"))) (; ";"))) (expression_statement "iVar3 = strcmp((char *)param_1,"-A");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-A")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-A")" (identifier "strcmp") (argument_list "((char *)param_1,"-A")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-A"" (" """) (string_content "-A") (" """)) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d88;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_00109d88;\n    }" ({ "{") (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(3,param_1)" (identifier "FUN_00108083") (argument_list "(3,param_1)" (( "(") (number_literal "3") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (goto_statement "goto LAB_00109d88;" (goto "goto") (statement_identifier "LAB_00109d88") (; ";")) (} "}"))) (expression_statement "iVar3 = strcmp((char *)param_1,"-a");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-a")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-a")" (identifier "strcmp") (argument_list "((char *)param_1,"-a")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-a"" (" """) (string_content "-a") (" """)) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      uVar5 = 1;\nLAB_00108c7d:\n      iVar3 = strcmp((char *)param_1,"-X");\n      if (iVar3 != 0) goto LAB_00109dce;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108ca2;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar5 = 1;\nLAB_00108c7d:\n      iVar3 = strcmp((char *)param_1,"-X");\n      if (iVar3 != 0) goto LAB_00109dce;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108ca2;\n    }" ({ "{") (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_00108c7d:\n      iVar3 = strcmp((char *)param_1,"-X");" (statement_identifier "LAB_00108c7d") (: ":") (expression_statement "iVar3 = strcmp((char *)param_1,"-X");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-X")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-X")" (identifier "strcmp") (argument_list "((char *)param_1,"-X")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-X"" (" """) (string_content "-X") (" """)) () ")")))) (; ";"))) (if_statement "if (iVar3 != 0) goto LAB_00109dce;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00109dce;" (goto "goto") (statement_identifier "LAB_00109dce") (; ";"))) (if_statement "if (param_3 < 0) {\n        return 1;\n      }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (goto_statement "goto LAB_00108ca2;" (goto "goto") (statement_identifier "LAB_00108ca2") (; ";")) (} "}"))) (labeled_statement "LAB_00108db9:\n    iVar3 = FUN_00108083(3,param_1);" (statement_identifier "LAB_00108db9") (: ":") (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(3,param_1)" (identifier "FUN_00108083") (argument_list "(3,param_1)" (( "(") (number_literal "3") (, ",") (identifier "param_1") () ")")))) (; ";"))) (if_statement "if (iVar3 != 0) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 1;\n    }" ({ "{") (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (labeled_statement "LAB_00109d25:\n    FUN_0010ac09(param_4,0x1d,0);" (statement_identifier "LAB_00109d25") (: ":") (expression_statement "FUN_0010ac09(param_4,0x1d,0);" (call_expression "FUN_0010ac09(param_4,0x1d,0)" (identifier "FUN_0010ac09") (argument_list "(param_4,0x1d,0)" (( "(") (identifier "param_4") (, ",") (number_literal "0x1d") (, ",") (number_literal "0") () ")"))) (; ";"))) (expression_statement "iVar3 = strcmp((char *)param_1,"-X");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-X")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-X")" (identifier "strcmp") (argument_list "((char *)param_1,"-X")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-X"" (" """) (string_content "-X") (" """)) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c0f:\n      FUN_0010ac09(param_4,0x95,1);\n      iVar3 = strcmp((char *)param_1,"-x");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }\n      iVar3 = strcmp((char *)param_1,"-t");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109dfc;\nLAB_00108e45:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_00109c87;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\nLAB_00109c0f:\n      FUN_0010ac09(param_4,0x95,1);\n      iVar3 = strcmp((char *)param_1,"-x");\n      if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }\n      iVar3 = strcmp((char *)param_1,"-t");\n      uVar5 = 1;\n      if (iVar3 != 0) goto LAB_00109dfc;\nLAB_00108e45:\n      iVar3 = FUN_00108083(3,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_00109c87;\n    }" ({ "{") (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(3,param_1)" (identifier "FUN_00108083") (argument_list "(3,param_1)" (( "(") (number_literal "3") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (labeled_statement "LAB_00109c0f:\n      FUN_0010ac09(param_4,0x95,1);" (statement_identifier "LAB_00109c0f") (: ":") (expression_statement "FUN_0010ac09(param_4,0x95,1);" (call_expression "FUN_0010ac09(param_4,0x95,1)" (identifier "FUN_0010ac09") (argument_list "(param_4,0x95,1)" (( "(") (identifier "param_4") (, ",") (number_literal "0x95") (, ",") (number_literal "1") () ")"))) (; ";"))) (expression_statement "iVar3 = strcmp((char *)param_1,"-x");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-x")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-x")" (identifier "strcmp") (argument_list "((char *)param_1,"-x")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-x"" (" """) (string_content "-x") (" """)) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar3 = FUN_00108083(3,param_1);\n        if (iVar3 != 0) {\n          return 1;\n        }\n        goto LAB_00109c49;\n      }" ({ "{") (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(3,param_1)" (identifier "FUN_00108083") (argument_list "(3,param_1)" (( "(") (number_literal "3") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n          return 1;\n        }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          return 1;\n        }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (goto_statement "goto LAB_00109c49;" (goto "goto") (statement_identifier "LAB_00109c49") (; ";")) (} "}"))) (expression_statement "iVar3 = strcmp((char *)param_1,"-t");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-t")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-t")" (identifier "strcmp") (argument_list "((char *)param_1,"-t")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-t"" (" """) (string_content "-t") (" """)) () ")")))) (; ";")) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_00109dfc;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00109dfc;" (goto "goto") (statement_identifier "LAB_00109dfc") (; ";"))) (labeled_statement "LAB_00108e45:\n      iVar3 = FUN_00108083(3,param_1);" (statement_identifier "LAB_00108e45") (: ":") (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(3,param_1)" (identifier "FUN_00108083") (argument_list "(3,param_1)" (( "(") (number_literal "3") (, ",") (identifier "param_1") () ")")))) (; ";"))) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }" ({ "{") (expression_statement "FUN_001080ad(param_1,param_2,1);" (call_expression "FUN_001080ad(param_1,param_2,1)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,1)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "1") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (goto_statement "goto LAB_00109c87;" (goto "goto") (statement_identifier "LAB_00109c87") (; ";")) (} "}"))) (expression_statement "iVar3 = strcmp((char *)param_1,"-x");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-x")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-x")" (identifier "strcmp") (argument_list "((char *)param_1,"-x")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-x"" (" """) (string_content "-x") (" """)) () ")")))) (; ";")) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_00108dff;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00108dff;" (goto "goto") (statement_identifier "LAB_00108dff") (; ";"))) (labeled_statement "LAB_00109de5:\n    iVar3 = strcmp((char *)param_1,"-t");" (statement_identifier "LAB_00109de5") (: ":") (expression_statement "iVar3 = strcmp((char *)param_1,"-t");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-t")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-t")" (identifier "strcmp") (argument_list "((char *)param_1,"-t")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-t"" (" """) (string_content "-t") (" """)) () ")")))) (; ";"))) (if_statement "if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108e45;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_00108e45;\n    }" ({ "{") (if_statement "if (param_3 < 0) {\n        return 1;\n      }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (goto_statement "goto LAB_00108e45;" (goto "goto") (statement_identifier "LAB_00108e45") (; ";")) (} "}"))) (labeled_statement "LAB_00109dfc:\n    iVar3 = strcmp((char *)param_1,"-T");" (statement_identifier "LAB_00109dfc") (: ":") (expression_statement "iVar3 = strcmp((char *)param_1,"-T");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-T")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-T")" (identifier "strcmp") (argument_list "((char *)param_1,"-T")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-T"" (" """) (string_content "-T") (" """)) () ")")))) (; ";"))) (if_statement "if (iVar3 != 0) goto LAB_00109b7b;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00109b7b;" (goto "goto") (statement_identifier "LAB_00109b7b") (; ";"))) (if_statement "if (param_3 < 0) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (labeled_statement "LAB_00109e21:\n    iVar3 = FUN_00108083(3,param_1);" (statement_identifier "LAB_00109e21") (: ":") (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(3,param_1)" (identifier "FUN_00108083") (argument_list "(3,param_1)" (( "(") (number_literal "3") (, ",") (identifier "param_1") () ")")))) (; ";"))) (if_statement "if (iVar3 != 0) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }" ({ "{") (expression_statement "FUN_001080ad(param_1,param_2,1);" (call_expression "FUN_001080ad(param_1,param_2,1)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,1)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "1") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (labeled_statement "LAB_00109cc5:\n    FUN_0010ac09(param_4,0x16,1);" (statement_identifier "LAB_00109cc5") (: ":") (expression_statement "FUN_0010ac09(param_4,0x16,1);" (call_expression "FUN_0010ac09(param_4,0x16,1)" (identifier "FUN_0010ac09") (argument_list "(param_4,0x16,1)" (( "(") (identifier "param_4") (, ",") (number_literal "0x16") (, ",") (number_literal "1") () ")"))) (; ";"))) (expression_statement "iVar3 = strcmp((char *)param_1,"-N");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-N")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-N")" (identifier "strcmp") (argument_list "((char *)param_1,"-N")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-N"" (" """) (string_content "-N") (" """)) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-C");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00108e8b;\n      goto LAB_00109aea;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = strcmp((char *)param_1,"-C");\n      uVar5 = 1;\n      if (iVar3 == 0) goto LAB_00108e8b;\n      goto LAB_00109aea;\n    }" ({ "{") (expression_statement "iVar3 = strcmp((char *)param_1,"-C");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-C")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-C")" (identifier "strcmp") (argument_list "((char *)param_1,"-C")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-C"" (" """) (string_content "-C") (" """)) () ")")))) (; ";")) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_00108e8b;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00108e8b;" (goto "goto") (statement_identifier "LAB_00108e8b") (; ";"))) (goto_statement "goto LAB_00109aea;" (goto "goto") (statement_identifier "LAB_00109aea") (; ";")) (} "}"))) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(3,param_1)" (identifier "FUN_00108083") (argument_list "(3,param_1)" (( "(") (number_literal "3") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (labeled_statement "LAB_00109a6e:\n    FUN_0010ac09(param_4,0x2d,1);" (statement_identifier "LAB_00109a6e") (: ":") (expression_statement "FUN_0010ac09(param_4,0x2d,1);" (call_expression "FUN_0010ac09(param_4,0x2d,1)" (identifier "FUN_0010ac09") (argument_list "(param_4,0x2d,1)" (( "(") (identifier "param_4") (, ",") (number_literal "0x2d") (, ",") (number_literal "1") () ")"))) (; ";"))) (expression_statement "iVar3 = strcmp((char *)param_1,"-C");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-C")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-C")" (identifier "strcmp") (argument_list "((char *)param_1,"-C")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-C"" (" """) (string_content "-C") (" """)) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_0010989e;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      goto LAB_0010989e;\n    }" ({ "{") (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(2,param_1)" (identifier "FUN_00108083") (argument_list "(2,param_1)" (( "(") (number_literal "2") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (goto_statement "goto LAB_0010989e;" (goto "goto") (statement_identifier "LAB_0010989e") (; ";")) (} "}"))) (expression_statement "iVar3 = strcmp((char *)param_1,"-1");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-1")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-1")" (identifier "strcmp") (argument_list "((char *)param_1,"-1")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-1"" (" """) (string_content "-1") (" """)) () ")")))) (; ";")) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_00108ed1;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00108ed1;" (goto "goto") (statement_identifier "LAB_00108ed1") (; ";"))) (labeled_statement "LAB_00109b01:\n    iVar3 = strcmp((char *)param_1,"-2");" (statement_identifier "LAB_00109b01") (: ":") (expression_statement "iVar3 = strcmp((char *)param_1,"-2");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-2")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-2")" (identifier "strcmp") (argument_list "((char *)param_1,"-2")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-2"" (" """) (string_content "-2") (" """)) () ")")))) (; ";"))) (if_statement "if (iVar3 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00109b26:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109918;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00109b26:\n      iVar3 = FUN_00108083(2,param_1);\n      if (iVar3 != 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }\n      goto LAB_00109918;\n    }" ({ "{") (if_statement "if (param_3 < 0) {\n        return 1;\n      }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (labeled_statement "LAB_00109b26:\n      iVar3 = FUN_00108083(2,param_1);" (statement_identifier "LAB_00109b26") (: ":") (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(2,param_1)" (identifier "FUN_00108083") (argument_list "(2,param_1)" (( "(") (number_literal "2") (, ",") (identifier "param_1") () ")")))) (; ";"))) (if_statement "if (iVar3 != 0) {\n        return 1;\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_001080ad(param_1,param_2,0);\n        return 1;\n      }" ({ "{") (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (goto_statement "goto LAB_00109918;" (goto "goto") (statement_identifier "LAB_00109918") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_00109930:\n  iVar3 = strcmp((char *)param_1,"-i");" (statement_identifier "LAB_00109930") (: ":") (expression_statement "iVar3 = strcmp((char *)param_1,"-i");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-i")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-i")" (identifier "strcmp") (argument_list "((char *)param_1,"-i")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-i"" (" """) (string_content "-i") (" """)) () ")")))) (; ";"))) (if_statement "if (iVar3 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    uVar5 = FUN_001321a4(param_2);\n    FUN_0010af59(param_4,0x20,uVar5);\n    FUN_00132212(uVar5);\n    iVar3 = strcmp((char *)param_1,"-4");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-ipv4");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_00109814;\n    }\nLAB_001099af:\n    FUN_0010ac09(param_4,3,1);\n    iVar3 = strcmp((char *)param_1,"-6");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_001099de;\nLAB_00109827:\n    iVar3 = strcmp((char *)param_1,"-ipv6");\n    if (iVar3 == 0) goto LAB_0010983e;\n  }\n  else {\n    iVar3 = strcmp((char *)param_1,"-4");\n    if ((iVar3 == 0) || (iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_001099af;\n    }\nLAB_00109814:\n    iVar3 = strcmp((char *)param_1,"-6");\n    if (iVar3 != 0) goto LAB_00109827;\nLAB_0010983e:\n    if (param_3 < 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_001099de:\n    FUN_0010ac09(param_4,3,2);\n    uVar5 = 1;\n  }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n    uVar5 = FUN_001321a4(param_2);\n    FUN_0010af59(param_4,0x20,uVar5);\n    FUN_00132212(uVar5);\n    iVar3 = strcmp((char *)param_1,"-4");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-ipv4");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_00109814;\n    }\nLAB_001099af:\n    FUN_0010ac09(param_4,3,1);\n    iVar3 = strcmp((char *)param_1,"-6");\n    uVar5 = 1;\n    if (iVar3 == 0) goto LAB_001099de;\nLAB_00109827:\n    iVar3 = strcmp((char *)param_1,"-ipv6");\n    if (iVar3 == 0) goto LAB_0010983e;\n  }" ({ "{") (if_statement "if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }" (if "if") (parenthesized_expression "(param_2 == (char *)0x0)" (( "(") (binary_expression "param_2 == (char *)0x0" (identifier "param_2") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      return 0xfffffffe;\n    }" ({ "{") (return_statement "return 0xfffffffe;" (return "return") (number_literal "0xfffffffe") (; ";")) (} "}"))) (if_statement "if (param_3 < 0) {\n      return 2;\n    }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      return 2;\n    }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(2,param_1)" (identifier "FUN_00108083") (argument_list "(2,param_1)" (( "(") (number_literal "2") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      return 2;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return 2;\n    }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }" ({ "{") (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (expression_statement "uVar5 = FUN_001321a4(param_2);" (assignment_expression "uVar5 = FUN_001321a4(param_2)" (identifier "uVar5") (= "=") (call_expression "FUN_001321a4(param_2)" (identifier "FUN_001321a4") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "FUN_0010af59(param_4,0x20,uVar5);" (call_expression "FUN_0010af59(param_4,0x20,uVar5)" (identifier "FUN_0010af59") (argument_list "(param_4,0x20,uVar5)" (( "(") (identifier "param_4") (, ",") (number_literal "0x20") (, ",") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "FUN_00132212(uVar5);" (call_expression "FUN_00132212(uVar5)" (identifier "FUN_00132212") (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "iVar3 = strcmp((char *)param_1,"-4");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-4")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-4")" (identifier "strcmp") (argument_list "((char *)param_1,"-4")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-4"" (" """) (string_content "-4") (" """)) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-ipv4");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_00109814;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = strcmp((char *)param_1,"-ipv4");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_00109814;\n    }" ({ "{") (expression_statement "iVar3 = strcmp((char *)param_1,"-ipv4");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-ipv4")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-ipv4")" (identifier "strcmp") (argument_list "((char *)param_1,"-ipv4")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-ipv4"" (" """) (string_content "-ipv4") (" """)) () ")")))) (; ";")) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" (identifier "uVar5") (= "=") (number_literal "2")) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_00109814;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00109814;" (goto "goto") (statement_identifier "LAB_00109814") (; ";"))) (} "}"))) (labeled_statement "LAB_001099af:\n    FUN_0010ac09(param_4,3,1);" (statement_identifier "LAB_001099af") (: ":") (expression_statement "FUN_0010ac09(param_4,3,1);" (call_expression "FUN_0010ac09(param_4,3,1)" (identifier "FUN_0010ac09") (argument_list "(param_4,3,1)" (( "(") (identifier "param_4") (, ",") (number_literal "3") (, ",") (number_literal "1") () ")"))) (; ";"))) (expression_statement "iVar3 = strcmp((char *)param_1,"-6");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-6")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-6")" (identifier "strcmp") (argument_list "((char *)param_1,"-6")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-6"" (" """) (string_content "-6") (" """)) () ")")))) (; ";")) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_001099de;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001099de;" (goto "goto") (statement_identifier "LAB_001099de") (; ";"))) (labeled_statement "LAB_00109827:\n    iVar3 = strcmp((char *)param_1,"-ipv6");" (statement_identifier "LAB_00109827") (: ":") (expression_statement "iVar3 = strcmp((char *)param_1,"-ipv6");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-ipv6")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-ipv6")" (identifier "strcmp") (argument_list "((char *)param_1,"-ipv6")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-ipv6"" (" """) (string_content "-ipv6") (" """)) () ")")))) (; ";"))) (if_statement "if (iVar3 == 0) goto LAB_0010983e;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0010983e;" (goto "goto") (statement_identifier "LAB_0010983e") (; ";"))) (} "}")) (else_clause "else {\n    iVar3 = strcmp((char *)param_1,"-4");\n    if ((iVar3 == 0) || (iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_001099af;\n    }\nLAB_00109814:\n    iVar3 = strcmp((char *)param_1,"-6");\n    if (iVar3 != 0) goto LAB_00109827;\nLAB_0010983e:\n    if (param_3 < 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_001099de:\n    FUN_0010ac09(param_4,3,2);\n    uVar5 = 1;\n  }" (else "else") (compound_statement "{\n    iVar3 = strcmp((char *)param_1,"-4");\n    if ((iVar3 == 0) || (iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_001099af;\n    }\nLAB_00109814:\n    iVar3 = strcmp((char *)param_1,"-6");\n    if (iVar3 != 0) goto LAB_00109827;\nLAB_0010983e:\n    if (param_3 < 0) {\n      return 1;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }\nLAB_001099de:\n    FUN_0010ac09(param_4,3,2);\n    uVar5 = 1;\n  }" ({ "{") (expression_statement "iVar3 = strcmp((char *)param_1,"-4");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-4")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-4")" (identifier "strcmp") (argument_list "((char *)param_1,"-4")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-4"" (" """) (string_content "-4") (" """)) () ")")))) (; ";")) (if_statement "if ((iVar3 == 0) || (iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_001099af;\n    }" (if "if") (parenthesized_expression "((iVar3 == 0) || (iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0))" (( "(") (binary_expression "(iVar3 == 0) || (iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0)" (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0)" (( "(") (comma_expression "iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0" (assignment_expression "iVar3 = strcmp((char *)param_1,"-ipv4")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-ipv4")" (identifier "strcmp") (argument_list "((char *)param_1,"-ipv4")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-ipv4"" (" """) (string_content "-ipv4") (" """)) () ")")))) (, ",") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }\n      goto LAB_001099af;\n    }" ({ "{") (if_statement "if (param_3 < 0) {\n        return 1;\n      }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_001080ad(param_1,param_2,1);\n        return 1;\n      }" ({ "{") (expression_statement "FUN_001080ad(param_1,param_2,1);" (call_expression "FUN_001080ad(param_1,param_2,1)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,1)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "1") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (goto_statement "goto LAB_001099af;" (goto "goto") (statement_identifier "LAB_001099af") (; ";")) (} "}"))) (labeled_statement "LAB_00109814:\n    iVar3 = strcmp((char *)param_1,"-6");" (statement_identifier "LAB_00109814") (: ":") (expression_statement "iVar3 = strcmp((char *)param_1,"-6");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-6")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-6")" (identifier "strcmp") (argument_list "((char *)param_1,"-6")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-6"" (" """) (string_content "-6") (" """)) () ")")))) (; ";"))) (if_statement "if (iVar3 != 0) goto LAB_00109827;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00109827;" (goto "goto") (statement_identifier "LAB_00109827") (; ";"))) (labeled_statement "LAB_0010983e:\n    if (param_3 < 0) {\n      return 1;\n    }" (statement_identifier "LAB_0010983e") (: ":") (if_statement "if (param_3 < 0) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_001080ad(param_1,param_2,1);\n      return 1;\n    }" ({ "{") (expression_statement "FUN_001080ad(param_1,param_2,1);" (call_expression "FUN_001080ad(param_1,param_2,1)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,1)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "1") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (labeled_statement "LAB_001099de:\n    FUN_0010ac09(param_4,3,2);" (statement_identifier "LAB_001099de") (: ":") (expression_statement "FUN_0010ac09(param_4,3,2);" (call_expression "FUN_0010ac09(param_4,3,2)" (identifier "FUN_0010ac09") (argument_list "(param_4,3,2)" (( "(") (identifier "param_4") (, ",") (number_literal "3") (, ",") (number_literal "2") () ")"))) (; ";"))) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (} "}")))) (expression_statement "iVar3 = strcmp((char *)param_1,"-sercfg");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-sercfg")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-sercfg")" (identifier "strcmp") (argument_list "((char *)param_1,"-sercfg")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-sercfg"" (" """) (string_content "-sercfg") (" """)) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }\n    iVar3 = FUN_0010a543(param_4,2);\n    pcVar6 = param_2;\n    if (iVar3 != 4) {\n      FUN_00134fb0("the -sercfg option can only be used with the serial protocol");\n    }\n    for (; *pcVar6 != '\0'; pcVar6 = pcVar6 + (local_48 + iVar3)) {\n      pcVar8 = strchr(pcVar6,0x2c);\n      if (pcVar8 == (char *)0x0) {\n        lVar10 = -1;\n        pcVar8 = pcVar6;\n        do {\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        iVar3 = ~(uint)lVar10 - 1;\n        local_48 = 0;\n      }\n      else {\n        iVar3 = (int)pcVar8 - (int)pcVar6;\n        pcVar6[iVar3] = '\0';\n        local_48 = 1;\n      }\n      if (iVar3 == 1) {\n        cVar2 = *pcVar6;\n        switch(cVar2) {\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }\n      }\n      else if ((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)) {\n        FUN_0010ac09(param_4,0x3c,3);\n      }\n      else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }\n    }\n    iVar3 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-sshlog");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_0010921f;\n      goto LAB_0010924d;\n    }\n    iVar3 = FUN_00108083(1,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_001095f3:\n    uVar5 = FUN_001321a4(param_2);\n    FUN_0010af59(param_4,0x77,uVar5);\n    FUN_0010ac09(param_4,0x78,2);\n    FUN_00132212(uVar5);\n    iVar3 = strcmp((char *)param_1,"-sshlog");\n    uVar5 = 2;\n    if (iVar3 != 0) {\nLAB_0010921f:\n      iVar3 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar3 != 0) {\n          return uVar5;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }\n      goto LAB_00109236;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n  }\n  else {\n    iVar3 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(1,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001095f3;\n    }\n    iVar3 = strcmp((char *)param_1,"-sshlog");\n    if (iVar3 != 0) goto LAB_0010921f;\nLAB_00109236:\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\nLAB_0010924d:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n  }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    iVar3 = FUN_00108083(3,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }\n    iVar3 = FUN_0010a543(param_4,2);\n    pcVar6 = param_2;\n    if (iVar3 != 4) {\n      FUN_00134fb0("the -sercfg option can only be used with the serial protocol");\n    }\n    for (; *pcVar6 != '\0'; pcVar6 = pcVar6 + (local_48 + iVar3)) {\n      pcVar8 = strchr(pcVar6,0x2c);\n      if (pcVar8 == (char *)0x0) {\n        lVar10 = -1;\n        pcVar8 = pcVar6;\n        do {\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        iVar3 = ~(uint)lVar10 - 1;\n        local_48 = 0;\n      }\n      else {\n        iVar3 = (int)pcVar8 - (int)pcVar6;\n        pcVar6[iVar3] = '\0';\n        local_48 = 1;\n      }\n      if (iVar3 == 1) {\n        cVar2 = *pcVar6;\n        switch(cVar2) {\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }\n      }\n      else if ((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)) {\n        FUN_0010ac09(param_4,0x3c,3);\n      }\n      else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }\n    }\n    iVar3 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-sshlog");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_0010921f;\n      goto LAB_0010924d;\n    }\n    iVar3 = FUN_00108083(1,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\nLAB_001095f3:\n    uVar5 = FUN_001321a4(param_2);\n    FUN_0010af59(param_4,0x77,uVar5);\n    FUN_0010ac09(param_4,0x78,2);\n    FUN_00132212(uVar5);\n    iVar3 = strcmp((char *)param_1,"-sshlog");\n    uVar5 = 2;\n    if (iVar3 != 0) {\nLAB_0010921f:\n      iVar3 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar3 != 0) {\n          return uVar5;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }\n      goto LAB_00109236;\n    }\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n  }" ({ "{") (if_statement "if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }" (if "if") (parenthesized_expression "(param_2 == (char *)0x0)" (( "(") (binary_expression "param_2 == (char *)0x0" (identifier "param_2") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      return 0xfffffffe;\n    }" ({ "{") (return_statement "return 0xfffffffe;" (return "return") (number_literal "0xfffffffe") (; ";")) (} "}"))) (if_statement "if (param_3 < 0) {\n      return 2;\n    }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      return 2;\n    }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (expression_statement "iVar3 = FUN_00108083(3,param_1);" (assignment_expression "iVar3 = FUN_00108083(3,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(3,param_1)" (identifier "FUN_00108083") (argument_list "(3,param_1)" (( "(") (number_literal "3") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      return 2;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return 2;\n    }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_001080ad(param_1,param_2,1);\n      return 2;\n    }" ({ "{") (expression_statement "FUN_001080ad(param_1,param_2,1);" (call_expression "FUN_001080ad(param_1,param_2,1)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,1)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "1") () ")"))) (; ";")) (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (expression_statement "iVar3 = FUN_0010a543(param_4,2);" (assignment_expression "iVar3 = FUN_0010a543(param_4,2)" (identifier "iVar3") (= "=") (call_expression "FUN_0010a543(param_4,2)" (identifier "FUN_0010a543") (argument_list "(param_4,2)" (( "(") (identifier "param_4") (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "pcVar6 = param_2;" (assignment_expression "pcVar6 = param_2" (identifier "pcVar6") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (iVar3 != 4) {\n      FUN_00134fb0("the -sercfg option can only be used with the serial protocol");\n    }" (if "if") (parenthesized_expression "(iVar3 != 4)" (( "(") (binary_expression "iVar3 != 4" (identifier "iVar3") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n      FUN_00134fb0("the -sercfg option can only be used with the serial protocol");\n    }" ({ "{") (expression_statement "FUN_00134fb0("the -sercfg option can only be used with the serial protocol");" (call_expression "FUN_00134fb0("the -sercfg option can only be used with the serial protocol")" (identifier "FUN_00134fb0") (argument_list "("the -sercfg option can only be used with the serial protocol")" (( "(") (string_literal ""the -sercfg option can only be used with the serial protocol"" (" """) (string_content "the -sercfg option can only be used with the serial protocol") (" """)) () ")"))) (; ";")) (} "}"))) (for_statement "for (; *pcVar6 != '\0'; pcVar6 = pcVar6 + (local_48 + iVar3)) {\n      pcVar8 = strchr(pcVar6,0x2c);\n      if (pcVar8 == (char *)0x0) {\n        lVar10 = -1;\n        pcVar8 = pcVar6;\n        do {\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        iVar3 = ~(uint)lVar10 - 1;\n        local_48 = 0;\n      }\n      else {\n        iVar3 = (int)pcVar8 - (int)pcVar6;\n        pcVar6[iVar3] = '\0';\n        local_48 = 1;\n      }\n      if (iVar3 == 1) {\n        cVar2 = *pcVar6;\n        switch(cVar2) {\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }\n      }\n      else if ((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)) {\n        FUN_0010ac09(param_4,0x3c,3);\n      }\n      else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }\n    }" (for "for") (( "(") (; ";") (binary_expression "*pcVar6 != '\0'" (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";") (assignment_expression "pcVar6 = pcVar6 + (local_48 + iVar3)" (identifier "pcVar6") (= "=") (binary_expression "pcVar6 + (local_48 + iVar3)" (identifier "pcVar6") (+ "+") (parenthesized_expression "(local_48 + iVar3)" (( "(") (binary_expression "local_48 + iVar3" (identifier "local_48") (+ "+") (identifier "iVar3")) () ")")))) () ")") (compound_statement "{\n      pcVar8 = strchr(pcVar6,0x2c);\n      if (pcVar8 == (char *)0x0) {\n        lVar10 = -1;\n        pcVar8 = pcVar6;\n        do {\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        iVar3 = ~(uint)lVar10 - 1;\n        local_48 = 0;\n      }\n      else {\n        iVar3 = (int)pcVar8 - (int)pcVar6;\n        pcVar6[iVar3] = '\0';\n        local_48 = 1;\n      }\n      if (iVar3 == 1) {\n        cVar2 = *pcVar6;\n        switch(cVar2) {\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }\n      }\n      else if ((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)) {\n        FUN_0010ac09(param_4,0x3c,3);\n      }\n      else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }\n    }" ({ "{") (expression_statement "pcVar8 = strchr(pcVar6,0x2c);" (assignment_expression "pcVar8 = strchr(pcVar6,0x2c)" (identifier "pcVar8") (= "=") (call_expression "strchr(pcVar6,0x2c)" (identifier "strchr") (argument_list "(pcVar6,0x2c)" (( "(") (identifier "pcVar6") (, ",") (number_literal "0x2c") () ")")))) (; ";")) (if_statement "if (pcVar8 == (char *)0x0) {\n        lVar10 = -1;\n        pcVar8 = pcVar6;\n        do {\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        iVar3 = ~(uint)lVar10 - 1;\n        local_48 = 0;\n      }\n      else {\n        iVar3 = (int)pcVar8 - (int)pcVar6;\n        pcVar6[iVar3] = '\0';\n        local_48 = 1;\n      }" (if "if") (parenthesized_expression "(pcVar8 == (char *)0x0)" (( "(") (binary_expression "pcVar8 == (char *)0x0" (identifier "pcVar8") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        lVar10 = -1;\n        pcVar8 = pcVar6;\n        do {\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');\n        iVar3 = ~(uint)lVar10 - 1;\n        local_48 = 0;\n      }" ({ "{") (expression_statement "lVar10 = -1;" (assignment_expression "lVar10 = -1" (identifier "lVar10") (= "=") (number_literal "-1")) (; ";")) (expression_statement "pcVar8 = pcVar6;" (assignment_expression "pcVar8 = pcVar6" (identifier "pcVar8") (= "=") (identifier "pcVar6")) (; ";")) (do_statement "do {\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        } while (cVar2 != '\0');" (do "do") (compound_statement "{\n          if (lVar10 == 0) break;\n          lVar10 = lVar10 + -1;\n          cVar2 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;\n        }" ({ "{") (if_statement "if (lVar10 == 0) break;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" (identifier "cVar2") (= "=") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8"))) (; ";")) (expression_statement "pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1" (identifier "pcVar8") (= "=") (binary_expression "pcVar8 + (ulong)bVar20 * -2 + 1" (binary_expression "pcVar8 + (ulong)bVar20 * -2" (identifier "pcVar8") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "iVar3 = ~(uint)lVar10 - 1;" (assignment_expression "iVar3 = ~(uint)lVar10 - 1" (identifier "iVar3") (= "=") (binary_expression "~(uint)lVar10 - 1" (unary_expression "~(uint)lVar10" (~ "~") (cast_expression "(uint)lVar10" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar10"))) (- "-") (number_literal "1"))) (; ";")) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        iVar3 = (int)pcVar8 - (int)pcVar6;\n        pcVar6[iVar3] = '\0';\n        local_48 = 1;\n      }" (else "else") (compound_statement "{\n        iVar3 = (int)pcVar8 - (int)pcVar6;\n        pcVar6[iVar3] = '\0';\n        local_48 = 1;\n      }" ({ "{") (expression_statement "iVar3 = (int)pcVar8 - (int)pcVar6;" (assignment_expression "iVar3 = (int)pcVar8 - (int)pcVar6" (identifier "iVar3") (= "=") (binary_expression "(int)pcVar8 - (int)pcVar6" (cast_expression "(int)pcVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar8")) (- "-") (cast_expression "(int)pcVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar6")))) (; ";")) (expression_statement "pcVar6[iVar3] = '\0';" (assignment_expression "pcVar6[iVar3] = '\0'" (subscript_expression "pcVar6[iVar3]" (identifier "pcVar6") ([ "[") (identifier "iVar3") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" (identifier "local_48") (= "=") (number_literal "1")) (; ";")) (} "}")))) (if_statement "if (iVar3 == 1) {\n        cVar2 = *pcVar6;\n        switch(cVar2) {\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }\n      }\n      else if ((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)) {\n        FUN_0010ac09(param_4,0x3c,3);\n      }\n      else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }" (if "if") (parenthesized_expression "(iVar3 == 1)" (( "(") (binary_expression "iVar3 == 1" (identifier "iVar3") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        cVar2 = *pcVar6;\n        switch(cVar2) {\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }\n      }" ({ "{") (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" (identifier "cVar2") (= "=") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6"))) (; ";")) (switch_statement "switch(cVar2) {\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }" (switch "switch") (parenthesized_expression "(cVar2)" (( "(") (identifier "cVar2") () ")")) (compound_statement "{\n        case '1':\n        case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;\n        default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;\n        case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;\n        case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;\n        case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;\n        case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;\n        case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;\n        case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;\n        case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;\n        case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;\n        case 's':\n          FUN_0010ac09(param_4,0x3d,4);\n        }" ({ "{") (case_statement "case '1':" (case "case") (char_literal "'1'" (' "'") (character "1") (' "'")) (: ":")) (case_statement "case '2':\n          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);\n          break;" (case "case") (char_literal "'2'" (' "'") (character "2") (' "'")) (: ":") (expression_statement "FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);" (call_expression "FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60)" (identifier "FUN_0010ac09") (argument_list "(param_4,0x3c,cVar2 * 2 + -0x60)" (( "(") (identifier "param_4") (, ",") (number_literal "0x3c") (, ",") (binary_expression "cVar2 * 2 + -0x60" (binary_expression "cVar2 * 2" (identifier "cVar2") (* "*") (number_literal "2")) (+ "+") (number_literal "-0x60")) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");\n          break;" (default "default") (: ":") (expression_statement "FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");" (call_expression "FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"")" (identifier "FUN_00134fb0") (argument_list "("Unrecognised suboption \"-sercfg %c\"")" (( "(") (string_literal ""Unrecognised suboption \"-sercfg %c\""" (" """) (string_content "Unrecognised suboption ") (escape_sequence "\"") (string_content "-sercfg %c") (escape_sequence "\"") (" """)) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case '5':" (case "case") (char_literal "'5'" (' "'") (character "5") (' "'")) (: ":")) (case_statement "case '6':" (case "case") (char_literal "'6'" (' "'") (character "6") (' "'")) (: ":")) (case_statement "case '7':" (case "case") (char_literal "'7'" (' "'") (character "7") (' "'")) (: ":")) (case_statement "case '8':" (case "case") (char_literal "'8'" (' "'") (character "8") (' "'")) (: ":")) (case_statement "case '9':\n          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);\n          break;" (case "case") (char_literal "'9'" (' "'") (character "9") (' "'")) (: ":") (expression_statement "FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);" (call_expression "FUN_0010ac09(param_4,0x3b,cVar2 + -0x30)" (identifier "FUN_0010ac09") (argument_list "(param_4,0x3b,cVar2 + -0x30)" (( "(") (identifier "param_4") (, ",") (number_literal "0x3b") (, ",") (binary_expression "cVar2 + -0x30" (identifier "cVar2") (+ "+") (number_literal "-0x30")) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'D':\n          FUN_0010ac09(param_4,0x3e,3);\n          break;" (case "case") (char_literal "'D'" (' "'") (character "D") (' "'")) (: ":") (expression_statement "FUN_0010ac09(param_4,0x3e,3);" (call_expression "FUN_0010ac09(param_4,0x3e,3)" (identifier "FUN_0010ac09") (argument_list "(param_4,0x3e,3)" (( "(") (identifier "param_4") (, ",") (number_literal "0x3e") (, ",") (number_literal "3") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'N':\n          FUN_0010ac09(param_4,0x3e,0);\n          break;" (case "case") (char_literal "'N'" (' "'") (character "N") (' "'")) (: ":") (expression_statement "FUN_0010ac09(param_4,0x3e,0);" (call_expression "FUN_0010ac09(param_4,0x3e,0)" (identifier "FUN_0010ac09") (argument_list "(param_4,0x3e,0)" (( "(") (identifier "param_4") (, ",") (number_literal "0x3e") (, ",") (number_literal "0") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'R':\n          FUN_0010ac09(param_4,0x3e,2);\n          break;" (case "case") (char_literal "'R'" (' "'") (character "R") (' "'")) (: ":") (expression_statement "FUN_0010ac09(param_4,0x3e,2);" (call_expression "FUN_0010ac09(param_4,0x3e,2)" (identifier "FUN_0010ac09") (argument_list "(param_4,0x3e,2)" (( "(") (identifier "param_4") (, ",") (number_literal "0x3e") (, ",") (number_literal "2") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'X':\n          FUN_0010ac09(param_4,0x3e,1);\n          break;" (case "case") (char_literal "'X'" (' "'") (character "X") (' "'")) (: ":") (expression_statement "FUN_0010ac09(param_4,0x3e,1);" (call_expression "FUN_0010ac09(param_4,0x3e,1)" (identifier "FUN_0010ac09") (argument_list "(param_4,0x3e,1)" (( "(") (identifier "param_4") (, ",") (number_literal "0x3e") (, ",") (number_literal "1") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'e':\n          FUN_0010ac09(param_4,0x3d,2);\n          break;" (case "case") (char_literal "'e'" (' "'") (character "e") (' "'")) (: ":") (expression_statement "FUN_0010ac09(param_4,0x3d,2);" (call_expression "FUN_0010ac09(param_4,0x3d,2)" (identifier "FUN_0010ac09") (argument_list "(param_4,0x3d,2)" (( "(") (identifier "param_4") (, ",") (number_literal "0x3d") (, ",") (number_literal "2") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'm':\n          FUN_0010ac09(param_4,0x3d,3);\n          break;" (case "case") (char_literal "'m'" (' "'") (character "m") (' "'")) (: ":") (expression_statement "FUN_0010ac09(param_4,0x3d,3);" (call_expression "FUN_0010ac09(param_4,0x3d,3)" (identifier "FUN_0010ac09") (argument_list "(param_4,0x3d,3)" (( "(") (identifier "param_4") (, ",") (number_literal "0x3d") (, ",") (number_literal "3") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'n':\n          FUN_0010ac09(param_4,0x3d,0);\n          break;" (case "case") (char_literal "'n'" (' "'") (character "n") (' "'")) (: ":") (expression_statement "FUN_0010ac09(param_4,0x3d,0);" (call_expression "FUN_0010ac09(param_4,0x3d,0)" (identifier "FUN_0010ac09") (argument_list "(param_4,0x3d,0)" (( "(") (identifier "param_4") (, ",") (number_literal "0x3d") (, ",") (number_literal "0") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'o':\n          FUN_0010ac09(param_4,0x3d,1);\n          break;" (case "case") (char_literal "'o'" (' "'") (character "o") (' "'")) (: ":") (expression_statement "FUN_0010ac09(param_4,0x3d,1);" (call_expression "FUN_0010ac09(param_4,0x3d,1)" (identifier "FUN_0010ac09") (argument_list "(param_4,0x3d,1)" (( "(") (identifier "param_4") (, ",") (number_literal "0x3d") (, ",") (number_literal "1") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 's':\n          FUN_0010ac09(param_4,0x3d,4);" (case "case") (char_literal "'s'" (' "'") (character "s") (' "'")) (: ":") (expression_statement "FUN_0010ac09(param_4,0x3d,4);" (call_expression "FUN_0010ac09(param_4,0x3d,4)" (identifier "FUN_0010ac09") (argument_list "(param_4,0x3d,4)" (( "(") (identifier "param_4") (, ",") (number_literal "0x3d") (, ",") (number_literal "4") () ")"))) (; ";"))) (} "}"))) (} "}")) (else_clause "else if ((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)) {\n        FUN_0010ac09(param_4,0x3c,3);\n      }\n      else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }" (else "else") (if_statement "if ((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)) {\n        FUN_0010ac09(param_4,0x3c,3);\n      }\n      else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }" (if "if") (parenthesized_expression "((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0))" (( "(") (binary_expression "(iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)" (parenthesized_expression "(iVar3 == 3)" (( "(") (binary_expression "iVar3 == 3" (identifier "iVar3") (== "==") (number_literal "3")) () ")")) (&& "&&") (parenthesized_expression "(iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)" (( "(") (comma_expression "iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0" (assignment_expression "iVar4 = strncmp(pcVar6,"1.5",3)" (identifier "iVar4") (= "=") (call_expression "strncmp(pcVar6,"1.5",3)" (identifier "strncmp") (argument_list "(pcVar6,"1.5",3)" (( "(") (identifier "pcVar6") (, ",") (string_literal ""1.5"" (" """) (string_content "1.5") (" """)) (, ",") (number_literal "3") () ")")))) (, ",") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        FUN_0010ac09(param_4,0x3c,3);\n      }" ({ "{") (expression_statement "FUN_0010ac09(param_4,0x3c,3);" (call_expression "FUN_0010ac09(param_4,0x3c,3)" (identifier "FUN_0010ac09") (argument_list "(param_4,0x3c,3)" (( "(") (identifier "param_4") (, ",") (number_literal "0x3c") (, ",") (number_literal "3") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }" (else "else") (compound_statement "{\n        uVar9 = strtol(pcVar6,(char **)0x0,10);\n        if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }\n      }" ({ "{") (expression_statement "uVar9 = strtol(pcVar6,(char **)0x0,10);" (assignment_expression "uVar9 = strtol(pcVar6,(char **)0x0,10)" (identifier "uVar9") (= "=") (call_expression "strtol(pcVar6,(char **)0x0,10)" (identifier "strtol") (argument_list "(pcVar6,(char **)0x0,10)" (( "(") (identifier "pcVar6") (, ",") (cast_expression "(char **)0x0" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0")) (, ",") (number_literal "10") () ")")))) (; ";")) (if_statement "if ((int)uVar9 == 0) {\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }\n        else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }" (if "if") (parenthesized_expression "((int)uVar9 == 0)" (( "(") (binary_expression "(int)uVar9 == 0" (cast_expression "(int)uVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar9")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);\n        }" ({ "{") (expression_statement "FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);" (call_expression "FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6)" (identifier "FUN_00134fb0") (argument_list "("Unrecognised suboption \"-sercfg %s\"",pcVar6)" (( "(") (string_literal ""Unrecognised suboption \"-sercfg %s\""" (" """) (string_content "Unrecognised suboption ") (escape_sequence "\"") (string_content "-sercfg %s") (escape_sequence "\"") (" """)) (, ",") (identifier "pcVar6") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }" (else "else") (compound_statement "{\n          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);\n        }" ({ "{") (expression_statement "FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);" (call_expression "FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff)" (identifier "FUN_0010ac09") (argument_list "(param_4,0x3a,uVar9 & 0xffffffff)" (( "(") (identifier "param_4") (, ",") (number_literal "0x3a") (, ",") (binary_expression "uVar9 & 0xffffffff" (identifier "uVar9") (& "&") (number_literal "0xffffffff")) () ")"))) (; ";")) (} "}")))) (} "}")))))) (} "}"))) (expression_statement "iVar3 = strcmp((char *)param_1,"-sessionlog");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-sessionlog")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-sessionlog")" (identifier "strcmp") (argument_list "((char *)param_1,"-sessionlog")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-sessionlog"" (" """) (string_content "-sessionlog") (" """)) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      iVar3 = strcmp((char *)param_1,"-sshlog");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_0010921f;\n      goto LAB_0010924d;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = strcmp((char *)param_1,"-sshlog");\n      uVar5 = 2;\n      if (iVar3 != 0) goto LAB_0010921f;\n      goto LAB_0010924d;\n    }" ({ "{") (expression_statement "iVar3 = strcmp((char *)param_1,"-sshlog");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-sshlog")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-sshlog")" (identifier "strcmp") (argument_list "((char *)param_1,"-sshlog")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-sshlog"" (" """) (string_content "-sshlog") (" """)) () ")")))) (; ";")) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" (identifier "uVar5") (= "=") (number_literal "2")) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_0010921f;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0010921f;" (goto "goto") (statement_identifier "LAB_0010921f") (; ";"))) (goto_statement "goto LAB_0010924d;" (goto "goto") (statement_identifier "LAB_0010924d") (; ";")) (} "}"))) (expression_statement "iVar3 = FUN_00108083(1,param_1);" (assignment_expression "iVar3 = FUN_00108083(1,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(1,param_1)" (identifier "FUN_00108083") (argument_list "(1,param_1)" (( "(") (number_literal "1") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      return 2;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return 2;\n    }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (labeled_statement "LAB_001095f3:\n    uVar5 = FUN_001321a4(param_2);" (statement_identifier "LAB_001095f3") (: ":") (expression_statement "uVar5 = FUN_001321a4(param_2);" (assignment_expression "uVar5 = FUN_001321a4(param_2)" (identifier "uVar5") (= "=") (call_expression "FUN_001321a4(param_2)" (identifier "FUN_001321a4") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";"))) (expression_statement "FUN_0010af59(param_4,0x77,uVar5);" (call_expression "FUN_0010af59(param_4,0x77,uVar5)" (identifier "FUN_0010af59") (argument_list "(param_4,0x77,uVar5)" (( "(") (identifier "param_4") (, ",") (number_literal "0x77") (, ",") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "FUN_0010ac09(param_4,0x78,2);" (call_expression "FUN_0010ac09(param_4,0x78,2)" (identifier "FUN_0010ac09") (argument_list "(param_4,0x78,2)" (( "(") (identifier "param_4") (, ",") (number_literal "0x78") (, ",") (number_literal "2") () ")"))) (; ";")) (expression_statement "FUN_00132212(uVar5);" (call_expression "FUN_00132212(uVar5)" (identifier "FUN_00132212") (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "iVar3 = strcmp((char *)param_1,"-sshlog");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-sshlog")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-sshlog")" (identifier "strcmp") (argument_list "((char *)param_1,"-sshlog")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-sshlog"" (" """) (string_content "-sshlog") (" """)) () ")")))) (; ";")) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" (identifier "uVar5") (= "=") (number_literal "2")) (; ";")) (if_statement "if (iVar3 != 0) {\nLAB_0010921f:\n      iVar3 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar3 != 0) {\n          return uVar5;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }\n      goto LAB_00109236;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0010921f:\n      iVar3 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar3 != 0) {\n          return uVar5;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }\n      goto LAB_00109236;\n    }" ({ "{") (labeled_statement "LAB_0010921f:\n      iVar3 = strcmp((char *)param_1,"-sshrawlog");" (statement_identifier "LAB_0010921f") (: ":") (expression_statement "iVar3 = strcmp((char *)param_1,"-sshrawlog");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-sshrawlog")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-sshrawlog")" (identifier "strcmp") (argument_list "((char *)param_1,"-sshrawlog")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-sshrawlog"" (" """) (string_content "-sshrawlog") (" """)) () ")")))) (; ";"))) (if_statement "if (iVar3 != 0) {\n        iVar3 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar3 != 0) {\n          return uVar5;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar3 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar3 != 0) {\n          return uVar5;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        iVar3 = FUN_00108083(2,param_1);\n        if (iVar3 != 0) {\n          return 2;\n        }\n        if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }\n        goto LAB_001092e3;\n      }" ({ "{") (expression_statement "iVar3 = strcmp((char *)param_1,"-proxycmd");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-proxycmd")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-proxycmd")" (identifier "strcmp") (argument_list "((char *)param_1,"-proxycmd")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-proxycmd"" (" """) (string_content "-proxycmd") (" """)) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n          return uVar5;\n        }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          return uVar5;\n        }" ({ "{") (return_statement "return uVar5;" (return "return") (identifier "uVar5") (; ";")) (} "}"))) (if_statement "if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }" (if "if") (parenthesized_expression "(param_2 == (char *)0x0)" (( "(") (binary_expression "param_2 == (char *)0x0" (identifier "param_2") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          return 0xfffffffe;\n        }" ({ "{") (return_statement "return 0xfffffffe;" (return "return") (number_literal "0xfffffffe") (; ";")) (} "}"))) (if_statement "if (param_3 < 0) {\n          return 2;\n        }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          return 2;\n        }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(2,param_1)" (identifier "FUN_00108083") (argument_list "(2,param_1)" (( "(") (number_literal "2") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n          return 2;\n        }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          return 2;\n        }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (if_statement "if (param_3 != 0) {\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_001080ad(param_1,param_2,0);\n          return 2;\n        }" ({ "{") (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (goto_statement "goto LAB_001092e3;" (goto "goto") (statement_identifier "LAB_001092e3") (; ";")) (} "}"))) (goto_statement "goto LAB_00109236;" (goto "goto") (statement_identifier "LAB_00109236") (; ";")) (} "}"))) (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(2,param_1)" (identifier "FUN_00108083") (argument_list "(2,param_1)" (( "(") (number_literal "2") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      return 2;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return 2;\n    }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    iVar3 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(1,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001095f3;\n    }\n    iVar3 = strcmp((char *)param_1,"-sshlog");\n    if (iVar3 != 0) goto LAB_0010921f;\nLAB_00109236:\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\nLAB_0010924d:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n  }" (else "else") (compound_statement "{\n    iVar3 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(1,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001095f3;\n    }\n    iVar3 = strcmp((char *)param_1,"-sshlog");\n    if (iVar3 != 0) goto LAB_0010921f;\nLAB_00109236:\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\nLAB_0010924d:\n    iVar3 = FUN_00108083(2,param_1);\n    if (iVar3 != 0) {\n      return 2;\n    }\n    if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }\n  }" ({ "{") (expression_statement "iVar3 = strcmp((char *)param_1,"-sessionlog");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-sessionlog")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-sessionlog")" (identifier "strcmp") (argument_list "((char *)param_1,"-sessionlog")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-sessionlog"" (" """) (string_content "-sessionlog") (" """)) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(1,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001095f3;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      iVar3 = FUN_00108083(1,param_1);\n      if (iVar3 != 0) {\n        return 2;\n      }\n      if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }\n      goto LAB_001095f3;\n    }" ({ "{") (if_statement "if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }" (if "if") (parenthesized_expression "(param_2 == (char *)0x0)" (( "(") (binary_expression "param_2 == (char *)0x0" (identifier "param_2") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        return 0xfffffffe;\n      }" ({ "{") (return_statement "return 0xfffffffe;" (return "return") (number_literal "0xfffffffe") (; ";")) (} "}"))) (if_statement "if (param_3 < 0) {\n        return 2;\n      }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        return 2;\n      }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (expression_statement "iVar3 = FUN_00108083(1,param_1);" (assignment_expression "iVar3 = FUN_00108083(1,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(1,param_1)" (identifier "FUN_00108083") (argument_list "(1,param_1)" (( "(") (number_literal "1") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n        return 2;\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return 2;\n      }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (if_statement "if (param_3 != 0) {\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_001080ad(param_1,param_2,0);\n        return 2;\n      }" ({ "{") (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (goto_statement "goto LAB_001095f3;" (goto "goto") (statement_identifier "LAB_001095f3") (; ";")) (} "}"))) (expression_statement "iVar3 = strcmp((char *)param_1,"-sshlog");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-sshlog")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-sshlog")" (identifier "strcmp") (argument_list "((char *)param_1,"-sshlog")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-sshlog"" (" """) (string_content "-sshlog") (" """)) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_0010921f;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0010921f;" (goto "goto") (statement_identifier "LAB_0010921f") (; ";"))) (labeled_statement "LAB_00109236:\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }" (statement_identifier "LAB_00109236") (: ":") (if_statement "if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }" (if "if") (parenthesized_expression "(param_2 == (char *)0x0)" (( "(") (binary_expression "param_2 == (char *)0x0" (identifier "param_2") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      return 0xfffffffe;\n    }" ({ "{") (return_statement "return 0xfffffffe;" (return "return") (number_literal "0xfffffffe") (; ";")) (} "}")))) (if_statement "if (param_3 < 0) {\n      return 2;\n    }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      return 2;\n    }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (labeled_statement "LAB_0010924d:\n    iVar3 = FUN_00108083(2,param_1);" (statement_identifier "LAB_0010924d") (: ":") (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(2,param_1)" (identifier "FUN_00108083") (argument_list "(2,param_1)" (( "(") (number_literal "2") (, ",") (identifier "param_1") () ")")))) (; ";"))) (if_statement "if (iVar3 != 0) {\n      return 2;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return 2;\n    }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (if_statement "if (param_3 != 0) {\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_001080ad(param_1,param_2,0);\n      return 2;\n    }" ({ "{") (expression_statement "FUN_001080ad(param_1,param_2,0);" (call_expression "FUN_001080ad(param_1,param_2,0)" (identifier "FUN_001080ad") (argument_list "(param_1,param_2,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar5 = FUN_001321a4(param_2);" (assignment_expression "uVar5 = FUN_001321a4(param_2)" (identifier "uVar5") (= "=") (call_expression "FUN_001321a4(param_2)" (identifier "FUN_001321a4") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "FUN_0010af59(param_4,0x77,uVar5);" (call_expression "FUN_0010af59(param_4,0x77,uVar5)" (identifier "FUN_0010af59") (argument_list "(param_4,0x77,uVar5)" (( "(") (identifier "param_4") (, ",") (number_literal "0x77") (, ",") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "iVar3 = strcmp((char *)param_1,"-sshlog");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-sshlog")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-sshlog")" (identifier "strcmp") (argument_list "((char *)param_1,"-sshlog")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-sshlog"" (" """) (string_content "-sshlog") (" """)) () ")")))) (; ";")) (expression_statement "FUN_0010ac09(param_4,0x78,4 - (uint)(iVar3 == 0));" (call_expression "FUN_0010ac09(param_4,0x78,4 - (uint)(iVar3 == 0))" (identifier "FUN_0010ac09") (argument_list "(param_4,0x78,4 - (uint)(iVar3 == 0))" (( "(") (identifier "param_4") (, ",") (number_literal "0x78") (, ",") (binary_expression "4 - (uint)(iVar3 == 0)" (number_literal "4") (- "-") (call_expression "(uint)(iVar3 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")))) () ")"))) (; ";")) (expression_statement "FUN_00132212(uVar5);" (call_expression "FUN_00132212(uVar5)" (identifier "FUN_00132212") (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "iVar3 = strcmp((char *)param_1,"-proxycmd");" (assignment_expression "iVar3 = strcmp((char *)param_1,"-proxycmd")" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)param_1,"-proxycmd")" (identifier "strcmp") (argument_list "((char *)param_1,"-proxycmd")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""-proxycmd"" (" """) (string_content "-proxycmd") (" """)) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n    return 2;\n  }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return 2;\n  }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (expression_statement "iVar3 = FUN_00108083(2,param_1);" (assignment_expression "iVar3 = FUN_00108083(2,param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00108083(2,param_1)" (identifier "FUN_00108083") (argument_list "(2,param_1)" (( "(") (number_literal "2") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n    return 2;\n  }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return 2;\n  }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (labeled_statement "LAB_001092e3:\n  FUN_0010ac09(param_4,0xd,5);" (statement_identifier "LAB_001092e3") (: ":") (expression_statement "FUN_0010ac09(param_4,0xd,5);" (call_expression "FUN_0010ac09(param_4,0xd,5)" (identifier "FUN_0010ac09") (argument_list "(param_4,0xd,5)" (( "(") (identifier "param_4") (, ",") (number_literal "0xd") (, ",") (number_literal "5") () ")"))) (; ";"))) (expression_statement "FUN_0010ad3a(param_4,0x12,param_2);" (call_expression "FUN_0010ad3a(param_4,0x12,param_2)" (identifier "FUN_0010ad3a") (argument_list "(param_4,0x12,param_2)" (( "(") (identifier "param_4") (, ",") (number_literal "0x12") (, ",") (identifier "param_2") () ")"))) (; ";")) (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}")))

/* WARNING: Type propagation algorithm not settling */

int function_1(char *p,char *var_5,int var_6,type_1 *conf)

{
  char var_38;
  int var_11;
  int var_29;
  char *var_24;
  char *var_25;
  type_2 *pFVar6;
  type_3 *var_31;
  long var_1;
  type_4 var_37;
  type_5 *var_2;
  type_5 *var_3;
  char *var_26;
  bool var_4;
  bool var_9;
  type_6 uVar14;
  bool var_14;
  type_6 uVar16;
  type_5 bVar17;
  int var_43;
  int var_33;
  
  bVar17 = 0;
  var_4 = &stack0xffffffffffffffd0 < (type_6 *)0x28;
  var_14 = &stack0x00000000 == (type_6 *)0x58;
  var_1 = 6;
  var_2 = (type_5 *)p;
  var_3 = (type_5 *)"-load";
  do {
    if (var_1 == 0) break;
    var_1 = var_1 + -1;
    var_4 = *var_2 < *var_3;
    var_14 = *var_2 == *var_3;
    var_2 = var_2 + 1;
    var_3 = var_3 + 1;
  } while (var_14);
  var_9 = false;
  var_4 = (!var_4 && !var_14) == var_4;
  if (var_4) {
    if (var_5 == (char *)0x0) {
      return -2;
    }
    if (-1 < var_6) {
      var_7(var_5,conf);
      loaded_session = 1;
      cmdline_session_name = var_8(var_5);
      return 2;
    }
    return 2;
  }
  var_1 = 5;
  var_2 = (type_5 *)p;
  var_3 = &DAT_0013b272;
  do {
    if (var_1 == 0) break;
    var_1 = var_1 + -1;
    var_9 = *var_2 < *var_3;
    var_4 = *var_2 == *var_3;
    var_2 = var_2 + 1;
    var_3 = var_3 + 1;
  } while (var_4);
  var_14 = false;
  var_4 = (!var_9 && !var_4) == var_9;
  if (var_4) {
    if (var_6 < 0) {
      return 1;
    }
    var_11 = var_10(3,p);
    if (var_11 == 0) {
      if (var_6 == 0) {
        default_protocol = 3;
        default_port = 0x16;
        var_12(conf,2,3);
        var_12(conf,1,default_port);
        return 1;
      }
      var_13(p,var_5,0);
      return 1;
    }
    return 1;
  }
  var_1 = 8;
  var_2 = (type_5 *)p;
  var_3 = (type_5 *)"-telnet";
  do {
    if (var_1 == 0) break;
    var_1 = var_1 + -1;
    var_14 = *var_2 < *var_3;
    var_4 = *var_2 == *var_3;
    var_2 = var_2 + 1;
    var_3 = var_3 + 1;
  } while (var_4);
  var_9 = false;
  var_4 = (!var_14 && !var_4) == var_14;
  if (var_4) {
    if (var_6 < 0) {
      return 1;
    }
    var_11 = var_10(3,p);
    if (var_11 == 0) {
      if (var_6 == 0) {
        default_protocol = 1;
        default_port = 0x17;
        var_12(conf,2,1);
        var_12(conf,1,default_port);
        return 1;
      }
      var_13(p,var_5,0);
      return 1;
    }
    return 1;
  }
  var_1 = 8;
  var_2 = (type_5 *)p;
  var_3 = (type_5 *)"-rlogin";
  do {
    if (var_1 == 0) break;
    var_1 = var_1 + -1;
    var_9 = *var_2 < *var_3;
    var_4 = *var_2 == *var_3;
    var_2 = var_2 + 1;
    var_3 = var_3 + 1;
  } while (var_4);
  var_14 = false;
  var_4 = (!var_9 && !var_4) == var_9;
  if (var_4) {
    if (var_6 < 0) {
      return 1;
    }
    var_11 = var_10(3,p);
    if (var_11 == 0) {
      if (var_6 == 0) {
        default_protocol = 2;
        default_port = 0x201;
        var_12(conf,2,2);
        var_12(conf,1,default_port);
        return 1;
      }
      var_13(p,var_5,0);
      return 1;
    }
    return 1;
  }
  var_1 = 5;
  var_2 = (type_5 *)p;
  var_3 = &DAT_0013b287;
  do {
    if (var_1 == 0) break;
    var_1 = var_1 + -1;
    var_14 = *var_2 < *var_3;
    var_4 = *var_2 == *var_3;
    var_2 = var_2 + 1;
    var_3 = var_3 + 1;
  } while (var_4);
  var_9 = false;
  var_4 = (!var_14 && !var_4) == var_14;
  if (var_4) {
    if (var_6 < 0) {
      return 1;
    }
    var_11 = var_10(3,p);
    if (var_11 != 0) {
      return 1;
    }
    uVar14 = 0;
    uVar16 = var_6 == 0;
    if (!(bool)uVar16) {
      var_13(p,var_5,0);
      return 1;
    }
    default_protocol = 0;
    var_12(conf,2,0);
    var_1 = 8;
    var_2 = (type_5 *)p;
    var_3 = (type_5 *)"-serial";
    do {
      if (var_1 == 0) break;
      var_1 = var_1 + -1;
      uVar14 = *var_2 < *var_3;
      uVar16 = *var_2 == *var_3;
      var_2 = var_2 + (type_4)bVar17 * -2 + 1;
      var_3 = var_3 + (type_4)bVar17 * -2 + 1;
    } while ((bool)uVar16);
    var_4 = false;
    var_14 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;
    if (var_14) {
      var_11 = var_10(3,p);
      uVar14 = var_11 == 0;
      if (!(bool)uVar14) {
        return 1;
      }
LAB_0010858a:
      uVar16 = 0;
      default_protocol = 4;
      var_12(conf,2,4);
      var_24 = var_15(conf,0);
      var_16(conf,0x39,var_24);
      var_1 = 3;
      var_2 = (type_5 *)p;
      var_3 = &DAT_0013b294;
      do {
        if (var_1 == 0) break;
        var_1 = var_1 + -1;
        uVar16 = *var_2 < *var_3;
        uVar14 = *var_2 == *var_3;
        var_2 = var_2 + (type_4)bVar17 * -2 + 1;
        var_3 = var_3 + (type_4)bVar17 * -2 + 1;
      } while ((bool)uVar14);
      var_4 = (!(bool)uVar16 && !(bool)uVar14) == (bool)uVar16;
    }
    else {
      var_1 = 3;
      var_2 = (type_5 *)p;
      var_3 = &DAT_0013b294;
      do {
        if (var_1 == 0) break;
        var_1 = var_1 + -1;
        var_4 = *var_2 < *var_3;
        var_14 = *var_2 == *var_3;
        var_2 = var_2 + (type_4)bVar17 * -2 + 1;
        var_3 = var_3 + (type_4)bVar17 * -2 + 1;
      } while (var_14);
      var_4 = (!var_4 && !var_14) == var_4;
    }
    var_11 = 1;
    if (var_4) {
LAB_00108687:
      var_17 = var_17 | 1;
      var_4 = var_17 == 0;
      var_11 = 1;
    }
  }
  else {
    var_1 = 8;
    var_2 = (type_5 *)p;
    var_3 = (type_5 *)"-serial";
    do {
      if (var_1 == 0) break;
      var_1 = var_1 + -1;
      var_9 = *var_2 < *var_3;
      var_4 = *var_2 == *var_3;
      var_2 = var_2 + 1;
      var_3 = var_3 + 1;
    } while (var_4);
    var_14 = false;
    var_4 = (!var_9 && !var_4) == var_9;
    if (var_4) {
      if (var_6 < 0) {
        return 1;
      }
      var_11 = var_10(3,p);
      if (var_11 != 0) {
        return 1;
      }
      uVar14 = var_6 == 0;
      if (!(bool)uVar14) {
        var_13(p,var_5,0);
        return 1;
      }
      goto LAB_0010858a;
    }
    var_1 = 3;
    var_2 = (type_5 *)p;
    var_3 = &DAT_0013b294;
    do {
      if (var_1 == 0) break;
      var_1 = var_1 + -1;
      var_14 = *var_2 < *var_3;
      var_4 = *var_2 == *var_3;
      var_2 = var_2 + 1;
      var_3 = var_3 + 1;
    } while (var_4);
    var_4 = (!var_14 && !var_4) == var_14;
    if (var_4) {
      if (var_6 < 0) {
        return 1;
      }
      goto LAB_00108687;
    }
    var_11 = 0;
  }
  var_14 = false;
  var_1 = 3;
  var_2 = (type_5 *)p;
  var_3 = (type_5 *)0x1440df;
  do {
    if (var_1 == 0) break;
    var_1 = var_1 + -1;
    var_14 = *var_2 < *var_3;
    var_4 = *var_2 == *var_3;
    var_2 = var_2 + (type_4)bVar17 * -2 + 1;
    var_3 = var_3 + (type_4)bVar17 * -2 + 1;
  } while (var_4);
  var_9 = false;
  var_4 = (!var_14 && !var_4) == var_14;
  if (var_4) {
    if (var_5 == (char *)0x0) {
      return -2;
    }
    if (var_6 < 0) {
      return 2;
    }
    var_11 = var_10(2,p);
    if (var_11 != 0) {
      return 2;
    }
    uVar14 = 0;
    uVar16 = var_6 == 0;
    if (!(bool)uVar16) {
      var_13(p,var_5,0);
      return 2;
    }
    var_16(conf,0x34,var_5);
    var_1 = 9;
    var_2 = (type_5 *)p;
    var_3 = (type_5 *)"-loghost";
    do {
      if (var_1 == 0) break;
      var_1 = var_1 + -1;
      uVar14 = *var_2 < *var_3;
      uVar16 = *var_2 == *var_3;
      var_2 = var_2 + (type_4)bVar17 * -2 + 1;
      var_3 = var_3 + (type_4)bVar17 * -2 + 1;
    } while ((bool)uVar16);
    var_4 = false;
    var_14 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;
    if (var_14) {
      var_11 = var_10(2,p);
      uVar14 = var_11 == 0;
      if (!(bool)uVar14) {
        return 2;
      }
LAB_0010a0b4:
      uVar16 = 0;
      var_16(conf,9,var_5);
      var_1 = 9;
      var_2 = (type_5 *)p;
      var_3 = (type_5 *)"-hostkey";
      do {
        if (var_1 == 0) break;
        var_1 = var_1 + -1;
        uVar16 = *var_2 < *var_3;
        uVar14 = *var_2 == *var_3;
        var_2 = var_2 + (type_4)bVar17 * -2 + 1;
        var_3 = var_3 + (type_4)bVar17 * -2 + 1;
      } while ((bool)uVar14);
      var_11 = 2;
      var_4 = (!(bool)uVar16 && !(bool)uVar14) == (bool)uVar16;
      if (var_4) {
        var_11 = var_10(2,p);
        if (var_11 != 0) {
          return 2;
        }
        goto LAB_0010a103;
      }
    }
    else {
      var_1 = 9;
      var_2 = (type_5 *)p;
      var_3 = (type_5 *)"-hostkey";
      do {
        if (var_1 == 0) break;
        var_1 = var_1 + -1;
        var_4 = *var_2 < *var_3;
        var_14 = *var_2 == *var_3;
        var_2 = var_2 + (type_4)bVar17 * -2 + 1;
        var_3 = var_3 + (type_4)bVar17 * -2 + 1;
      } while (var_14);
      var_11 = 2;
      var_4 = (!var_4 && !var_14) == var_4;
      if (var_4) goto LAB_00108738;
    }
LAB_0010884b:
    var_14 = false;
    var_1 = 3;
    var_2 = (type_5 *)p;
    var_3 = &DAT_0013b2a9;
    do {
      if (var_1 == 0) break;
      var_1 = var_1 + -1;
      var_14 = *var_2 < *var_3;
      var_4 = *var_2 == *var_3;
      var_2 = var_2 + (type_4)bVar17 * -2 + 1;
      var_3 = var_3 + (type_4)bVar17 * -2 + 1;
    } while (var_4);
    var_4 = (!var_14 && !var_4) == var_14;
    if (!var_4) goto LAB_00108865;
    goto LAB_0010889d;
  }
  var_1 = 9;
  var_2 = (type_5 *)p;
  var_3 = (type_5 *)"-loghost";
  do {
    if (var_1 == 0) break;
    var_1 = var_1 + -1;
    var_9 = *var_2 < *var_3;
    var_4 = *var_2 == *var_3;
    var_2 = var_2 + (type_4)bVar17 * -2 + 1;
    var_3 = var_3 + (type_4)bVar17 * -2 + 1;
  } while (var_4);
  var_14 = false;
  var_4 = (!var_9 && !var_4) == var_9;
  if (var_4) {
    if (var_5 == (char *)0x0) {
      return -2;
    }
    if (var_6 < 0) {
      return 2;
    }
    var_11 = var_10(2,p);
    if (var_11 != 0) {
      return 2;
    }
    uVar14 = var_6 == 0;
    if (!(bool)uVar14) {
      var_13(p,var_5,0);
      return 2;
    }
    goto LAB_0010a0b4;
  }
  var_1 = 9;
  var_2 = (type_5 *)p;
  var_3 = (type_5 *)"-hostkey";
  do {
    if (var_1 == 0) break;
    var_1 = var_1 + -1;
    var_14 = *var_2 < *var_3;
    var_4 = *var_2 == *var_3;
    var_2 = var_2 + (type_4)bVar17 * -2 + 1;
    var_3 = var_3 + (type_4)bVar17 * -2 + 1;
  } while (var_4);
  var_4 = (!var_14 && !var_4) == var_14;
  if (!var_4) goto LAB_0010884b;
  if (var_5 == (char *)0x0) {
    return -2;
  }
  if (var_6 < 0) {
    return 2;
  }
LAB_00108738:
  var_11 = var_10(2,p);
  if (var_11 != 0) {
    return 2;
  }
  if (var_6 != 0) {
    var_13(p,var_5,0);
    return 2;
  }
LAB_0010a103:
  var_24 = var_8(var_5);
  var_11 = var_18(var_24);
  uVar14 = 0;
  uVar16 = var_11 == 0;
  if ((bool)uVar16) {
    var_19("\'%s\' is not a valid format for a manual host key specification",var_5);
    var_20(var_24);
    return 2;
  }
  var_21(conf,0xad,var_24,"");
  var_20(var_24);
  var_1 = 3;
  var_2 = (type_5 *)p;
  var_3 = &DAT_0013b2a9;
  do {
    if (var_1 == 0) break;
    var_1 = var_1 + -1;
    uVar14 = *var_2 < *var_3;
    uVar16 = *var_2 == *var_3;
    var_2 = var_2 + (type_4)bVar17 * -2 + 1;
    var_3 = var_3 + (type_4)bVar17 * -2 + 1;
  } while ((bool)uVar16);
  var_11 = 2;
  var_4 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;
  if (var_4) {
    var_11 = var_10(3,p);
    var_4 = var_11 == 0;
    if (!var_4) {
      return 2;
    }
LAB_001088cd:
    var_14 = false;
    var_1 = 3;
    var_2 = (type_5 *)p;
    var_3 = (type_5 *)0x1440f1;
    do {
      if (var_1 == 0) break;
      var_1 = var_1 + -1;
      var_14 = *var_2 < *var_3;
      var_4 = *var_2 == *var_3;
      var_2 = var_2 + (type_4)bVar17 * -2 + 1;
      var_3 = var_3 + (type_4)bVar17 * -2 + 1;
    } while (var_4);
    uVar14 = 0;
    uVar16 = (!var_14 && !var_4) == var_14;
    if ((bool)uVar16) {
      var_24 = var_22("L%s",var_5);
      var_25 = var_8("D");
    }
    else {
      var_38 = p[1];
      var_24 = var_23(var_5,0x3a);
      var_25 = var_24;
      if (var_24 == (char *)0x0) {
LAB_00108973:
        var_19("-%c expects at least two colons in its argument",(type_4)(type_7)(int)var_38);
        return 2;
      }
      do {
        var_26 = var_25;
        var_25 = var_24;
        var_24 = var_23(var_25 + 1,0x3a);
      } while (var_24 != (char *)0x0);
      if (var_26 == (char *)0x0) goto LAB_00108973;
      uVar14 = var_26 < var_5;
      uVar16 = (long)var_26 - (long)var_5 == 0;
      var_24 = var_22("%c%.*s",(type_4)(type_7)(int)var_38,(long)var_26 - (long)var_5,var_5);
      var_25 = var_8(var_26 + 1);
    }
    var_21(conf,0x9b,var_24,var_25);
    var_20(var_24);
    var_20(var_25);
    var_1 = 4;
    var_2 = (type_5 *)p;
    var_3 = &DAT_0013b2ba;
    do {
      if (var_1 == 0) break;
      var_1 = var_1 + -1;
      uVar14 = *var_2 < *var_3;
      uVar16 = *var_2 == *var_3;
      var_2 = var_2 + (type_4)bVar17 * -2 + 1;
      var_3 = var_3 + (type_4)bVar17 * -2 + 1;
    } while ((bool)uVar16);
    var_11 = 2;
    var_4 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;
    if (!var_4) goto LAB_00108a01;
    var_11 = var_10(3,p);
    if (var_11 != 0) {
      return 2;
    }
LAB_00109fa5:
    var_24 = var_23(var_5,0x3a);
    if (var_24 == (char *)0x0) {
      var_19("-nc expects argument of form \'host:port\'");
      return 2;
    }
    var_25 = var_22("%.*s",(long)var_24 - (long)var_5,var_5);
    var_16(conf,0x2e,var_25);
    var_1 = var_27(var_24 + 1,(char **)0x0,10);
    var_12(conf,0x2f,(int)var_1);
    var_20(var_25);
    var_29 = var_28(p,"-m");
    var_11 = 2;
    var_4 = var_29 == 0;
    if (!var_4) goto LAB_0010a032;
    var_11 = var_10(3,p);
    if (var_11 != 0) {
      return 2;
    }
LAB_00109f54:
    var_31 = var_30(var_5,"r");
    if (var_31 == (type_3 *)0x0) {
      var_19("unable to open command file \"%s\"",var_5);
      return 2;
    }
    var_1 = 0;
    var_33 = 0;
    var_24 = (char *)0x0;
    while( true ) {
      var_29 = (int)var_1;
      var_11 = var_32(var_31);
      if (var_11 == -1) break;
      var_43._0_1_ = (char)var_11;
      if (var_29 < var_33) {
        var_24[var_1] = (char)var_43;
      }
      else {
        var_33 = var_29 + 0x200;
        var_24 = (char *)var_34(var_24,(long)var_33,1);
        var_24[var_1] = (char)var_43;
      }
      var_1 = var_1 + 1;
    }
    if (var_29 < var_33) {
      var_24[var_29] = '\0';
    }
    else {
      var_24 = (char *)var_34(var_24,(long)(var_29 + 0x200),1);
      var_24[var_1] = '\0';
    }
    var_35(var_31);
    var_16(conf,0x14,var_24);
    var_16(conf,0x15,"");
    var_12(conf,0x16,1);
    var_20(var_24);
    var_29 = var_28(p,"-P");
    var_11 = 2;
    if (var_29 == 0) {
      var_11 = var_10(2,p);
      if (var_11 != 0) {
        return 2;
      }
      goto LAB_00109749;
    }
LAB_00108afa:
    var_29 = var_28(p,"-pw");
    if (var_29 == 0) {
      if (var_5 == (char *)0x0) {
        return -2;
      }
      if (var_6 < 0) {
        return 2;
      }
      var_11 = var_10(2,p);
      if (var_11 != 0) {
        return 2;
      }
      if (var_6 != 0) {
        var_13(p,var_5,1);
        return 2;
      }
      goto LAB_00109ee5;
    }
    var_29 = var_28(p,"-agent");
    if (var_29 != 0) goto LAB_00108ba4;
LAB_00108bce:
    if (var_6 < 0) {
      return 1;
    }
LAB_00108bdc:
    var_11 = var_10(2,p);
    if (var_11 != 0) {
      return 1;
    }
    if (var_6 != 0) {
      var_13(p,var_5,0);
      return 1;
    }
LAB_00108bf9:
    var_12(conf,0x1c,1);
    var_11 = var_28(p,"-noagent");
    if (var_11 == 0) {
      var_11 = var_10(2,p);
      if (var_11 != 0) {
        return 1;
      }
      goto LAB_00108c37;
    }
    var_29 = var_28(p,"-nopagent");
    var_11 = 1;
    if (var_29 == 0) goto LAB_00109e76;
LAB_00108d1b:
    var_29 = var_28(p,"-nopageant");
    if (var_29 == 0) goto LAB_00108d2e;
    var_29 = var_28(p,"-A");
    if (var_29 != 0) {
      var_29 = var_28(p,"-a");
      if (var_29 != 0) goto LAB_00108c7d;
      if (var_6 < 0) {
        return 1;
      }
      goto LAB_00108db9;
    }
    if (var_6 < 0) {
      return 1;
    }
    var_11 = var_10(3,p);
    if (var_11 != 0) {
      return 1;
    }
    if (var_6 != 0) {
      var_13(p,var_5,0);
      return 1;
    }
LAB_00109d88:
    var_12(conf,0x1d,1);
    var_11 = var_28(p,"-a");
    if (var_11 == 0) {
      var_11 = var_10(3,p);
      if (var_11 != 0) {
        return 1;
      }
      goto LAB_00109d25;
    }
    var_29 = var_28(p,"-X");
    var_11 = 1;
    if (var_29 == 0) {
LAB_00108ca2:
      var_11 = var_10(3,p);
      if (var_11 != 0) {
        return 1;
      }
      if (var_6 != 0) {
        var_13(p,var_5,0);
        return 1;
      }
      goto LAB_00109c0f;
    }
LAB_00109dce:
    var_29 = var_28(p,"-x");
    if (var_29 != 0) goto LAB_00109de5;
    if (var_6 < 0) {
      return 1;
    }
LAB_00108dff:
    var_11 = var_10(3,p);
    if (var_11 != 0) {
      return 1;
    }
    if (var_6 != 0) {
      var_13(p,var_5,0);
      return 1;
    }
LAB_00109c49:
    var_12(conf,0x95,0);
    var_11 = var_28(p,"-t");
    if (var_11 == 0) {
      var_11 = var_10(3,p);
      if (var_11 != 0) {
        return 1;
      }
LAB_00109c87:
      var_12(conf,0x16,0);
      var_11 = var_28(p,"-T");
      if (var_11 == 0) {
        var_11 = var_10(3,p);
        if (var_11 != 0) {
          return 1;
        }
        goto LAB_00109cc5;
      }
      var_29 = var_28(p,"-N");
      var_11 = 1;
      if (var_29 == 0) goto LAB_00109ba0;
    }
    else {
      var_29 = var_28(p,"-T");
      var_11 = 1;
      if (var_29 == 0) goto LAB_00109e21;
LAB_00109b7b:
      var_29 = var_28(p,"-N");
      if (var_29 == 0) {
        if (var_6 < 0) {
          return 1;
        }
LAB_00109ba0:
        var_11 = var_10(3,p);
        if (var_11 != 0) {
          return 1;
        }
        if (var_6 != 0) {
          var_13(p,var_5,0);
          return 1;
        }
        goto LAB_00109a6e;
      }
    }
    var_29 = var_28(p,"-C");
    if (var_29 == 0) {
      if (var_6 < 0) {
        return 1;
      }
LAB_00108e8b:
      var_11 = var_10(2,p);
      if (var_11 != 0) {
        return 1;
      }
      if (var_6 != 0) {
        var_13(p,var_5,0);
        return 1;
      }
LAB_0010989e:
      var_12(conf,0x17,1);
      var_11 = var_28(p,"-1");
      if (var_11 == 0) {
        var_11 = var_10(2,p);
        if (var_11 != 0) {
          return 1;
        }
        goto LAB_001098d8;
      }
      var_29 = var_28(p,"-2");
      var_11 = 1;
      if (var_29 != 0) goto LAB_00109930;
      goto LAB_00109b26;
    }
LAB_00109aea:
    var_29 = var_28(p,"-1");
    if (var_29 != 0) goto LAB_00109b01;
    if (var_6 < 0) {
      return 1;
    }
LAB_00108ed1:
    var_11 = var_10(2,p);
    if (var_11 != 0) {
      return 1;
    }
    if (var_6 != 0) {
      var_13(p,var_5,0);
      return 1;
    }
LAB_001098d8:
    var_12(conf,0x21,0);
    var_29 = var_28(p,"-2");
    var_11 = 1;
    if (var_29 != 0) goto LAB_00109930;
    var_11 = var_10(2,p);
    if (var_11 != 0) {
      return 1;
    }
LAB_00109918:
    var_12(conf,0x21,3);
    var_11 = 1;
  }
  else {
LAB_00108865:
    var_14 = false;
    var_1 = 3;
    var_2 = (type_5 *)p;
    var_3 = &DAT_0013b2ac;
    do {
      if (var_1 == 0) break;
      var_1 = var_1 + -1;
      var_14 = *var_2 < *var_3;
      var_4 = *var_2 == *var_3;
      var_2 = var_2 + (type_4)bVar17 * -2 + 1;
      var_3 = var_3 + (type_4)bVar17 * -2 + 1;
    } while (var_4);
    var_9 = false;
    var_4 = (!var_14 && !var_4) == var_14;
    if (var_4) {
LAB_0010889d:
      if (var_5 == (char *)0x0) {
        return -2;
      }
      if (var_6 < 0) {
        return 2;
      }
      var_11 = var_10(3,p);
      if (var_11 != 0) {
        return 2;
      }
      var_4 = var_6 == 0;
      if (!var_4) {
        var_13(p,var_5,0);
        return 2;
      }
      goto LAB_001088cd;
    }
    var_1 = 3;
    var_2 = (type_5 *)p;
    var_3 = (type_5 *)0x1440f1;
    do {
      if (var_1 == 0) break;
      var_1 = var_1 + -1;
      var_9 = *var_2 < *var_3;
      var_4 = *var_2 == *var_3;
      var_2 = var_2 + (type_4)bVar17 * -2 + 1;
      var_3 = var_3 + (type_4)bVar17 * -2 + 1;
    } while (var_4);
    if ((!var_9 && !var_4) == var_9) goto LAB_0010889d;
    var_29 = var_28(p,"-nc");
    var_4 = var_29 == 0;
    if (var_4) {
      if (var_5 == (char *)0x0) {
        return -2;
      }
      if (var_6 < 0) {
        return 2;
      }
      var_11 = var_10(3,p);
      if (var_11 != 0) {
        return 2;
      }
      if (var_6 != 0) {
        var_13(p,var_5,0);
        return 2;
      }
      goto LAB_00109fa5;
    }
LAB_00108a01:
    var_14 = false;
    var_1 = 3;
    var_2 = (type_5 *)p;
    var_3 = &DAT_0013b2be;
    do {
      if (var_1 == 0) break;
      var_1 = var_1 + -1;
      var_14 = *var_2 < *var_3;
      var_4 = *var_2 == *var_3;
      var_2 = var_2 + (type_4)bVar17 * -2 + 1;
      var_3 = var_3 + (type_4)bVar17 * -2 + 1;
    } while (var_4);
    var_4 = (!var_14 && !var_4) == var_14;
    if (var_4) {
      if (var_5 == (char *)0x0) {
        return -2;
      }
      if (var_6 < 0) {
        return 2;
      }
      var_11 = var_10(3,p);
      if (var_11 != 0) {
        return 2;
      }
      if (var_6 != 0) {
        var_13(p,var_5,0);
        return 2;
      }
      goto LAB_00109f54;
    }
LAB_0010a032:
    var_14 = false;
    var_1 = 3;
    var_2 = (type_5 *)p;
    var_3 = &DAT_0013b2c1;
    do {
      if (var_1 == 0) break;
      var_1 = var_1 + -1;
      var_14 = *var_2 < *var_3;
      var_4 = *var_2 == *var_3;
      var_2 = var_2 + (type_4)bVar17 * -2 + 1;
      var_3 = var_3 + (type_4)bVar17 * -2 + 1;
    } while (var_4);
    if ((!var_14 && !var_4) != var_14) goto LAB_00108afa;
    if (var_5 == (char *)0x0) {
      return -2;
    }
    if (var_6 < 0) {
      return 2;
    }
    var_11 = var_10(2,p);
    if (var_11 != 0) {
      return 2;
    }
    if (var_6 != 0) {
      var_13(p,var_5,1);
      return 2;
    }
LAB_00109749:
    var_1 = var_27(var_5,(char **)0x0,10);
    var_12(conf,1,(int)var_1);
    var_11 = var_28(p,"-pw");
    if (var_11 == 0) {
      var_11 = var_10(2,p);
      if (var_11 != 0) {
        return 2;
      }
LAB_00109ee5:
      var_11 = var_36(conf,2);
      if (var_11 == 3) {
        cmdline_password = var_8(var_5);
        var_37 = 0xffffffffffffffff;
        var_24 = var_5;
        do {
          if (var_37 == 0) break;
          var_37 = var_37 - 1;
          var_38 = *var_24;
          var_24 = var_24 + (type_4)bVar17 * -2 + 1;
        } while (var_38 != '\0');
        var_39(var_5,~var_37 - 1);
      }
      else {
        var_19("the -pw option can only be used with the SSH protocol");
      }
      var_11 = var_28(p,"-agent");
      if (var_11 != 0) {
        var_29 = var_28(p,"-pagent");
        var_11 = 2;
        if (var_29 != 0) goto LAB_00108bb7;
        goto LAB_00108bdc;
      }
      var_11 = var_10(2,p);
      if (var_11 != 0) {
        return 1;
      }
      goto LAB_00108bf9;
    }
    var_29 = var_28(p,"-agent");
    var_11 = 2;
    if (var_29 == 0) goto LAB_00108bdc;
LAB_00108ba4:
    var_29 = var_28(p,"-pagent");
    if (var_29 == 0) goto LAB_00108bce;
LAB_00108bb7:
    var_29 = var_28(p,"-pageant");
    if (var_29 == 0) goto LAB_00108bce;
    var_29 = var_28(p,"-noagent");
    if ((var_29 != 0) && (var_29 = var_28(p,"-nopagent"), var_29 != 0)) goto LAB_00108d1b;
LAB_00108d2e:
    if (var_6 < 0) {
      return 1;
    }
LAB_00109e76:
    var_11 = var_10(2,p);
    if (var_11 != 0) {
      return 1;
    }
    if (var_6 != 0) {
      var_13(p,var_5,0);
      return 1;
    }
LAB_00108c37:
    var_12(conf,0x1c,0);
    var_11 = var_28(p,"-A");
    if (var_11 == 0) {
      var_11 = var_10(3,p);
      if (var_11 != 0) {
        return 1;
      }
      goto LAB_00109d88;
    }
    var_11 = var_28(p,"-a");
    if (var_11 != 0) {
      var_11 = 1;
LAB_00108c7d:
      var_29 = var_28(p,"-X");
      if (var_29 != 0) goto LAB_00109dce;
      if (var_6 < 0) {
        return 1;
      }
      goto LAB_00108ca2;
    }
LAB_00108db9:
    var_11 = var_10(3,p);
    if (var_11 != 0) {
      return 1;
    }
    if (var_6 != 0) {
      var_13(p,var_5,0);
      return 1;
    }
LAB_00109d25:
    var_12(conf,0x1d,0);
    var_11 = var_28(p,"-X");
    if (var_11 == 0) {
      var_11 = var_10(3,p);
      if (var_11 != 0) {
        return 1;
      }
LAB_00109c0f:
      var_12(conf,0x95,1);
      var_11 = var_28(p,"-x");
      if (var_11 == 0) {
        var_11 = var_10(3,p);
        if (var_11 != 0) {
          return 1;
        }
        goto LAB_00109c49;
      }
      var_29 = var_28(p,"-t");
      var_11 = 1;
      if (var_29 != 0) goto LAB_00109dfc;
LAB_00108e45:
      var_11 = var_10(3,p);
      if (var_11 != 0) {
        return 1;
      }
      if (var_6 != 0) {
        var_13(p,var_5,1);
        return 1;
      }
      goto LAB_00109c87;
    }
    var_29 = var_28(p,"-x");
    var_11 = 1;
    if (var_29 == 0) goto LAB_00108dff;
LAB_00109de5:
    var_29 = var_28(p,"-t");
    if (var_29 == 0) {
      if (var_6 < 0) {
        return 1;
      }
      goto LAB_00108e45;
    }
LAB_00109dfc:
    var_29 = var_28(p,"-T");
    if (var_29 != 0) goto LAB_00109b7b;
    if (var_6 < 0) {
      return 1;
    }
LAB_00109e21:
    var_11 = var_10(3,p);
    if (var_11 != 0) {
      return 1;
    }
    if (var_6 != 0) {
      var_13(p,var_5,1);
      return 1;
    }
LAB_00109cc5:
    var_12(conf,0x16,1);
    var_11 = var_28(p,"-N");
    if (var_11 != 0) {
      var_29 = var_28(p,"-C");
      var_11 = 1;
      if (var_29 == 0) goto LAB_00108e8b;
      goto LAB_00109aea;
    }
    var_11 = var_10(3,p);
    if (var_11 != 0) {
      return 1;
    }
LAB_00109a6e:
    var_12(conf,0x2d,1);
    var_11 = var_28(p,"-C");
    if (var_11 == 0) {
      var_11 = var_10(2,p);
      if (var_11 != 0) {
        return 1;
      }
      goto LAB_0010989e;
    }
    var_29 = var_28(p,"-1");
    var_11 = 1;
    if (var_29 == 0) goto LAB_00108ed1;
LAB_00109b01:
    var_29 = var_28(p,"-2");
    if (var_29 == 0) {
      if (var_6 < 0) {
        return 1;
      }
LAB_00109b26:
      var_11 = var_10(2,p);
      if (var_11 != 0) {
        return 1;
      }
      if (var_6 != 0) {
        var_13(p,var_5,0);
        return 1;
      }
      goto LAB_00109918;
    }
  }
LAB_00109930:
  var_29 = var_28(p,"-i");
  if (var_29 == 0) {
    if (var_5 == (char *)0x0) {
      return -2;
    }
    if (var_6 < 0) {
      return 2;
    }
    var_11 = var_10(2,p);
    if (var_11 != 0) {
      return 2;
    }
    if (var_6 != 0) {
      var_13(p,var_5,0);
      return 2;
    }
    pFVar6 = var_40(var_5);
    var_41(conf,0x20,pFVar6);
    var_42(pFVar6);
    var_11 = var_28(p,"-4");
    if (var_11 != 0) {
      var_29 = var_28(p,"-ipv4");
      var_11 = 2;
      if (var_29 != 0) goto LAB_00109814;
    }
LAB_001099af:
    var_12(conf,3,1);
    var_29 = var_28(p,"-6");
    var_11 = 1;
    if (var_29 == 0) goto LAB_001099de;
LAB_00109827:
    var_29 = var_28(p,"-ipv6");
    if (var_29 == 0) goto LAB_0010983e;
  }
  else {
    var_29 = var_28(p,"-4");
    if ((var_29 == 0) || (var_29 = var_28(p,"-ipv4"), var_29 == 0)) {
      if (var_6 < 0) {
        return 1;
      }
      if (var_6 != 0) {
        var_13(p,var_5,1);
        return 1;
      }
      goto LAB_001099af;
    }
LAB_00109814:
    var_29 = var_28(p,"-6");
    if (var_29 != 0) goto LAB_00109827;
LAB_0010983e:
    if (var_6 < 0) {
      return 1;
    }
    if (var_6 != 0) {
      var_13(p,var_5,1);
      return 1;
    }
LAB_001099de:
    var_12(conf,3,2);
    var_11 = 1;
  }
  var_29 = var_28(p,"-sercfg");
  if (var_29 == 0) {
    if (var_5 == (char *)0x0) {
      return -2;
    }
    if (var_6 < 0) {
      return 2;
    }
    var_11 = var_10(3,p);
    if (var_11 != 0) {
      return 2;
    }
    if (var_6 != 0) {
      var_13(p,var_5,1);
      return 2;
    }
    var_11 = var_36(conf,2);
    var_24 = var_5;
    if (var_11 != 4) {
      var_19("the -sercfg option can only be used with the serial protocol");
    }
    for (; *var_24 != '\0'; var_24 = var_24 + (var_43 + var_11)) {
      var_25 = var_44(var_24,0x2c);
      if (var_25 == (char *)0x0) {
        var_1 = -1;
        var_25 = var_24;
        do {
          if (var_1 == 0) break;
          var_1 = var_1 + -1;
          var_38 = *var_25;
          var_25 = var_25 + (type_4)bVar17 * -2 + 1;
        } while (var_38 != '\0');
        var_11 = ~(type_7)var_1 - 1;
        var_43 = 0;
      }
      else {
        var_11 = (int)var_25 - (int)var_24;
        var_24[var_11] = '\0';
        var_43 = 1;
      }
      if (var_11 == 1) {
        var_38 = *var_24;
        switch(var_38) {
        case '1':
        case '2':
          var_12(conf,0x3c,var_38 * 2 + -0x60);
          break;
        default:
          var_19("Unrecognised suboption \"-sercfg %c\"");
          break;
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':
          var_12(conf,0x3b,var_38 + -0x30);
          break;
        case 'D':
          var_12(conf,0x3e,3);
          break;
        case 'N':
          var_12(conf,0x3e,0);
          break;
        case 'R':
          var_12(conf,0x3e,2);
          break;
        case 'X':
          var_12(conf,0x3e,1);
          break;
        case 'e':
          var_12(conf,0x3d,2);
          break;
        case 'm':
          var_12(conf,0x3d,3);
          break;
        case 'n':
          var_12(conf,0x3d,0);
          break;
        case 'o':
          var_12(conf,0x3d,1);
          break;
        case 's':
          var_12(conf,0x3d,4);
        }
      }
      else if ((var_11 == 3) && (var_29 = var_45(var_24,"1.5",3), var_29 == 0)) {
        var_12(conf,0x3c,3);
      }
      else {
        var_1 = var_27(var_24,(char **)0x0,10);
        if ((int)var_1 == 0) {
          var_19("Unrecognised suboption \"-sercfg %s\"",var_24);
        }
        else {
          var_12(conf,0x3a,(int)var_1);
        }
      }
    }
    var_11 = var_28(p,"-sessionlog");
    if (var_11 != 0) {
      var_29 = var_28(p,"-sshlog");
      var_11 = 2;
      if (var_29 != 0) goto LAB_0010921f;
      goto LAB_0010924d;
    }
    var_11 = var_10(1,p);
    if (var_11 != 0) {
      return 2;
    }
LAB_001095f3:
    pFVar6 = var_40(var_5);
    var_41(conf,0x77,pFVar6);
    var_12(conf,0x78,2);
    var_42(pFVar6);
    var_29 = var_28(p,"-sshlog");
    var_11 = 2;
    if (var_29 != 0) {
LAB_0010921f:
      var_29 = var_28(p,"-sshrawlog");
      if (var_29 != 0) {
        var_29 = var_28(p,"-proxycmd");
        if (var_29 != 0) {
          return var_11;
        }
        if (var_5 == (char *)0x0) {
          return -2;
        }
        if (var_6 < 0) {
          return 2;
        }
        var_11 = var_10(2,p);
        if (var_11 != 0) {
          return 2;
        }
        if (var_6 != 0) {
          var_13(p,var_5,0);
          return 2;
        }
        goto LAB_001092e3;
      }
      goto LAB_00109236;
    }
    var_11 = var_10(2,p);
    if (var_11 != 0) {
      return 2;
    }
  }
  else {
    var_29 = var_28(p,"-sessionlog");
    if (var_29 == 0) {
      if (var_5 == (char *)0x0) {
        return -2;
      }
      if (var_6 < 0) {
        return 2;
      }
      var_11 = var_10(1,p);
      if (var_11 != 0) {
        return 2;
      }
      if (var_6 != 0) {
        var_13(p,var_5,0);
        return 2;
      }
      goto LAB_001095f3;
    }
    var_29 = var_28(p,"-sshlog");
    if (var_29 != 0) goto LAB_0010921f;
LAB_00109236:
    if (var_5 == (char *)0x0) {
      return -2;
    }
    if (var_6 < 0) {
      return 2;
    }
LAB_0010924d:
    var_11 = var_10(2,p);
    if (var_11 != 0) {
      return 2;
    }
    if (var_6 != 0) {
      var_13(p,var_5,0);
      return 2;
    }
  }
  pFVar6 = var_40(var_5);
  var_41(conf,0x77,pFVar6);
  var_11 = var_28(p,"-sshlog");
  var_12(conf,0x78,4 - (type_7)(var_11 == 0));
  var_42(pFVar6);
  var_11 = var_28(p,"-proxycmd");
  if (var_11 != 0) {
    return 2;
  }
  var_11 = var_10(2,p);
  if (var_11 != 0) {
    return 2;
  }
LAB_001092e3:
  var_12(conf,0xd,5);
  var_16(conf,0x12,var_5);
  return 2;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (string_literal (string_content))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (return_statement (number_literal)))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier)))) (return_statement (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal)))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (string_literal (string_content))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier)))) (return_statement (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal)))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (string_literal (string_content))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier)))) (return_statement (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal)))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (string_literal (string_content))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (string_literal (string_content))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (string_literal (string_content))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (string_literal (string_content))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (string_literal (string_content))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (false)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (string_literal (string_content))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (string_literal (string_content))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (escape_sequence) (string_content) (escape_sequence) (string_content)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (return_statement (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier) (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (false)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (return_statement (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier))) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence))))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier))) (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence)) (identifier)))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal)))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal)))) (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (false)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal)))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (false)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal)))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (false)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)) (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (unary_expression argument: (identifier)) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal)))) (goto_statement label: (statement_identifier))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal)))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))))) (for_statement condition: (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence))) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement value: (char_literal (character))) (case_statement value: (char_literal (character)) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))))) (break_statement)) (case_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence))))) (break_statement)) (case_statement value: (char_literal (character))) (case_statement value: (char_literal (character))) (case_statement value: (char_literal (character))) (case_statement value: (char_literal (character))) (case_statement value: (char_literal (character)) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (break_statement)) (case_statement value: (char_literal (character)) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal)))) (break_statement)) (case_statement value: (char_literal (character)) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal)))) (break_statement)) (case_statement value: (char_literal (character)) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal)))) (break_statement)) (case_statement value: (char_literal (character)) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal)))) (break_statement)) (case_statement value: (char_literal (character)) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal)))) (break_statement)) (case_statement value: (char_literal (character)) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal)))) (break_statement)) (case_statement value: (char_literal (character)) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal)))) (break_statement)) (case_statement value: (char_literal (character)) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal)))) (break_statement)) (case_statement value: (char_literal (character)) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal)))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (number_literal)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence)) (identifier))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (identifier) right: (number_literal))))))))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal)))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (number_literal) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier)))) (return_statement (number_literal)))))

/* WARNING: Type propagation algorithm not settling */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

undefined8 MASKED(byte *param_1,char *param_2,int param_3,undefined8 param_4)

{
  byte bVar1;
  char cVar2;
  int iVar3;
  int iVar4;
  undefined8 uVar5;
  char *pcVar6;
  undefined8 uVar7;
  char *pcVar8;
  ulong uVar9;
  FILE *__stream;
  long lVar10;
  byte *pbVar11;
  byte *pbVar12;
  long lVar13;
  char *pcVar14;
  bool bVar15;
  bool bVar16;
  undefined1 uVar17;
  bool bVar18;
  undefined1 uVar19;
  byte bVar20;
  int local_48;
  int local_3c;
  
  bVar20 = 0;
  bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x28;
  bVar18 = &stack0x00000000 == (undefined1 *)0x58;
  lVar10 = 6;
  pbVar11 = param_1;
  pbVar12 = (byte *)"-load";
  do {
    if (lVar10 == 0) break;
    lVar10 = lVar10 + -1;
    bVar15 = *pbVar11 < *pbVar12;
    bVar18 = *pbVar11 == *pbVar12;
    pbVar11 = pbVar11 + 1;
    pbVar12 = pbVar12 + 1;
  } while (bVar18);
  bVar16 = false;
  bVar15 = (!bVar15 && !bVar18) == bVar15;
  if (bVar15) {
    if (param_2 == (char *)0x0) {
      return 0xfffffffe;
    }
    if (-1 < param_3) {
      FUN_00116e22(param_2,param_4);
      _DAT_00152558 = 1;
      _DAT_00152560 = FUN_0010bd5d(param_2);
      return 2;
    }
    return 2;
  }
  lVar10 = 5;
  pbVar11 = param_1;
  pbVar12 = &DAT_0013b272;
  do {
    if (lVar10 == 0) break;
    lVar10 = lVar10 + -1;
    bVar16 = *pbVar11 < *pbVar12;
    bVar15 = *pbVar11 == *pbVar12;
    pbVar11 = pbVar11 + 1;
    pbVar12 = pbVar12 + 1;
  } while (bVar15);
  bVar18 = false;
  bVar15 = (!bVar16 && !bVar15) == bVar16;
  if (bVar15) {
    if (param_3 < 0) {
      return 1;
    }
    iVar3 = FUN_00108083(3,param_1);
    if (iVar3 == 0) {
      if (param_3 == 0) {
        DAT_00152538 = 3;
        DAT_00152548 = 0x16;
        FUN_0010ac09(param_4,2,3);
        FUN_0010ac09(param_4,1,DAT_00152548);
        return 1;
      }
      FUN_001080ad(param_1,param_2,0);
      return 1;
    }
    return 1;
  }
  lVar10 = 8;
  pbVar11 = param_1;
  pbVar12 = (byte *)"-telnet";
  do {
    if (lVar10 == 0) break;
    lVar10 = lVar10 + -1;
    bVar18 = *pbVar11 < *pbVar12;
    bVar15 = *pbVar11 == *pbVar12;
    pbVar11 = pbVar11 + 1;
    pbVar12 = pbVar12 + 1;
  } while (bVar15);
  bVar16 = false;
  bVar15 = (!bVar18 && !bVar15) == bVar18;
  if (bVar15) {
    if (param_3 < 0) {
      return 1;
    }
    iVar3 = FUN_00108083(3,param_1);
    if (iVar3 == 0) {
      if (param_3 == 0) {
        DAT_00152538 = 1;
        DAT_00152548 = 0x17;
        FUN_0010ac09(param_4,2,1);
        FUN_0010ac09(param_4,1,DAT_00152548);
        return 1;
      }
      FUN_001080ad(param_1,param_2,0);
      return 1;
    }
    return 1;
  }
  lVar10 = 8;
  pbVar11 = param_1;
  pbVar12 = (byte *)"-rlogin";
  do {
    if (lVar10 == 0) break;
    lVar10 = lVar10 + -1;
    bVar16 = *pbVar11 < *pbVar12;
    bVar15 = *pbVar11 == *pbVar12;
    pbVar11 = pbVar11 + 1;
    pbVar12 = pbVar12 + 1;
  } while (bVar15);
  bVar18 = false;
  bVar15 = (!bVar16 && !bVar15) == bVar16;
  if (bVar15) {
    if (param_3 < 0) {
      return 1;
    }
    iVar3 = FUN_00108083(3,param_1);
    if (iVar3 == 0) {
      if (param_3 == 0) {
        DAT_00152538 = 2;
        DAT_00152548 = 0x201;
        FUN_0010ac09(param_4,2,2);
        FUN_0010ac09(param_4,1,DAT_00152548);
        return 1;
      }
      FUN_001080ad(param_1,param_2,0);
      return 1;
    }
    return 1;
  }
  lVar10 = 5;
  pbVar11 = param_1;
  pbVar12 = &DAT_0013b287;
  do {
    if (lVar10 == 0) break;
    lVar10 = lVar10 + -1;
    bVar18 = *pbVar11 < *pbVar12;
    bVar15 = *pbVar11 == *pbVar12;
    pbVar11 = pbVar11 + 1;
    pbVar12 = pbVar12 + 1;
  } while (bVar15);
  bVar16 = false;
  bVar15 = (!bVar18 && !bVar15) == bVar18;
  if (bVar15) {
    if (param_3 < 0) {
      return 1;
    }
    iVar3 = FUN_00108083(3,param_1);
    if (iVar3 != 0) {
      return 1;
    }
    uVar17 = 0;
    uVar19 = param_3 == 0;
    if (!(bool)uVar19) {
      FUN_001080ad(param_1,param_2,0);
      return 1;
    }
    DAT_00152538 = 0;
    FUN_0010ac09(param_4,2,0);
    lVar10 = 8;
    pbVar11 = param_1;
    pbVar12 = (byte *)"-serial";
    do {
      if (lVar10 == 0) break;
      lVar10 = lVar10 + -1;
      uVar17 = *pbVar11 < *pbVar12;
      uVar19 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
    } while ((bool)uVar19);
    bVar15 = false;
    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;
    if (bVar18) {
      iVar3 = FUN_00108083(3,param_1);
      uVar17 = iVar3 == 0;
      if (!(bool)uVar17) {
        return 1;
      }
LAB_0010858a:
      uVar19 = 0;
      DAT_00152538 = 4;
      FUN_0010ac09(param_4,2,4);
      uVar5 = FUN_0010a6d3(param_4,0);
      FUN_0010ad3a(param_4,0x39,uVar5);
      lVar10 = 3;
      pbVar11 = param_1;
      pbVar12 = &DAT_0013b294;
      do {
        if (lVar10 == 0) break;
        lVar10 = lVar10 + -1;
        uVar19 = *pbVar11 < *pbVar12;
        uVar17 = *pbVar11 == *pbVar12;
        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
      } while ((bool)uVar17);
      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;
    }
    else {
      lVar10 = 3;
      pbVar11 = param_1;
      pbVar12 = &DAT_0013b294;
      do {
        if (lVar10 == 0) break;
        lVar10 = lVar10 + -1;
        bVar15 = *pbVar11 < *pbVar12;
        bVar18 = *pbVar11 == *pbVar12;
        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
      } while (bVar18);
      bVar15 = (!bVar15 && !bVar18) == bVar15;
    }
    uVar5 = 1;
    if (bVar15) {
LAB_00108687:
      DAT_0015254c = DAT_0015254c | 1;
      bVar15 = DAT_0015254c == 0;
      uVar5 = 1;
    }
  }
  else {
    lVar10 = 8;
    pbVar11 = param_1;
    pbVar12 = (byte *)"-serial";
    do {
      if (lVar10 == 0) break;
      lVar10 = lVar10 + -1;
      bVar16 = *pbVar11 < *pbVar12;
      bVar15 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + 1;
      pbVar12 = pbVar12 + 1;
    } while (bVar15);
    bVar18 = false;
    bVar15 = (!bVar16 && !bVar15) == bVar16;
    if (bVar15) {
      if (param_3 < 0) {
        return 1;
      }
      iVar3 = FUN_00108083(3,param_1);
      if (iVar3 != 0) {
        return 1;
      }
      uVar17 = param_3 == 0;
      if (!(bool)uVar17) {
        FUN_001080ad(param_1,param_2,0);
        return 1;
      }
      goto LAB_0010858a;
    }
    lVar10 = 3;
    pbVar11 = param_1;
    pbVar12 = &DAT_0013b294;
    do {
      if (lVar10 == 0) break;
      lVar10 = lVar10 + -1;
      bVar18 = *pbVar11 < *pbVar12;
      bVar15 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + 1;
      pbVar12 = pbVar12 + 1;
    } while (bVar15);
    bVar15 = (!bVar18 && !bVar15) == bVar18;
    if (bVar15) {
      if (param_3 < 0) {
        return 1;
      }
      goto LAB_00108687;
    }
    uVar5 = 0;
  }
  bVar18 = false;
  lVar10 = 3;
  pbVar11 = param_1;
  pbVar12 = (byte *)0x1440df;
  do {
    if (lVar10 == 0) break;
    lVar10 = lVar10 + -1;
    bVar18 = *pbVar11 < *pbVar12;
    bVar15 = *pbVar11 == *pbVar12;
    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
  } while (bVar15);
  bVar16 = false;
  bVar15 = (!bVar18 && !bVar15) == bVar18;
  if (bVar15) {
    if (param_2 == (char *)0x0) {
      return 0xfffffffe;
    }
    if (param_3 < 0) {
      return 2;
    }
    iVar3 = FUN_00108083(2,param_1);
    if (iVar3 != 0) {
      return 2;
    }
    uVar17 = 0;
    uVar19 = param_3 == 0;
    if (!(bool)uVar19) {
      FUN_001080ad(param_1,param_2,0);
      return 2;
    }
    FUN_0010ad3a(param_4,0x34,param_2);
    lVar10 = 9;
    pbVar11 = param_1;
    pbVar12 = (byte *)"-loghost";
    do {
      if (lVar10 == 0) break;
      lVar10 = lVar10 + -1;
      uVar17 = *pbVar11 < *pbVar12;
      uVar19 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
    } while ((bool)uVar19);
    bVar15 = false;
    bVar18 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;
    if (bVar18) {
      iVar3 = FUN_00108083(2,param_1);
      uVar17 = iVar3 == 0;
      if (!(bool)uVar17) {
        return 2;
      }
LAB_0010a0b4:
      uVar19 = 0;
      FUN_0010ad3a(param_4,9,param_2);
      lVar10 = 9;
      pbVar11 = param_1;
      pbVar12 = (byte *)"-hostkey";
      do {
        if (lVar10 == 0) break;
        lVar10 = lVar10 + -1;
        uVar19 = *pbVar11 < *pbVar12;
        uVar17 = *pbVar11 == *pbVar12;
        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
      } while ((bool)uVar17);
      uVar5 = 2;
      bVar15 = (!(bool)uVar19 && !(bool)uVar17) == (bool)uVar19;
      if (bVar15) {
        iVar3 = FUN_00108083(2,param_1);
        if (iVar3 != 0) {
          return 2;
        }
        goto LAB_0010a103;
      }
    }
    else {
      lVar10 = 9;
      pbVar11 = param_1;
      pbVar12 = (byte *)"-hostkey";
      do {
        if (lVar10 == 0) break;
        lVar10 = lVar10 + -1;
        bVar15 = *pbVar11 < *pbVar12;
        bVar18 = *pbVar11 == *pbVar12;
        pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
        pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
      } while (bVar18);
      uVar5 = 2;
      bVar15 = (!bVar15 && !bVar18) == bVar15;
      if (bVar15) goto LAB_00108738;
    }
LAB_0010884b:
    bVar18 = false;
    lVar10 = 3;
    pbVar11 = param_1;
    pbVar12 = &DAT_0013b2a9;
    do {
      if (lVar10 == 0) break;
      lVar10 = lVar10 + -1;
      bVar18 = *pbVar11 < *pbVar12;
      bVar15 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
    } while (bVar15);
    bVar15 = (!bVar18 && !bVar15) == bVar18;
    if (!bVar15) goto LAB_00108865;
    goto LAB_0010889d;
  }
  lVar10 = 9;
  pbVar11 = param_1;
  pbVar12 = (byte *)"-loghost";
  do {
    if (lVar10 == 0) break;
    lVar10 = lVar10 + -1;
    bVar16 = *pbVar11 < *pbVar12;
    bVar15 = *pbVar11 == *pbVar12;
    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
  } while (bVar15);
  bVar18 = false;
  bVar15 = (!bVar16 && !bVar15) == bVar16;
  if (bVar15) {
    if (param_2 == (char *)0x0) {
      return 0xfffffffe;
    }
    if (param_3 < 0) {
      return 2;
    }
    iVar3 = FUN_00108083(2,param_1);
    if (iVar3 != 0) {
      return 2;
    }
    uVar17 = param_3 == 0;
    if (!(bool)uVar17) {
      FUN_001080ad(param_1,param_2,0);
      return 2;
    }
    goto LAB_0010a0b4;
  }
  lVar10 = 9;
  pbVar11 = param_1;
  pbVar12 = (byte *)"-hostkey";
  do {
    if (lVar10 == 0) break;
    lVar10 = lVar10 + -1;
    bVar18 = *pbVar11 < *pbVar12;
    bVar15 = *pbVar11 == *pbVar12;
    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
  } while (bVar15);
  bVar15 = (!bVar18 && !bVar15) == bVar18;
  if (!bVar15) goto LAB_0010884b;
  if (param_2 == (char *)0x0) {
    return 0xfffffffe;
  }
  if (param_3 < 0) {
    return 2;
  }
LAB_00108738:
  iVar3 = FUN_00108083(2,param_1);
  if (iVar3 != 0) {
    return 2;
  }
  if (param_3 != 0) {
    FUN_001080ad(param_1,param_2,0);
    return 2;
  }
LAB_0010a103:
  uVar5 = FUN_0010bd5d(param_2);
  iVar3 = FUN_0010c8a8(uVar5);
  uVar17 = 0;
  uVar19 = iVar3 == 0;
  if ((bool)uVar19) {
    FUN_00134fb0("\'%s\' is not a valid format for a manual host key specification",param_2);
    FUN_0010c4d3(uVar5);
    return 2;
  }
  FUN_0010ade1(param_4,0xad,uVar5,&DAT_0013bec9);
  FUN_0010c4d3(uVar5);
  lVar10 = 3;
  pbVar11 = param_1;
  pbVar12 = &DAT_0013b2a9;
  do {
    if (lVar10 == 0) break;
    lVar10 = lVar10 + -1;
    uVar17 = *pbVar11 < *pbVar12;
    uVar19 = *pbVar11 == *pbVar12;
    pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
    pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
  } while ((bool)uVar19);
  uVar5 = 2;
  bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;
  if (bVar15) {
    iVar3 = FUN_00108083(3,param_1);
    bVar15 = iVar3 == 0;
    if (!bVar15) {
      return 2;
    }
LAB_001088cd:
    bVar18 = false;
    lVar10 = 3;
    pbVar11 = param_1;
    pbVar12 = (byte *)0x1440f1;
    do {
      if (lVar10 == 0) break;
      lVar10 = lVar10 + -1;
      bVar18 = *pbVar11 < *pbVar12;
      bVar15 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
    } while (bVar15);
    uVar17 = 0;
    uVar19 = (!bVar18 && !bVar15) == bVar18;
    if ((bool)uVar19) {
      uVar5 = FUN_0010c2a6(&DAT_0013b2b6,param_2);
      uVar7 = FUN_0010bd5d("D");
    }
    else {
      bVar1 = param_1[1];
      pcVar6 = (char *)FUN_0010b8c9(param_2,0x3a);
      pcVar8 = pcVar6;
      if (pcVar6 == (char *)0x0) {
LAB_00108973:
        FUN_00134fb0("-%c expects at least two colons in its argument",(int)(char)bVar1);
        return 2;
      }
      do {
        pcVar14 = pcVar8;
        pcVar8 = pcVar6;
        pcVar6 = (char *)FUN_0010b8c9(pcVar8 + 1,0x3a);
      } while (pcVar6 != (char *)0x0);
      if (pcVar14 == (char *)0x0) goto LAB_00108973;
      uVar17 = pcVar14 < param_2;
      uVar19 = (long)pcVar14 - (long)param_2 == 0;
      uVar5 = FUN_0010c2a6(&DAT_0013b2af,(int)(char)bVar1,(long)pcVar14 - (long)param_2,param_2);
      uVar7 = FUN_0010bd5d(pcVar14 + 1);
    }
    FUN_0010ade1(param_4,0x9b,uVar5,uVar7);
    FUN_0010c4d3(uVar5);
    FUN_0010c4d3(uVar7);
    lVar10 = 4;
    pbVar11 = param_1;
    pbVar12 = &DAT_0013b2ba;
    do {
      if (lVar10 == 0) break;
      lVar10 = lVar10 + -1;
      uVar17 = *pbVar11 < *pbVar12;
      uVar19 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
    } while ((bool)uVar19);
    uVar5 = 2;
    bVar15 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;
    if (!bVar15) goto LAB_00108a01;
    iVar3 = FUN_00108083(3,param_1);
    if (iVar3 != 0) {
      return 2;
    }
LAB_00109fa5:
    lVar10 = FUN_0010b8c9(param_2,0x3a);
    if (lVar10 == 0) {
      FUN_00134fb0("-nc expects argument of form \'host:port\'");
      return 2;
    }
    uVar5 = FUN_0010c2a6(&DAT_0013b2b1,lVar10 - (long)param_2,param_2);
    FUN_0010ad3a(param_4,0x2e,uVar5);
    uVar9 = strtol((char *)(lVar10 + 1),(char **)0x0,10);
    FUN_0010ac09(param_4,0x2f,uVar9 & 0xffffffff);
    FUN_0010c4d3(uVar5);
    iVar3 = strcmp((char *)param_1,"-m");
    uVar5 = 2;
    bVar15 = iVar3 == 0;
    if (!bVar15) goto LAB_0010a032;
    iVar3 = FUN_00108083(3,param_1);
    if (iVar3 != 0) {
      return 2;
    }
LAB_00109f54:
    __stream = fopen64(param_2,"r");
    if (__stream == (FILE *)0x0) {
      FUN_00134fb0("unable to open command file \"%s\"",param_2);
      return 2;
    }
    lVar13 = 0;
    local_3c = 0;
    lVar10 = 0;
    while( true ) {
      iVar4 = (int)lVar13;
      iVar3 = fgetc(__stream);
      if (iVar3 == -1) break;
      local_48._0_1_ = (undefined1)iVar3;
      if (iVar4 < local_3c) {
        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;
      }
      else {
        local_3c = iVar4 + 0x200;
        lVar10 = FUN_0010c033(lVar10,(long)local_3c,1);
        *(undefined1 *)(lVar10 + lVar13) = (undefined1)local_48;
      }
      lVar13 = lVar13 + 1;
    }
    if (iVar4 < local_3c) {
      *(undefined1 *)(lVar10 + iVar4) = 0;
    }
    else {
      lVar10 = FUN_0010c033(lVar10,(long)(iVar4 + 0x200),1);
      *(undefined1 *)(lVar10 + lVar13) = 0;
    }
    fclose(__stream);
    FUN_0010ad3a(param_4,0x14,lVar10);
    FUN_0010ad3a(param_4,0x15,&DAT_0013bec9);
    FUN_0010ac09(param_4,0x16,1);
    FUN_0010c4d3(lVar10);
    iVar3 = strcmp((char *)param_1,"-P");
    uVar5 = 2;
    if (iVar3 == 0) {
      iVar3 = FUN_00108083(2,param_1);
      if (iVar3 != 0) {
        return 2;
      }
      goto LAB_00109749;
    }
LAB_00108afa:
    iVar3 = strcmp((char *)param_1,"-pw");
    if (iVar3 == 0) {
      if (param_2 == (char *)0x0) {
        return 0xfffffffe;
      }
      if (param_3 < 0) {
        return 2;
      }
      iVar3 = FUN_00108083(2,param_1);
      if (iVar3 != 0) {
        return 2;
      }
      if (param_3 != 0) {
        FUN_001080ad(param_1,param_2,1);
        return 2;
      }
      goto LAB_00109ee5;
    }
    iVar3 = strcmp((char *)param_1,"-agent");
    if (iVar3 != 0) goto LAB_00108ba4;
LAB_00108bce:
    if (param_3 < 0) {
      return 1;
    }
LAB_00108bdc:
    iVar3 = FUN_00108083(2,param_1);
    if (iVar3 != 0) {
      return 1;
    }
    if (param_3 != 0) {
      FUN_001080ad(param_1,param_2,0);
      return 1;
    }
LAB_00108bf9:
    FUN_0010ac09(param_4,0x1c,1);
    iVar3 = strcmp((char *)param_1,"-noagent");
    if (iVar3 == 0) {
      iVar3 = FUN_00108083(2,param_1);
      if (iVar3 != 0) {
        return 1;
      }
      goto LAB_00108c37;
    }
    iVar3 = strcmp((char *)param_1,"-nopagent");
    uVar5 = 1;
    if (iVar3 == 0) goto LAB_00109e76;
LAB_00108d1b:
    iVar3 = strcmp((char *)param_1,"-nopageant");
    if (iVar3 == 0) goto LAB_00108d2e;
    iVar3 = strcmp((char *)param_1,"-A");
    if (iVar3 != 0) {
      iVar3 = strcmp((char *)param_1,"-a");
      if (iVar3 != 0) goto LAB_00108c7d;
      if (param_3 < 0) {
        return 1;
      }
      goto LAB_00108db9;
    }
    if (param_3 < 0) {
      return 1;
    }
    iVar3 = FUN_00108083(3,param_1);
    if (iVar3 != 0) {
      return 1;
    }
    if (param_3 != 0) {
      FUN_001080ad(param_1,param_2,0);
      return 1;
    }
LAB_00109d88:
    FUN_0010ac09(param_4,0x1d,1);
    iVar3 = strcmp((char *)param_1,"-a");
    if (iVar3 == 0) {
      iVar3 = FUN_00108083(3,param_1);
      if (iVar3 != 0) {
        return 1;
      }
      goto LAB_00109d25;
    }
    iVar3 = strcmp((char *)param_1,"-X");
    uVar5 = 1;
    if (iVar3 == 0) {
LAB_00108ca2:
      iVar3 = FUN_00108083(3,param_1);
      if (iVar3 != 0) {
        return 1;
      }
      if (param_3 != 0) {
        FUN_001080ad(param_1,param_2,0);
        return 1;
      }
      goto LAB_00109c0f;
    }
LAB_00109dce:
    iVar3 = strcmp((char *)param_1,"-x");
    if (iVar3 != 0) goto LAB_00109de5;
    if (param_3 < 0) {
      return 1;
    }
LAB_00108dff:
    iVar3 = FUN_00108083(3,param_1);
    if (iVar3 != 0) {
      return 1;
    }
    if (param_3 != 0) {
      FUN_001080ad(param_1,param_2,0);
      return 1;
    }
LAB_00109c49:
    FUN_0010ac09(param_4,0x95,0);
    iVar3 = strcmp((char *)param_1,"-t");
    if (iVar3 == 0) {
      iVar3 = FUN_00108083(3,param_1);
      if (iVar3 != 0) {
        return 1;
      }
LAB_00109c87:
      FUN_0010ac09(param_4,0x16,0);
      iVar3 = strcmp((char *)param_1,"-T");
      if (iVar3 == 0) {
        iVar3 = FUN_00108083(3,param_1);
        if (iVar3 != 0) {
          return 1;
        }
        goto LAB_00109cc5;
      }
      iVar3 = strcmp((char *)param_1,"-N");
      uVar5 = 1;
      if (iVar3 == 0) goto LAB_00109ba0;
    }
    else {
      iVar3 = strcmp((char *)param_1,"-T");
      uVar5 = 1;
      if (iVar3 == 0) goto LAB_00109e21;
LAB_00109b7b:
      iVar3 = strcmp((char *)param_1,"-N");
      if (iVar3 == 0) {
        if (param_3 < 0) {
          return 1;
        }
LAB_00109ba0:
        iVar3 = FUN_00108083(3,param_1);
        if (iVar3 != 0) {
          return 1;
        }
        if (param_3 != 0) {
          FUN_001080ad(param_1,param_2,0);
          return 1;
        }
        goto LAB_00109a6e;
      }
    }
    iVar3 = strcmp((char *)param_1,"-C");
    if (iVar3 == 0) {
      if (param_3 < 0) {
        return 1;
      }
LAB_00108e8b:
      iVar3 = FUN_00108083(2,param_1);
      if (iVar3 != 0) {
        return 1;
      }
      if (param_3 != 0) {
        FUN_001080ad(param_1,param_2,0);
        return 1;
      }
LAB_0010989e:
      FUN_0010ac09(param_4,0x17,1);
      iVar3 = strcmp((char *)param_1,"-1");
      if (iVar3 == 0) {
        iVar3 = FUN_00108083(2,param_1);
        if (iVar3 != 0) {
          return 1;
        }
        goto LAB_001098d8;
      }
      iVar3 = strcmp((char *)param_1,"-2");
      uVar5 = 1;
      if (iVar3 != 0) goto LAB_00109930;
      goto LAB_00109b26;
    }
LAB_00109aea:
    iVar3 = strcmp((char *)param_1,"-1");
    if (iVar3 != 0) goto LAB_00109b01;
    if (param_3 < 0) {
      return 1;
    }
LAB_00108ed1:
    iVar3 = FUN_00108083(2,param_1);
    if (iVar3 != 0) {
      return 1;
    }
    if (param_3 != 0) {
      FUN_001080ad(param_1,param_2,0);
      return 1;
    }
LAB_001098d8:
    FUN_0010ac09(param_4,0x21,0);
    iVar3 = strcmp((char *)param_1,"-2");
    uVar5 = 1;
    if (iVar3 != 0) goto LAB_00109930;
    iVar3 = FUN_00108083(2,param_1);
    if (iVar3 != 0) {
      return 1;
    }
LAB_00109918:
    FUN_0010ac09(param_4,0x21,3);
    uVar5 = 1;
  }
  else {
LAB_00108865:
    bVar18 = false;
    lVar10 = 3;
    pbVar11 = param_1;
    pbVar12 = &DAT_0013b2ac;
    do {
      if (lVar10 == 0) break;
      lVar10 = lVar10 + -1;
      bVar18 = *pbVar11 < *pbVar12;
      bVar15 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
    } while (bVar15);
    bVar16 = false;
    bVar15 = (!bVar18 && !bVar15) == bVar18;
    if (bVar15) {
LAB_0010889d:
      if (param_2 == (char *)0x0) {
        return 0xfffffffe;
      }
      if (param_3 < 0) {
        return 2;
      }
      iVar3 = FUN_00108083(3,param_1);
      if (iVar3 != 0) {
        return 2;
      }
      bVar15 = param_3 == 0;
      if (!bVar15) {
        FUN_001080ad(param_1,param_2,0);
        return 2;
      }
      goto LAB_001088cd;
    }
    lVar10 = 3;
    pbVar11 = param_1;
    pbVar12 = (byte *)0x1440f1;
    do {
      if (lVar10 == 0) break;
      lVar10 = lVar10 + -1;
      bVar16 = *pbVar11 < *pbVar12;
      bVar15 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
    } while (bVar15);
    if ((!bVar16 && !bVar15) == bVar16) goto LAB_0010889d;
    iVar3 = strcmp((char *)param_1,"-nc");
    bVar15 = iVar3 == 0;
    if (bVar15) {
      if (param_2 == (char *)0x0) {
        return 0xfffffffe;
      }
      if (param_3 < 0) {
        return 2;
      }
      iVar3 = FUN_00108083(3,param_1);
      if (iVar3 != 0) {
        return 2;
      }
      if (param_3 != 0) {
        FUN_001080ad(param_1,param_2,0);
        return 2;
      }
      goto LAB_00109fa5;
    }
LAB_00108a01:
    bVar18 = false;
    lVar10 = 3;
    pbVar11 = param_1;
    pbVar12 = &DAT_0013b2be;
    do {
      if (lVar10 == 0) break;
      lVar10 = lVar10 + -1;
      bVar18 = *pbVar11 < *pbVar12;
      bVar15 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
    } while (bVar15);
    bVar15 = (!bVar18 && !bVar15) == bVar18;
    if (bVar15) {
      if (param_2 == (char *)0x0) {
        return 0xfffffffe;
      }
      if (param_3 < 0) {
        return 2;
      }
      iVar3 = FUN_00108083(3,param_1);
      if (iVar3 != 0) {
        return 2;
      }
      if (param_3 != 0) {
        FUN_001080ad(param_1,param_2,0);
        return 2;
      }
      goto LAB_00109f54;
    }
LAB_0010a032:
    bVar18 = false;
    lVar10 = 3;
    pbVar11 = param_1;
    pbVar12 = &DAT_0013b2c1;
    do {
      if (lVar10 == 0) break;
      lVar10 = lVar10 + -1;
      bVar18 = *pbVar11 < *pbVar12;
      bVar15 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (ulong)bVar20 * -2 + 1;
      pbVar12 = pbVar12 + (ulong)bVar20 * -2 + 1;
    } while (bVar15);
    if ((!bVar18 && !bVar15) != bVar18) goto LAB_00108afa;
    if (param_2 == (char *)0x0) {
      return 0xfffffffe;
    }
    if (param_3 < 0) {
      return 2;
    }
    iVar3 = FUN_00108083(2,param_1);
    if (iVar3 != 0) {
      return 2;
    }
    if (param_3 != 0) {
      FUN_001080ad(param_1,param_2,1);
      return 2;
    }
LAB_00109749:
    uVar9 = strtol(param_2,(char **)0x0,10);
    FUN_0010ac09(param_4,1,uVar9 & 0xffffffff);
    iVar3 = strcmp((char *)param_1,"-pw");
    if (iVar3 == 0) {
      iVar3 = FUN_00108083(2,param_1);
      if (iVar3 != 0) {
        return 2;
      }
LAB_00109ee5:
      iVar3 = FUN_0010a543(param_4,2);
      if (iVar3 == 3) {
        DAT_00152128 = FUN_0010bd5d(param_2);
        uVar9 = 0xffffffffffffffff;
        pcVar6 = param_2;
        do {
          if (uVar9 == 0) break;
          uVar9 = uVar9 - 1;
          cVar2 = *pcVar6;
          pcVar6 = pcVar6 + (ulong)bVar20 * -2 + 1;
        } while (cVar2 != '\0');
        FUN_0010c727(param_2,~uVar9 - 1);
      }
      else {
        FUN_00134fb0("the -pw option can only be used with the SSH protocol");
      }
      iVar3 = strcmp((char *)param_1,"-agent");
      if (iVar3 != 0) {
        iVar3 = strcmp((char *)param_1,"-pagent");
        uVar5 = 2;
        if (iVar3 != 0) goto LAB_00108bb7;
        goto LAB_00108bdc;
      }
      iVar3 = FUN_00108083(2,param_1);
      if (iVar3 != 0) {
        return 1;
      }
      goto LAB_00108bf9;
    }
    iVar3 = strcmp((char *)param_1,"-agent");
    uVar5 = 2;
    if (iVar3 == 0) goto LAB_00108bdc;
LAB_00108ba4:
    iVar3 = strcmp((char *)param_1,"-pagent");
    if (iVar3 == 0) goto LAB_00108bce;
LAB_00108bb7:
    iVar3 = strcmp((char *)param_1,"-pageant");
    if (iVar3 == 0) goto LAB_00108bce;
    iVar3 = strcmp((char *)param_1,"-noagent");
    if ((iVar3 != 0) && (iVar3 = strcmp((char *)param_1,"-nopagent"), iVar3 != 0))
    goto LAB_00108d1b;
LAB_00108d2e:
    if (param_3 < 0) {
      return 1;
    }
LAB_00109e76:
    iVar3 = FUN_00108083(2,param_1);
    if (iVar3 != 0) {
      return 1;
    }
    if (param_3 != 0) {
      FUN_001080ad(param_1,param_2,0);
      return 1;
    }
LAB_00108c37:
    FUN_0010ac09(param_4,0x1c,0);
    iVar3 = strcmp((char *)param_1,"-A");
    if (iVar3 == 0) {
      iVar3 = FUN_00108083(3,param_1);
      if (iVar3 != 0) {
        return 1;
      }
      goto LAB_00109d88;
    }
    iVar3 = strcmp((char *)param_1,"-a");
    if (iVar3 != 0) {
      uVar5 = 1;
LAB_00108c7d:
      iVar3 = strcmp((char *)param_1,"-X");
      if (iVar3 != 0) goto LAB_00109dce;
      if (param_3 < 0) {
        return 1;
      }
      goto LAB_00108ca2;
    }
LAB_00108db9:
    iVar3 = FUN_00108083(3,param_1);
    if (iVar3 != 0) {
      return 1;
    }
    if (param_3 != 0) {
      FUN_001080ad(param_1,param_2,0);
      return 1;
    }
LAB_00109d25:
    FUN_0010ac09(param_4,0x1d,0);
    iVar3 = strcmp((char *)param_1,"-X");
    if (iVar3 == 0) {
      iVar3 = FUN_00108083(3,param_1);
      if (iVar3 != 0) {
        return 1;
      }
LAB_00109c0f:
      FUN_0010ac09(param_4,0x95,1);
      iVar3 = strcmp((char *)param_1,"-x");
      if (iVar3 == 0) {
        iVar3 = FUN_00108083(3,param_1);
        if (iVar3 != 0) {
          return 1;
        }
        goto LAB_00109c49;
      }
      iVar3 = strcmp((char *)param_1,"-t");
      uVar5 = 1;
      if (iVar3 != 0) goto LAB_00109dfc;
LAB_00108e45:
      iVar3 = FUN_00108083(3,param_1);
      if (iVar3 != 0) {
        return 1;
      }
      if (param_3 != 0) {
        FUN_001080ad(param_1,param_2,1);
        return 1;
      }
      goto LAB_00109c87;
    }
    iVar3 = strcmp((char *)param_1,"-x");
    uVar5 = 1;
    if (iVar3 == 0) goto LAB_00108dff;
LAB_00109de5:
    iVar3 = strcmp((char *)param_1,"-t");
    if (iVar3 == 0) {
      if (param_3 < 0) {
        return 1;
      }
      goto LAB_00108e45;
    }
LAB_00109dfc:
    iVar3 = strcmp((char *)param_1,"-T");
    if (iVar3 != 0) goto LAB_00109b7b;
    if (param_3 < 0) {
      return 1;
    }
LAB_00109e21:
    iVar3 = FUN_00108083(3,param_1);
    if (iVar3 != 0) {
      return 1;
    }
    if (param_3 != 0) {
      FUN_001080ad(param_1,param_2,1);
      return 1;
    }
LAB_00109cc5:
    FUN_0010ac09(param_4,0x16,1);
    iVar3 = strcmp((char *)param_1,"-N");
    if (iVar3 != 0) {
      iVar3 = strcmp((char *)param_1,"-C");
      uVar5 = 1;
      if (iVar3 == 0) goto LAB_00108e8b;
      goto LAB_00109aea;
    }
    iVar3 = FUN_00108083(3,param_1);
    if (iVar3 != 0) {
      return 1;
    }
LAB_00109a6e:
    FUN_0010ac09(param_4,0x2d,1);
    iVar3 = strcmp((char *)param_1,"-C");
    if (iVar3 == 0) {
      iVar3 = FUN_00108083(2,param_1);
      if (iVar3 != 0) {
        return 1;
      }
      goto LAB_0010989e;
    }
    iVar3 = strcmp((char *)param_1,"-1");
    uVar5 = 1;
    if (iVar3 == 0) goto LAB_00108ed1;
LAB_00109b01:
    iVar3 = strcmp((char *)param_1,"-2");
    if (iVar3 == 0) {
      if (param_3 < 0) {
        return 1;
      }
LAB_00109b26:
      iVar3 = FUN_00108083(2,param_1);
      if (iVar3 != 0) {
        return 1;
      }
      if (param_3 != 0) {
        FUN_001080ad(param_1,param_2,0);
        return 1;
      }
      goto LAB_00109918;
    }
  }
LAB_00109930:
  iVar3 = strcmp((char *)param_1,"-i");
  if (iVar3 == 0) {
    if (param_2 == (char *)0x0) {
      return 0xfffffffe;
    }
    if (param_3 < 0) {
      return 2;
    }
    iVar3 = FUN_00108083(2,param_1);
    if (iVar3 != 0) {
      return 2;
    }
    if (param_3 != 0) {
      FUN_001080ad(param_1,param_2,0);
      return 2;
    }
    uVar5 = FUN_001321a4(param_2);
    FUN_0010af59(param_4,0x20,uVar5);
    FUN_00132212(uVar5);
    iVar3 = strcmp((char *)param_1,"-4");
    if (iVar3 != 0) {
      iVar3 = strcmp((char *)param_1,"-ipv4");
      uVar5 = 2;
      if (iVar3 != 0) goto LAB_00109814;
    }
LAB_001099af:
    FUN_0010ac09(param_4,3,1);
    iVar3 = strcmp((char *)param_1,"-6");
    uVar5 = 1;
    if (iVar3 == 0) goto LAB_001099de;
LAB_00109827:
    iVar3 = strcmp((char *)param_1,"-ipv6");
    if (iVar3 == 0) goto LAB_0010983e;
  }
  else {
    iVar3 = strcmp((char *)param_1,"-4");
    if ((iVar3 == 0) || (iVar3 = strcmp((char *)param_1,"-ipv4"), iVar3 == 0)) {
      if (param_3 < 0) {
        return 1;
      }
      if (param_3 != 0) {
        FUN_001080ad(param_1,param_2,1);
        return 1;
      }
      goto LAB_001099af;
    }
LAB_00109814:
    iVar3 = strcmp((char *)param_1,"-6");
    if (iVar3 != 0) goto LAB_00109827;
LAB_0010983e:
    if (param_3 < 0) {
      return 1;
    }
    if (param_3 != 0) {
      FUN_001080ad(param_1,param_2,1);
      return 1;
    }
LAB_001099de:
    FUN_0010ac09(param_4,3,2);
    uVar5 = 1;
  }
  iVar3 = strcmp((char *)param_1,"-sercfg");
  if (iVar3 == 0) {
    if (param_2 == (char *)0x0) {
      return 0xfffffffe;
    }
    if (param_3 < 0) {
      return 2;
    }
    iVar3 = FUN_00108083(3,param_1);
    if (iVar3 != 0) {
      return 2;
    }
    if (param_3 != 0) {
      FUN_001080ad(param_1,param_2,1);
      return 2;
    }
    iVar3 = FUN_0010a543(param_4,2);
    pcVar6 = param_2;
    if (iVar3 != 4) {
      FUN_00134fb0("the -sercfg option can only be used with the serial protocol");
    }
    for (; *pcVar6 != '\0'; pcVar6 = pcVar6 + (local_48 + iVar3)) {
      pcVar8 = strchr(pcVar6,0x2c);
      if (pcVar8 == (char *)0x0) {
        lVar10 = -1;
        pcVar8 = pcVar6;
        do {
          if (lVar10 == 0) break;
          lVar10 = lVar10 + -1;
          cVar2 = *pcVar8;
          pcVar8 = pcVar8 + (ulong)bVar20 * -2 + 1;
        } while (cVar2 != '\0');
        iVar3 = ~(uint)lVar10 - 1;
        local_48 = 0;
      }
      else {
        iVar3 = (int)pcVar8 - (int)pcVar6;
        pcVar6[iVar3] = '\0';
        local_48 = 1;
      }
      if (iVar3 == 1) {
        cVar2 = *pcVar6;
        switch(cVar2) {
        case '1':
        case '2':
          FUN_0010ac09(param_4,0x3c,cVar2 * 2 + -0x60);
          break;
        default:
          FUN_00134fb0("Unrecognised suboption \"-sercfg %c\"");
          break;
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':
          FUN_0010ac09(param_4,0x3b,cVar2 + -0x30);
          break;
        case 'D':
          FUN_0010ac09(param_4,0x3e,3);
          break;
        case 'N':
          FUN_0010ac09(param_4,0x3e,0);
          break;
        case 'R':
          FUN_0010ac09(param_4,0x3e,2);
          break;
        case 'X':
          FUN_0010ac09(param_4,0x3e,1);
          break;
        case 'e':
          FUN_0010ac09(param_4,0x3d,2);
          break;
        case 'm':
          FUN_0010ac09(param_4,0x3d,3);
          break;
        case 'n':
          FUN_0010ac09(param_4,0x3d,0);
          break;
        case 'o':
          FUN_0010ac09(param_4,0x3d,1);
          break;
        case 's':
          FUN_0010ac09(param_4,0x3d,4);
        }
      }
      else if ((iVar3 == 3) && (iVar4 = strncmp(pcVar6,"1.5",3), iVar4 == 0)) {
        FUN_0010ac09(param_4,0x3c,3);
      }
      else {
        uVar9 = strtol(pcVar6,(char **)0x0,10);
        if ((int)uVar9 == 0) {
          FUN_00134fb0("Unrecognised suboption \"-sercfg %s\"",pcVar6);
        }
        else {
          FUN_0010ac09(param_4,0x3a,uVar9 & 0xffffffff);
        }
      }
    }
    iVar3 = strcmp((char *)param_1,"-sessionlog");
    if (iVar3 != 0) {
      iVar3 = strcmp((char *)param_1,"-sshlog");
      uVar5 = 2;
      if (iVar3 != 0) goto LAB_0010921f;
      goto LAB_0010924d;
    }
    iVar3 = FUN_00108083(1,param_1);
    if (iVar3 != 0) {
      return 2;
    }
LAB_001095f3:
    uVar5 = FUN_001321a4(param_2);
    FUN_0010af59(param_4,0x77,uVar5);
    FUN_0010ac09(param_4,0x78,2);
    FUN_00132212(uVar5);
    iVar3 = strcmp((char *)param_1,"-sshlog");
    uVar5 = 2;
    if (iVar3 != 0) {
LAB_0010921f:
      iVar3 = strcmp((char *)param_1,"-sshrawlog");
      if (iVar3 != 0) {
        iVar3 = strcmp((char *)param_1,"-proxycmd");
        if (iVar3 != 0) {
          return uVar5;
        }
        if (param_2 == (char *)0x0) {
          return 0xfffffffe;
        }
        if (param_3 < 0) {
          return 2;
        }
        iVar3 = FUN_00108083(2,param_1);
        if (iVar3 != 0) {
          return 2;
        }
        if (param_3 != 0) {
          FUN_001080ad(param_1,param_2,0);
          return 2;
        }
        goto LAB_001092e3;
      }
      goto LAB_00109236;
    }
    iVar3 = FUN_00108083(2,param_1);
    if (iVar3 != 0) {
      return 2;
    }
  }
  else {
    iVar3 = strcmp((char *)param_1,"-sessionlog");
    if (iVar3 == 0) {
      if (param_2 == (char *)0x0) {
        return 0xfffffffe;
      }
      if (param_3 < 0) {
        return 2;
      }
      iVar3 = FUN_00108083(1,param_1);
      if (iVar3 != 0) {
        return 2;
      }
      if (param_3 != 0) {
        FUN_001080ad(param_1,param_2,0);
        return 2;
      }
      goto LAB_001095f3;
    }
    iVar3 = strcmp((char *)param_1,"-sshlog");
    if (iVar3 != 0) goto LAB_0010921f;
LAB_00109236:
    if (param_2 == (char *)0x0) {
      return 0xfffffffe;
    }
    if (param_3 < 0) {
      return 2;
    }
LAB_0010924d:
    iVar3 = FUN_00108083(2,param_1);
    if (iVar3 != 0) {
      return 2;
    }
    if (param_3 != 0) {
      FUN_001080ad(param_1,param_2,0);
      return 2;
    }
  }
  uVar5 = FUN_001321a4(param_2);
  FUN_0010af59(param_4,0x77,uVar5);
  iVar3 = strcmp((char *)param_1,"-sshlog");
  FUN_0010ac09(param_4,0x78,4 - (uint)(iVar3 == 0));
  FUN_00132212(uVar5);
  iVar3 = strcmp((char *)param_1,"-proxycmd");
  if (iVar3 != 0) {
    return 2;
  }
  iVar3 = FUN_00108083(2,param_1);
  if (iVar3 != 0) {
    return 2;
  }
LAB_001092e3:
  FUN_0010ac09(param_4,0xd,5);
  FUN_0010ad3a(param_4,0x12,param_2);
  return 2;
}

